Testing out the sprite overflow flag. I have it setting the green emphasis bit now
if 9 or more sprites are on a line.
Same thing again, only this time with the sprites on top of the tiles to test the overflow
flag AND the sprite 0 flag. I have it setting the blue emphasis bit when a visible sprite 0
pixel hits a visible tile pixel. This can be seen at the top of the screen.
A complete PPU screen dump. Everything is working great; the score and diamond counter
and other things are sprites.
The first code is being run on the CPU! Before I worked on the PPU, I had the CPU running.
I was using NSFs to debug my CPU before this point along with the simulator in the FPGA
design environment so I knew it was relatively bug free. This Quietust's "Copper Bars"
demo. It was perfect since it fits completely on the FPGA; DRAM is not working at this
And again on my 21" monitor. Pixels are RAZOR sharp! They can cut you if you're not
Again, with the lights turned off. I'm impressed with just how sharp the video is. It's
better than most emulators even.
Now I'm trying to get the DRAM working. This is the Copper Bars demo again, but with the
PPU using the DRAM for the graphics and nametables. It isn't working out too hot!
After tweaking the DRAM state machine, thinks are kinda looking better- but the graphics
have a worrysome wrapping going on. Later on I would find out that this was OLD memory
contents that were written on the first test! I had broken writes and didn't know it.
This is now with the dual port DRAM action going on. I wouldn't learn for a long time
that I had an error on a multiplexer, so I couldn't get graphics working right for about
I ironed out enough bugs in the DRAM unit to load 32K PRG's into memory with an improvised
UART and BIOS code on the FPGA. A little mod to my QBASIC NSF loader and I had it loading
the PRG ROMs. Before this I had to make a special RAM loader to load the CHR ROM into the
There was still a bug in the CPU though... a VERY NASTY bug. Specifically, the carry
flag was not being saved during some stack ops properly. This caused the blocks to
shoot up and just keep flying around and around and around when hit, as you can see
in the pic. The block is near the score area. Also, hammers were appearing out of
nowhere and hitting me and stuff.
After some work, that was found and fixed. And I decided to dork around and play SMB
and show it off. There were still some problems however, the DRAM unit wasn't perfect
and it'd miss a write or something and just crash and lock the system up randomly.
Welcome to Warp Zone, w00t!
World 2, please.
Everything looks good.
Onto world 2-3. Shortly after this, the console crashed from the afore-mentioned
I restarted and warped to world 5, and dorked around some more.
After playing with SMB awhile, I had to try out some other games. Sachen's
Lock Smith was a pretty good game for a next test. I've actually beaten this
POS game a couple times believe it or not! The little puzzles at the end are
actually kinda fun.
Then I tried Little Red Hood. This of course is also another Sachen title. Ugh.
Shitty game, but it worked.
After getting everything else working, I just had to try Route-16. This is a really
spiffy Sunsoft game.