FAQ - Guide for Bubble Bobble

Bubble Bobble FAQ Version 2.00 (by G. Hall)
------------------------------
Welcome to my update of the Bubble Bobble FAQ. Since Bubble Bobble has
now been emulated through the efforts of MAME a lot more information
about the game has come to light, especially from the author of the
MAME driver Chris Moore (chris.moore@writeme.com). He was able to
delve deep into Bubble Bobble ROMs and extract all sort of wonderful
information about my favourite game, stuff we all thought was random,
but now we know better. Contact me ghall@eis.net.au if you ever have
anything to add. If that address is no longer valid, you can always do
a search for "Bubble Bobble Home Page" on any search engine and you
should be able to locate me. This FAQ is based on the ARCADE version
of the game only, which is perfectly emulated in MAME.
What is Bubble Bobble ?
-----------------------
Bubble Bobble was an arcade game released by Taito in 1986. You have
to guide the two heroes Bub and Bob through 100 levels of adventure to
rescue their girlfriends. It was one of the first two player
co-operation games (although all co-operation goes out the window when
a 50,000 pt diamond goes down the middle of the screen and you race to
see who can get the points first ). It was one of the first games to
have joystick combinations that allow you to power-up your original
characters. It has spawned a couple of sequels, Rainbow Islands ( a
much better, but harder to find game ), Parasol Stars and in the last
few years Bubble Symphony and Bubble Memories. There is also the
Puzzle Bobble (Bust-A-Move) series of games that unite Bub and Bob
together in a completely different, but just as playable games.
Bubble Bobble gameplay
----------------------
One of the great things about this game was all of the different
hidden things that were discovered by playing the game. Basically you
have to clear each room of all the enemies to let you advance to the
next room. You did this by trapping the enemy inside your bubbles and
then bursting the bubbles. Along the way you could pick up powerups
and extra weapons that were only available for that room, some stayed
with you until you died. As a rule only one food bonus and one weapon
bonus per room.
The basic power-ups are as follows :-
Yellow bubblegum (sweeties)-increase bubble firing speed.
Purple bubblegum (sweeties)- make the bubble travel further.
Blue bubblegum (sweeties)-increase the bubble speed across screen.
Red shoe-faster moving Bub and Bob.
A complete list of items is available at the end of this FAQ.
How to make the letters appear
------------------------------
1. EXTEND-bubbles appear only on "open levels" (levels where bubbles fly
in from a "hole" in the ceiling or the bottom)
2. EXTEND-bubbles appear only when you've popped in the previous
non-open-stages 3 or more enemy-trapped-bubbles at once. The more enemies
popped at once, the more DIFFERENT EXTEND-bubbles will come. (I'm
sure this is valid for ALL previous stages up to an "open-level";
I hope I've described that well!)
It goes something like this:
Enemies popped at a time Different EXTEND-bubbles to come
2 none
3 1
4 2
5 3
6 4
7 5
8 ALL! (6)
3. When you're on an "open stage" you may want to try to pop more than
3 enemies at a time because the upper table applies to the CURRENT
stage, too (if it is an "open stage" that is).
4. Any EXTEND letters that you haven't collected by the end of a stage
reappear on the next open level, but are randomly selected again.
So if you are offered a letter that you don't need, it may be worth
leaving it, and hoping it is reincarnated as a more useful letter on
the next level.
Secrets and hidden stuff
------------------------
These codes must be entered on the title screen showing Bubble Bobble
written inside a cloud.
LEFT JUMP LEFT 1P LEFT BUBBLE LEFT 1P- it will say power up at the
bottom of the screen and you will have fast feet, fast bubbles, etc
BUBBLE JUMP BUBBLE JUMP BUBBLE JUMP RIGHT 1P-the screen will say
original game mode and you will get the bonus doors whether you die or
not.
1P JUMP BUBBLE LEFT RIGHT JUMP 1P RIGHT-this gives you super on the
title screen. You play the game in the same order as normal Bubble
Bobble but with different monsters. This is the only mode that lets
you see the "True Ending" to this game.
High score table tricks
-----------------------
One of the first games to feature bonuses when you entered the right
initials in the high score table. Just finish a game and enter the
initials below, the effects are described next to the initials. They
mainly effect the second bonus object that appears on the first
set. The best way to reap the rewards is to bubble the 3 monsters and
wait for the second bonus to appear, get the bonus and then blow as
many bubbles as possible so you get the maximum points available. You
might want to blow bubbles and burst them while you wait or run along
the bottom of the screen to make certain bonuses appear on the next
level, read further down to see what I mean.
SEX pitch fork-flying cakes/vegetables/etc across the screen, turn enemy
into 6k diamonds (don't bubble them)
TAK octopus-turns bubbles into X's at end of level
STR flamingo-turns bubbles into smiling turds at end of level
KTT beer-turns bubbles into pizzas at end of level, what a perfect match !!!
... knife-flying cakes/vegetables/etc across the screen, turns enemy into
6k diamonds
I.F coke can-flying sunflowers across the screen, turn enemies into 6k diamonds
MTJ coke can-flying sunflowers across the screen, turn enemies into 6k diamonds
NSO coke can-flying sunflowers across the screen, turn enemies into 6k diamonds
KIM coke can-flying sunflowers across the screen, turn enemies into 6k diamonds
YSH coke can-flying sunflowers across the screen, turn enemies into 6k diamonds
Other tricks and tips
---------------------
This is one of the coolest cheats in Bubble Bobble. You get this if
you lose your last dino in a treasure room. Normally, you only get
treasure rooms if you have reached levels 20, 30 and 40 without dying,
and you exit a treasure room if you die once, so the only way to do
this is if you are using the "original game" cheat that gives you
treasure rooms anyway. When you lose your last dino in a treasure
room, your level is recorded as 102, and then all the demo screens
turn to treasure rooms and the next game you play you get a treasure
room on level 1!
Also, the fruit bonus is *not* random. If the hundreds and tens digits
are the same when you kill the last enemy, all bubbles on the screen
turn into fruit (levels 90-99 have different items, not fruit). A nice
trick here: Have one player ready to pop the last enemies, and have
the other player shoot bubbles into a wall until the digits match...
THEN have the first player kill them. You see, the game doesn't care
WHOSE digits match - could be either. Bonus fruit on every round!
The items that you get for a score of the format abcdd0 are shown here:
score item
...000 french fries
...110 double scoop ice cream cone
...220 creme caramel
...330 burger
...440 slice of cake
...550 cupcake
...660 mug of beer
...770 sausage on a stick
...880 white ice cream cone
...990 double blue lolly
The items that you get for matching your tens and hundreds to your partner's
are listed here. Although both the tens and hundreds column need to be
matched, only the tens column affects what item appears. They turn out to be
the lowest 10 food items (the vegetables). They are, of course, all worth
700 points.
points item
...00 green pepper
...10 aubergine
...20 carrot
...30 onion
...40 beetroot
...50 turnip
...60 parsnip
...70 marrow
...80 pea pod
...90 mushroom
Bubbles also turn into fruit if the hundreds and tens digits of the
scores of both players are the same (but the hundreds and tens not
necessarily the same as eachother) eg BOTH players scores end in ...120.
...120.
Bubbles turn to fruit all the time on levels 1,5,10,15,20,25,30,35,40,
45,50,85,86,92,93,94
Each treasure room has a secret message. The messages can be decoded
by recognising that the first 26 characters stand for the letters of
the alphabet. This code is needed to read the message you get at the
end of the game that tells you how to do a Super BB power up.
When time runs out, and the skels come out to get you, if you die,
when you're brought back to life, and STILL FLASHING (vital!), run
over and touch your friend's skel. POOF! No more skel.
"True Ending" to this game.
-------------------------
When you finish the game in normal mode you see a screen telling you
"But it was not a true ending.....". To get the true ending to the game
all you need to do is enter the Super Bubble Bobble cheat at the intro
screen and finish the game with out losing a man (easier typed then
done) when you finish the game you will see your parents rescued as
well as your girlfriends. That's all there is too it.
Bubble Bobble or Bobble Bobble
------------------------------
Bubble Bobble is the original version of the game and Bobble Bobble is
the pirate copy, if you look at the cloud in the background you can
see the bad job they did of hacking the graphics. There is also some
variation in game play. On my board you can choose a Japanese version
of the game that comes up with a copyright notice at the beginning or
an English version of the game. There is no difference in the
gameplay. On the original board you can switch between BB and Super
BB. I have played a version where you could pick original on the board
and on level 6 , and subsequent levels, the guys in the white robes
will roll rocks at you. There seems to be many variations of this
game. Latest information suggest that there are at least 4 different
ROM sets for this game, eventually MAME will hopefully support them
all.
Other platforms
---------------
Bubble Bobble is available on the Apple II, IBM, Atari ST, C64/128,
Amiga, Gameboy, Game Gear, Playstation, Saturn, MSX and NES.
Rainbow Islands is available on C64/128, Playstation, Saturn, NES and Amiga.
Parasol Stars is available on C64/128, Turbo Grafx16/Turbo Express
Gameboy and Amiga.
If you wish to play the actual arcade game on your PC/MAC/Linux etc go
get a copy of mame and enjoy it, MAME is actually the arcade game
running on your machine, don't waste your time with the pathetic
conversions that are out there, unless you just want them for having
them's sake.
Pinouts
-------
SOLDER SIDE PARTS SIDE
GND 01 GND
VIDEO RED 02 VIDEO GND
VIDEO GREEN 03 VIDEO BLUE
VIDEO SYNC 04 -5V
SOUND + 05 SOUND -
POST 06 POST
+12V 07 +12V
COIN SWITCH A 08 COIN SWITCH B
COIN METER A 09 COIN METER B
COIN LOCKOUT A 10 COIN LOCKOUT B
SERVICE SWITCH 11 TITLE SWITCH
START PLAYER 1 12 START PLAYER 2
SPARE 13 SPARE
SPARE 14 SPARE
1P RIGHT 15 2P RIGHT
1P LEFT 16 2P LEFT
GND 17 GND
GND 18 GND
+ 5V 19 + 5V
+ 5V 20 + 5V
1P BUBBLE 21 2P BUBBLE
1P JUMP 22 2P JUMP
Dip Switches
------------
SWITCH A
1 2 3 4 5 6 7 8
GAME TYPE
BUBBLE BOBBLE OFF
SUPER BUBBLE BOBBLE ON
SCREEN
NORMAL OFF
REVERSE ON
MODE
PLAY OFF
TEST ON
ATTRACT SOUND
YES OFF
NO ON
COIN A
1 COIN 1 PLAY OFF OFF
1 COIN 2 PLAY ON OFF
2 COIN 1 PLAY OFF ON
2 COIN 3 PLAY ON ON
COIN B
1 COIN 1 PLAY OFF OFF
1 COIN 2 PLAY ON OFF
2 COIN 1 PLAY OFF ON
2 COIN 3 PLAY ON ON
SWITCH B
1 2 3 4 5 6 7 8
DIFFICULTY
NORMAL OFF OFF
EASY ON OFF
HARD OFF ON
VERY HARD ON ON
BONUS 1ST/2ND
30000/100000 OFF OFF
20000/80000 ON OFF
40000/200000 OFF ON
50000/250000 ON ON
LIVES
3 OFF OFF
5 (FREE PLAY) ON OFF
1 OFF ON
2 ON ON
SPARE (ALWAYS OFF) OFF OFF
The following lists were made by Chris Moore, he wrote the driver for
MAME and has found out much more than anyone could by just playing the
game, for this we owe him our thanks. (chris.moore@writeme.com)
SPECIAL ITEMS
-------------
The game maintains a bunch of counters which keep a record of how many
times you have done various things. Once a counter reaches its
threshold, it is reset to zero and you get the item which that counter
is associated with. Counters are only checked at the beginning of
each round. If two or more counters reach their thresholds in the
same round, the one which is associated with the highest numbered item
is used. The other(s) will keep their value for the next screen. The
counters aren't reset at the beginning of each game, which is why on
the arcade game there is generally a special item on the first screen,
but in the emulation the first game you play doesn't offer a special
item, since the counters are all reset when the machine is first
switched on.
In the following, the ITEM_DATA line contains:
XXXX ( AA BB CC DD ) EE
XXXX is the address of the counter which is used
AA BB CC and DD are the 4 possible thresholds which the counter must
reach before you get the item. Which one of the 4 values is used
depends on the 'difficulty' setting that the game is currently running
at:
CC for difficulty 00-04
DD for difficulty 05-07
BB for difficulty 08-0B
AA for difficulty 0C-1E
initial difficulties are: 0D (v.hard), 0A (hard), 04 (easy) and 07
(normal) for the 4 dip-switch settings. The difficulty changes
throughout the game, going higher when you gain extra lives, lower
when you die, and other things affect it, too, which I don't know
about.
EE is non-zero if the bell should warn us that the item is around
The ITEM_ACTION sections (where I've put them in) are useful for
'cheating' in MAME. Where it's like 'IX+$31', the address is E691+31
for P1 and E6C3+31 for P2. So, for example, a cheat would be:
boblbobl:0:e6f4:80:0:Long Range Bubbles (P2)
because e6c3+31 is e6f4.
Special Items List:
------------------
ITEM_NUMBER: 0/00
ITEM_DESCRIPTION: red and white sweetie -> long-range bubbles
ITEM_DATA: E5DF ( 23 23 23 23 ) 00
ITEM_COUNTER: bubbles blown
ITEM_ACTION: LD (IX+$31),$80
e5df is incremented each time a bubble is blown (by either player) so
blow 51 or more bubbles and get a purple and white 'long-range
bubbles' sweetie on the next level
ITEM_NUMBER: 1/01
ITEM_DESCRIPTION: purple and cyan sweetie -> fast bubbles
ITEM_DATA: E5E0 ( 23 23 23 23 ) 00
ITEM_COUNTER: empty bubbles popped
ITEM_ACTION: LD (IX+$2F),$06
e5e0 is incremented each time an empty bubble is popped (by either
player) (for 10 points) so pop 51 or more empty bubbles and get a
purple and cyan 'fast bubbles' sweetie on the next level
ITEM_NUMBER: 2/02
ITEM_DESCRIPTION: orange and yellow sweetie -> rapid-fire bubbles
ITEM_DATA: E5E4 ( 23 23 23 23 ) 00
ITEM_COUNTER: jumps
ITEM_ACTION: LD (IX+$2E),$05
e5e4 is incremented each time either player jumps, so jump 51 or more
times and get an orange and yellow 'rapid-fire bubbles' sweetie on the
next level
ITEM_NUMBER: 3/03
ITEM_DESCRIPTION: running shoes -> run faster
ITEM_DATA: E5E6 ( 0C 0C 0C 0C ) 00
ITEM_COUNTER: distance run
ITEM_ACTION: LD (IX+$30),$13
LD (IX+$2C),$01
LD (IX+$1F),$00
e5e5 is incremented each time either play runs along the ground - it
goes at twice the speed if both players are running. when it reaches
256, it wraps around to 0, and e5e6 is incremented. if one player
runs all the way across the bottom of the level about 15 times then
there should be some running shoes on the next level
ITEM_NUMBER: 4/04
ITEM_DESCRIPTION: clock -> stop timer - no hurry up, no skels
ITEM_DATA: E5E1 ( 0C 0C 0C 0C ) 00
ITEM_COUNTER: lightning bubbles popped
ITEM_ACTION: LD ($E341),$FF
LD ($FC7A),$FF
e5e1 is incremented whenever you pop a lightning bubble - get 12
of then for a clock on the next level
ITEM_NUMBER: 5/05
ITEM_DESCRIPTION: bomb -> 10k (free) or 6k (bubbled) diamonds
ITEM_DATA: E5E2 ( 13 10 0A 0D ) 01
ITEM_COUNTER: fire bubbles popped
ITEM_ACTION: LD ($F59E),$01
e5e2 is incremented whenever you pop a fire bubble - get 19/16/10/13
of them for a bomb on the next level
ITEM_NUMBER: 6/06
ITEM_DESCRIPTION: orange umbrella -> skip 3 levels
ITEM_DATA: E5E3 ( 0F 0F 0F 0F ) 00
ITEM_COUNTER: water bubbles popped
ITEM_ACTION: LD ($E350),$03
ITEM_NUMBER: 7/07
ITEM_DESCRIPTION: red umbrella -> skip 5 levels
ITEM_DATA: E5E3 ( 14 14 14 14 ) 00
ITEM_COUNTER: water bubbles popped
ITEM_ACTION: LD ($E350),$05
ITEM_NUMBER: 8/08
ITEM_DESCRIPTION: purple umbrella -> skip 7 levels
ITEM_DATA: E5E3 ( 19 19 19 19 ) 00
ITEM_COUNTER: water bubbles popped
ITEM_ACTION: LD ($E350),$07
ITEM_DESCRIPTION: all three umbrellas and 'warp to 70'
ITEM_ACTION: LD A,$04
RST $08 ; *$E004 = 00
LD A,$05
RST $08 ; *$E005 = 00
LD A,$02
RST $08 ; *$E002 = 00
CALL $18BB
LD A,$02
RST $10 ; *$E002 = 01
LD HL,$E34F
LD (HL),$01
LD HL,$F452
LD (HL),$01 ; create 'umb' points item next round
e5e3 is incremented whenever you pop a water bubble - even if there's
already water on the screen and it seems like the bubble didn't do
anything, it's still counted. get 15 of then for an orange umbrella,
20 for a red one or 25 for a purple one
ITEM_NUMBER: 9/09
ITEM_DESCRIPTION: sunflower potion
ITEM_DATA: E5E7 ( 0F 0F 0F 0F ) 00
ITEM_COUNTER: wrap-arounds from bottom to top of screen
ITEM_NUMBER: 10/0a
ITEM_DESCRIPTION: flower potion
ITEM_DATA: E5E7 ( 10 10 10 10 ) 00
ITEM_COUNTER: wrap-arounds from bottom to top of screen
ITEM_NUMBER: 11/0b
ITEM_DESCRIPTION: clover potion
ITEM_DATA: E5E7 ( 11 11 11 11 ) 00
ITEM_COUNTER: wrap-arounds from bottom to top of screen
ITEM_NUMBER: 12/0c
ITEM_DESCRIPTION: rainbow potion
ITEM_DATA: E5E7 ( 12 12 12 12 ) 00
ITEM_COUNTER: wrap-arounds from bottom to top of screen
ITEM_NUMBER: 13/0d
ITEM_DESCRIPTION: musical potion
ITEM_DATA: E5E7 ( 13 13 13 13 ) 00
ITEM_COUNTER: wrap-arounds from bottom to top of screen
e5e7 is a counter of how many times either player has fallen from the
bottom of the screen and appeared back on the top, as if by *magic*!
If you do this enough times, you get a potion - 15, 16, 17, 18 and
19-or-more times for the different types of potions
ITEM_NUMBER: 14/0e
ITEM_DESCRIPTION: flashing heart - freezes monsters & makes you flash & go all
invincible
ITEM_DATA: E5E8 ( 41 3C 32 37 ) 01
ITEM_COUNTER: dead-monster fruits eaten
ITEM_NUMBER: 15/0f
ITEM_DESCRIPTION: blue ring - points for running
ITEM_DATA: E5E9 ( 03 03 03 03 ) 00
ITEM_COUNTER: 'fast bubbles' sweeties eaten
ITEM_ACTION: SET 0,(IX+$2D)
ITEM_NUMBER: 16/10
ITEM_DESCRIPTION: purple ring - points for jumping
ITEM_DATA: E5EA ( 03 03 03 03 ) 00
ITEM_COUNTER: 'rapid-fire bubbles' sweeties eaten
ITEM_ACTION: SET 1,(IX+$2D)
ITEM_NUMBER: 17/11
ITEM_DESCRIPTION: red ring - points for bubbles
ITEM_DATA: E5EB ( 03 03 03 03 ) 00
ITEM_COUNTER: 'long-range bubbles' sweeties eaten
ITEM_ACTION: SET 2,(IX+$2D)
ITEM_NUMBER: 18/12
ITEM_DESCRIPTION: blue cross - drowns monsters in water
ITEM_DATA: E5F6 ( 0D 0C 0A 0B ) 01
ITEM_COUNTER: special items eaten
ITEM_ACTION: LD ($F590),$01
ITEM_NUMBER: 19/13
ITEM_DESCRIPTION: yellow and red cross - lightning kills monsters
ITEM_DATA: E5F7 ( 10 0E 0A 0C ) 01
ITEM_COUNTER: special fruits eaten
ITEM_ACTION: CALL $A433
LD ($F595),$01
SET 4,(IX+$2D)
ITEM_NUMBER: 20/14
ITEM_DESCRIPTION: red and orange cross - breath fireballs for 9k diamonds
ITEM_DATA: E5EE ( 07 06 04 05 ) 01
ITEM_COUNTER: monsters drowned by water bubble
ITEM_ACTION: SET 6,(IX+$2D)
LD (IX+$28),$10
ITEM_NUMBER: 21/15
ITEM_DESCRIPTION: cyan lantern - same as items 0x10, 0x11 and 0x0f
that's points for jumping, for bubbles and for running
ITEM_DATA: E5EF ( 05 05 05 05 ) 00
ITEM_COUNTER: times that p1 has joined a running game
ITEM_NUMBER: 22/16
ITEM_DESCRIPTION: red lantern - same as items 0x10,11,0f,00,01,02
that's points for jumping, for bubbles and for running
and long-range, fast, rapid-fire bubbles
ITEM_DATA: E5F0 ( 05 05 05 05 ) 00
ITEM_COUNTER: times that p2 has joined a running game
ITEM_NUMBER: 23/17
ITEM_DESCRIPTION: exploding purple lantern
ITEM_DATA: E5EC ( 02 02 01 01 ) 01
ITEM_COUNTER: umbrellas (items 6, 7 and 8) collected
ITEM_NUMBER: 24/18
ITEM_DESCRIPTION: yellow lantern - same as items 0, 1 and 2
that's long-range, fast, rapid-fire bubbles
ITEM_DATA: E5ED ( 04 03 01 02 ) 00
ITEM_COUNTER: clocks (item 4) collected
ITEM_NUMBER: 25/19
ITEM_DESCRIPTION: book - shakes screen for 6/8k diamonds
ITEM_DATA: E5F3 ( 10 0E 0A 0C ) 01
ITEM_COUNTER: monsters killed by fire bubble
ITEM_ACTION: LD ($E720),$01
ITEM_NUMBER: 26/1a
ITEM_DESCRIPTION: silver ring - flying stars -> 6k diamonds
ITEM_DATA: E5F4 ( 10 0E 0A 0C ) 01
ITEM_COUNTER: monsters killed by lightning bubble
ITEM_NUMBER: 27/1b
ITEM_DESCRIPTION: red pearl necklace - give 10 free extend letters
ITEM_DATA: E5D9 ( 1E 19 0F 14 ) 00
ITEM_COUNTER: games started (2 player games count as 2)
ITEM_ACTION: LD ($F676),$0A
ITEM_NUMBER: 28/1c
ITEM_DESCRIPTION: purple? pearl necklace for bouncing thing -> 6k diamonds
ITEM_DATA: E5DA ( 1E 19 0F 14 ) 01
ITEM_COUNTER: levels started
ITEM_ACTION: LD ($F5AC),$01
ITEM_NUMBER: 29/1d
ITEM_DESCRIPTION: fork -> flying vegetables for 6k diamonds
ITEM_DATA: F457 ( 01 01 01 01 ) 01
ITEM_COUNTER: entries of 'SEX' into high score table
ITEM_ACTION: CALL $8F54
LD ($F4CB),$01
ITEM_NUMBER: 30/1e
ITEM_DESCRIPTION: purple treasure chest -> 80k diamond
ITEM_DATA: F458 ( 01 01 01 01 ) 00
ITEM_COUNTER: times level 100 is finished (happy or not)
ITEM_ACTION: LD ($F46D), $0A
LD ($F46B), $01
ITEM_NUMBER: 31/1f
ITEM_DESCRIPTION: pink/orange treasure chest -> 70k diamond
ITEM_DATA: E601 ( 03 03 03 03 ) 00
ITEM_COUNTER: books (item 0x19) collected
ITEM_ACTION: LD ($F46D), $09
LD ($F46B), $01
ITEM_NUMBER: 32/20
ITEM_DESCRIPTION: brown treasure chest -> 60k diamond
ITEM_DATA: E602 ( 03 03 03 03 ) 00
ITEM_COUNTER: exploding purple lanterns (item 0x17) collected
ITEM_ACTION: LD ($F46D), $08
LD ($F46B), $01
ITEM_NUMBER: 33/21
ITEM_DESCRIPTION: cyan treasure chest -> 50k diamond
ITEM_DATA: E600 ( 03 03 03 03 ) 00
ITEM_COUNTER: water crosses (item 0x12) collected
ITEM_ACTION: LD ($F46D), $07
LD ($F46B), $01
ITEM_NUMBER: 34/22
ITEM_DESCRIPTION: grey treasure chest -> 40k diamond
ITEM_DATA: E5FF ( 03 03 03 03 ) 00
ITEM_COUNTER: yellow and red crosses (item 0x13) collected
ITEM_ACTION: LD ($F46D), $06
LD ($F46B), $01
ITEM_NUMBER: 35/23
ITEM_DESCRIPTION: red/pink cane -> 30k pointy cake
ITEM_DATA: E5FD ( 03 03 03 03 ) 00
ITEM_COUNTER: 'D's collected
ITEM_ACTION: LD ($F46D), $05
LD ($F46B), $01
ITEM_NUMBER: 36/24
ITEM_DESCRIPTION: red/brown cane -> 30k iced bun
ITEM_DATA: E5FC ( 03 03 03 03 ) 00
ITEM_COUNTER: 'N's collected
ITEM_ACTION: LD ($F46D), $04
LD ($F46B), $01
ITEM_NUMBER: 37/25
ITEM_DESCRIPTION: red cane -> 20k melon
ITEM_DATA: E5FB ( 03 03 03 03 ) 00
ITEM_COUNTER: (middle) 'E's collected
ITEM_ACTION: LD ($F46D), $03
LD ($F46B), $01
ITEM_NUMBER: 38/26
ITEM_DESCRIPTION: orange cane -> 20k orange
ITEM_DATA: E5FA ( 03 03 03 03 ) 00
ITEM_COUNTER: 'T's collected
ITEM_ACTION: LD ($F46D), $02
LD ($F46B), $01
ITEM_NUMBER: 39/27
ITEM_DESCRIPTION: light brown cane -> 10k lolly
ITEM_DATA: E5F9 ( 03 03 03 03 ) 00
ITEM_COUNTER: 'X's collected
ITEM_ACTION: LD ($F46D), $01
LD ($F46B), $01
ITEM_NUMBER: 40/28
ITEM_DESCRIPTION: cyan cane -> 10k double lolly
ITEM_DATA: E5F8 ( 03 03 03 03 ) 00
ITEM_COUNTER: (initial) 'E's collected
ITEM_ACTION: LD ($F46D), $00
LD ($F46B), $01
ITEM_NUMBER: 41/29
ITEM_DESCRIPTION: bell
ITEM_DATA: E5FE ( 0E 0C 08 0A ) 00
ITEM_COUNTER: "hurry up!"s displayed
ITEM_ACTION: LD ($E603), $01
ITEM_NUMBER: 42/2a
ITEM_DESCRIPTION: octopus (turns bubbles into X's at end of level?)
ITEM_DATA: E604 ( 01 01 01 01 ) 00
ITEM_COUNTER: entries of 'TAK' into high score table
ITEM_ACTION: LD ($F464), $01
LD ($F465), $30
ITEM_NUMBER: 43/2b
ITEM_DESCRIPTION: flamingo (turns bubbles into smiling turds at end of level?)
ITEM_DATA: E605 ( 01 01 01 01 ) 00
ITEM_COUNTER: entries of 'STR' into high score table
ITEM_ACTION: LD ($F464), $01
LD ($F465), $31
ITEM_NUMBER: 44/2c
ITEM_DESCRIPTION: lager (turns bubbles into pizzas at end of level?)
ITEM_DATA: E606 ( 01 01 01 01 ) 00
ITEM_COUNTER: entries of 'KTT' into high score table
ITEM_ACTION: LD ($F464), $01
LD ($F465), $32
ITEM_NUMBER: 45/2d
ITEM_DESCRIPTION: knife for flying cakes/beer/etc and 6k diamonds)
ITEM_DATA: E607 ( 01 01 01 01 ) 01
ITEM_COUNTER: entries of '...' into high score table
ITEM_ACTION: CALL $8F54
LD ($F4CB), $01
LD ($F4CD), $01
ITEM_NUMBER: 46/2e
ITEM_DESCRIPTION: crystal ball - points items and special items each
take 4 seconds to appear from now on, instead of 7
and 12 seconds
ITEM_DATA: E609 ( 01 01 01 01 ) 00
ITEM_COUNTER: got a crown
ITEM_ACTION: LD ($F44D), $01
ITEM_NUMBER: 47/2f
ITEM_DESCRIPTION: pencil/cigar (makes next 3 special items be
potions), and acts like item 0c, the rainbow potion
ITEM_DATA: E60A ( 01 01 01 01 ) 00
ITEM_COUNTER: started 777 levels
ITEM_ACTION: LD ($E612), $03
JP $88BD ; rainbow_potion
ITEM_NUMBER: 48/30
ITEM_DESCRIPTION: skull (immediate 'hurry up')
ITEM_DATA: E611 ( 14 19 1E 1B ) 00
ITEM_COUNTER: times the skel has come (+2 more sometimes if he catches you)
ITEM_ACTION: LD ($F448), $81
ITEM_NUMBER: 49/31
ITEM_DESCRIPTION: treasure room door to 20
ITEM_DATA: E60D ( 01 01 01 01 ) 00
ITEM_COUNTER: get to level 19 without loss of life
ITEM_ACTION: LD ($E724), $00
LD ($E723), $29
ITEM_NUMBER: 50/32
ITEM_DESCRIPTION: treasure room door to 30
ITEM_DATA: E60E ( 01 01 01 01 ) 00
ITEM_COUNTER: get to level 29 without loss of life
ITEM_ACTION: LD ($E724), $01
LD ($E723), $29
ITEM_NUMBER: 51/33
ITEM_DESCRIPTION: treasure room door to 40
ITEM_DATA: E60F ( 01 01 01 01 ) 00
ITEM_COUNTER: get to level 39 without loss of life
ITEM_ACTION: LD ($E724), $02
LD ($E723), $29
ITEM_NUMBER: 52/34
ITEM_DESCRIPTION: warp to 70
ITEM_DATA: E610 ( 01 01 01 01 ) 00
ITEM_COUNTER: get to level 49 without loss of life
ITEM_ACTION: LD A,($E64B) ; current screen/round number
CP $45
RET NC ; return if already past level 69
LD B,A ; B = current level
LD A,$45 ; A = 69
SUB B ; A = 69 - current level
LD ($E350),A
LD ($E5DC),$1E ; difficulty
JP $883E ; see "umbrellas and 'warp to 70'"
ITEM_NUMBER: 53/35
ITEM_DESCRIPTION: coke -> rains jam donuts for 6k diamonds (free)
or 500 point bananas (bubbled)
ITEM_DATA: E608 ( 01 01 01 01 ) 01
ITEM_COUNTER: entries of 'I.F', 'MTJ', 'NSO', 'KIM' or 'YSH' into
high score table
POINTS ITEMS
------------
(the 'notes':
'umb' means the item may appear on the screen after you've got
an umbrella
'skel' means the item may appear if a skel appeared on the
previous level
'hurry' means the item may appear if the previous level told
you to 'hurry up', but no skel appeared.
the '1p time' and '2p time' columns are the values in address
f456 - use the 'mame -cheat' option to view this
address as you play
ID score description notes
00/0 10 green pepper skel
01/1 20 aubergine umb skel
02/2 30 carrot skel
03/3 40 onion skel
04/4 50 beetroot umb skel
05/5 60 turnip skel
06/6 70 parsnip skel
07/7 80 marrow umb skel
08/8 90 pea pod skel
09/9 100 mushroom skel
0A/10 150 corn cob (lvl 35) umb hurry
0B/11 200 fried egg hurry
0C/12 250 red acorn thingy hurry
0D/13 300 apple umb hurry
0E/14 350 lemon hurry
0F/15 400 orange hurry
10/16 450 peach umb hurry
11/17 500 bananas 1p 2p hurry
12/18 550 pear time time hurry
13/19 600 watermelon umb hurry
14/20 650 single brown lolly (lvl 15) 1D 27
15/21 700 double blue lolly 1C 26
16/22 750 pink pudding (lvl 5) umb 1B 25
17/23 800 yellow pudding 1A 24
18/24 850 green pudding 19 23
19/25 900 green and brown pudding (lvl 40) umb 18 22
1A/26 950 simple white ice cream cone 17 21
1B/27 1,000 double scoop ice cream cone 16 20
1C/28 1,000 donut (lvl 25) umb 15 1F
1D/29 1,000 french fries 14 1E
1E/30 2,000 sausage on a stick 13 1D
1F/31 2,000 creme caramel 12 1C
20/32 2,000 burger umb 11 1B
21/33 2,000 slice of cake (triangular) 10 1A
22/34 3,000 cupcake (blobby) 0F 19
23/35 3,000 chicken leg umb 0E 18
24/36 3,000 purple martini 0D 17
25/37 3,000 some variety of sushi? 0C 16
26/38 4,000 pinkish sweet (lvl 50) umb 0B 15
27/39 4,000 (brown or red?) eskimo pie 0A 14
28/40 4,000 (brown or red?) eskimo pie 09 13
29/41 4,000 mug of lager (lvl 45) umb 08 12
2A/42 5,000 purple crystals 07 11
2B/43 5,000 purple jewel 06 10
2C/44 5,000 yellow butterfly umb 05 0F
2D/45 5,000 blue crystals 04 0E
2E/46 6,000 blue jewel 03 0D
2F/47 6,000 necklace with purple pendant umb 02 0C
30/48 6,000 purple shell 01 0B
31/49 7,000 red jewel 00 0A
32/50 7,000 necklace with blue pendant 09
33/51 7,000 bowl of rice 08
34/52 8,000 necklace with red pendant 07
35/53 8,000 dinner 06
36/54 8,000 red crown, blue gems, no cross 05
37/55 8,000 red crown, blue gems, red cross 04
38/56 9,000 cyan crown, red gems, no cross 03
39/57 9,000 blue crown, red gems, cyan cross 02
3A/58 10,000 gold crown, red gems, no cross 01
3B/59 10,000 gold crown, red gems, white cross 00
'time' is how long the previous level took to complete.
It's stored in address f456, and can be displayed during the game
using 'mame boblbobl -cheat' and the 'memory watch' facility off the
'cheat' menu.
if (in attract mode - a no player game) {
item = random ($14...$33) (gives range $14...$33)
} else if (on level 1) {
item = random ($15...$24) (gives range $15...$24)
} else if (skel appeared last level) {
item = random(00 01 02 03 04 05 06 07 08 09 00 01 02 03 04 05)
} else if ('hurry up' appeared last level) {
item = random(0A 0B 0C 0D 0E 0F 10 11 12 13 0A 0B 0C 0D 0E 0F)
} else if (got an umbrella last level) {
item = random(01 04 07 0A 0D 10 13 16 19 1C 20 23 26 29 2C 2F)
} else if (only one player in game) {
if (time > 29) time = 29;
item = $31/49 - time; (gives range $14...$31)
} else if (two players in game) {
if (time > 39) time = 39;
item = $3B/59 - time; (gives range $14...$3B)
}
FIREBALL BUBBLE
---------------
It appears that the fireball bubble is randomly created. Whenever a
bubble floats onto the screen, there is a 1 in 4096 chance that it is
incarnated as a fireball bubble. It looks as if at some point in the
design of the game it was intended for this kind of randomness to
happen more, since there is a routine which implements randomness with
a whole bunch of preset odds:
ID odds ID odds
01 1 in 1
03 1 in 2 19 1 in 64
05 1 in 3 1B 1 in 128
07 1 in 4 1D 1 in 256
09 1 in 5 1F 1 in 512
0B 1 in 6 21 1 in 1024
0D 1 in 7 23 1 in 2048
0F 1 in 8 25 1 in 4096 (default)
11 1 in 9 27 1 in 8192
13 1 in 10 29 1 in 16384
15 1 in 16 2B 1 in 32768
17 1 in 32 2D 1 in 65535
the odd thing is, though, that the routine is only ever used with an
ID of 25, and only for the fireball bubble. This table can be used to
'tune' the rarity of the fireball bubble, by altering the content of
location 6e30 of CPU 0. MAME provides a convenient way of doing this,
with its 'cheat' mechanism.
MAME BOBLBOBL CHEATS
--------------------
First edit the 'cheat.dat' file, and add lines like this:
boblbobl:0:6e30:01:0:fireball bubble - always!
boblbobl:0:6e30:07:0:fireball bubble - 1 in 4
boblbobl:0:6e30:15:0:fireball bubble - 1 in 16
boblbobl:0:6e30:1d:0:fireball bubble - 1 in 256
then run MAME using a command line like this:
mame boblbobl -cheat
then you'll find there's a new menu entry on the gui, called 'cheat',
from which you can select the frequency you want!
Here's a bunch of other cheats that I've played with - just a random
selection that happen to be in my cheat.dat file - some are more
useful than others, and most of the spoil the fun of the game...
boblbobl:0:E645:6:0:Infinite Lives (P1)
boblbobl:0:E64a:6:0:Infinite Lives (P2)
boblbobl:0:e6c1:26:0:Extra Fast (P1)
boblbobl:0:e6f3:26:0:Extra Fast (P2)
boblbobl:0:e6c2:80:0:Long Range Bubbles (P1)
boblbobl:0:e6f4:80:0:Long Range Bubbles (P2)
boblbobl:0:e6c2:ff:0:Extra Long Range Bubbles (P1)
boblbobl:0:e6f4:ff:0:Extra Long Range Bubbles (P2)
boblbobl:0:F44D:1:0:Bonus appear instantly
boblbobl:0:E5FA:03:0:apple or orange? you decide!
boblbobl:0:e608:01:0:coke can item
boblbobl:0:6e30:01:0:fireball bubble - always!
boblbobl:0:6e30:03:0:fireball bubble - 1 in 2
boblbobl:0:6e30:05:0:fireball bubble - 1 in 3
boblbobl:0:6e30:07:0:fireball bubble - 1 in 4
boblbobl:0:6e30:15:0:fireball bubble - 1 in 16
boblbobl:0:6e30:1d:0:fireball bubble - 1 in 256
boblbobl:0:6e30:25:0:fireball bubble - 1 in 4096
boblbobl:0:E60A:1:0:Lipstick
boblbobl:0:5C2B:C9:0:Disable Bubbles?
boblbobl:0:E6BB:5:1:Fireballs for 5 levels
boblbobl:0:E6BE:40:0:Fireballs
boblbobl:0:E5EE:07:0:Fireball Cross
boblbobl:0:e5db:1:0:'Super' (1JBLRJ1R)
boblbobl:0:e5d1:1:0:'Original Game' (BJBJBJR1)
boblbobl:0:e5d2:1:0:'Power Up' (LJL1LBL1)
boblbobl:0:F676:1:0:Constant Extend Letters
boblbobl:0:e603:1:0:Always Warn (Bell Item)
boblbobl:0:25f6:1:0:Cut Journey Time (LSB)
boblbobl:0:25f7:0:0:Cut Journey Time (MSB)
boblbobl:0:e64b:e:0:Level 15 (lolly at end)
boblbobl:0:e64b:45:0:Level 70 (lolly at end?)
boblbobl:0:e64b:13:0:Level 20
boblbobl:0:e64b:18:0:Level 25 (Fire Bubbles)
boblbobl:0:e64b:1d:0:Level 30 (Lightning Bubbles)
boblbobl:0:e64b:27:0:Level 40
boblbobl:0:e64b:31:0:Level 50
boblbobl:0:e64b:59:0:Level 90
boblbobl:0:e64b:50:0:Level 91
boblbobl:0:e64b:5a:0:Level 92
boblbobl:0:e64b:5b:0:Level 93
boblbobl:0:e64b:5c:0:Level 94
boblbobl:0:e64b:5d:0:Level 95
boblbobl:0:e64b:5e:0:Level 96
boblbobl:0:e64b:5f:0:Level 97
boblbobl:0:e64b:61:0:Level 98
boblbobl:0:e64b:62:0:Level 99
boblbobl:0:e64b:63:0:Level 100 (Big Baddie)
boblbobl:0:e5E7:F:1:Sunflower Potion
boblbobl:0:e5E7:10:1:Flower Potion
boblbobl:0:e5E7:11:1:Clover Potion
boblbobl:0:e5E7:12:1:Rainbow Potion
boblbobl:0:e5E7:13:1:Musical Potion
boblbobl:0:F590:1:1:Drown 'em All!
boblbobl:0:E720:1:1:Throw The Book At Them
boblbobl:0:F44C:2A:0:Fruit 2A
boblbobl:0:F44C:2B:0:Fruit 2B
boblbobl:0:F44C:2C:0:Fruit 2C
boblbobl:0:F44C:2D:0:Fruit 2D
boblbobl:0:F44C:2E:0:Fruit 2E
boblbobl:0:F44C:2F:0:Fruit 2F
boblbobl:0:F44C:30:0:Fruit 30
boblbobl:0:F44C:31:0:Fruit 31
boblbobl:0:F44C:32:0:Fruit 32
boblbobl:0:F44C:33:0:Fruit 33
boblbobl:0:F44C:34:0:Fruit 34
boblbobl:0:F44C:35:0:Fruit 35
boblbobl:0:F44C:36:0:Fruit 36
boblbobl:0:F44C:37:0:Fruit 37
boblbobl:0:F44C:38:0:Fruit 38
boblbobl:0:F44C:39:0:Fruit 39
boblbobl:0:F44C:3A:0:Fruit 3A
boblbobl:0:F44C:3B:0:Fruit 3B
(note that the 'power-up' cheat does this:
LD (IX+$2E),$05 ; rapid-fire bubbles
LD (IX+$2F),$06 ; fast bubbles
LD (IX+$30),$14 ; fast running
where IX=E691 for P1 and IX=E6C3 for P2)
If you want to try any level just edit the line below
boblbobl:0:e64b:XX:0:Level XX where XX is the level number in HEX format