@@ -68,6 +68,35 @@ If needed, a section can be split into subsections with a "------" delimiter.
6868
6969## Learning Material Updates
7070
71+ ### [ Reverse-Engineering NES Tetris to add Hard Drop] [ tetris-hard-drop ]
72+
73+ ![ NES Tetris with Hard Drop and Ghost Piece] ( tetris-hard-drop.gif )
74+ _ NES Tetris with Hard Drop and Ghost Piece_
75+
76+ A [ blog post] [ tetris-hard-drop ] describing the process of reverse-engineering
77+ the rendering and input-handling logic in the NES version of Tetris, and using
78+ a [ rust embedded domain-specific language] [ tetris-hard-drop-dsl-example ] to
79+ make a [ patching tool] [ tetris-hard-drop-patch-tool ] that
80+ generates code (6502 machine code) to add hard drop (instantly dropping the
81+ current piece) and to render a ghost piece (the dotted outline showing where
82+ the current piece will land).
83+
84+ The patching tool uses the crate [ mos6502_assembler] [ tetris-hard-drop-assembler ] to specify 6502 assembly
85+ in rust and generate machine code. Many of the reverse-engineering experiments were done using
86+ [ this rust NES emulator] [ tetris-hard-drop-nes-emulator ] .
87+ The result is available as an [ IPS Patch] [ tetris-hard-drop-ips-patch ] .
88+
89+ _ Discussions:
90+ [ Hacker News] ( https://news.ycombinator.com/item?id=26530604 ) ,
91+ [ /r/rust] ( https://reddit.com/r/rust/comments/ma6jqz/using_a_rust_dsl_to_add_hard_drop_to_nes_tetris/ ) _
92+
93+ [ tetris-hard-drop ] : https://www.gridbugs.org/reverse-engineering-nes-tetris-to-add-hard-drop/
94+ [ tetris-hard-drop-nes-emulator ] : https://github.com/stevebob/mos6502/tree/master/nes-emulator
95+ [ tetris-hard-drop-assembler ] : https://github.com/stevebob/mos6502/tree/master/assembler
96+ [ tetris-hard-drop-ips-patch ] : https://github.com/stevebob/mos6502/raw/master/tetris-hard-drop-patcher/tetris-hard-drop.ips
97+ [ tetris-hard-drop-patch-tool ] : https://github.com/stevebob/mos6502/tree/master/tetris-hard-drop-patcher
98+ [ tetris-hard-drop-dsl-example ] : https://github.com/stevebob/mos6502/blob/master/tetris-hard-drop-patcher/src/main.rs#L23
99+
71100## Library & Tooling Updates
72101
73102## Popular Workgroup Issues in Github
0 commit comments