Bubble Bobble FAQ Version 2.00 ------------------------------ 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