Submission #7967: TaoTao's NES Caesars Palace "best ending" in 00:37.55

Nintendo Entertainment System
best ending
(Submitted: best ending)
(Submitted: Caesars Palace (USA).nes any)
BizHawk 2.8.0
2257 (cycle count 201636761)
60.1009016226145
2782
PowerOn
Submitted by TaoTao on 1/15/2023 3:11 AM
Submission Comments
This submission improves ShesChardcore's run by 228 frames, due to a route change and micro-optimizations.

Game objectives

  • Emulator used: BizHawk 2.8.0
  • best ending

Comments

To achieve the best ending, you have to earn $131,072 (0x20000 in hex). For this purpose, you can consider various methods, and the fastest route is not so obvious. I used a slot machine (and a video poker to manipulate RNG).
RNG of this game is quite different from the one of GB version. RNG has a "RNG index" and a "RNG table". Every time RNG generates a random number, it increments RNG index. And, RNG index is also incremented at each frame while you are staying at the casino hole. And, every time RNG generates a random number, it "scrambles" RNG table. Consequently, it is not so easy to manipulate RNG as GB version.
I read the game code, and wrote a solver to achieve the best ending. I found a 3-step solution which uses a video poker and a slot machine. According to my solver, it is a unique 3-step solution. But I'm not sure whether it is fastest, due to losses for cursor movement. There are also many 4-step solutions, and some of them use only slot machines. (example)
Here is a RAM map:
AddressTypeDescription
$18u8PPU scroll x
$19u8PPU scroll y
$A7u8money ($100 units)
$A8u8money ($25 units)
$A9u8money ($10 units)
$AAu8money ($5 units)
$ABu8money ($1 units)
$04EAu8cursor x
$04EBu8cursor y
$0531u8[5]video poker: cards
$0551u8RNG index
$0621u24lebuffer for money/prize calculation
$0664u8[4]slot machine: final reel values
$067A-$0773u8[250]RNG table
$077Eu8money ($25500 units)
Here is a ROM bank #6 map (bank ID is 0-indexed):
AddressDescription
$82F2slot machine routine
$8E7Froulette routine
$95F6wheel of fortune routine
$9C67blackjack routine
$A657poker routine
Here is a ROM bank #7 map:
AddressDescription
$F922RNG routine
By the way, you can get a royal flush in the video poker, and the game says you can earn $400,000 by a royal flush. But actually, the prize of video poker is treated as a unsigned 16bit value and it overflows (400000 mod 65536 = 6784):

feos: Claiming for judging.
feos: Thanks to ViGadeomes for the review once again, accepting over [4944] NES Caesars Palace "best ending" by ShesChardcore in 00:41.35.

despoa: Processing...
Last Edited by despoa on 2/12/2023 5:38 PM
Page History Latest diff List referrers