On this page, I try to give you a honest representation of the speed DosBox Turbo. No BS. No claims that my emulator is 10x faster than yours. Just the best estimates I can give:
Q. Just how fast is DosBox Turbo? [Updated 11/30/2013]
A. It depends on the CPU in your device. DosBox Turbo is the fastest, most optimized DOS emulator available on the Android platform. Here are some rough estimates garnered from the DOOM Timedemo benchmark results:
[Update 5/1/2012] - DosBox Turbo v1.3.7+ has additional optimizations making it about 10% faster than previous versions.
[Update 8/26/2012] - DosBox Turbo 1.4.3+ incorporates numerous additional performance optimizations.
[Update 2/17/2013] - DosBox Turbo 2.0.0+ uses a custom build system that performs Profile Guided Optimization and automatically vectorizes code for NEON.
I've started tabulating benchmark results using Shareware Doom v1.9 timedemo, which makes for a great repeatable benchmark that stresses the CPU, GPU and Audio subsystems. In order to have comparable results, I used the default DOOM settings of Music Card = Soundblaster, Sound Card = Soundblaster (3 fx channels), Input = Keyboard Only. On the DosBox Turbo side, all the settings are default except:
To run the DOOM timedemo: doom -timedemo demo3
If you'd like to compare your results to the above, please run the test 3 times. If you want to compare results with other dosbox emulators, use this dosbox.conf file, and make sure you have screen scaling and landscape mode enabled. The average number of frames per second, rounded to the nearest 0.1fps is computed using the formula from the Doom FAQ: 35*gameticks/realticks, in our case 74690/realticks.
Q. Why is DosBox Turbo running faster on Tegra & Samsung SoC's rather than on Qualcomm Snapdragon S4 (Krait) [Nexus 4, Droid Maxx]? [Updated 11/17/2013]
There are three reasons that users see better performance on Nvidia Tegra 3 and Samsung SoC's rather than the Qualcomm Snapdragon S4 SoC:
1. The stock ROM on most Krait devices (ie. Nexus 4) ship with the conservative ondemand governor which has trouble staying in a higher Mhz state when other apps are running, due to the high frequency at which most Krait SoC's ship.
2. The original Qualcomm Snapdragon S4 series (especially the first gen S4 Pro in the Nexus 4) has poor integer & NEON IPC when running code with low ILP (ie. most emulators). Due to the poor Integer & NEON IPC, most emulators will suffer a performance hit on Snapdragon S4 series SoC's when compared to a standard Cortex A8/A9/A15. (reference: discussion in Qualcomm Developer Forum & latencies seen in compiled code). Furthermore, the SoC is very sensitive to the governor used (see #1 above).
3. The Nexus devices (ie. Nexus 4) that utilize the Snapdragon SoC use the default "non-optimized" dalvik & bionic libraries.
NOTE: Android 4.4 (KitKat) + Interactive Governor goes a long way to improve performance on the Nexus 4 over the older Android 4.3 (Jelly Bean).
NOTE2: The newer Nexus Devices (ie. Nexus 7 2013 and Nexus 5) use the newer Qualcomm Snapdragon 600 & 800 series which have fixed the poor Integer & NEON IPC that was present in the first generation Krait.
Q: Why is there a small delay (lag) between when I tap a button on the screen and the response? [Updated 11/30/2013]
A: In order to differentiate between single tap (mapped by default to left mouse button) & double taps (mapped by default to right mouse button) on the screen, the system needs to wait approximately 300ms to differentiate the two. If you disable the double tap gesture (ie. set it to NONE), screen taps will be near instantaneous (and perceived performance will be much higher!). You can enable the two-finger action (see main FAQ) for right mouse button, if you still need a right click action.
Q. Is there anything I can do to improve performance? [Updated 11/17/2013]
A. Please make sure you are using the latest release of DosBox Turbo. Version 2.0.0 and above have included numerous speed optimizations. For users of rooted phones using SetCPU (or similar program) to change the CPU governor.
One can determine if there is a problem with the governor by accessing the "Quick Menu". Slide the screen to the right, and scroll the quick menu to the bottom. A 'warning icon' will appear in the CPU Governor section if your device is using a non-optimal governor.
I suggest setting the Cycle Rate to auto, as that will force DosBox Turbo to run as fast as your phone allows without dropping audio samples. This will suffice in the majority of cases; however, the auto setting tends to be a bit conservative and you can get more speed by manually set the cycle rate to a value higher than the phone would otherwise select on the 'auto' setting for more speed. Audio samples may start dropping, and the sound might start to crackle if you do that; however, sometimes the crackling is un-noticable and the speed gains may be worth it.
The Memory should be set to the lowest amount necessary to run the application. For example, DOOM runs great with 4MB, Warcraft requires 8MB. A higher memory setting than necessary does not equate to improved performance and may actually hamper performance.
[Snapdragon S4 SoC (ie. Nexus 4) Tip]: Significant performance gains can be realized on these devices by simply changing the governor to interactive and killing all running apps in memory before starting DosBox Turbo. Further performance gains be be realized by utilizing the Faux123 custom kernel. Edit [11/17/2013] Android 4.4 (KitKat) + Interactive governor improve performance significantly over the older Android 4.3 (JellyBean).
If you have a dual/quad core device, set mpu401/GeneralMIDI instead of Sound Blaster for music in your game's setup if it is possible, and enable MT32/MIDI emulation in DosBox Turbo.
Optimum Performance Settings:
Memory: Use the lowest setting that runs your game.
3dfx Emulation: OFF
GPU Rendering: On (Some older devices are not compatible with or will run faster with this setting disabled)
Turbo Cycles: On (starting w/version 2.0.5, this option will improve speed much more than previously)
Turbo VGA: On
Turbo Audio: On
Frame Skip: 2
PC Speaker: OFF
Virtual Joystick: OFF
Virtual Buttons: OFF
ISA PnP: OFF
IPX Networking: OFF
CPU Core: Dynamic
CPU Type: auto
CPU Governor: Interactive [Your ROM will need to be rooted to change this]
Furthermore, in DB Turbo v1.3.6+ you can reduce the Audio Quality to get more performance, as well as choosing a simpler sound card. The following may speed up the emulation (you should run the benchmark to confirm):
Sound Device: SoundBlaster 2 (If your game does not work with SoundBlaster 2, you may have to switch back to SoundBlaster 16).
Audio Frequency: 8000Hz (Note: On some modern devices with NEON support, 16000 or 22050 is actually faster than lower values due to NEON optimizations)
Mixer BlockSize: 512
Audio Prebuffer: 10 (or less)
For absolute maximum performance:
Enable Sound: Off
CPU Governor: Performance