fMSX


VGB


VGBA


iNES


MG


ColEm


Speccy


AlmostTI


Windows


Android


Symbian


How?


Who?


Tell!

Emulators for Android

Downloads  |  News  |  FAQ

by Marat Fayzullin

Nintendo Entertainment System, Famicom, GameBoy, Super GameBoy, GameBoy Color, GameBoy Advance, Pocket Printer, GameLink, and DiskSystem are trademarks of Nintendo. SEGA SG1000, SC3000, SF7000, Master System, and GameGear are trademarks of SEGA. While programs presented at this site attempt to create "compatible" environment for the gaming software, they are not equivalent to the original hardware.

Emulators are programs that run software written for old computers or videogame consoles on the new hardware. Essentially, an emulator makes old software "think" that it is running on the original hardware, while it actually runs on your computer. I am creating emulators since 1993 and have made quite a few of them. For those who would like to try making an emulator on their own but do not know where to start, I have written a short introduction into the craft.

Originally, I developed emulators for PCs and Unix workstations. Once the mobile devices, such as cell phones and tablets, became capable of emulating older hardware, I started porting my emulators to these devices. Thus, at this page you will find my applications for Android-based phones and tablets, as well as some useful tips on setting them up.

If you work for a game company that would like to run its legacy games on mobile phones or other hardware, and need help, contact me.


Downloads

[#]VGBA
GameBoy Advance
[#]iNES
NES, Famicom, DiskSystem, VS System
[#]MasterGear
MasterSystem, GameGear, SG-1000, SC-3000
[#]VGB
GameBoy Color, GameBoy Classic, Super GameBoy
[#]Speccy (free version)
Sinclair ZX Spectrum
[#]fMSX (free version)
MSX, MSX2, MSX2+
[#]ColEm (free version)
ColecoVision
[#]AlmostTI
TI Graphing Calcs
[#] Google Play Market
All my products are published on the Google Play Market. Please, do not forget to vote!
[#] Aptoide Store
My free products can also be found on Aptoide, totally Google-free.
[#] Opera Store
You can also download my apps from the Opera Store.
[#] EMUL8 Discussion Group
Report and discuss your problems here. You may need to create a Google account to post to this group, but you do not have to become a member.

News


Optimized for Android
Using hand-written assembly and OpenGLES.


Freeze/Restore
Save gameplay any moment and return to the same point later. Gameplay always saved on exit.


Fast-Forwarding
Quickly skip through long dialogs and demos.


Joystick Emulation
Hardware keys, gamepads, virtual joypad, or accelerometer.


Mouse Emulation
Emulated with touch screen.


Recording Music
Save soundtrack to MIDI file and use it as rington.


Compressed Files
.ZIP and .GZ files automatically supported.


Built-in Debugger
Built-in debugger for hacking or developing your own retro software.


Cheats
Hundreds of cheats for popular games, or enter your own codes.


Screenshots
Stamp-sized screenshots for each game you play, shown in file selector.


State Exchange
Swap gameplay states with other users playing the same game.


Network Play
Play with other users over local network.

19 December 2016

Just pushed iNES 4.7.1 to the Google Play, making some final adjustments to the sound chip emulation. Register $4015 now works properly, and sound channels get silenced when their frequencies sweep beyond $7FF. Note that the last week I also released the totally free iNES 4.7 for Windows and Linux.

15 December 2016

MasterGear 3.6.6, a new version of my Sega MasterSystem and GameGear emulator for Android, is now online. This release optimizes GLES shaders used for Scale2x scaling algorithm, color filters, and vignette effect. I have also introduced the "automatic" audio sampling rate option, where the app will run sound at the optimal sampling rate and buffer size reported by the Android OS. This minimizes the system audio latency. Note that you also have the application audio latency, controlled with the "Settings | Audio | Latency" setting. See below for all the changes.

12 December 2016

ColEm 3.8.5 adds the same improvements I introduced into my other apps over the last few weeks. Once you choose the "Audio | Sampling Rate | Automatic" option, ColEm will ask Android OS for the best sampling rate and buffer size. These optimal parameters should minimize the audio latency. I have also optimized GLSL shader code for the Scale2x, color filter, and vignetting algorithms.

7 December 2016

I have just published iNES 4.7, with completely rewritten sound chip emulation. Hopefully, the new APU chip code will address complaints about the sound being "wrong" in many games, including such titles as Super Mario Brothers and Duck Hunt. This release also fixes problems with VRC2 and VRC4 hardware used in Konami games. These games are usually classified as mappers #21, #22, #23, and #25, but the exact hardware type requires some additional detection. If you are still experiencing problems with any of VRC2/VRC4 games, please, let me know.

5 December 2016

fMSX 4.7.5 is now online and ready for you to download. This release adds the "Automatic" audio sampling rate setting that lets the emulator pick the optimal sampling rate and buffer size reported by Andorid OS. This should provide you with the minimal possible latency from the Android itself. I have also heavily optimized GLES shaders used for scaling and special effects.

1 December 2016

Released Speccy 4.1.6, making a few emulation fixes. In this version, I have inverted the tape input bit, making Billy Kid run. Also fixed the problem with the tape not auto-starting when loading it in the 128kB Spectrum mode. Some games, like Altered Beast, expect Kempston joystick buttons to produce low digital levels when pressed. This is now an option. Finally, I have optimized GLES special effects and added an option to use the optimal sound sampling rate and buffer size suggested by the Android OS.

28 November 2016

VGB 5.0.5, published this morning, adds the same improvements and enhancements as iNES 4.6.7 released the last week. The GLES shaders, used for scaling and special effects, have been optimized. The new "Audio | Sampling Rate | Automatic" setting lets you choose the best sampling rate and buffer size that your Android hardware reports. At this setting, you should have the minimal audio latency. Just keep in mind that the hardware latency gets added up on top of the "Audio | Latency" setting you choose.

24 November 2016

This week's VGBAnext 5.4.3 release improves GLES video effects performance and adds a new option for the optimal sound settings. When you select the new "Audio | Sampling Rate | Automatic" option, VGBAnext will query Android for the best sampling rate and audio buffer size, and use these settings to render sound. On devices supporting low-latency audio, these optimal settings should insure the smallest possible latency (always added on top of the latency chosen inside the emulator).

21 November 2016

There is a new iNES 4.6.7 online today. This release optimizes GLSL code for scaling algorithms and special effects, so if you experienced lower framerates with these effects on, things should become easier for you. I have also added the "Audio | Sampling Rate | Automatic" setting and made it default. At this setting, the emulator will ask Android for the optimal sampling rate and buffer size and use these parameters for the lowest latency and highest quality.

17 November 2016

Just published MasterGear 3.6.5, tweaking the UI a little and shifting to the latest Android NDK and CLANG compiler. Had to fix quite a lot of warnings, since CLANG has more thorough syntax checks than GCC.

14 November 2016

Released ColEm 3.8.4 this morning, fixing the 5th sprite functionality: the previous ColEm versions only rendered 3 sprites in a scanline instead of 4. Such games as River Raid no longer have rendering bugs.

10 November 2016

VGBAnext 5.4.2 is now online and ready for you to download. It removes the FAB button from touchless devices, like AndroidTV, and adds cheats for seven more games to the Cheatopedia, including cheats for Dead to Rights, Driv3r, Ecks vs Sever and two Fantastic Four games.

7 November 2016

Released fMSX 4.7.4 this morning, fixing save states and rewinding for MegaROMs with 16kB pages. I have also switched to Android Nougat SDK, NDK v13, CLANG compiler and newest tools. New version should support split window and freeform window modes on Android Nougat, although I do not have a physical Nougat device to test it. Please, test and let me know if anything is broken. On Marshmallow+, the app will now explicitly ask for some permissions on startup. Make sure you grant them, or the app may not work properly.

3 November 2016

Just pushed VGB 5.0.4 to the Google Play. In this version, I have switched to the newest Android SDK and NDK versions, as well as CLANG C compiler and other up to date tools. Since CLANG is much more serious about reporting problems with the code than GCC, I had to refactor all the native code to get rid of the new warnings. VGB now supports split window mode on Nougat devices, as well as freeform windows, as soon as Google enables them (or you can enable them yourself in Nougat). Since I do not have any real Nougat devices to test on, I would appreciate any help testing split and freeform windows on the real Nougat-running hardware. Finally, the new VGB will explicitly ask you to grant some permissions on startup. Please do grant them, or the app may not work properly.

2 November 2016

I have published Speccy 4.1.5 today, a new version of my universal Sinclair ZX Spectrum emulator. In this release, I have switched to the latest Android Nougat SDK, NDK v13, and the newest CLANG-based toolchain. Since the CLANG compiler is more strict than GCC, I had to refactor the native code to avoid additional warnings. The new Speccy runs in a split window on Nougat and will also run in freeform windows when Google enables them in the upcoming Android releases. As customary with Marshmallow+ apps, Speccy will now explicitly ask for some permissions on startup. Please, grant them, or the app may not function properly.


Normal Display
Maintain the original display ratio.


Stretched Display
Stretch horizontally to fill the entire screen.


Softened Display
Smear individual pixels, as if on an old analog TV.


TV Scanlines
Add horizontal raster lines.


Keyboard Emulation
Open on-screen virtual keyboard, if you do not have real one.


Frame Rate Display
See how fast your emulation is running.


Frequently Asked Questions

General

Video

Audio

Input

Network Play

Cheats

Answers

  1. I want to report a bug or make a suggestion!

    The best ways to get help are by reporting your problem on the forum or by emailing me directly. Due to the large number of requests and limited time, I can't handhold you or help you learn how to use my apps. I can only help you if you have found a geniune bug and can explain what it is in clear terms. Generally, it takes a week or two to resolve most issues, unless I am sick, busy, or you are asking about something way over my head.

    Also note that reporting problems in a Google Play review is not very helpful, as it makes more difficult for me to respond to your complaint and clarify what the problem is. Adding negative rating to your Google Play feedback makes it almost certain that I will not waste my time trying to help you. Thus, start by using the forum or emailing me to get help.

    To make my job easier, make sure you...

  2. I want games! I need games! Where do I find games?

    You can find a huge collection of public domain games for old game consoles at the PD ROMs web site. For both legal and ethical reasons, I cannot and will not tell you where to download commercial games for running them with my emulators, even if you email me about it. If you really need to, use an Internet search engine instead. Please, do not download and run any software that you do not already own (i.e. legally bought a cartridge with the same game). It is the right thing to do.

  3. Nothing works, saves fail, everything hangs or crashes!

    Aside from using a pirated version (that is known to fail randomly, on different features) and low disk space, this problem may sometimes be caused by a package upgrade. You can fix it by completely removing emulator from your device, then reinstalling it from the Google Play.

  4. I have bought the app, but now it says I do not have a valid license!

    To protect against piracy, I had to introduce the Google Play license check into commercial versions of my Android apps. Every now and then, the license check will use the Google Play Store app on your device to see if you have actually bought my app. This operation is completely transparent to the user, unless it fails. My statistics show that license checks fail for about 3% of people. In order to stay in the other 97%, make sure that

  5. I cannot save games and screenshots do not show up either.

    The two most common reasons are lack of free disk space and active USB connection to a computer that locks your storage from changes. Also, starting with Android 3.2+, Google essentially disabled writing to the external SD card. This means that if you place emulator files to the external SD card, emulators may not be able to save game states or screenshots. If you encounter this problem with your device, avoid it by always placing files to the internal SD card.

  6. Do your emulators work on rooted devices?

    All my applications run normally on rooted devices. There is a catch though. If you have a rooted device with LuckyPatcher or some other cracking tool installed, my products will not run on your device. You always have a choice of removing the pirate tools: once they are gone, my applications will run, whether your device is rooted or not.

  7. Emulator is too slow. How do I make it faster?

    First of all, my emulators will always try to mimic the actual hardware speed. You can easily verify that by enabling the "Video | Show Frame Rate" option and noting the "fps" value at the top-left screen corner. As long as this value stays close to 60fps (50fps for PAL hardware like ZX Spectrum), your speed is just fine. If you still want emulation to run faster than that, disable the "Video | Sync Display" option and watch things take off.

    Let us now suppose that you are not getting the optimal speed. The emulation speed generally depends on your hardware, the other software you are running, and your emulation settings. Follow these simple steps to improve the speed:

  8. How can I make fast-forward stay on all the time?

    To make FFWD button a toggle switch, enable "General | Persistent Fast-Forward" option. Please note that if you are trying to play games with fast-forwarding always on, you may be better off following performance improvement advice instead.

  9. How do I remove the title bar from the top of my screen?

    To quickly toggle the title bar, place your finger at the middle of the screen and flick it up to the top to hide the the bar. To make the title bar reappear, flick your finger down from the top of the screen. You can also choose to hide the title bar on startup, by enabling the "General | Hide Title Bar" option. This will also hide the menu though. To get the menu back, flick your finger down the screen.

  10. When I rotate my Gingerbread device, the picture disappears!

    There appears to be a bug in Android 2.x (Gingebread) that breaks OpenGLES views when you rotate the device. Starting from August 2013, all my emulators come with a workaround for this bug. So, if you are experiencing this problem, head to Google Play and download the latest version of my app.

  11. When I use video acceleration, the picture becomes fuzzy.

    When scaling pictures, the OpenGLES hardware always adds a bit of blur, to avoid ugly scaling artifacts. If you do not like the fuzzy picture, disable the "Video | Hardware Video Acceleration" option for the crystal clear image, at the cost of lower performance and shorter battery life.

  12. The picture does not fill the screen.

    When not using hardware video acceleration, the emulator will scale picture with the highly optimized assembler code running on your main CPU. This code is tailored for several different screen resolutions. The emulator will choose the resolution that best matches your screen, but may not completely fill it. If you would like the picture to fill your whole screen, enable the "Video | Hardware Video Acceleration" option.

  13. Colors look wrong. I want to change them.

    Several emulators, such as iNES and VGB, let you change the color palette to the one you like. In order to make a custom color palette for a game named Game.nes or Game.gb, create a text file named Game.pal with 64 (for iNES) or 16 (for VGB) color definitions in the RRGGBB format, one per line. If you want to have the same custom palette for all the games, place it into /sdcard/iNES/iNES.pal or /sdcard/VGB/VGB.pal instead. Here is a sample VGB palette file:

    FFFFFF ; Normal colors
    989898
    585858
    000000
    FFFFFF ; Background colors
    989898
    585858
    000000
    FFFFFF ; Sprite colors
    989898
    585858
    000000
    FFFFFF ; Window colors
    989898
    585858
    000000
    

  14. Sound lags. How do I prevent it from lagging?

    If you feel that the sound lags on your device (i.e. you hear shots a little bit after pressing the fire button), try decreasing the "Audio | Audio Latency" setting. Reducing it too much may cause sound distortions though, so be careful. If your audio becomes distorted, increase the latency. You may also want to try toggling the "Audio | Native Audio" option and see if it makes sound better.

  15. Sound clicks and pops. How do I clean it up?

    If you are hearing clicks and pops in the sound, increasing the "Audio | Audio Latency" setting should fix your problem, at the cost of some sound lag. If the sound issues persist, set "Video | Frames to Draw" setting to 35%, or enable "Video | Hardware Acceleration" option to speed up display updates. You may also want to try toggling the "Audio | Native Audio" option and see if it makes sound better.

  16. Sound repeats, like an echo. How do I fix it?

    The echo often occurs on slower devices, where emulation cannot keep up with the audio, so the audio repeats, while emulation catches up. You can avoid this problem by optimizing performance to make emulator run faster. If the sound still echoing, increase the "Audio | Audio Latency" setting. You may also want to try toggling the "Audio | Native Audio" option and see if it makes sound better.

  17. I cannot press more than two virtual buttons at once. How do I fix it?

    A lot of Android devices have limited multitouch that only lets you use two fingers. On these devices, you simply cannot press more than two virtual buttons at once. My emulators offer a workaround of sorts though. Go into the "Input | Edit Layout" setting and drag buttons so that they overlap a little bit. Now, you can press both buttons by touching the overlapped spot.

  18. Virtual joystick buttons are too small, too big, or awkwardly placed. How do I change them?

    To resize joystick buttons, open the "Input | Virtual Joystick Size" setting and choose any size you like. To move buttons, open the "Input | Edit Layout" setting and drag buttons around the screen to the most comfortable spots. Keep in mind that when you rotate your device, each button will "stick" to the closest screen edges.

  19. Virtual joystick buttons obscure my screen. Can I change them?

    Normally, you will see transparent controls overlaid on top of the display. To change their opacity or hide the controls altogether, use the "Input | Virtual Joystick Opacity" and the "Input | Virtual Joystick Shape" settings. You can also control the joystick by physically tilting your device, if your device has an accelerometer and you enable the "Input | Tilt Joystick" option.

  20. Can I set my own virtual joystick images?

    In my apps, released after August 14 2015, you can supply your own virtual joystick skin. Make a Controls.png file using the image at the right as your template, then stick it into the emulator-specific folder, like /sdcard/iNES or /sdcard/VGB. Then go into "Settings | Input | Edit Joystick Layout" and select "Custom Skin" as the joystick shape.

  21. Does joystick have auto-fire? How do I enable it?

    See the "Input | Auto Fire Settings" setting. It lets you choose what buttons are going to have auto-fire.

  22. Can I use my keyboard, gamepad, or Xperia Play keys?

    Of course you can use your generic keyboard, gamepad, or joystick with any of my emulators. If your gamepad has a mode switch, make sure it is set to the "generic gamepad" position. You may also want to visit the "Input | Assign Keys" setting in order to make a comfortable button layout for yourself. By default, your keys are going to be assigned as follows:

    EmulatorKeyboardGamepadXperia Play
    FIRE-ASPACE, A, S, D, F, G, H, J, K, LACROSS
    FIRE-BZ, X, C, V, B, N, MBCIRCLE
    FIRE-LQ, E, T, U, OL1L
    FIRE-RW, R, Y, I, PR1R
    SELECTTABSELECT, XSELECT, SQUARE
    STARTENTERSTART, YSTART, TRIANGLE
    FFWDSEARCHnoneSEARCH
    MENUMENUMENU, MODE, A+BACKMENU

  23. I have a PowerA MOGA controller. Will it work?

    Starting Feb 26 2013, all new releases of my emulators natively support MOGA gaming controller. Simply turn it on, and once you see the "MOGA controller connected" message on the screen, it is ready to play with. You can still use MOGA with older versions of my products with the help of the free universal MOGA driver available from Google Play. This little app should let you use the MOGA with many applications that do not normally support it.

  24. I have an iCade joystick. Will it work?

    Starting Apr 5 2013, all my emulators support iCade joysticks. To enable iCade support, toggle the "Input | iCade Support" option. You may also want to customize the button layout via the "Input | Assign Keys" setting.

  25. I have a Sony Sixaxis gamepad. Will it work?

    If you have got a Sony Sixaxis gamepad and a rooted Android device, you can use the gamepad over Bluetooth, with the help of the Sixaxis Controller app from Dancing Pixel. See the application web site for instructions.

  26. I have a Nintendo Wiimote controller. Will it work?

    For Nintendo Wiimote users, here is a short tutorial on using Wiimote with my applications, provided by Robert McCurdy.

  27. How do I use NetPlay?

    Most of my emulators now support the NetPlay feature that lets you play with other users over your local WiFi network or the Internet. To establish connection, follow these steps:

  28. I do not see the other player's device.

    In order to use network play, both players must be running the same game and have mutually visible IP addresses. It is only possible if

    You will not see each other in the NetPlay dialog, unless these conditions are met.

  29. What is GameLink and how is it different from NetPlay?

    Unlike stationary consoles which came with a pair of gamepads, the GameBoy and GameBoy Advance handhelds had a special serial cable that let users connect 2-4 handhelds together, for cooperative play. This cable is known as the GameLink and supported in my GameBoy emulators, VGBA and VGB. The GameLink connection works exactly the same way as a regular NetPlay connection.

  30. Why does emulator slow down when using NetPlay?

    When using NetPlay, each player must send a lot of data over the network and wait for the other player to acknowledge every packet they send. This wait time slows down the gameplay speed for both players. The wait is slightly worse for GameLink (in VGBA and VGB) because the data needs to be sent more often. While this slowdown is unavoidable and depends on your network speed, I am working to reduce it in the upcoming versions of my products.

  31. My cheats do not work.

    Many games are available in different versions, in different languages, or with bugfixes. In order for a cheat code to work, you need to be running exactly the same version of the game that this cheat code has been discovered for. The codes will not work for a different game version, even on the real GameShark or ActionReplay hardware. Besides, many cheat codes found on the Internet contain errors and will not work on any game version. Given how unreliable cheats are to begin with, I usually can't answer the question why your cheat does not work.

  32. I cannot enter any cheat codes. No matter what I do, they do not work.

    The easiest way to use cheat codes is by going to Android menu and choosing "Cheats | Cheatopedia" there. Cheatopedia contains premade cheats for many popular games.

    To enter cheats manually, go to the Android menu and choose "Cheats | Edit Cheat Codes". Use the cheat editing interface to add, delete, or edit cheat codes. The editor will not let you enter a code unless your code strictly follows one of the relevant formats:
    SystemDeviceFormatComment
    GBA ActionReplay or GameShark XXXXXXXX XXXXXXXX "X" = digit from "0" to "9" or letter from "A" to "F".
    CodeBreaker or GameSharkSP XXXXXXXX XXXX "X" = digit from "0" to "9" or letter from "A" to "F".
    GB/GBC GameGenie XXX-XXX-XXX "X" = digit from "0" to "9" or letter from "A" to "F".
    GameShark XXXXXXXX "X" = digit from "0" to "9" or letter from "A" to "F".
    NES GameGenie XXXXXX or XXXXXXXX "X" = letter from "A" to "Z".
    ActionReplay XXXXXXXX "X" = digit from "0" to "9" or letter from "A" to "F", the first two digits are usually "00" or "01".
    SMS/GG GameGenie XXX-XXX or XXX-XXX-XXX "X" = digit from "0" to "9" or letter from "A" to "F".
    ActionReplay XXXX-XXXX "X" = digit from "0" to "9" or letter from "A" to "F".
    CV Memory POKE XXXX-XX or XXXX-XXXX "X" = digit from "0" to "9" or letter from "A" to "F".
    MSX Memory POKE XXXXXXXX-XX or XXXXXXXX-XXXX "X" = digit from "0" to "9" or letter from "A" to "F".

    Please note that emulators will only accept cheat codes in the above formats (whatever ones are relevant). They will not accept codes in any other formats. So, if you cannot enter a code, carefully check its format. Finally, be aware that not all cheats you find on the Internet work, even on the real hardware. Never mix cheats from different sources and try to use cheats that are known to work on at least some other emulator.

  33. How do I search for cheats in any game?

    Most of my emulators include the Cheat Hunter tool letting you search for your own cheats in any game. To use the tool, follow these simple steps:

  34. I want to add my own cheats to the Cheatopedia.

    Yes, you can extend Cheatopedia with your own cheats. In order to do that, you will have to place a text file called custom.chts into emulator-specific folder: /sdcard/VGBA, /sdcard/VGB, or /sdcard/iNES. This file should have the following format:

    [(Custom Cheats)]
    Menu=Game 1
    Menu=Game 2
    ...
    
    [Game 1]
    Menu=Cheat 1
    Menu=Cheat 2
    ...
    
    [Cheat 1]
    12345678 9ABCDEF0
    87654321 0FEDCBA9
    ...
    
    Instead of adding single-line cheats separately, you can also use a shortened notation for them:
    [Game 1]
    Code=5A5A5A5A 23232323 : Cheat 1
    Code=76767676 01010101 : Cheat 2
    
    Once you are done entering cheats and place custom.chts file into proper folder, you should be able to access your custom cheats from the top Cheatopedia menu by clicking on "(Custom Cheats)".

Downloads  |  News  |  FAQ


© Copyright by Marat Fayzullin / using icons from Double-J Design