Monday, November 29, 2010
I have been meaning to make a new post for some time now, just up until now I wasn't motivated enough to do it but there is getting to be too many things that have changed since I last updated this. The debugger I mentioned adding last time has proven to be invaluable; it has helped me diagnose countless bugs that previously would have taken me ages to find. I've moved my source control from Google Code to bitbucket, Google Code was awesome it's just that bitbucket recently added a free package and I have wanted to try out a DVCS system for a while and it seemed like convenient time to switch. Mercurial seems far better for what I'm doing, I can switch between revisions much quicker and test ROM regressions easily. The SlimDX guys had a twitter contest a couple weeks ago and you just had to be developing a project which used SlimDX to enter. I was lucky enough to win so they sent me a 1-year MSDN Visual Studio Ultimate subscription which is just amazing and makes me somehow love SlimDX even more.
Famicom Disk System
I added partial FDS support which was interesting due to kinda poor documentation. So far only read mode is supported correctly so games that write back to the disks tend to have some issues, but reading is all that is needed for Super Mario Bros. 2J and Yume Kojo: Doki Doki Panic which are the only FDS games I think anyone actually has a reason to play so I'm not too bothered. I currently do not emulate the extra FDS sound channels (or any mapper sound channels), the way I have sound setup there is not really a clean way for me to add conditional sound channels, and the North American NES didn't even support them itself so it is quite a low priority for me. The constant process of audio clean-up has continued and I've managed to remove pretty much all of the clicking the emulator used to do so games are now actually pleasant to listen to. I am now up to around 30 different mappers supported which is nice, I have just been adding them as I encounter games that need a new mapper. The PAL PPU had a pretty large accuracy improvement and is now on par with its NTSC counterpart. And of course there have been countless minor PPU accuracy increases including mid scan line sprite zero hit finally being added back and "cycle accurate" tint and greyscale bits. I am once again at a loss of what to work on next, I suppose all it could really be is a pixel based PPU which I have been putting off for ages, I could also update the Silverlight players audio to be not terrible but it's not too fun to debug that thing, we will see.