Page 24 of 26

Re: Mesen-S - SNES Emulator

Posted: Mon Jun 15, 2020 1:16 pm
by FitzRoy
What hangs Circuit USA? That game worked when I tried it, even after the Touge fix went in.

I did some prelim testing of GB, most of the games broken in higan work correctly. Let me know when you want me to library test that one.

Re: Mesen-S - SNES Emulator

Posted: Mon Jun 15, 2020 5:57 pm
by Sour
Ah, damn, my bad - I got the titles mixed up and was talking about Battle Grand Prix, not Circuit USA.

As far as GB/GBC goes, I know of these issues atm:
GB: Pinball Deluxe - freezes
GB: Urusei Yatsura - flashing in maze
GB: Renju Club - freezes
GBC: Lego racer - freezes
GBC: 3d pocket pool - graphic issues
GBC: Perfect dark - Missing background music
GBC: Oddworld Adventures II - missing speech
GBC: Ready 2 Rumble Boxing - static during speech
GBC: Cannon Fodder - buzzing sound

I've gone through a couple of lists of "hard to emulate games" (e.g: https://www.reddit.com/r/EmuDev/comment ... o_emulate/) and most of the games mentioned in this issue: https://github.com/TASVideos/BizHawk/issues/1227, but beyond that, I really haven't tested many games.

It's not stable enough to properly test yet, though. Almost done implementing super gameboy, and I'll probably get back to trying to figure out the remaining issues after that (and trying to fix some of the test roms that still fail)

Re: Mesen-S - SNES Emulator

Posted: Tue Jun 16, 2020 1:52 am
by kikutano
There is a way to pause the emulator and go foward frame by frame? This feature could be very useful when you develop :) .

Re: Mesen-S - SNES Emulator

Posted: Tue Jun 16, 2020 9:33 pm
by Sour
kikutano wrote:
Tue Jun 16, 2020 1:52 am
There is a way to pause the emulator and go foward frame by frame? This feature could be very useful when you develop :) .
You can do this either by binding a key to the "Run single frame" shortcut (in Options->Preferences->Shortcuts), or via the debugger window by using the "Run one frame" option.
"Run single frame" will pause in vblank, on scanline ~240, "Run one frame" will pause 1 full frame later, on the same scanline/dot.

Re: Mesen-S - SNES Emulator

Posted: Sat Jun 27, 2020 2:12 pm
by FitzRoy
If I load a gameboy game and resnap the window to 3x, then close and restart, gameboy games will start rendering at something like 2.5x. I think it would be good and simple to just treat window sizes as multiples of 256x240 regardless of system. I'd rather GB games have black bars than my frame rubber banding back and forth conditionally in an attempt to eliminate black space on low res handhelds.

Also, a recent commit caused "power off" on gameboy games to retain the last frame instead of going black as expected.

Re: Mesen-S - SNES Emulator

Posted: Tue Jun 30, 2020 1:55 pm
by Sour
The behavior when switching between SNES/GB and closing/reopening the emulator is still half broken. Getting this to play nicely with everything else isn't super simple partially due to the way all of this is implemented in the code. It's part of the list of things I want to fix before the next proper release.
FitzRoy wrote:
Sat Jun 27, 2020 2:12 pm
Also, a recent commit caused "power off" on gameboy games to retain the last frame instead of going black as expected.
Thanks! This was caused by the LCD blending option I added, which was causing it to blend the last GB frame into the black background - should be fixed now.

Re: Mesen-S - SNES Emulator

Posted: Mon Jul 13, 2020 4:27 am
by bklD
FitzRoy wrote:
Wed Jun 03, 2020 1:22 pm
3/4ths of the way done now. I added:

Code: Select all

Mega Man X2 (EUR)....................................................... minor CX4 timing issues cause attract mode to noticeably desync
Mega Man X2 (USA)....................................................... minor CX4 timing issues cause attract mode to noticeably desync
Pachi-Slot Monogatari - PAL Kougyou Special (JPN)....................... crashes emulator.
Rockman X2 (USA)........................................................ minor CX4 timing issues cause attract mode to noticeably desync
Virtual Bart (EUR)...................................................... hangs when bart drops onto Acclaim logo. RAM power on state values change behavior, but all options hang at some point.<br>
There was a thread 4 years ago where ikari_01 figured out the CX4 timings, which were eventually applied to bsnes
http://forums.nesdev.com/viewtopic.php?f=12&t=14647

The Pachi-Slot game has a thread here about how the board is weird and the game doesn't appear to use the SA1 in an expected way. The game works in bsnes115, but fails in higan/byuu
http://forums.nesdev.com/viewtopic.php?f=12&t=17610

I don't have any info on the PAL version of Virtual Bart, and don't remember that game ever hanging in bsnes. Changing the RAM option does affect when the game hangs, but it seems like every option hangs at some point. Also, Bart is supposed to say "ay caramba" when he drops onto the logo, but audio fails to play until the title screen with 0s or 1s. Random just hangs attempting to play that sound.
@Sour
i'm not sure that this is helpful, but it never hangs when you reset the game.

Re: Mesen-S - SNES Emulator

Posted: Sun Jul 26, 2020 11:39 am
by LucianoTheWindowsFan
Would be good with HD packs. 8-)

Re: Mesen-S - SNES Emulator

Posted: Fri Jul 31, 2020 7:30 am
by Pennywise
Is this emulator also a standalone GB emulator? I've tried loading GB games, but they aren't recognized and I can't seem to find anything in the documentation that sheds light on the subject.

Re: Mesen-S - SNES Emulator

Posted: Sat Aug 01, 2020 8:00 am
by FitzRoy
Things going ok with you, Sour? Almost a month without a git commit is a long time for you.

Re: Mesen-S - SNES Emulator

Posted: Mon Aug 03, 2020 6:37 pm
by Myself086
I released a NES emulator for SNES: viewtopic.php?f=3&t=20531

It works on a real SNES but I got reports that it doesn't work on Mesen-S no matter what game is loaded. I haven't tried Mesen-S myself.

It may be due to some unusual code not supported. Here are some examples:
- At start up, I use the stack pointer and PEA to set my clear-memory DMAs.
- Some leftover WDM for debugging, they aren't removed for the released version as they don't cause any significant time loss.
- I use some of the unused DMA bytes for highly used variables, including $43xB.
- IRQ is set where NMI is supposed to be so I can use SEI for locking thread faster.
- 16-bit STZ to $2180. I use this for queuing VRAM updates. During vblank, I write a 0 at the end before resetting the address (page aligned).
I can't think of anything else at the moment.

Let me know if you need more information.

EDIT: $43xB is open bus on Mesen-S but should be fully read/write-able.

Re: Mesen-S - SNES Emulator

Posted: Wed Aug 05, 2020 5:11 am
by bklD
Pennywise wrote:
Fri Jul 31, 2020 7:30 am
Is this emulator also a standalone GB emulator? I've tried loading GB games, but they aren't recognized and I can't seem to find anything in the documentation that sheds light on the subject.
You have to use the development build: https://ci.appveyor.com/project/Sour/me ... /artifacts

Re: Mesen-S - SNES Emulator

Posted: Wed Aug 05, 2020 1:38 pm
by NovaSquirrel
FitzRoy wrote:
Sat Aug 01, 2020 8:00 am
Things going ok with you, Sour? Almost a month without a git commit is a long time for you.
As far as I can tell he stopped because SameBoy's author started accusing him of plagiarism, and Sour didn't want to deal with that sort of thing. The Mesen Patreon is also paused.

Re: Mesen-S - SNES Emulator

Posted: Wed Aug 05, 2020 10:25 pm
by FitzRoy
Well someone should let him know that 0.001% of games being emulated right now are Gameboy games, and most of them are on phones/handhelds. There's no patreon pie to fight over for a system that primitive. It probably raised Sour's total a whole dollar and that's from someone who wanted a debugger.

Re: Mesen-S - SNES Emulator

Posted: Thu Aug 06, 2020 1:42 pm
by p5839
NovaSquirrel wrote:
Wed Aug 05, 2020 1:38 pm
As far as I can tell he stopped because SameBoy's author started accusing him of plagiarism, and Sour didn't want to deal with that sort of thing. The Mesen Patreon is also paused.
I respect Sour and his emulation work. He makes this emulation research accessible in the form of easy to use software with powerful debuggers. He is to be commended for his effort.

But what LIJI said was true. Sour claimed he "reverse engineered the timings from (SameBoy)", but looking at the code in question it was a deliberate copy, with slight formatting changes and variable renaming. Without accreditation, this is plagiarism. The smoking gun was a case statement in Mesen-S that only existed for backward-compatibility with older SameBoy save states, which had no other reason to exist at all. But there were several more examples. Furthermore, his SNES code is in many cases rewritten bsnes code. And while there's too many NES emulators to be worth narrowing it down, I suspect the same is true for his NES code.

Sour using open-source emulation code wasn't a problem, in fact it's the ideal case. Sour himself has said he doesn't do hardware testing, so without this code, the Mesen emulators wouldn't exist, and that would be a detriment to us all.

But LIJI's software license was MIT, it could not be more permissive. All Sour had to do was put a single line in his license to give credit to LIJI. That's it. That he chose to quit emulation instead is on Sour, not LIJI. Don't put the blame on LIJI for being the person to call out this behavior. Sour can still make this right with a simple apology and a tiny license update, if he so chooses.

Sour's good deeds do not give him a free pass to take credit for someone else's work.