Welcome Guest [Log In] [Register]
Wall Hacking Notes
Topic Started: Feb 15 2010, 07:14 PM (862 Views)
Spikeman
No Avatar
TREZian
I've started figuring out the wall/collision data. It's complicated so I don't fully understand it yet but I figured I'd share what I have so far. I'll be talking about the bathroom in Lan's house. (I chose this room since it's so simple.)

The actual wall data starts at 2027A04.

Each 4 bytes represents a chunk of wall. The first two bytes are the coordinates (this is not simple x,y it's a weird thing that I haven't 100% figured out yet) and the second two control what the chunk does (I don't know if this matters for just walls, but it does later).

So if you go to 2027A04 in 16bit mode you'll see this data:

7C80 0084

If you change the 7C80 to 0000 you'll notice you can walk through the corner of the room. If you change more of the data here you'll be able to walk through more and more spots.

There is a second separate chunk of collision data that is pretty important. You can find it's location at 2013920.

If you go to 2013920 in 32bit mode you'll see the offset here is 2027ADC. This is the address of all the special location data (jack in locations, objects you can press A on, the exit to the room).

The data at 2027B14 and 2027B18 are the two chunks that represent the exit to the room. If you change the coordinates the exit will be gone. Here's what you do with the 0090 in the second part of the data at 2027B18: add it to the offset we found earlier (2027ADC).

2027ADC+90 = 2027B6C

If you go to 2027B6C in 8bit mode you'll see this:

00 01 08 16

If you change the 01 to 00 the exit won't work. If you change it to 02 it will warp you outside AsterLand. Most other values seem to freeze. But significantly, change it to 40 and you can now jack in where the exit used to be!

The 08 is simply how high the object is (this only really matters on multilevel maps).

Changing 16 will either freeze the game or not do anything, not sure what it's for.


Please post any further discoveries you guys have.
Guides I've posted: Chip Trader modding Guide

Check out Mega Man Battle Network Online, my MMBN site!
Profile
Quote
 
louman7777777
Member Avatar
Newb
Now this one is going to be really useful! Most values do the same as 00 I really don't think there's much else.
Edited by louman7777777, Feb 15 2010, 11:12 PM.
Profile
Quote
 
MegaRockEXE
Member Avatar
BN Guides Author

This is very complicated but I want to figure it out. I discovered that the 4th byte in one chunk of wall data is the direction of the wall. The wall can basically become a corner, x, or y wall. A bunch of "walls" are placed in a line that create a barrier in a room. With four sides, the player cannot exit the encasement and wander aimlessly in the game's infinite walkable room.
The Rockman EXE Zone | YouTube
Profile
Quote
 
Agro
No Avatar
Programmer!

I think I covered that in my guide. Anyways, we can't make in permanent changes due to it being in the RAM. The ROM compressed offset of ACDC Town walls must point to the RAM offset 02027A04, allowing it to display the walls in the data.
Profile
Quote
 
MegaRockEXE
Member Avatar
BN Guides Author

There's no point in making permanent edits yet if we can't understand the format. Where is your guide?
The Rockman EXE Zone | YouTube
Profile
Quote
 
Agro
No Avatar
Programmer!

Its in the sub-guides section. SpikeMan asked me to make a full guide on the RAM offset. I haven't made it for the ROM section. The offset you gave me, I'm trying stuff with that. Don't use RAM for now. Try the compressed offset.
Profile
Quote
 
MegaRockEXE
Member Avatar
BN Guides Author

No, the data is compressed in the rom. I would have to decompress it to get the raw data. The wall data is already decompressed in the rom. There is a part in the rom that seems to point to sections in the wall data. I think this is what separates walls from actions.
The Rockman EXE Zone | YouTube
Profile
Quote
 
Agro
No Avatar
Programmer!

I see. Remember you told me that some walls were made with blocks of FFFFFFFFFFFFFFFFFF's? Well, at the 030(IRAM) offsets, underneath, you can see a lot of FFFF's, but it is being overwritten every second. Do you have an idea on this?
Profile
Quote
 
MegaRockEXE
Member Avatar
BN Guides Author

Walls aren't made of FFs though. Like I said, they're just like "fences" that create a line where you can't walk through.
The Rockman EXE Zone | YouTube
Profile
Quote
 
Agro
No Avatar
Programmer!

Oh, well, seems that changed now. Do we have any leads on anything, now?

Did you get my PM on what you wanted to know for walls?
Edited by Agro, Jun 30 2010, 03:42 PM.
Profile
Quote
 
MegaRockEXE
Member Avatar
BN Guides Author

A small chunk of wall is 4 bytes long. I think the first byte is the location but it's kind of hard to visualize where it is. The X and Y locations might be on an isometric plane. The third byte is definitely the wall type and affects how the wall affects the player. There are too many to describe though.
The Rockman EXE Zone | YouTube
Profile
Quote
 
Agro
No Avatar
Programmer!

If you'd like, I could test some values for you.
Profile
Quote
 
MegaRockEXE
Member Avatar
BN Guides Author

So you know the offset for the raw wall data, right?
02027A04

View in 8 bit and work on it a byte at a time. The first value is 80. This must be the location and there are 7 of these that make the wall to the left. It goes from corner to corner. If you change the 80 to 7B and start increase from that, you should have "translated" or moved the wall across the x-axis making the corner somewhere in the wall instead of where the map says it is.
Now you can try editing the third byte to see how the corner or another wall chunk behaves. In the corner, it is 84 but the rest are 88.
The Rockman EXE Zone | YouTube
Profile
Quote
 
Agro
No Avatar
Programmer!

Alright. I feel there is actually more to edit. I'll look onto this.
Profile
Quote
 
1 user reading this topic (1 Guest and 0 Anonymous)
« Previous Topic · Guides & Research · Next Topic »