I just submitted my first mod to romhacking.net (it's in the queue) and thought I'd say hi. It is the Actually Useful Statistics mod for Tetris (TAUS) (source) that adds statistics during the game which I found useful for training. It is similar to the stats provided to viewers of CTWC, although it wasn't inspired by them.
I first want to say, "Thank you." Nesdev has been a great source for learning the NES. The wiki is fantastic and reference material by zeroone (Tetris knowledge) and rainwarrior (bootstrapping the project) was super helpful.
The Tetris-specific stuff I did I don't expect many people to be interested in, but some of the other parts may be more widely useful.
For the Sake of Knowledge, I ended up decoding much more of Tetris than necessary. I have ~78% label coverage, all the RAM mapped, tables marked and most decoded, and a pretty good understanding of how it is put together. It seems I should add that information to http://datacrystal.romhacking.net/wiki/Tetris_(NES):ROM_map
It was unclear to me how people develop mods. It seems some people may just modify the ROM directly (aided by a tool), and others seem to modify the disassembly, but both approaches seemed weak to me for my task. I ended up using ld65 to produce ips files directly, and I would "hand-code" the IPS hunks (an example). This provided a surgical approach and worked well for me, although if I needed to make widespread changes it would have been far too tedious. I was also aided because there were large sections of unused ROM.
I also wanted unit tests because manual testing was so slow and it was easy to cause regressions. Most of my work was math-y so bugs could be subtle and rarely visible. So I ended up developing a Lua-based testing framework that I found really helpful. It is small, but it became easy to write tests (example) and I was able to use it for benchmarks as well. It uses fceux, although I am eyeing swapping to mesen.
Does that sort of work seem appropriate? Did I miss common approaches? Any interest in using some of the approaches?
I first want to say, "Thank you." Nesdev has been a great source for learning the NES. The wiki is fantastic and reference material by zeroone (Tetris knowledge) and rainwarrior (bootstrapping the project) was super helpful.
The Tetris-specific stuff I did I don't expect many people to be interested in, but some of the other parts may be more widely useful.
For the Sake of Knowledge, I ended up decoding much more of Tetris than necessary. I have ~78% label coverage, all the RAM mapped, tables marked and most decoded, and a pretty good understanding of how it is put together. It seems I should add that information to http://datacrystal.romhacking.net/wiki/Tetris_(NES):ROM_map
It was unclear to me how people develop mods. It seems some people may just modify the ROM directly (aided by a tool), and others seem to modify the disassembly, but both approaches seemed weak to me for my task. I ended up using ld65 to produce ips files directly, and I would "hand-code" the IPS hunks (an example). This provided a surgical approach and worked well for me, although if I needed to make widespread changes it would have been far too tedious. I was also aided because there were large sections of unused ROM.
I also wanted unit tests because manual testing was so slow and it was easy to cause regressions. Most of my work was math-y so bugs could be subtle and rarely visible. So I ended up developing a Lua-based testing framework that I found really helpful. It is small, but it became easy to write tests (example) and I was able to use it for benchmarks as well. It uses fceux, although I am eyeing swapping to mesen.
Does that sort of work seem appropriate? Did I miss common approaches? Any interest in using some of the approaches?