Mesen's original developer, Sour, stepped down from being the lead on Mesen, and the NES development community stepped up to manage a fork. Now that it's explicitly opened up as a community project that will accept pull requests from whoever, I've been making my own contributions to it, including fixing some stuff I've wanted for ages.
So far I've personally added:
- Ability to view tile graphics as as vertical strips (or in other words, column major) - this makes it easier to view frame buffers in Super FX games and other games that make the choice to lay out their graphics like this. HAL also liked to use this arrangement in a lot of their NES games.
- Fix importing debug information from the ca65 assembler to get it to stop assuming code that runs from RAM is meant for the audio coprocessor (and stop putting variables that are audio related in the main processor's space.)
- Game Boy link cable support (with a lot of help from Sour.)
- NTT Data Keypad support for NES and SNES - now you can play Super Sudoku.
- Accuracy fixes for the offset-per-tile feature relating to mode 6 and setting the layer that holds the offset-per-tile data to use 16x16 tiles. This called for a test ROM.
- Ability to export .SPC files while running SNES games.
- Ability to view Game Boy Color palettes in the memory viewer and set breakpoints for palette changes.
- Support for ASCII's Turbo File Twin peripheral for Super Famicom, which called for a lot of new research because I wanted to get it as close as I could. It's essentially a memory card for the Super Famicom, and there was previously a Famicom one and an adapter to plug the Famicom one into a Super Famicom. Turbo File Twin lets you simulate an adapter ("TFII" mode - or Turbo File II) or use a new, fancier mode that supports a lot more memory ("STF" mode). I haven't succeeded with getting it exact for the backwards compatible TFII mode yet but I would like to in the future. But TFII mode is supported and games work when they interface with the Turbo File Twin correctly. With STF mode there's only one situation I know of where the behavior deviates, and it's an edge case you would have to intentionally go out of your way to cause (and even then the only problem is that a status flag changes too early).
- Minor Super Game Boy accuracy fix relating to acknowledging information received from the Game Boy.
Some stuff I might like to help out with in the future includes more audio tools, infrared support, the Super Famicom Pachinko controller, maybe SNES VRAM address translation/rotation support in the debugger? And there's a big TODO list I can help work through. But also I'm eager to work on actual game dev again.
Really proud to contribute a lot to the understanding on the Turbo File Twin's STF mode, and contribute at least a little bit to figuring out the TFII mode. I proxy ordered a gazillion things, including a Turbo File adapter. I think being able to check out what's happening with the individual signals that would be going out to a plugged-in Turbo File would be a lot easier to work with than trying to intentionally do something weird and then try to infer what happened from whatever managed to happen to RAM. Eventually I'd like to make a Turbo File file manager program too with hex editors and stuff, but maybe I've had enough Turbo File for awhile.