Lands of lore 1, 2 and 3

All the inane chatter goes in here. If you're curious about whether we will support a game, post HERE not in General Discussion :)

Moderator: ScummVM Team

Post Reply
1235
Posts: 2
Joined: Tue Mar 31, 2026 4:21 pm

Lands of lore 1, 2 and 3

Post by 1235 »

Hi all,

I've been doing independent reverse-engineering work on all three Lands of Lore games (DOS versions) and have reached a point where I'd really appreciate eyes from people familiar with ScummVM's existing LoL engine and the underlying formats. The work is split across three public repos:

LoL1 : https://github.com/KForestland/lands-of-lore-1-re
LoL2 : https://github.com/KForestland/lands-of-lore-2-re
LoL3 : https://github.com/KForestland/Lands-of-lore-3-re

**Lands of Lore I – effectively closed (~99.999%)**

LoL1 is in very good shape. Major results:

- `PAK` and `TLK` container formats solved and cross-checked against ScummVM
- Full level rendering pipeline documented: `CMZ → WLL → VMP → VCN`
- `CPS`, `SHP`, `WSA`, `VOC`, dialogue, music, palettes, automap legend, and wall definitions all extracted and/or documented
- Full `WSA` multi-frame extraction completed
- Full `EMC2` script decompilation completed
- Edition comparison between the main release and the `LANDSoL` second edition variant

What remains is basically publication work (README polish, packaging, release artifacts). The game itself is well understood.

---

**Lands of Lore II – runtime solid, textures incomplete**

The runtime entity pipeline is fully decoded via native disassembly (7 functions traced). The `[+80]` entity object is mapped with 25+ proven semantic field roles. The column renderer is disassembly-confirmed as 8bpp palette-indexed with distance shading.

However, wall textures are the main open problem. LOCAL.MIX Entry 1 is a strong candidate source for a raw 8bpp texture atlas. One out of 39 sub-textures has been extracted and visually matched to the Draracle Caverns cave wall, but the full mipmap format (`0x80`, 39 sub-textures) has not been resolved, and the atlas has not been runtime-traced end-to-end.

Other partial gaps:
- HMI-MIDI music conversion (tool exists, not fully verified)
- Sound effects container not yet cracked
- Bulk audio extraction (tool exists for 33 tracks + 1008 clips but hasn't been run and verified)

Lands of Lore III – structurally understood, textures open

LoL3 is at a late-stage structural and semantic checkpoint. The `LMF` container and `WSX`/opaque blob extraction are structurally understood enough for public documentation. Runtime provenance is solid:

- LoL3 is `WSX`-driven at runtime
- `QWOD0`, `SWOD4`, and `QWOD0S` families documented with their byte-level transition patterns
- Shared typed-region / regime-path model promoted to repo-grade

Textures remain the major open problem here as well. The rendering pipeline is not yet decoded at the texture/geometry level the way LoL2's column renderer is.

---

What I'm asking for:

1. A general review of the approach and documentation – does the structure make sense from a ScummVM RE perspective?
2. Any insight on the LoL2 texture atlas format – specifically the `LOCAL.MIX` mipmap layout and how the 39 sub-textures are actually indexed and fed to the column renderer
3. Any pointers on LoL3's rendering pipeline – does anyone have existing notes or know if there's prior work on its texture/geometry layer?
4. General feedback on whether this work is in a shape that could eventually be useful to general public.

The repos are MIT-licensed, tool-based (Python), and avoid redistributing any copyrighted game data. Happy to discuss any of it in detail.

Thanks!
User avatar
sev
ScummVM Lead
Posts: 2345
Joined: Wed Sep 21, 2005 1:06 pm
Contact:

Re: Lands of lore 1, 2 and 3

Post by sev »

I honestly tried. But after squeezing through the AI slop for 15 minutes, I gave up. Sorry. No time to read those autogenerated documents and descriptions.


Eugene
1235
Posts: 2
Joined: Tue Mar 31, 2026 4:21 pm

Re: Lands of lore 1, 2 and 3

Post by 1235 »

sev wrote: Mon Apr 06, 2026 12:00 am I honestly tried. But after squeezing through the AI slop for 15 minutes, I gave up. Sorry. No time to read those autogenerated documents and descriptions.


Eugene

Ok, what do you want to see? and i agree the repo is ai facing and not human facing, hence why i am here.
Post Reply