Mesen-S - SNES Emulator
Moderator: Moderators
Forum rules
- For making cartridges of your Super NES games, see Reproduction.
Re: Mesen-S - SNES Emulator
Not sure if it's been requested or not a but Ram search aka Pro Action Replay Cheat Search feature like in Geiger's SNES9x version or ZSNES would round out this awesome emulator's features.
-
- Posts: 1565
- Joined: Tue Feb 07, 2017 2:03 am
Re: Mesen-S - SNES Emulator
Do you have any plans to add a simpler/other labels support format? CC65 DBG seems to be a incredibly dense binary format that isn't really documented or easy for something that hasn't come from C to build.
Re: Mesen-S - SNES Emulator
It's something I want to get around to eventually - there's also an issue on github requesting it: https://github.com/SourMesen/Mesen-S/issues/88
.dbg files are text files, but I agree they aren't exactly something you'd want to try generating via anything other than CA65/CC65. I do want to add support for a custom format (e.g like mesen's .mlb files) that matches 1:1 with the label system. If there are other formats you would like to have support for, let me know. (I know WLA has some symbol format that I will probably try adding support for, too)Oziphantom wrote: ↑Thu Jan 16, 2020 2:37 amDo you have any plans to add a simpler/other labels support format? CC65 DBG seems to be a incredibly dense binary format that isn't really documented or easy for something that hasn't come from C to build.
-
- Posts: 1565
- Joined: Tue Feb 07, 2017 2:03 am
Re: Mesen-S - SNES Emulator
WLA-DX and 64tass would be what I would convert to it. I only looked at the source code for the cc65 format, as I don't use cc65, it looked like it was doing binary with its "extra table, lists" etc.
-
- Posts: 1565
- Joined: Tue Feb 07, 2017 2:03 am
Re: Mesen-S - SNES Emulator
The Data/Code detection can't handle code jumping over data it seems
I have unidentified areas show as data selected in the options.
Source
Code: Select all
jmp postData
SpriteData
.EQU SD_StartXY $8078-$2010
@Stereo
.DW SD_StartXY ; VH 0x68
.DB 0
Re: Mesen-S - SNES Emulator
Can you try resetting the CDL log (via the file menu)? If you're recompiling the same file and running it over and over, the CDL log from the previous compilations is still used, which means regions that were marked as code before (and aren't anymore) will still end up being disassembled.Oziphantom wrote: ↑Sat Feb 08, 2020 5:23 amThe Data/Code detection can't handle code jumping over data it seems
As far as I can tell from the code, the disassembler should be stopping its disassembly when it hits a $4C jump instruction, so the most likely culprit here would be the CDL log.
-
- Posts: 1565
- Joined: Tue Feb 07, 2017 2:03 am
Re: Mesen-S - SNES Emulator
AHA, the code log persists. Is there an command line option to reset it.
I see that you want it to persists when hacking/reversing, but for dev not so much.
I see that you want it to persists when hacking/reversing, but for dev not so much.
Re: Mesen-S - SNES Emulator
There's no automated way of deleting the log at the moment (the same is true w/ Mesen)
I've been meaning to add an option to automatically reset the CDL log whenever the ROM is changed, though.
I've been meaning to add an option to automatically reset the CDL log whenever the ROM is changed, though.
Re: Mesen-S - SNES Emulator
Will you ever add support for SPC7110 chip?
Momotarou Densetsu Happy nor Tengai Makyou Zero (original files) are not working yet.
Also noticed, games that have 1024KB of SRAM crash. Though it's probably hacks only, still worth mentioning.
Momotarou Densetsu Happy nor Tengai Makyou Zero (original files) are not working yet.
Also noticed, games that have 1024KB of SRAM crash. Though it's probably hacks only, still worth mentioning.
Re: Mesen-S - SNES Emulator
SPC7110 support is now available as of the latest commit. It hasn't been thoroughly tested, though, so if you find issues with it, let me know.
As far as SRAM, I had limited it to 256KB to match what bsnes limits it to (iirc this fixed some prototype ROM that did not set the value in the header properly.) As far as I know, no licensed game uses more than this. What rom hacks specifically were you having trouble with? I can look into changing the limit again if it fixes them.
Re: Mesen-S - SNES Emulator
Nice, thanks!
As for RAM, there's quite a few games using 512K, such as:
Dezaemon
Pebble Beach no Hatou - Tournament Edition (SA-1)
Marvelous (SA-1)
Harukanaru Augusta 3 (SA-1)
maybe more.
Also, the hacks I've tested are mainly SMW hacks:
https://www.smwcentral.net/?p=section&a ... s&id=14812
https://www.smwcentral.net/?p=section&a ... s&id=11254
Also Gradius III and Contra SA-1 hacks:
https://github.com/VitorVilela7/SA1-Root
Could be the fault of SMW hacks.
Since the music does break some emulators.
Though it works on snes9x.
Thanks for checking!
As for RAM, there's quite a few games using 512K, such as:
Dezaemon
Pebble Beach no Hatou - Tournament Edition (SA-1)
Marvelous (SA-1)
Harukanaru Augusta 3 (SA-1)
maybe more.
Also, the hacks I've tested are mainly SMW hacks:
https://www.smwcentral.net/?p=section&a ... s&id=14812
https://www.smwcentral.net/?p=section&a ... s&id=11254
Also Gradius III and Contra SA-1 hacks:
https://github.com/VitorVilela7/SA1-Root
Could be the fault of SMW hacks.
Since the music does break some emulators.
Though it works on snes9x.
Thanks for checking!
Re: Mesen-S - SNES Emulator
Kilobytes vs kilobits.
Dezaemon has 1024 kilobits, which is 128 kilobytes. That is the largest official size of any licensed game.
I allow up to 2048 kilobits or 256 kilobytes, because of homebrew titles.
You have to emulate it like ZSNES and have a separate echo buffer that's not part of APURAM to run them. That and a few other things (no MUL/DIV wait states, etc.)
I don't know if Sour wants to get into ZSNES emulation or not, but it's all the rage these days.
Dezaemon has 1024 kilobits, which is 128 kilobytes. That is the largest official size of any licensed game.
I allow up to 2048 kilobits or 256 kilobytes, because of homebrew titles.
Older Addmusic-based SMW ROM hacks set echo buffer sizes that are so large they overwrite SPC700 program code and crash.Could be the fault of SMW hacks.
Since the music does break some emulators.
You have to emulate it like ZSNES and have a separate echo buffer that's not part of APURAM to run them. That and a few other things (no MUL/DIV wait states, etc.)
I don't know if Sour wants to get into ZSNES emulation or not, but it's all the rage these days.
Re: Mesen-S - SNES Emulator
You're right. I might have gotten mixed it up.
As far as SMW hacks goes, don't emulate it like ZSNES.
Accuaracy > Bad programming.
I really like Mesen-S so far but it shouldn't aim too much on supporting broken games at all.
If they don't work on real hardware they certainly shouldn't be allowed to work on an emulator either.
As far as SMW hacks goes, don't emulate it like ZSNES.
Accuaracy > Bad programming.
I really like Mesen-S so far but it shouldn't aim too much on supporting broken games at all.
If they don't work on real hardware they certainly shouldn't be allowed to work on an emulator either.
Re: Mesen-S - SNES Emulator
In before someone builds hardware that modifies the platform to use 128K ARAM, with the echo buffer in the top half.
Split to Hardware-implementable emulator inaccuracies.
Split to Hardware-implementable emulator inaccuracies.
Re: Mesen-S - SNES Emulator
Thanks for the list!
It sounds like at least some of them should be working on hardware, from what I've read.
I ended up spending some time on the first one you linked, but while it boots in bsnes-plus, it doesn't appear to boot in current bsnes. The game appears to try writing to a SA1-only register from the S-CPU, which should fail as far as I know. Looking at bsnes-plus' code, I can't see anything that separates the SA1-only registers from those that are shared, so it appears to be more permissive than the hardware? (bsnes does limit this, which is probably why it fails to boot in bsnes, too) There's a video of the *8th* version of this hack supposedly running on a proper SA-1 board, but this appears to be the 9th version, so .. I don't know? :p
The contra one at the very least boots in bsnes, so it's pretty likely there's something wrong on my end (but I haven't checked anything beyond confirming it works in bsnes.) I'll try to take a look at all of them more in-depth when I have some more time.
And no worries about the kilobits vs kilobytes thing - I've tricked myself into believing a board had 1 megabyte of SRAM a couple of times because some websites list the values as kilobits instead of kilobytes, too.
As far as ZSNES emulation, I think I'll pass on that one :p At least for the foreseeable future. I'm ok with adding (optional) support for things that could be done inside the cartridge itself (e.g bigger rom/ram sizes, etc.) to accomodate homebrew, but something that just can't be done on an unmodified SNES is out of scope (e.g writing to VRAM in the middle of the rendering like zsnes apparently allows)