usagiZ
Well-Known Member
I've been trying to figure out how to edit the collision data for doa2u stages, and was partially successful in my most recent tests.
Collision Test 1:
So for collision test 1, I copy-pasted a section of data from one stage_dat.bin onto this highlighted section of the island's stage_dat.bin and this was the result.
This was before I noticed the patterns for the specific data sections, so this was just a lucky shot in the dark.
Copy-pasting that bit of data somehow created a half-wall in the middle of the first island. Notable things include, the fact that you can walk through the new wall, and that it doesn't cause wall throws at all.
Collision Test 2:
For this test, I zeroed out this chunk of data at the start of the stage_dat.bin, and the result was that you could walk through walls, as long as you didn't hit the opponent with a wall splat move.
Zeroing out that data also removed the slope and altitude information for the stage, which is why the characters stay on the same level on the Y axis regardless of the stage's geometry.
One of the results of that change is that the camera starts acting strange when you walk outside the previous bounds of the stage. If you go too far out of bounds you start to rubber band back within the expected bounds.
If you zero out the entire file, or delete all the data in the file altogether, the collisions are all nullified and you can walk out of bounds without the camera problem iirc.
======================================================================================================
After noticing some of the patterns in the data, I was finally able to change wall types:
If stage coding is somehow eventually figured out, it might even be possible to create entirely new stages - since there's a blender tool that lets you create .xprs from new geometry.
Anyway, I'll post my findings here if I figure anything else out.
Collision Test 1:
This was before I noticed the patterns for the specific data sections, so this was just a lucky shot in the dark.
Copy-pasting that bit of data somehow created a half-wall in the middle of the first island. Notable things include, the fact that you can walk through the new wall, and that it doesn't cause wall throws at all.
Collision Test 2:
Zeroing out that data also removed the slope and altitude information for the stage, which is why the characters stay on the same level on the Y axis regardless of the stage's geometry.
One of the results of that change is that the camera starts acting strange when you walk outside the previous bounds of the stage. If you go too far out of bounds you start to rubber band back within the expected bounds.
If you zero out the entire file, or delete all the data in the file altogether, the collisions are all nullified and you can walk out of bounds without the camera problem iirc.
======================================================================================================
After noticing some of the patterns in the data, I was finally able to change wall types:
I started with one of DOA2U's beta/test stages "sWAL_dat.bin"
The data in the second red circle is the pointer to the wall type data for this stage, but I had to add the data in the first red circle to get to the intended destination.
0x3BB4 + 0x0004 = 0x3BB8.
After going to 0x3BB8, we get to a bit of data that looks like this:
The large area outlined in red is a small part of the wall type data for this stage.
Each wall type seems to be defined in 8 byte sections.
The 8 byte section of data highlighted in multiple colors is one example of a wall definition - not sure what each part means, but I think it reads something like this:
[18 00] = wall start
[19 00] = wall end
[00 C0] = unkown currently
[10 00] = wall type
My current idea of how walls work in DOA2U is that the wall start and wall end values act like fence posts, between which the wall is actually spawned.
I've tried changing the values before, and the wall did end up spawning slightly differently, like at a diagonal between two other walls - which is why I now think that fence post idea makes sense.
Changing wall types is as easy as changing the two byte wall type value.
It can be a little tedious figuring out which 8 byte chunk is the wall you want to change, however.
There's quite a few wall types in DOA2U, each for specific circumstances. Here's a list of all the ones I've tested:
Using the info from my findings with wall type editing, I tested a few more things.
Here's some more examples of the results I've had after changing the wall type values on certain stages:
In this one, I was trying to see if I could make the characters go back into the Koku An, after already being in the outdoor portion of the stage.
The stage obviously isn't coded to work that way, so the transition to outdoors just repeats instead of going back inside
This one was just for fun. I wanted to see what would happen if I launched Hitomi into the abyss, and for some reason we return to the starting area.
I think this stage might have originally been planned to transition to the start if you get knocked off the bottom platform - or it's just doing that because I'm changing the wall to something it shouldn't be and it's glitching lol.
--------------------------------------------------------------------------------------------
I'm hoping to eventually know enough about the way stages are coded so I can give Bass' Truck stage some invisible walls and include it as a playable stage.
Currently, you can just walk out of bounds in this stage forever lol.
0x3BB4 + 0x0004 = 0x3BB8.
After going to 0x3BB8, we get to a bit of data that looks like this:
The large area outlined in red is a small part of the wall type data for this stage.
Each wall type seems to be defined in 8 byte sections.
The 8 byte section of data highlighted in multiple colors is one example of a wall definition - not sure what each part means, but I think it reads something like this:
[18 00] = wall start
[19 00] = wall end
[00 C0] = unkown currently
[10 00] = wall type
My current idea of how walls work in DOA2U is that the wall start and wall end values act like fence posts, between which the wall is actually spawned.
I've tried changing the values before, and the wall did end up spawning slightly differently, like at a diagonal between two other walls - which is why I now think that fence post idea makes sense.
Changing wall types is as easy as changing the two byte wall type value.
It can be a little tedious figuring out which 8 byte chunk is the wall you want to change, however.
There's quite a few wall types in DOA2U, each for specific circumstances. Here's a list of all the ones I've tested:
10 = invisible / hits when rolling
12 = full wall + wall throw
13 = full wall + wall throw
14 = half-wall
15 = half-wall - no wall throw
16 = fall off / slip
17 = half-wall - no wall throw + hits when rolling
18 = half-wall - no wall throw
19 = invisible / hits when rolling
1A = half-wall + wall throw
1B = half-wall + wall throw
1C = invisible wall
1D = invisible wall
1E = invis / hits wall when rolling
1F = full wall
20 = half-wall
21 = fall off / slip
22 = fall off / flip over fence
FE = pass through? weird rubber banding effect
12 = full wall + wall throw
13 = full wall + wall throw
14 = half-wall
15 = half-wall - no wall throw
16 = fall off / slip
17 = half-wall - no wall throw + hits when rolling
18 = half-wall - no wall throw
19 = invisible / hits when rolling
1A = half-wall + wall throw
1B = half-wall + wall throw
1C = invisible wall
1D = invisible wall
1E = invis / hits wall when rolling
1F = full wall
20 = half-wall
21 = fall off / slip
22 = fall off / flip over fence
FE = pass through? weird rubber banding effect
Using the info from my findings with wall type editing, I tested a few more things.
Here's some more examples of the results I've had after changing the wall type values on certain stages:
In this one, I was trying to see if I could make the characters go back into the Koku An, after already being in the outdoor portion of the stage.
The stage obviously isn't coded to work that way, so the transition to outdoors just repeats instead of going back inside
This one was just for fun. I wanted to see what would happen if I launched Hitomi into the abyss, and for some reason we return to the starting area.
I think this stage might have originally been planned to transition to the start if you get knocked off the bottom platform - or it's just doing that because I'm changing the wall to something it shouldn't be and it's glitching lol.
--------------------------------------------------------------------------------------------
I'm hoping to eventually know enough about the way stages are coded so I can give Bass' Truck stage some invisible walls and include it as a playable stage.
Currently, you can just walk out of bounds in this stage forever lol.
If stage coding is somehow eventually figured out, it might even be possible to create entirely new stages - since there's a blender tool that lets you create .xprs from new geometry.
Anyway, I'll post my findings here if I figure anything else out.
Last edited: