Todo:
- Testing framework
- Identify and label unused code/data
- Clean up labels
- replace known values with constants
- add comments where necessary to explain game logic
- break out nametables into text format
- gcc
- make
- cc65
- python (with pillow library)
Requires a backup of the original game with the filename clean.nes
in the project root directory.
main.asm is dynamically generated using main.infofile. This means comments outside of labels and constants for specific values can't be added yet (unless someone knows a trick and wants to tell me). To update, add label information to main.infofile and run make disassembly
. This will update main.asm with the new labels as well as run make compare
to validate the new main.asm produces the expected result.
make
This will ouput a file tetris.nes
with the following:
sha1sum: 34113a102ccfff6a859f8ebb66c24260d43ec7ab
md5sum: 1bcb1795a0feed766d6d0681196662fb
make compare
Prototype patches creates from roms found here:
Other links:
- https://tetris.wiki/Tetris_(NES,_Tengen)
- https://harddrop.com/wiki/Tetris_(NES,_Tengen)
- https://lostmediawiki.com/Tetris_(found_early_build_of_NES_game_by_Tengen;_1988)
- https://tcrf.net/Tetris_(NES,_Tengen)
- https://gamefaqs.gamespot.com/nes/587696-tetris-tengen/cheats
- https://www.atarihq.com/tsr/special/el/el.html
threecreepio getting this started
CelestialAmber disassembly structure
ejona86 info file structure and tetris-ram.awk
qalle2 CHR tools
kirjavascript borrowed bits