Submission #8738: TaoTao's NES Cadillac in 02:15.14

Nintendo Entertainment System
baseline
(Submitted: Cadillac (J).nes JPN)
BizHawk 2.9.1
8122
60.0988138974405
1385
PowerOn
Submitted by TaoTao on 11/16/2023 9:21 AM
Submission Comments

Game objectives

  • Emulator used: BizHawk 2.9.1 (NesHawk core)
  • Aims for fastest time
  • Uses hardest difficulty
  • Manipulates luck
This run beats NES Cadillac in about 2m15s.
This game allows you to select a starting level, so I started from level 9 in this run. (In casual plays, it is somewhat difficult to earn money in this setting, so I used "hardest difficulty" tag.)

About the game

"Cadillac" is a poker-style block falling game. This game was never released outside Japan.
To briefly explain the rules:
  • If you make a poker hand horizontally/vertically, the cards are erased and you get some prize. Flush/Straight is accepted with 3 cards or more. The prize is multiplied if you erase many cards at once.
  • To beat a level, you have to erase all the cards on the board with a certain amount of money. (Level 9 requires 2000 dollars, and level 10 requires 2500 dollars. But anyway, money is not a major issue for TAS.)

Comments

Unfortunately, it is beyond my ability to get a theoretically optimal solution for this game. The reasons:
  • The search space is quite large.
  • The RNG depends on CPU cycles. (This game processes almost all logics in the NMI thread, and the main thread continues to update the RNG in an infinite loop.)
So, I bruteforced only for endgame. Until the end of midgame, I used a quick-and-dirty beam search to enumerate good positions. My solver code is here.
Here is a memory map:
addrtypedescription
$38u8RNG state
$0504u8current index in card pile
$0505-$0538u8[52]card pile
$0539-$0556u8[30]board
$0561-$057Eu8[30]board for judging hands
$05ABu8current card
$05ACu8current card pixel y
$05ADu8current card column
$05B6u16leplayer1 money
$05C0u8current level
$05C1u8starting level

Trivia

This game has a cheat which changes the card pile to the pre-defined one, but I didn't use it.
If the money overflows (exceeds 655350 dollars), immediately the ending starts. But this will take so long time even for TAS.

nymx: Claiming for judging.
nymx: Thanks for the description of this game. I have played poker for many, many years. The idea of having 3 cards for straights or flushes caught me off guard when I first saw it, but your notes cleared that up. I imagine the game would be much harder to have 5 cards in those suits. Looking at your drop pattern, you have planned the final clearing of each round very well. Since I don't know how I would approach the optimization of this game, I had to yield to human runs for comparison here. This movie smashes any human effort, as if it were normal play. I also have an affinity to your BOTing, since I try to do some of my games in a brute force manner as well. This is high quality work and I congratulate you on your work.
Accepting.

despoa: Processing...
Last Edited by despoa on 11/29/2023 10:13 AM
Page History Latest diff List referrers