Submission #7203: slamo's DOS Boppin' "Episode 1, 2 players" in 15:09.05

(Link to video)
DOS
Episode 1, 2 players
libTAS 1.4.2 + PCem v17+st-1
90905
100
24392
Unknown
boppin.exe
! Version info: 

libTAS version: 1.4.2

! Annotation info: 

{{Platform: DOS

OS: Ubuntu 20.04.1 LTS, Linux kernel 5.4.0-59-generic
libTAS: Version 1.4.2
PCem: TASVideos v17+st-1
Game: Boppin' DOS v1.1 registered

This movie is based on the premade Early 90s PCem config: http://files.tasvideos.org/common/Wiki/pcem/dos/PCem-Early90s.7z

Follow the readme provided with the config to install it. Name the files boppin.cfg, boppin.pb570.nvr, and boppin.img.

The config will need the ROM files 1007by0r.bio, 1007by0r.bi1, and gd5430.bin (these are all case-sensitive) in the ~/.pcem/roms/pb570/ folder. If there is a flash.bin in this folder, delete it or you will get desyncs!

Make a new folder and put the files for Boppin registered DOS version 1.1 in it. The files and their MD5s are:

4ae0e820150335340068ebd6d91a9123  bop-help.exe
3464ec93a6b672a7c63e06b44e2052b8  boppin1.lvl
4b7ceb427fafc91abefab1e241446f13  boppin2.lvl
da4568667c54ff8a6b2153b5d4c63110  boppin3.lvl
b19610b393ea37dc5ed3ce80e9d8489d  boppin4.lvl
f93e53168dc5556339b2b65ac44f4ab1  boppin.cfg
d6ba7309bc215094f95dc5256f57b854  boppin.exe
069998748b1f0c334539d6987e33075a  boppin.res
9ef4c7ec3d56ea67f5c0868af5b826e5  setup.exe

Make an ISO of these files with this terminal command, substituting the path to the folder you just made: mkisofs -o boppin.iso /path/to/folder/

In boppin.cfg, set cdrom_drive = 200, cdrom_path = /path/to/boppin.iso, and hdc_fn = /path/to/boppin.img.

Also in boppin.cfg, replace the [Joysticks] section with the following:

[Joysticks]
joystick_0_nr = 1
joystick_1_nr = 0
joystick_0_axis_0 = -2147483648
joystick_0_axis_1 = 1073741824
joystick_0_button_0 = 0
joystick_0_button_1 = 1

This sets up a joystick, mapping the stick to a controller D-pad. Alternately, to set it up through the PCem config GUI, plug in a USB Xbox controller and go to the Joysticks tab. Set Joystick to "Standard 2- button joystick(s)". Click on the "Joystick 1..." button. In the Joystick Configuration window, set the device to your USB controller, set Axis 0 to "POV 0 (X axis)", and set Axis 1 to "POV 0 (Y axis)". Hit OK to save everything.

In libTAS, make sure Runtime -> Prevent writing to disk is checked, otherwise you might have to remake the hard drive after running the movie once. Set the executable to your PCem path and set the command-line options to `--config /path/to/boppin.cfg`.}}
			
Submitted by slamo on 8/29/2021 10:38:52 PM
Submission Comments
Boppin' is a puzzle game developed by Accursed Toys and published by Apogee from 1994. The heroes, Yeet and Boik, notice one day that their arcade games have no monsters, and find out that Hunnybunz has taken them all away in his attempt to create a pure, anodyne world free of anything that could be perceived as controversial. Yeet and Boik set off to free these monsters at the behest of other video game heroes, because what else would they do if there was nothing to fight against?
This game was somewhat controversial in its time. The original version had disturbing animations when the players got a game over, but later versions had to have them activated by a command line parameter. Boppin' is also known for its bizarre imagery and its numerous religious and political references.

Gameplay

The objective of every level is to eliminate (bop) all destroyable blocks on the screen. This can be done by throwing similar blocks at patterns of destroyable blocks, or dropping blocks off the screen.

2 players

Using two players obviously clears levels faster than one player. Yeet is controlled by the keyboard and Boik is controlled by a joystick. Their interactions are fairly limited. They pass through each other and they can't pick up each other's blocks, so they mostly work independently.

Physics

Some levels have gravity and some of them don't. Players can't move while blocks or bonuses are falling - except when they are walking off an elevator that just moved, in which case this restriction is cancelled. This quirk can be exploited to save a little bit of time. If a lot of blocks are falling, there's an additional flinching animation.
Blocks can be pushed around, and it can be useful to combine groups of blocks to minimize the amount of throws you need to finish the level. You can also push blocks off of the bottom of the level and remove them.
All levels wrap around from the left and right sides, which is useful and sometimes necessary to use. Blocks that fly off the top or bottom are destroyed.
Blocks will be destroyed if they hit certain floors, but you can bounce blocks off of some floors. It's worth testing floors in some cases because thrown blocks move faster than the player does.
Saving + loading despawns players' blocks, but only if they are holding them. Untouched blocks at the spawn location will stay there.

Elevators

Elevators can be called by standing next to them and pressing the action button. For whatever reason, both players cannot travel up and down on an elevator at the same time.

Block spawning

Each level has a predetermined order that blocks appear. Player 2's order is the reverse of player 1's order. If all blocks of a certain type are eliminated from the level, they will stop spawning. You can destroy a block by holding down on top of the spawner, but you will have to wait for the next one.

Freeing monsters

A monster will be freed if blocks are eliminated in the following patterns:
While freeing monsters is the story's objective, this actually wastes a lot of time and should be avoided whenever possible. Not only do you get the "I am free!" scene, but if you free at least one monster, you get a brief summary of freed monsters after the level. Not freeing anything skips all of this. If you must free one, try to position yourself in a way that minimizes the distance the monster has to travel to get to you.

Perfect bonus

If you collect every bonus item in the level, you get a 2-second "PERFECT" scene after you beat the level. It's usually best to avoid collecting every single thing so you can skip this.

Mystery spot

The mystery spot is a randomly chosen tile in the level where if a block you throw passes over it, you get a 10x points multiplier. There's a 3-4 second pause whenever you activate this, so it should be avoided. The spot can be manipulated away by delaying the save/load.

Intro skip

The players normally have an intro animation, but this can be skipped by saving + loading immediately as the level starts. The menu inputs can be buffered while the previous level is fading out, but if some blocks start the level in mid-air, the save + load must be done after they are finished falling. This cuts about 2.4 seconds off every level.

Monster skip

Much like the intro animation, the animation for monsters can be skipped as well by saving + loading. A couple downsides: it despawns the other player's block, and it breaks all elevators, so its applications are limited.

Block duping

If blocks are falling in between tiles and you save + load, the block duplicates itself. This sounds counter-productive, but the level ending triggers when you eliminate a certain number of blocks, NOT when you completely clear all blocks. This can allow you to skip certain blocks and end the level earlier than intended. This is not always worth doing because saving + loading takes some time. This trick also disables all elevators.
This can be done at the beginning of a level if blocks start in mid-air, but the drawback is that a second save + load has to be done to skip the intro animation.
Block duping causes some graphical corruption around the players in the form of changed background tiles behind the players and the blocks they're holding. This is purely cosmetic, these tiles remain passable.

Reverse throw

It's not clear if this was intended or not, but if you attempt to throw a block in one direction and then press the key in the opposite direction immediately after releasing, the block will fly in the opposite direction instead. This can be useful for getting weird angles in tight spaces, and is just generally good at cutting down travel time for certain shots.

Quick elevator throw

When moving up and down and elevator, it's possible through specific inputs to throw a block quickly from the tile directly above the player, rather than from the tile to the left or right. This can save a little bit of time in certain circumstances.

Level comments

Not every level is worth talking about, so I'll just explain some decisions for certain levels here.

Level 1

Block duping can be done here, but not on a scale that makes it worth doing.

Level 2

Here's the first instance of monster skipping. The top ones have to be done first and can't both be skipped because the elevators break after monster skips. It's still worth destroying the first set of blocks to maximize the amount of monster skips.

Level 6

Sometimes it's useful to stall the next block from spawning and have the other player eliminate that type of block to prevent a useless block from spawning - this is one of those cases.

Level 8

It's worth stalling Yeet's first shot so Boik can make it back to the right without picking up the collectible, which skips the perfect bonus.

Level 9

Here's when block duping can really save a lot of time. Instead of doing a lengthy pushing puzzle, one block is pushed off and then quadrupled so that the pattern is hit as soon as possible.

Level 13

This has one of my favorite shots in the run: a reverse throw off the elevator to bop the pattern in the bottom right.

Level 18

It's impossible not to get a perfect bonus here, both sides need to be used. The mystery spot is a problem in this one, since the blocks pass through almost all available space. Some manipulation has to be done to put it in a better place. It's worth block duping to skip a couple of individual blocks because of the long winding path the blocks have to travel.

Level 21

There are invisible elevators on the left and right sides of the level, and they can be lowered to make travel significantly quicker. Block duping saves some time over the intended solution due to skipping one of the flinching animations.

Level 22

Only one block is needed here, so the other player scouts ahead early and calls up an elevator to save a little time.

Level 23

It's worth doing a couple of block dupes to skip the last pattern of 3 crates.

Level 26

Under the fake wall are some nearly invisible bonus pickups. You can skip picking all of these up by doing some block duping, but it's not quite worth it due to all the flinching it requires.

Level 29

Since some blocks start in mid-air, you can block dupe right off the bat. Not only does this eliminate the need to bop the eyeballs, but it also breaks up otherwise unavoidable monster patterns.

Level 33

The large amount of moving blocks makes this level perfect for duping. The level is completed in only 3 throws rather than the many that would normally be required.

Level 35

Thanks to block duping, the bottom blocks can be linked to the top blocks and the level can be finished with only one combo.

Level 37

This level has a few slight routing options because of the large amount of circle blocks. The optimization here comes from making sure the items fall while waiting for blocks to spawn.

Level 38

The block duping and the order of shots here are done to avoid the flinching animations.

Boss

You can't save during the boss, so all animations must play out. Other than that, it's pretty straightforward, just hurl objects at Hunnybunz as fast as possible and try not to get stomped. Hunnybunz landing on an object does not damage him.
The game's manual hints that collecting more points makes the boss easier, and it seems that damage dealt to the boss is based on the player's score. The damage formula is as follows:
Score <= 80000: Damage = 1000
Score > 80000: Damage = Score*0.0125
Hunnybunz has 100000 HP, so we will need 100 hits. To make it 99 hits you would need a score of 80808, 98 hits would require 81632, and so on with diminishing returns as you get higher. To cut the boss's time in half, both players would need a score of 160000, and to quarter it, both need a score of 320000. Obviously this run skips as many monsters and mystery spots as possible, so the boss takes a lot more hits than it would in a normal playthrough. It's unknown if it's worth collecting more points to make the boss shorter, but it's unlikely to pay off, as each player would have to quadruple their current score to start having any effect, and would need eight times more points to cut the boss time in half. It's an interesting min/max problem, and it's perhaps worth looking into, but it would require collecting different amounts of points and redoing the whole run several times.

feos: Judging...
feos: Updating the movie with a file that addresses the config tweak.
feos: The music is terrible, but everything else looks really good, especially after watching the longplay of this game (to understand the mechanics better). Accepting.
fsvgm777: Processing.
Last Edited by adelikat on 11/6/2023 6:38 PM
Page History Latest diff List referrers