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:
addr | type | description |
---|---|---|
$38 | u8 | RNG state |
$0504 | u8 | current index in card pile |
$0505-$0538 | u8[52] | card pile |
$0539-$0556 | u8[30] | board |
$0561-$057E | u8[30] | board for judging hands |
$05AB | u8 | current card |
$05AC | u8 | current card pixel y |
$05AD | u8 | current card column |
$05B6 | u16le | player1 money |
$05C0 | u8 | current level |
$05C1 | u8 | starting 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...