There is a "Now you can play as SONIC!" string in SA:DX PC (at the very least) - maybe at some point in development he WAS intended to be unlocked in some form (like just after the initial cutscene, perhaps?)
Well, it's not much, but I've started work on a rewrite of SADXLVL on the SVN: I don't know why the UVs are broken, probably some difference between Managed DirectX and SlimDX.
Since it's been bumped, I might as well give an update: I've tried comparing the new code to the old code and can't find where the problem is. If anyone wants to look, you can find the code here.
With the help of FraGag, we were able to force sadx to use a 24 bit zbuffer, fixing most of the problems with draw distance. Here are some comparison pics: Before: After: To do this with your copy of sonic.exe, open it up in hex workshop and go to the following address: 0x34A5D80 You'll be replacing the next 0x28 bytes with 4D 00 00 00. before: after: What's going on here is that SADX, when invoking direct3d loops through all of the z-buffer modes available and settles on the first working one. Since the first one in the list is 16 bit, and 16 bit is ugly as fuck, we're forcing it to only try 24 bit. If you're going to make vast, expansive levels for SADX then this process is an absolute must. You'll probably also need to expand the sky box, clip and fog distances as well but those are already partially documented.
In other news, I finally fixed the missing polygons and uvs in the SADXLVL rewrite: But now I have to make it actually do something...
I have been looking for a way to tweak the fog settings like you can do in the debug mode within the "SADX (Preview)" prototype for GameCube. (Specifically, I'm trying to record a video of a cutscene with intense green fog in the background so I can chroma key the whole background out.) Is there a tool for the PC version that does this?
You can use cheat engine and this cheat table: sadx_fog.ct (right-click save as) to mess with the ingame fog and draw distance settings.
Thanks a bunch, works great =] I had never heard of Cheat Engine until now, but it seems like a great tool. Another question: I literally just started playing around with the SADX modding tools, and I feel like I'm getting familiar with them; but when I'm using MainMemory's SADXLVL, I can edit a level just fine within the editor, but no matter what I have tried, I can't get it to actually save my modifications. It appears to save the sonic.exe correctly, and the "Date Modified" field in Explorer updates to the current time, but if I start up sonic.exe or close SADXLVL and open it again, the layouts are the same. No errors or warnings of any sort at any time. Any idea what I might be doing wrong? (If it makes any difference, I now have to use a "patched" sonic.exe file because regrettably, I found my SADX disc 2 popped out of its little plastic CD holder thing inside the case and got all scratched up from being shook around, so I couldn't run/reinstall it =[ I made sure to change the region in the sonic.exe.ini file to the patched European version, though) Thanks again for the help.
Well, are you modifying the geometry of the level, or just the items? If it's just the items, be sure to click the little save button next to the list of characters in the set editor. Otherwise... I dunno.
Here's an image of an upcoming level I'm working on, which should hopefully make it for the hacking contest.
Do you think it would be worthwhile to make an SCHG article for <a href="http://info.sonicretro.org/Sonic Adventure (2010)" target="_blank" style="background: url(http://info.sonicretro.org/images/5/50/Reticon.png) right no-repeat; padding-right: 20px; border-bottom: 1px dotted #3366BB; color: #3366BB; cursor:pointer; text-decoration:none;" class="wiki">Sonic Adventure (2010)</a>? Although initially it would only have about as much content as SCHG:Sonic Adventure DX, I don't have the game, and am not interested in hacking it either.
I don't know really - I don't plan on hacking it either. But somebody might. It's not like the page needs to exist just to verify the existence of the game.
I went ahead and made it anyway: <a href="http://info.sonicretro.org/SCHG:Sonic Adventure (2010)" target="_blank" style="background: url(http://info.sonicretro.org/images/5/50/Reticon.png) right no-repeat; padding-right: 20px; border-bottom: 1px dotted #3366BB; color: #3366BB; cursor:pointer; text-decoration:none;" class="wiki">SCHG:Sonic Adventure (2010)</a>
I think I've figured out a way to make editing SADX easier from a tool-writing perspective. Rather than having each tool read data from the EXE, edit it, try to find enough free space for it, and change the necessary pointers, have a "split" program which takes data from the EXE and puts it in separate files, tools to edit those files, and a "build" program to put the files together into a .data2 segment of the EXE and update the required pointers. All of these programs would be open source as part of the Community SVN Project (or whatever it gets changed to). I'm thinking the INI file would look something like this: Code (Text): [Levels\Emerald Coast\Act 1 Layout.sal] ;filename relocate=1 ;if 1, the data can't be put back in its original location pointers=57DA28 ;a list of all pointers that need to be updated type=LandTable ;optional type of data, for customized extraction/insertion [Characters\Sonic\Physics.bin] relocate=0 address=5154E8 length=84 ;hex
If one were to do that MainMemory, wouldn't that concept make easier to create a tool for working with Adventure fields too? In a sense anyway since they have they additional pointer tables.
Wouldn't it be better to somehow make the EXE load these separate files directly, if that's possible?
It would, but that would require a lot of ASM hacking in the EXE, this method requires none. No, you'd still need to decompile the DLLs to edit those.
Am I the only person who ever tried that? You know, there are objects' names (and other strings) in every sa2 stage. Example (boss_bigfoot): Code (Text): (IDs added for better reading) 0x00 SAMPLE S.... 0x01 SAMPLE M.... 0x02 SAMPLE L.... 0x03 SAMPLESW....(collision volumes - sphere, cylinder) 0x04 LIGHT SW.... 0x05 MODMOD.. 0x06 RING.... 0x07 RINGLINE.... 0x08 RINGCIRC.... 0x09 SPRINGA. 0x0a SPRINGB.(*) 0x0b 3SPRING.(*) 0x0c KASOKU..(*dashpanel*) 0x0d SAVEPOINT...(*) 0x0e SWITCH..(* behind Sonic) 0x0f ITEMBOX.(*) 0x10 ITEMBOXAIR.. 0x11 BALLOON. 0x12 IRONBALL2... 0x13 BIGJUMP. 0x14 ROCKETK. 0x15 MISSSILE.... 0x16 BUNCHIN. 0x17 CHAOPIPE.... 0x18 ORI. 0x19 CONTWOOD.... 0x1a CONTIRON.... 0x1b SKULL... 0x1c UDREEL.. 0x1d GOALRING.... 0x1e EMERALD. 0x1f DYNAMITE....(*) 0x20 LEVUPDAI....(*) 0x21 E KUMI.. 0x22 E_EMI...(*) ... etc (I marked with * everything visible on the screenshot) And since everyone knows that format is basically the same as SA1's, there is almost nothing to figure out bout objects placement. I am sure it is also possible to port those gamecube set files to the dreamcast version. I'll try that later. Anyone willing to go on? PS: although this can be found Code (Text): ... 0x54 FENCEL.. 0x55 BIG THE CAT. 0x56 SIGNBOARD... ... his model is probably missing or something (he is still used in set files but there is nothing ingame). Of course there is a possibility to restore him. If my guesses are correct it should be relatively easy to "port" objects between stages. We'll see when (and if) I work out format a little bit more.