Submission #7692: calcwatch2's SNES Sim Ant "Full Game" in 39:48.45

(Link to video)
Console Super NES Emulator BizHawk 2.8 (Windows 64bit)
Game Version USA v1.0 Frame Count 143543
ROM Filename Sim Ant (U)(37113).sfc Frame Rate 60.0988138974405
Branch Full Game Rerecord Count 3995
PowerOn Authors calcwatch2
Submitted by calcwatch2 on 9/15/2022 7:40:46 AM

Submission Comments
This is a complete run of the Sim Ant Full Game. The black ants must have colonies in all 49 house tiles, and the red ants must be completely eliminated.

Game objectives

  • Emulator used: BizHawk 2.8 (Windows 64bit), BSNESv115+ core
  • Objective: Finish the Full Game as quickly as possible.

Comments

My Full Game run has two basic phases. In the first phase, which takes about 16 minutes, I try to get a population of 100 ants, including 20 winged ants, so that they can start spreading to the adjacent tiles. RNG determines a lot of factors in success here, such as locations of food drops, deaths due to the human and his lawnmower, etc.
The second phase is nearly all RNG manipulation, either by moving the yellow ant randomly or waiting a certain number of frames before selecting a new tile to move to on the house screen. RNG affects which tiles the winged ants spread to, and when they spread there. Obviously, it's best to spread to as many adjacent tiles as possible, as soon as possible.
When moving to a new tile, the total red and black populations are mostly determined by RAM values, but they can vary by a few ants due to RNG. The breakdown by caste is all RNG-based, with heavy weight given to worker and soldier ant counts. RNG manipulation ensures that the tiles selected will have at least 100 ants, including 20 winged ants, immediately triggering their flights to adjacent tiles.
During fights between the yellow ant and red ants, I rapidly press A and B (alternating 2 frames A / 1 frame B), to boost the chances of winning. A random value is selected at the start of the fight, and then compared to a second random value at the end of the fight to determine the winner. The first value must be greater than the second for the yellow ant to win. Every one of the A/B button presses increments the first value, and the fights usually last long enough to increment it well past the second value. When the second value is too large for this to work, I buy more time for button presses by briefly pausing the game mid-fight.

Other comments

  • SHA-1 hash: B0F4468C99A010AFF44AE165893CCA5E4C242771
  • For the YouTube video, I wrote a Lua script to add an OSD to make it easier to follow my progress. It doesn't affect the game state in any way.
  • This run could be improved with better RNG manipulation to get faster migrations. I got the current results with lots of time consuming trial-and-error, but if someone could automate the process, it would be easier to search for better patterns.

slamo: Claiming for judging.

Last Edited by slamo 2 days ago
Page History Latest diff