Submission #4408: CoolKirby's A7800 Barnyard Blaster in 01:53.80

Atari 7800
baseline
(Submitted: Barnyard Blaster (1988) (Atari) [!].a78 USA)
BizHawk 1.7.4
6819
59.9227510135505
4236
Unknown
Submitted by CoolKirby on 8/17/2014 7:05 AM
Submission Comments
You and your grandfather just bought a small farm for growing vegetables and raising horses. Unfortunately, you find that the place is infested with animals that are determined to drive you away. Using your trusty gun, you aim to rid the property of these pests.
This run completes the first three levels, after which there is no new content. A trick is used to end the bonus levels immediately by shooting Gramps.
Warning: The screen briefly flashes white every time the lightgun shoots. Do not watch if you are sensitive to this.

About the run

  • Emulator used: BizHawk 1.7.4 (the game does not open in revisions earlier than 1.7.2)
  • Aims for fastest game completion
  • Manipulates luck
  • Manipulates away lag
  • Genre: Shooter
I've been working on this off and on since this game became TASable with the release of BizHawk 1.7.2. The only method of input is the XG-1 lightgun, which is why BizHawk didn't know how to handle input for this game before the VirtualPad fix.
An alternate version of this submission text is included in the Comments file inside the bk2 for your convenience. Simply open the bk2 as an archive and open Comments with any text editor.
I chose fastest game completion over fastest input because it keeps the run from feeling incomplete. If aiming for fastest input, you only need to shoot the first enemy in Level 3, since the game reads 1/1 enemies shot as a perfect score (and ignores the ones you missed). It's hard to sit through Level 3 with just the animals running across though, so I ran the rest of the level too.

About the game

As with other lightgun games, you must shoot targets as they appear on the screen. There are three unique levels that loop endlessly, with Gramps' bonus screen in between.
The game's RNG doesn't seem to cycle until I pull the trigger for the event I want to manipulate, and invisible lag behaves the same way. This requires me to brute-force everything by hand.
Some animals can't be shot as soon as they first appear on screen, and attempting to do so by shooting at the extreme left and right edges of the screen will cause the shot to be displaced to a random spot on the screen. I think this is a combination of strange animal hitboxes and range limitations of the XG-1.

Level-by-level comments

Level 1

  • The number of bottles in this stage is determined by RNG and based on the frame you shoot the "One Player" hay bale. Bottles can be shot much faster than cans, so I made as many bottles appear as I could without wasting too much time. The "random" sequence goes:
3,4,4,4,4,4,3,4,3,4,3,3,5...
  • A screen with 5 bottles turned out to be only 12 frames away. The nearest 6-bottle screen was 127 frames away and didn't save as much time overall.
  • This level can have odd delays when the targets are shot in certain orders.

Bonus Level

  • Skipped by shooting Gramps. Poor Gramps.

Level 2

  • Since shooting the enemies is pretty trivial, the challenge in this and the next level comes from finding where to waste frames to reduce long delays and end the level fastest.
    • It's usually apparent when you've found the fastest pattern, as the delays between animal appearances will all but disappear. The fastest pattern is the one that allows you to shoot the last animal earlier than in all of the other attempts.
  • Enemies change position every 5 frames. Wasting a frame before shooting an onscreen enemy will cause the next enemy to appear at the start of the next key position, 5 frames later. To avoid this, I instead waste frames before the level starts and before shooting the last enemy. These are the results of my testing:
Frames wasted (beginning)Frames wasted (end)Notes
00...3...23 frames from optimal
1-100,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
110...1 frame from optimal
12-140,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
150...optimal pattern
16-200,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
210...tied for 1 frame from optimal
22-240,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
250...tied for optimal pattern
26-290,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
  • There seems to be a pattern here, since 11 and 21 both lead to a near-optimal pattern and 15 and 25 both lead to the optimal one. Everything else was way too slow to be notable.

Bonus Level

  • Skipped by shooting Gramps. Sorry, Gramps...

Level 3

  • There are three different places to waste frames before starting Level 3 (level 2 results, bonus, and bonus results), so I initially tested several combinations of wasting frames in three places. This became a lot easier once I noticed that while the optimal pattern wouldn't always occur, when it did, it was always after wasting 9 frames somewhere:
Frames wasted (lvl2results)Frames wasted (bonus)Frames wasted (bonusresults)Notes
000,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
011...8...fastest input; 15 frames away
02,3,4,57,6,5,4
063tied for optimal
07,8,92,1,0
1086 frames away
110...7...tied for fastest input; optimal input
12,3,4,56,5,4,3
162tied for optimal
17,81,0
306
315tied for optimal
32,3,4,54,3,2,1
360tied for optimal
4506 frames away
53,41,0
900
  • After this much testing, I decided I had found the fastest input pattern.

Possible Improvements

Though I tried many different possibilities for Level 3, it is always possible that a bot could work out a better input pattern.

Suggested screenshot

3304

Thanks to


feos: Publishing to Vault.
Last Edited by adelikat on 10/11/2023 11:39 PM
Page History Latest diff List referrers