One thing I'm working on - in fits and starts - is trying to improve the debugging experience of SNES homebrew and patch development, especially by leveraging Visual Studio Code as an IDE of sorts, to provide an experience similar to debugging Python script or compiled C code. For example, being able to drop breakpoints in source ASM files, and step through the program counter and see the PC reflected in the source ASM, as demonstrated here:
Status of this project as of Dec 16:
- v9.8 of wla-dx can now output the address-to-line data, and other source file information, required for mapping ROM addresses to file and line numbers. Both the spec for WLA's symbols, as well as information on how to generate the data in question, is described here.
- Head of Asar (point release TBD) can also output the same data.
- I'm working on local modifications to bsnes-plus to load in and process the symbols and source files, and accept many interactions over VS Code's Debug Adapter Protocol. WIP material is available here. This still has a lot of little things I need to address and fix. e.g. performance issues, code quality, and some occasional issues when using the emulator as a debugger (esp. with breakpoints). This is still a ways away from being prepped as a PR to Revenant/devinacker's bsnes-plus but I'm not looking to, like, fully implement the DAP before that point. I just want to get to a point where it's possible to comfortably debug 65816 ROM data.
- I'm working on an extension for VS Code to serve as a general tool for debugging external applications in VS Code. I have a repo for it, and the only thing it does right now is just kick an executable of your choice and establish a debug adapter connection with that exe. It is currently available on the VS Code marketplace, here: https://marketplace.visualstudio.com/it ... -app-debug. There are a lot of wishlist items I have on this extension that I'd like beyond just establishing that connection, though - for example, I think it should be possible to even have the extension create multiple views in VS Code for things memory watches from the external application.