Boppin'
version 2.5
Stephen P. Lepisto
Jennifer D. Reitz
- 640x480 graphics support
- Intel/AMD 64-bit processor, running at 2000 MHz or better.
- 64 megabytes of RAM.
- Windows 10 or 11 (theoretical support for Windows XP/Vista/7/8 but untested)
- Sound support
-
Hard drive with approximately 28 megabytes of space, plus space for custom levels, save files
Note: 36 custom levels, each with 40 maps, can fit in 1 megabyte of drive space
- Keyboard
- Supported: Joystick/game controller strongly recommended
- Supported: Mouse usable in all parts of the game as alternative input device
- Recommended: Mouse for editor (joystick/game controller or keyboard can be used).
-
New Feature: Game almost completely written to take advantage of the Simple DirectMedia
Layer (SDL) library v2, providing faster performance and smoother game play.
(Note: Sorry, but there is still too much Windows-specific functionality in
the program to consider a port to another operating system)
-
New Feature: Game now runs in 640 x 480 full screen mode
(graphics were mechanically scaled up to make this work).
This allows Boppin' to be played on newer graphics cards that do not support
the older 320 x 200 full screen graphics mode with 8-bit color (this lack of hardware
support has been the case since at least 2009).
-
New Feature: Auto-Save mode. This is enabled by default and can be toggled
on and off from the Main Menu's Set Options menu under "Auto-save".
Auto-save applies only to the four main episodes. When auto-save is
enabled and the player selects one of the four episodes, a dialog
box appears asking whether to Continue from the last auto-save point
in that episode or start a New Game in that episode. If there is no
auto-save yet created, only New Game is selectable. At the start of
each map, the game is auto-saved, as indicated by a brief indicator
in the lower left corner of the screen.
Auto-save also applies on entry to the final battle, allowing the
final battle to be easily continued, over and over. And over.
And over. And over.
-
New Feature: Easy Final Battle Mode added.
"Easy Mode" is the default as it reflects how we wanted the game
to play in the first place. This mode can be toggled from the
Main Menu's Set Options menu under "Final Battle", switching
between "Easy Mode" and "Original". The "Original" mode required
the player to hit the final monster anywhere from 8 to 100 times,
depending on how many or few points the player had.
In "Easy mode", each hit on the final monster is based on the combined
point score of both players (if playing with a friend) and therefore
the final monster can be defeated in as little as 1 hit and at
most 7 hits.
(The original concept was always for the final battle to scale
the amount of damage delivered to the number of points the players
had. At some point, the damage delivered was determined by an
overly-complicated algorithm that meant a minimum of 8 hits to
defeat the final monster but each player had to have over
800,000 points each to achieve that; anything less and it would
take many more hits to win.)
[Our heartfelt congratulations (and apologies) to those players who managed
to defeat Sweety Hunnybunz and his family using the original
mode. Very well done!]
-
New Feature: Added option to the
in-game Options menu to "Skip to Next Map". This presents a
confirmation dialog box. If answered Yes, the players are
immediately warped to the next map. There is no penalty for
using this feature (in previous versions, each player would
lose a life for warping to the next map).
The intent of this feature is to bypass any map that might have
a bug in it that prevents further progress.
-
New Feature: "Arcade" mode added.
Starting the game with the command switch
--arcade
hides the ability to use non-keyboard controllers to change any
of the configuration. Specifically, the following changes are
made to the game interface (without affecting game play itself):
-
On the Main Menu, the options "Load Game",
"Set Options", "Set Devices", and "Use Boppin' Editor"
are removed.
-
On the in-game Options menu, all options are removed
except for "Exit Game", "Restart Map", and "Return to Game".
-
Turns on "cheat" keys. Since cheats can only be used
with a keyboard, a classic arcade cabinet set up with
only joysticks will not be bothered by this. This allows
for use of Ctrl-F5 and Ctrl-F8 to add a credit in
response to an external stimulus such as putting a
quarter into a coin slot.
-
To allow for tweaking the settings while the program is
running, attach a keyboard and press Ctrl-F9 in the
Main Menu. This toggles the hidden menu options on/off
on the Main Menu. This also allows connecting an external
switch in the arcade cabinet to Ctrl-F9, much like
Ctrl-F5 and Ctrl-F8.
This hidden key is available only on the Main
Menu and only when running in "arcade" mode. Does
not affect the in-game Options menu, which is always
just three options while running in "arcade" mode.
-
While arcade mode is active, all configurations are
saved in a different configuration file:
boppin25_arcade.ini.
Using "arcade" mode only affects what options are available in
the program's interface, so auto-save mode, censored mode and
easy final battle mode can still be used.
-
New Feature: The regular save slots feature under Save Game is still
available and can be used at any time except on the final battle.
But now the save slots can also be controlled entirely using the
button 1 on a game controller or mouse. Click on a save slot with
button 1 and click button 1 again to accept the slot name as
presented, triggering the save. This is the same as pressing
Enter to select the save slot and Enter again to accept the name.
An empty save slot will present a default name for that slot (for
example, "Save Slot 1"), which can be accepted by pressing button
1. The save slot name can still be edited using the keyboard.
Clicking button 2 while editing the save slot throws out any changes
and reverts the save slot to what it was before clicking on it
(same effect as pressing ESC on the keyboard).
-
New Feature:: Button 2 on a controller
will now act like pressing ESC on the keyboard to close any dialog
box, making it much easier to navigate the dialog boxes with only
a controller.
-
New Feature:: All new command line
options (and different from Boppin 1.1 through Boppin 2.1).
Note: Default behavior with no command line options is to
run in full screen mode on display 0, uncensored, normal play mode.
| Option |
Description |
| --help, -h, /? |
This help text. |
| --fullscreen[=0|1] |
Run display in full screen mode (=1) or windowed mode (=0) (default is 1)
full=# is still supported for backward compatibility.
|
| --listdisplays |
List the displays available then exit |
| --display=# |
Change which display is used (default is 0)
(Invalid display numbers default to display 0 by SDL)
|
| --censoredmode |
Enable "censored" mode, where character death sequences
are removed and the Accursed Toys logo is replaced with a
bloodless version. This mode can be toggled off and on
from the Main Menu and the in-game Options menu.
|
| --arcade |
Enable arcade mode, where game options are normally hidden
but can be toggled with Ctrl-F9 from the Main Menu.
Provides a simplified front end for that \"arcade feel\".
Configuration settings are saved in a different configuration
file.
|
| --log[=0|1|2|3|4] |
Enable logging of various messages to a log file. Optionally
change the level of detail:
|
=0: Errors only (Default),
|
|
=1: adds warnings,
|
|
=2: adds debugging,
|
|
=3: adds all application messages,
|
|
=4: adds all messages from SDL.
|
|
-
Bug Fix: If two players are active and Ctrl-L is used to warp to
the next map, only player 1 lost a life when both players should
lose a life. This bug goes back to at least Boppin 1.1 (MS-DOS
version).
In Boppin 2.5, there is no longer any cost for warping to the
next map so the above fix is moot. The reason for the no-cost
warp to next map is to bypass any map where a bug prevents
further progress.
-
Bug Fix: If Ctrl-Shift-L (now changed to Ctrl-Alt-L) is used to
jump to the beginning of the previous map (usually for replaying
that map) any gains from playing the previous map were kept instead
of lost, allowing for the ability to build points, lives, credits
just by replaying the same map over and over. This bug goes back
to at least Boppin 1.1 (MS-DOS).
-
Bug Fix: When two players have scores
that warrant entry in the High Scores table, if one player is
added and there is no longer any room for the other player,
both players would still enter their name but only one player's
name would appear in the High Score table. This bug goes back
to at least Boppin 1.1 (MS-DOS).
- This is the full version of Boppin' with all 160 maps.
- Runs under Windows using DirectX technology.
-
Uses standard Microsoft installation so Boppin' can be removed by
using Add/Remove Program from the Control Panel.
- Music instruments reworked to make them closer to the original Amiga sounds.
- Supports using mouse to play the game.
- Name of joystick is now displayed instead of "Joystick 1" and "Joystick 2".
-
Editor allows setting where custom levels are loaded from and saved to
(defaults to "My Documents\BoppinLevels").
-
Yeet and Boik don sunglasses when they achieve a Perfect (all prizes
collected on a map and no lives lost by either player on that map).
The Perfect state provides 5x bonus points when all prizes are collected
on a map.
-
By necessity, Boppin' runs in 320 x 240 full screen mode. This leaves a
black border above and below the game screen but at least the last tile row
is no longer clipped.>
-
Specify full=0 as a command line argument to run the program in windowed
mode (be aware that the window is 320 x 240 and therefore looks very small
on desktops set to a high resolution).
(See list of cheat keys at the end of this document.)
Boppin' is a puzzle game played in real time -- what we call an arcade
puzzle game. The object of the game is to clear all maps of a level or
episode, accumulating the maximum score, and fight the end of level
boss. Each episode has a lead-in story and different endings depending
on how well you did. Episode four (the last episode) has a special
ending which wraps up all the stories. There is a full-featured editor
allowing you to create your own levels (we have supplied versions of the
four levels played in the game to use as ideas).
On each map there are a number of blocks called "bopping blocks".
These blocks are arranged on a map in a wide variety of
configurations. Some of these configurations are part of a set of
four patterns. To clear the map, you need to throw blocks that match
the bopping blocks on the map (an alternative to matching bopping
blocks is to get the bopping blocks to leave the screen: it
contributes to clearing the map but you gain no score. There a few
maps that require this approach to clear them). Score is accumulated
based on the number of bopping blocks matched in a single throw. A
special bonus is achieved by completing one of the four special
patterns and releasing a trapped monster (as described in the story of
episode one). Also shown in the in-game help (press F1 to view).
Play continues on each map until all bopping blocks are removed from
the screen or both characters are dead.
If all lives are gone, the character dies. If playing in a one player
game or if both characters are dead, and at least one player has at
least one credit, a 10 second timer appears. The player can click their
button to use a credit within the time period and start a new set of
lives (in two player mode, both players give up a credit to start
over). Note that the score will be zeroed. When all credits are gone,
the game is over. A second player can join in at any time as long as
that player has credits. If the second player did not start the game
with the first player, no credit will be used to start the second player
for the first time as they are simply joining the first player.
In a two player game, it is possible to split credits and lives between
the two players in case one player is running low. The players stand
next to each other and "throw" in the direction of the other player to
give a "High Five". When this is done, the credits and lives are shared
evenly as possible between both players. A "Yay!" sound is heard when
successful.
Each player's character appears or rezzes in on their source tile.
These sources are at different locations on each map but there are
always two of them, one dedicated to each player. The blocks that each
character throws appear on these same sources. The throwing blocks
appear in a fixed order and only blocks that can match what is on
the map will be rezzed in. The player picks up a throwing block at
their source by touching the block. The throwing block is then carried
until the player is ready to throw it.
The characters move around the screen using the selected input device.
An input device can be a game controller, a joystick, the keyboard, or
a mouse. Characters cannot walk off edges. The only way a character
can fall is if they are standing on bopping blocks that are removed by
hitting them with a thrown block. Characters can move up and down only
on an elevator. Characters can move off the left or right of the
screen and appear on the opposite side -- assuming there is something
to walk on. Characters falling off the bottom of the screen lose a
life and will reappear on their source.
To use an elevator, step onto it and push up or down. Some elevators
can travel only so far downward because they have a fixed base. All
elevators will stop when there is an obstruction preventing further
travel or the top edge of the screen is reached. If an elevator is not
at the same row as the character, it can be called to that row. Stand
next to the elevator "shaft", press and hold the button and push the
stick in the direction of the elevator (same actions as if you are
throwing a block). If the elevator can come to that row it will. If
two elevators are in the same shaft, the upper elevator will move down
first. An elevator cannot be called through a floor or ceiling. It is
possible for two elevator/platforms to merge into one. In this case,
they act like a single elevator.
To throw a throwing block, press and hold the joystick button. Then
move the stick left or right to shift the throwing block left or right.
When the block is fully left or right, release the button: the block
will fly off in a diagonal direction away from the character. The
throwing block will carom off of walls and other objects until it hits
something.
Throwing blocks always move on a diagonal unless they hit
or move in front of the active side of a refractor, which changes the
direction of the throwing block.
Floor tiles in the bottom two rows of the map are considered deadly and
cause the throwing block to explode and the character loses a life.
However, some maps are drawn with wall tiles as floors and so those
"floors" are never deadly. Something to be careful of!
if you are carrying a throwing block that is inappropriate, stand on
your source and pull the stick down: the block will be destroyed at a
small cost in points (if you don't have enough points you will lose a
life).
A refractor is a tile that changes the direction of a throwing block,
causing the block to move in a straight line. When a throwing block
hits or passes directly in front of the active face of a refractor,
the block will be pushed directly away from that refractor. Each
refractor has only one active face. In this way, it is possible to
have the throwing block be pushed around the screen in a set path.
Again, a throwing block will stop only when it hits a bopping block or
deadly floor tile.
It is possible for a throwing block to become trapped between a
refractor and wall or two refractors. If this is not desirable (some
maps require taking advantage of this behavior) and you cannot retrieve
the block by touching it, then stand on your source and pull the stick
down: this will destroy the tile at a smaller cost in points than if
you were carrying the block (if you don't have enough points you will
lose a life).
If the throwing block hits a bopping block that is not the same as the
throwing block then the throwing block explodes and the character loses
one life.
If the throwing block is the same as the bopping block, a match occurs
and the throwing block and all bopping blocks that are the same and
contiguous to the bopping block that was hit are removed and a score is
accumulated. A bopping block is contiguous to another bopping block in
the four cardinal directions -- diagonals do not count. The more
blocks that are matched at the same time, the higher the score.
There are four special patterns of blocks that, when completed, release
a trapped monster and score a bonus. These four patterns are described
in the introductory story of episode one and in the instructions. The
best objective for each map is to complete as many of these special
patterns as possible. A few maps don't have these monster patterns
while other maps require moving bopping blocks around to set up a
monster pattern.
A bopping block can be pushed if there is nothing blocking it in the
direction of the push. A player walks up to the side of the bopping
block to be pushed and uses a throw move but keeps the button down
(like calling an elevator). The bopping block, if it can move, will
slide one tile position in the direction of the push. If a bopping
block is moved off an edge, it will fall in the direction of the
gravity set for the map.
Bopping blocks can be affected by gravity but that gravity can be
different for each map. There are five possible directions of
gravity for bopping blocks: up, down, left, right, or none. When
bopping blocks are removed, all other blocks shift according to the
gravity. Note that all bopping blocks "fall" in straight lines,
following the gravity, if any.
In addition to bopping blocks, there are prizes. A player picks up
these prizes by running through them or by touching them with a carried
throwing block (a throwing block in flight will simply bounce off of
prizes). Note that a player can stand on top of a prize or have a
prize drop on them without picking it up (one exception to the
dropping is if the player is holding a throwing block: in this case,
the prize will be picked up). Prizes always
fall straight down, regardless of what the gravity is for the bopping
blocks.
Prizes have different benefits:
- Add one credit (limit is 9 credits)
- Add one life (limit is 99 lives although only 8 are shown)
- Add points of various denominations
- Remove points (these prizes look dangerous or trashy)
Collecting all prizes from a map without a loss of life will add a
PERFECT bonus for that map. If there is a loss of life by either
player but all prizes are still collected, the bonus is less. This
bonus is in addition to any benefit gained or lost from the prizes.
Note that map 22 of Episode 4 cannot get a PERFECT (it just isn't feasible
to modify this map and keep the puzzle quality). Also, map 24 of
Episode 4 can only get a PERFECT if two players cooperate. All other
maps can get PERFECT's.
When all maps have been successfully completed, the players get to
fight the end level boss. The characters rezz into the battle map
followed by throwing weapons. Throw these weapons at the monster. The
more score that you have when you enter the battle, the more damage
your weapons do.
In Easy Final Battle Mode (set by default, can be changed from the Set
Options Main Menu), the points of both players are combined to deliver
that much damage to the monster. This means the battle can be over in
a single hit (if the combined score is 100,000 points or more), or take
at most 7 hits (combined score is less than 14,285 points) to defeat.
In Original Battle Mode (can be changed from the Set Options Main Menu),
each player entering with 800,000 or more points will require 8 hits to
defeat the monster for that player (players' points are not combined).
Entering with 10,000 or less points will take about 100 hits. The
monster will show various amounts of damage over time.
The only way to deliver damage to the monster is to throw the weapon
blocks. If the monster touches the block while it is being carried,
the block is destroyed and no damage is delivered. If the monster
touches the character, the character is killed and loses a life.
Continue until the monster is defeated or the players are out of lives
and credits.
The mouse must be selected as the device to use. This can be done from the
Main Menu under Set Options or from the in-game menu (ESC) Change Controls.
Using the mouse, left-click to the left or right of the character to cause the
character to move to that location. For elevators, left-click above or below
the character. Hold down the right button to have the character hold the
bopping block for throwing in the direction of the cursor (left or right).
Release the right button to throw the block (center the block above the
character to not throw the block).
If you have a middle mouse button, clicking that button calls up the
in-game Options menu.
The keyboard must be selected as the device to use. This can be done from the
Main Menu under Set Options or from the in-game Options Menu (ESC) Change
Controls option (the in-game change is remembered only for the current game).
The default keyboard control of a character is:
| Key | Action |
| left arrow | move left |
| right arrow | move right |
| up arrow | move up |
| down arrow | move down |
| space bar | acts as button 1 on joystick |
| shift | acts as button 2 on joystick |
These keys can be redefined from the Main Menu Set Devices menu by selecting
"Define Motion Keys". These changes are saved in a configuration file. Within
the game, these keys can be redfined by pressing 'K' or by opening the in-game
Options Menu (ESC) and select "Define Motion Keys" option. In-game changes are
saved in the configuration file.
| Key | Action |
|
F1, '/', '?'
|
displays instructions. Same as opening the Options menu and
selecting "Instructions".
Note: '?' might not be available if the shift key is used for a button.
|
| F2 |
Save game (select one of eight slots). Same as opening the Options menu
and selecting "Save Game".
|
| F3 |
Load game (select one of eight slots). Same as opening the Options menu
and selecting "Load Game".
|
| F5 |
kills player 1 (sometimes necessary if player 1 gets trapped).
You will get a chance to confirm this.
|
| F8 |
kills player 2 (sometimes necessary if player 2 gets trapped).
You will get a chance to confirm this.
|
| 'J' |
(NOT SUPPORTED) allowed centering of joysticks |
| 'K' |
allows redefining of keys used to control motion of characters. This is
the same as opening the Options menu and selecting "Define Motion Keys".
|
| 'M' |
toggles music on and off. This also affects music in the Main Menu. |
| 'R' |
Restarts the current map. You get a chance to say no.
Same as opening the Options menu and selecting "Restart Map".
Note:
restarting a map restores points, lives, and credits for
both players to the values when the map was first started.
If you are on your last life and credit, restarting a map
during the last death sequence can save you from a game
over.
|
| 'S' |
toggles sound off and on. |
| 'P' |
Pauses the game. A message is displayed to that effect. Press
button 1 on the input device to resume the game.
Opening the in-game Options menu also pauses the game.
|
| ESC |
Calls up the in-game Options menu giving you many options to select among.
The Options menu can also be opened by pressing button 2 on the keyboard, a
controller or a joystick, or pressing the middle button on a mouse.
|
| Ctrl-B |
Displays the Bonus Mystery Spot until a key or button is pressed.
|
| Ctrl-L |
Moves immediately to the next map (no confirmation) but a
status dialog displays for up to 3 seconds indicating a warp
to the next level is in progress. This operates the same
as if you had cleared all bopping blocks from the map.
Not available during final battle.
The in-game Options menu provides the option, "Skip to next map",
which asks for confirmation before skipping to the next map,
unlike this keypress.
No cost to use. This keypress is provided as a way to work
around any bugs that might arise that prevents further progress.
|
| Ctrl-Alt-L |
Moves immediately to the previous map if not at the first map
(no confirmation) but a status dialog displays for up to 3 seconds
indicating a warp to the previous map is in progress. This
warp reverts progress to the start of that previous map. Not
available during final battle.
No cost to use other than any gains obtained since the
beginning of the previous map.
|
Note: these aren't cheat keys as they are always available.
These keys are accessible only when the Main Menu is visible.
| Key | Action |
| 'M' |
toggles music on and off. This also affects music in the Game. |
| Ctrl-F9 |
Toggle on/off the Main Menu options for changing the configuration
or devices, restoring a game, and using the editor.
Available only when running in "arcade" mode!
|
| Ctrl-T |
Displays the Sound Test dialog. You can listen to all sound effects
from here. The controls are self-explanatory.
|
| Ctrl-V |
Starts an automated slide show of all maps of all levels in the
game, starting with the last played episode. During the slide show,
the following inputs are in effect:
| Input | Action |
page up
left arrow
back space
pushing stick left
|
go to previous map |
page down
right arrow
Enter/Return
pushing stick button
pushing stick right
|
go to next map |
| ESC |
exit slide show |
|
These keys are accessible only when the High Scores table is visible.
| Key | Action |
| Alt-F6 |
Deletes the contents of the High Score table. A requester pops
up to confirm this action. Once done, cannot be undone.
|
The following cheat keys need to be activated by entering a simple password.
The password is "toys", lower case. A sound will be heard on successfully
entering the password. Cheat keys will remain active until the program exits.
This can be typed (blindly) at any time during the Main Menu or in-game
and remains in effect until the program is exited.
Note: Arcade mode automatically enables all cheat keys.
Most of these cheat -- ahem. debugging -- keys are available only during game play.
| Key | Action |
| Ctrl-F |
Jumps immediately to the final battle. |
|
'1' or '!'
|
sets lives and credits of player 1 to 0.
Note: '!' might not be
available if the shift key is used for a button.
|
|
Ctrl-'1'
|
In Game: Cycles points for player 1 among 40,000, 400,000, and 0.
In High Scores Table: Overwrites the high scores with a preset list used
for testing the entering of names in High Score table.
Warning! This destroys the contents of the High Scores List!
|
|
'2' or '@'
|
sets lives and credits of player 2 to 0.
Note: '@' might not be
available if the shift key is used for a button.
|
|
Ctrl-'2'
|
In Game: Cycles points for player 2 among 40,000, 400,000, and 0.
In High Scores Table: Overwrites the high scores with a second preset list used
for testing the entering of names in High Score table.
Warning! This destroys the contents of the High Scores List!
|
|
Ctrl-'3'
|
In High Scores Table: Overwrites the high scores with a third preset list used
for testing the entering of names in High Score table.
Warning! This destroys the contents of the High Scores List!
|
| Alt-H |
during final battle, delivers one maximum hit that always defeats
the final boss monster.
|
| Ctrl-F5 |
adds one credit to player 1. The limit is 9 credits. |
| Ctrl-F8 |
adds one credit to player 2. The limit is 9 credits. |
| Ctrl-W |
Warp among maps 10, 30, and 0.
More specifically, warps between NUMBER_OF_VALID_MAPS / 4,
(NUMBER_OF_VALID_MAPS * 3) / 4, and 0. Used for testing game over
endings.
|