Mesen-S - SNES Emulator
Posted: Sun Mar 31, 2019 5:51 pm
Mesen-S is a SNES emulator written from scratch, based entirely on available documentation (mostly anomie's docs), forum posts and test roms. It aims to (eventually) be a high accuracy emulator with a user friendly UI, a lot of features and debugging tools. Essentially, it aims to be Mesen for the SNES.
That being said, this is still in its infancy (I started writing this last month) and far from finished. Notably, it does not support any of the enhancement chips and a number of planned features are still missing (movies, cheats, netplay, etc.)
It currently uses a "pixel-based" renderer (it catches up the rendering mid-scanline as needed) and the timings should be fairly accurate (but there are definitely a large number of scenarios where they may be off by a few master cycles).
Just to be clear though, this is not bsnes-level accuracy, but in some regards it is probably more accurate than snes9x [citation needed]
A small number of games still have issues (freeze at boot, etc.), and some PPU effects are not perfectly accurate (e.g the mosaic effect in particular has issues).
With all the caveats out of the way, here's what it does offer at the moment:
-Relatively high compatibility (I would guesstimate that over 90% of games that don't use extra chips appear to boot and run properly)
-Windows/Linux support (Linux support is something I put together this morning and haven't had the chance to test much yet, but it compiles and runs)
-Video filters
-Save states
-Rewinding
-Loading from zip/7z files
-Softpatching of IPS/BPS files
-SNES mouse support (Superscope is not supported yet)
-Recording to AVI/WAV
-Debugger, including:
-Watch expressions
-Breakpoints (w/ conditional breakpoints)
-Call stack
-Memory viewer/editor (including highlighting for recent reads/writes/exec, and data/code highlighting)
-Trace logger
-PPU viewer (tilemaps, tiles, palette)
-Event viewer (the same as Mesen's)
If you've ever used Mesen, you already know your way around Mesen-S. It reuses a lot of Mesen's code (and so looks very similar in terms of both code and UI), which has allowed me to put all of this together very quickly. This also means that some features haven't been tested thoroughly - so bugs are to be expected (I am aware of a number of issues, but if you find any, please report them here!)
Also, performance isn't great at the moment (somewhat slower than Mesen in general), it's something that I hope to improve over time.
Source: https://www.github.com/SourMesen/Mesen-S/
Download: https://www.mesen.ca/Mesen-S-0.1.0.zip
Website/Documentation: None for now.
Here's what it looks like at the moment (in terms of debugging tools): Note: The emulator currently requires the 64-byte SPC bios to be put in Mesen's data folder (i.e the one you picked on startup) and named "spc700.rom". If the file cannot be found, the UI should print an error message about it when trying to load a game.
As usual, feedback, ideas and bug reports are very much welcome!
P.S: This is not an April Fools' joke, but I did release this now on purpose. :p
That being said, this is still in its infancy (I started writing this last month) and far from finished. Notably, it does not support any of the enhancement chips and a number of planned features are still missing (movies, cheats, netplay, etc.)
It currently uses a "pixel-based" renderer (it catches up the rendering mid-scanline as needed) and the timings should be fairly accurate (but there are definitely a large number of scenarios where they may be off by a few master cycles).
Just to be clear though, this is not bsnes-level accuracy, but in some regards it is probably more accurate than snes9x [citation needed]
A small number of games still have issues (freeze at boot, etc.), and some PPU effects are not perfectly accurate (e.g the mosaic effect in particular has issues).
With all the caveats out of the way, here's what it does offer at the moment:
-Relatively high compatibility (I would guesstimate that over 90% of games that don't use extra chips appear to boot and run properly)
-Windows/Linux support (Linux support is something I put together this morning and haven't had the chance to test much yet, but it compiles and runs)
-Video filters
-Save states
-Rewinding
-Loading from zip/7z files
-Softpatching of IPS/BPS files
-SNES mouse support (Superscope is not supported yet)
-Recording to AVI/WAV
-Debugger, including:
-Watch expressions
-Breakpoints (w/ conditional breakpoints)
-Call stack
-Memory viewer/editor (including highlighting for recent reads/writes/exec, and data/code highlighting)
-Trace logger
-PPU viewer (tilemaps, tiles, palette)
-Event viewer (the same as Mesen's)
If you've ever used Mesen, you already know your way around Mesen-S. It reuses a lot of Mesen's code (and so looks very similar in terms of both code and UI), which has allowed me to put all of this together very quickly. This also means that some features haven't been tested thoroughly - so bugs are to be expected (I am aware of a number of issues, but if you find any, please report them here!)
Also, performance isn't great at the moment (somewhat slower than Mesen in general), it's something that I hope to improve over time.
Source: https://www.github.com/SourMesen/Mesen-S/
Download: https://www.mesen.ca/Mesen-S-0.1.0.zip
Website/Documentation: None for now.
Here's what it looks like at the moment (in terms of debugging tools): Note: The emulator currently requires the 64-byte SPC bios to be put in Mesen's data folder (i.e the one you picked on startup) and named "spc700.rom". If the file cannot be found, the UI should print an error message about it when trying to load a game.
As usual, feedback, ideas and bug reports are very much welcome!
P.S: This is not an April Fools' joke, but I did release this now on purpose. :p