Sonic X-treme Textures and Defs
General Discussion & Hacking

I'm not too far along with my viewer yet, but I figured a few people might be interested in the level export feature even at this point. In the future, I want this engine to be able to view everything in the levels, along with being able to run around the levels as sonic and once I've gotten a good viewer going, I don't see that being too hard.

Current Bugs:1. Grey bar at the top of levels, this is caused by a problem in PCX file format loading, I'll get it fixed at some point...2. Level export doesn't support materials, not sure how to get that working, I thought I figured it out a few minutes ago... I was incorrect.3. Generally, not loading stuff yet... well, it loads the stuff, the engine just doesn't do anything with it. I'll really get on that this weekend.

What to do if it doesn't work:I'm using the very very latest DirectX, so if the program isn't working, there's a fairly good chance that some part of your DX install is outdated. So, run the DX web installer:

Just so you know, DirectX updates every couple of months without updating the version number, so if in doubt run the updater.

Edit: Oh, and I wrote this post for a different forum and pasted it here, so it'll probably read alittle weird.Edit 2: Download link updated. Fixed the release build issues, should definitely work on all computers now.

I'm not too far along with my viewer yet, but I figured a few people might be interested in the level export feature even at this point. In the future, I want this engine to be able to view everything in the levels, along with being able to run around the levels as sonic and once I've gotten a good viewer going, I don't see that being too hard.

So is it not far-fetched to say that you may be able to recreate X-treme in its whole?

I mean, the gameplay wouldn't be exact, but I can look at the movement in old videos and try to use that as a basis. The rest though, I don't see why not.

PS I've got 3 ongoing projects at the moment, so I'm putting as much time into this as possible, but I'm not gonna be working on it every day... I say 3 projects, I should be working on 3 projects (I just got added to the Dolphin Emu project and I should really do something for that so I don't get kicked out) but this and a networked game I'm doing with a friend has gotten me hooked.

I'm not too far along with my viewer yet, but I figured a few people might be interested in the level export feature even at this point. In the future, I want this engine to be able to view everything in the levels, along with being able to run around the levels as sonic and once I've gotten a good viewer going, I don't see that being too hard.

So is it not far-fetched to say that you may be able to recreate X-treme in its whole?

Sonic xtreme never was a whole complete game in the first place, besides the PC levels ( which are the levels that Uhyve is ripping)There were boss stages as well as other areas of the game which haven't been shown to the public in complete form, and are not included with SaniK's DEF viewer release.For the unreleased stuff,,,,all we have to go by are glimpses of what has been shown in Magazines and videos, ( which isn't much)We,ve recreated some of that from scratch, including textures and level geometry, while not perfect, they are pretty close.

QUOTE (Uhyve @ Nov 21 2010, 08:07 PM)

I mean, the gameplay wouldn't be exact, but I can look at the movement in old videos and try use that as a basis. The rest though, I don't see why not.

PS I've got 3 ongoing projects at the moment, so I'm putting as much time into this as possible, but I'm not gonna be working on it every day... I say 3 projects, I should be working on 3 projects (I just got added to the Dolphin Emu project and I should really do something for that so I don't get kicked out) but this and my other one have gotten me more hooked.

Way to go ! it's looking very good ! Hey, I wouldn't worry to much about working on a Sonic Xtreme game engine, ( not to discourage or anything)But we've gotten quite a bit of one done already, including The Fisheye camera, level rotations, sonic's movement, and even part of a Level editor!Seems it would be a wast of time on your end, especially with the 3 projects you have going down already.

However I think a combined effort with finishing up on your exporter, and using the models for our engine, we could get the fan game put out much faster. (I was modeling everything from scratch before)Besides worrying about textures, it seems block scales are off, some blocks are different scales, not all cubes,.for example ( tossing out random numbers here) some blocks may be 75% of the cube,while others 50% and 25%

May be a good idea to contact SANiK for info on what block scales refer to what pixels, as well as what blocks should be ramps. and objects such a rings, enemies, ecthe may have it documented somewhere.

However I think a combined effort with finishing up on your exporter, and using the models for our engine, we could get the fan game put out much faster. (I was modeling everything from scratch before)Besides worrying about textures, it seems block scales are off, some blocks are different scales, not all cubes,.for example ( tossing out random numbers here) some blocks may be 75% of the cube,while others 50% and 25%

May be a good idea to contact SANiK for info on what block scales refer to what pixels, as well as what blocks should be ramps. and objects such a rings, enemies, ecthe may have it documented somewhere.

Yeah, I'm definitely just working on getting level viewing/exporting going at the moment, I'm trying not to think about a game too much at this point. Plus, if it ever comes down to it, comparing what our two projects are aiming for, you've got a bit of a different endgame than me. I'm just going for interpreting the leaked levels, which are kinda broken, whereas you seem to be trying to recreate the Xtreme experience, which would probably be much cooler (which I'm fine with btw, best way to get stuff done on the Internet is through collaboration).

But yeah, while I've not got the cube scaling in yet (which I'm betting makes the exporting kinda useless at the moment), I actually just had a huge facepalm/breakthrough moment. I was looking at the layout PCX files in photoshop (they use indexed colour instead of the normal RGB) and I just realised that the first colour in the index is the one that means that there is no block on that pixel (at the moment, my engine is just using a hacky way of figuring that out). But now, because of that tiny detail, I'm certain that the index is how blocks are assigned. I'm going to bed soon though so I probably won't have an update tonight, but still, finally some progress.

PS Ibbod0 (on Senntient) pointed it out to me that the PCX files were indexed a while ago, but I tried using that knowledge and failed, then totally forgot about it.

However I think a combined effort with finishing up on your exporter, and using the models for our engine, we could get the fan game put out much faster. (I was modeling everything from scratch before)Besides worrying about textures, it seems block scales are off, some blocks are different scales, not all cubes,.for example ( tossing out random numbers here) some blocks may be 75% of the cube,while others 50% and 25%

May be a good idea to contact SANiK for info on what block scales refer to what pixels, as well as what blocks should be ramps. and objects such a rings, enemies, ecthe may have it documented somewhere.

Yeah, I'm definitely just working on getting level viewing/exporting going at the moment, I'm trying not to think about a game too much at this point. Plus, if it ever comes down to it, comparing what our two projects are aiming for, you've got a bit of a different endgame than me. I'm just going for interpreting the leaked levels, which are kinda broken, whereas you seem to be trying to recreate the Xtreme experience, which would probably be much cooler (which I'm fine with btw, best way to get stuff done on the Internet is through collaboration).

But yeah, while I've not got the cube scaling in yet (which I'm betting makes the exporting kinda useless at the moment), I actually just had a huge facepalm/breakthrough moment. I was looking at the layout PCX files in photoshop (they use indexed colour instead of the normal RGB) and I just realised that the first colour in the index is the one that means that there is no block on that pixel (at the moment, my engine is just using a hacky way of figuring that out). But now, because of that tiny detail, I'm certain that the index is how blocks are assigned. I'm going to bed soon though so I probably won't have an update tonight, but still, finally some progress.

PS Ibbod0 (on Senntient) pointed it out to me that the PCX files were indexed a while ago, but I tried using that knowledge and failed, then totally forgot about it.

Hey, yeah it always seems to be the smallest things that help out the most.I'm in the process of buying a house right now , so our project could slow down for a few weeks, at least.

Got the weird PCX texture loading (bar at the top of levels) issue fixed... wanna see the code that was so difficult to figure out?

After loading the PCX image dimensions from the file header:height++;width++;

Yeah... spent hours rewriting that thing yesterday...

Just gotta get RGB based files loading now, then it's just easy boring coding assigning stuff to stuff. I got the palette loading properly aswell, so that's cool. I was actually looking through the palette, and it seems that the first palette entry is the empty block color, the second palette color is the first NEW_CUBE entry, the third palette color is the second NEW_CUBE entry, seriously, it's looking like it's gonna be that easy. If I figure out the RGB loading thing, I'm maybe a few days work from getting a working viewer. Unfortunately, not sure how much time I'm gonna have over the next week either.

PS I now have all textures and palettes loading in the background. Once I get Cube definitions loading (slightly time consuming and really boring), this thing is gonna start looking a whole lot like Sonic Xtreme.

Sorry about double post, but I kinda wanna bump the thread for a minute.

Anyone know how the scales work in the DEF files? They're labelled Size/Offset, so do I move them or scale them, quite confusing. I'll probably figure it out eventually but it's freezing here (17°C inside, -5°C outside) and it's distracting me from programming, so I figured maybe someone else might have some insight. This is what the scales look like:

The first value is an identifier to let the executable know what variable is being given, and the second is the actual scale, but I can't exactly scale the cubes by -64... usually scaling works by multiplying an objects size by an variable, so if you want something half the size, you multiply by 0.5, but with this, it's got me all confused. I mean, 64/256 is 0.25 which sounds like a sane answer (256 is the max 8bit number). Hell, this is the DEF entry for a ring, so it even makes sense to make the cubes super small on the Z axis, but it doesn't look like it would work for the rest of the cubes...

PS Has anyone visited this site on a PS3? There's an... odd forum background. I thought the site had been hacked but it's been the same for a while now.PPS Screen of working PCX loading.

I'd thought it'd be the offset of the block, going by your comment there. I mean, -2097264 doesn't exactly make sense for a scale, anyway (aside from the obvious negative scale issues, it doesn't appear to be especially related to any number).

How are those numbers stored? I'm assuming they weren't naive enough to store them as a string. 32-bit signed integer? Floating point? (Unlikely floating point; big-endian for that bit sequence produces NaN, little-endian produces -1.0092488604318212e-28, which is a little silly.)

Yeah, they've got to be offsets... otherwise it's gonna take a little figuring out. Though, now I take a look at the newest version of SANiKs viewer, it does look like those values control scale somehow.

The little bit I copied into my last post is actually directly copied and pasted from the level files, but it does seem like they were using signed ints.

Edit: I seem to have hijacked this thread. I'm gonna make a project topic I think.