VOGONS


First post, by Gustavo

User metadata
Rank Newbie
Rank
Newbie

Hi,
Many games have an initial check for a 286 or later processor and will disable some features or won't run at all on XT machines.

I've been patching some of these games with variable success on my Turbo XT with NEC V20. I couldn't check if they will run on a standard 8088/8086.

1. Monkey Island 2 (refuses to run on XT) - Runs fine with patch. Scroll is a bit slow.

2. Magicland Dizzy (only accepts EGA mode on XT) - Runs fine in VGA mode with patch. A bit slow in screen with large sprites.

3. Wrath of the Demon (only accepts CGA mode on XT) - Runs fins in VGA with patch. Speed is very good.

4. Lotus and Lotus 3 - Partially load, but show a black screen.

Bellow are some IPS files if anyone want to try.

Reply 1 of 14, by matze79

User metadata
Rank l33t
Rank
l33t

What is IPS ?

Reply 2 of 14, by wierd_w

User metadata
Rank Oldbie
Rank
Oldbie

It's a differential patching engine/format.

Reply 3 of 14, by keropi

User metadata
Rank l33t++
Rank
l33t++

nice patches Gustavo thanks!

matze79 wrote on 2026-02-17, 19:49:

What is IPS ?

it's the patch data, I use LUNAR IPS to apply to files: https://www.romhacking.net/utilities/240/

Last edited by keropi on 2026-02-17, 21:28. Edited 1 time in total.

🎵 🎧 MK1869, PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 4 of 14, by wierd_w

User metadata
Rank Oldbie
Rank
Oldbie

I did not make the patches! I just answered what IPS was!

Kek!

Gustavo made the patches!

Reply 5 of 14, by theelf

User metadata
Rank Oldbie
Rank
Oldbie
Gustavo wrote on 2026-02-17, 15:46:
Hi, Many games have an initial check for a 286 or later processor and will disable some features or won't run at all on XT mach […]
Show full quote

Hi,
Many games have an initial check for a 286 or later processor and will disable some features or won't run at all on XT machines.

I've been patching some of these games with variable success on my Turbo XT with NEC V20. I couldn't check if they will run on a standard 8088/8086.

1. Monkey Island 2 (refuses to run on XT) - Runs fine with patch. Scroll is a bit slow.

2. Magicland Dizzy (only accepts EGA mode on XT) - Runs fine in VGA mode with patch. A bit slow in screen with large sprites.

3. Wrath of the Demon (only accepts CGA mode on XT) - Runs fins in VGA with patch. Speed is very good.

4. Lotus and Lotus 3 - Partially load, but show a black screen.

Bellow are some IPS files if anyone want to try.

Noooo! one month ago i dissasemble my XT clone board to use the case for a 286 proyect!! now i need to assemble again! jje

Thanks a lot for your patches, i really want to test, i have a turbo XT 10mhz with 1mb

Reply 6 of 14, by igully

User metadata
Rank Member
Rank
Member

Is it there a generic XT patcher that includes different patching strategies/routines that can be selected by the user?
Of course, results may vary, but may eventually lead to a few working patched programs.

I am guessing that no is the answer, but would love to be surprised.

Thanks in advance.

Reply 7 of 14, by wierd_w

User metadata
Rank Oldbie
Rank
Oldbie

'Universal Patches' dont exist.

However, 'the number of ways to tell you are running on an XT' is a finite set, with some ways being 'very obvious, to the point most sensible people would try that way, barring some specific reason.'

A skilled programmer can look at the runtime disassembly inside a debugger, and see what a program is trying to check for, and either hotwire it, so it always finds what it's looking for, hotwire it so it always fails to find what it's looking for, or remediate the reason why it's even bothering to check-- then make a patch file with an offset location, and a binary correction that changes the program in the way required.

There will never be a reliable way to 'universally patch' a program; there is no substitute for a truly intelligent worker in the process, even if most circumstances will be from a set of 'golden oldies'.

Reply 8 of 14, by Gustavo

User metadata
Rank Newbie
Rank
Newbie

It is really satisfying to have some more games running on such an old architecture.

I don't think there is a universal patcher, but the 286+ detection routine usually follows this format.
Something like this:
Routine to detect 286 or higher
Check286:
pushf ; Push original flags
xor ax, ax ; Clear AX
push ax ; Push 0 to stack
popf ; Pop 0 into FLAGS
pushf ; Push new flags
pop ax ; Pop into AX to analyze
and ax, 0F000h ; Check bits 12-15
popf ; Restore original flags

; If high bits are 0, it's at least a 286.
; If high bits are F000h, it's 8086/80186.
cmp ax, 0F000h

Then there will be a JE "jump if equal", JZ "jump if zero" or JNE "jump if not equal"

The sequence POPF, PUSHF is not very useful, so it is not used apart from this 286 detection routine.
Use an HEX editor to find this sequence (hex codes 9d 9c). It probably is the routine.

Then, using a disassembler, check if follows a conditional jump (JE, JZ or JNE).
JE or JZ check if it is an 8088/8086/V20, so I usually skip these jumps with NOP (hex code 90).
JNE checks if it's a 286+, so I replace it with a "non conditional" jump (JMP).

Takes a little experimenting, but it is not too difficult.

This online assembler/disassembler is very useful to analyse small fragments of code:
https://shell-storm.org/online/Online-Assembl … d-Disassembler/

Remember that some EXE files are compressed, so unpack them with UNP utility for DOS before editing.

Reply 9 of 14, by Gustavo

User metadata
Rank Newbie
Rank
Newbie

If you have some game suggestion I may try to patch it.

Reply 10 of 14, by igully

User metadata
Rank Member
Rank
Member

Thank you for your answers Gustavo.

I was looking for and automated patch. I have seen a couple on other platforms, used in some cases to detect a common sequence of opcodes that could be exchanged for a lower-end CPU ones, and have also seen them for code optimization code where they make the code faster under newer better processors.

Thank you for your offer, but I am not particularly interested in DOS games, more on DOS application/utilities programs, hence the request. Not many are interested in such type of programs.

Reply 11 of 14, by GreatStone

User metadata
Rank Newbie
Rank
Newbie

As a new owner of an Amstrad ppc512 (8086 compatible NEC V30 8MHz cpu), with a VGA extension card, I am grateful to see this patch 😀
Monkey Island 2 was also refusing to start on this machine: the ips patch allows it and it runs enough to be playable, which is fantastic!
I consequently tried to do the same for "Indiana Jones and the Fate of Atlantis": it is working now, even if a bit slow, still manageable.
You can find it as an attachment (it has to be applied on the international release 1.0 of Fate of Atlantis, tested on the 5x1.44M installation disks).

Is there other games like that (checking 286 as min requirement, but running well if removed)?

Reply 12 of 14, by RetroPCCupboard

User metadata
Rank Oldbie
Rank
Oldbie
Gustavo wrote on 2026-02-18, 12:09:

It is really satisfying to have some more games running on such an old architecture.

I have to wonder why they would put in such a check if the game is otherwise playable on an XT. They are excluding some potential buyers, so surely there must be a reason.

Could it be as simple as the fact they didnt develop it on hardware that old, and never tested it to see what performance was like?

Reply 13 of 14, by Gustavo

User metadata
Rank Newbie
Rank
Newbie

Maybe the game needs 80186/286 instructions, present in NEC V20 and V30 processors, but missing in 808x.

Reply 14 of 14, by Gustavo

User metadata
Rank Newbie
Rank
Newbie

Another tip for XT gaming:

Golden Axe is too slow on XT machines. One of the reasons is that the music engine is too CPU demanding.

To run the game without music, just copy the file axe.dat with an .exe extension:

COPY AXE.DAT AXE.EXE

Run axe.exe and the game will run faster. There will be no music, but sound effects will still be present. On a 12 mhz XT in CGA mode the game is very playable.