News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Bubble Bobble Editor - Bobblicious  (Read 9747 times)

Trax

  • Hero Member
  • *****
  • Posts: 517
    • View Profile
    • Trax ROM Hacking
Bubble Bobble Editor - Bobblicious
« on: April 21, 2013, 02:36:32 pm »
Another NES ROM editor for the Mac is now in development. This one is for Bubble Bobble on the NES: Bobblicious. I started working on this project a few months ago, but didn't have the time to report it. I noticed that, even though the game has a relatively simple data structure, you need to master a few features if you want a coherent editor...

Fortunately, for hacking purposes, most of the needed level data is bunched together in nice tables, starting at the very beginning of the ROM. This data includes: tile data, items locations, bubble generators (water, fire and lightning), palettes and enemy data...

So far, I've got the basic level data covered and levels display correctly, plus a few controls...

More to come later...

fellowroot

  • Jr. Member
  • **
  • Posts: 46
    • View Profile
Re: Bubble Bobble Editor - Bobblicious
« Reply #1 on: April 21, 2013, 05:16:42 pm »
What was it coded in?

I would like to know how and to start coding game editors myself. What the best advice that you can give me on that.

Anyway we will ever see a PC release?

thanks.

And I'm taking C programming, plus math and physics major!

Trax

  • Hero Member
  • *****
  • Posts: 517
    • View Profile
    • Trax ROM Hacking
Re: Bubble Bobble Editor - Bobblicious
« Reply #2 on: April 24, 2013, 04:24:13 pm »
Like all my editors, it's coded in Objective-C, using the Cocoa framework. Most of the low-level data manipulation is in plain C. Right now, there's an editor called BBLE, which is the only Bubble Bobble editor on the NES that runs on Windows. It may not have all the features I intend to put in mine, though. There's also Patch-A-Bobble, which is an editor for all the Bubble Bobble games on arcade...

Trax

  • Hero Member
  • *****
  • Posts: 517
    • View Profile
    • Trax ROM Hacking
Re: Bubble Bobble Editor - Bobblicious
« Reply #3 on: May 01, 2013, 11:34:26 pm »
The editor is progressing, slowly but surely. I added controls for items (points and special), and enemies. Now I need to find out exactly how enemy tile mappings are determined. Apparently, there are sets of levels where some enemies' (usually Invaders) tile mappings are not defined, so they appear as a bunch of numbers. Each level can have up to 7 enemies, each entry sets the X/Y coordinates, its initial orientation (left or right), and some sort of delay before they spawn into view. Items also have X/Y coordinates...

The first row of tiles in all levels is set arbitrarily. The byte that controls the types of special bubbles that appear in the level (Water, Fire, Lightning) also controls whether the level has holes in the top row. The bottom row, however, is editable...

Another screenshot:


If you happen to find any interesting information about the game, let me know so it can be integrated in the editor...

Jorpho

  • Hero Member
  • *****
  • Posts: 4182
  • The cat screams with the voice of a man.
    • View Profile
Re: Bubble Bobble Editor - Bobblicious
« Reply #4 on: May 02, 2013, 01:24:40 am »
I suppose you already know about all the well-documented counters (bubbles burst, jumps made, steps taken, and so on) that determine when specific special items appear?
This signature is an illusion and is a trap devised by Satan. Go ahead dauntlessly! Make rapid progres!

Trax

  • Hero Member
  • *****
  • Posts: 517
    • View Profile
    • Trax ROM Hacking
Re: Bubble Bobble Editor - Bobblicious
« Reply #5 on: May 04, 2013, 11:32:00 pm »
I found a few tables about items and the conditions needed for them to appear.

EDIT: updated the table entries

1EB70: Special Items conditions for appearance (F bytes)

23 (35) Bubbles Blown         Green Candy
23 (35) Empty Bubbles Popped      Blue Candy
0F (15) Jumps on Bubble         Shoe
0E (14) Fire Bubbles Popped      Bomb
14 (20) Water Bubbles Popped      Blue Umbrella
32 (50) Times Fallen Through Floor   Blue Bottle
46 (70) Fruits Eaten         Heart
0E (14) Enemies Killed by Water      Green Book
07 (07) Enemies Killed by Lightning   Green Cross
0E (14) Enemies Killed by Fire      Red Cross
0C (12) Special Items Eaten      Blue Book
1E (30) Lightning Bubbles Popped   Blue Ring
0C (12) Enemy Combo Kills (2 or more)   Red Necklace
0A (10) Point Items Eaten      Purple-Blue Chest
07 (07) Letter Bubbles Popped      Blue Cane

Other items not in the list, but appear according to other conditions

02   Red Candy
06   Orange Umbrella (skip 5 levels)
09   Green Bottle
0B   Red Cane (Giant Red Diamond)
0C   Green Cane (Giant Green Diamond)
0E   Orange-Red Chest (Giant Red Diamond)
0F   Blue-Pink Chest (Giant Blue Diamond)
14   Green Ring
18   Blue Necklace (makes letters appear)
19   Green Necklace (transforms bubbles into dinosaurs when level cleared)
1A   Green Book (?)
1B   Crystal Ball (makes secret door appear)
1C   Secret Door (can be taken like any item, no apparent effect)
1D   Glitchy Tile (like taking the secret door, with text, but no effect)
1E   Idem
1F   Glitchy Tile, no apparent effect
20   Idem

As for the documentation, I didn't find anything for the NES. I know there are interesting documents that describe the items and their conditions, but it's about the arcade versions of Bubble Bobble, not the NES...

Here, another screenshot of the editor. This is the Fake Block edition mode...
« Last Edit: May 13, 2013, 03:48:33 am by Trax »

Trax

  • Hero Member
  • *****
  • Posts: 517
    • View Profile
    • Trax ROM Hacking
Re: Bubble Bobble Editor - Bobblicious
« Reply #6 on: May 13, 2013, 04:42:50 am »
Another update. The editor can now display and edit Flow Arrows. This is what determines the bubbles flow direction, obviously...

I also found all the values related to the special items condition tables. I made an edit to my previous post (Reply #5) with the updated tables. It seems that the items not in the list appear according to other hard-coded conditions. For example, if a Green or Blue Candy meets its appearance condition, there's a 6.25% chance (16 out of 256) it will be replaced with a Red Candy. It's just random like that...

Blue Umbrella, 50% chance of being Orange Umbrella.
Blue Bottle, 50% chance of being Green Bottle.
Blue Book, 50% chance of being Purple-Blue Chest.

Etc...

Trax

  • Hero Member
  • *****
  • Posts: 517
    • View Profile
    • Trax ROM Hacking
Re: Bubble Bobble Editor - Bobblicious
« Reply #7 on: May 21, 2013, 05:46:45 pm »
Now, the Bottle Spaces can be edited as well. I've seen hacks of Bubble Bobble where this was not taken into consideration and if a Bottle was taken, the level ended up with items appearing in weird places (causing visual glitches), or no item to collect at all. This is the complete Tile Codes list:

0 = Solid
1 = Empty, bubbles go up
2 = Empty, bubbles go down
3 = Empty, bubbles go right
4 = Empty, bubbles go left
5 = Empty ??? (bubbles go up) (never used)
6 = Empty ??? (bubbles go up) (never used)
7 = False Block, bubbles go down
8 = False Block, bubbles go up (never used, counts as a Bottle item space)
9 = Bottle item space, bubbles go up
A = Bottle item space, bubbles go down
B = Bottle item space, bubbles go right
C = Bottle item space, bubbles go left
D = ? (never used)
E = ? (never used)
F = ? (never used)

You can see that it's not strictly a matter of bit fields, although it does look like it. A normal empty tile will become a Bottle Item (cookie, clover, etc.) if you add 8 to its Tile Code. A false block should not be a Bottle Space, but Tile Code 8 lets you do that, although the original game never uses that code...


Mega-Dog

  • Jr. Member
  • **
  • Posts: 30
    • View Profile
Re: Bubble Bobble Editor - Bobblicious
« Reply #8 on: June 17, 2013, 10:06:30 pm »
Like all my editors, it's coded in Objective-C, using the Cocoa framework. Most of the low-level data manipulation is in plain C. Right now, there's an editor called BBLE, which is the only Bubble Bobble editor on the NES that runs on Windows. It may not have all the features I intend to put in mine, though. There's also Patch-A-Bobble, which is an editor for all the Bubble Bobble games on arcade...

Wrong my editor runs in Windows and edits everything.  Just need dos box for it but there is a new version in the works.

Also all items are editable and enemies.

Just wait for my windows version someday.

Trax

  • Hero Member
  • *****
  • Posts: 517
    • View Profile
    • Trax ROM Hacking
Bubble Bobble Editor - Level Attributes
« Reply #9 on: June 20, 2013, 08:17:39 pm »
I gave BUBBLEED a try and it seems quite exhaustive. The major problem is the lack of available real estate on screen, which is a limitation of the DOS context. Do you have provisions for Bonus Spaces? This is one of the problems I detected with a Bubble Bobble hack by MontyMole. Either the Bonus Items appear in a seemingly random fashion, or they are simply nonexistent...

Another screenshot of Bobblicious. A small utility window that lets you edit level attributes. The Enemy Anger Level is the time it takes for enemies to pop out of their bubble. You set a code (0-7) as an index into a table at 1EC1D. The original values go from 40 seconds to 1 second:

28 19 10 0D 09 06 03 01

This counter controls the number of cycles of 3C frames = 60 frames in decimal, which is exactly 1 second. Delay Before Hurry Up! is self explanatory. When you take too much time in a level, a Hurry Up! message appears on screen, you hear a siren, the music speeds up and after a few seconds, Baron von Blubba appears. This is also an index (0-3) into a table at 1EC25:

32 1C 17 11

Values in decimal are respectively: 50 28 23 17, in seconds. Bubble Flow Speed is also self explanatory, with 4 different speeds, code 0 being very fast and code 3 being very slow...



Stats on Bubble Speed in original game:

0  Very Fast   5
1  Fast        9
2  Slow       69
3  Very Slow  29

Stats on Bubble Generators in original game:

None                  63
Water                 13
Fire                  16
Water-Fire             0
Lightning             11
Water-Lightning        6
Fire-Lightning         3
Water-Fire-Lightning   0

MontyMole

  • Sr. Member
  • ****
  • Posts: 378
  • No fun in the USA.
    • View Profile
Re: Bubble Bobble Editor - Bobblicious
« Reply #10 on: June 21, 2013, 10:46:21 am »
Quote
Do you have provisions for Bonus Spaces? This is one of the problems I detected with a Bubble Bobble hack by MontyMole. Either the Bonus Items appear in a seemingly random fashion, or they are simply nonexistent...
I never knew that, if its regular bonus items they should show up unless you mean stuff like the Magic jar as I never really encountered that when playing through (and having the hack experience to deal with that, Strictly an editor / graphics guy me).   I remember having a few problems with enemies being corrupted on certain levels which is why its sort of arcade perfect, and a gap in the floor of Round 96.

Anyway this is shaping up to be quite nice, is this just for Macs or is there a PC version as well. 
A log of some kind.
. Videuss (Youtube)
it's not the official way and relies on luck\randomized placement of bears. USC

Trax

  • Hero Member
  • *****
  • Posts: 517
    • View Profile
    • Trax ROM Hacking
Bubble Bobble Editor - Items Conditions
« Reply #11 on: June 24, 2013, 04:13:53 am »
I only program on Mac OS X...

The arcade version has actually 5 different colors of bottles. I don't know if it's just a cosmetic change or maybe it generates different kinds of bonus items to pick up. In the NES version, both blue and green bottles seem to have exactly the same effect. What you pick up is determined by the level group you are in. A level group being 16 levels. You either get cookies, 4-leafed clovers, flowers or bags of money. The Bonus game is always the same setup: you have 30 seconds to pick up as many items as possible. Each item gives 500 pts, and you get a bonus of 100,000 pts if you manage to get them all within the time allowed...

Since I analyzed how Special Items appear in the level, I made a Data section in my editor, where you can choose which item appears and conditions threshold. There are 15 counters that keep track of different actions and when one of these counters reach a certain threshold, the corresponding item will appear at the start of the next level, and the counter is reset to 0. If more than one counter are triggered during a level, the lowest in the list will take precedence. However, only the counter that effectively sets an item to appear will reset.

Another delicious screenshot:

What you see is a direct translation of how the game code operates. A Green or Blue Candy will be replaced by a Red Candy on a random basis (1/16, or 6.25%). The Shoe and the Bomb and the 3 kind of Crosses have no alternate. The Heart has its own apparition condition (without alternate), but can also appear randomly in lieu of the Blue Ring. The Blue Umbrella becomes an Orange Umbrella 50% of the time. A Blue Bottle becomes a Green Bottle 50% of the time, although both have the same effect. And finally, the last 5 rows all work the same way. The item in the first column gets replaced randomly with the item in the second column (3/8, or 37.5%) or by the item in the third column (1/4, or 25%)...

In the editor window, you can click on any item of the left column, and the lonely button over the second column (with the Red Candy in the screenshot), which is a special case. A small panel appears with all the Special Items in the game. There are 28 Special Items in all, including the Crystal Ball and the Secret Door, which have no effect when used under circumstances other than the level 99 (and that part is hard-coded anyway). When you change an item of the first column, the second and third columns items change automatically to n+1 and n+2, "n" being the Item Code of the first column item. For example, the Item Code of the Blue Book is 0x16. So, the second column is Item 0x17 (Red Necklace) and third column is Item 0x18 (Blue Necklace)...
« Last Edit: June 24, 2013, 04:31:10 am by Trax »

Mega-Dog

  • Jr. Member
  • **
  • Posts: 30
    • View Profile
Re: Bubble Bobble Editor - Bobblicious
« Reply #12 on: June 25, 2013, 08:48:36 am »
Mine supoorted the bonus items. It is a hex code used.  I can tell you one is wrong! There is a value where the bubble flow is the same but the item is there.  Look at the images on my site you might see an image.

Trax

  • Hero Member
  • *****
  • Posts: 517
    • View Profile
    • Trax ROM Hacking
Re: Bubble Bobble Editor - Bobblicious
« Reply #13 on: June 26, 2013, 09:32:15 pm »
That's right, Mega-Dog, I saw your screenshots. With values 9, A, B or C, you can have Bonus Spaces with the four flow directions. My editor doesn't show raw tile data, as I decided to use a different approach, with editing modes...

Mega-Dog

  • Jr. Member
  • **
  • Posts: 30
    • View Profile
Re: Bubble Bobble Editor - Bobblicious
« Reply #14 on: July 03, 2013, 08:19:58 pm »
If I remember right it is just $9 that controls the bonus items.  The item locations are controlled by other things.

Also the Bubble speed ranges from $0-$F if I remember and the higher the hex the slower it goes.  The other value with it was like the anger speed.  Also there is issues with putting enemies in certain spots.

Trax

  • Hero Member
  • *****
  • Posts: 517
    • View Profile
    • Trax ROM Hacking
Re: Bubble Bobble Editor - Bobblicious
« Reply #15 on: July 05, 2013, 08:13:32 pm »
Any space that is empty can have the 4 directions of bubble flow, and each of these 4 types of empty spaces can be defined as a space where a bonus item appears. In this previous post, I listed the possible tile codes...

Below, the Items Window in Bobblicious: