Submission #10075: CoolKirby's GBC Who Wants to Be a Millionaire: 2nd Edition in 04:20.407

Game Boy Color
baseline
(Submitted: Who Wants to Be a Millionaire - 2nd Edition (USA).gbc USA)
BizHawk 2.11
15555 (cycle count 546112435)
59.73348576104113
293
PowerOn
1fd2c608231e6f919fee05da91418e05c502ef61
(Just a local copy of the submission text.)
Based on the U.S. version of the show, this adaptation features the voice of its original host, Regis Philbin. Due to his popularity, he appeared as himself in various Hollywood productions, even as a cartoon version in ''Lilo & Stitch: The Series'' for example. I enjoyed the game show and Regis in the early 2000s and got this game as a gift, though the questions were too hard for a young child, even if I quickly asked my parents the answer before time ran out, since they didn't always know either. The game's just as hard now that I'm an adult, since many things it references such as the WNBA 1999 season are so old now. I have yet to beat this game legit and become a "fake millionaire" as the congratulations screen says.
This game has had four previous submissions of various levels of optimization. After adjusting for BIOS intros and different framerates, my run is 7 frames faster than the previous best. This game was not published before, because of previous rules on entertainment and game show games.
The YouTube encode contains comments as CC/subtitles.
!! Peer Review
Two of the previous TASes were on VBA, which used a framerate of 60 that is no longer considered valid for the console. Depending on the game and amount of time spent with LCD off, the GBC is considered to run at [https://tasvideos.org/PlatformFramerates|~59.7275 FPS] nowadays. Due to this, I will compare framecounts directly rather than dividing by anything.
Three of the submissions did not include a BIOS, so I included another column adjusting for the 185 frames each would spend in the GBC BIOS:
||Submitter||Orig. frames||Adj. frames||Rank||
|[1574S|MikeRS]|15383|15568|2nd|
|[2891S|LSK]|15506|15691|4th|
|[5947S|Jigwally]|15562|15562|__1st__|
|[8120S|Logan]|15400|[https://tasvideos.org/UserFiles/Info/638846135756535218|15585]|3rd|
My run can be most directly compared to Jigwally's, which used BizHawk, the GBC BIOS, and a correct framerate. For easier comparison, I also used the GBC BIOS, and made a 14 frames longer [https://tasvideos.org/serFiles/Info/639009951407421907|GBA BIOS resync bk2] if needed for console verification. Only the BIOS portion needed to be changed. RNG is totally different between VBA, BizHawk 2.3.x (which Jigwally used), and modern BizHawk, meaning I had to do all inputs myself since all different questions appeared.
!! Strategy
RNG manipulation can be done in the pregame in 4 spots to manipulate the first question (not [https://tasvideos.org/Forum/Posts/130276|3 spots] as MikeRS thought): skipping the only skippable intro, passing the title screen, selecting number of players, and entering player name.
Then in gameplay, you can change RNG by waiting different amounts of time before pressing the A button to select an answer. As expected, "A" answers are the fastest, though B answers may be acceptable if more than 4 frames of waiting would be needed to manip an A, or the B answer sets up a different question that can be answered with A. Time and manip options are both limited, so D answers are never faster, and I hesitate to say a C could be, since the selection cursor does not wrap around to the bottom.
Let's see how our contestants did:
||Submitter||1||2||3||4||5||6||7||8||9||10||11||12||13||14||15||A total||B total||Compared to all A||
|MikeRS|A|A|A|A|C|A|B|A|B|B|A|D|A|B|A|9|4|+36|
|LSK|C|C|A|C|C|C|B|A|B|B|B|B|B|B|B|2|8|+72|
|Jigwally|A|A|A|A|B|A|B|B|B|A|B|A|C|A|A|9|5|+28|
|Logan...
			
Submitted by CoolKirby on 12/10/2025 9:42 PM
Submission Comments
Based on the U.S. version of the show, this adaptation features the voice of its first host, Regis Philbin. Due to his popularity, he appeared as himself in various Hollywood productions, even as a cartoon Regis in Lilo & Stitch: The Series for example. He was kind of like everyone's grandpa, though like MikeRS, I also misheard his last name as Phillman. I got this game as a gift in the early 2000s, and the questions were too hard for a young child. Even if I quickly asked my parents the answer before time ran out, they didn't always know either. The game's just as hard now that I'm an adult, as many things it references such as the WNBA 1999 season are so old now. I have yet to beat this game legit and become a "fake millionaire" as the victory screen says.
This game has had four previous submissions of various levels of optimization. After adjusting for BIOS intros and different framerates, my run is 7 frames faster than the previous best. This game was not published before, because of previous rules on entertainment and game show games.
The BK2 and YouTube encode contain comments as CC/subtitles.

Peer Review

I wonder if the previous submitters also thought this would be an easy game to TAS, then found that RNG makes it hard to answer quickly. It took me a lot of tries just to match Jigwally's time.
Two of the previous TASes were on VBA, which used a framerate of 60 that is no longer considered valid for the console. The GBC is considered to run at ~59.7275 FPS nowadays, but can vary within any play session due to factors like the amount of time spent with the LCD off (this run's FPS is closer to 59.7335). Due to this, I will compare framecounts directly rather than dividing by anything.
Three of the submissions did not include a BIOS, so I included another column adjusting for the 185 frames each would spend in the GBC BIOS:
SubmitterOrig. framesAdj. framesRank
MikeRS15383155682nd
LSK15506156914th
Jigwally15562155621st
Logan15400155853rd
My run can be most directly compared to Jigwally's, which used BizHawk, the GBC BIOS, and a more correct framerate, though no stored CycleCount. For easier comparison, I also used the GBC BIOS, and made a 14 frames longer GBA BIOS resync bk2 if needed for console verification. Only the BIOS portion needed to be changed.
RNG and possibly startup state are totally different between VBA, BizHawk 2.2.2 (which Jigwally used), and modern BizHawk, so they do not sync with each other. Like my predecessors, I had to do all inputs myself since all different questions appeared.

Strategy

RNG manipulation can be done in the pregame in 4 spots to manipulate the first question (not 3 spots as MikeRS thought): skipping the only skippable intro, passing the title screen, selecting number of players, and entering player name.
Then during gameplay, you can change RNG by waiting different amounts of time before pressing the A button to select an answer. As expected, "A" answers are the fastest, though B answers may be acceptable if 4 frames of waiting would be needed to manip an A anyway, or the B answer sets up a different next question that can be answered with A. Since every frame counts and manip options are limited, D answers are never faster, and I hesitate to say a C could be, since the selection cursor does not wrap around from top to bottom. You have to go down to reach B, C, and D.
Let's see how our contestants did:
Submitter123456789101112131415A totalB totalCompared to all A
MikeRSAAAACABABBADABA94+36fr
LSKCCACCCBABBBBBBB28+72fr
JigwallyAAAABABBBABACAA95+28fr
LoganABABDAABAABCBBA76+44fr
CoolKirbyABAAABBABABABAA96+22fr
The final column shows how the scrolling to other answers affected the final times. Even without considering frame waits to manip future questions, the scrolling can add up. Obviously a run with all "A" would be ideal, but with current knowledge would take too many wait frames to manipulate. If you wanted to test it, you could cheat the game to accept all A answers by freezing 0x0A04 to 0, but you'd still have to deal with...

"Is that your final answer?"

Regis' famous catchphrase has unfortunate results for this speedgame. Even if you press A first frame, RNG can decide to give you a "Final answer?" prompt, which adds a 38-frame delay to your A press. It also requires another A press to dismiss, so even if you're hovering over the last answer of the game, you can't end the TAS while the prompt is up. It is a scourge that is never faster and must be manipulated away. I haven't found a RAM address that determines when it happens, so it may be in ROM, maybe wherever the RNG formula is stored.
Waiting on either the previous question or the current question can make it go away, since it seems to be frame-based (a local timer?). Of course, waiting on a previous question will likely change the question you get entirely. After the 60FPS pregame setup, the controller is polled at 30Hz during the main game. So waiting 2 frames before pressing A can avoid the prompt. However, sometimes it will also prompt you on the 2nd, 4th, 6th, and 8th frame and so on, turning what looked like an easy A into a retreat to the previous question to manipulate all over again. It's a scourge.
Besides waiting, different questions can also be manipulated by pausing and unpausing within 3 frames. Instead of ({blank), (blank), A}, it would be {Start, (blank), Start+A}. This has the bonus of locking in the final answer on/off value from the frame you paused. So if frame 0 was safe, and frame 2 would have a final answer prompt, this lets you avoid the prompt while still landing on frame 2 to manipulate the next question.
Side note: When the catchphrase first started being used in the show, it was only on certain questions, which is possibly why it doesn't appear on every question here like it seemed to later in the show's run.

RAM addresses

  • 0A04, as mentioned, stores the answer for the upcoming question from 0–3, inclusive, with 0 being A and 3 being D. It is updated during the black screen before the question is drawn, so you can cheer when 0 appears, sigh when 1 appears, or hurry back to your savestate when it morphs into a dreaded 2 or 3.
  • 10EB is a timer for the bottom text opacity. Around when the selection cursor loads in for a question, this value will always count up to 31 while some text fades in. Odd values starting from 3 are when you can press a button, and it registers during the next frame's even-numbered values. After A is pressed, the value will count down as the text fades out again. If the answer is accepted, it will stay at 0 for a few hundred frames. If you get a final answer prompt, it will start counting up again as the "Final answer?" text fades in, and remain nonzero until you press a button. You can watch the address at this point with a bot to ensure you avoid the prompt.

Possible Improvements

This game would be good for botting. There are a limited number of ways to manipulate in a limited timeframe (< 10fr at a time, I'd say), with time being the main unknown to solve for. These limits would make Bobo the King's bot a good way to brute-force a solution in a reasonable number of hours. In my experience, it takes a lot of tinkering to resolve my own human errors in programming it, but after that, the bot can do good optimization work. I might try it myself someday, but I wanted to submit my best human effort before MikeRS' submission was rejudged. Other bots may work too, but I haven't tried them.
Turning the music and sound off may or may not save time. If it does affect the game, it would have to save more than the 16 frames it takes to turn both off before moving on to the name entry.
We're only 46 frames away from my cheated (impossible) test time of all A answers with 0 wait frames: 4:19.637, or 15509 frames. There's not much for a bot or any further improvements to do, but it might be neat to see how low a real run could go, maybe 4:19:xx.

Thanks to

  • All previous submitters for their input data, especially MikeRS for various insights (especially the correct ones)
  • Chamale for encouraging MikeRS and sympathizing with that run's rejection
  • BizHawk devs for the great emulator
  • You, for reading and watching
Warning: MikeRS' pause trick to manipulate RNG may result in a visible flicker that would need an eye sensitivity warning, such as at 2:09 and 2:58 in my encode.
Publisher: Please include the BK2's Subtitles.txt in encodes.

nymx: Claiming for judging.
nymx: Wow...the history behind this game! Let's review the past first, before I make my final judgement:
  • This submission was back during the early days of TASVideos where game choice was a thing. Back then, the site was more geared towards audience acceptance and high entertainment. In addition, some games were rejected, due to triviality. In this case, it was rejected due to "Game Choice".
  • This submission just didn't cut it, mainly because it wasn't faster than the previous submission. Still, at this point, old rules still are in play and the game just isn't exciting to the audience. With 17 "No's", I think we can see why it didn't make it back then.
  • This submission was still under the old rules, but there is no explanation of why it was canceled. Here we have our first moment of accurate emulation, with an effort that tried to manipulate the game's RNG with greater effort.
  • This submission was canceled because they probably didn't realize previous submissions. This is evident, since they talk of being slower than other times. Here, it would have been accepted...due to the new rules; however, optimization would have played a factor here.
Now the work that CoolKirby has submitted has taken this game to a further level of optimization. After I reviewed this run, I saw the exact points that I wanted to see. Always have to answer between A and B. In regard to the emulation differences, I see that the right firmware makes the difference. Your explanation clears up this problem and the adjustments show that you are clearly the bread winner here by 7 frames.
I haven't seen any opposition here, which from my review, shouldn't be.
Finally! Accepting the first version of this game to "Standard"!
fsvgm777: Replacing movie file with one that has a cycle count, and processing. r3gamerz is handling the encodes for this one.
Last Edited by CoolKirby 29 days ago
Page History Latest diff List referrers Change Log