bub68705: MAME ROM Information.
Bubble Bobble (c) 1986 Taito Corp.
One or two players take on the role of Bub and Bob, two cute dinosaurs who must battle through 100 platform-packed single screen levels to rescue their girlfriends. Bub and Bob are armed only with the ability to blow bubbles, in which the game's many enemies can be trapped and killed. The bubbles can also be used as temporary platforms, to help the dinosaurs reach previously inaccessible areas of a level.
Any trapped enemies who are not killed quickly enough will turn red and escape their bubble prison. These angry enemies are much faster than before, making them harder to kill. Enemies also become angry if players are taking too long to complete a level. Defeated enemies are turned into bonus fruit items that can be collected for points.
On many levels, bubbles containing fire, water or a lightning bolt appear. These can be burst by players to release their contents and destroy enemies. The fire bubble drops flames down onto the nearest platform, killing any enemies it hits. The lightning bubble sends a lightning bolt horizontally across the screen, its direction dictated by whichever side of the bubble the player hits to burst it. The water bubble releases a torrent of water that will quickly flow down the platforms to the bottom of the screen. Any enemies caught in the flow are killed.
Bubbles containing letters also appear. The aim is to collect the letters needed to speel the word E.X.T.E.N.D. which earns players an extra life.
The game's simple-yet-involving game-play saw Bubble Bobble become an instant classic. Its two-player co-operative mode, coupled with the incredible amount of hidden secrets and potential for strategic play - unheard of in the platform genre - would set the standard by which all other platform games were judged.
- TECHNICAL -
Main CPU : (2x) Z80 (@ 6 Mhz), Z80 (@ 3 Mhz), M6801 (@ 1 Mhz)
Sound Chips : YM2203 (@ 3 Mhz), YM3526 (@ 3 Mhz)
Players : 2
Control : 2-way joystick
Buttons : 2
=>  Bubble,  Jump
- TRIVIA -
Released in August 1986.
This was one of the first games to feature multiple endings.
The title of this game, Bubble Bobble, is a cross between the words 'bubble' and the name of the heroes : Bub and Bob.
The enemies are named (Round number of initial appearance applies to 'Normal' mode. For information on 'Super' mode, see Updates below) :
'Zen-Chan' [aka 'Bubble Buster', 'Benzo'] - First appears in Round 1
'Mighta' [aka 'Stoner', 'Boris'] - First appears in Round 6
'Monsta' [aka 'Beluga', 'Blubba'] - First appears in Round 10
'PulPul' [aka 'Hullaballoon', 'Boaboa'] - First appears in Round 20
'Banebou' [aka 'Coiley', 'Bonnie-bo'] - First appears in Round 30
'Hidegonsu' [aka 'Incendo'] - First appears in round 40
'Drunk' [aka 'Willy Whistle', 'Bonner'] - First appears in Round 50
'Invader' [aka 'Super Socket'] - First appears in Round 60
'Super Drunk' [aka 'Grumple Gromit'] - the boss character whom Bub and Bob fight in the final round
'Skel-Monsta' [aka 'Baron Von Blubba'] - Appears when you take too much time in a round
'Rascal' [aka 'Rubblen'] - Appears when you linger too long in a secret room
The data code contains unused graphics of a full set of slot machine icons. These aren't used anywhere, there's no palette that fits them, and they wouldn't really fit anywhere either.
In 1996, Taito announced that they lost the original source code program to Bubble Bobble following a reorganization - when it came to the recent ports and sequels, they had to work from program disassembly, playing the game and (mainly) the various home computer ports.
The game forbids the initials 'SEX' on the high score table. If you try, it gets changed to 'H.!', but go to the Tips and Tricks section for more information about 'SEX' :-)
Olly Cotton holds the official record for this game with 6,060,730 points on February 23, 2011.
Some bootlegs of this game are known as "Bobble Bobble", "Miss Bubble II" and "Super Bobble Bobble".
Alfa Records released a limited-edition soundtrack album for this game (Taito Game Music - 28XA-110) on 25/01/1987
NES cover band The Advantage cover two songs from Bubble Bobble on their self-titled debut album released on April 6, 2004.
- SCORING -
Bursting a bubble : 10 points.
Killing one monster : 1,000 points.
Killing two monsters at once : 2,000 points.
Killing three monsters at once : 4,000 points.
Points double for each extra monster killed at any one time.
Normal Fruit : 700 points.
Bonus Score Items (popcorn, burger etc) : 500 - 4,000 points.
- TIPS AND TRICKS -
* Bubble Bobble is a game heavily relying on game-play and precise technique rather than graphics, and it features a series of special techniques and tricks a player can perform to maximize his or her score, make some rounds of the game easier or faster to finish or just to be able to survive or even finish a round. Some of these techniques have special nicknames, which may differ from player to player and from country to country.
'Kissing monsters' or just kissing means killing a monster by blowing a bubble at almost contact distance : the monster will be instantly bubbled and the bubble will be instantly popped, giving the visual effect of the player killing a monster with a 'kiss'. Some players flip their joysticks in the opposite direction after pressing the bubble buttons, giving more chances of an 'instant pop' and changing flight direction for the dead monster. This technique is useful in stages where monsters move too fast, bubbles last for too short of a time or it's otherwise hard to bubble them normally. Of course good timing is required for this technique to work.
'Riding bubbles' means keeping the jump button pressed when dropping on a bubble: if done correctly, instead of popping the bubble, your dragon will instead jump on it, possibly continuously, enabling him to 'ride' bubbles in order to reach otherwise unreachable areas. Some stages can't be finished without this technique.
'Climbing' is a step up from riding bubbles. It means standing at half a bubble distance from a wall, jumping and blowing a bubble almost simultaneously, jumping up from that bubble and blowing another bubble and so on. This is necessary if the air current pushes down bubbles but you need to climb up. Having the rapid-bubbling power-up (the yellow candy) makes climbing a lot easier, especially if you got the running shoes already.
'Bubbling oneself through' means 'riding a bubble' through the opening at the top of a stage or even just through the ceiling of a stage in order to appear at the lower part, like some flying monsters can do. This technique is required to finish some stages or to get unstuck from some places, or just to save time.
'Blowing against the wall' means blowing bubbles against wall at contact distance : the bubbles will pop immediately thus giving the player 10 points per bubble pop. This can be used to either increase a player's score, or to set a player's score to a specific amount, in order to do other tricks.
'Two equal digits' means using the 'blowing against the wall' technique or other score-adjusting techniques in order to make the two penultimate (100s and 10s places) digits of at least one player equal, e.g., 456770, before the last enemy bubble is burst. If done correctly and the score is not modified when this occurs, then all remaining non-special bubbles on screen will be turned to 700-point bonuses, whose appearance depends on the digit picked. E.g., 7 gives Chocolate Ice Creams, 3 gives Hamburgers, and so on.
Note : this trick is easier to do with two players (one player adjusts his score and the other bursts the bubbles), but it can also be done with only one player, although calculating exactly how much (and if) one's score will be modified when bursting the last enemy bubbles can be extremely complex, if not unpredictable, especially if there are very large and clustered bubble bunches.
Note : Rounds with numbers ending with 5 and 0 up to and including level 50 generate bonuses from bubbles automatically, though, and some rounds (including round 1) do it by default.
Internal Counters : an interesting (and exploitable) part of bubble bobble is that powerups are not entirely random. As with the two digit trick, many internal counters in this game decide which special powers are available for collection. For example, rapid bubble shooting (a sweet in yellow wrapping), fast moving bubbles (a blue sweet), or fast moving bubbles (a blue sweet) appear shortly after either Bub or Bob jumps 51 times, pops 51 bubbles, or blows 51 bubbles. Also, running around a lot causes the speed powerup (red shoe) to appear. Keeping this is mind, it is possible to gain all powerups with relative ease. Although there are many more counters that control various aspects of the game, one of particular interest is the letters forming the word EXTEND. Getting all 7 letters will end the current level and award the player with an extra life 'NICE 1P!' - these letters have a greater chance of appearing when more enemies are defeated simultaneously. Also, gathering three of the same letter causes candy canes to appear which in turn lead to a special big item at the end of the level!
* Unlimited Run And Rapid Fire : at the main title screen, press Left, Jump, Left, 1P, Left, Fire, Left, 1P. If this is done correctly there will be a message in the bottom left corner of the title screen a red POWER UP!.
* Original Bubble Bobble : at the title screen press Shoot, Jump, Shoot, Jump, Shoot, Jump, Right, 1P. It will say at the bottom of screen ORIGINAL GAME. The game will give the PORTALS in some screens, if you can get in them you will get LOADS of diamonds.
* The 'Super Bubble Bobble' Code : this will change the Bubble Bobble logo in 'Super Bubble bobble' and the game will change under several points of view : different platform colors, different order for monster appearances (See 'Updates' above)... The code that must be entered at the title screen to access Super Bubble Bobble is displayed at the end of the credits after you beat the game in 2 players, normal mode. The message is coded, but it hints you to enter the secret room in level 20 to get the key for decoding. If you do so, you enter the secret room, on the base of which there is an inscription. The first line is the coding of the alphabet, the other lines are coded advices to beat the final boss. The decoded 'secret message' is : SJBLRJSR (Start - Jump - Bubble - Left - Right - Jump - Start - Right)
The decoded advices in the secret rooms are :
Room in level 20 : IF YOU WANT TO BECOME THE OLD FIGURE, USE THE POWER OF YOUR FRIENDSHIP, AND FIGHT WITH ME! (hint to play in two player mode to defeat the final boss and see the real ending)
Room in level 30 : I ENCLOSE THESE MAGICAL MEDICINE HERE, BECAUSE THOSE ARE MY WORST FEARS... (hint to use the lighting bubble to beat the boss)
Room in level 40 : IF YOU WANT TO GET BACK YOUR LOVE OF TRUTH, YOU MUST HELP EACH OTHER UNTILL THE LAST... (hint to end the game in two player mode to see the real endings)
A little more trivia on Super Bubble Bobble : if you beat the game in Super mode, two players, you will discover that the final boss is your mother and father that were controlled by some unknown evil. By defeating the boss you free them and your girlfriends, and are reverted back to your original human form (the one you play "Rainbow Island" with...)
* Secret Tombs : make it to level 20 without dying and a door appears -- it leads to a 'secret tomb', a level full of diamonds. There are secret tombs at levels 20 and 30, also. Make it to level 50 without dying and a strange, bee-hive-shaped door appears; enter it and you warp to level 70. DON'T kill the drunks on level 50, or the door disappears; bubble them and wait! Btw, with two players, only one of the players must survive unharmed to get the secret door.
* Paffing A Skel : Skel, also known as 'Baron Von Blubba', is that nasty white monster that comes after you when you've taken too long; with two players, two Skels will appear. If one player is killed by HIS Skel, then he can collide with his partner's Skel 'WHILE HE IS STILL FLICKERING'. If the player's icon is still flickering, the other player's Skel will disappear (poof!), with no harm to the once-slain character.
* Full Ending Sequence : beat the game in 2 Player in Super mode and you'll get the full end sequence.
* High Score Codes : after getting a high score, enter your initials as :
'SEX' - Pitch fork-flying cakes/vegetables/etc across the screen, turn enemies into 6k diamonds.
'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, turn enemies into 6k diamonds.
'I.F', 'MTJ', 'NSO', 'KIM', 'YSH' - Coke can-flying sunflowers across the screen, turn enemies into 6k diamonds.
* A full map is viewable here: www.arcade-history.com/index.php?page=articles&num=14
- SERIES -
1. Bubble Bobble (1986)
2. Rainbow Islands - The Story of Bubble Bobble 2 (1987)
3. Final Bubble Bobble (1988, Sega Master System)
4. Parasol Stars - The Story of Bubble Bobble III (1991, NEC PC-Engine)
5. Bubble Bobble Part 2 (1993, Nintendo Famicom)
6. Bubble Bobble II (1994)
7. Bubble Memories - The Story of Bubble Bobble III (1995)
8. Rainbow Islands - Putty's Party (2000, Bandai Wonderswan)
9. Bubble Bobble Revolution (2005, Nintendo DS)
10. New Rainbow Islands (2005, Nintendo DS)
11. Bubble Bobble Evolution (2006, Sony PSP)
12. Bubble Bobble Double Shot (2007, Nintendo DS)
13. Rainbow Islands Towering Adventure! (2009, Nintendo WiiWare)
14. Bubble Bobble Plus! (2009, Nintendo WiiWare)
15. Bubble Bobble Neo! (2009, Xbox Live Arcade)
- STAFF -
Game design & Character : Fukio Mitsuji (MTJ)
Software programmers : Ichiro Fujisue (ICH), Nishiyori (NSO)
Sound creator : Tadashi Kimijima (KIM)
Instruction : Yoshida (YSH)
Hardware : Fujimoto (KTU), Seigo Sakamoto (SAK)
- PORTS -
* Consoles :
Nintendo Famicom (1988)
Sega Master System (1988)
Nintendo Game Boy (1990)
Sega Game Gear (1994)
Sega Saturn (1996, "Bubble Bobble & Rainbow Island")
Sony PlayStation (1996, Bubble Bobble featuring Rainbow Island")
Nintendo Game Boy Advance (2002, "Bubble Bobble Old & New")
Sony PlayStation 2 [JP] (July 26, 2005; "Taito Memories Joukan [Model SLPM-66057]")
Sony PlayStation 2 (2005, "Taito Memories Vol. 1")
Sony PlayStation 2 (2005, "Taito Legends")
Microsoft XBOX (2005, "Taito Legends")
* Computers :
Commodore C64 (1987)
Sinclair ZX Spectrum (1987)
Atari ST (1987)
Commodore Amiga (1987)
Amstrad CPC (1987)
Amstrad CPC (1988, "Les Défis de Taito")
Amstrad CPC (1988, "Taito Coin-Op Hits")
Apple II (1988)
MSX [Tape] (1988)
Sharp X68000 (1989)
PC [MS-DOS, 5.25''] (1989)
Amstrad CPC (199?, "Les Monuments D'Arcade")
Amstrad CPC (1990, "Le Monde des Merveilles")
Amstrad CPC (1991, "Addicted To Fun - Rainbow Collection")
FM Towns PC (1993)
PC [MS-DOS, CD-ROM] (1996, "Bubble Bobble & Rainbow Island")
PC [MS Windows] (2005, "Taito Legends")
* Others :
Nokia N-Gage (2004, "Taito Memories")
- SOURCES -
0.94u3 [Tormod Tjaberg]
0.27 [Chris Moore, Oliver White]
- The sequel to Bubble Bobble is Rainbow Island.
- 0.145u5: ANY and The Dumping Union added clone Bobble Bobble (set 2).
- 0.141u1: M6801 changes [Curt Coder]: Added operating mode enum. Fixed port writes. Implemented SCI status follower bits. Implemented port 3 strobed mode. Fixed port writes some more.
- 6th June 2010: Corrado Tomaselli dumped Bubble Bobble (Korea 1986). Kold666 thinks that the Korean company manufacturing and assembling PCB for Taito had a license to sell them in Korea. All customs are Taito originals, but the general assembly is bootleg style. Maybe this is the "mother" of all Bubble Bobble bootlegs.
- 0.135u2: Fabio Priuli added save state support to Bubble Bobble driver.
- 0.133u2: Briah Troha fixed rom names in clone Dream Land / Super Dream Land (bootleg of Bubble Bobble).
- 0.133u1: Sean Clough and David Haywood added clone Dream Land / Super Dream Land (bootleg of Bubble Bobble). Renamed (bublbob1) to (bublbobl1), (bublbobr) to (bublboblr) and (bubbobr1) to (bublboblr1).
- 0.130u2: Mamesick added emulated CPU1 (slave) <-> AUDIOCPU communications and AUDIOCPU reset at startup in Bubble Bobble, previously this was disabled.
- 0.129u3: Phil Bennett changed VSync to 59.185606 Hz in Bubble Bobble and clones.
- 0.128u4: Nicola Salmoria and David Haywood removed ROM banking kludges from Bubble Bobble.
- 9th July 2008: Mr. Do - Made the Bubble Bobble homebrew bezel a little more "bubbly" in the frame area.
- 0.122u7: Changed M6801 CPU4 clock speed to 4MHz.
- 0.121: Vas Crabb updated the DIP locations in Bubble Bobble.
- 0.119u4: David Haywood added clone Super Bobble Bobble (set 1). Changed description of clone 'Super Bobble Bobble' to 'Super Bobble Bobble (set 2)'.
- 0.111u5: David Haywood added clone Bubble Bobble (bootleg with 68705).
- 12th November 2006: Mr. Do - Bubble Bobble artwork has been "optimized" by Ad_Enuff; much smaller file size (up to 80%) with no loss in quality.
- 10th September 2006: Mr. Do - Added instruction cards for Bubble Bobble.
- 0.107u3: Trinity and Nicola Salmoria added support for real Bubble Bobble MCU. Added M6801 (1MHz) CPU4 and TAITO JPH1011P MCU rom (a78-01.17).
- 5th August 2006: Nicola Salmoria - As you'd probably noticed, the pics in the previous post are of the Bubble Bobble custom MCU. Despite being one of the most popular games of all times, and having been in MAME for many years, the emulation of this game has never been perfect due to the lack of the original ROM for the MCU. For some time, we had been using a 68705 program found in a bootleg board, believing it had been extracted from the original. However, monster behaviour was wrong and there were other problems, like the wrong behaviour of the clock item. After some study of the program and of the game schematics, it became clear that the original MCU is not a 68705 at all (the pinout doesn't match) but looked more like a 68701. The 68705 program had been written from scratch by the bootleggers using black box reverse engineering techniques, by running the original MCU and logging all its reads and writes from memory. Indeed, the 68705 program does a lot of reads from memory without doing anything with them--simply because the original MCU would read that memory and do some unknown action with it. Eventually, the useless 68705 program was replaced by simulation code inside the emulator, which greatly improved the emulation accuracy. Monster behaviour was improved, the clock item behaviour fixed. However, there were still some unknown things, like how the randomisation of the EXTEND bubbles really worked. At last, thanks to excellent work by Trinity, the original MCU ROM has been extracted. This required removing the cover from the chip, taking photographs of it under a microscope, and manually decoding the contents of the ROM bit by bit. The photo shown in the previous post confirms that it's in the 6801 class, not a 68701 however as it was conjectured, but a 6801U4. With this ROM, we finally have the final piece of the puzzle for a 100% guaranteed perfect emulation. Checking the original MCU program was very interesting. It was designed to provide many protection features that were eventually not used by the game, like: * Process coin inputs and update the credit counter * Handle the number of remaining lives for both players * Handle the current round number * Handle variable speed incrementing for four variables and * Return values from a 1280 bytes table of seemingly random data. The reasons why those features were not used are probably various. Some of them were probably awkward to use because they require to one one frame for the MCU to process the data, others weren't flexible enough like the coin input processing that wouldn't allow for coinage settings different from the ones hardcoded in the MCU (though versions of Bubble Bobble with different coinage settings don't seem to have been made anyway).
So, how close was the simulation to the real thing? Very close; "too good", actually. Let's see why. The clock item behaviour was spot on, but off by one frame (the simulation made the counter expire one frame too late). The EXTEND randomisation simply doesn't exist in the original MCU. While the simulation code used a RNG to provide truly random letters, the original MCU simply increases the counter every frame. This seriously affects the game, making the EXTEND letters predictable. Since a new bubble enters the screen exactly 128 frames after the previous one, and the remainder of 128 / 6 is 2, this means that if you get consecutive letters each one will be 2 places after the previous one. So if you get 3 letters you can get either E, T, N or X, E, D. After that they will repeat. There are exceptions, though: if you create a new bubble in exactly the same frame when a new bubble should enter the screen, the bubble is delayed by one frame. So by timing the fire button exactly right you can change the bubble order. In theory you could get all 6 letters in a single level--let me know if you manage to do that! Also, new bubbles will not appear if there are already 16 bubbles on the screen, so that will change the order as well. The last, and most important, thing that the MCU does is compare the player coordinates with the monsters. The results are returned as flags indicating whether each coordinate is >, =, or <, and the absolute difference. This was done correctly in the simulation code, however there appears to be a bug in the original MCU. The code there attempts to check if the player collided with a moster and set a flag and indicate which monster in that case, but it just doesn't work. It would set the flag even if the player's Y coordinate matches one monster and the X coordinate matches a different monster! This isn't much of a problem since the main program just ignores the flag--the collision detection is done correctly by the second Z80. However, the MCU also completely stops processing the monster coordinates as soon as it finds a monster whose X coordinate is within 8 pixels of the player. So e.g. if you have a monster right above you three platforms up, and that monster is the first in the list, the other monsters could stop following you. This is a very subtle effect that's completely unnoticeable from what I can tell, though in theory it exists.
- 0.106u12: MASH added plds ($0, 200, 400 - pal16r4.u36, pal16l8.u38 and pal16l8.u4) to clone Bobble Bobble.
- 6th June 2006: Guru - Bobble Bobble (Taito 1986) bootleg arrived from Korea today. Thanks to GP-Lee.
- 24th February 2006: Nicola Salmoria - The emulation of Bubble Bobble is already virtually perfect, but there is still a doubt about the clock item. Currently, when you pick it up the enemies stop but the bubbles continue moving. It would make sense if the bubbles stopped moving too, and this idea is corroborated by the way variables are set up in the MCU shared RAM. The MCU would be responsible for stopping the bubbles and make them start again when the clock effect ends. What we need is to verify the behaviour on an original board. Bootlegs don't count (the clock behaviour is definitely wrong in them), nor do other emulator or ports count. Only the original board matters. Can anyone help?
- 0.101u3: Fixed cpu1 rom ($0) length to 32kb.
- 0.94u3: Tormod Tjaberg added Bubble Bobble (newer set). Renamed (bublbobl) to (bublbob1).
- 0.93u1: Nicola Salmoria fixed input (dipswitches etc.) in Bubble Bobble. Added 'ROM Type' dipswitch and removed 'Service Mode'.
- 0.90: Bubble Bobble driver update [Nicola Salmoria]: Removed the 68705 CPU emulation, since that's not what the original used. Simulated the 68701 MCU (enemy movement should now be correct). Fixed clock item behaviour (now enemies start moving again after 10 seconds). Supported coin lockout. Emulated the boblbobl protection device, getting rid of the ROM patches.
- 0.88u7: Cleanups in BubbleBobble driver [Curt Coder]. Changed VSync to 59Hz.
- 0.78u3: David Haywood fixed clone Bobble Bobble from crashing in 0.78u2.
- 0.77u2: Added YM2203 (3MHz), YM3526 (3MHz), MSM6295 (8000 Hz).
- 0.55: Fixed MAMETesters bug bublbobl054red.
- 0.37b4: Changed Z80 CPU3 clock speed to 3MHz. Added prom (video timing). Changed cpu1 rom address to $10000. Fixed rom names. Changed description of clones 'Bubble Bobble (US set 1)' to '(US with mode select)' and '(US set 2)' to '(US)'.
- 0.36RC1: Added clone Bubble Bobble (US set 2). Changed description of clone 'Bubble Bobble (US)' to '(US set 1)'.
- 0.35b11: Brad Oliver added clone Bubble Bobble (US).
- 17th April 1999: Brad Oliver added another Bubble Bobble romset.
- 0.35b6: Replaced M6805 CPU4 with M68705.
- 0.35b5: Changed M6805 CPU4 clock speed to 2MHz.
- 0.35b3: Support for the ORIGINAL version of Bubble Bobble, with 68705 code from a pirate board. Wizards *do* throw stones in this version [Nicola Salmoria]. Also fixed big sprites in Tokio, and unified it with Bubble Bobble. Added M6805 (1.5 MHz) CPU4. The original version is the only one where wizards throw stones. The protection feature which randomizes the EXTEND letters in the original version is not emulated properly. Nicola fixed also big sprites in Tokio and unified it with Bubble Bobble.
- 0.34RC2: Fixed YM2203/YM3526 clock speeds to 3MHz.
- 0.34b8: Changed YM-3812 sound to YM-3526.
- 0.34b2: The music in Bubble Bobble seems to stay in sync now [Tatsuyuki Satoh].
- 0.33b6: Changed description of clones 'Bobble Bobble (bootleg Bubble Bobble)' to 'Bobble Bobble' and 'Bobble Bobble (bootleg Bubble Bobble, alternate version)' to 'Super Bobble Bobble'.
- 0.33b1: Known issues: In Bobble Bobble (bootleg Bubble Bobble), service mode works only if Language is set to Japanese. This is probably a "feature" of the bootleg.
- 0.31: Nicola Salmoria added music to Bubble Bobble (Sound Blaster needed). Known issues: Sound is not perfect yet, it gets out of sync soon and eventually die.
- 0.30: Nicola Salmoria added partial emulated sound in Bubble Bobble (only the YM2203 chip, therefore only some sound effects - no music).
- 0.29: Brad Oliver added clone Bobble Bobble (bootleg Bubble Bobble, alternate version). Bubble Bobble doesn't work in this release. Use Bobble Bobble or Super Bobble Bobble instead, they work much better than Bubble Bobble ever did. Changed description of clone 'Bobble Bobble' to 'Bobble Bobble (bootleg Bubble Bobble)'.
- 0.28: New osd_modify_pen() function, proposed by Aaron Giles. It allows drivers to dynamically modify the palette. WARNING: Since this feature can severely reduce performance on some systems, it must only be used when necessary - that is, when the emulated game dynamically modifies the palette. The other games should continue to use the static palette as before. Many games already use this feature (e.g. Crystal Castles, the Gottlieb games, Tapper, Bubble Bobble, and many others). There's also osd_get_pen(), which is used by usrintf.c to dynamically pick the pens used to render menus.
- 0.27: Chris Moore added Bubble Bobble (Taito 1986) and clone Bobble Bobble (bootleg). Sound effect codes from Oliver White. Drivers are now allowed to modify the RAM and ROM pointers to implement bank switching [Nicola Salmoria]. Bubble Bobble uses this. Be careful: When using this feature, you cannot use the standard MRA_RAM and MWA_RAM memory hooks to access RAM. Control: Arrows = Move around, ALT =Jump and CTRL = Fire. Known issues: The original version doesn't seem to behave correctly, probably due to the copy protection. Use the bootleg instead. The colors are accurate, but the color space is downgraded from 4x4x4 to 3x3x2.
- 14th July 1997: Virtu-Al dumped Bobble Bobble and Super Bobble Bobble (set 2).
- Trap enemies inside bubbles.
- Burst bubbles with your horns or fins.
- Higher points are scored when bursting several bubbles at the same time.
- You can jump over bubbles.
- One stage cleared when all enemies are destroyed.
LEVELS: 100 (+ 3 secret rooms)
* FB Alpha
Recommended Games (Platform 2):
Joust 2 - Survival of the Fittest
Faster, Harder, More Challenging Q*bert
Mario Bros. (PlayChoice-10)
Vs. Mighty Bomb Jack
The FairyLand Story
Bubble Bobble 2
Bubble Memories - The Story Of Bubble Bob
Don Doko Don
Snow Bros. - Nick & Tom
Snow Bros. 2 / Otenki Paradise
Snow Brothers 3 - Magical Adventure
The Berlin Wall
Diet Go Go
Joe & Mac Returns
Fancy World - Earth of Crisis
Miss Bubble II
Toppy & Rappy
Toy Land Adventure
Super Bubble 2003
Tower & Shaft
Romset: 549 kb / 18 files / 171.2 zip
MAME XML Output:
|    ||<game name="bub68705" sourcefile="bublbobl.c" cloneof="bublbobl" romof="bublbobl">|
|    ||    ||<description>Bubble Bobble (bootleg with 68705)</description>|
|    ||    ||<year>1986</year>|
|    ||    ||<manufacturer>bootleg</manufacturer>|
|    ||    ||<rom name="2.bin" size="32768" crc="32c8305b" sha1="6bf69b3edfbefd33cd670a762b4bf0b39629a220" region="maincpu" offset="0"/>|
|    ||    ||<rom name="3-1.bin" size="32768" crc="980c2615" sha1="3670cf3e4e73028aadf4460ad887a0b544bcdbc4" region="maincpu" offset="10000"/>|
|    ||    ||<rom name="3.bin" size="32768" crc="e6c698f2" sha1="8df116075f5891f74d0da8966ed11c597b5f544f" region="maincpu" offset="18000"/>|
|    ||    ||<rom name="4.bin" merge="a78-08.37" size="32768" crc="ae11a07b" sha1="af7a335c8da637103103cc274e077f123908ebb7" region="slave" offset="0"/>|
|    ||    ||<rom name="1.bin" merge="a78-07.46" size="32768" crc="4f9a26e8" sha1="3105b34b88a7134493c2b3f584729f8b0407a011" region="audiocpu" offset="0"/>|
|    ||    ||<rom name="68705.bin" size="2048" crc="78caa635" sha1="a756e45b25b007843ba4f2204cad6081cf7260e9" region="mcu" offset="0"/>|
|    ||    ||<rom name="a78-09.12" merge="a78-09.12" size="32768" crc="20358c22" sha1="2297af6c53d5807bf90a8e081075b8c72a994fc5" region="gfx1" offset="0"/>|
|    ||    ||<rom name="a78-10.13" merge="a78-10.13" size="32768" crc="930168a9" sha1="fd358c3c3b424bca285f67a1589eb98a345ff670" region="gfx1" offset="8000"/>|
|    ||    ||<rom name="a78-11.14" merge="a78-11.14" size="32768" crc="9773e512" sha1="33c1687ee575d66bf0e98add45d06da827813765" region="gfx1" offset="10000"/>|
|    ||    ||<rom name="a78-12.15" merge="a78-12.15" size="32768" crc="d045549b" sha1="0c12077d3ddc2ce6aa45a0224ad5540f3f218446" region="gfx1" offset="18000"/>|
|    ||    ||<rom name="a78-13.16" merge="a78-13.16" size="32768" crc="d0af35c5" sha1="c5a89f4d73acc0db86654540b3abfd77b3757db5" region="gfx1" offset="20000"/>|
|    ||    ||<rom name="a78-14.17" merge="a78-14.17" size="32768" crc="7b5369a8" sha1="1307b26d80e6f36ebe6c442bebec41d20066eaf9" region="gfx1" offset="28000"/>|
|    ||    ||<rom name="a78-15.30" merge="a78-15.30" size="32768" crc="6b61a413" sha1="44eddf12fb46fceca2addbe6da929aaea7636b13" region="gfx1" offset="40000"/>|
|    ||    ||<rom name="a78-16.31" merge="a78-16.31" size="32768" crc="b5492d97" sha1="d5b045e3ebaa44809757a4220cefb3c6815470da" region="gfx1" offset="48000"/>|
|    ||    ||<rom name="a78-17.32" merge="a78-17.32" size="32768" crc="d69762d5" sha1="3326fef4e0bd86681a3047dc11886bb171ecb609" region="gfx1" offset="50000"/>|
|    ||    ||<rom name="a78-18.33" merge="a78-18.33" size="32768" crc="9f243b68" sha1="32dce8d311a4be003693182a999e4053baa6bb0a" region="gfx1" offset="58000"/>|
|    ||    ||<rom name="a78-19.34" merge="a78-19.34" size="32768" crc="66e9438c" sha1="b94e62b6fbe7f4e08086d0365afc5cff6e0ccafd" region="gfx1" offset="60000"/>|
|    ||    ||<rom name="a78-20.35" merge="a78-20.35" size="32768" crc="9ef863ad" sha1="29f91b5a3765e4d6e6c3382db1d8d8297b6e56c8" region="gfx1" offset="68000"/>|
|    ||    ||<rom name="a71-25.41" merge="a71-25.41" size="256" crc="2d0f8545" sha1="089c31e2f614145ef2743164f7b52ae35bc06808" region="proms" offset="0"/>|
|    ||    ||<chip type="cpu" tag="maincpu" name="Z80" clock="6000000"/>|
|    ||    ||<chip type="cpu" tag="slave" name="Z80" clock="6000000"/>|
|    ||    ||<chip type="cpu" tag="audiocpu" name="Z80" clock="3000000"/>|
|    ||    ||<chip type="cpu" tag="mcu" name="M68705" clock="4000000"/>|
|    ||    ||<chip type="audio" tag="mono" name="Speaker"/>|
|    ||    ||<chip type="audio" tag="ym1" name="YM2203" clock="3000000"/>|
|    ||    ||<chip type="audio" tag="ym2" name="YM3526" clock="3000000"/>|
|    ||    ||<display tag="screen" type="raster" rotate="0" width="256" height="224" refresh="59.185606" pixclock="6000000" htotal="384" hbend="0" hbstart="256" vtotal="264" vbend="16" vbstart="240" />|
|    ||    ||<sound channels="1"/>|
|    ||    ||<input players="2" buttons="2" coins="2" tilt="yes">|
|    ||    ||    ||<control type="joy" ways="2"/>|
|    ||    ||</input>|
|    ||    ||<dipswitch name="Flip Screen" tag="DSW0" mask="2">|
|    ||    ||    ||<dipvalue name="Off" value="2" default="yes"/>|
|    ||    ||    ||<dipvalue name="On" value="0"/>|
|    ||    ||</dipswitch>|
|    ||    ||<dipswitch name="Mode" tag="DSW0" mask="5">|
|    ||    ||    ||<dipvalue name="Game, English" value="4" default="yes"/>|
|    ||    ||    ||<dipvalue name="Game, Japanese" value="5"/>|
|    ||    ||    ||<dipvalue name="Test (Grid and Inputs)" value="1"/>|
|    ||    ||    ||<dipvalue name="Test (RAM and Sound)/Pause" value="0"/>|
|    ||    ||</dipswitch>|
|    ||    ||<dipswitch name="Demo Sounds" tag="DSW0" mask="8">|
|    ||    ||    ||<dipvalue name="Off" value="0"/>|
|    ||    ||    ||<dipvalue name="On" value="8" default="yes"/>|
|    ||    ||</dipswitch>|
|    ||    ||<dipswitch name="Coin A" tag="DSW0" mask="48">|
|    ||    ||    ||<dipvalue name="2 Coins/1 Credit" value="16"/>|
|    ||    ||    ||<dipvalue name="1 Coin/1 Credit" value="48" default="yes"/>|
|    ||    ||    ||<dipvalue name="2 Coins/3 Credits" value="0"/>|
|    ||    ||    ||<dipvalue name="1 Coin/2 Credits" value="32"/>|
|    ||    ||</dipswitch>|
|    ||    ||<dipswitch name="Coin B" tag="DSW0" mask="192">|
|    ||    ||    ||<dipvalue name="2 Coins/1 Credit" value="64"/>|
|    ||    ||    ||<dipvalue name="1 Coin/1 Credit" value="192" default="yes"/>|
|    ||    ||    ||<dipvalue name="2 Coins/3 Credits" value="0"/>|
|    ||    ||    ||<dipvalue name="1 Coin/2 Credits" value="128"/>|
|    ||    ||</dipswitch>|
|    ||    ||<dipswitch name="Difficulty" tag="DSW1" mask="3">|
|    ||    ||    ||<dipvalue name="Easy" value="2"/>|
|    ||    ||    ||<dipvalue name="Normal" value="3" default="yes"/>|
|    ||    ||    ||<dipvalue name="Hard" value="1"/>|
|    ||    ||    ||<dipvalue name="Very Hard" value="0"/>|
|    ||    ||</dipswitch>|
|    ||    ||<dipswitch name="Bonus Life" tag="DSW1" mask="12">|
|    ||    ||    ||<dipvalue name="20K 80K 300K" value="8"/>|
|    ||    ||    ||<dipvalue name="30K 100K 400K" value="12" default="yes"/>|
|    ||    ||    ||<dipvalue name="40K 200K 500K" value="4"/>|
|    ||    ||    ||<dipvalue name="50K 250K 500K" value="0"/>|
|    ||    ||</dipswitch>|
|    ||    ||<dipswitch name="Lives" tag="DSW1" mask="48">|
|    ||    ||    ||<dipvalue name="1" value="16"/>|
|    ||    ||    ||<dipvalue name="2" value="0"/>|
|    ||    ||    ||<dipvalue name="3" value="48" default="yes"/>|
|    ||    ||    ||<dipvalue name="5" value="32"/>|
|    ||    ||</dipswitch>|
|    ||    ||<dipswitch name="Unknown" tag="DSW1" mask="64">|
|    ||    ||    ||<dipvalue name="Off" value="64" default="yes"/>|
|    ||    ||    ||<dipvalue name="On" value="0"/>|
|    ||    ||</dipswitch>|
|    ||    ||<dipswitch name="ROM Type" tag="DSW1" mask="128">|
|    ||    ||    ||<dipvalue name="IC52=512kb, IC53=none" value="128" default="yes"/>|
|    ||    ||    ||<dipvalue name="IC52=256kb, IC53=256kb" value="0"/>|
|    ||    ||</dipswitch>|
|    ||    ||<driver status="good" emulation="good" color="good" sound="good" graphic="good" savestate="supported" palettesize="256"/>|