| |||
Views: 88,439,793 |
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search | 04-20-24 01:16 AM |
|
Guest: Register | Login |
0 users currently in ROM Hacking | 3 guests | 2 bots |
Main - ROM Hacking - Bomberman Pocket NEW STUFF updated 28.10.2010 | New thread | New reply |
Naulahauta |
| ||
Red Paragoomba Level: 19 Posts: 11/56 EXP: 30475 Next: 5302 Since: 10-27-09 Last post: 3698 days Last view: 479 days |
Pocket Bomberman is a Bomberman game for the Game Boy. It differs from most other Bomberman games because in the game, Bomberman is able to jump. This gives a whole new dimension to mass destruction across the land thus making the game enjoyable.
But okay, let's get this started. Grab the ROM with the [U] and [S] labels and head over to 0x2400A. There you'll see a bunch of pointers: 3C 40 65 41 9E 43 FF 45 58 48 61 49 C2 4B 13 4E 64 50 BD 52 C6 53 0F 56 58 58 B9 5A 12 5D 1B 5E 7C 60 CD 62 26 65 7F 67 88 68 F1 6A 5A 6D BB 6F 14 72. Take the first pointer, 3C 40 -> swap the bytes -> 0x2403C. This is where the actual level data for Area one begins. This is area one: This is the bunch of data at 0x2403C ($100 bytes (also, bolded parts for extra elaboration): 08 09 09 09 09 09 09 09 09 09 09 09 09 09 09 0A 0B 00 00 11 00 00 00 00 00 21 00 00 00 16 00 0B 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0B 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0B 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0B 0B 00 7B 7E 7C 00 7B 7C 1B 71 73 00 00 7A 00 0B 0B 00 00 00 00 00 00 00 7B 78 76 00 00 7F 00 0B 0B 00 00 00 00 00 00 00 00 0E 7F 00 00 7F 12 0B 0B 70 00 00 00 7B 7E 7E 7E 7E 79 00 7B 78 7C 0B 0B 00 00 62 00 00 00 00 00 00 00 00 00 00 00 0B 0B 7B 7C 61 00 00 00 00 00 00 00 00 00 00 00 0B 0B 00 00 61 70 00 00 00 00 00 00 7B 7C 00 00 0B 0B 00 00 61 00 00 00 00 00 00 00 00 00 00 00 0B 0B 12 00 60 00 00 00 00 00 10 00 00 00 00 00 0B 0B 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0B 0B 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0B Edit a byte and it'll take changes, not too difficult. So that's the deal with the level, now onto the sprites: When the $100-byte level data array ends, (we're at 0x2413C), you'll find a bunch of bytes: E1 06 12 08 00 00 00 00 C0 02 12 00 00 00 00 00 C0 0E 08 00 00 00 00 00 C0 10 0E 00 00 00 00 00 C0 18 1A 00 00 00 00 00. Chop them up to 8-byte combos and observe: E1 06 12 08 00 00 00 00 C0 02 12 00 00 00 00 00 C0 0E 08 00 00 00 00 00 C0 10 0E 00 00 00 00 00 C0 18 1A 00 00 00 00 00 The format is ss xx yy ee ii dd rr kk ss = Sprite to use. The level has four enemy characters. You can change the C0's to something else and watch how the sprites change. The E1 is the gate opener sprite. It is invisible but triggers the gate-open event. xx = X offset. We move in increments of 8 pixels. 00 is absolute left. yy = Y offset. We move in increments of 8 pixels. 00 is absolute top. ee = Event.. thing.. I haven't really gotten the hang of this one, but as the 08 in the first 8-byte combo suggests, it has something to do with that. Fool around and see what happens. The ii, dd, rr and kk stand for I Don't Really Know. They seem to be 00 always. After that, there's an FF. After the FF, look at your offset. We're at 0x24165. If you go back to the beginning of this post and read the pointer array again, you'll notice that after 3C 40, there's 65 41. Swap the bytes and you get 0x24165. Which is were we're at. Which is where area 2's level data begins. You should also observe that there are 25 pointers and 25 levels in the game. This is no coincidence. So basically that's it. What I've got to still do(cument), though: -Tiles. What are blocks 00 through FF constructed from, where their graphics are retrieved and what their physical maps represent. -Music Probably one byte. There's gotta be some level header array there somewhere, which'll probably help with the next one: -Bomberman's starting coordinates. When creating new levels, it isn't very fun when Bomberman begins his journey from inside a brick. -Also Time limits for each level. -Those mystery bytes from the 8-byte sprite definitions. I'll get on those later today. But for now, enjoy this video I made to demonstrate. Also, a friend of mine said he'd be willing to code an editor, so expect big stuff ____________________ oh |
Kawa |
| ||
CHIKKN NI A BAAZZKIT!!! 80's Cheerilee is best pony Level: 138 Posts: 3734/5344 EXP: 30929079 Next: 733902 Since: 02-20-07 From: The Netherlands Last post: 4492 days Last view: 2627 days |
Posted by NaulahautaBest data structure explanation ever. ____________________ Wife make lunch - Shampoo Opera - give it a spin Spare some of your free time? <GreyMaria> I walked around the Lake so many goddamn times that my sex drive was brutally murdered Kawa rocks — byuu |
MathOnNapkins |
| ||
Super Koopa Level: 62 Posts: 779/842 EXP: 1934521 Next: 50165 Since: 02-19-07 From: durff Last post: 4482 days Last view: 4005 days |
Posted by KawaPosted by NaulahautaBest data structure explanation ever. When it comes to code I like my comments like this: "; what the fuck is this!!!????" ____________________ Zelda Hacking Forum hobbies: delectatio morosa |
Naulahauta |
| ||
Red Paragoomba Level: 19 Posts: 14/56 EXP: 30475 Next: 5302 Since: 10-27-09 Last post: 3698 days Last view: 479 days |
0x2DEFA is where the intro text begins. "Long, long ago..." is the first string and after that there are some commands I have yet to decipher. FE means line break but the rest is cutscene related. The ending text is exactly after the intro text. The graphics to use are retrieved from 0x73C00. 00 = space, 01 = A, 02 = B, and so on.
The Jump game level format is identical to the ordinary level format. Easy mode jump game begins from 0x321A6. It's $400 bytes big and after that, there's an FF. Then the sprite definitions, then an FF again. Then begins the Normal mode jump game. That too $400 bytes and then FF, sprites, FF, Hard mode. Also, update on the sprite format: ss xx yy hy ?? ?? ?? The question marks are still a mystery, but the first bytes are Sprite, X coordinate, Y coordinate, High byte for Y coordinate. It is required for the jump games because the levels are so high. More info coming soon regarding the tilemaps. ____________________ oh |
Naulahauta |
| ||
Red Paragoomba Level: 19 Posts: 38/56 EXP: 30475 Next: 5302 Since: 10-27-09 Last post: 3698 days Last view: 479 days |
RISE FROM YOUR GRAAAAVEEEEEEE
I pulled an all-nighter documenting everything I found and put up a site for all my documents. Expect more soon. Check it ____________________ oh |
Kiokuffiib11 |
| ||
Porcupo Level: 40 Posts: 204/313 EXP: 406815 Next: 34494 Since: 07-10-09 From: Marquette, Michigan Last post: 3306 days Last view: 1928 days |
Posted by Naulahauta You should put the data on datacrystal.net (Or as it's now called www.datacrystal.romhacking.net ) ____________________ セシル |
Naulahauta |
| ||
Red Paragoomba Level: 19 Posts: 39/56 EXP: 30475 Next: 5302 Since: 10-27-09 Last post: 3698 days Last view: 479 days |
Datacrystal and RHDN merged?
Wow, I'm late to the party. I'll add the info up as soon as I get it to a more reader-friendly format. Right now it's a bit messy but you can understand what it says. Also, page updated. More than 1/4 there! ____________________ oh |
Main - ROM Hacking - Bomberman Pocket NEW STUFF updated 28.10.2010 | New thread | New reply |
© 2005-2023 Acmlm, blackhole89, Xkeeper et al. |
MySQL - queries: 63, rows: 90/91, time: 0.016 seconds. |