-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OVL - Support Disneyland Adventures #55
Comments
File format specification is done here: https://github.com/OpenNaja/pyffi_ext eg. the OVL header data layout: eg. the main OVL reading function: Good luck and keep us posted! |
There is probably a different number of Bytes per file entry. You'll want to figure out what was added or removed, and edit the File entry struct accordingly. |
You can find what the correct offsets are by looking at the name block. |
So turns out there was an extra buffer of 4 bytes (uint) of 0s between the names and the Mime. After correcting for that, I can parse up until the archive now. I've also learned that this archive data isn't compressed. The uncompressed_size is 0 for every archive entry (I had 64 archives that each made up the rest of the file, instead of just the first one). So that was simple to fix to not zlib decompress. I'm now having issues with header_type mismatch Any thoughts at this point? I don't think I'm blocked as of yet but would appreciate any insights. |
You can have it dump the decompressed data as DAT. Make sure that's "readable" and not zlib gibberish. |
Are there any zlib specific markers I could look for? I'm not familiar with the underlying workings of zlib so I wasn't sure if there was a header I could look for. |
Well data that is still zlib-compressed will be cryptic gibberish, while correctly decompressed data will have some regularity due to the byte raster and does often contain readable plain text in some spots. Compressed zlib data does have two header bytes that you can look for to make sure it's trying to decompress at the right spot. These are usually but not always one of the following: |
Any luck with these? We've recently improved the code base to be more flexible, hoping to expand it to more known game versions. |
I got pretty stalled and ran out of time. I hope to get back to working on it when some of my other projects wrap up. |
Hello, Here is error mesage and *.ovl files from the game: |
Yeah, probably an easy fix. |
Disneyland adventure txts can now be extracted! |
Great work, buddy. |
OVS files are just additional data for the OVL and are opened automatically if the corresponding OVL is opened. |
Sorry, man. I do not notice that. Thank you very much. |
Pushed a speedup for txt extraction. |
Those changes help a lot for getting more extraction working. I'm tempted to pick this back up now... |
Version I used: Latest Master (Also tried the latest release, same result) Is Lua file extraction / injection supported for Disneyland Adventures yet? I always get some sort of binary file as output when trying to extract Lua files from the Game OVL's. I also sometimes get Errors like this: Am I doing something wrong / using the tool in a wrong way? |
No, not supported. |
Alright thanks :) Tried my best to find some sort of indicator over the last 2-3 days as well for a bit, but no luck. If I should find something, will keep you posted. What I have so far (might or might not be common knowledge already) # Unknown. (Database.MainAvatar)
44 61 74 61 62 61 73 65 2E 4D 61 69 6E 41 76 61 74 61 72
# Probably as terminator for string
00
# Some path maybe where the file was located? (D:\QA\KDA_HD\Project_KDA_HD\Game\Res\GameMain\Lua\Database\MainAvatar.lua)
44 3A 5C 51 41 5C 4B 44 41 5F 48 44 5C 50 72 6F 6A 65 63 74 5F 4B 44
41 5F 48 44 5C 47 61 6D 65 5C 52 65 73 5C 47 61 6D 65 4D 61 69 6E 5C
C 75 61 5C 44 61 74 61 62 61 73 65 5C 4D 61 69 6E 41 76 61 74 61 72 2E
6C 75 61
# Probably as terminator for string
00
# Unknown
01 E4 29
# Unknown Maybe terminator or data
00 00
# Unknown
56 4C 69 07
# File seems to start here
# Lua Compiler Header (https://stackoverflow.com/questions/32968051/determine-compiler-version-of-compiled-lua)
1B 4C 75 61 51 01 04 04 04 00 00 00 |
Can you provide an ovl that loads and includes LUAs? If the lua version matches, our decompiler should handle them correctly if the meta data is removed |
This OVL has a File: SpatialDatabaseTest.zip Hopes this helps somehow. |
The code now extracts the correct binary lua data, however it is a different, older LUA version (LuaQ = Lua 5.1). The fork of luadec used for the newer games only works with Lua 5.3. So if you can find a working luadec, we can implement that. |
I've also fixed FGM materials. |
TEX files also extract properly now and decode to png! |
So I tried to build Not sure if I am missing something or not. Will look a bit deeper into this tomorrow though. |
I have no clue on luadec. It's a total PITA. |
Yeah, I used the latest version of master to extract. Also checked with a Hex Editor so the filed looked good extraction wise. After some trial and error and looking at Lua bytecode a bit closer, I noticed that the header in the Lua files seems a bit off... For a normal Lua file (64-bit, double number type), it would be:
But the header for the DLA Lua's is:
Which is super off. The endianness value for example could never be
Also validated the extraction because my first thought was it might have missed a byte or two for whatever reason, but this is not the case. The OVL contains the same header. Did check some other OVL's as well, and the Lua files inside had the same header. Will take a closer look at it when I got some spare time in the next couple of days, but thought I'd update with my findings. |
Some more information I found out today, thought I'd document: Lua Version: Custom Header (
So from that Header that means we have: Values not in the Header because they are fixed: Those are my current findings. With those values, one can at least load the VM Instructions. Modified |
Loading constants is fixed now. For documentation purposes, the constants "Block" in the DLA Lua's is constructed as follows: # Number of Constants
19 00 00 00
# String
06
# Padding for 8 byte blocks
00 00 00
# size_t Length
03 00 00 00 00 00 00 00
# Value -> _G
5F 47 00
# String
06
# Padding for 8 byte blocks
00 00 00 00
# size_t Length
04 00 00 00 00 00 00 00
# Value -> api
61 70 69 00
# String
06
# Padding for 8 byte blocks
00 00 00
# size_t Length
06 00 00 00 00 00 00 00
# Value -> table
74 61 62 6C 65 00
... Note: They use a custom Constant Type ( They also add padding for 8 bytes blocks after each instruction type. Meaning for e.g. type |
Is it possible yet to rip the meshes from the whole park itself, or its areas? |
Nope. Some ovl files from DLA can not be loaded. We have not investigated models yet. If you provide an OVL with models, we may. |
Hopefully I'm not wrong which file includes models but .ms2 files are listed in this ovl though greyed out and not importing to blender giving an error stating "padding_too_long" |
|
It appears that some (but not all) OVS files are somehow compressed as a whole, and have to be decompressed before the data for each archive can be read. QuickBMS bulk decompression test was not successful. |
On Wed, 15 Mar 2023 at 16:28, HENDRIX-ZT2 ***@***.***> wrote:
It appears that some (but not all) OVS files are somehow compressed as a
whole, and have to be decompressed before the data for each archive can be
read. QuickBMS bulk decompression test was not successful.
—
Reply to this email directly, view it on GitHub
<#55 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AG42R75ES2AOBG73MFMF753W4HN3XANCNFSM4ON76X4Q>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
I’ll have a look, there might be a flag in the header indicating when it is.
|
I've got this ovl of the small world park area that I've been trying to get decompiled but it keeps giving list index out of range errors for some reason |
I have a bunch of OVL files from a legit copy of the game if anyone's up to reversing them. Replacing Black Barty with Johnny Depp would be a priority, for one. |
We have a copy of the game, don't worry about it!.
Priority is extremely low tho, older versions of the engine usually fall in
the back burner.
…On Sat, 2 Sep 2023, 06:05 Huck Jones, ***@***.***> wrote:
I have a bunch of OVL files from a legit copy of the game if anyone's up
to reversing them. Replacing Black Barty with Johnny Depp would be a
priority, for one.
—
Reply to this email directly, view it on GitHub
<#55 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AG42R72CIO4FTISBGGIVHALXYKWBDANCNFSM4ON76X4Q>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
I see, I just wish I could mod the game somehow tho. |
Do you possibly have the files for the SmallWorldLand area that are extractable? The files in SpiralBrother's post a few messages (like he stated) are innaccessable. So I was wondering if you have those files that CAN be extracted properly. |
It appears that there is no 'working' version of those files, they are just different from the usual format for unknown reasons. |
that's what I've been hearing about some other files, perhaps there is some way the format can be identified (and put to use for the program) |
Sure, with enough dedication. We looked for a while but didn't find it. Feel free to investigate and report back! |
Can you put the splash mountain files in a google drive please? |
I've pulled out the OVL files from the game Disneyland Adventures. Trying to open the files with the tool results in a ton of
list index out of range
and
Error -3 while decompressing data: invalid code lengths set
Errors. No files extract successfully. It's likely that the files are slightly different format.
I see several references to octl files in some debug files that were added in the Steam version. Is there any documentation on how to read these OVL files so I can try and help reverse engineer the special formatting of these files?
The text was updated successfully, but these errors were encountered: