TEX MURPHY: Under A Killing Moon

General chat related to ScummVM, adventure gaming, and so on.

Moderator: ScummVM Team

Post Reply
mmogas
Posts: 15
Joined: Thu Mar 05, 2026 8:34 pm

TEX MURPHY: Under A Killing Moon

Post by mmogas »

Hello everyone:

I've been reading comments for quite some time now that one of the favorite games for many is the third issue of Tex Murphy: Under a Killing Moon.

But there's no news about the progress of support for this game in SCUMMVM or any updates to the Access engine's source code.

I've been analyzing this game for quite some time, as well as the previous games in the series: Mean Street (that I've done an amateur Spanish translation) and Martian Memorandum (fantastically supported recently in SCUMMVM).

I've seen that the game's file structure is quite similar to Martian Memorandum:

- LZ files, they are simple files with DBE compression.

- AP files, they are containers for different files, including some with DBE compression.

The most complicated part will be the 3D rendering and identifying the video and audio compression.

Even so, I propose we give this engine a boost and publish all the progress I make regarding the game's structure and the different file types.

I hope that with this we can successfully meet this challenge.

Has anyone been working on this issue?

Regards
Last edited by mmogas on Sat May 02, 2026 5:08 pm, edited 1 time in total.
mmogas
Posts: 15
Joined: Thu Mar 05, 2026 8:34 pm

Re: TEX MURPHY: Under A Killing Moon

Post by mmogas »

First step is game detection:

This is information to include in detection_tables.h file with UAKM main files:

{
// Under a Killing Moon Original CD EN
{
"moon",
nullptr,
{
{ "CFG_SND.AP", 0, "82afc150583a8d0516d3ecbc4b8bd49b", 92604 },
{ "EXAM.LZ", 0, "d0d6c43ebf3e6e64d9e5652f09a67cec", 8242 },
{ "GRAPHICS.AP", 0, "d2c553fd8ecbecc2161e0dac926a703a", 411228 },
{ "HELP.AP", 0, "8af29373b7700d7e0a77b7b0956d811e", 32851 },
{ "HELP.LZ", 0, "22deedf0293677b5b679d259bf74e9d8", 30912 },
{ "HINT.AP", 0, "2fc5dd6a262375fa33c2d742ede7c6bf", 45416 },
{ "ICONS.LZ", 0, "d7f5d6ccaf8a24bd8d983810e62c050c", 36185 },
{ "LSGRPH.AP", 0, "c6132430d02ae4c082d93e162e1b7e13", 77074 },
{ "PANEL.AP", 0, "965de7c0ba8c108536104991751f4e8b", 608518 },
{ "ROOMTEXT.AP", 0, "ac0c8f7b54f7c4790700fea85a060523", 113943 },
{ "TRAVEL.AP", 0, "8ec4c8ee30165214ae8ceb98a312e448", 759951 },
AD_LISTEND
},
Common::EN_ANY,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NONE)
},
kGameKillingMoon,
0
},

{
// Under a Killing Moon Original CD ES by DRO-SOFT
{
"moon",
nullptr,
{
{ "CFG_SND.AP", 0, "2176cec85c163bea7aefdb6eeb022071", 96651 },
{ "EXAM.LZ", 0, "96ee713f89dc287cad145ae1c2378b74", 8707 },
{ "GRAPHICS.AP", 0, "4578c76d40fae12d79cfefcc11ea3921", 415071 },
{ "HELP.AP", 0, "01c7b936b3e7c3a3732ecb7d996a4415", 37165 },
{ "HELP.LZ", 0, "81c863f0a8296cf421d23a287f69e082", 30587 },
{ "HINT.AP", 0, "4f6d10cb5c91bd82117e18c2cf1445ef", 47832 },
{ "ICONS.LZ", 0, "8f35638c6d36c25bac9c16ed8540b27f", 36195 },
{ "LSGRPH.AP", 0, "a0808a30ffa4659a39faf7d0bc4eda3b", 78583 },
{ "PANEL.AP", 0, "40e993a43ae5aa779c206c51bfe455b1", 883263 },
{ "ROOMTEXT.AP", 0, "f53f84d57454d0cb067cfeed432ec925", 115928 },
{ "TRAVEL.AP", 0, "7f519775950e22a2bb9c8037beb91be2", 760973 },
AD_LISTEND
},
Common::ES_ESP,
Common::kPlatformDOS,
ADGF_NO_FLAGS,
GUIO1(GUIO_NONE)
},
kGameKillingMoon,
0
},

{
// Under a Killing Moon Original CD DE (German)
{
"moon",
nullptr,
{
{"CFG_SND.AP", 0, "abed4594afa3ed674cb4d8e98277023d", 103082},
{"EXAM.LZ", 0, "93556c9cfe3516e00028ab0fe2d518c8", 9656},
{"GRAPHICS.AP", 0, "7bf1db77a8fa2a09e0082a6e094362e0", 408472},
{"HELP.AP", 0, "e759e8a73bf6c49ed2448fd4a3acb621", 33714},
{"HELP.LZ", 0, "92f6aaf6cc1c77c2924c82cca83ee82d", 29662},
{"HINT.AP", 0, "f816b1fee763744dd5a29cc6e6d0fe11", 50330},
{"ICONS.LZ", 0, "ce2d95c1d357eab0eb29854a92ef9919", 36281},
{"LSGRPH.AP", 0, "e3eaeea23caa4657ea491b639e42f1e0", 79222},
{"PANEL.AP", 0, "b55652cf50f5f22d26840884d9e6d92a", 656347},
{"ROOMTEXT.AP", 0, "fed99b95a82025454fd02871f0425ad0", 127933},
{"TRAVEL.AP", 0, "b4adb29fef3cac55b21b5f5c42f2b7a6", 760610},
AD_LISTEND
},
Common::DE_DEU,
Common::kPlatformDOS,
ADGF_CD,
GUIO1(GUIO_NONE)
},
kGameKillingMoon,
0
},

See you

PD: I am doing some local modifications to compile a mini-ScummVM version only with access engine to test it. I don't know right process to do it in https://github.com/ to not interfere.
User avatar
sev
ScummVM Lead
Posts: 2348
Joined: Wed Sep 21, 2005 1:06 pm
Contact:

Re: TEX MURPHY: Under A Killing Moon

Post by sev »

mmogas wrote: Sat May 02, 2026 3:28 pm PD: I am doing some local modifications to compile a mini-ScummVM version only with access engine to test it. I don't know right process to do it in https://github.com/ to not interfere.
You need to fork the ScummVM main repo and then work on your fork.
User avatar
dreammaster
ScummVM Developer
Posts: 596
Joined: Fri Nov 04, 2005 2:16 am
Location: Australia

Re: TEX MURPHY: Under A Killing Moon

Post by dreammaster »

sev wrote: Mon May 04, 2026 10:28 pm You need to fork the ScummVM main repo and then work on your fork.
Since Under a Killing Moon represented a fundamental jump from 2d to 3d, I'd be honestly surprised if it shares any code in common with the existing Access engine. So supporting it will require implementing a whole new engine from scratch.
mmogas
Posts: 15
Joined: Thu Mar 05, 2026 8:34 pm

Re: TEX MURPHY: Under A Killing Moon

Post by mmogas »

dreammaster wrote: Tue May 05, 2026 4:07 am
sev wrote: Mon May 04, 2026 10:28 pm You need to fork the ScummVM main repo and then work on your fork.
Since Under a Killing Moon represented a fundamental jump from 2d to 3d, I'd be honestly surprised if it shares any code in common with the existing Access engine. So supporting it will require implementing a whole new engine from scratch.
It will likely be necessary to create a separate engine for this game to make development, more structured, simple and much clearer.

Even so, some parts of the access engine module (as DBE compression) work perfectly.

At the moment, I'm documenting the file structures and have created code and tools to extract and verify them. I started with the easiest parts: 2D game images (NEWS.AP, LSGRPHS.AP, etc.), sound (R01FX.AP,...), and identifying the color management and palette (GRAPHICS.AP).

Now I'm analyzing the PTF video format. The audio part is already done. The image encoding is proving a bit more challenging (it seems like RLE video).
Other kind of files with format: SQZ and BIC (another kind of BMP).

The main remaining challenges will be analyzing the game's scripts and maps and diving headfirst into the 3D rendering.

If anyone wants to join in ... It is a great game and I require a great job.
User avatar
dreammaster
ScummVM Developer
Posts: 596
Joined: Fri Nov 04, 2005 2:16 am
Location: Australia

Re: TEX MURPHY: Under A Killing Moon

Post by dreammaster »

Sounds like you're making solid progress. Kudos.
hypdream
Posts: 5
Joined: Sun Jun 03, 2012 6:33 pm

Re: TEX MURPHY: Under A Killing Moon

Post by hypdream »

Hey, the last years, I have reversed and create code using web technology to read all custom Access Software formats and render them using canvas objects in realtime. This includes the video formats like ptf, bic and h2o.

If you have questions about them, I can always supply some details…. Check the code in action at:

https://links.abandonedcastle.org/news/access
hypdream
Posts: 5
Joined: Sun Jun 03, 2012 6:33 pm

Re: TEX MURPHY: Under A Killing Moon

Post by hypdream »

For the 3D engine, check out this….

https://github.com/ElakaSnarne/WinTex
mmogas
Posts: 15
Joined: Thu Mar 05, 2026 8:34 pm

Re: TEX MURPHY: Under A Killing Moon

Post by mmogas »

hypdream wrote: Sun May 10, 2026 11:24 am For the 3D engine, check out this….

https://github.com/ElakaSnarne/WinTex
Thanks, I will check out it.
Post Reply