Re: bsnes-mcfly: The v073 and bsnes-classic killer
Posted: Mon Jun 25, 2018 7:46 am
I have since gathered more information about the performance profile Cx4 bug: it also affects higan v098, the last version of higan to have the balanced and performance profiles. And just like with bsnes-mcfly, higan-accuracy and higan-balanced can run Mega Man X2 the first time, and higan-performance requires reloading the game in order to work. So this isn't a bug I introduced.
The bug also affects Mega Man X3, the only other Cx4-based game. And when running my homebrew program that dumps the ST018 and Cx4 firmwares and the DSP# data ROMs, bsnes-mcfly outright crashes while higan simply hangs (only with the performance profile, of course).
The scary part is that it likely will work if I bring back high-level emulation of the Cx4 like what bsnes v073 and bsnes-classic have.
...I really don't want to become the next bsnes-mercury. If I bring back high-level emulation of the DSPs and the Cx4, I'll have to modify it slightly in order to still require the firmware in order to activate. I don't want to encourage people to simply ignore the firmwares as they can with bsnes-mercury.
In fact, I once made an April Fools satire of Lunar Magic that I called Lunar SNES. It restored the HLE of the DSPs and Cx4 and disallowed headerless ROMs (offering to convert your ROMs to headered). I made it stop working after April 1st for exactly this reason.
EDIT: higan v094's performance profile also suffers from the same bug. I think it goes all the way back to bsnes v080, when low-level Hitachi DSP (Cx4) emulation was introduced.
EDIT 2: Yep, bsnes v080's performance profile cannot handle the Cx4 either. But unlike with higan v094 and later, reloading the game wouldn't fix it. There was no way to play Mega Man X2 or Mega Man X3 on bsnes v080's performance profile!
EDIT 3: Exactly as I feared. bsnes v079 and earlier, which have high-level emulation of the Cx4, can run Mega Man X2 and Mega Man X3 in the performance profile. It was the switch to low-level emulation that broke those 2 games in the performance profile. And that means that bsnes-classic has an advantage in this area. Well, at least the Cx4 firmware is legal to redistribute, and the other coprocessors (DSP#, ST010, ST011, and ST018) appear to work just fine with LLE in the performance profile.
The bug also affects Mega Man X3, the only other Cx4-based game. And when running my homebrew program that dumps the ST018 and Cx4 firmwares and the DSP# data ROMs, bsnes-mcfly outright crashes while higan simply hangs (only with the performance profile, of course).
The scary part is that it likely will work if I bring back high-level emulation of the Cx4 like what bsnes v073 and bsnes-classic have.
...I really don't want to become the next bsnes-mercury. If I bring back high-level emulation of the DSPs and the Cx4, I'll have to modify it slightly in order to still require the firmware in order to activate. I don't want to encourage people to simply ignore the firmwares as they can with bsnes-mercury.
In fact, I once made an April Fools satire of Lunar Magic that I called Lunar SNES. It restored the HLE of the DSPs and Cx4 and disallowed headerless ROMs (offering to convert your ROMs to headered). I made it stop working after April 1st for exactly this reason.
EDIT: higan v094's performance profile also suffers from the same bug. I think it goes all the way back to bsnes v080, when low-level Hitachi DSP (Cx4) emulation was introduced.
EDIT 2: Yep, bsnes v080's performance profile cannot handle the Cx4 either. But unlike with higan v094 and later, reloading the game wouldn't fix it. There was no way to play Mega Man X2 or Mega Man X3 on bsnes v080's performance profile!
EDIT 3: Exactly as I feared. bsnes v079 and earlier, which have high-level emulation of the Cx4, can run Mega Man X2 and Mega Man X3 in the performance profile. It was the switch to low-level emulation that broke those 2 games in the performance profile. And that means that bsnes-classic has an advantage in this area. Well, at least the Cx4 firmware is legal to redistribute, and the other coprocessors (DSP#, ST010, ST011, and ST018) appear to work just fine with LLE in the performance profile.