Running old software that was made to only run on a specific machine?

Getting old software/games running on older hardware.

Running old software that was made to only run on a specific machine?

Postby Banjo » 2018-9-20 @ 10:01

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! :)
Attachments
ORG.zip
PPC Organizer Software
(123.92 KiB) Downloaded 9 times
ppcorgerror.PNG
Error message when running "runalc".
ppcorgerror.PNG (11.02 KiB) Viewed 297 times
Banjo
Newbie
 
Posts: 33
Joined: 2006-1-11 @ 08:49
Location: Australia

Re: Running old software that was made to only run on a specific machine?

Postby derSammler » 2018-9-20 @ 10:13

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.
derSammler
Oldbie
 
Posts: 1779
Joined: 2017-4-14 @ 11:30
Location: Germany

Re: Running old software that was made to only run on a specific machine?

Postby Banjo » 2018-9-21 @ 07:52

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?
Banjo
Newbie
 
Posts: 33
Joined: 2006-1-11 @ 08:49
Location: Australia

Re: Running old software that was made to only run on a specific machine?

Postby JohnElliott » 2019-1-10 @ 11:05

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.
JohnElliott
Newbie
 
Posts: 9
Joined: 2012-8-08 @ 23:37

Re: Running old software that was made to only run on a specific machine?

Postby gca » 2019-1-11 @ 23:22

Hey Banjo, glad to see you are still working on trying to keep the Amstrad stuff alive.
User avatar
gca
Member
 
Posts: 140
Joined: 2017-4-20 @ 13:03
Location: Scotland


Return to Software

Who is online

Users browsing this forum: No registered users and 2 guests