I'm currently looking at a portion of multilingual games from non-modern PopCap. I eventually stumbled on the Japanese version of Peggle Nights, which requires administrative privileges to run. Upon looking up information of the file data, it is related to GameShield DRM from Yummy Interactive, despite being from a setup, the content provided from it is just documents and most importantly, an exe that is 90MB where I can see many resources crammed into it, most are related to the game nor the DRM client. I can't run the game, as it tries to locate content that doesn't exist but it may be a cheat build as it is titled that when running it. There's no PAK files I can see in the game data. Any advice on unpacking it along with the game data? Thank you so much.
By searching for 'GameShield Manual Unpacking' I've found article by ARTeam - it doesn't looks as easy reading, but hope can help.
Resources can be ripped with several tools I've met just today. Make sure to configure them for awaited formats before scanning. Ravioli Scanner 2.1 can extract pictures. Jaeder Naub 2.2.4g - even more Pictures and playable Sound. I'd recommend this personally. Hyper Ripper module of Dragon UnPACKer 5.0.7 beta - 2 times less JPEG's, but good as well. Tool has picture preview option. Latest Nightly build gave me Error while scanning... Aborting... Stack overflow. Got to try earlier commits... X-Ripper 1.5 - extracts sound and pictures. some pics are half corrupt. MultiExtractor 3.3 - scans fast, finds more pictures. But ripped ogg sound is corrupt.
.pak string found in .exe, however no 7 1/2 7 signature. Not sure, if it is it the installer or game itself.
Last edited by z4ruz on Fri May 14, 2021 8:05 pm, edited 1 time in total.
It's most likely the packaged executable itself, installing the game using the given setup or unpacking it gives this big executable which is the game combined with the data. I have read that article, but I'm not sure if that can help unpack the game data as well.
UPDATE: Upon looking at the executable, I found this about the data offset format.
Noteworthy, on error you can write some commands to lua debugging console, like print. exit will close the cmd window, but main window will stay open. The similar happens if you create empty file at requested path, but the error would be "Unable to find function CreateLinkedObject". Notes to self: if searching for strings, try Unicode version as well (chars 00 separated). Executable doesn't have main.lua string, but has main.luc, which is PopCap's custom Lua format. https://github.com/wxarmstrong/PopLua-Disassembler - did you finally got it working?
Normal setups of PeggleNights (from PopCap site) have the drm folder inside, if opened as archive. Object, launched with that folder around, throws new error - "Unable to find function InternalErrorScreen". And blank window, as previously.
I'm pretty sure it's because PopCap's DRM wrapper client that runs the game is also present in the exe and when there's no scripts directory, it shows the debug console on bootup. I tried that with worldwide releases and that happens as well so it isn't specific. I don't think the PopLua Disassembler will work as those Luc files from DRM (and also some proprietary resource generator according to BejTwist JP leftovers) are Unicode and it doesn't look like there's code to detect that format.
Thank you so much. I don't have any other games protected by GameShield so it may work on other games protected as well by this version of the protector.
UPDATE: Well it worked, but the files aren't exactly extracted properly as 01 00 00 00 04 00 00 00 64 61 is copied to the end of every file, luckily adding the line fsize - 10 removes the bytes that aren't necessary and mostly results in readable files, unfortunately not all are readable, for example, a portion of JP2 files are incorrectly written so I cannot use the manually extracted game data with the manually extracted exe.