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
TEX MURPHY: Under A Killing Moon
Moderator: ScummVM Team
TEX MURPHY: Under A Killing Moon
Last edited by mmogas on Sat May 02, 2026 5:08 pm, edited 1 time in total.
Re: TEX MURPHY: Under A Killing Moon
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.
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.
Re: TEX MURPHY: Under A Killing Moon
You need to fork the ScummVM main repo and then work on your fork.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.
- dreammaster
- ScummVM Developer
- Posts: 596
- Joined: Fri Nov 04, 2005 2:16 am
- Location: Australia
Re: TEX MURPHY: Under A Killing Moon
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.sev wrote: Mon May 04, 2026 10:28 pm You need to fork the ScummVM main repo and then work on your fork.
Re: TEX MURPHY: Under A Killing Moon
It will likely be necessary to create a separate engine for this game to make development, more structured, simple and much clearer.dreammaster wrote: Tue May 05, 2026 4:07 amSince 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.sev wrote: Mon May 04, 2026 10:28 pm You need to fork the ScummVM main repo and then work on your fork.
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.
- dreammaster
- ScummVM Developer
- Posts: 596
- Joined: Fri Nov 04, 2005 2:16 am
- Location: Australia
Re: TEX MURPHY: Under A Killing Moon
Sounds like you're making solid progress. Kudos.
Re: TEX MURPHY: Under A Killing Moon
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
If you have questions about them, I can always supply some details…. Check the code in action at:
https://links.abandonedcastle.org/news/access
Re: TEX MURPHY: Under A Killing Moon
Thanks, I will check out it.hypdream wrote: Sun May 10, 2026 11:24 am For the 3D engine, check out this….
https://github.com/ElakaSnarne/WinTex
Re: TEX MURPHY: Under A Killing Moon
I contacted Svein (aka.ElakaSnarne) about his work on GitHub (https://github.com/ElakaSnarne/WinTex) to provide Windows support for the games Under A Killing Moon and Pandora Directive.
I would like to take this opportunity to publicly thank and acknowledge his effort and impressive work on that project.
I proposed him the possibility of using part of his code to develop a new engine within ScummVM, and he very kindly not only granted permission but also provided me with technical information (attached) that he compiled during his project.
I have started creating the entire structure of the new engine with “TEX”, locating the hashes of the different versions and some translations. After testing it will be forked and commited.
A major step forward will be having the decoding of PTF, BIC, and SQZ files, as well as the 3D rendering engine.
If anyone wants to join in this project , please do it.
Thanks
I would like to take this opportunity to publicly thank and acknowledge his effort and impressive work on that project.
I proposed him the possibility of using part of his code to develop a new engine within ScummVM, and he very kindly not only granted permission but also provided me with technical information (attached) that he compiled during his project.
I have started creating the entire structure of the new engine with “TEX”, locating the hashes of the different versions and some translations. After testing it will be forked and commited.
A major step forward will be having the decoding of PTF, BIC, and SQZ files, as well as the 3D rendering engine.
If anyone wants to join in this project , please do it.
Thanks
- Attachments
-
- UAKM.zip
- (22.34 KiB) Downloaded 3 times