Submission Text Full Submission Page
Using file names on the title screen, along with a specific glitch, we encode code written in the save files using the Japanese text. The American version of the game does not contain the values to make this glitch possible, so the Japanese version (besides being preferable anyways due to shorter text) must be used.
There is a more detailed explanation below.
Note, there is a counter within the game that counts up in hexadecimal by 1, about every second. This glitch only works on certain values. My TAS was optimized without bearing this in mind, meaning the goal was to reach the chest fastest regardless of wait time/available stalling, as I wanted a fast result to the chest rather than utilizing this wait time to be slow. I land on value 6A, and wait until 6D, which is literally the best value to land on, as the previous value 64 is impossible to reach under the current circumstances, let alone any of the prior values.
Addresses on which my ACE will work (I end up on 6A and wait until 6D, giving us a nice margin for error without possible improvement of the TAS):
More detailed explanation written by a LADXRTA runner:
= Filenames =
In LADX, there are 3 possible files the player can use with each one allowing for 5 characters to create a name. This gives a total of 15 characters which can be used for arbitrary code execution. Each character used has a specific value associated with it, so the game knows what characters consistute a filename. This is why the glitch does not work on the English versions of the game, as the associated values you need for ACE are not all present in the English character set. The Japanese version has 75 characters to choose from, not including the value for the blank space. The English version only has 52. The numerical values for the filenames are as follows:
1: 39 11 29 18 2C
2: 09 3E 01 32 32 
3: 3E 3C 2F 32 32
These are all typeable in the Japanese version, but the English version only allows for lower and uppercase alpha characters. When the values are manually entered onto the English version (via hacking), they read:
1. 8A(A*
2. AAA11
3. A;.11
  • the value here is not alphanumeric, and I can't show it to you.
= Ingame Counter =
At the memory address FB47, a counter increments from 00 by 01 every second. It eventually reaches FF and stops. This counter is vital to the success of ACE. Certain values will not work, regardless of the prior setup.
= The Chest =
Upon opening the chest in the Doghouse, the return address F4FF is called to retrieve the value for whatever should happen when the chest opens. This isn't where it should check however, and the game then executes all instructions in order starting from F4FF. Eventually, the game reaches the value FB47. Depending on what value from 00 to FF that is, the game will either harmlessly execute an instruction or crash. This is why ACE seems inconsistent, however in reality is perfectly consistent assuming you always get a harmless value. After FB47, the game progresses to FB4E.
= ACE: Setting up the value=
  ECH1:FB4E  01 39 11      ld   bc,1139 <= loads 1139 into BC
  ECH1:FB51  29               add  hl,hl    <= adds HL to HL
  ECH1:FB52  18 2C          jr   FB80     <= jumps to FB80
Let's break this down, line by line.
  ECH1:FB4E  01 39 11      ld   bc,1139
This loads the value of 1139 into the register BC. Memory address FB4E correlates to Link's sword level, which is 01 when you first obtain the sword. 01 is the opcode for loading in the GB system, so it prepares a load instruction. The next values, are the first 2 values of filename 1. But why are they here? When starting a game, the name of save 1 (39 11 29 18 2C) is copied to FB4F from FB80, as we can see here. This only happens on save 1, which explains why ACE only works on the first file.
  ECH1:FB51  29               add  hl,hl   
This instruction, "add hl,hl" adds the HL register to itself, doubling it. This will be relevant later
  ECH1:FB52  18 2C          jr   FB80
This instruction "jr FB80" jumps the game to memory address FB80, where the first filename was copied from. This means the first file is executed twice in ACE, however the values are shifted slightly as the value for Link's sword is no longer present. Here is the game now:
  ECH1:FB80  39                   add  hl,sp    <= adds the register SP to HL
  ECH1:FB81  11 29 18          ld   de,1829 <=loads 1829 into DE
  ECH1:FB84  2C                  inc  l           <= increments register L by 1
  ECH1:FB85  09                   add  hl,bc   <= adds BC to HL.
Again, let's make this easier and break it down.
  ECH1:FB80  39                   add  hl,sp    
This adds the register SP to HL, which is all to prepare HL at the end.
  ECH1:FB81  11 29 18          ld   de,1829 
This line is largely ignored, as it is only used to setup the copied version of the file 1. This line loads 1829 into the register DE.
  ECH1:FB84  2C                  inc  l 
This line INCrements the register "L" by 1.
  ECH1:FB85  09                   add  hl,bc 
Finally, we add BC to HL. The register now has a value of FB96, which is the byte where the end cutscene is stored. All this section was dedicated to changing the value of one register.
= ACE: Writing bytes =
Before, we only used values from the first file and the first character of file 2. Now, we are going to be using the files from every file.
  ECH1:FB86     3E 01              ld   a,01 <= load 01 into register A
  ECH1:FB88     32                   ldd  (hl),a <= load A into HL, decrement H1 by A
  ECH1:FB89     32                   ldd  (hl),a <= load A into HL, decrement H1 by A
  ECH1:FB8A    3E 3C             ld   a,3C <= loads 3C into register A
  ECH1:FB8C    2F                     cpl  <= flips the bits of A, turning the value of 3C into C3
  ECH1:FB8D   32                      ldd  (hl),a <= loads the value of register A into register HL, decrement HL by 1
  ECH1:FB8E    32                      ldd  (hl),a <= loads the value of register A into register HL, decrement HL by 1
  ECH1:FB93    C3 C3 01            jp 01c3     <= jumps to 01c3, returning us to the main loop
To make this infinitely more easy to understand, we'll again break it down. Our goal here is to modify the bytes of FB95 and FB96. FB95 is the address of which cutscene, and FB96 is what part of the cutscene. We want to play cutscene 01, part 01
  ECH1:FB86     3E 01              ld   a,01 
This loads the value of 01 into the register A, this will help us to change the value of the bytes.
  ECH1:FB88     32                   ldd  (hl),a 
  ECH1:FB89     32                   ldd  (hl),a 
This line is repeated twice. ldd is the LoaD Decrease instruction. This line loads A (01) into HL (FB96), then HL is decremented by A, so 01. FB96 now has a value of 01. This is repeated, so FB96 is decremented by 01, and now both FB95 and FB96 have the values of 01. We are ready to warp to the credits. However, there is a slight issue. Currently, we are not in the main loop of the game, so none of this will occur until we do this.
  ECH1:FB8A    3E 3C             ld   a,3C
This line loads the value of 3C into the register A. The instruction to jump to another address (jp) is C3. We need to execute an instruction with that value. Luckily, the next line sorts this out for us.
  ECH1:FB8C    2F                  cpl  
This instruction, ComPLement, flips the bits of the register A. It flips the bits of A, so it flips 3C, which happens to equal C3. Now A is C3
  ECH1:FB8D   32                      ldd  (hl),a
  ECH1:FB8E   32                      ldd  (hl),a
Another double line. We load A into HL, and decrement HL by 1. This means FB94 contains the value C3, this repeats and FB93 contains another C3.
  ECH1:FB93    C3 C3 01            jp 01c3     
Now, the game contains exactly what we need. The value of C3 correlates to a jump instruction, which will return us to the main loop. We needed to set the second C3 as otherwise we would have returned to 0101, which is not in the main loop. We jump to 01C3 and the game warps us to the credits.

CasualPokePlayer: Replaced movie with one with the correct cycle count; corrected branch label ("Arbitrary Code Execution" -> "game end glitch")

ThunderAxe31: Claiming for judging.

OtakuTAS: Adjusted game name to match other publications.

ThunderAxe31: Un-claiming.

CasualPokePlayer: Claiming for judging.
CasualPokePlayer: Rejecting as the author has been banned.


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15594
Location: 127.0.0.1
xxezrabxxx
He/Him
Joined: 7/15/2017
Posts: 199
Location: Kentucky
Looks pretty good! Giving it a yes. I tried doing this 2.5 years ago but gave up and lost interest. Glad to see somebody else got around to it. I wonder if you can save same frames bonking on Bow-Wow but looking at the time you waited at the chest, maybe not. idk I noticed you didn't do the post-game scene, so I did it for you. You do not have to credit me for input since it's literally just alternate A and B every frame. Contact a judge to have the submission file replaced. Luckily this doesn't affect the encode since the gameplay is unchanged User movie #638270575743921578
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)
Banned User
Joined: 1/6/2023
Posts: 263
xxezrabxxx wrote:
Looks pretty good! Giving it a yes. I tried doing this 2.5 years ago but gave up and lost interest. Glad to see somebody else got around to it. I wonder if you can save same frames bonking on Bow-Wow but looking at the time you waited at the chest, maybe not. idk I noticed you didn't do the post-game scene, so I did it for you. You do not have to credit me for input since it's literally just alternate A and B every frame. Contact a judge to have the submission file replaced. Luckily this doesn't affect the encode since the gameplay is unchanged User movie #638270575743921578
They will usually set that up for the encode to let the viewers see but for timing purposes and the site's files, you just need to get to that screen instead. There was a ruling on it a while back. Which would suck without it because it's long! Thanks for your nice comments! I got curious and checked, 64 (last possible frame of the last possible hex digit I could activate the chest if I could magically get there) is 606 frames away, potentially more if it only works NOT at the end (buffer). I triple checked and spent a good hour or two polishing the run to be frame perfect (not knowing where I would end up and not necessarily caring because it would be firm), for style, thankfully when I checked at the end I ended up on 6A/6D. If I was like a frame away from a good number, thankfully I was closer to the future numbers than the past, otherwise I'd be going over it like crazy. Even moreso if that was the last good number in the row of few, imagine that! There's a few runs out there when they're like a frame away from a huge break but can never reach it, thankfully it was the other way around, where the waiting wasn't long, and the possibility for an earlier number is impossible. Unless a huge glitch is discovered, but this has been it for 4 years.
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
Banned User
Joined: 1/6/2023
Posts: 263
Also curious about the label change. It is executing arbitrary code (hence why I gave it that label many other runs share), albeit a short amount of it. No fancy payload or anything, but it's still arbitrary code execution. The large write-up about it can be seen in the description. I'm not sure if "game end glitch" does it justice and I think it fits in better with the former label as it explains the weird setup of the file names, killing the 3 enemies, talking to the child, the pause screen, and more. Not just the doghouse glitch (which some people may confuse it as simply abusing a basic glitch or warp and this is one of those runs where you NEED to read the notes), and also encourages them to read the publication notes and view the code and detailed explanation. Either way is fine with me though! In that case, there is a different publication this may obsolete then (I don't necessarily feel one way or another if it should or not), however that's classified "warp glitch", I suppose before the labels became more standardized. [4084] GBC The Legend of Zelda: Link's Awakening DX "warp glitch" by TwistedTammer in 05:13.06 It should be noted that one is perhaps a "game end glitch", as it abuses bugs but does not execute code. Edit: Ignore strikes, I forgot "warp glitch" was also a standard label. I guess "game end glitch" being if the glitch is the last thing before the credits. Actually indeed it is, referring to feos's comments on my #8021: BLiNX_PERSON, OtakuTAS & ViGadeomes's GBC Toy Story 2 "warp glitch" in 01:29.82
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
Banned User
Joined: 1/6/2023
Posts: 263
I just thought I was rambling but I guess I'm onto something!
ThunderAxe31: This movie is well optimized and the reaction from the audience was very warm. While the movie itself is good and the goal is clear, I have to make a remark about the current branching situation for this game, for the purpose of giving reference for future judgments. As of today, there is a known way to beat the game faster than in this submitted movie, that is by using a memory corrupting glitch. So while the current "warp glitch" publication is flagged as the fastest-completion movie, this submitted movie should not get flagged as such, despite the fact that it beats it under the same rules. Accepting as Moons for obsoleting the current "warp glitch" publication. Whatever or not a movie using the memory corrupting glitch should obsolete this, it will be duly discussed after that such hypothetical movie gets submitted, as we can't judge a submission that doesn't (yet) exist.
My opinion would be label this "arbitrary code execution" and leave the other one as is but I respect whatever the judge wants to do. I just feel the new label is very vague. Apparently the label isn't used much anymore and I see other ACE games with "game end glitch" labels, so whatever is fine. I do think it would be exciting to bring that label back though because now it's so vague. Not to mention it's always on top of runs that you visually can't see what is going on to make it all possible, i.e. my run, [2751] SNES Super Mario World 2: Yoshi's Island "game end glitch" by Masterjun in 01:17.54, or several others. But I suppose now that's insinuating re-inventing the wheel rather than using an old label. Whatever works best for the site! Speedrun.com has "Any% ACE" and "Any% No ACE" and both are very popular As for the case of obsoletion, that's something I don't feel one way or another about, it's apples and oranges. Mine is the faster glitched run, but I also think they're both so different that it's exciting to have both.
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
Editor, Reviewer, Skilled player (1359)
Joined: 9/12/2016
Posts: 1646
Location: Italy
OtakuTAS wrote:
They will usually set that up for the encode to let the viewers see but for timing purposes and the site's files, you just need to get to that screen instead. There was a ruling on it a while back. Which would suck without it because it's long! Thanks for your nice comments!
Where was this ruling exactly?
OtakuTAS wrote:
Also curious about the label change. It is executing arbitrary code (hence why I gave it that label many other runs share), albeit a short amount of it. No fancy payload or anything, but it's still arbitrary code execution. The large write-up about it can be seen in the description. I'm not sure if "game end glitch" does it justice and I think it fits in better with the former label as it explains the weird setup of the file names, killing the 3 enemies, talking to the child, the pause screen, and more. Not just the doghouse glitch (which some people may confuse it as simply abusing a basic glitch or warp and this is one of those runs where you NEED to read the notes), and also encourages them to read the publication notes and view the code and detailed explanation.
The point of a label is not explaining what happens behind the curtain, but it's telling to the casual viewer what's the end goal of the movie. And while the definition of "glitch that triggers the ending" may end up seeming like a misleading simplification, it's still the most intuitive way available to describe the goal. Also think that the word "arbitrary", in the eyes of a random visitor, may seem to imply that an artistic choice is at play, as opposed of feeding code that specifically goes for the goal of triggering the ending as fast as possible. Additionally, we still need to make a distinction from movies that use arbitrary code execution for pure playaround purposes, by using a label that is completely different.
OtakuTAS wrote:
Speedrun.com has "Any% ACE" and "Any% No ACE" and both are very popular As for the case of obsoletion, that's something I don't feel one way or another about, it's apples and oranges. Mine is the faster glitched run, but I also think they're both so different that it's exciting to have both.
So far I'm in favor of having both branches active, but I have to get more feedback first.
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"
Experienced player (584)
Joined: 2/23/2008
Posts: 266
Location: CA, USA
Been a while since I've last been on here. Nice to see a submission for this category! I remember trying to TAS this some number of years ago with an older credits warp, but had 0 understanding of how it worked, so I abandoned it. The work I did do is located here: https://tasvideos.org/UserFiles/Info/638274724797749045 (link replaced with faster version I found on my machine). Here's an encode just incase: https://www.youtube.com/watch?v=7yUPBWH6l_g I'm not sure if this will sync with modern versions of Bizhawk as this was recorded with 1.12 from some old notes I found. This run does have speed movement tricks like boosting off bow-wow and screen transition boosts. It does have a faster timestamp, but uses a glitchy warp to mid credits instead of the cleaner warp that your run does. I have no interest in TASing this game at this point, so if that user file does actually contain anything of use, then you're welcome to use it. If none of it is applicable since you are doing a different warp and different route, then ignore this post!
CoolHandMike
He/Him
Editor, Judge, Experienced player (896)
Joined: 3/9/2019
Posts: 699
Very nice! Liked that assembly breakdown and with that explanation it makes sense how it works. Yet another game that been beaten in a bizarrely fast way. Yes vote.
discord: CoolHandMike#0352
Emulator Coder, Judge, Experienced player (730)
Joined: 2/26/2020
Posts: 783
Location: California
Bobmario511 wrote:
but uses a glitchy warp to mid credits instead of the cleaner warp that your run does.
A warp mid-credits would probably be more optimal under a TAS setting, due to us ending on the last input, and the TAS would need to reach a definitive end point (i.e. credits) rather than the end point decided by RTA. The fact these inputs can be optimized away with a slightly different glitch I'd argue clearly brings them into the category of gameplay and thus timesave here counts.
Banned User
Joined: 1/6/2023
Posts: 263
ThunderAxe31, I was going off the precedent you yourself mentioned in #8403: PinkyNoice, OtakuTAS & RetroEdit's GBC Barbie: Magic Genie Adventure in 07:36.85 - I just figured it made the most sense. I think there's quite a few runs where the encode has some extra presses to get the run where it needs to be, no?
CasualPokePlayer wrote:
Bobmario511 wrote:
but uses a glitchy warp to mid credits instead of the cleaner warp that your run does.
A warp mid-credits would probably be more optimal under a TAS setting, due to us ending on the last input, and the TAS would need to reach a definitive end point (i.e. credits) rather than the end point decided by RTA. The fact these inputs can be optimized away with a slightly different glitch I'd argue clearly brings them into the category of gameplay and thus timesave here counts.
The method used is known as "old ACE", is an emulator glitch, and is caused by old Gambatte overlooking opcodes that would crash console. It crashes on emulator too now (I believe, but I digress). The Zelda speedrunning community ran it for ages until they realized it was a Gambatte bug GSR = GambatteSpeedrun
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
Banned User
Joined: 1/6/2023
Posts: 263
more info on old ACE
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
Banned User
Joined: 1/6/2023
Posts: 263
CoolHandMike wrote:
Very nice! Liked that assembly breakdown and with that explanation it makes sense how it works. Yet another game that been beaten in a bizarrely fast way. Yes vote.
Thanks!
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
Emulator Coder, Judge, Experienced player (730)
Joined: 2/26/2020
Posts: 783
Location: California
OtakuTAS wrote:
ThunderAxe31, I was going off the precedent you yourself mentioned in #8403: PinkyNoice, OtakuTAS & RetroEdit's GBC Barbie: Magic Genie Adventure in 07:36.85 - I just figured it made the most sense. I think there's quite a few runs where the encode has some extra presses to get the run where it needs to be, no?
The precedent in that run and the run mentioned in that run is predicated on a very important thing you've overlooked: there are no credits after the ending sequences of those games. Therefore, the ending sequences are the definitive ending point themselves, as the lack of credits after the ending sequence means that title no longer goes to the credits. Link's Awakening does have credits after its ending sequence of dialog, therefore the precedent you linked simply does not apply. Also therefore, the definitive ending point in Link's Awakening is the credits, and the inputs for getting to the credits should be included in the actual movie.
OtakuTAS wrote:
CasualPokePlayer wrote:
Bobmario511 wrote:
but uses a glitchy warp to mid credits instead of the cleaner warp that your run does.
A warp mid-credits would probably be more optimal under a TAS setting, due to us ending on the last input, and the TAS would need to reach a definitive end point (i.e. credits) rather than the end point decided by RTA. The fact these inputs can be optimized away with a slightly different glitch I'd argue clearly brings them into the category of gameplay and thus timesave here counts.
The method used is known as "old ACE", is an emulator glitch, and is caused by old Gambatte overlooking opcodes that would crash console. It crashes on emulator too now (I believe, but I digress).
While that is unfortunate, that misses the point I was making. If you were to figure out a way to do a mid-credits warp like "old ACE" while still working on the newest emulators, while it wouldn't save any time under RTA standards, it would save time under TAS standards. As above, the inputs for getting to the credits should be in the movie, and since that theoretically can be optimized away, that is a very good argument to consider it optimizable gameplay, ergo a good argument to consider it gameplay that should be in the actual movie.
Banned User
Joined: 1/6/2023
Posts: 263
Sounds good about the timing, I don't mind at all. As for the cutscene, the value loads in using the filenames. The cutscene we jump to is cutscene 01, section 01. As such, the value is not defined seperately but rather the value "01" is shared. I'll have to find the value of the credits screen and see if it has enough parts to still share the ID, however it'll start in the middle somewhere (which appararently doesn't matter). I don't think there's enough characters to accomplish this cleanly and define the values seperately, but I can definitely take a look at it. If anybody has knowledge on the other cutscene IDs, feel free to let me know.
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
Banned User
Joined: 1/6/2023
Posts: 263
I messed with the disassembler a little bit (I used to write disassembly for work so it comes very easy to me albeit not as much as some people) and so far, no good. The code is basically hodgepodging together chunks of data that are conveniently the right value (link's sword value not being 01 would kill this whole possibility as that creates a load instruction that kicks the whole thing off), with bits of customizable data in between (i.e. the file names). There is a bit where "ldd (hl),a" is done twice, which loads A (01) in FB96 (cutscene id), then decreases the target to FB95 (cutscene part), and adds it to that as well. This constitutes only two bytes (32 32), and is extremely optimal. To rewrite this to manually add different values to FB96 and FB95 would require a lot more room than I'm given, either through direct instructions or some "inc dec" tomfoolery to make some magic happen. I'm not seeing it. It is also extremely convenient that this is cutscene 1, part 1, since now we must work with the same digit for both values. Meaning this is the only possible "correct" cutscene in the game available through this, which just so happens to be the cutscene connected to the credits. Amazing. Anyways, I toyed around with this value (loading A with values other than 1) in hopes of getting a "cutscene 2, part 2", and maybe eventually stumbling upon the mid-section of the credits, but I was unsuccessful at present.
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
Banned User
Joined: 1/6/2023
Posts: 263
I meant write assembly/asm in the former post. Woke up too early. Lol. Anyways, the more I look at this, I'm thinking the people who discovered this really knew what they were doing and I'm not sure there is another feasible option. We would need to find the value for the credits themselves and see what it is, and then see if it's beyond the size of the number of parts within that cutscene. I.E. If the credits are value 1F, then the part would also have to be 1F, and there's surely not 31 (1F) parts to the cutscene. There's a few options I have in mind for lowering A back down or loading from another register, but there really isn't a lot of room to work with. Simply put, there's maybe a byte of free space. A lot of this magic is possible only because the cutscene id and part id share the same digit and as such there's room to make that work, making those separate would require more room. So that leaves us with the possibility that the cutscene ID for the credits is less than the total number of parts in that cutscene (i.e. if it has 4 parts the id would need to be 2, 3, or 4.)
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
Experienced player (584)
Joined: 2/23/2008
Posts: 266
Location: CA, USA
Ah so the old method isn't even valid, good to know! I did take a closer look at the start of the run, and some movement tricks seem to be missing. - You can hold Down/Left while talking to Tarin to move a few frames. One when talking starts and once when you get the shield. - You can corner boost off of the door when exiting and 2 times on the fence. - It is possible to manipulate bow-wow to get a shield boost off of. I tried copying some movement from my old TAS into yours. The bow-wow manipulation didn't sync, but the other movement did after inserting some empty frames. Its probably possible to manipulate bow-wow, but I forget how that done. If I timed it right, then this sample enters the library room at 2550 instead of 2584. I haven't TASed anything in years, so hopefully this syncs on your machine. I used BizHawk 2.9.1 with the default emulator settings. File: https://tasvideos.org/UserFiles/Info/638278003828105587 I didn't look at movement after that, but it might be possible to apply corner boosting elsewhere if not already used. I only skimmed the ACE part, but I'm hoping frames saved prior to resetting would not effect later waiting at the chest for the right value to open it at.
Banned User
Joined: 1/6/2023
Posts: 263
Bobmario511 wrote:
Ah so the old method isn't even valid, good to know! I did take a closer look at the start of the run, and some movement tricks seem to be missing. - You can hold Down/Left while talking to Tarin to move a few frames. One when talking starts and once when you get the shield. - You can corner boost off of the door when exiting and 2 times on the fence. - It is possible to manipulate bow-wow to get a shield boost off of. I tried copying some movement from my old TAS into yours. The bow-wow manipulation didn't sync, but the other movement did after inserting some empty frames. Its probably possible to manipulate bow-wow, but I forget how that done. If I timed it right, then this sample enters the library room at 2550 instead of 2584. I haven't TASed anything in years, so hopefully this syncs on your machine. I used BizHawk 2.9.1 with the default emulator settings. File: https://tasvideos.org/UserFiles/Info/638278003828105587 I didn't look at movement after that, but it might be possible to apply corner boosting elsewhere if not already used. I only skimmed the ACE part, but I'm hoping frames saved prior to resetting would not effect later waiting at the chest for the right value to open it at.
The quicker the run is, the longer the waiting is at the chest. All in all, since I am waiting for the in-game timer to scroll to the correct value (see submission details and comments), the time will remain the same. I'll see what ThunderAxe thinks and I'll patch it up if need be for these little improvements. My goal was originally to optimize the movement as much as possible just for the sake of doing it, but I clearly missed some. Thanks for your help!
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
Banned User
Joined: 1/6/2023
Posts: 263
Here's a file with the credits rolled. The only other thing I can think of is that the 3 enemies you must kill to setup ACE must not be possible within the glitched dungeon, as I'm sure somebody would have thought about that, and many (most RTA) runs exist where people kill all 3 enemies at the end as it gives them some false hope of helping the glitch work, when in reality I think it's so optimized at this point that it is an unintentional timing strategy for landing on a green value. I only kill one in this thanks for the frame perfect nature of TASing, and that is just because it's in my way. Nonetheless, killing enemies in the dungeon doesn't seem to affect the "3 kills" value, so I'm going to rule that theory out. Still nothing that works on direct credits warp. https://tasvideos.org/UserFiles/Info/638278871081244628
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
Banned User
Joined: 1/6/2023
Posts: 263
CPP, do you have any further thoughts now as the new judge? I'm not seeing there to be enough room in the ACE to execute what you're thinking, even if it leaves with a glitched credits screen and/or a mid-entry into the credits.
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
Emulator Coder, Judge, Experienced player (730)
Joined: 2/26/2020
Posts: 783
Location: California
My comments on a theoretical ACE payload which launched directly into the credits was mostly just for an argument for considering the ending sequence before the credits as gameplay (which in turn was a secondary argument for including the input to the credits in the final movie). Whether or not such an ACE payload is and if it's even possible is for someone else to figure out, and at most leaves it to a theoretical possible improvement. This doesn't mean anything for if this movie is accepted or not; it only leaves in a path for it to be potentially obsoleted in the future.
Banned User
Joined: 1/6/2023
Posts: 263
CasualPokePlayer wrote:
My comments on a theoretical ACE payload which launched directly into the credits was mostly just for an argument for considering the ending sequence before the credits as gameplay (which in turn was a secondary argument for including the input to the credits in the final movie). Whether or not such an ACE payload is and if it's even possible is for someone else to figure out, and at most leaves it to a theoretical possible improvement. This doesn't mean anything for if this movie is accepted or not; it only leaves in a path for it to be potentially obsoleted in the future.
Sounds good to me. I thought of that too, but as stated in previous posts it doesn't seem there's enough room for the code, particularly different integers for both the cutscene id and the part id. I'm definitely interested into looking more into this but only after this submission is published (or not). Also, to whoever encodes, the credits run in a weird way when half the letters don't show up unless at the correct FPS(?) or something along those lines. They flicker bad on the emulator and don't encode well at all. There's also a sprite at the end of the game which flickers that does not appear in my encode. (After the credits)
Published TASes: #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12 Please consider voting for me as Rookie TASer Of 2023 - Voting is in December 2023 My rule is quality TASes over quantity TASes... unless I'm bored.
TASVideosGrue
They/Them
Joined: 10/1/2008
Posts: 2786
Location: The dark corners of the TASVideos server
om, nom, nom... blech, bitter!
JD
He/Him
Joined: 7/6/2024
Posts: 6
Location: Virginia
Should runs by banned users (such as this one) qualify for Playground?
Emulator Coder, Judge, Experienced player (730)
Joined: 2/26/2020
Posts: 783
Location: California
No