Sprites are now implemented. Support is included for all sizes, including those that are undocumented, as well as features like sprite priority rotation. Check out the new screenshots.


Also fixed a bug in VRAM reading, which caused graphical corruption in a few ROMs.
Monday, March 22, 2004
Tuesday, March 16, 2004
Added support for screen fading, one of the easier bits of the PPU to emulate! In the CPU core, I fixed a bug with the TCS / TSC opcode; the 16-bit accumulator needed to be transferred to/from the stack pointer ignoring the status of the memory flag. I already knew this, but implemented it incorrectly. Oops. Now Ghosts N Ghouls runs further, before hitting an unimplemented opcode. Lots of commercial ROMs now start, but really need sprites implemented to play!
Sprites will be the next aspect of the PPU I emulate. Then, a few titles should be playable. A number of people have contacted me to ask when I'll release JSnes. I think there will be a release in a couple of months, once I've stabilised the emulator somewhat. This might be sooner, but no promises.
Monday, March 15, 2004
Well, a short time without an update, but I've been hacking away. I researched offet-per-tile mode, which can be used in Modes 2, 4 and 6 by the Snes. Implementing this proved tricky, as no documentation exists on it, and quite a few emulators don't support it. Further to this, the game doctor I ordered didn't work and is being sent back for repair, so I couldn't run any tests on hardware. Bah!
The main problem I ran into with offset-per-tile is that my current line-by-line engine wasn't good enough to support it properly. If I'd realised this functionality existed when I'd started coding, I could have done things differently from the outset. As it was, most of my graphics rendering code needed a rewrite.
Anyway, offset-per-tile now seems to be working correctly in all but one demo I've tried. I'm sure there's more bugs to find.
I also improved the sound skipping code, which means the Infinity demo now runs. I also fixed directPageIndirect addressing, which fixed problems in the Super Mario Allstars + World double pack and a PD demo.
Tuesday, March 02, 2004
Added HDMA support. Managed to get the basics working pretty quickly, but spent a while trying to get the repeat flag working properly. Also had some trouble with conflicting documentation. A lot of nice effects work in PD demos now!

Next, I'm going to work on bug fixing existing code to ensure everything is working as it should. Currently a few simple demos that should work don't, and I want to establish the reasons for this before implementing anything new.
