Related threads:
Release thread for STI Engines, 037 and 040 (PC and Saturn): http://forums.sonicr...opic=34038&st=0
POV Saturn Build thread: http://forums.sonicr...opic=34255&st=0
Original Retro Leak thread: http://forums.sonicr...showtopic=33545
Original Assembler Leak thread: http://assemblergame...required.54194/
Assembler Release Thread: http://assemblergame...v-builds.55713/
Well guys I'm going to leave some information here in regards to understanding how the .def files work.
Right now things are very disorganized as I'm Mid project with AXSX. hopefully I can clean the presentation up later.
To start off, I'll post some copy past of other posts that I've made.
Hopefully someone interested in Modding X-treme will find these to be useful, and maybe perhaps even take over documenting this from me so I can concentrate on other things.
Levels can be ported from other builds of the engine quite easily, it just takes a little understanding on what does what between the multiple .def files.
Keep in mind that Ver 037 does not support many aspects of the later .def files leaked by HXC ( lets refer to that as the Package X leak) Basically you cant translate the X shaped blocks (used for trees and other level props like icicles to V037.
I've somewhat documented values ect., however the documenting is scattered throw-out multiple .def files.
I did make a chart for AXSX to translate blocks and slopes between the multiple early. def files that don't work in any of the engines we have or the later engine that we do not have, But they wouldn't be of much use to you guys at the moment.
I don't have time to consolidate all the notes scattered about right now.
And there is a chart that translates slope types between version 037 and 040.
As for Package X type .def files Most of the information is locked away in my head. I did document how some of the Package X block scales are handled.
Anyhow , if you want to get the Package X levels to load properly, ( most blocks anyways) you will need to custom rebuild the package X .def files in the version 037 format.
using a translation chart. ( something that will need to be made up)
Here is a quick copy past of the chart I used for Package X re-construction of levels for AXSX
Its raw. Hope it helps start your very own chart! ( one that I lack time to put together for the community at the moment, will have time in the future, but yeah if you beat me too it than by all means please share with everyone.)
//----------------------------------------------------------------------------------------
//AXSX Block Scales Cheat Chart Many Package X Blocks (Version 041 and up)
//----------------------------------------------------------------------------------------
////start Block extrude from Bottom,Left,or Front ////
-1048592 87.5% of block visible
-2097184 75% of block is visible
-3145776
-4194368 50% of block is visible
-6291552 25% of block is visible
-7340144 12.5% of block is visible
////start block extrude from Top,Right, or Back ////
14679840
7339920 12.5% of block is visible
6291360 25% of Block is Visible
5242784
4194240 50% of block is Visible
3669960
2097120 75% of block is Visible
1834980
1048560 87.5% of Block is Visible
393216
524280
262140
131070
65535
32767.5
16383.75
8191.875
4095.9375
2047.96875
1023.984375
511.9921875
255.99609375
127.998046875
63.9990234375
31.99951171875
15.999755859375
7.9998779296875
3.99993896484375
1.999969482421875
0.9999847412109375
------------------------------------------------------------------
------------------------------------------------------------------
Here are how blocks are defined within the version 037 levels.
Total block size is 512 units, and each value is extruding 1 side of the block outwards from the center up to and maybe past 256 units.

Same thing for the slopes but by vertex points from the selected side that is defined.

//Slope Chart Ver 037
//REV 001
//01/07/2015
//By Andrew Bedell (AKA Andrew75)
//[email protected]
//[email protected]-----------------------
//Slope looks like |\
//Ver 037=
Value 015,TOP //Slope direction
Value 016,256 //Slope value Range: -256 -> 256
Value 017,-256 //Right Top Vertex //Slope value Range: -256 -> 256
Value 018,-256 //Right Top Vertex //Slope value Range: -256 -> 256
Value 019,256 //Slope value Range: -256 -> 256
//----------------------------------------------------------------------------------------
//Slope looks like /|
//Ver 037=
Value 015,TOP //Slope direction
Value 016,-256 //Left Top Vertex //Slope value Range: -256 -> 256
Value 017,256 //Slope value Range: -256 -> 256
Value 018,256 //Slope value Range: -256 -> 256
Value 019,-256 //Left Top Vertex //Slope value Range: -256 -> 256
//----------------------------------------------------------------------------------------
//Slope looks like |/
//Ver 037=
Value 015,BOTTOM //Slope direction |/
Value 016,-256 //Right Bottom Vertex //Slope value Range: -256 -> 256
Value 017,256 //Slope value Range: -256 -> 256
Value 018,256 //Slope value Range: -256 -> 256
Value 019,-256 //Right Bottom Vertex //Slope value Range: -256 -> 256
//----------------------------------------------------------------------------------------
//Slope looks like \|
//Ver 037=
Value 015,BOTTOM //Slope direction
Value 016,256 //Slope value Range: -256 -> 256
Value 017,-256 //Left Bottom Vertex //Slope value Range: -256 -> 256
Value 018,-256 //Left Bottom Vertex //Slope value Range: -256 -> 256
Value 019,256 //Slope value Range: -256 -> 256
//----------------------------------------------------------------------------------------
//Slope looks like \|
//Ver 037=
Value 015,LEFT //Slope direction
Value 016,-256 //Left Bottom Vertex //Slope value Range: -256 -> 256
Value 017,256 //Slope value Range: -256 -> 256
Value 018,256 //Slope value Range: -256 -> 256
Value 019,-256 //Left Bottom Vertex //Slope value Range: -256 -> 256
//----------------------------------------------------------------------------------------
Slope looks like /|
//Ver 037=
Value 015,LEFT //Slope direction
Value 016,256 //Slope value Range: -256 -> 256
Value 017,-256 //Left Top Vertex //Slope value Range: -256 -> 256
Value 018,-256 //Left Top Vertex //Slope value Range: -256 -> 256
Value 019,256 //Slope value Range: -256 -> 256
//----------------------------------------------------------------------------------------
//Slope looks like |\
//Ver 037=
Value 015,RIGHT //Slope direction
Value 016,-256 //Right Top Vertex //Slope value Range: -256 -> 256
Value 017,256 //Slope value Range: -256 -> 256
Value 018,256 //Slope value Range: -256 -> 256
Value 019,-256 //Right Top vertex //Slope value Range: -256 -> 256
//----------------------------------------------------------------------------------------
//Slope looks like |/
//Ver 037=
Value 015,RIGHT //Slope direction
Value 016,256 //Slope value Range: -256 -> 256
Value 017,-256 //Right Bottom Vertex //Slope value Range: -256 -> 256
Value 018,-256 //Right Bottom Vertex //Slope value Range: -256 -> 256
Value 019,256 //Slope value Range: -256 -> 256
//----------------------------------------------------------------------------------------
Sadly Many block types are not supported in build 037 for levels like crystal frost.
With some tweaking you should be able to get some of the .def files from the Package X leak to work. but all block types are not supported by build 037 like x shapped blocks and blocks that scale relative to sides.
However some of that can be worked around if you know how to translate block scales between .def files.
Here is some info about creating actors.
Some other collision issues can be Kind of sort of fixed like the Waterfall and badnik collision push issue by replacing the Cubes with actors. When setting up a new actor in the def file just copy the ring actor code and paste it just below and give it a new name like Badnik and than load the badnik's texture on the new actor.
(Actors currently have no collision, so they don't get in Sonic's way when running around the levels. I was going to replace them before the release, but ehh the rings were the only real game breaker.
you'd also have to replace the pixels that represent the cubes in the .pcx map file with the newly created Actors threw the .pcx map file.
Example:
//========================================================================================
// This is the BADNIK Actor!
//========================================================================================
NEW_ACTOR_TYPE "Badnik_001" //Add your custom actor name.
{
Value 001,"SLICER" //Texture Name
Value 002,40960 //Scale Range:0 -> 65535
Value 007,1 //MainActordCount Range: 0 -> 15
}
************************************************
***************BONUS TUTORIAL TIME! *************
************************************************
In photoshop Load the Level_01.pcx
Now go to Image---> Mode ---> Color Table than save out the pallet as an .act file.
Next bring up the Swatches if already not set as a tab. by going to Window ---> Swatches.
Next load the .act file and replace current color swatches.
Find the rings pixel inside the .pcx file. (The rings color is # is 606098, this is so you know which one it is)
In the swatches pallet its the 10th row over from the left and 8th color row down.
The next color after the ring will be your next actor if you chose to set one up inside the .def file. ( and so on )

Circled is the rings actor Index color as seen placed in the map.

Now there is just 1 issue with replacing the badniks with actors in this map, The Badnik is produced by 4 pixels within the .pcx map 2 wide and 2 high.
you may have to tinker with the scale a bit to get something close, or divide up the actor texture into 4 segments and load the new textures in the .def file than apply to 4 actors.
Anyhow this is just to help some of you get started in any modding projects you may have planned. Wish I had time to wright up full on and detailed tutorials of my adventures with the .def files. there are a lot of things that can be done!
Useful information from an older post.
So yeah I've been looking threw a lot of the .def files in both Jolly's Leak and HXC's leak, I Found some comfortable parameters within both leaks. The HXC leak parameters however did not work out of box, since that engine used different coding attributes. I had to multiply or divide the parameters by even numbers. So with a marriage Between both types of parameters the results are very close to what was shown in the E3 video footage.
Things that were tweaked include :bounce effect, air drag, run friction, jump up and down gravities, and a few more.) ( Sure its not 100% authentic but , at least its more comfortable to play than lets say jumping half way up a level with single bounce, or floating down to the ground slowly for 30 seconds. or having the camera right up in Sonic's face. ( for you guys who want something untouched, I think that it may be best to release 2 level packs separately so you can have something to play and something in original state.)
Now, onto the rings and objects news. Many of the levels are using Actual cubes with odd cube collisions for rings and other props like badniks. These can be passed threw from the back to the front, but they have a force that pushes sonic making levels virtually not at all very fun to play threw)
What Jolly has asked and that I've already started was to take Actors (like the rings actor) as found in older .defs and get them moved over to the newer .defs that lack the Actor section.
Thank God that the engine can still load up the actors ( although some broken)
First we need to tell the .def to load textures, than the pallet, than after the Cube section definition area, we need to add the new ring definition code.
Inside the Actor's parameters we can tell It do the following:
Bubble, FollowEdge, Follower, PingPong, Static, or leave it blank and the actor will have no collision.
Some of these seem broken at the moment, Follower and static seem to be reversed actions, and bubble does not work,
The real follower has an interesting action ,( I can not reveal that at the moment, You all will have to wait for future videos)
I've also made a small chart that tells us which color to use for the .pcx layout image maps when drawing Cubes and Actors. The engine uses the index of the color to lay out the objects and not the color itself.
(color is only important for the artist's to use it as a visual when designing layouts. What I mean is for example we could change the color of the index chart in Photoshop and the engine wouldn't give a shit another words)
C starts the cube actors and A starts the Actors pallet index color.
Please note since this image has been screen captured , its color attributes are not the same as a real indexed color and can not be used when editing a real .pcx map file. ( yes I learned the hard way)

Oops... I missed a step in the instructions !
To do level Swap trick:
1: Please back up Level_01.def and Level_01.Pcx, then delete or move the originals.
(In case you'd like to roll back to the more playable edited level versions)
\RSRC\PCX for the .DEF files
\RSRC\DEF for the .pcx map files
2: Change TEST.def and TEST.Pcx names respectively to Level_01.def and Level_01.pcx.
3:Find below code in your newly name swapped .def file and change test to Level_01
NEW_QUBIX "QBX0001"
{
Value 001,"test" //Layout Texture
Value 002,"SkyTxtr" //Background Texture
Value 005,Color(248,176,000) //Specular Color Range:0 -> 255
Value 006,Color(008,088,168) //Fog Color Range:0 -> 255
}
4: Boot game as normal and enjoy!
Release thread for STI Engines, 037 and 040 (PC and Saturn): http://forums.sonicr...opic=34038&st=0
POV Saturn Build thread: http://forums.sonicr...opic=34255&st=0
Original Retro Leak thread: http://forums.sonicr...showtopic=33545
Original Assembler Leak thread: http://assemblergame...required.54194/
Assembler Release Thread: http://assemblergame...v-builds.55713/
Well guys I'm going to leave some information here in regards to understanding how the .def files work.
Right now things are very disorganized as I'm Mid project with AXSX. hopefully I can clean the presentation up later.
To start off, I'll post some copy past of other posts that I've made.
Hopefully someone interested in Modding X-treme will find these to be useful, and maybe perhaps even take over documenting this from me so I can concentrate on other things.
Levels can be ported from other builds of the engine quite easily, it just takes a little understanding on what does what between the multiple .def files.
Keep in mind that Ver 037 does not support many aspects of the later .def files leaked by HXC ( lets refer to that as the Package X leak) Basically you cant translate the X shaped blocks (used for trees and other level props like icicles to V037.
Quote
There is documentation on how cubes are handled and what their values do?
I've somewhat documented values ect., however the documenting is scattered throw-out multiple .def files.
I did make a chart for AXSX to translate blocks and slopes between the multiple early. def files that don't work in any of the engines we have or the later engine that we do not have, But they wouldn't be of much use to you guys at the moment.
I don't have time to consolidate all the notes scattered about right now.
And there is a chart that translates slope types between version 037 and 040.
As for Package X type .def files Most of the information is locked away in my head. I did document how some of the Package X block scales are handled.
Anyhow , if you want to get the Package X levels to load properly, ( most blocks anyways) you will need to custom rebuild the package X .def files in the version 037 format.
using a translation chart. ( something that will need to be made up)
Here is a quick copy past of the chart I used for Package X re-construction of levels for AXSX
Its raw. Hope it helps start your very own chart! ( one that I lack time to put together for the community at the moment, will have time in the future, but yeah if you beat me too it than by all means please share with everyone.)
//----------------------------------------------------------------------------------------
//AXSX Block Scales Cheat Chart Many Package X Blocks (Version 041 and up)
//----------------------------------------------------------------------------------------
////start Block extrude from Bottom,Left,or Front ////
-1048592 87.5% of block visible
-2097184 75% of block is visible
-3145776
-4194368 50% of block is visible
-6291552 25% of block is visible
-7340144 12.5% of block is visible
////start block extrude from Top,Right, or Back ////
14679840
7339920 12.5% of block is visible
6291360 25% of Block is Visible
5242784
4194240 50% of block is Visible
3669960
2097120 75% of block is Visible
1834980
1048560 87.5% of Block is Visible
393216
524280
262140
131070
65535
32767.5
16383.75
8191.875
4095.9375
2047.96875
1023.984375
511.9921875
255.99609375
127.998046875
63.9990234375
31.99951171875
15.999755859375
7.9998779296875
3.99993896484375
1.999969482421875
0.9999847412109375
------------------------------------------------------------------
------------------------------------------------------------------
Here are how blocks are defined within the version 037 levels.
Total block size is 512 units, and each value is extruding 1 side of the block outwards from the center up to and maybe past 256 units.

Same thing for the slopes but by vertex points from the selected side that is defined.

//Slope Chart Ver 037
//REV 001
//01/07/2015
//By Andrew Bedell (AKA Andrew75)
//[email protected]
//[email protected]-----------------------
//Slope looks like |\
//Ver 037=
Value 015,TOP //Slope direction
Value 016,256 //Slope value Range: -256 -> 256
Value 017,-256 //Right Top Vertex //Slope value Range: -256 -> 256
Value 018,-256 //Right Top Vertex //Slope value Range: -256 -> 256
Value 019,256 //Slope value Range: -256 -> 256
//----------------------------------------------------------------------------------------
//Slope looks like /|
//Ver 037=
Value 015,TOP //Slope direction
Value 016,-256 //Left Top Vertex //Slope value Range: -256 -> 256
Value 017,256 //Slope value Range: -256 -> 256
Value 018,256 //Slope value Range: -256 -> 256
Value 019,-256 //Left Top Vertex //Slope value Range: -256 -> 256
//----------------------------------------------------------------------------------------
//Slope looks like |/
//Ver 037=
Value 015,BOTTOM //Slope direction |/
Value 016,-256 //Right Bottom Vertex //Slope value Range: -256 -> 256
Value 017,256 //Slope value Range: -256 -> 256
Value 018,256 //Slope value Range: -256 -> 256
Value 019,-256 //Right Bottom Vertex //Slope value Range: -256 -> 256
//----------------------------------------------------------------------------------------
//Slope looks like \|
//Ver 037=
Value 015,BOTTOM //Slope direction
Value 016,256 //Slope value Range: -256 -> 256
Value 017,-256 //Left Bottom Vertex //Slope value Range: -256 -> 256
Value 018,-256 //Left Bottom Vertex //Slope value Range: -256 -> 256
Value 019,256 //Slope value Range: -256 -> 256
//----------------------------------------------------------------------------------------
//Slope looks like \|
//Ver 037=
Value 015,LEFT //Slope direction
Value 016,-256 //Left Bottom Vertex //Slope value Range: -256 -> 256
Value 017,256 //Slope value Range: -256 -> 256
Value 018,256 //Slope value Range: -256 -> 256
Value 019,-256 //Left Bottom Vertex //Slope value Range: -256 -> 256
//----------------------------------------------------------------------------------------
Slope looks like /|
//Ver 037=
Value 015,LEFT //Slope direction
Value 016,256 //Slope value Range: -256 -> 256
Value 017,-256 //Left Top Vertex //Slope value Range: -256 -> 256
Value 018,-256 //Left Top Vertex //Slope value Range: -256 -> 256
Value 019,256 //Slope value Range: -256 -> 256
//----------------------------------------------------------------------------------------
//Slope looks like |\
//Ver 037=
Value 015,RIGHT //Slope direction
Value 016,-256 //Right Top Vertex //Slope value Range: -256 -> 256
Value 017,256 //Slope value Range: -256 -> 256
Value 018,256 //Slope value Range: -256 -> 256
Value 019,-256 //Right Top vertex //Slope value Range: -256 -> 256
//----------------------------------------------------------------------------------------
//Slope looks like |/
//Ver 037=
Value 015,RIGHT //Slope direction
Value 016,256 //Slope value Range: -256 -> 256
Value 017,-256 //Right Bottom Vertex //Slope value Range: -256 -> 256
Value 018,-256 //Right Bottom Vertex //Slope value Range: -256 -> 256
Value 019,256 //Slope value Range: -256 -> 256
//----------------------------------------------------------------------------------------
Quote
I've got to somewhat load FRESH.PCX from PackageX on the engine:
[ATTACH]12948[/ATTACH]
I took almost 3 hours to understand more or less how this baby works, its very buggy a crude, but works. I've been able to easily load other levels too, but correting and figuring out the textures on hand is like hell (thats actually why I've chosen this level, it has only two floor textures XDDDD)
Andrew and Jolly, this work is wonderful, I never though I would test this game in this life, you guys are amazing!
[ATTACH]12948[/ATTACH]
I took almost 3 hours to understand more or less how this baby works, its very buggy a crude, but works. I've been able to easily load other levels too, but correting and figuring out the textures on hand is like hell (thats actually why I've chosen this level, it has only two floor textures XDDDD)
Andrew and Jolly, this work is wonderful, I never though I would test this game in this life, you guys are amazing!
Sadly Many block types are not supported in build 037 for levels like crystal frost.
With some tweaking you should be able to get some of the .def files from the Package X leak to work. but all block types are not supported by build 037 like x shapped blocks and blocks that scale relative to sides.
However some of that can be worked around if you know how to translate block scales between .def files.
Here is some info about creating actors.
Some other collision issues can be Kind of sort of fixed like the Waterfall and badnik collision push issue by replacing the Cubes with actors. When setting up a new actor in the def file just copy the ring actor code and paste it just below and give it a new name like Badnik and than load the badnik's texture on the new actor.
(Actors currently have no collision, so they don't get in Sonic's way when running around the levels. I was going to replace them before the release, but ehh the rings were the only real game breaker.
you'd also have to replace the pixels that represent the cubes in the .pcx map file with the newly created Actors threw the .pcx map file.
Example:
//========================================================================================
// This is the BADNIK Actor!
//========================================================================================
NEW_ACTOR_TYPE "Badnik_001" //Add your custom actor name.
{
Value 001,"SLICER" //Texture Name
Value 002,40960 //Scale Range:0 -> 65535
Value 007,1 //MainActordCount Range: 0 -> 15
}
************************************************
***************BONUS TUTORIAL TIME! *************
************************************************
In photoshop Load the Level_01.pcx
Now go to Image---> Mode ---> Color Table than save out the pallet as an .act file.
Next bring up the Swatches if already not set as a tab. by going to Window ---> Swatches.
Next load the .act file and replace current color swatches.
Find the rings pixel inside the .pcx file. (The rings color is # is 606098, this is so you know which one it is)
In the swatches pallet its the 10th row over from the left and 8th color row down.
The next color after the ring will be your next actor if you chose to set one up inside the .def file. ( and so on )

Circled is the rings actor Index color as seen placed in the map.

Now there is just 1 issue with replacing the badniks with actors in this map, The Badnik is produced by 4 pixels within the .pcx map 2 wide and 2 high.
you may have to tinker with the scale a bit to get something close, or divide up the actor texture into 4 segments and load the new textures in the .def file than apply to 4 actors.
Anyhow this is just to help some of you get started in any modding projects you may have planned. Wish I had time to wright up full on and detailed tutorials of my adventures with the .def files. there are a lot of things that can be done!
Useful information from an older post.
So yeah I've been looking threw a lot of the .def files in both Jolly's Leak and HXC's leak, I Found some comfortable parameters within both leaks. The HXC leak parameters however did not work out of box, since that engine used different coding attributes. I had to multiply or divide the parameters by even numbers. So with a marriage Between both types of parameters the results are very close to what was shown in the E3 video footage.
Things that were tweaked include :bounce effect, air drag, run friction, jump up and down gravities, and a few more.) ( Sure its not 100% authentic but , at least its more comfortable to play than lets say jumping half way up a level with single bounce, or floating down to the ground slowly for 30 seconds. or having the camera right up in Sonic's face. ( for you guys who want something untouched, I think that it may be best to release 2 level packs separately so you can have something to play and something in original state.)
Now, onto the rings and objects news. Many of the levels are using Actual cubes with odd cube collisions for rings and other props like badniks. These can be passed threw from the back to the front, but they have a force that pushes sonic making levels virtually not at all very fun to play threw)
What Jolly has asked and that I've already started was to take Actors (like the rings actor) as found in older .defs and get them moved over to the newer .defs that lack the Actor section.
Thank God that the engine can still load up the actors ( although some broken)
First we need to tell the .def to load textures, than the pallet, than after the Cube section definition area, we need to add the new ring definition code.
Inside the Actor's parameters we can tell It do the following:
Bubble, FollowEdge, Follower, PingPong, Static, or leave it blank and the actor will have no collision.
Some of these seem broken at the moment, Follower and static seem to be reversed actions, and bubble does not work,
The real follower has an interesting action ,( I can not reveal that at the moment, You all will have to wait for future videos)
I've also made a small chart that tells us which color to use for the .pcx layout image maps when drawing Cubes and Actors. The engine uses the index of the color to lay out the objects and not the color itself.
(color is only important for the artist's to use it as a visual when designing layouts. What I mean is for example we could change the color of the index chart in Photoshop and the engine wouldn't give a shit another words)
C starts the cube actors and A starts the Actors pallet index color.
Please note since this image has been screen captured , its color attributes are not the same as a real indexed color and can not be used when editing a real .pcx map file. ( yes I learned the hard way)

Quote
How do I load levels ?! I followed the Packed in readme and it crashed ! Holy Shit !
Oops... I missed a step in the instructions !
To do level Swap trick:
1: Please back up Level_01.def and Level_01.Pcx, then delete or move the originals.
(In case you'd like to roll back to the more playable edited level versions)
\RSRC\PCX for the .DEF files
\RSRC\DEF for the .pcx map files
2: Change TEST.def and TEST.Pcx names respectively to Level_01.def and Level_01.pcx.
3:Find below code in your newly name swapped .def file and change test to Level_01
NEW_QUBIX "QBX0001"
{
Value 001,"test" //Layout Texture
Value 002,"SkyTxtr" //Background Texture
Value 005,Color(248,176,000) //Specular Color Range:0 -> 255
Value 006,Color(008,088,168) //Fog Color Range:0 -> 255
}
4: Boot game as normal and enjoy!
This post has been edited by Andrew75: 06 June 2015 - 02:05 PM


00
