First post, by mogwaay

User metadata
Rank Newbie

Hi all,

Just wanted to share a little hack I made yesterday to the DIZZY.EXE file of Fantasy World Dizzy by Codemasters to allow it to select the EGA or VGA modes on a 8088/86 based machine.

I don't really know anything about the structure of .EXE files or how best to document patches to old DOS games, so I'll describe what I did here:

Found the CPU Check code in Ghidra:

Decided that if I could change JNZ (opcode "0x75") on line 1000:4f61 to a JMP (opcode "0xEB"), the CPU Check would be skipped and not set the variables 0xaf42 and 0xaf43 back to 0x00 ( CGA mode), leaving whatever mode the user had just selected previously.

Opening DIZZY.EXE in SublimeText 2 on Mac OS X (it's basic Hex editor loads 8 Words, 16 Bytes per line) on line 1303, Byte #2 (I think this is Byte #20834) is the JNZ "75" and edited that to a JMP "EB" and saved it.



Ran the game on my 10MHz 8088 PC and boom - EGA Dizzy!

Tweets documenting how I found the game in EGA mode - inconsistent preformance, but still quite playable - here: https://twitter.com/mogwaay/status/1481739575542304775


Reply 2 of 2, by mogwaay

User metadata
Rank Newbie
Riikcakirds wrote on 2022-01-15, 23:56:

Very interesting. I guess it's playable in EGA but way too slow in VGA.

Hard for me to test at the moment as my ISA VGA Card isn't working very well - but I did get it to run long enough for this quick video:


Looks like it's a touch slower, but not by much (I did have 2WS for vRAM accesses switched on tho).

I've found with my other experiments that VGA (when my card works) runs a little faster (Monkey Island and Prince of Persia), but I had tested those games with 0WS switched on....