Submission Text Full Submission Page
This is an update to MrWint's original SRAM glitch run that saves 7 frames, although run time is longer since it includes the BIOS (which runs twice.)
The original run has a delay of 17 frames. This run has a delay of 10. The savings come from different RNG using GBC with GBA mode. Using GBA mode allows for console verification.
I originally didn't think GBA mode offered an advantage, but entrpntr pointed out in the game thread that changing the palette can change the RNG (since it takes extra cycles to do so.) Using this I was able to achieve a delay of 10 frames, identical to what can be achieved in GBC mode without GBA set.
I did some testing, and it turns out that where you change it, and how long you hold down the buttons to change it doesn't matter. You can change it at the end of the BIOS and delay BIOS end, but that didn't result in short overall times in my testing. You can also just hold down a button during the BIOS that doesn't change palette to change RNG, but I didn't get good results this way. I didn't test exhaustively though. I changed the palette to grey scale so it would still look decent.
I believe for console verification you can split it up into 2 halves and run them separately, there is no RTC here so when you start the second half after the reset doesn't really matter.
Other inputs after manipulating RNG are identical to the original.

ThunderAxe31: File replaced with a fix to the arbitrary code execution.


Alyosha
He/Him
Editor, Emulator Coder, Expert player (3821)
Joined: 11/30/2014
Posts: 2829
Location: US
TiKevin83 wrote:
New cycle export Lua: https://pastebin.com/NbTRNePD I was able to use this to verify the TAS in two parts, flashing SRAM before each part.
Cool it worked! But why did you have to flash SRAM before each part?
TiKevin83
He/Him
Ambassador, Moderator, Site Developer, Player (155)
Joined: 3/17/2018
Posts: 358
Location: Holland, MI
GBI doesn't have a way to programmatically press the hard reset button. I could press it manually (Any% is completely human viable) but for yesterday's purposes I just wanted to make sure the input timing was correct
Editor, Reviewer, Skilled player (1358)
Joined: 9/12/2016
Posts: 1646
Location: Italy
CasualPokePlayer wrote:
ThunderAxe31 wrote:
I'd also like to try if changing GBC color multiple times can allow more RNG possibilities, or delaying the GBC BIOS sequence by changing color later.
Yes and no, mostly has no effect, and when you actually get an effect, it's more because the bios is being delayed by some amount of frames (which eventually eats into the delays).
I didn't want to listen to that, so I've tried anyway. :) And, guess what? My bot was able to find one faster route: 364 CPU cycles saved over the current submission. Byte D35A is still 0xC2. Alyosha, do you agree to replace the submission file and add me to the author list for this submission?
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"
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3821)
Joined: 11/30/2014
Posts: 2829
Location: US
ThunderAxe31 wrote:
CasualPokePlayer wrote:
ThunderAxe31 wrote:
I'd also like to try if changing GBC color multiple times can allow more RNG possibilities, or delaying the GBC BIOS sequence by changing color later.
Yes and no, mostly has no effect, and when you actually get an effect, it's more because the bios is being delayed by some amount of frames (which eventually eats into the delays).
I didn't want to listen to that, so I've tried anyway. :) And, guess what? My bot was able to find one faster route: 364 CPU cycles saved over the current submission. Byte D35A is still 0xC2. Alyosha, do you agree to replace the submission file and add me to the author list for this submission?
If we are going to go by cycle count then this is trivially sub-optimal since you can use SubGBHawk to reset exactly when needed. There are many, many ways to get the correct delay and I certainly didn't check cycle count for them, so I'd rather just cancel this for now.
TASVideosGrue
They/Them
Joined: 10/1/2008
Posts: 2785
Location: The dark corners of the TASVideos server
om, nom, nom... 'twas dry
Editor, Reviewer, Skilled player (1358)
Joined: 9/12/2016
Posts: 1646
Location: Italy
Alyosha wrote:
If we are going to go by cycle count then this is trivially sub-optimal since you can use SubGBHawk to reset exactly when needed. There are many, many ways to get the correct delay and I certainly didn't check cycle count for them, so I'd rather just cancel this for now.
All right, take your time. I still didn't try other inputs in the BIOS screen, but I will wait for your new improvement before trying to improve it further.
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"
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3821)
Joined: 11/30/2014
Posts: 2829
Location: US
I didn't mean to imply that I was actually going to do it, that's too tedious for me, just that it would be a necessary step. Feel free to give it a try, no need for me to be a co-author or anything.
Banned User
Joined: 4/1/2016
Posts: 295
Location: Cornelia Castle
What are different ways to get optimal delays for the different games in Gen 1?
DJ Incendration Believe in Michael Girard and every speedrunner and TASer!
Banned User
Joined: 4/1/2016
Posts: 295
Location: Cornelia Castle
I mean... what is the best way to get D1 or F1 for the Japanese games?
DJ Incendration Believe in Michael Girard and every speedrunner and TASer!
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3821)
Joined: 11/30/2014
Posts: 2829
Location: US
It's just brute force check every possibility. I doubt there is a quicker way to figure it out.
Banned User
Joined: 4/1/2016
Posts: 295
Location: Cornelia Castle
I've tried lots of frame delays, and I can't seem to find any that give me D1 or F1 as Byte 1 for Japanese, or 0x64D0/EA or anything like that for Yellow. I have no idea about LUA scripts or anything like that, so what should I do? Some things I've tried are: Left+A on boot-up, 0,0,0,0/1/2/3/etc 1,0,0,1/2/3/4/5/6/7/8/9/10 L+A,L+A,0,0,0,1 I have no idea how to proceed.
DJ Incendration Believe in Michael Girard and every speedrunner and TASer!
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3821)
Joined: 11/30/2014
Posts: 2829
Location: US
LUA is key for stuff like this, if you want to do this rigorously this is a good time to learn it.
Banned User
Joined: 4/1/2016
Posts: 295
Location: Cornelia Castle
I'm having trouble understanding a lot in the manual. Even though I took a programming class in school, I still find this hard to understand.
DJ Incendration Believe in Michael Girard and every speedrunner and TASer!
EZGames69
He/They
Publisher, Reviewer, Expert player (4460)
Joined: 5/29/2017
Posts: 2761
Can you please move this into the appropriate thread for this game?
[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