VOGONS


First post, by eugeneeugene123

User metadata
Rank Newbie
Rank
Newbie

Hello!
I would like to introduce my x86 emulator “Espejo”. I am focused on mobile platforms with ARM processors like Android and IOS, but desktop (Windows, x86) version also exists. The reason why I started this project is that current emulators for mobile platforms are slow (resource-demanding games like MDK or Quake are almost unplayable), require lots of configuration and do not have customizable on-screen controls. Right now my emulator has following features:

  • Cycle-precise 8086 core with 8087 FPU
  • Precise 80286 core (interpreter). Fully written in ARM assembly. On ARM processors speed is almost equal (5-10% difference) to DOSBOX recompiler (measured by speedtst.com program recommended by DOSBOX developers).
  • Much faster 80286 core (recompiler). On ARM processors only (Android).
  • Adlib, PC speaker, MPU 401, Disney Sound Source emulation
  • Joystick support
  • Customizable on-screen controls

I am finishing 80386 emulation and fixing bugs in VGA emulation, hope that in a short time will post version which will potentially support almost every DOS game (bug fixes can take lots of time). Sound Blaster emulation is also planned as it is not done yet (Adlib is supported).

I am attaching "Moonbugs" game image disk with my emulator. This game is rather interesting because it runs in 160x100 16-color undocumented text mode, so it has 16 colors on CGA adaptors. I had no luck running it in bochs (no sound, lags), qemu, pcem(freedos does not boot) or fake86(shows only top quarter of screen). DOSBOX runs it after selecting machine=cga and setting proper cycle count. But it is not ideal, as requires configuration and still emulation is not cycle-exact.

Attachments

  • Filename
    moonbugs_demo.7z
    File size
    4.07 MiB
    Downloads
    12 downloads
    File comment
    32-bit trial Windows version
    File license
    Fair use/fair dealing exception
  • Filename
    moonbugs.zip
    File size
    3.83 MiB
    Downloads
    9 downloads
    File comment
    Android (armv7) trial apk
    File license
    Fair use/fair dealing exception
  • Filename
    moonbugs(predefined boot.img).zip
    File size
    2.7 MiB
    Downloads
    6 downloads
    File comment
    Android (armv7) trial apk
    File license
    Fair use/fair dealing exception

Reply 1 of 2, by UselessSoftware

User metadata
Rank Newbie
Rank
Newbie

Is it possible for us to compile from source?

This sounds like a promising emulator.

After you said Moon Bugs doesn't work in all those other emulators, it made me curious about my new emulator too. It works if I start it with the CGA adapter module instead of VGA. Does it fail on real VGA cards?

Reply 2 of 2, by LightStruk

User metadata
Rank Newbie
Rank
Newbie

Speaking as someone who has written an emulator, kudos on making an emulator of a complicated machine that actually runs some real software.

Are you using Nuked OPL3 for your Adlib emulation? Nuked is the gold standard for accuracy.

Does your MPU-401 implementation just pass the MIDI along to the host's MIDI synth?

There were plenty of games that required a 486, but that might just be a speed thing. You already have the FPU / 8087. The 486 only adds a few instructions, same with Pentium 1, so if you find software that uses those instructions then it's easy to add. I don't think any DOS games actually required MMX, right?

Once you have CGA, EGA, and VGA fully emulated, then you'll need at least a couple of the high-res SVGA / VBE modes, like 640x400 and 640x480. For example, Warcraft II uses 640x480x8bpp IIRC.

Finally, supporting EVERY DOS game means supporting the vendor-specific 3D APIs like 3dfx Glide and Rendition Speedy 3D. Honestly, if I were you, I wouldn't bother, because nearly every game that did use those APIs has a better port on Windows that uses OpenGL or Direct3D.