Points of Required Attention™
Friendly reminder: Please don't respond to spammers! Their posts inevitably get memory-holed when staff get around to, leaving behind an inexplicable tableau of you shouting at nothing and (if they otherwise would have been alone in a thread) dangling posts and wrong postcounts.
Views: 51,094,188
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 04-21-19 05:11 PM
Guest: Register | Login

0 users currently in ROM Hacking | 2 guests

Main - ROM Hacking - Umihara Kawase New thread | Thread closed


Naulahauta
Posted on 06-18-10 05:55 PM (rev. 2 of 06-18-10 05:55 PM) Link | Quote | ID: 132106


Red Paragoomba
Level: 17

Posts: 16/56
EXP: 24661
Next: 82

Since: 10-27-09

Last post: 1872 days
Last view: 529 days
Okay.
Okay.
Umihara Kawase, also known as that-awesome-yet-weird-puzzle-platforming-game is one of those games you wish there was a level editor for.

Now, I've looked into the level format and it makes sense but simultaneously fucks your mind. Observe:

0xC210E is the beginning of Field 00's level data. It ends at 0XC3191, and in its entirety it's 0x1084 bytes big. It includes the tiles to use for the level, starting point for the player, sprites and physical properties of each tile. Probably time and music bytes too. Tileset to use isn't, however, defined in this bunch of data.

The mystery begins at 0xC3015. Or, to be honest, anywhere in the data where there's these strange combos. Check this out:
0xC3015: 8E 4D 8D 4D 8C 4D 8B 00 4D 8A 4D 89 4D 88 4D 87 00 4D 86 4D 85 4D 84 4D 83 00 ...

Compare it to this tileset I snatched from the ZST of Field 00. The level uses this 2-bank tileset btu the graphics themselves are compressed so you won't find them in the ROM through Tile Molester or stuff like that.
Bank 0:

Bank 1:


If you compare the bytes, you'll notice that the first underlining I did, 8E 4D 8D 4D 8C 4D 8B is a set of four tiles from bank 1, each followed by a property byte (4D).
In the property byte, it is defined what palette the tile uses and what bank is the tile retrieved from.

So okay, let's change those bytes to something else, let's say AB. So now, 8E 4D 8D 4D 8C 4D 8B turns into AB 4D AB 4D AB 4D AB. Save and open an emulator, this is what you get:


Superb! We've changed four tiles. We also know that we can change it to anything that our tilesets offer us.

The problems arise when we move onto the non-underlined parts. As you probably noticed, there's a 00 between the byte array: 8E 4D 8D 4D 8C 4D 8B 00 4D 8A 4D 89 4D 88 4D 87 00 4D 86 4D 85 4D 84 4D 83 00 ...

Change any 00 to anything else and...

whoa

Now, those 00s (and other evil purposeless bytes and byte combos) are scattered through the level data. The bytes never appear as a constant stream, it's always four bytes max, then that combo breaker 00 or 04 or 00 0F 2C or some crazy 'useless' byte shows up.

But regardless, it's a start. Right now I've got to flee, but I'll be posting more of my findings, mostly sprite construction data, as soon as I get home.

In the meantime, screw around in that area.

____________________
oh

blackhole89
Posted on 06-18-10 06:19 PM Link | Quote | ID: 132107


The Guardian
Moloch whose eyes are a thousand blind windows!
Level: 118

Posts: 3156/4179
EXP: 18010286
Next: 372628

Since: 02-19-07
From: Ithaca, NY, US

Last post: 89 days
Last view: 12 hours
Could those bytes encode the physical attributes of the next (or previous) bunch of tiles, i.e. if they are solid or deadly or whatever? If that sequence is variable-length and has to be terminated properly, it would be plausible to assume that removing whatever the proper terminator for it is would wreak extensive havoc to the whole level parsing mechanism (as it tries to parse things that make no sense whatsoever as attributes for this set of 4 tiles).

Naulahauta
Posted on 06-19-10 07:35 PM (rev. 2 of 06-19-10 08:55 PM) Link | Quote | ID: 132168


Red Paragoomba
Level: 17

Posts: 18/56
EXP: 24661
Next: 82

Since: 10-27-09

Last post: 1872 days
Last view: 529 days
Oookay, slowly getting the hang of this. First off, let me explain the property byte in bits.

vhbp al?b

V is for Vertical flip of the tile.
H is for Horizontal flip of the tile.
B is for Behind. If this bit is set, you (and all sprites, for that matter) will be hiding behind this tile.
P, A and L are for PALette. 8 palettes to choose from.
? is... I don't know. Seems to a some kind of a hybrid bit between bank and palette selection. Another interesting this is that this bit is never set.
B is for Bank. If not set, load graphics from bank 0, if set, from 1.

I've also confirmed that the purpose of the 00s is not physical attribute defining. The first $28B bytes are used for defining physmaps and possibly sprites too. Editing any of the bytes in this area will not result in visual changes (except the total garbage-fest that occurs when editing a wrong byte).

____________________
oh

Naulahauta
Posted on 06-23-10 02:07 PM Link | Quote | ID: 132313


Red Paragoomba
Level: 17

Posts: 19/56
EXP: 24661
Next: 82

Since: 10-27-09

Last post: 1872 days
Last view: 529 days
Okay, something interesting. I opened the ZST in a Hex editor and took a look at the byte array. Very obvious level data.


compare it to my old map rip of the level.


That is most obviously the lower left area. Those N.N.N's are the trees' physmap.

Dunno really how to continue from here but I'll keep screwing around. Stay tuned.. I have a good feeling.

____________________
oh

Dwedit
Posted on 06-30-10 06:43 AM Link | Quote | ID: 132511


Red Paratroopa
Level: 29

Posts: 158/162
EXP: 137212
Next: 10673

Since: 03-07-07
From: Chicago

Last post: 1687 days
Last view: 691 days
You sure you're not looking at the nametable?

____________________

Naulahauta
Posted on 06-30-10 11:23 AM (rev. 2 of 06-30-10 11:25 AM) Link | Quote | ID: 132521


Red Paragoomba
Level: 17

Posts: 21/56
EXP: 24661
Next: 82

Since: 10-27-09

Last post: 1872 days
Last view: 529 days
Nametable? What do you mean?
I mean, I've modified that bunch of data and have successfully edited the graphical appearance of the tiles, the palettes, and the physical attributes of each tile.
For some reason I haven't been able to edit the enemies but I know their positions and values are listed there.

____________________
oh

Kawa
Posted on 06-30-10 02:57 PM Link | Quote | ID: 132522


CHIKKN NI A BAAZZKIT!!!
80's Cheerilee is best pony
Level: 131

Posts: 3796/5344
EXP: 26039062
Next: 385558

Since: 02-20-07
From: The Netherlands

Last post: 2666 days
Last view: 801 days
Not to argue for or against the point that you "may be looking at the nametable", but just throwing this in: the nametable is a representation of the screen contents in video memory used by the PPU to render the final image.

Some games may use map formats identical to the nametable format, some might limit that to intermission screens, most are likely to use something entirely different.

For example, there are three different styles of level data in Super Mario Bros 1: the object-based level representation, working on a 16x16 grid and not at all nametable-like → the tile-based level map, also on a 16x16 grid but still not nametable, used to do collission detection and coin pickups 'n such → the nametable, a screen-sized, 8x8 pixel grid tile based image based on the relevant section of the level map, which is in turn based on the object list. This third part is not used by the game itself at all, and only serves to let the system draw the level on screen.

Now if Dwedit were right, editing this data would only change the tiles' graphical appearance, but not their physical attributes — that one block would only look like a conveyor belt, but not act like it. If there was open space there, you wouldn't be able to hit the conveyor belt tile. But you claim to have changed the "physical attributes", and I'll buy that.

Next time, you might want to keep the file offsets in view so Dwedit can tell if the displayed area's in VRAM or not.

____________________
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

Naulahauta
Posted on 06-30-10 03:29 PM Link | Quote | ID: 132524


Red Paragoomba
Level: 17

Posts: 22/56
EXP: 24661
Next: 82

Since: 10-27-09

Last post: 1872 days
Last view: 529 days
Oooh, right. I didn't even think he meant the image I posted, but I see the context now. The stuff is in 0x3000 - 0x4BFF.

____________________
oh

Kawa
Posted on 06-30-10 03:45 PM Link | Quote | ID: 132525


CHIKKN NI A BAAZZKIT!!!
80's Cheerilee is best pony
Level: 131

Posts: 3797/5344
EXP: 26039062
Next: 385558

Since: 02-20-07
From: The Netherlands

Last post: 2666 days
Last view: 801 days
Glad to be of assistance. When you quote those offsets, do you mean "in the .ZST file" or...?

____________________
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

Naulahauta
Posted on 06-30-10 08:38 PM Link | Quote | ID: 132535


Red Paragoomba
Level: 17

Posts: 23/56
EXP: 24661
Next: 82

Since: 10-27-09

Last post: 1872 days
Last view: 529 days
Posted by Kawa
Glad to be of assistance. When you quote those offsets, do you mean "in the .ZST file" or...?

Yeah, in the ZST.

____________________
oh

Kawa
Posted on 06-30-10 08:38 PM Link | Quote | ID: 132536


CHIKKN NI A BAAZZKIT!!!
80's Cheerilee is best pony
Level: 131

Posts: 3799/5344
EXP: 26039062
Next: 385558

Since: 02-20-07
From: The Netherlands

Last post: 2666 days
Last view: 801 days
Yes, that's what I thought. Just making sure.

____________________
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

Alc
Posted on 05-25-11 12:08 AM Link | Quote | ID: 142425

Newcomer
Level: 3

Posts: 1/1
EXP: 53
Next: 75

Since: 05-24-11

Last post: 2888 days
Last view: 2888 days
Just wondering if anyone got any further with this? Love this game so much.

Kawa
Posted on 05-25-11 07:10 PM Link | Quote | ID: 142463


CHIKKN NI A BAAZZKIT!!!
80's Cheerilee is best pony
Level: 131

Posts: 4628/5344
EXP: 26039062
Next: 385558

Since: 02-20-07
From: The Netherlands

Last post: 2666 days
Last view: 801 days
If we did get any further, we would've posted on it. Please don't post in year-old threads any more, unless you have something concrete to add yourself.

____________________
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

Senaye
Posted on 05-27-11 11:25 PM Link | Quote | ID: 142606


Level: 42

Posts: 110/435
EXP: 492916
Next: 28446

Since: 03-22-11
From: Somewhere

Last post: 1566 days
Last view: 1566 days
Ok, I know this has absolutely nothing to do with the topic, but why does everything involve Kawa?

Umihara KAWAse

KAWAbunga

You're lucky, you chose a good name

Kawa
Posted on 05-27-11 11:25 PM Link | Quote | ID: 142607


CHIKKN NI A BAAZZKIT!!!
80's Cheerilee is best pony
Level: 131

Posts: 4652/5344
EXP: 26039062
Next: 385558

Since: 02-20-07
From: The Netherlands

Last post: 2666 days
Last view: 801 days
I like getting involved

Closing this now

____________________
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

Main - ROM Hacking - Umihara Kawase New thread | Thread closed

Acmlmboard 2.1+3δ (2016-01-08)
© 2005-2016 Acmlm, blackhole89, Xkeeper et al.

Page rendered in 0.091 seconds. (341KB of memory used)
MySQL - queries: 73, rows: 108/0, time: 0.047 seconds.