The build process involves telling the builder which parts of each 32K bank of ROM are not used, so that reset patches and other games' CHR ROM and screenshots can be stuffed into those areas. Usually I do this by detecting long runs of $00 or $FF bytes. But if the $00 are actually the 64 attribute bytes of a nametable that uses only the first background subpalette, or the end of a lookup table for high bytes of note periods, that can cause unintended behavior.
During initial play testing, I thought several games had bugs due to important zero- or $FF-filled data getting overwritten, but it turned out all these quirks have different causes. I'll report each in the game's own topic later.
- Scrambled map in Cheril the Goddess
It's just not that visually distinct because it's monochrome.
- Freeze on Game Over screen in Filthy Kitchen
The unmodified ROM also freezes on my PowerPak.
- Playfield attribute clutter in Spacey McRacey
I run the unmodified ROM in FCEUX for Windows, fill $23C0-$23FF with value $E8, and reset, and the corruption remains. It isn't initializing the first attribute table at all.
- "X" getting corrupted in Rock Paper Scissors Lizard Sbock
In FCEUX for Windows, a breakpoint on writes to PPU $0000-$1FFF in the unmodified ROM Rock4.nes shows that the game is overwriting CHR RAM. Flashback to Terriblegate.
Thank you.M_Tee wrote:Honestly, the tiny 4-color screenshots are one of my favorite parts of the previous Action 53 entries. Some are quite admirable in the success of their representation
Here's the process I followed:
- Take screenshot in FCEUX
- In GIMP, crop to 256x224
- Resize to 64x56, linear (that is, area averaging)
- If it doesn't look good, move the sprites by a few pixels and try again
- Choose three colors carefully
- Paint over the background in a new layer
I spent yesterday getting myself (and FCEUX) ready for next year.calima wrote:The CNROM support isn't really mandatory for this year [...] Would be good for next year, though.
Burn down list
Here's what I know I have left to do. I won't necessarily be able to work on it every day because of other paid and/or free projects.
- Move title screen out of menu bank
- Automatic reset patch for non-NROM games (prepend lda #$81 sta $5000)
- Look for updated versions in all project threads
- Test for delayed $00 writes in FCEUX 2.2.3
- Integrate JRoatch's coredump patch
- Integrate JRoatch's other toys into 240p Test Suite build process