Post subject: Gambatte and Bizhawk for GB
Joined: 6/14/2014
Posts: 47
In the current route of Pokémon Yellow No Save Corruption, we use a sound loading trick that works on the original versions of the game, that works on the BGB emulator, but that doesn't work on Gambatte for Bizhawk. However, I love Emuhawk, is there a way to load another "kind" of emulator (not Gambatte) for BizHawk ?
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
Unless you want to run in SGB mode, no. If you or someone else knows how to fix this sound loading trick in Gambatte to match original hardware behavior, that patch would be accepted.
Joined: 6/14/2014
Posts: 47
Well, I don't know how exactly. That's sad I can't use my favorite emulator. I did that run a bit with BGB, and apparently, we load a special value that matches with the special stat of the last pokémon met into a sound value with the use of the trainer-flying glitch. I don't know if that could help you, however I hope you'll do a patch to fix that :)
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
I know we had a pokeymans issue once that someone identified the actual issue in the gambatte code, and it was fixed, so it's possible that someone else might know...
Joined: 6/14/2014
Posts: 47
If I send you the movie so you could see that the sound doesn't correctly load, would that help you seeing how Gambatte is wrong ?
Joined: 6/7/2015
Posts: 1
After we discovered this speedrun route works on console and BGB but not Gambatte/Bizhawk we investigated a little and found out that the issue is caused by Gambatte's implementation of bankswitching for MBC5 specifically. MBC5 is capable of bankswitching to bank 0 (having bank 0 accessible from 4000-7FFF as well as 0000-3FFF) but (lib)gambatte assumes that any bankswitch to bank 0 retrieves bank 1 instead like in earlier MBCs.. This particular glitch setup causes Pokemon Yellow's audio engine to bankswitch to bank 0 and read invalid data from there. The invalid data in bank 0 leaves the game in a more stable state where we can proceed to catch Missingno, while the equivalent data in bank 1 instead softlocks the game. TL;DR: this inaccuracy is caused by an inaccuracy in gambatte's MBC5 emulation, to fix it adjust Gambatte's MBC5.adjustedRombank function to allow bank switches to bank 0.
Joined: 6/14/2014
Posts: 47
Dabomstew wrote:
After we discovered this speedrun route works on console and BGB but not Gambatte/Bizhawk we investigated a little and found out that the issue is caused by Gambatte's implementation of bankswitching for MBC5 specifically. MBC5 is capable of bankswitching to bank 0 (having bank 0 accessible from 4000-7FFF as well as 0000-3FFF) but (lib)gambatte assumes that any bankswitch to bank 0 retrieves bank 1 instead like in earlier MBCs.. This particular glitch setup causes Pokemon Yellow's audio engine to bankswitch to bank 0 and read invalid data from there. The invalid data in bank 0 leaves the game in a more stable state where we can proceed to catch Missingno, while the equivalent data in bank 1 instead softlocks the game. TL;DR: this inaccuracy is caused by an inaccuracy in gambatte's MBC5 emulation, to fix it adjust Gambatte's MBC5.adjustedRombank function to allow bank switches to bank 0.
Thanks Dabom :)
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
Dabomstew wrote:
After we discovered this speedrun route works on console and BGB but not Gambatte/Bizhawk we investigated a little and found out that the issue is caused by Gambatte's implementation of bankswitching for MBC5 specifically. MBC5 is capable of bankswitching to bank 0 (having bank 0 accessible from 4000-7FFF as well as 0000-3FFF) but (lib)gambatte assumes that any bankswitch to bank 0 retrieves bank 1 instead like in earlier MBCs.. This particular glitch setup causes Pokemon Yellow's audio engine to bankswitch to bank 0 and read invalid data from there. The invalid data in bank 0 leaves the game in a more stable state where we can proceed to catch Missingno, while the equivalent data in bank 1 instead softlocks the game. TL;DR: this inaccuracy is caused by an inaccuracy in gambatte's MBC5 emulation, to fix it adjust Gambatte's MBC5.adjustedRombank function to allow bank switches to bank 0.
Fixed in SVN, thanks.
Joined: 6/14/2014
Posts: 47
natt wrote:
Dabomstew wrote:
After we discovered this speedrun route works on console and BGB but not Gambatte/Bizhawk we investigated a little and found out that the issue is caused by Gambatte's implementation of bankswitching for MBC5 specifically. MBC5 is capable of bankswitching to bank 0 (having bank 0 accessible from 4000-7FFF as well as 0000-3FFF) but (lib)gambatte assumes that any bankswitch to bank 0 retrieves bank 1 instead like in earlier MBCs.. This particular glitch setup causes Pokemon Yellow's audio engine to bankswitch to bank 0 and read invalid data from there. The invalid data in bank 0 leaves the game in a more stable state where we can proceed to catch Missingno, while the equivalent data in bank 1 instead softlocks the game. TL;DR: this inaccuracy is caused by an inaccuracy in gambatte's MBC5 emulation, to fix it adjust Gambatte's MBC5.adjustedRombank function to allow bank switches to bank 0.
Fixed in SVN, thanks.
Wait, this is fixed yet ? Where can I download it ?
Joined: 10/31/2006
Posts: 134
Joined: 6/14/2014
Posts: 47
How do you compile it ?
mz
Emulator Coder, Player (79)
Joined: 10/26/2007
Posts: 693
You're just fucking stupid, everyone hates you, sorry to tell you the truth. no one likes you, you're someone pretentious and TASes only to be on speed game, but don't have any hope, you won't get there.
Joined: 6/14/2014
Posts: 47
I don't have enough free space for Visual Studio Community. Couldn't someone compile it and link it ? Please
mz
Emulator Coder, Player (79)
Joined: 10/26/2007
Posts: 693
You're just fucking stupid, everyone hates you, sorry to tell you the truth. no one likes you, you're someone pretentious and TASes only to be on speed game, but don't have any hope, you won't get there.
Joined: 6/14/2014
Posts: 47
Thanks :)
Player (164)
Joined: 4/14/2012
Posts: 25
Location: Japan
Can I request to update GBhawk core to latest Gambatte? I thought GBhawk core is updated at every major updates, but it's not likely so. A major bug on the joypad irq are fixed in April. it effects to memory glitches of DQ3, DQM2 and other games for sure.
Editor
Joined: 3/31/2010
Posts: 1466
Location: Not playing Puyo Tetris
tetora_X wrote:
Can I request to update GBhawk core to latest Gambatte? I thought GBhawk core is updated at every major updates, but it's not likely so. A major bug on the joypad irq are fixed in April. it effects to memory glitches of DQ3, DQM2 and other games for sure.
Do you know what version fixes this issue? Are there other issues that this new version introduces?
When TAS does Quake 1, SDA will declare war. The Prince doth arrive he doth please.
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
tetora_X wrote:
Can I request to update GBhawk core to latest Gambatte? I thought GBhawk core is updated at every major updates, but it's not likely so. A major bug on the joypad irq are fixed in April. it effects to memory glitches of DQ3, DQM2 and other games for sure.
I manually patched in some joypad irq changes. Would you be willing to test them and tell me if they fix the expected stuff?
Player (164)
Joined: 4/14/2012
Posts: 25
Location: Japan
hegyak wrote:
Do you know what version fixes this issue? Are there other issues that this new version introduces?
It was fixed at the latest version. (gambatte_qt_win32-r571, 2015-04-26)
natt wrote:
I manually patched in some joypad irq changes. Would you be willing to test them and tell me if they fix the expected stuff?
Awesome. Yes, of course.
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
tetora_X wrote:
hegyak wrote:
Do you know what version fixes this issue? Are there other issues that this new version introduces?
It was fixed at the latest version. (gambatte_qt_win32-r571, 2015-04-26)
natt wrote:
I manually patched in some joypad irq changes. Would you be willing to test them and tell me if they fix the expected stuff?
Awesome. Yes, of course.
Give this build a try when you have a chance. It's expected that the joypad stuff is fixed. https://dl.dropboxusercontent.com/u/75355/BizHawk-developer.zip
Player (164)
Joined: 4/14/2012
Posts: 25
Location: Japan
natt wrote:
Give this build a try when you have a chance. It's expected that the joypad stuff is fixed. https://dl.dropboxusercontent.com/u/75355/BizHawk-developer.zip
Yes, it's fixed. Awesome work!
Post subject: Yes I'm aware of the necro length
Pokota
He/Him
Joined: 2/5/2014
Posts: 779
Where are the directions for starting Gambatte's dual mode from within BizHawk?
Adventures in Lua When did I get a vest?
MarbleousDave
He/Him
Player (13)
Joined: 9/12/2009
Posts: 1559
Gambatte doesn't support motion control for games like Kirby Tilt 'n Tumble. To TAS those games, we'll have to use VBA for now.
Editor, Expert player (2328)
Joined: 5/15/2007
Posts: 3931
Location: Germany
Does VBA support tilting or do you mean we use patched ROMs?
Editor
Joined: 3/31/2010
Posts: 1466
Location: Not playing Puyo Tetris
MUGG wrote:
Does VBA support tilting or do you mean we use patched ROMs?
If I remember right, VBA had control options for Tilting the device.
When TAS does Quake 1, SDA will declare war. The Prince doth arrive he doth please.