Apr 3, 2013
Duke Nukem 2 for iOS is now available in App Store.

Mar 23, 2013

Duke Nukem 2 for iOS is powered by Aemula.

Nov 9, 2012

Fixed a bug only on Nvidia Tegra CPU. Basically you can't align memory at a boundary larger than 4KB. ".align 13" will always be downgraded to ".align 12".

We've republished Aemula for Android on google play. Since we lost previous keystore that we can not continue to upgrade the old app, this is a different app from the previous one.

Aug 2, 2012 Aemula for Cydia

Aemula is now quite usable, so I decided to publish it for jailbreak iOS devices. However, there are still a lot of bugs to be fixed and features to be added. So try it if you are not afraid of bugs.

Jul 1, 2012 A brief history of Aemula

Jun 27, 2012 Aemula Forum

Still waiting for Aemula Oldies/S update to be approved. This update has very significant optimization that I have done for Daggerfall/Duke3D/Warcraft2. Civ2 will run faster too under windows 3.1 standard mode.

Now that the hardest part has been done, I am reopening the forum at litchie.com. Previously I don't have the time to clean up the spams.

Jun 4, 2012 Aemula for Kindle Fire
iOS is a great platform and xcode is amazing, however, Apple's appstore policy has a very tight rule against emulators, so there is no much room for Aemula. That is a shame, since developing native application is very easy on iOS and tools are very handy.

So in the last few months, I have been working on Android port of Aemula. After some struggle with JNI/GLSurfaceView, Aemula runs suprisingly well on Kindle Fire. The form factor is also pretty good for emulators, since it is light to hold and has enough space for on screen virtual controls.

This version is not perfect. There are still a lot of areas we could improve, and we will update it frequently in the next few months.

Apr 28, 2012 Windows 3.1 and Mouse Support

It has been a month of debug. I ended up throwing away a lot of code written last year. Being alone has a huge advantage that when code smells bad, you can always delete it without hurting people's feelings.

Now the protected mode is working, windows 3.1 works well. And serial mouse is added. By the way, Aemula is now being ported to Kindle Fire. It works great, still need to have the UI of keyboard and gamepad done properly.

Mar 22, 2012 -- Heartlight PC on iOS
We have ported a classic game Heartlight PC to iOS with Aemula.

Mar 10, 2012 -- v1.2.1
v1.2.1 is ready for download.

Mar 1, 2012 -- Sound

Now we have the old 8bit Sound Blaster 2.0. An update has been submitted for review. PoP's sound should be working properly from now on.

Also included is the fix of iCade joystick mode. We messed up the direction in the last version.

Feb 24, 2012 -- v1.2

After two months, Aemula Oldies/S 1.2 is now available in Appstore.

Previous version only supports floppy disk images, and now it can mount hard disk images. It can also mount iso cd images, however, we don't have the opportunity to demo this feature right now.

A lot of bugs have been fixed in this update. A most important fix is about the instruction timing. Some instructions will take more counts from now on. We've dedicated a register for this work, so it is almost harmless to the overall performance. Here is a quick example:

   | Instruction       | Count | Remarks                   |
   | General           |     1 | Including ALU/Short jumps |
   | FAR CALL/JUMP/RET |     2 |                           |
   | pusha/popa        |     2 |                           |
   | mul               |     2 |                           |
   | divb              |     2 |                           |
   | divw              |     3 |                           |
   | divd              |     5 |                           |
   | real interrupt    |     5 |                           |
   | String operations |   1+c | c is the loop count       |
   | IO                |   2+? | Device dependent          |

Different IO port will take different extra counts. The principal here is to avoid excessive polling. For example, the test of VSYNC signal in VGA programming usually takes a significant part of time. By making it take extra counts, we can reduce this kind of activities and thus save more battery. This fix will also make some of the games run more smooth, and normally you can play well with a setting of less than 4 MIPS.

Creating an emulator is easy, but making it work right is very very hard (Had I known it enough one year ago, I would be working on some other projects right now). If there is any bug found in playing, a report will be highly appreciated.

Aemula is still under heavy development, please expect more frequent updates.