Hi everyone,
I'm currently reverse-engineering the DVOJ file format, which is used to store compiled shader object files. This format has some interesting debug information compared to the more common SHBIN/DVLB format. Hence, by REing it I imagine we can get some nice insights into the official shader compilation process (without looking at the SDK, of course...), which in turn might be useful for developing our own shader compilers in the future. DVOJ files use file extensions like "obj", "vso", or "gso", and more importantly always start with the character sequence "DVOJ" (hence the format name).
However, while SHBIN shaders can be found in lots of games, I have yet a hard time to find more applications which ship with DVOJ files. Here is a list of titles known so far:
My question to the community is: Can we expand this list so that I can acquire more data points for testing? For testing if any of your titles contain a DVOJ file, you will need to extract its romfs and exefs from a decrypted game image, and then perform a fulltext search for the byte sequence "DVOJ" on all files. This is somewhat technical, so I'll do my best to boil it down for users who have ctrtool:
If you're sure you did everything correctly, you can also report applications which don't include any DVOJs, so that others can spend their time on testing other games than that
Thanks in advance!
Games tested, but which don't contain any DVOJ content:
I'm currently reverse-engineering the DVOJ file format, which is used to store compiled shader object files. This format has some interesting debug information compared to the more common SHBIN/DVLB format. Hence, by REing it I imagine we can get some nice insights into the official shader compilation process (without looking at the SDK, of course...), which in turn might be useful for developing our own shader compilers in the future. DVOJ files use file extensions like "obj", "vso", or "gso", and more importantly always start with the character sequence "DVOJ" (hence the format name).
However, while SHBIN shaders can be found in lots of games, I have yet a hard time to find more applications which ship with DVOJ files. Here is a list of titles known so far:
- OlliOlli ships with four tiny DVOJs (debugfont.vso, font.vso, minihud.vso, simple_tex.vso)
- Wario Land 3 ships with a file called nwgfx_ParticleGShader.obj
My question to the community is: Can we expand this list so that I can acquire more data points for testing? For testing if any of your titles contain a DVOJ file, you will need to extract its romfs and exefs from a decrypted game image, and then perform a fulltext search for the byte sequence "DVOJ" on all files. This is somewhat technical, so I'll do my best to boil it down for users who have ctrtool:
- ctrtool <game_image> --romfs=romfs_file --exefsdir=exefs_dir
- ctrtool romfs_file --romfsdir=romfs_dir
- Linux users: "grep DVOJ exefs_dir/*; find romfs_dir -type f -print | xargs grep DVOJ". If either of these commands prints any matches, please report the title in this thread (along with the filenames that matched). If the output is empty, the tested title doesn't ship with any DVOJ files.
- Windows users: I don't know any nice way to do the same check (suggestions welcome!); I might eventually take an hour of to write a small utility application to for that instead. Until then, maybe try to look out for directories called "shader" in your romfs and files ending with ".obj" or ".gso" or ".vso". You should be able to open these files in notepad then, and you'll see a lot of gibberish, but if it's indeed what I'm looking for, the first four characters should be "DVLE".
If you're sure you did everything correctly, you can also report applications which don't include any DVOJs, so that others can spend their time on testing other games than that
Thanks in advance!
Games tested, but which don't contain any DVOJ content:
- Pokemon Alpha Sapphire
- Steel Diver Sub Wars
- Zelda OoT 3D
Last edited by neobrain,