Oddworld Forums > Zulag One > Oddworld Discussion > Oddworld Mods & Hacks


 
Thread Tools
 
  #841  
10-13-2010, 06:05 AM
NovaMan's Avatar
NovaMan
Howler Punk
 
: Jun 2009
: ?
: 345
Rep Power: 16
NovaMan  (15)

Paul, please can you update your decoder???
i've been waiting a month.

Last edited by NovaMan; 10-13-2010 at 06:45 AM..
Reply With Quote
  #842  
10-13-2010, 06:11 AM
Littleleeroy's Avatar
Littleleeroy
Boombat
 
: Aug 2008
: Australia
: 227
Rep Power: 17
Littleleeroy  (334)Littleleeroy  (334)Littleleeroy  (334)Littleleeroy  (334)

:
Paul, can you update your decoder?
i've been waiting a month.
I think thats very rude. Why should he. It would take him a long time to decode something and he hasn't even said what he is currently working on, just what he would like to do. Most of us following this thread have been waiting over 2 years for just a decoder, and you are complaining that it has been a month! Thats just rude.

EDIT: you didn't even say please.
EDIT: ok, now you have

Last edited by Littleleeroy; 10-14-2010 at 02:05 AM..
Reply With Quote
  #843  
10-13-2010, 06:44 AM
NovaMan's Avatar
NovaMan
Howler Punk
 
: Jun 2009
: ?
: 345
Rep Power: 16
NovaMan  (15)

:
I think thats very rude
One month from last reply and i make my question.

:
You didn't even say please.
I've forget that.
Reply With Quote
  #844  
10-17-2010, 08:36 AM
LIJI's Avatar
LIJI
Howler Punk
 
: Mar 2007
: Israel
: 318
Rep Power: 18
LIJI  (206)LIJI  (206)LIJI  (206)

I've figured out the collision mask structure. Included is a color coded collision mask imported from the first area of Abe's Exoddus. It includes 2 grids, one that splits it to screens and one that splits it to steps. The colors should be pretty obvious, except for the red zones, which probably deal with shadows. Red shadows have 4 more parameters which are ignored in the renderer, which probably explains it.

It should be noted that the game does not use pixels, but it uses units which are defined by:

Each screen (640x240 or 640x480, depends on how you look at it) is 375x260 units big. (Note the fact that 375x260 is not in a 4:3 ratio!). The X positions are in a grid of 25, i.e. every step of Abe or anyone else is exactly 25 units. The collision mask included is in the ratio of 1 unit - 1 pixel.
Attached Thumbnails
Click image for larger version

Name:	mask.png
Views:	281
Size:	25.1 
ID:	11996  
Reply With Quote
  #845  
10-17-2010, 09:05 AM
Wil's Avatar
Wil
Oddworld Administrator
Oddworld Inhabitant
 
: Apr 2001
: UK
: 13,534
Blog Entries: 39
Rep Power: 39
Wil  (9443)Wil  (9443)Wil  (9443)Wil  (9443)Wil  (9443)Wil  (9443)Wil  (9443)Wil  (9443)Wil  (9443)Wil  (9443)Wil  (9443)

Very, very interesting. Was this map automatically generated, and if so, how did you do it?

It took me a while to get my bearings, so I'll be point out that the very first screen is two from the bottom and three from the left, with the white lines being foreground floors. Everything makes sense from that, although what's the difference between purple and orange lines? I can see that one is usually on the left and the other usually on the right, but since neither is penetrable from either direction, is there a difference, or is it a distinction you've made for clarity?

What's the big blue square? As it's a shadow in-game, shouldn't it be red?

And perhaps most importantly, if you can now interpret all this information from level files, can you edit it successfully?
__________________

Reply With Quote
  #846  
10-17-2010, 09:18 AM
LIJI's Avatar
LIJI
Howler Punk
 
: Mar 2007
: Israel
: 318
Rep Power: 18
LIJI  (206)LIJI  (206)LIJI  (206)

Both Red and Cyan are both shadows, red have more parameters though. Purple and orange lines are just as you said, and it's coded in game. It's important for the Sligs' bullet-on-wall graphics.

The map was only half-automatically generated, as I haven't created a reader for the BND format used for paths (And animations, it's some format of an uncompressed zip file)

Editing the information is very easy actually, the format is very easy to understand, other than the red shadows.
Reply With Quote
  #847  
10-17-2010, 11:14 AM
Paul's Avatar
Paul
Outlaw Sniper
 
: Jun 2007
: MilkyWay
: 1,535
Rep Power: 19
Paul  (718)Paul  (718)Paul  (718)Paul  (718)Paul  (718)Paul  (718)Paul  (718)

:
I've figured out the collision mask structure. Included is a color coded collision mask imported from the first area of Abe's Exoddus. It includes 2 grids, one that splits it to screens and one that splits it to steps. The colors should be pretty obvious, except for the red zones, which probably deal with shadows. Red shadows have 4 more parameters which are ignored in the renderer, which probably explains it.

It should be noted that the game does not use pixels, but it uses units which are defined by:

Each screen (640x240 or 640x480, depends on how you look at it) is 375x260 units big. (Note the fact that 375x260 is not in a 4:3 ratio!). The X positions are in a grid of 25, i.e. every step of Abe or anyone else is exactly 25 units. The collision mask included is in the ratio of 1 unit - 1 pixel.
Very awesome Do you know how the grid structure works? This is one thing I don't know anything about other than the 25 pixel grid? And that the gird in no way matches the actual pixels on screen.

The psx game has a lower resolution of 384x240 or something, perhaps its based on that and just scaled up for the pc version?

Did you find this into in the path, or in the copied parts of the path that are in the game saves? Very interesting stuff

Also there won't be another decoder version for a while, if you look at open source alive engine thread im doing some stuff related to that first, plus I dont have tons of free time these days
Reply With Quote
  #848  
10-17-2010, 11:26 AM
LIJI's Avatar
LIJI
Howler Punk
 
: Mar 2007
: Israel
: 318
Rep Power: 18
LIJI  (206)LIJI  (206)LIJI  (206)

I never knew the save file had parts of the path file! :O Where is it stored exactly?

The format goes like that:
In the path file. There's the obvious array of screens (Nulls and MIP**C**s).
Right after that comes another array which represents the collision mask.
Each item is 20 bytes big and represents a rectangle:

short x1
short y1
short x2
short y2
short type (The color used in the rendered image)
short[5] unknown (unknown, probably used for shadows. The first 4 are usually FFFF)

I'm not sure how the list is delimited yet.
Reply With Quote
  #849  
10-17-2010, 11:33 AM
Paul's Avatar
Paul
Outlaw Sniper
 
: Jun 2007
: MilkyWay
: 1,535
Rep Power: 19
Paul  (718)Paul  (718)Paul  (718)Paul  (718)Paul  (718)Paul  (718)Paul  (718)

Not sure exactly where it is, but I'm very sure it just dumps part of the memory as the save file which contains the part of the loaded path.

Maybe if you search for your slig id's or whatever if in the right path file you'll find part of the file is that is almost exactly like the save file. It won't be exactly the same cause it changes some bytes to mark it as "loaded" and whatever else it might do.

How do you know where the array of screens end? I found this offset is hard coded into the game exe for every path So I guess you just manually look for it?
Reply With Quote
  #850  
10-17-2010, 11:37 AM
LIJI's Avatar
LIJI
Howler Punk
 
: Mar 2007
: Israel
: 318
Rep Power: 18
LIJI  (206)LIJI  (206)LIJI  (206)

I manually looked for it, however, even if the address is hard coded, once you find the array of screen the end is easy to find. Just loop the array until you reach a value that isn't null or in the pattern [A-Z][A-Z]P[0-9][0-9]C[0-9][0-9]. Dirty and slightly risky, but should work.
Reply With Quote
  #851  
10-17-2010, 11:47 AM
Paul's Avatar
Paul
Outlaw Sniper
 
: Jun 2007
: MilkyWay
: 1,535
Rep Power: 19
Paul  (718)Paul  (718)Paul  (718)Paul  (718)Paul  (718)Paul  (718)Paul  (718)

Did you happen to notice if the AO screen have the same collision format?
Reply With Quote
  #852  
10-17-2010, 11:48 AM
LIJI's Avatar
LIJI
Howler Punk
 
: Mar 2007
: Israel
: 318
Rep Power: 18
LIJI  (206)LIJI  (206)LIJI  (206)

Haven't tried it, but it shouldn't be different. If any change, it'll the shadows.
Reply With Quote
  #853  
10-17-2010, 03:48 PM
Paul's Avatar
Paul
Outlaw Sniper
 
: Jun 2007
: MilkyWay
: 1,535
Rep Power: 19
Paul  (718)Paul  (718)Paul  (718)Paul  (718)Paul  (718)Paul  (718)Paul  (718)

:
I never knew the save file had parts of the path file! :O Where is it stored exactly?

The format goes like that:
In the path file. There's the obvious array of screens (Nulls and MIP**C**s).
Right after that comes another array which represents the collision mask.
Each item is 20 bytes big and represents a rectangle:

short x1
short y1
short x2
short y2
short type (The color used in the rendered image)
short[5] unknown (unknown, probably used for shadows. The first 4 are usually FFFF)

I'm not sure how the list is delimited yet.
Hmm not looked at AE, but in AO it appears to look like this:


4508
3B01
030B
3B01
0000
0000
FFFF
FFFF
FFFF
FFFF

========

F709
D600
010B
D600
0000
0000
FFFF
FFFF
FFFF
FFFF

So the second byte appears to be a counter or Id for the platform / collision item? I'm wondering if there is a magic type of collision item that tells you which group of items are for which given screen? Every screen has an Id in the file that it could be linked to..
Reply With Quote
  #854  
10-17-2010, 04:04 PM
LIJI's Avatar
LIJI
Howler Punk
 
: Mar 2007
: Israel
: 318
Rep Power: 18
LIJI  (206)LIJI  (206)LIJI  (206)

No, there are no IDs as there are some big zones which take more than one screen.
There are no counters in AE as far as I know.
Where are the screen IDs stored though?
Reply With Quote
  #855  
10-17-2010, 04:14 PM
Paul's Avatar
Paul
Outlaw Sniper
 
: Jun 2007
: MilkyWay
: 1,535
Rep Power: 19
Paul  (718)Paul  (718)Paul  (718)Paul  (718)Paul  (718)Paul  (718)Paul  (718)

:
No, there are no IDs as there are some big zones which take more than one screen.
There are no counters in AE as far as I know.
Where are the screen IDs stored though?
In the cam files
Reply With Quote
  #856  
10-17-2010, 05:20 PM
LIJI's Avatar
LIJI
Howler Punk
 
: Mar 2007
: Israel
: 318
Rep Power: 18
LIJI  (206)LIJI  (206)LIJI  (206)

We have just enough information about the path format to add, replace, remove and modify any object.
Mudokon, you're mine! Literally!
Attached Thumbnails
Click image for larger version

Name:	Mine.png
Views:	286
Size:	314.7 
ID:	11997  
Reply With Quote
  #857  
10-17-2010, 06:14 PM
Nate's Avatar
Nate
Oddworld Administrator
Rainbow of Flavour
 
: Apr 2002
: Seattle (woo!)
: 16,311
Blog Entries: 176
Rep Power: 41
Nate  (13497)Nate  (13497)Nate  (13497)Nate  (13497)Nate  (13497)Nate  (13497)Nate  (13497)Nate  (13497)Nate  (13497)Nate  (13497)Nate  (13497)

What are the blue lines? Is it to do with a location where Abe must roll?
__________________
:
Spending as long as I do here, it's easy to forget that Oddworld has actual fans.

Reply With Quote
  #858  
10-17-2010, 07:06 PM
LIJI's Avatar
LIJI
Howler Punk
 
: Mar 2007
: Israel
: 318
Rep Power: 18
LIJI  (206)LIJI  (206)LIJI  (206)

Right walls for the background layer ("small" layer).
Must roll is yellow.

Edit: Btw, has Paul made an Exoddus bmp to cam converter already?
Reply With Quote
  #859  
10-17-2010, 08:16 PM
LIJI's Avatar
LIJI
Howler Punk
 
: Mar 2007
: Israel
: 318
Rep Power: 18
LIJI  (206)LIJI  (206)LIJI  (206)

Another fine creation. I call it Mine Hell. All mines have different patterns.
I had to give up some of the objects in the screen such as the LCD and the alerts, and some objects that are responsible for syncing with the Sligs on the other screens (Entering this screen will reset the Sligs to their default position - Sleeping), but that's only because I didn't want to extract the .lvl and .bnd files and recombine them, which I have to do when resizing.

The structure for mine btw is:

Mine:
short magic;
short size=0x1C00;
long id=0x19000000
//x%25=0 so it fits on the grid.
short x;
short y;
//Not sure what are these and what they do exactly, but they should be x+24 and y+24.
short x2=x+24;
short y2=y+24;
//Apparently there are quite a lot of patterns!
short pattern;
short unknown;
short unknown;
//0 is active, anything else is not.
short state;
Attached Thumbnails
Click image for larger version

Name:	MineHell.png
Views:	269
Size:	306.7 
ID:	11998  
Reply With Quote
  #860  
10-17-2010, 09:26 PM
MeechCrunchies's Avatar
MeechCrunchies
Rabid Fuzzle
 
: Jul 2010
: Wrigglin in Elum's extremities
: 527
Rep Power: 15
MeechCrunchies  (255)MeechCrunchies  (255)MeechCrunchies  (255)

Hmm, if you guys have successfully been able to (and are on almost on the verge of) create(ing) a level editor, do you think you might be able to move on to (maybe) upgrading the resolutions of the games?
We've all seen how good those preview shots were for AO and AE before they were required to bring them down immensely,
and if you could bring the Resolutions up from 375x260 (<< right?), I can honestly see a full fledged Homemade remake of the original two games
I'd bet both of you would get snatched up by OddMob or JAW in a heartbeat ^_^
__________________
:
I have a marble up my arsehole...wut?

Reply With Quote
  #861  
10-17-2010, 09:44 PM
LIJI's Avatar
LIJI
Howler Punk
 
: Mar 2007
: Israel
: 318
Rep Power: 18
LIJI  (206)LIJI  (206)LIJI  (206)

:
Hmm, if you guys have successfully been able to (and are on almost on the verge of) create(ing) a level editor, do you think you might be able to move on to (maybe) upgrading the resolutions of the games?
We've all seen how good those preview shots were for AO and AE before they were required to bring them down immensely,
and if you could bring the Resolutions up from 375x260 (<< right?), I can honestly see a full fledged Homemade remake of the original two games
I'd bet both of you would get snatched up by OddMob or JAW in a heartbeat ^_^
1. The resolution is 640*240, not 375*260. 375*260 is a screen size in game units.
2. The high quality images are fakes made by Oddworld for an unknown reason, they never existed in game.
3. It's impossible to upgrade the resolution without completely recreating the games.
4. Even if it was technically possible, we don't have the source high quality graphics to do it,
Reply With Quote
  #862  
10-17-2010, 10:15 PM
Varrok's Avatar
Varrok
Wolvark Grenadier
 
: Jun 2009
: Beartopia
: 7,301
Blog Entries: 52
Rep Power: 25
Varrok  (7896)Varrok  (7896)Varrok  (7896)Varrok  (7896)Varrok  (7896)Varrok  (7896)Varrok  (7896)Varrok  (7896)Varrok  (7896)Varrok  (7896)Varrok  (7896)

Isn't the odd 375x260 resolution caused by fact, that Abe/Somebody can go sometimes a little bit outside the screen without background change? The outside area needs paths as well...
Reply With Quote
  #863  
10-17-2010, 10:47 PM
NovaMan's Avatar
NovaMan
Howler Punk
 
: Jun 2009
: ?
: 345
Rep Power: 16
NovaMan  (15)

Is this possible???
Reply With Quote
  #864  
10-17-2010, 11:54 PM
Chubfish's Avatar
Chubfish
Grubb Fisherman
 
: Apr 2007
: England
: 907
Blog Entries: 4
Rep Power: 18
Chubfish  (538)Chubfish  (538)Chubfish  (538)Chubfish  (538)Chubfish  (538)Chubfish  (538)

Does the MineCar have its own collision paths?

I quite like that Mine Hell scenario LIJI - it's a nice demonstration!
__________________
FrankerZ

Reply With Quote
  #865  
10-18-2010, 01:28 AM
Wil's Avatar
Wil
Oddworld Administrator
Oddworld Inhabitant
 
: Apr 2001
: UK
: 13,534
Blog Entries: 39
Rep Power: 39
Wil  (9443)Wil  (9443)Wil  (9443)Wil  (9443)Wil  (9443)Wil  (9443)Wil  (9443)Wil  (9443)Wil  (9443)Wil  (9443)Wil  (9443)

:
Is this possible???
Not unless whoever's already inside that minecart gets out so Abe can use it.
__________________

Reply With Quote
  #866  
10-18-2010, 05:28 AM
MeechCrunchies's Avatar
MeechCrunchies
Rabid Fuzzle
 
: Jul 2010
: Wrigglin in Elum's extremities
: 527
Rep Power: 15
MeechCrunchies  (255)MeechCrunchies  (255)MeechCrunchies  (255)

Holy testicles it's Kaizo Abe xD
__________________
:
I have a marble up my arsehole...wut?

Reply With Quote
  #867  
10-18-2010, 06:49 AM
LIJI's Avatar
LIJI
Howler Punk
 
: Mar 2007
: Israel
: 318
Rep Power: 18
LIJI  (206)LIJI  (206)LIJI  (206)

:
Is this possible???
Yes, with a few exceptions:
Mine cars might be possible to add, but they're not likely to be compatible with just any layout.
I'm not entirely sure how well Scrabs and Paramites will interact with each other. They would probably ignore each other, or worse - crash.
Reply With Quote
  #868  
10-18-2010, 07:28 AM
Paul's Avatar
Paul
Outlaw Sniper
 
: Jun 2007
: MilkyWay
: 1,535
Rep Power: 19
Paul  (718)Paul  (718)Paul  (718)Paul  (718)Paul  (718)Paul  (718)Paul  (718)

Ive thought of a way to get around the hard coded offsets problem, each index can point to data *after* the end of the file. Then you can add as much new data as you like! The only thing that might be fixed is the collision data. I'm going to start working on an editor so its easy to try these things out.
Reply With Quote
  #869  
10-18-2010, 07:46 AM
LIJI's Avatar
LIJI
Howler Punk
 
: Mar 2007
: Israel
: 318
Rep Power: 18
LIJI  (206)LIJI  (206)LIJI  (206)

:
Ive thought of a way to get around the hard coded offsets problem, each index can point to data *after* the end of the file. Then you can add as much new data as you like! The only thing that might be fixed is the collision data. I'm going to start working on an editor so its easy to try these things out.
The structure of the screen array is also a bit problematic- the width of the path (in screens) is not constant.
Reply With Quote
  #870  
10-18-2010, 07:49 AM
Paul's Avatar
Paul
Outlaw Sniper
 
: Jun 2007
: MilkyWay
: 1,535
Rep Power: 19
Paul  (718)Paul  (718)Paul  (718)Paul  (718)Paul  (718)Paul  (718)Paul  (718)

:
The structure of the screen array is also a bit problematic- the width of the path (in screens) is not constant.
I was thinking maybe that is found by finding the max width of all of the collision items, left most and right most / screen size in units = number on screens on X?

Edit: And of course same for Y, then fill in the screens from the array? I'm pretty sure this works for R1 of rupture farms, maybe this how its done for all of them apart from the menu screen which have no collision items?

Last edited by Paul; 10-18-2010 at 07:52 AM..
Reply With Quote


Currently Active Users Viewing This Thread: 2 (0 members and 2 guests)
 








 
 
- Oddworld Forums - -