@@ -124,6 +124,41 @@ New Updates:
124124
125125## Learning Material Updates
126126
127+ ### [ Reverse-Engineering NES Tetris to add Hard Drop] [ tetris-hard-drop ]
128+
129+ ![ NES Tetris with Hard Drop and Ghost Piece] ( tetris-hard-drop.gif ) _ NES Tetris
130+ with Hard Drop and Ghost Piece_
131+
132+ A [ blog post] [ tetris-hard-drop ] describing the process of reverse-engineering
133+ the rendering and input-handling logic in the NES version of Tetris, and using
134+ a [ rust embedded domain-specific language] [ tetris-hard-drop-dsl-example ] to
135+ make a [ patching tool] [ tetris-hard-drop-patch-tool ] that generates code (6502
136+ machine code) to add hard drop (instantly dropping the current piece) and to
137+ render a ghost piece (the dotted outline showing where the current piece will
138+ land).
139+
140+ The patching tool uses the crate
141+ [ mos6502_assembler] [ tetris-hard-drop-assembler ] to specify 6502 assembly in
142+ rust and generate machine code. Many of the reverse-engineering experiments
143+ were done using [ this rust NES emulator] [ tetris-hard-drop-nes-emulator ] . The
144+ result is available as an [ IPS Patch] [ tetris-hard-drop-ips-patch ] .
145+
146+ _ Discussions: [ Hacker News] ( https://news.ycombinator.com/item?id=26530604 ) ,
147+ [ /r/rust] ( https://reddit.com/r/rust/comments/ma6jqz/using_a_rust_dsl_to_add_hard_drop_to_nes_tetris/ ) _
148+
149+ [ tetris-hard-drop] :
150+ https://www.gridbugs.org/reverse-engineering-nes-tetris-to-add-hard-drop/
151+ [ tetris-hard-drop-nes-emulator] :
152+ https://github.com/stevebob/mos6502/tree/master/nes-emulator
153+ [ tetris-hard-drop-assembler] :
154+ https://github.com/stevebob/mos6502/tree/master/assembler
155+ [ tetris-hard-drop-ips-patch] :
156+ https://github.com/stevebob/mos6502/raw/master/tetris-hard-drop-patcher/tetris-hard-drop.ips
157+ [ tetris-hard-drop-patch-tool] :
158+ https://github.com/stevebob/mos6502/tree/master/tetris-hard-drop-patcher
159+ [ tetris-hard-drop-dsl-example] :
160+ https://github.com/stevebob/mos6502/blob/master/tetris-hard-drop-patcher/src/main.rs#L23
161+
127162## Library & Tooling Updates
128163
129164### [ wgpu]
0 commit comments