haha ACE go brr

Emulator used: Bizhawk 2.5.1

  • SubGBHawk was used due to the need of a precise subframe reset.

Categories

  • Aims for fastest completion of the game
  • Heavy glitch abuse
  • Corrupts save data

Objectives

Save corruption

For whatever reason, this game doesn't actually checksum its save data. All it does is write some sentinel values to the beginning of save data to mark the save data as not corrupted. And for whatever reason, if the game detects the save data as corrupted (which will happen on boot as the save is filled with FF by the emulator), the game will proceed to write the sentinel values then it will write 00s to the rest of the save data. The issue with this is simply the order... the order I laid out is the actual order the game does these actions. So once the game writes these sentinel values then the save will not be seen as corrupted (even though nearly all of it is essentially corrupted). This happened to be fixed in LADX, where data is cleared before the sentinel values are written.
For the actual application of the save corruption, it allows me to start at a different location, in this case the top left corner of the map. This let's me easily get to the Sword (which is required for ACE). As a note, the lack of the shield means I can't get the Sword the same way the old TAS does, so I have to get it the RTA way.
Also, you can blame the decision for Devil Island allowing this sort of save corruption.

Doghouse/ACE

The Doghouse glitch is a fairly well known glitch, involving entering the doghouse on the wrong side. Where you go is dependent on the kill counter, and 3 kills are required to get to the ACE chest. Interesting, the lack of the shield seems to also screw me over here, as with it I could kill 3 things with one swing otherwise. I then just go to the ACE chest, open it, then credits!
To note, ACE is specifically why the JPN version was used. Besides the issue of making a payload with the reduced characters on the English version, the ACE chest just doesn't open at all on the English version, making ACE JPN exclusive entirely. Another note, the ACE payload is mostly identical to the RTA payload, but I changed the jr to a jr nc, as it was faster to input.

Select Glitches

The game glitches with Select. Wait this isn't Green...
But seriously, this is very well known and was heavily abused in the previous TASes, I don't think much explanation is needed here.

Samsara: lonk,
Samsara: lonk fast,
Really well done little movie, here. The usage of save corruption for a faster start was a very smart move, as it also adds just that extra touch of TAS-iness to really push this run over the top, over the RTA runs and the previous (unsubmitted) ACE TAS. With extremely positive audience feedback and that ol' classic ACE, I'm accepting this to Moons as a new branch.
feos: Pub.


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15628
Location: 127.0.0.1
xxezrabxxx
He/Him
Joined: 7/15/2017
Posts: 203
Location: Kentucky
Very cool! I never would have thought about that subframe reset there. This is one of my favorite Zelda stories (ALTTP is my favorite game). Take my yes vote.
I like to comment on submissions and look around the site. You have probably seen me before (if you have been around for a while) either on the site, Discord, or any other social media. I recently took up making temporary encodes for new submissions. Also, I never forget to greet Tompa wherever I find him! "when resyncing stuff sucks it's called Resuccing" - EZGames69 “If an emulator stops being accepted to the site it should be called an emuLAMEr” - EZGames69 "oh no discord, everything I say will now be logged forever, sdfsdf, time to hide" - Masterjun "just had to give therapy to a taxi with daddy issues" - psx Current Projects: Mother 3 (75% complete)
Active player (388)
Joined: 11/24/2018
Posts: 10
Hell yeah, not a sight of normal to be found
Patashu
He/Him
Joined: 10/2/2005
Posts: 4045
Delightfully broken!
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Editor, Player (69)
Joined: 6/22/2005
Posts: 1050
Technically impressive, but it was too glitched out to really be entertaining for me. Meh vote.
Current Projects: TAS: Wizards & Warriors III.
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3827)
Joined: 11/30/2014
Posts: 2834
Location: US
It would be nice to dump some save RAM and see what actually ends up there. I tried with some games I have (mostly MBC3) and it looks like alternating blocks of FFFFFFFFF00000000 with a whole lot of junk randomly scattered about. MBC1 looked like large blocks of FFFFFFFFFFFFFFF alternating with other junk. Not sure how representative any of this is. I don't have Link's Awakening. Probably all FF isn't too unrealistic, but anyway this is another cool demonstration of how strong save corruption is when you can reset at exactly the time you want.
Editor, Player (44)
Joined: 7/11/2010
Posts: 1029
At least some Nintendo games for the Game Boy have "delete save" functions that are intended to be used by an end user in some circumstances, and if I remember correctly, they work by overwriting the save RAM entirely with FFs. I think that's evidence that all-FFs is "intended" to be the/a blank state of the save file on Game Boy cartridges, and at least makes it reasonable to use on an emulator. It would be hard to figure out what the save RAM is on a factory-fresh Game Boy cartridge nowadays; there are few that have never been played, and on platforms where the save RAM makes use of a battery, the batteries would be dead by now.
Emulator Coder, Judge, Experienced player (732)
Joined: 2/26/2020
Posts: 790
Location: California
ais523 wrote:
At least some Nintendo games for the Game Boy have "delete save" functions that are intended to be used by an end user in some circumstances, and if I remember correctly, they work by overwriting the save RAM entirely with FFs. I think that's evidence that all-FFs is "intended" to be the/a blank state of the save file on Game Boy cartridges, and at least makes it reasonable to use on an emulator.
"some" being "Gen 1 Pokemon" I've looked at many games to find something to save glitch, and all of them zero out save data and consider that as empty data. Link's Awakening zeros out save data, so does Super Mario Bros. DX, Wario Land 2, Donkey Kong Land 3, some Kirby game, some Pokemon Pinball game, hell even that Devil Island game I referred to. Gen 1 Pokemon is the exception with this as it FFs save data for some reason. Hell they got it right the next gen, which zeros out save data.
ais523 wrote:
It would be hard to figure out what the save RAM is on a factory-fresh Game Boy cartridge nowadays; there are few that have never been played, and on platforms where the save RAM makes use of a battery, the batteries would be dead by now.
imo the argument that the factory flashed FFs to carts is probably bullshit. Considering that you have to assemble the carts before you could do that and the process of writing FFs to SRAM is not exactly efficient to do at that point. It's fairly likely SRAM was just whatever "pattern" is left behind when it isn't powered (said patterns that Alyosha is referring to). EDIT: Oh, the use of MBC chips would likely also make the process of flashing a specific SRAM state onto a cart more expensive. Considering once a new MBC comes out, whatever the factory is supposedly using to flash SRAM states might not work (the MBC2 comes to mind, along with other somewhat obscure MBCs).
Site Admin, Skilled player (1255)
Joined: 4/17/2010
Posts: 11495
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
CasualPokePlayer wrote:
imo the argument that the factory flashed FFs to carts is probably bullshit. Considering that you have to assemble the carts before you could do that and the process of writing FFs to SRAM is not exactly efficient to do at that point. It's fairly likely SRAM was just whatever "pattern" is left behind when it isn't powered (said patterns that Alyosha is referring to).
It's also impossible to undeniably proof that whatever SRAM state one claims to be coming directly from the factory is actually straight from the factory (or has never been messed with since then, or has had no serious bitrot).
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Editor, Reviewer, Skilled player (1361)
Joined: 9/12/2016
Posts: 1646
Location: Italy
CasualPokePlayer wrote:
ais523 wrote:
At least some Nintendo games for the Game Boy have "delete save" functions that are intended to be used by an end user in some circumstances, and if I remember correctly, they work by overwriting the save RAM entirely with FFs. I think that's evidence that all-FFs is "intended" to be the/a blank state of the save file on Game Boy cartridges, and at least makes it reasonable to use on an emulator.
"some" being "Gen 1 Pokemon"
Yeah, this is my fault, as I incorrectly stated, my judgement note for your Crystal save glitch, that it'd be "most Game Boy games", while from your researches it appears that reality is different. My mistake was making an assumption based on looking only at three examples of games expecting 0xFF, of which two were not even GB/C games (a GBA game and a NES game). Sorry.
CasualPokePlayer wrote:
I've looked at many games to find something to save glitch, and all of them zero out save data and consider that as empty data. Link's Awakening zeros out save data, so does Super Mario Bros. DX, Wario Land 2, Donkey Kong Land 3, some Kirby game, some Pokemon Pinball game, hell even that Devil Island game I referred to. Gen 1 Pokemon is the exception with this as it FFs save data for some reason. Hell they got it right the next gen, which zeros out save data.
This is really interesting, thanks for your contribute! I need to ask you some questions about that:
  • How hard it was to figure out what each game expects/prefers as an empty state SRAM?
  • After having looked this much, do you think there could be any game that could be hard to figure out in that regard?
  • Do you think, at this point, that it would be more accurate and more functional for the GB/C emulators to initialize SRAM as 0x00 bytes, instead than 0xFF?
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Emulator Coder, Judge, Experienced player (732)
Joined: 2/26/2020
Posts: 790
Location: California
ThunderAxe31 wrote:
This is really interesting, thanks for your contribute! I need to ask you some questions about that:
  • How hard it was to figure out what each game expects/prefers as an empty state SRAM?
  • After having looked this much, do you think there could be any game that could be hard to figure out in that regard?
  • Do you think, at this point, that it would be more accurate and more functional for the GB/C emulators to initialize SRAM as 0x00 bytes, instead than 0xFF?
1. It's really not that hard to find, usually it's just putting a write breakpoint at A000-BFFF with no actual save file which the game will respond with some for loop writing 00 bytes. 2. It could be tricky in regards to games that might clear some part of SRAM for scratch/stack/etc, but if you can point the for loop coming from a failed sentinel value and/or checksum check then it's fairly obvious what the intent is. 3. No, it wouldn't. While FF essentially guarentees that both a sentinel value and checksum check would fail, 00 really only guarentees the former to fail, while the latter will actually very likely pass. Which if some game for some dumb reason only uses a checksum (eg DKL3), that might end up having issues. Really, these patterns you see when yoinking out the battery of a cart would likely be better than the current system, but that does raise some interesting questions for determinism. But then again bsnes has a randomized ram state so that argument of determinism is probably also bs, I guess it would be somewhat annoying for console verification... but then again not really lol
Joined: 1/27/2014
Posts: 181
Technically stunning. Here, have another well-earned yes vote.
Post subject: Re: #6911: CasualPokePlayer's GBC The Legend of Zelda: Link's Awakening "game end glitch" in 01:02.42
Player (26)
Joined: 8/29/2011
Posts: 1206
Location: Amsterdam
So, the final end goal of the entire game is to collect a sword at the beach, right? +yes vote.
EZGames69
He/They
Publisher, Reviewer, Expert player (4468)
Joined: 5/29/2017
Posts: 2765
The warp glitch you do behind the BowWow house will warp to different locations depending on how many enemies you kill.
[14:15] <feos> WinDOES what DOSn't 12:33:44 PM <Mothrayas> "I got an oof with my game!" Mothrayas Today at 12:22: <Colin> thank you for supporting noble causes such as my feet MemoryTAS Today at 11:55 AM: you wouldn't know beauty if it slapped you in the face with a giant fish [Today at 4:51 PM] Mothrayas: although if you like your own tweets that's the online equivalent of sniffing your own farts and probably tells a lot about you as a person MemoryTAS Today at 7:01 PM: But I exert big staff energy honestly lol Samsara Today at 1:20 PM: wouldn't ACE in a real life TAS just stand for Actually Cease Existing
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15628
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. ---- [4315] GB The Legend of Zelda: Link's Awakening "game end glitch" by CasualPokePlayer in 01:02.42
Skilled player (1743)
Joined: 9/17/2009
Posts: 4986
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Just curious, what was the payload for ACE you did in the run?