#7214: CasualPokePlayer's SGB Gamera: Daikaijuu Kuuchuu Kessen in 19:29.90

Submission Text Full Submission Page

Game objectives

  • Emulator used: BizHawk 2.6.3 dev
  • Breaks da rulez!
  • Testing da rulez!

Comments

Gamera is basically some Godzilla clone in Japan that became its own thing around there. This game is "based" on the movie of the same name, although the game's plot doesn't resemblance the movie's at all.
Now to get the elephant out of the room, why did I use SGB mode, and on Gambatte? This was mainly for testing SGB stability on Gambatte (which is now stable). And as for Gambatte, I have been adding support for SGB mode for use in BizHawk, featuring nearly everything an HLE SGB core can offer, including sound support.
To be clear, this is an HLE core, just like VBA and SameBoy. Every SGB thing is done with "hacks" so to say, mimicking the packet/VRAM transfers and such using native C++ code instead of "proper" emulated SNES code (which would be LLE). This ends up being interesting for acceptability. VBA's SGB mode was banned weirdly. The reason on the movie rules says it is banned due to "poor sound emulation," being the lack of SNES sound. However, some staff members say a slightly different story, saying it is banned due to not emulating the full SGB (ie, because it was HLE and not LLE), with one oddly citing the lack of SNES sound as such.
To respond to the last point, you do not have to emulate the entire SNES to get SNES audio. The SNES's APU has to be emulated (which blargg's snes_spc can easily provide), with sound transfers from VRAM to SPC RAM simply being able to be memcpy'd over, and sound commands just writing to SPC I/O using native C++ code instead of emulated SNES code.
Also, these being said to be "hacks" and thus unacceptable is also slightly weird. We accept HLE stuff for other systems, e.g. N64/GC/Wii/etc. If HLE stuff there is acceptable there, why not here? SGB HLE still mimics what the SNES does with the packet transfers and such. It's not actually too unlike the HLE approached done on the systems I mentioned.
Of course, SGB HLE can't do everything. SNES code can be uploaded and executed on the SGB, which is impossible to emulate without a full SNES (i.e. LLE). However, this is effectively restricted to a single commerical game (Space Invaders), some glitch playaround like Pokemon Plays Twitch, or some homebrew game. Effectively very little is actually lost going HLE, especially if sound support is put in.
This game in particular actually does end up being fairly interesting from an emulation perspective and is a factor in why it was choosen. Simply be, multiplayer. To preface this, multiplayer is handled by the ICD2 chip rather than the BIOS, so HLE is on equal grounds here with LLE. This game will constantly poll player one and player two. It does it in a fairly nonstandard way, which breaks on nearly every SGB implementation, including BSNESv115 (old BSNES doesn't break, although the game is poorly emulated in the sound department regardless, so using it was undesirable). I ended up writing testroms to research how this worked, which led to the discovery that original SGB multiplayer tests were misinterpreted due to a behavior written in the Pan Docs by an unknown source, which was wrong. More details can be read here: https://github.com/bsnes-emu/bsnes/issues/220
My personal preference in this debacle is for only LLE SGB emulators to be accepted anyways, as I see SGB HLE for casual players rather than ones aiming for accuracy. However, I'm not at liberty to decide this debacle, so I will leave it to this submission which I totally can resync to normal GB emulation anyways since RNG doesn't advance during SGB lag lol

Stage by stage comments

There are five opponents in the game, with 2 rounds needing to be won. Every fight here has the same strategy essentially. Charge, claw, charge, jet strike, throw. This ends the fight in 5 turns.
Charging is good to use due to it having a short animation, and doubling the damage of the next move. Note that getting hit by the opponent during the charge does not cancel the charge, although it does cancel the "fully charged" animation.
While the claw attack is slower than the throw attack, it ends up good to use due to it having the side effect of backing up Gamera. This allows for the jet strike attack to be used.
The jet strike is a powerful move, letting Gamera end the fight in 5 turns. It also has the ability to knock down the opponent, rendering them immobile for a turn.
The throw is the fastest move in the game, and is enough to land the final hit for the KO. An exception is at the final round of the last fight, which I use the most interesting attack out of my selection, since input ended right when the attack was inputted.
It should be noted RNG is easy to manipulate, since pressing B at any point seems to change RNG.
This TAS might be improvable with better luck manipulation or a better fight strategy, but I couldn't find anything better here.

Samsara: Setting to Delayed pending an official BizHawk 2.6.3 release. Resetting to new with the release of 2.6.3.
Memory: Judging
Memory: No obvious signs of sloppiness but admittedly I feel only somebody that closely knows the game would be able to spot something like that.
Happy face Gamera rules.
Accepting
fsvgm777: Contrary to what people may think, Gamera is not a misspelling of camera... I mean, what am I talking about?
Anyway, processing,

TASVideoAgent
They/Them
Experienced Forum User, Moderator
Joined: 8/3/2004
Posts: 11819
Location: 127.0.0.1
Experienced Forum User, Published Author (14)
Joined: 4/1/2016
Posts: 209
Location: Cornelia Castle
Nice work, yes vote! As for SGB in Gambatte, I don't really like the idea. BizHawk already has an SGB core that actually plays the whole Bios startup (including the sound) before going into the game. If we are going for accuracy, I feel like this is close, but not quite the answer.
DJ Incendration Believe in Michael Girard and every speedrunner and TASer!
ThunderAxe31
He/Him
Experienced Forum User, Judge, Moderator, Published Author (1258)
Joined: 9/12/2016
Posts: 1461
Location: Southern Italy
Gameboy TASer of 2017
Some people don't like SGB because it plays at a slightly faster framerate than actual GB/C, leading to misleading record comparisons. However, that would not be the case for SGB2, as it uses an internal clock faithful to actual GB/C speed. Why not implementing SGB2 emulation?
my personal page - my YouTube channel - my GitHub - my Discord: ThunderAxe31#1512 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Alyosha
He/Him
Editor, Experienced Forum User, Published Author (3927)
Joined: 11/30/2014
Posts: 2392
Location: US
NES TASer of 2015
The TAS is unwatchably boring, but it's pretty impressive how fast you were able to put all this together. I'm not really familiar with the technical aspects of SGB (besides the clock issue between SGB 1 and 2), would TASes generally sync between Gambatte and BSNES? If there is some technical reason they wouldn't, what would it be?
Experienced Forum User, Judge, Moderator, Published Author (499)
Joined: 2/26/2020
Posts: 408
Location: California
Rookie of 2020Gameboy TASer of 2020Lucky TAS of 2020
ThunderAxe31 wrote:
Some people don't like SGB because it plays at a slightly faster framerate than actual GB/C, leading to misleading record comparisons. However, that would not be the case for SGB2, as it uses an internal clock faithful to actual GB/C speed. Why not implementing SGB2 emulation?
My implementation in Gambatte is currently SGB2 only (being it literally requests the SGB2 bootrom). Which happens to be good here too as the movie parser wouldn't parse the cycle count correctly for SGB1.
Alyosha wrote:
I'm not really familiar with the technical aspects of SGB (besides the clock issue between SGB 1 and 2), would TASes generally sync between Gambatte and BSNES? If there is some technical reason they wouldn't, what would it be?
The non-v115 BSNES core has horrible GB emulation, around VBA levels of accuracy. Even then, inputs wouldn't quite sync, since inputs on a normal SGB would be locked to the SNES's framerate, while Gambette just has the whole sync frames to GB's VBlank thing (nor could it know what time is SNES's VBlank really since there isn't an SNES in there).
Alyosha
He/Him
Editor, Experienced Forum User, Published Author (3927)
Joined: 11/30/2014
Posts: 2392
Location: US
NES TASer of 2015
re there any (not input related) timing inaccuracies that come up from not having the SNES there?
Experienced Forum User, Judge, Moderator, Published Author (499)
Joined: 2/26/2020
Posts: 408
Location: California
Rookie of 2020Gameboy TASer of 2020Lucky TAS of 2020
Alyosha wrote:
re there any (not input related) timing inaccuracies that come up from not having the SNES there?
I'm not sure what you mean. There aren't really any actual timing issues which are reliant on the SNES, at least as far as movie syncing goes. The only SGB specific thing that can cause a desync is multiplayer emulation (for slightly duh reasons, and since the GB can read out which player is active). Everything else is invisible to the GB.
Memory
She/Her
Admin Assistant, Experienced Forum User, Judge, Published Author (1816)
Joined: 3/20/2014
Posts: 1593
Location: Dumpster
GBA TASer of 2020GBA TAS of 2020GBA TASer of 2019Exotic platforms TAS of 2018
[16:36:31] <Mothrayas> I have to say this argument about robot drug usage is a lot more fun than whatever else we have been doing in the past two+ hours
[16:08:10] <BenLubar> a TAS is just the limit of a segmented speedrun as the segment length approaches zero
GoddessMaria, Samsara, and fsvgm777 are my sisters <3
Post subject: Movie published
TASVideoAgent
They/Them
Experienced Forum User, Moderator
Joined: 8/3/2004
Posts: 11819
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [4572] SGB Gamera: Daikaijuu Kuuchuu Kessen by CasualPokePlayer in 19:29.90