A test cartridge that runs Read-Modify-Write instructions to address $2007
Simply drag VRAMCorruption.asm over nesasm.exe to compile the ROM.
The main screen looks like this:
By pressing Up and Down, you can select the test to run. Run the test by pressing A. You will see a screen like this:
From this screen, by pressing the A button, you will run the selected test. In this case, I'll be running the INC test.
These tests start from VRAM Address $2100, and then run the operation. In this case, INC $2007
Pressing the A button again will run the test again, but each press will add an additional 1 byte offset by running LDY $2007 before the test.
Since all the bytes from VRAM Address $2100 through $21FF are initialized as zeroes, I figured it would be convenient to have a page full of FFs.
To run the test from address $2200, hold the left button while pressing the A button.
You can press the B button to return to the main screen.
You can hold start to run the test every other frame, removing the need to mash the A button.
You can hold select to run the test every other frame, while also running 4 extra instances of the test.
You can hold the Up button during a test to run LDA $2007 before the test.