Legacy Ibm Pc Emulator - Preview Version


shinelife

Still Fresh
Joined
Dec 18, 2005
Messages
19
Location
Leeds, UK
Website
www.shinelife.co.uk
Legacy is an open source emulator of the 8086-based IBM PC architecture, developed in C++. It is designed to recreate the experience of playing early 80's IBM PC "bootable" games. This is a preview version of Legacy and subject to the following constraints:
  • No sound
  • Inaccurate running speed
  • Graphical glitches, game freezer and other emulation problems
  • DOES NOT run MS-DOS
This edition of Legacy supports the following bootable games:
  • Attack on Altair
  • Digger
  • Moon Bugs
  • Rollo & the Brush Bros.
  • Styx
  • The Exterminator
It is possible that other games may run under the emulation code in this release but start scripts are not provided for these games.

Download Legacy from the following URL:

Legacy GP2X Preview

Report any issues to jht2000 at hotmail dot com.

Cheers.
 
Hmm... wonder if this thing'd take the Monuments of Mars...

Nah... probably just a tidge late, unfortunately (iirc it needed a 186 XT/AT or compatible, which is kinda next gen compared to this, if I'm not much mistaken).

Cool to see anything at all coming out that tries to deal the x86 architecture, though, even if it's only the first ever generation for now!
 
Tobriand - I'm not familiar with Monuments of Mars. Is it a self-booting game or an executable that runs within DOS? I've not yet got DOS running within the emulator. By the way, this is intended to be an emulator of an XT machine.

Quiest - keep your eyes on the Legacy website at http://www.shinelife.co.uk/ to keep tabs on the emulated games. You should soon be seeing support for games such as Defender of the Crown, Flight Simulator 2.12, Kings Quest 2 and lots of others. As I've stated above, until I get DOS running this emulator will unfortunately be limited to running a limited selection of "booter" games as shown on Retrograde Station (http://retrograde.trustno1.org/).
 
Not by default, but in my experience, there were more than a few games that had instructions with them to turn them into self booting games (or whose readmes seemed to imply that they were for self booting even when they rand from the command promt in dos). So the line would seem to blur quite a bit.

It certainly uses the same pallette as the game in the screenie, and therefore, probably a similar mode graphically. And it ran on an early Amstrad, albeit one running Dos at the time. Certainly it wouldn't run anything else I threw at it - including Commander Keen, which doesn't exactly have large requirements.
 
Legacy currently uses "disk images" for running games. So any game you run in Legacy (exceptions apply - see below) will be a representation of the sectors, tracks and heads of a floppy disk drive.

So when you run Legacy with a specific disk image, what you're doing in effect is inserting a disk into the emulated machine, then switching on the emulated machine. The boot sector of the inserted disk then starts off the process of booting and running the game, somewhat like booting an operating system (e.g. MS-DOS) from floppy disk.

With reference to the games you mention that could be converted to run directly from floppy, the likelihood is that they could be run, but you'd first need to create a floppy disk containing the bootable game, then create a disk image of that floppy disk to run within Legacy.

Hope that clarifies things.
 
This is a preview version of Legacy and subject to the following constraints:
  • DOES NOT run MS-DOS

You say this is a preview version, and that is listed as one of its constraints, of which all the others listed are things you'd obviously fix or add in eventually. Does that mean you are planning to attempt DOS support?
 
Last edited by a moderator:
Yep, I hope to have DOS running at some point. There's no concept of deliberate "DOS support" as such - you can throw a DOS 6.22 disk image at the emulator right now and it gets to a certain point before complaining that a command interpreter isn't present.

This is probably caused by bugs in the emulation - the 8086 CPU emulator is currently far from perfect and a limited number of games are running on it. As the quality of the emulation improves, more games will start working, and DOS will hopefully start working at some point during this process.
 
I hope that VGA + 386 + SB pro level of emulation could be achieved. There are lots of great games for such "legacy" pc machines. And most VGA games were running in 320x200x256 colours mode so even today they would be looking pretty good.

Civilisation, Master of Magic, Master of Orion, Prince Of Persia, Wolf3D, Ultima Underworld and many, many others are waiting to be played again...
 
I hope that VGA + 386 + SB pro level of emulation could be achieved. There are lots of great games for such "legacy" pc machines.
That's not gonna happen with Legacy.

Something like Bochs would be needed for that level. And I doubt very seriously that's going to happen on the GP2X. I'm thinking the GP2X doesn't have near the grunt you'd need for higher level CISC x86 emulation.
 
Last edited by a moderator:
I hope that VGA + 386 + SB pro level of emulation could be achieved. There are lots of great games for such "legacy" pc machines.
That's not gonna happen with Legacy.

Something like Bochs would be needed for that level. And I doubt very seriously that's going to happen on the GP2X. I'm thinking the GP2X doesn't have near the grunt you'd need for higher level CISC x86 emulation.

Arm9 is single cycle single instruction (mostly) cpu. At 200MHz it's giving around 200mips so it's more than ten times more powefull than an 386@25MHz (386 isn't pipelined). The VGA should not have to be too hard emulate even in "x-modes" and SB pro is very plain device. PC isn't an Amiga with its machine cycle depedant aplications so... exact emulation isn't needed.

Yes, I know how nice 8086 is (sarcasm) but most 32 bits aplications running on 386+ cpus were coded using flat memory space and 32 bit registers (no depending on things like ah, al or segments). Most of x86 instruction weren't used very often - most old garbage was included only for combatibility with older software. So... imho fast 386 level emulation is entirely possible on +200MHz Arm9 cpu.

Then we have a dynamic recompilation and it would work for 95 percent of aplications because PC developers were more counting on faster machines than hardcore optimizations.

What I'm proposing will not work for all software. But many 32 bit coded ones should work acceptably. Around 10-20mips of x86 emulation isn't that unrealistic. We have already working psx emulator and thought it's slow with its 10fps at average but 386 didn't have any of psx's coprocessor and was much slower than psx's mips cpu.
 
Last edited by a moderator:
VGA/386/SBPro isn't going to happen in Legacy, and in all fairness that's not what I set out to achieve. Legacy will always aim to be a lean emulator with a specific purpose.

We'll soon see emulators on GP2X with capabilities way behond those shown by Legacy. I imagine ports of DOSBox and Bochs are just weeks away - this being on the basis that Bochs was previously ported to the Pocket PC - also an ARM-based device. However the first generation of 386+ emulators for the GP2X are likely to be excruciatingly slow.

Reading around I notice that dynarec code is in progress on various platforms for DOSBox so there's potential for late 80's/early 90's to work on the GP2X. I'll be most interested to see how this turns out.

Having said this, I'm not entirely convinced of the argument that fast(ish) PSX emulation means fast PC emulation. The whole problem with x86 is that no custom chips were used in development of games, so every single pixel drawn on the display has to be plotted by the CPU. In contrast, the PSX blits using the custom chips, which can be high-level emulated using native code - a much more friendly approach for emulation.
 
VGA/386/SBPro isn't going to happen in Legacy, and in all fairness that's not what I set out to achieve. Legacy will always aim to be a lean emulator with a specific purpose.

I was just trying to imagine what might be possible.

We'll soon see emulators on GP2X with capabilities way behond those shown by Legacy. I imagine ports of DOSBox and Bochs are just weeks away - this being on the basis that Bochs was previously ported to the Pocket PC - also an ARM-based device. However the first generation of 386+ emulators for the GP2X are likely to be excruciatingly slow.

If they are just ports of bochs or DOSbox then yes. They are very slow even on modern PC.

Reading around I notice that dynarec code is in progress on various platforms for DOSBox so there's potential for late 80's/early 90's to work on the GP2X. I'll be most interested to see how this turns out.

Having said this, I'm not entirely convinced of the argument that fast(ish) PSX emulation means fast PC emulation. The whole problem with x86 is that no custom chips were used in development of games, so every single pixel drawn on the display has to be plotted by the CPU. In contrast, the PSX blits using the custom chips, which can be high-level emulated using native code - a much more friendly approach for emulation.

Yes and no. That is depending on many factors. Look at the Atari 2600 - it's puny system and how hard it was to get it right? A PC is mostly a framebuffer plus cpu. Not much to emulate yet at other hand the cpu must be emulated at very good perfomance. So it's few thing less to worry about but there is one thing what must be done really well.

Less to do there but more to do elsewhere.

Once good translation x86->Arm software is done the rest should be relatively easy.
 
Last edited by a moderator:
I think bhole is subject to many of the same limitations as Legacy - although I believe it's a little further down the line in some areas (e.g. EMS support). A port of Bhole would certainly be another 'quick win' for x86 emulation on the GP2X and there's nothing like a bit of competition to get developers working! :D

Bochs is a really heavyweight emulator - my understanding is that it sets out to emulate the machine in somewhat excruciating detail - the reason being that many people use Bochs to develop and test operating systems. We don't need this level of emulation to emulate late 80's/early 90's games.

My money's on DOSBox as the only viable medium term solution for running 386 era DOS games on the GP2X. However this would without a doubt require the implementation of a x86->ARM dynarec. I know that DOSBox on the PC is painfully slow without a dynarec, but can't find any info on how much benefit they gained from putting one in place. Does anybody know any more on this?
 
but has anyone actually got legacy to run

well, i cant
even though i followed the readme to a T :rolleyes:
 
Back
Top