VOGONS


First post, by Banjo

User metadata
Rank Newbie
Rank
Newbie

I'm trying to get the "Organizer" software that came with the Amstrad PPC640 (a late 80's "luggable" XT) to run on another XT, 286 or 486 without success. I've been trying via emulation (DOSBox, PCem, etc.) too, however whenever I load the software, it fails to start, instead returning to the command prompt with a custom "unauthorized use" error message that makes it likely the software checks it is being run on a real PPC before running, thus preventing people from using it on desktop or other brand machines.

I'm wondering if it would be possible to alter the exe file to make the program run on other machines. If it would be a ton of work, fair enough, but since as far as I know this software was never released in any other form (retail, etc.) besides the PPC512/649 bundles, it means that nobody can run this old program anymore without such a "crack". I looked at PCem and similar emulators, but none can emulate the hardware of a PPC as far as I know.

Would someone more knowledgable than me be willing to take a quick look at the executable and see if they can confirm or deny my theory that it is indeed looking for "real hardware" and thus exiting with an error if it doesn't find it?

I've attached the program for anyone who wants to take a look. Advice on the possibilities of fixing this is welcome! 😀

Reply 1 of 5, by derSammler

User metadata
Rank l33t
Rank
l33t

I'm wondering if it would be possible to alter the exe file to make the program run on other machines.

Yes, and it's even fairly easy. Load it up into a disassembler, find the string, trace it back to where it is outputted, trace that back to the jump that occurs when running on the wrong machine, and NOP out the jump. Done.

Reply 2 of 5, by Banjo

User metadata
Rank Newbie
Rank
Newbie
derSammler wrote:

I'm wondering if it would be possible to alter the exe file to make the program run on other machines.

Yes, and it's even fairly easy. Load it up into a disassembler, find the string, trace it back to where it is outputted, trace that back to the jump that occurs when running on the wrong machine, and NOP out the jump. Done.

Thanks! Great to know this will be possible!

Your instructions are way outside my current knowledge, but I am willing to learn (and this will come in handy for other projects too, I suspect). What disassembler tools should I be starting with, and is there a guide anywhere to help a total novice get started with something like this?

Reply 3 of 5, by JohnElliott

User metadata
Rank Newbie
Rank
Newbie

You're correct that it's checking for PPC hardware - specifically, the video hardware. It writes to the CGA mode control register (03D8h) and checks that the video NMI system modifies the value written.

The conditional jump to be patched out is at offset 5796 in RUNALC.EXE - replace 75 17 with 90 90.

Reply 4 of 5, by gca

User metadata
Rank Member
Rank
Member

Hey Banjo, glad to see you are still working on trying to keep the Amstrad stuff alive.

Reply 5 of 5, by Banjo

User metadata
Rank Newbie
Rank
Newbie

I've attached a "patch" made with the help of John Elliot's information (thanks, John!). Use it with the original version of the PPC Organizer software attached to the first post of this thread.

Tested and working on PCEm and DOSBox!

Also posted (with some other Amstrad stuff) on my game mod blog here!