Submission #7958: TaoTao & ViGadeomes's GB Caesars Palace "best ending" in 00:25.95

Game Boy
best ending
(Submitted: best ending)
(Submitted: Caesars Palace (USA).gb any)
BizHawk 2.8.0
1561 (cycle count 54420136)
60.15520196421413
431
PowerOn
Submitted by TaoTao on 1/11/2023 5:36 PM
Submission Comments
This submission improves ShesChardcore's run, achieving the best ending faster.

Game objectives

  • Emulator used: BizHawk 2.8.0
  • best ending
Note: this game depends on an uninitialized RAM state, and the optimal TAS solution varies for different platforms (GB/GBC/GBA). I will describe the details later. I chose GBA-mode for console verification purpose. Thanks to ViGadeomes for resyncing the original GB-mode movie.

Comments

To achieve the best ending, you have to earn $5,963,776. For this purpose, it will be fastest to get a jackpot (about $5,000,000) of $5 slot machine twice. (It is a little slower to use a jackpot (about $1,000,000) of $1 slot machine)
The RNG of this game is frame-dependant, and it converts frame counter into random number. The reel value of a slot machine is determined by the timing which you operate (insert coin and pull the arm) the slot machine. In conclusion, you can get black seven if you operate when the frame counter is 0x0A, 0x4B, 0x6A, or 0xA8. This follows from the tables below:
The route of cursor movement is important, because the screen starts to scroll after you move cursor to the same direction for a while. In this run, I did the first slot machine operation just in time.
I put some useful memory (logical) addresses:
addressdescription
$C0C0frame counter
$C0C4-$C0C7random number buffer
$C0C8-$C0CBreel values of slot machine
$C0D7whether the condition of the best ending is fulfilled
$C0D8money ($25600 units)
$C0D9money ($100 units)
$C0DAmoney ($10 units)
$C0DBmoney ($5 units)
$C0DCmoney ($1 units)
$C0DEmoney (u24le)
$C0F5screen scroll x
$C0F6screen scroll y
$C0F9cursor x
$C0FAcursor y
The frame counter ($C0C0) is not initialized on a boot, and its initial value varies for different platforms (GB/GBC/GBA). So, the optimal TAS solution also varies for different platforms (GBC/GBA movies are thanks to ViGadeomes):

Other Comments

The number 5963776 is 0x5B0000 in hex. But I'm not sure where the number comes from. "5963" seems to be the pun on a Japanese word "ご苦労さん", but it might be just an accidental coincidence. ("ご苦労さん" means "Thanks for your hard work" with a bit of sarcasm)

feos: Claiming for judging.
feos: Replacing with a GBA mode resync, for console verification, and adding ViGadeomes to authors, per agreement.
feos: The fact that optimal memory values depend on uninitialized RAM is not a problem as long as you don't edit the initial startup state arbitrarily. Even though console startup states are not fully deterministic, they are not completely random and depend on certain hardware world factors.
When it comes to emulation, we can simulate some real-world hardware factors, but in TASing we can't afford non-determinism. So most emulators enforce a startup state that makes overwhelming majority of games work correctly, even if there's no real-world precedent for that exact state. There are emulators that can be configured to replicate actual device startup states more precisely than usual, and it's mostly fine to use those explicit options. Because even if they are not absolutely accurate, they are very compatible, and on top of that, they guarantee even chances for a speed competition.
Even then, the core used in all 3 movies does not provide options for tweaking the startup state, and using emulator defaults in that regard is 100% legitimate for all our needs.
Accepting as an improvement over [4960] GB Caesars Palace "best ending" by ShesChardcore in 00:54.42 in both gameplay time and the ending.
feos: Restored judgment text that got lost to concurrent editing.

despoa: Processing...
feos: Added original movie's rerecord count.
Last Edited by feos on 2/11/2023 5:14 PM
Page History Latest diff List referrers