Atomic Bomberman Fan Rewrite
A blast from the past! Literally :)
Daytona675x, the best equipped man in code business, is
proud to present his latest lucubration.
This here is a fan rewrite of the Win95 game
*** Atomic Bomberman ***
from 1997 by Interplay.
It has been coded from scratch, just by watching and
playing the original game on an antique Win98 machine.
Much care has been taken to make the gameplay feel
exactly as if you were playing the old original game.
The intentions were to
- make it work on modern Windows versions again
- make it available on other platforms
- make it work with USB input devices
- allow up to 10 local players
And just recently, due to the Corona crisis:
- add support for online matchs
This rewrite / player program is free to use, at your own risk,
maybe your computer just explodes, who knows.
The *original* game data files of the *original* Windows CD
are required to play this game!
If you don't own it yet then you may buy it here for example:
Note: I don't know if different versions of this CD exist.
This rewrite works with the one I own.
The original CD contains a folder named DATA.
Copy it and its subfolders into the games res/ folder, so
that you end up with a folder structure like this:
on Windows the game will eventually show an UAC requester on
first run. This is because it will extract / cache some files
into its installation folder.
you have to create player control profiles first, otherwise
you can only see the AI play against itself...
Recommended controller: GeeekPi SNES style. A Competition Pro
will do too, you only need 2 buttons and digital 4-way controls).
Noticable differences compared to the original game:
- player profiles, joypad configuration etc. added
- extras description screen added
- HURRY message doesn't occlude the playfield
- correct aspect ratio / scaling on all sorts of screens
- real online playing with multiple players on one machine
- no long 'sending data' delay before every single network game
Note: this is a party game, it's not meant to be played
alone. Invite friends, get a good load of booze, connect
a beamer or a fat TV to your computer and I guarantee you
some hours of pure fun :) And maybe some ends of friendship :)
Original game info and credits:
+ lots of USB joypads
+ original Atomic Bomberman game CD
+ not required, but recommended: beer / booze
+ one of the following:
- AmigaOS4: >= 4.1 FE, Warp3D
- AmigaOS4: >= 4.1 FE, Compositing (if you don't have a Warp3D-capable card)
- MorphOS: >= 10, TinyGL
- AROS: x86, e.g. Icaros >= 2.2.0, Mesa 3D
- Windows: pretty much any device of the last decade should do
- Linux: should work via Wine, untested.
- make sure to use a good USB hub. Also, if a gamepad is lost /
detached / attached the game won't notice and eventually fail.
- AI isn't really smart - although it's certainly not dumber than
in the original ;)
- Windows: if you use DS4Windows you may have to check the
"Hide DS4 Controller" option there if your controller is not
Maybe I'll fix / improve those issues, maybe not. Please don't
bother me with it, take it as is :)
Online Match HowTo
0. prepare control profiles for all your *local* players.
There can be *any* amount of players on *one* machine!
So you can e.g. start an online game with two machines but
with multiple players sitting in front of each machine!
Of course the general limit of 10 simultan players remains.
Give your profile your personal player name.
1. get in contact with your remote friends. Make sure that you all
have the same game version!
2. decide a "Game name", a "Game pass" and which port to use.
Make sure that your firewall doesn't block that TCPIP port!
3. decide who will act as the "master" (server).
That should probably be the one with the most stable machine.
Make sure that your firewall allows incoming connections on the port!
Of course it doesn't matter which system you use, it's all
platform independent. No camp wars at this point!
4. give your machine a "nick". It's used for identification on
5. the master should now "Start new game".
6. then the others can "join game".
7. once all machines joined, the master "continues".
8. now everybody can select a color by clicking fire on the respective
player color entry.
9. again, the master decides when to continue.
10. now the master selects the level, adjusts the gaming rules and fires
off the match! Tchatching!
11. A client can quit the session at any time by hitting ESC.
Everybody can pause / resume the game by hitting pause / help.
If all clients or the master quits, then the game session ends.
12. Remember: For an online match the slowest machine / slowest
connection determines the pace.
- new gameplay option: no sleepy players. If a player has been inactive for
15 seconds, it will auto-drop a bomb... Highly recommended, especially for
- networking: the master can now manually increase / decrease the waiting-for-
clients-countdown by tapping left / right. Yesterday we had a situation where
I missed exactly that feature: Erhard was about to join but only 15 seconds
remained, so he just missed it and everybody had to quit and rejoin.
- Fix (was uncritical, but...): "toilet mode" isn't a configurable input
mapping anymore :P Forgot to set the non-editable flag for this fixed mapping,
which is why the auto-configuration system of my framework made it
configurable in the controls menu.
- (maybe) fix, networking: ddni and Erhard reported a weird issue that to me
looks as if their network connection was sometimes so instable that some
crucial state change packages would pile up - and then suddenly be executed
one after the other without any delay. That resulted in situations where it
looked as if the scenery was changing all of a sudden - although other players
experienced it as what it was: matchend, result-screen, next round. But for
them it was more like matchend (or shortly before matchend) -> next round, the
result-screen would essentially be skipped or visible as a black screen for
one frame. Well, that's my guess because I don't have another explanation :-)
So to work around that I extended the network protocol by dedicated sync-
commands for those screen-changes. Crossing fingers, untested ;-)
Thanks to ddni for recording a video of that phenomenon!
- (maybe) fix, networking: for some Amiga players at least a hard master drop
would result in their client to appear frozen. It didn't crash though, it was
simply waiting for a TCP timeout on the socket which was closed by the master.
Apparently it's no good idea to rely on the TCPIP stack's error handling here.
Therefore the master now sends an explicit "server-death"-message to all
clients before shutting down. Only tested on Windows so far.
- made 4711 the default network port for no particular reason other than that
I chose it for testing :-) Yes, I know that it's used by other services (just
like probably every TCP port) and I don't care at all.
- Windows, auto-updater: the self-deletion of the update installer eventually
triggered some stupid antivirus software :P Disabled the self-deletion step,
hope that does the trick.
Thanks to Valentin for reporting and analyzing!
- Windows, auto-updater: now 64 bit executable.
- Fix, networking: the master was allowed to continue even if not every
connected client selected at least one color. This in turn resulted in a
deadlock when starting a level. This bug could be trigger only if
multiple players shared one client machine.
Thanks to aPEX for tapping into it :D
- Fix, networking: the master was still listening when the game had already
started. This could cause undefined behaviour on the server if another client
made a connection attempt on an already running match, which in turn resulted
in the clients to appear frozen (in fact the clients survived when the server
was restarted, but well, academic ;) ...).
Thanks to nujack for tapping into it ;)
- Fix, cosmetic: the last used text input field remained active (cursor
blinking) even if you already moved the row-selection to another input field,
controls and network menus.
- the win screens are now being displayed for at least 2-3 seconds. Before that
it was possible to practically skip them by an "accidential" button-click...
- "About Atomic Bomberman" section extended :)
- networking: the master can now hit F9 to toggle some sort of "on the toilet"
or "baby doesn't want to let daddy play a few rounds" mode...
This has the effect that the win-screens etc. are auto-skipped after some
seconds so that the session can go on without delay.
- networking: for joining there's no need for a password anymore. The password
is now meant as a key for the master only - so that only he can start new
sessions for that game name. Otherwise somebody who wanted to join the game
but accidentially hit "start" effectitvely hijacked the session.
- when we now played the first online matchs I found it pretty hard to get
people to join in time. And sometimes one client connected but soon quit
again when nobody else joined. Most of all this is a matter of timing:
we tried to arrange our sessions via Facebook events, not by direct live chat.
So naturally people would join at slightly different times. To make it all a
bit easier I added a timer: the master can set a countdown which every client
sees. When it drops to zero the game begins.
- Fix: a debug-relic caused the game to always try to enter fullscreen mode
on startup even if you previously chose to use window mode. This one slipped
through because I always play in fullscreen :P
Thanks to jabirulo for reporting!
- in the following I added some more game-play options. Unfortunately there
wasn't enough space left in the level select menu. The only option for lazy
coders was to decrease the vertical gap between those menu items. But this
again reduced readability too much. Which is why I added an orange row
highlite. For consistency I added this to all screens (only exception being
the main menu because I didn't want to change the original look here).
- Default bomb countdown was 3 seconds whereas the original's is 2. No idea
how this difference could remain unnoticed for 10 years :P
Thanks to Valentin for reporting!
- However, those 3 seconds don't feel bad at all. Therefore I made this
a new game-play option and 2 seconds is the new default value, possible
values range from 1 to 4 :)
- In the original certain considered "powerful" extras don't appear for the
first 40 seconds of a match. The golden flame and the trigger are considered
"powerful" in that context. IMHO this behaviour is questionable. E.g.
personally I find the red glove to be at least as powerful as the trigger.
Anyway, for "original-purists" I added yet another game-play option so that
you can adjust that delay. Values range from 0 to 50 seconds.
Thanks to Valentin for reporting!
- the red glove punch action is now also triggered if you don't simultanously
press a directional button. This was a another significant difference to the
original game. You can now punch away a nearby bomb without sliding into it.
Thanks to Valentin for reporting!
- extended the About / Credits area and added a donor-thanks section ;)
- all Amiga lha archives are now patched so that the executable protection
bits are set. Also, the AROS version is now also packaged into an lha instead
of a zip. From now on this is also true for all my other projects.
- new disease: invisible. Well, a little bit of your shadow remains visible ;)
Apparently this one was planned for the original PC version (there are sound
effects for it, which are now used too, of course) but never made it into the
final game AFAIK.
- one second after the last opponent has been blown up, the hurry-wall stops
and bombs don't explode anymore. The idea is to reduce the chance of
draw-games especially in very tight situations (which most likely means that
an intense battle happened). The original has something like this too, thanks
to Valentin for reporting!
- Trigger bombs are now converted to normal bombs if the player who planted
them dies or picks up an extra which makes him lose the trigger.
Thanks to Valentin for reporting this pretty significant difference to the
- Fix: shadows weren't correctly premultiplied by alpha. Only the trained eye
should have noticed though ;)
- added one of the original's cheat-modes :D Well, at least it was *planned*
to be inside the original game, however I didn't manage to actually activate
it. But, yeeeehaaaa, this remake supports it (I modified the joypad sequence
a bit though, have fun looking for it ;) )
Thanks to Valentin for pointing me at that one :)
- punch animation is now played no matter if there's a bomb to punch
away or not. This was a minor difference to the original game.
This behaviour has one benefit: you can easily check if you still got
the puncher... Thanks to Valentin for reporting!
- team mode: original player colors are now being used during the first
seconds of a match before they are being switched to white / red team
colors. Before you had a hard time figuring out who you were...
- somewhat adjusted explosion segment offsets, those were a bit off.
Well, they still are, but less than in the original and less than before.
The thing is: unbelievable but true, they are totally off in the original:
it's all shifted by some useless pixels to the right and for some assets
the segments simply don't fit well.
- explosion-animations are now repeated once and played at twice the
speed. Closer to the original.
- detail: if you have the kicker you cannot stop kicked bombs with
the 2nd button anymore if you also got the jelly!
- new disease: swap player position with a random opponent.
For whatever reasons I forgot about this one, saw it in a Youtube video
of the original game now :)
- disease timing modified to be more closely to the original. Especially
the duration decrease when you pass a disease has been changed:
before it was 1 sec., now the remaining disease time is cut in half for you.
Thanks to Valentin for reporting!
- improved texture modes, depending on your hardware. In general this
improves the playfield's and animations appearance. If possible the washed out
bilinear filtering is avoid in favor or an filtered scale2x variant.
- some graphics, namely bricks, use purple as a transparency indicator.
However, for some this color-key is slightly off, so that here and there
a single purple pixel remains. Was very well visible for the lilys in
that trampoline world. The purple-check is now somewhat fuzzy so that
stuff like that is gone.
Windows users: the game will ask for UAC rights elevation to create a
new set of patched decrunched assets.
- angel death animation: angel now flying upwards :)
- death animations fade out on last frame, simply looks better than those
original abrupt endings.
- extras explanation screen: extra-icons now without bilinear washed out
- for upcoming updates the online update mechanism has changed. Before the
game would only check for an update once per day. Now it does always on
startup. The reason is that for an online session all players have to be on
the same update level...
- teleporter sound effects added.
- trampoline sound effects added.
- many more generic extra-pickup voice-overs added.
- many more hurry voice-overs added.
- many more frag taunt voice-overs added.
- sound when punching a bomb.
- sound when picking up bomb.
- sound when a thrown bomb is bouncing around.
- generic disease voice-overs added.
- poops sounds added.
- even more sounds added :P
- new sound effects manager to gracefully handle this giant amount of sounds
even on low end hardware.
- put original's dedicated tune in the waiting-for-net-players screen.
- optimization: extra color analyzation to avoid creation of sometimes
rather useless secondary textures (useless in terms of: you won't spot
the difference...) -> less VRAM used, faster texture generation step.
- optimization: if the hardware supports it, the game will now create
and cache NPOT textures, which means less VRAM used and faster texture
- optimization: tuned texture atlas generation parameters for the different
atlas types (animation, world preview, playfield, extras).
Makes quite a difference, until now all used the most effective but most
costly variant best suited for the animations, which is overkill for the
- optimization: texture atlas creation moved to the initial startup phase.
- textures now with premultiplied alpha if the hardware supports it
(should be pretty much all but Compositing). Above all this gets rid of
those little filtering artefacts here and there.
- online update server has been configured and activated for this game
for upcoming versions (for all but AOS4 the game should auto-update to
this version already, forgot to enable a special-treatment-build-flag
for AOS4 which is necessary because of the extra Compositing version
for Polaris users and others without Warp3D).
- Trigger bombs can now be triggered one by one instead of all at once.
No idea how this significant difference to the original could survive
for so long :P Thanks to Valentin for reporting.
- network sanity check improved.
- new option in level-select short "get ready" message before match start.
Its only purpose is to reduce the probability that people accidentially plant
a bomb immediately on startup because they are still tapping the fire-button
to begin the match. Playfield is also darkened a bit during that time.
- more start position options (N is the number of active players):
0. map default ignore colors (like before)
Linearly uses the first N start-positions in the order defined in the map.
1. random ignore colors (like before)
Radomly uses the first N start-positions in the order defined in the map.
2. original map default
Uses the start positions dedicated to the respective player color.
3. original random
Random positions, but only picked from the set of active player colors.
4. fully random
Randomly uses all available start positions.
- Fix: conveyor belts didn't transport players anymore :P
This bug was introduced with v2.0 when the core logic was modified
to use fix-point math instead of floats for networking and slipped
through unfortunately. Thanks to Valentin for reporting!
- when fixing the above bug the player movement logic was improved too.
Funny enough all this also made the rewrite a bit more exact by
"accident": in the original the conveyor belt has no impact if you try to
move in an orthogonal direction, this is now correctly replicated.
- new gfx option "stretch" to disable the aspect correction. For those
who prefer blown-up bombermen and no black borders like Valentin.
- network sanity check: only identical program versions can connect
for an online match. If you try to join a session with a different
version, you'll be kicked immediately.
- further improved network game join behaviour.
- cleaned up the network menus.
- join-online-session won't block if the server isn't yet reachable.
- Windows installer: readme is installed and gets its own start
- due to the Corona crisis I had to add this: online matchs :)
*** BETA *** There may still be flaws, only tested a bit ;)
- credits, thanks and greetings added.
- disabled some random backgrounds pictures which aren't well
suited for text.
- Erhard asked for it, here it is: a pause function (via pause or help key,
or F12 on Macbooks which don't have any of those other keys :P ).
The intermediate result-screens can be paused too.
- Fix: default key mapping was wrong, up and down keys toggled :P
Thanks to Erhard for reporting!
- team-mode added! In contrast to the original game this rewrite also
supports kills-win-matches in team-mode. Consequently the kills of all
team member are accumulated and presented on the result screen too.
In team mode the players are either part of the white (odd player #)
or red (even player #) team. Btw.: the crappy AI tries to avoid killing
team members ;)
- new game-play mode "Annihilation". If this is activated, then
every player has the glove, the punch and a 10000 jelly bombs stock
from the beginning :) Also, if you lift a bomb then you'll immediately
throw it away again ( = autofire). This is truely hardcore!
- Player-select-menu now with clear-all-assignments-button.
- Player-select-menu now with unused/AI-toggle-button.
- Player-select-menu now with assign-by-fire. Consequently a dedicated
"Start"-button has been added to this menu.
- Fix: Match-select-menu, ?translation mixup. It wasn't the conveyor-belt's
size but the stomping wall's size :P
- Fix: Results-stats-screen now shows the correct dedicated background
- Fix: the explosion's last "south" element was missing :P Forgot to
adjust one layout file. Funny enough nobody noticed so far :P
- Fix: the punch-up animation was wrong, it was the same as the punch-down
animation. Reason was that there are several name conflicts with the original's
unpacked asset names. This was one of those (a redundant set of punch-down anim
frames would overwrite the true punch-up anims...) and in this case I forgot
to set a patch. Now I did :) Funny enough nobody noticed so far :P
- Fix: the internal multi_frame command eventually didn't load all anim
frames. Affected some death animations.
- Fix: it could happen that two (or more) floating bombs ended up resting
on the same field. I made a subtle logic change to prevent this. However,
this had some interesting side-effects which I had to compensate for.
Let's hope I cought'em all!
- Fix: bouncing bombs outside the actual playfield eventually made it into the
- Fix: last Windows-installer was broken, files missing.
- Fix: Windows-version now correctly handles UAC when it comes to decrunching.
- RAM and VRAM requirements *massively* reduced.
- CD DATA detection improved.
- initial release.