Mesen-S - SNES Emulator
Moderator: Moderators
Forum rules
- For making cartridges of your Super NES games, see Reproduction.
Re: Mesen-S - SNES Emulator
I'm afraid but SPC-7110 emulation still is not working properly, at least for Tengai Makyou Zero (not the translation, since that doesn't even boot yet).
The RTC fails to verify upon first time check. Or was RTC not even implemented yet?
The RTC fails to verify upon first time check. Or was RTC not even implemented yet?
Re: Mesen-S - SNES Emulator
The RTC implementation is fairly incomplete and rough around the edges, but it (mostly) works. I think it can sometimes fail due to way it's implemented right now, but I just tried 4 times and it worked each time. Did you only try a single time? Or if you tried using the translation patch first and it had the same filename, you might have a buggy .srm and/or .rtc file in your saves folder that's causing an issue somehow?
Re: Mesen-S - SNES Emulator
Guess my old .srm/.rtc were the issue. Deleted them and now it works for the japanese version of the game. Thanks!
The translation still doesn't boot (though creates .srm and .rtc files) but then again it was expanded and most likely isn't supported yet because of its mapping.
The translation still doesn't boot (though creates .srm and .rtc files) but then again it was expanded and most likely isn't supported yet because of its mapping.
Re: Mesen-S - SNES Emulator
The translation involves its own bespoke memory map, adding an extra 1MB ROM in banks $40-$4F, which are normally open bus. It does work on hardware, but requires extra parts. See this thread
Re: Mesen-S - SNES Emulator
Ah, I see. That explains it.
Also, when testing various official games I noticed that Chou Aniki - Bakuretsu Rantou Hen (Japan) isn't working.
Is there anything weird going on with that one?
Also, when testing various official games I noticed that Chou Aniki - Bakuretsu Rantou Hen (Japan) isn't working.
Is there anything weird going on with that one?
Re: Mesen-S - SNES Emulator
Why should it be? The game isn't booting in Mesen-S and it's a simple LoROM game.
Re: Mesen-S - SNES Emulator
It looks like the answer to that is "yes". :p I wasn't aware it froze at all (looks like it worked in 0.1.0, but not in any version after this).
The game enables NMI in the middle of vertical blank (with a 16-bit write to 4200+4201), and it expects the instruction that follows the write to run before the NMI handler is called. Mesen-S' current logic caused the NMI handler to run first, which caused the game to freeze. Should be fixed now - thanks!
Also, I added support for the Tengai Makyou translation yesterday, too.
Re: Mesen-S - SNES Emulator
Ah, I see. Thanks for the update.
EDIT: Backup RTC seems to be broken for Tengai (both, the original and translation). Deleted RTC and save data before.
EDIT: Backup RTC seems to be broken for Tengai (both, the original and translation). Deleted RTC and save data before.
Re: Mesen-S - SNES Emulator
Both seem to be working fine on my end. Are you fast forwarding through the initial setup? If so, you'll cause it to fail, because the game expects X seconds to pass between 2 parts of the code, and if you're fast forwarding, less time will pass (since time doesn't get fast forwarded when fast forwarding)
I took another look at these, and both fail to load in bsnes v114, too. They load in bsnes-plus because it doesn't restrict which CPU can write to which registers. I'm not completely certain which is correct, but as far as I know bsnes should be.Ice Man wrote: ↑Mon Feb 17, 2020 2:08 amAlso, 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
The Gradius/Contra 3 romhacks were broken because of the way I had implemented the SA-1's irq/etc vectors. Both should work now.
There's a new option in the debugger (in the file menu) to auto-reset the CDL log whenever the rom is altered.Oziphantom wrote: ↑Sat Feb 08, 2020 7:23 am 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.
.sym files are also tentatively supported - but in my testing, the labels generated by wla-dx seem to work differently between the 2 open source projects I tried compiling, so I'm not quite sure which way is the correct way. It also seems to have a lot of trouble properly exporting the code<->rom line mappings, too, which prevented me from implementing source view like what is available in CA65.
I also added a custom format (.msl files) which is similar to Mesen's .mlb label files that you can use to export/import labels in the debugger.
Re: Mesen-S - SNES Emulator
Isn't it just beyond incredible that there are seemingly hundreds of titles in a library of only ~2,000 unique non-regional-variant games that do crazy things like this and break if even the tiniest little detail is wrong? I get how things like this can slip through testing, but not the frequency with which it happens. It's madness.Sour wrote:The game enables NMI in the middle of vertical blank (with a 16-bit write to 4200+4201), and it expects the instruction that follows the write to run before the NMI handler is called.
The newer bsnes builds are correct. Registers weren't locked to individual 65816 cores previously, but are correctly locked out now.Sour wrote:I took another look at these, and both fail to load in bsnes v114, too. They load in bsnes-plus because it doesn't restrict which CPU can write to which registers. I'm not completely certain which is correct, but as far as I know bsnes should be.
I guess it is only karmic justice that bsnes should have to become a bsnes emulator as well.
-
- Posts: 1565
- Joined: Tue Feb 07, 2017 2:03 am
Re: Mesen-S - SNES Emulator
There's a new option in the debugger (in the file menu) to auto-reset the CDL log whenever the rom is altered.Oziphantom wrote: ↑Sat Feb 08, 2020 7:23 am 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.
.sym files are also tentatively supported - but in my testing, the labels generated by wla-dx seem to work differently between the 2 open source projects I tried compiling, so I'm not quite sure which way is the correct way. It also seems to have a lot of trouble properly exporting the code<->rom line mappings, too, which prevented me from implementing source view like what is available in CA65.
Is there binary release with this feature? also is there documentation on the like format? I've found docs for the NES emulator but not the SNES one?
Re: Mesen-S - SNES Emulator
Oh, that explains it. My fault on that one. However, it still does not work when one just "Resets" the system. It only seems to work when I "Power Cycle". All good now.Sour wrote: ↑Sun Mar 01, 2020 4:46 pm Are you fast forwarding through the initial setup? If so, you'll cause it to fail, because the game expects X seconds to pass between 2 parts of the code, and if you're fast forwarding, less time will pass (since time doesn't get fast forwarded when fast forwarding)
Thanks!
Re: Mesen-S - SNES Emulator
Yea, it does somehow seem like a pretty high proportion of games somehow end up relying on really obscure behavior. The NES didn't seem like it had quite as many cases, but that's probably just to the system itself having far less features, which means far fewer ways to rely on a hardware quirk. :pbyuu wrote: ↑Sun Mar 01, 2020 5:03 pmIsn't it just beyond incredible that there are seemingly hundreds of titles in a library of only ~2,000 unique non-regional-variant games that do crazy things like this and break if even the tiniest little detail is wrong? I get how things like this can slip through testing, but not the frequency with which it happens. It's madness.
Binaries for the latest commit are always available from appveyor (linked in the readme): https://ci.appveyor.com/project/Sour/me ... /artifactsOziphantom wrote: ↑Mon Mar 02, 2020 1:11 amIs there binary release with this feature? also is there documentation on the like format? I've found docs for the NES emulator but not the SNES one?
There is no documentation at all for Mesen-S. Took me several days/weeks of work to write Mesen's docs originally (and it didn't have documentation at all for like 2 years), so I'm not exactly in a hurry to get that done... There's a lot of overlap between both of them, so a lot of the Mesen documentation applies to Mesen-S, too, though.
The label format is pretty simple, it's just a prefix for the memory type (https://github.com/SourMesen/Mesen-S/bl ... bel.cs#L23) followed by the address, label and comment (optional). So e.g: "PRG:4000:MyLabel:This is a comment" would define a label for byte $4000 in the .sfc file.
The Japanese version of the game does explicitly say to power cycle, but the translation ends up saying to "reset". I'm guessing it's meant to fail if you just reset, but unsure?
Re: Mesen-S - SNES Emulator
Oh, good to know. Thank you! Might be worth telling the translator to fix it.