Submission #4018: hero_of_the_day's SNES Vegas Stakes in 02:43.20

Super Nintendo Entertainment System
baseline
BizHawk 1.1.0a
9808
60.0988138974405
1993
Unknown
Vegas Stakes (U).smc
Submitted by hero_of_the_day on 7/17/2013 4:44:57 AM
Submission Comments
Emulator information:
  • BizHawk 1.1.0a
Emulator sync settings:
  • File → Movie → Uncheck Bind Savestates to Movies and Automatically Backup Movies
  • Config → Enable → Uncheck all settings
Movie goals:
  • Aims for fastest time
  • Manipulates luck
About this game:
  • Vegas Stakes is a casino gambling simulation game released for the SNES in the early 90’s. Players are given a starting amount $1,000 and given the goal of turning it into $10,000,000 through the use of betting on various games. These game include blackjack, poker, craps, roulette, and slots. There are several different casinos to choose from, each with a different limit on the betting amounts. Initially the player only has 4 casinos to choose from, each of which places a limit on how large of a wager can be made. After earning $100,000, the game will unlock the 5th and final casino which will allow the player to place bets without limiting the wager amount.
Improvements over previous run:
  • The introduction movie is now completed skipped. This was achieved by pressing the “X” button at the title screen instead of the standard “A” button. This was an odd inclusion on the developer’s part, because all other menus and dialogue in the game are cleared through the use of the “A” button.
  • The previous version of this run used the craps game to quickly achieve $100,000 within 2 rolls. This new run gets the money by manipulating the game into giving the player a winning lottery ticket worth $100,000. This new strategy saves time in a couple different ways. Much of the time is saved because the player no longer needs to switch the higher limit casino. As the lottery ticket can be given at any of the casinos, I can simply stay with the default low limit casino. This eliminates the long drawn out dialogue boxes and screen transitions. Additionally this lottery ticket method also saves time because it removes the betting and rolling animations that would be required for craps game. The lottery ticket can actually be given during any of the games, but blackjack was chosen for 2 unique reasons. With blackjack, you can opt out of hand and trigger a “random encounter” which in any other game would require some sort of dice rolling/slot/card dealing animation. Another benefit of choosing blackjack is how the RNG operates. Blackjack allows for complete control over 2 unique values which must perfectly align in order to trigger a specific event. Knowing these 2 values is how I managed to keep luck manipulation frames down to a minimum.
  • The final section of the run is almost the same as the previous version, whereby the player visits the no-limit casino and bets on craps to make the $10,000,000. I managed to keep luck manipulation frames down to a bare minimum here (~3 frames).
About random encounters and luck manipulation:
  • Throughout the game, there are several different “random encounters” that can occur with other casino patrons. You can visit http://www.gamefaqs.com/snes/588828-vegas-stakes/faqs for a detailed breakdown of all the random encounters that can occur. For the purpose of this run, I was interested in making the lottery ticket random encounter occur. The lottery ticket random encounter can yield the player a winning lottery ticket worth anywhere from $10,000 to $100,000. If I could get the lottery ticket worth $100,000, then I would be able to skip right to the no-limit casino without having to place any bets at all on the low limit casinos.
  • In order to get the lottery encounter to occur, I first needed to find out all the possible times that the lottery encounter can occur. I found 2 unique memory addresses, that when combined would determine the type of random encounter. These 2 memory addresses are 0x7E000B and 0x7E000A. Each of these values has 256 possible values. When you multiply the two values together, you get a total of 65,536 values. All told, there are 65,536 different possibilities when it comes to determining a random encounter. Only 25% of the values actually yields a random encounter, while 75% of the values will hit a blank. Out of those 25%, I had to narrow down to just the lottery ticket encounters and ignore all the other random encounters. To do this, I created a painfully large excel spreadsheet and began testing each individual value and putting them onto the spreadsheet. After a few hours, a very complex but repeatable pattern started to emerge. I will attach the spreadsheet below. When all was said and done, I had a total of 1,344 values which would yield the lottery random encounter. In order to quickly test all 1,344 values, I created a lua script which would pause the game when the 2 values lined up creating one of the 1,344 known lottery values. Each time the game would pause, I would make a note of the frame it occurred on and test it to see if it would be the $100,000 lottery ticket. If the ticket paid out less than $100,000, I would skip it and move on to the next paused frame. The values change every frame randomly during the deck shuffling sequence in the blackjack game. This allowed for pin point accuracy because I could let the sequence run for as long as I wanted and simply press A when I hit the desirable frame. On top of all that, I also had even more control over the randomness, because a seed is planted when you click on blackjack at the game select screen. This seed will determine how the 2 random numbers (0x7E000B and 0x7E000A) will play out. There are a total of 256 starting seeds. In all the other casino games, the values are fixed as soon as you click on the game you are choosing to play from the game selection screen, and only change once the current roll/hand is over.
  • My excel spreadsheet can be found here:
  • My lua script can be found here:

feos: Accepting to Moons and publishing...
Last Edited by adelikat on 10/5/2023 11:03 PM
Page History Latest diff List referrers