[MS-DOS] Fire & Ice: The Daring Adventures of Cool Coyote

Talk about everything related to general reverse engineering of computer games!

Moderator: Kroah

[MS-DOS] Fire & Ice: The Daring Adventures of Cool Coyote

Postby slugatrira » 25 Nov 2017, 12:04

Hello everyone,

First of all, I wanted to say that I'm a big fan of Kroah's work.
The amount of detail on this website is astonishing and a real pleasure to read.

I'm starting this thread to ask if people are interested to do the complete reverse engineering of the MS-DOS port of « Fire & Ice: The Daring Adventures of Cool Coyote » (1993, Graftgold Ltd. (dev.) and Renegade Software (pub.)).

I've read somewhere on this forum that Kroah considers reverse engineering of DOS application to be hard, and to be honest it's true. This is why I don't want to be alone on this journey.

I'm a computer scientist, with little x86 assembly knowledge. I can write assembly, but reading assembly I haven't written is not easy (yet).
Still, here are some clues I've figured out to help you out helping me reverse engineering this little gem.

    — Everything is packed into a single .EXE that has been recursively compressed 3 times using LZEXE. I don't know why, maybe it was an anti-reverse-engineering technique at the time.

    — INT 21h has been replaced by INT 3h. Every time you stumble upon Interrupt 3, don't be fooled, it's a disguised Interrupt 21. I haven't discovered this on my own, so I don't have the technical vocabulary to explain it better. Some friend figured it out for me while looking at the uncompressed binary thou IDA Pro.

Code: Select all
$ sha256sum fire.exe
ca0e8e19074351bf3ba6ca69c537220ec4a75077b376ecd458a92e4e4255e469  fire.exe

$ du -b fire.exe
1021763 fire.exe
slugatrira
 
Posts: 3
Joined: 23 Nov 2017, 16:30
Location: France

Postby Kroah » 03 Dec 2017, 16:33

Welcome slugatrira,

Thanks for your kind words.

Disassembling x86, 6502 or 68k assembly is a matter of preference... and tools.

I find x86 harder to work on because i don't like the tools available to help the process.

Here's my breakdown:
- Atari ST 68k: STeem emulator => perfect debugger with mouse driven and easy to use UI: breakpoints, monitored addresses, multiple instructions and memory browser, NEVER crash.
- Amiga 68k: WinUAE emulator => command line debugger: time consuming to do anything (breakpoints, memory dump, etc.), frequent crashes and freezes.
- Atari 8bits: Atari 800 Win Plus emulator => command line debugger: like the Amiga emulator, console based debuggers are exhausting to use.
- PC x86: DosBox emulator or OllyDbg debugger: same as the Amiga emulator.

Taking into account that doing reverse engineering (RE) takes time, my choice is easily done with the debugger to use.
1 day of RE with STeem would take me at least 7 days on other tools for the same result.
I would love having an AMeem (Amiga based STeem debugger) or PCeem.

That being said, disassembling Fire & Ice on ST with STeem could be a great idea.

Why did you choose the DOS version of Fire & Ice ?
Which debugger are you using ? (DOSbox, OllyDbg ?)
Kroah
Site Admin
 
Posts: 418
Joined: 07 Feb 2006, 01:01
Location: France

Re: [MS-DOS] Fire & Ice: The Daring Adventures of Cool Coyot

Postby slugatrira » 09 Dec 2017, 15:03

Hello Kroah,

Thank you ver much for your answer. I do agree with you that MS-DOS x86 reversing and debugging is clunky and tedious. I'm using the DOSBox Debugger, and it's not the easiest tool ever. I wish there was a gdb remote hook option available.

I'm focusing on the MS-DOS version for two reasons:
1/ Nostalgia. This precise game and version is the earliest video game I can remember playing.
2/ I would like to gain experience and then move on other DOS games, such as Rayman.

Static analysis tools are, however much better, such as IDA Pro and Radare2. But debugging is easier to understand, so I'm in the middle of a tricky situation.

I'll do my best to keep this post updated if I progress any further.
slugatrira
 
Posts: 3
Joined: 23 Nov 2017, 16:30
Location: France

Re: [MS-DOS] Fire & Ice: The Daring Adventures of Cool Coyot

Postby slugatrira » 11 Jan 2018, 00:20

Hello Kroah,

I haven't made any progress so far, but I've seen some interesting discussion on Github about the DOSBox fork, called DOSBox-X, thinking about revamping the debugger.
It may be your chance to provide some helpful insight as you are very experienced with theses kind of tools and care as much as everyone else about usability and efficiency.

https://github.com/joncampbell123/dosbox-x/issues/351
slugatrira
 
Posts: 3
Joined: 23 Nov 2017, 16:30
Location: France

Re: [MS-DOS] Fire & Ice: The Daring Adventures of Cool Coyot

Postby Kroah » 12 Mar 2018, 12:56

Hi,

Have you already tried the IDA/DOSBox debugger plugin ?
https://github.com/wjp/idados

I haven't tested it myself right now.
Kroah
Site Admin
 
Posts: 418
Joined: 07 Feb 2006, 01:01
Location: France


Return to General Discussion

Who is online

Users browsing this forum: No registered users and 1 guest

cron