03-19-2019, 07:50 PM
THE GOAL OF THIS RESEARCH :
https://www.vg-resource.com/thread-29688.html
BASIC INFO :
Originally for the Dreamcast.
Developed by Sonic Team, published by SEGA.
Ported to GC and PC in 2001 and 2012.
KNOWN (FILE FORMATS) :
Uncompressed (not in an archive, anyway):
ADX : Dreamcast audio (songs)
MLT : Dreamcast audio (sfx)
SFD : Video file
M1V : Technically a video file, but often used for particle effects (Chaos Control)
Compressed files:
PAK: Compressed (various) files.
PRS: Compressed (various) files.
Files contained in PRS/PAK:
DDS (Direct Draw Surface): Textures (Microsoft's format, interestingly)
Ninja Chunk: Model format (characters, objects, and stages)
HOW DATA IS STRUCTURED :
Folders:
root (Sonic Adventure 2)/resource/gd_PC/
in gd_PC:
ADX: ADX audio files
Debug: Debug Font
DLL: DLLs
event: Cutscene/event files
Font: font (which isn't actually used for most things, as text is usually prerendered)
Message: Messages with button icons
MessageK: Messages with key icons
MLT (Manatee Library): Sound effects
MPB: More sound effects
PRS: Texture/Stage/Model/Main Menu and Stage Map Files (in the PAK format)
SAVEDATA: Save data
SOC: 2P and Menu Textures
PRS files in root: particle and effect textures, PRS may have been used on DC.
SET/BIN files: Stage layouts
Objects are included in the archive for every instance they're used (so stages that use the same items have duplicates in their folder).
This is likely what resulted in some cutscenes using Dreamcast models and others using higher-poly ones.
From vg-resource:
"Sound Effect files are stored in the files with SE in beginning of the filename.
The files with EH are for the Emerald Hunt hints that come from the monitors. The MH files, if memory serves, are for Omochao and monitor hints in levels.
All of the SET files are files that place objects in a level. If you're familiar with SADX modding, they're the same thing. SA2 just happens to use them for a lot more stuff than just objects.
All stage data is stored in STG file names with just the stage ID attached. The _FOG, etc, files are for handling other aspects of the stage.
All character data is stored inside any files with a character name in it and MDL also in the filename. Here's a list of all of the character files.
sonicmdl Sonic
teriosmdl Shadow
knuckmdl Knuckles
rougemdl Rouge
twalkmdl Tails Mech
ewalkmdl Eggman Mech
eggmdl Eggman
milesmdl Tails
ssonicmdl Super Sonic
sshadowmdl Super Shadow
==Alt Costumes==
psosonicmdl PSO Sonic Costume
psoshadowmdl PSO Shadow Costume
bknuckmdl Black Knuckles Costume
brougemdl Black Rouge Costume
twalk1mdl Tornado 1 Costume
ewalk1mdl Camo Costume
==Alt Characters==
amymdl Amy
metalsonicmdl Metal Sonic
ticalmdl Tikal
chaos0mdl Chaos 0
cwalkmdl Chao Walker
bwalkmdl Big the Cat Walker
==Halloween Costumes==
hsonicmdl Sonic with Pumpkin
hshadowmdl Shadow with Bones
hknuckmdl Knuckles with Bones
hrougemdl Rouge the Witch
htwalkmdl Tails Pumpkin Colors
hewalkmdl Eggman Pumpkin Colors
==Christmas Costumes==
xsonicmdl Sonic as Santa
xshadowmdl Shadow as Santa
xknuckmdl Knuckles with Ornaments
xrougemdl Rouge Christmas Colors
xtwalkmdl Tails Christmas Colors
xewalkmdl Eggman Christmas Colors
"
Stage files/data addresses:
http://info.sonicretro.org/SCHG:Sonic_Ad..._Locations
RIPPING STAGE DATA :
MainMemory's SALVL can rip level geometry.
The issue is with things like enemies that store data making use of the Ninja format's cache.
Animated objects do not read properly:
https://www.vg-resource.com/archive/inde...29688.html
I suspect that some enemies like the Artificial Chaos Units may actually not use skeletal animations.
Current code used to load model vertices:
https://github.com/sonicretro/sa_tools/b...ch.cs#L200
Video tutorial (this is for the Dreamcast version):
https://www.youtube.com/watch?v=oB1ZYNp9bEc
EVERYTHING BELOW THIS POINT IS MISCELLANEOUS, PERSONAL RESEARCH, AND/OR SPECULATION
Sonic Adventure 2's shadows on Dreamcast do not use the same LANTERN engine as Sonic Adventure 1.
Certain areas have prerendered shadows (trees in City Escape, and the bridge in the limo cutscene).
The Dreamcast was the only console to support Order-Independent-Transparency on the hardware level.
This means that it could load a series of transparent items without much problem.
The GameCube did not, so places requiring transparency (for the most part) had to have textures edited or changed.
Texture fighting can be seen on Super Sonic's body and when Dr.Eggman shines the flashlight (the windshield appears over the light).
Character lighting is duller and less detailed that the Dreamcast version, likely because of hardware differences that could make the same shading difficult to implement.
In the file resource/SHADER/win32/obj.pak, there are several WPU/WVU files.
According to YouTuber Darío, the same file format is used in Generations for the same purpose, and can be read using the Windows SDK.
"Done by carefully implementing the WPU/WVU files from the game. I had to crack all the related shader files to get the right indices for knowing which registers to pass the parameters to and what shader to use in the correct occasion. There's quite a lot of inaccuracies and non-working shaders due to not having implemented most of the buffers / parameters it needs just yet, but this is what can be previewed so far. The WPU/WVU files were disassembled to HLSL ASM with the Windows SDK."
Video of SonicGLVL here:
https://www.youtube.com/watch?v=1OorZ6Sjfmg
I believe that it is actually a very similar format, not just the same extension, because the PC version actually repackages Windows DirectX (graphics) libraries.
The (Generations) shaders say "Generated by Microsoft ® HLSL Shader Compiler 9.29.952.3111"
SonicGLvl source code can be found here:
https://github.com/DarioSamo/libgens-son...GI.wpu.asm
Looking up HLSL Shader Compiler returns only source code for converting HLSL to .DIRECTX shaders.
THE WINDOWS SDK:
I saw no mention of shaders, HLSL, or the WVU/WPU format on Wikipedia, but here's the SDK:
https://developer.microsoft.com/en-us/windows/downloads
POSSIBLE METHOD FOR OPENING MODELS:
Programmer Rich Whitehouse has created a program called Noesis (I think the name means something like 'enlightenment' in Greek, not sure) that apparently supports the Ninja Chunk format. It is open source, but I have yet to test it.
Note: Not direct download:
http://www.richwhitehouse.com/index.php?...sv4395.zip
NOTE: I have been informed (see reply) that there is no connection between the RenderWare Engine and Sonic Adventure 2.
The RenderWare Engine was used for Sonic Heroes:
https://gta.fandom.com/wiki/RenderWare
Shaders (not model shaders, just overall ?Framebuffer? (applied after everything else is rendered) shaders) copied from GTA: San Andreas (which also uses the RenderWare engine) work in SA2:B (see video)
https://youtu.be/Yrjm-fRYpIM
Note: to fix the bug that he refers to in the description, open the DLLs in a Hex Editor and then remove/edit the text lines that match the ones that appear at the top left (In Resource Hacker, which isn't a hex editor, I know, if it asks to recompile the code, select yes).
ANY INFO ON THE NINJA CHUNK MODEL FORMAT IS WELCOME
https://www.vg-resource.com/thread-29688.html
BASIC INFO :
Originally for the Dreamcast.
Developed by Sonic Team, published by SEGA.
Ported to GC and PC in 2001 and 2012.
KNOWN (FILE FORMATS) :
Uncompressed (not in an archive, anyway):
ADX : Dreamcast audio (songs)
MLT : Dreamcast audio (sfx)
SFD : Video file
M1V : Technically a video file, but often used for particle effects (Chaos Control)
Compressed files:
PAK: Compressed (various) files.
PRS: Compressed (various) files.
Files contained in PRS/PAK:
DDS (Direct Draw Surface): Textures (Microsoft's format, interestingly)
Ninja Chunk: Model format (characters, objects, and stages)
HOW DATA IS STRUCTURED :
Folders:
root (Sonic Adventure 2)/resource/gd_PC/
in gd_PC:
ADX: ADX audio files
Debug: Debug Font
DLL: DLLs
event: Cutscene/event files
Font: font (which isn't actually used for most things, as text is usually prerendered)
Message: Messages with button icons
MessageK: Messages with key icons
MLT (Manatee Library): Sound effects
MPB: More sound effects
PRS: Texture/Stage/Model/Main Menu and Stage Map Files (in the PAK format)
SAVEDATA: Save data
SOC: 2P and Menu Textures
PRS files in root: particle and effect textures, PRS may have been used on DC.
SET/BIN files: Stage layouts
Objects are included in the archive for every instance they're used (so stages that use the same items have duplicates in their folder).
This is likely what resulted in some cutscenes using Dreamcast models and others using higher-poly ones.
From vg-resource:
"Sound Effect files are stored in the files with SE in beginning of the filename.
The files with EH are for the Emerald Hunt hints that come from the monitors. The MH files, if memory serves, are for Omochao and monitor hints in levels.
All of the SET files are files that place objects in a level. If you're familiar with SADX modding, they're the same thing. SA2 just happens to use them for a lot more stuff than just objects.
All stage data is stored in STG file names with just the stage ID attached. The _FOG, etc, files are for handling other aspects of the stage.
All character data is stored inside any files with a character name in it and MDL also in the filename. Here's a list of all of the character files.
sonicmdl Sonic
teriosmdl Shadow
knuckmdl Knuckles
rougemdl Rouge
twalkmdl Tails Mech
ewalkmdl Eggman Mech
eggmdl Eggman
milesmdl Tails
ssonicmdl Super Sonic
sshadowmdl Super Shadow
==Alt Costumes==
psosonicmdl PSO Sonic Costume
psoshadowmdl PSO Shadow Costume
bknuckmdl Black Knuckles Costume
brougemdl Black Rouge Costume
twalk1mdl Tornado 1 Costume
ewalk1mdl Camo Costume
==Alt Characters==
amymdl Amy
metalsonicmdl Metal Sonic
ticalmdl Tikal
chaos0mdl Chaos 0
cwalkmdl Chao Walker
bwalkmdl Big the Cat Walker
==Halloween Costumes==
hsonicmdl Sonic with Pumpkin
hshadowmdl Shadow with Bones
hknuckmdl Knuckles with Bones
hrougemdl Rouge the Witch
htwalkmdl Tails Pumpkin Colors
hewalkmdl Eggman Pumpkin Colors
==Christmas Costumes==
xsonicmdl Sonic as Santa
xshadowmdl Shadow as Santa
xknuckmdl Knuckles with Ornaments
xrougemdl Rouge Christmas Colors
xtwalkmdl Tails Christmas Colors
xewalkmdl Eggman Christmas Colors
"
Stage files/data addresses:
http://info.sonicretro.org/SCHG:Sonic_Ad..._Locations
RIPPING STAGE DATA :
MainMemory's SALVL can rip level geometry.
The issue is with things like enemies that store data making use of the Ninja format's cache.
Animated objects do not read properly:
https://www.vg-resource.com/archive/inde...29688.html
I suspect that some enemies like the Artificial Chaos Units may actually not use skeletal animations.
Current code used to load model vertices:
https://github.com/sonicretro/sa_tools/b...ch.cs#L200
Video tutorial (this is for the Dreamcast version):
https://www.youtube.com/watch?v=oB1ZYNp9bEc
EVERYTHING BELOW THIS POINT IS MISCELLANEOUS, PERSONAL RESEARCH, AND/OR SPECULATION
Sonic Adventure 2's shadows on Dreamcast do not use the same LANTERN engine as Sonic Adventure 1.
Certain areas have prerendered shadows (trees in City Escape, and the bridge in the limo cutscene).
The Dreamcast was the only console to support Order-Independent-Transparency on the hardware level.
This means that it could load a series of transparent items without much problem.
The GameCube did not, so places requiring transparency (for the most part) had to have textures edited or changed.
Texture fighting can be seen on Super Sonic's body and when Dr.Eggman shines the flashlight (the windshield appears over the light).
Character lighting is duller and less detailed that the Dreamcast version, likely because of hardware differences that could make the same shading difficult to implement.
In the file resource/SHADER/win32/obj.pak, there are several WPU/WVU files.
According to YouTuber Darío, the same file format is used in Generations for the same purpose, and can be read using the Windows SDK.
"Done by carefully implementing the WPU/WVU files from the game. I had to crack all the related shader files to get the right indices for knowing which registers to pass the parameters to and what shader to use in the correct occasion. There's quite a lot of inaccuracies and non-working shaders due to not having implemented most of the buffers / parameters it needs just yet, but this is what can be previewed so far. The WPU/WVU files were disassembled to HLSL ASM with the Windows SDK."
Video of SonicGLVL here:
https://www.youtube.com/watch?v=1OorZ6Sjfmg
I believe that it is actually a very similar format, not just the same extension, because the PC version actually repackages Windows DirectX (graphics) libraries.
The (Generations) shaders say "Generated by Microsoft ® HLSL Shader Compiler 9.29.952.3111"
SonicGLvl source code can be found here:
https://github.com/DarioSamo/libgens-son...GI.wpu.asm
Looking up HLSL Shader Compiler returns only source code for converting HLSL to .DIRECTX shaders.
THE WINDOWS SDK:
I saw no mention of shaders, HLSL, or the WVU/WPU format on Wikipedia, but here's the SDK:
https://developer.microsoft.com/en-us/windows/downloads
POSSIBLE METHOD FOR OPENING MODELS:
Programmer Rich Whitehouse has created a program called Noesis (I think the name means something like 'enlightenment' in Greek, not sure) that apparently supports the Ninja Chunk format. It is open source, but I have yet to test it.
Note: Not direct download:
http://www.richwhitehouse.com/index.php?...sv4395.zip
NOTE: I have been informed (see reply) that there is no connection between the RenderWare Engine and Sonic Adventure 2.
The RenderWare Engine was used for Sonic Heroes:
https://gta.fandom.com/wiki/RenderWare
Shaders (not model shaders, just overall ?Framebuffer? (applied after everything else is rendered) shaders) copied from GTA: San Andreas (which also uses the RenderWare engine) work in SA2:B (see video)
https://youtu.be/Yrjm-fRYpIM
Note: to fix the bug that he refers to in the description, open the DLLs in a Hex Editor and then remove/edit the text lines that match the ones that appear at the top left (In Resource Hacker, which isn't a hex editor, I know, if it asks to recompile the code, select yes).
ANY INFO ON THE NINJA CHUNK MODEL FORMAT IS WELCOME