Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.
Zero Tolerance for Disrespect

Leisure Suit Larry: Magna Cum Laude .WGG Files

Featured Replies

On 9/8/2026 at 7:11 PM, KylGames said:

16 sin título_20260908083250.png16 sin título_20260908083758.png

found the mechanism behind the duplicate/corrupted mesh issue, plus a working OBJ→WGG round trip for simple higher-poly models

Hi Anti6, first of all thanks for the original documentation, it's the base I worked from. I'm working on a full translation + HD remaster-style mod (textures, and now trying to push a bit further into geometry too), and ran into the same issues you documented.

Regarding the duplicate/corrupted mesh data you mentioned back in October ("some files have duplicate mesh data at 2 different places, in these cases, only one gets exported") — I dug into a couple of cases and think I found the actual mechanism behind at least some of them.

Comparing a broken object against a working one byte-by-byte in NORM.WGG and MAINACTR.WGG, I found that in some cases the face chunk data actually starts 2 bytes later than where the header offsets point to. This throws off every face index in that chunk by one position, mixing up unrelated vertices (the classic "hedgehog" mesh look).

The pattern I used to detect it: for any face chunk, the first entry that references it (face_skip = 0) should always start reading indices (0, 1, ...). If it doesn't, trying a ±2/±4 byte offset until that pattern shows up fixes it — and the chunk's end offset needs the same adjustment, or the last object in that chunk gets cut short.

With this fix, on those two files I went from a couple of skipped/corrupted objects to 100% extracted correctly, no fallback needed.

On the "not feasible at this stage" front for repacking — I've had some success going the other way (OBJ → WGG) for simple, single-object models without bones. I modified a bull prop model with extra polygons in Blender, converted it back to WGG, repacked it into the JAM, and it loaded fine in-game (geometry comparison screenshot attached — same original texture on both, I forgot to swap in the HD texture on the higher-poly version before capturing). Doesn't touch the transformation data section you and shak-otay were digging into — still no idea what that is — so this is limited to simple props for now, still testing how far it goes with more complex/multi-object models.

Also, for anyone chasing higher quality textures within the game's memory limits: I put together a small pipeline (DDS→PNG, edit/upscale the PNG at any resolution as long as the aspect ratio matches the original, then PNG→DDS) that properly generates the full mipmap chain instead of just a single base level. This lets the game read HD textures correctly instead of crashing or looking wrong due to a missing mip chain (HD texture comparison screenshot also attached).

Attaching my modified scripts in case they're useful to anyone else.

obj_to_wgg.pypng_to_dds.pywgg_to_obj.py

Hey, can you upload it to Google Drive? I can't seem to download the files.

On 9/17/2026 at 8:19 AM, loonatic said:

Не могли бы вы предоставить зеркальную ссылку на свои сценарии? Этот форум не позволяет мне их скачать, и я также провожу исследование этой игры, лол

Me too, bro. I remember when I was a kid—way back about 13 years ago—I was already messing around with the game files, but back then there wasn't any software or anything to mod the game. It's amazing that 22 years later, some guy actually made software for proper modding.😂

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.