@@ -124,6 +124,41 @@ New Updates:
124
124
125
125
## Learning Material Updates
126
126
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
+
127
162
## Library & Tooling Updates
128
163
129
164
### [ wgpu]
0 commit comments