fMSX


VGB


VGBA


iNES


MG


ColEm


Speccy


AlmostTI


Windows


Android


Symbian


How?


Who?


Tell!

Emulators for Android

iNES  |  MasterGear  |  Speccy  |  fMSX  |  ColEm  |  VGB  |  VGBA
Features  |  News  |  Tips  |  Downloads  |  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.


Features

Optimized for Android
Emulation and screen rendering are heavily optimized for Android platform using hand-written ARM assembly and OpenGLES.
Fast-Forwarding
The fast-forwarding feature lets you quickly skip through long dialogs and demo sequences.
Joystick Emulation
The joystick is emulated with hardware keys, virtual joypad, or accelerometer. Sony Xperia Play, Nyko, MOGA, iCade, and Sixaxis controllers also supported.
Freeze/Restore
The gameplay can be saved at any moment and restored to the same point later. Emulators will also save state on exit, letting you restart where you have left off.
Mouse Emulation
For the old software that requires a mouse, it is emulated with the touch screen.
Recording Music
The soundtrack can be saved to a MIDI file to be played back later or used as a ringtone.
Compressed Files
The emulators will automatically process files with .zip (WinZIP) and .gz (GZIP) extensions. You do not need to unpack these files.
Built-in Debugger
Many emulators include a built-in debugger for hacking or developing your own retro software.
Cheats
Cheatopedia offers hundreds of cheats for popular games, or you can enter your own cheat codes.
Screenshots
The emulators will save stamp-sized screenshots for each game you play, and show them in the file selection dialog.
State Exchange
State Exchange lets you swap gameplay states with other users playing the same game.
Network Play
The NetPlay feature lets you play with other users over local network or Internet.
Normal Display
The picture fills the center of your device screen, while retaining the original display ratio.
Stretched Display
The picture is stretched horizontally to fill the entire device screen, for the biggest possible size.
Softened Display
The picture is softened, hiding individual pixels, as if it were shown on an old analog TV.
TV Scanlines
Horizontal raster lines are added, simulating analog TV interlace effect.
Keyboard Emulation
The keyboard is naturally emulated with the hardware keyboard or the on-screen virtual keyboard, in case your Android device lacks a real one.
Frame Rate Display
The frame rate counter shows how fast your emulation is running. The ideal rates are 60Hz for NTSC video and 50Hz for PAL video.

News

23 May 2013

The new VGBA 3.9.65 has been published to the Google Play. In this new release, I continue speeding up the emulation by rewriting certain critical parts in ARM assembler. This time, I have optimized the code that clears every GBA scanline before rendering it. Also fixed several possible crash sources, finally fixed the File Selector toolbar to the bottom of the screen, and added five more games to the Cheatopedia: Jurassic Park (3 games), Need For Speed (2 games), Astro Boy, and xXx.

22 May 2013

Made a minor MasterGear 2.7.19 update today, fixing several minor bugs. Whoever experienced crashes or empty File Selector views, give this new version a try.

21 May 2013

Published VGB 3.7.13. This version fixes several crash sources, finally finds a permanent place for the File Selector toolbar, and adds five more games to the Cheatopedia: three Megaman, Mario Tennis, and Mario Golf.

20 May 2013

Starting week with the ColEm 2.7.7 release. This new version will show real game names, whenever possible, and automatically hide virtual controls when the real gamepad is used. I have fixed several possible crash sources and other issues reported by users.

16 May 2013

Just released iNES 3.7.24. Added two new mappers (#163 and #164) used for unlicensed Nanjing games, such as Final Fantasy 5/7 and Pokemon Yellow. If you are using a physical joystick or gamepad, the virtual controls will now automatically disappear. Touch the screen to bring them back. Finally, I have fixed the File Selector toolbar, making it stick to the bottom of the screen.

15 May 2013

In the VGBA 3.9.64, published today, I went over alpha-blending, fade-in, and fade-out emulation assembler code and optimized it for better performance in games with complex graphics, especially when you run them on slower Android devices. Also added a couple of user-requested games to the Cheatopedia.

09 May 2013

I have released VGBA 3.9.63 today, with the auto-hide virtual controls feature, a fix to the Gauntet Dark Legacy game, and two more Cheatopedia entries: Riviera: The Promised Land and Teen Titans.

08 May 2013

The new VGB 3.7.12, released today, fixes timings of several very common Z80 instructions. This should hopefully fix random speed hiccups some users have experienced in certain games. The new VGB will also automatically hide the on-screen controls when you use a Bluetooth joystick or a keyboard. Touch the screen to make controls reappear, or disable this feature completely via Settings.

07 May 2013

Released MasterGear 2.7.18 today. The new version will automatically hide on-screen controls when you use a real gamepad, has faster "Soften Video" mode, optimized in assembler, adds a proper Android menu to the Gallery, and a sort-by-date mode to the File Selector.

03 May 2013

Published fMSX 3.6.13 and Speccy 1.9.8 versions this morning. The new Speccy enables printer output to /sdcard/Speccy/PrinterOutput.txt. The emergency fMSX release patches a possible buffer overflow bug in the native code.

01 May 2013

Released VGBA 3.9.62 to the Google Play. The new version fixes failing hardware check problem in Dragonball Z: Taiketsu, makes sure in-game saves work in Mario & Luigi, further optimizes video output, and adds another seven games to the Cheatopedia: four Harry Potter games and three Sims games.

30 Apr 2013

Published ColEm 2.7.6 with improved Z80 emulation and optimized "Soften Video" algorithm.

25 Apr 2013

Just released iNES 3.7.23 with support for more NES hardware mappers. The new mappers are #97 (Kaiketsu Yanchamaru), #97 (multiple VS System games), #101 (Urusei Yatsura - Lum no Wedding Bell) and #107 (Magic Dragon). Also optimized the "Soften Video" algorithm in assembler language and gained about 15fps with "Soften Video" option enabled.

24 Apr 2013

Published VGBA 3.9.61 with optimized GBA memory access routines and the "Soften Video" alorithm partially rewritten in ARM assembler. This has gained +10fps with the "Soften Video" option enabled. Also, added Spider-Man, Spider-Man 2, and Duke Nukem Advance to the Cheatopedia.

23 Apr 2013

fMSX 3.6.12, released today, adds support for the MSX printer. You will find printer output in the /sdcard/fMSX/PrinterOutput.txt file. Also fixed the problem with the [SHIFT] key on physical keyboards producing the [N] key and added missing support for the Xperia Play [FIREA] and [FIREB] buttons.

22 Apr 2013

VGB 3.7.10, published a few moments ago, adds GameBoy Pocket Printer emulation. Starting with this version, VGB, will output pictures printed with GameBoy Pocket Printer to an .HTML file with the same name as your original ROM file. You can then use any web browser to view and print it to a real printer. Other changes include the improved File Selector and two new Dragon Warrior games in the Cheatopedia.


Tips

System ROMs
If an emulator requires you to supply your own system ROMs, place them into /sdcard/AppName directory (such as /sdcard/Speccy) or directly into /sdcard directory.

Fast-Forwarding
To fast-forward gameplay, press and hold the on-screen FFWD button, if present. If you do not see the FFWD button, press and hold the Android SEARCH key. If your device lacks the SEARCH key, you can assign the fast-forwarding feature to a different hardware key in the Android "Settings" menu.

Built-in Menu
All emulators come with their own internal menus, offering wide variety of advanced hardware and emulation settings. The built-in menu shows up when you either press the on-screen MENU button or select "Advanced" from Android menu. You can navigate the built-in menu with the on-screen joystick or by touching menu items. To select a menu item, touch it, or press FIRE-A. To close the menu, touch outside the menu, or press FIRE-B. Remember, these are advanced settings, so be careful changing them.

Keyboard Emulation
If you need a keyboard to operate the emulator (such as fMSX), but your Android device does not have a physical keyboard, you can quickly toggle the virtual keyboard with the on-screen KEYS button. To permanently enable virtual keyboard, set "Virtual Keyboard" in the Android "Settings" menu. Notice that the modal keys (such as SHIFT, etc) can be found at the screen corners.

Network Play
In the emulators that support NetPlay feature, such as iNES or MasterGear, you can play with other users over local WiFi network or Internet. To establish connection, follow these steps:

  • Both players should be running the same game.
  • Both players should be on the same WiFi network or have externally visible IP addresses. NetPlay will not work through NAT.
  • The first player should select "Connect NetPlay" from the menu and then choose "Become Server" option.
  • The second player should select "Connect NetPlay" from the menu and then choose first player's name from the list of available servers.
  • Both emulators will now reset and start playing as if they were the same console with two gamepads.
  • Once you are done playing, select "Disconnect NetPlay" on both devices.

...
See below for FAQ and application-specific tips!


Downloads

[#] Google Play Market

All my products are published on the Google Play Market. Please, do not forget to vote!

[#] 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.

[#] iNES for Android

iNES emulates classic NES and Famicom videogame consoles from Nintendo. It plays NES, Famicom, DiskSystem, and VS System games on your Android phone or tablet. Save game at any time and restart from that point later. You can also use GameGenie cheat codes, make screenshots and save game music in MIDI format. More...

[QR]
  • Network play support
    Since Dec 4 2012, iNES supports playing over local network or Internet with other iNES users. You both have to be playing the same game and be on the same WiFi network, or have Internet-visible IP addresses.
[#] MasterGear for Android

The MasterGear emulates several 8bit videogame consoles from SEGA. It plays Master System, GameGear, Mark 2, Mark 3, SG1000, SC3000, and SF7000 games on your Android phone or target. You can save game at any time and restart from that point if you get killed, make screenshots, and even save game music in MIDI format to play it later. More...

[QR]
  • Network play support
    Since Dec 7 2012, MasterGear supports playing over local network or Internet with other MasterGear users. You both have to be playing the same game and be on the same WiFi network, or have Internet-visible IP addresses.
[#] Speccy for Android (also see free version)

Speccy emulates 16kB, 48kB, and 128kB versions of Sinclair ZX Spectrum, as well as Spectrum +2, +2A, and +3, as well as Timex Sinclair models. Although I had done some ZX-related work in the past, for many years I abstained from writing a Sinclair ZX Spectrum emulator, because there were so many other Spectrum emulators around. On the other hand, it felt like a gaping hole on my resume. So, here it is, yet another Spectrum emulator, trivially named Speccy. More...

[QR]
  • To change joystick type or enable mouse
    Go to the built-in menu, select "Input devices" and set whatever input device(s) you want.
  • 128k Spectrum bootup menu
    This menu can be operated with the on-screen arrow buttons, while holding CSHIFT. Believe it or not, but that is how original 128k Spectrum did it.
  • To load program from a tape (i.e. .tap or .tzx file)
    1. Select "Tape Loader" from the 128k Spectrum bootup menu or type LOAD "" (SSHIFT + J, P, P, ENTER) on 48k Spectrum to start the tape loader.
    2. Press the on-screen MENU button to go to the built-in menu and toggle the "Tape running" option to start the tape. There are also options to rewind and browse tape contents.
    3. Wait for the program to load, which may take a while, just like on a real ZX Spectrum. You can speed things up by holding the Android SEARCH key: it fast-forwards the emulation.
[#] fMSX for Android (also see free version)

fMSX emulates the popular MSX home computer from the 1980s, its MSX2 and MSX2+ upgrades, and many add-ons. fMSX is the first emulator I wrote and one of the first MSX emulators from which many others have been derived. Run your old MSX programs from disks or game cartridges on your Android phone or tablet. More...

[QR]
  • To enable mouse or joystick
    Go to the built-in menu, select "Input devices" and set mouse or joystick in joystick port #1. Same goes for the second joystick port.
[#] ColEm for Android (also see free version)

While developing fMSX, I got a request to take a look at the ColecoVision videogame console. The request contained a short document on the ColecoVision internals, from which I found that ColecoVision was not much different from MSX. Thus, I got to work and in a short while made a ColecoVision emulator, later known as ColEm. More...

[QR]
[#] VGB for Android

VGB emulates Nintendo GameBoy handhelds and their accessories. It plays GameBoy, GameBoy Pocket, GameBoy Color, and Super GameBoy games on your Android phone or tablet. VGB also supports the Pocket Printer, GameGenie cheat codes, and more. Please notice that VGB will not play GameBoy Advance games: you will need VGBA for that. More...

[QR]
  • GameLink support
    As of Dec 17 2012, VGB supports GameLink emulation over a local network or the Internet. To establish connection, select "Connect NetPlay" from the Android menu. Note that both of your devices have to have valid IP addresses. This feature will not work if one of you is behind NAT.
  • RumblePak support
    As of Mar 11 2012, VGB supports RumblePak emulation using your device's built-in vibration. Your phone will vibrate every time a game uses the "rumble" feature.
[#] VGBA for Android

VGBA emulates the Nintendo GameBoy Advance handheld. It plays GameBoy Advance games on your Android phone or tablet. Please notice that VGBA will not play classic GameBoy games: you will need VGB for that. More...

[QR]
  • VGBA does not require GBA BIOS file
    It emulates GBA BIOS internally instead.
  • VGBA supports light sensor, tilt sensor, and RumblePak
    You can find these features used in such games as Boktai, Boktai 2, Warioware Twisted, and Drill Dozer.
  • If you are having trouble saving games
    Use the gameplay freezing feature instead. Press the Android MENU key and select "Freeze" to save your game. Later on, select "Restore" to restore your game back to where you have frozen it. Having said that, I would still appreciate a bug report for any game that fails saving/restoring state on its own.
  • If you are still having trouble saving games
    If you cannot save games, even with the freezing feature, and the games won't even save state when you exit and restart VGBA, you may be low on the disk space. Check how much free space you have got in the folder where your games are. There should be at least 512kB of free space for saving and freezing to work.
  • If nothing works, games do not save, cheats do not work
    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 VGBA from your device, then reinstalling it from the Google Play.

Frequently Asked Questions

General

Video

Audio

Input

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 the Google Play Store comments is not helpful, as I cannot 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 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.

    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 application 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 "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 "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 "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 action bar from the top of my screen?

    To quickly toggle the action bar, place your finger at the middle of the screen and flick it up to hide the action bar, or down to make it reappear.

  10. 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 Latency" parameter in the Android "Settings" menu. Reducing it too much may cause sound distortions though, so be careful. If your audio becomes distorted, increase the latency.

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

    If you are hearing clicks and pops in the sound, increasing the "Audio Latency" should fix your problem, at the cost of some sound lag. If the sound issues persist, decrease the "Frames to Draw" in the "Settings" to its default 35% value or enable the "Hardware Acceleration" option to speed up the display updates.

  12. 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 Latency" setting.

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

    To resize joystick buttons, open "Virtual Joystick Size" setting and choose any size you like. To move buttons, open "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.

  14. 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, select the "Virtual Joystick" option in the Android "Settings" menu. The same option can be used to show wireframe controls, or disable virtual joystick completely. You can also control joystick by physically tilting your device, if you enable the "Tilt Joystick" option and your device has an accelerometer.

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

    Auto-fire is usually enabled via Advanced Settings menu. Go to the Android menu and select "Advanced" there.

  16. Can I use my hardware keyboard or Xperia Play gamepad?

    If you have got a physical keyboard or Xperia Play gamepad, you can assign keys to joystick controls by using the "Assign Keys" option in the "Settings". By default, your keys are going to be assigned as follows:

    EmulatorGeneric AndroidXperia Play
    FIRE-ASPACE, A, S, D, F, G, H, J, K, LX (SQUARE)
    FIRE-BZ, X, C, V, B, N, MY (TRIANGLE)
    FIRE-LQ, E, T, U, OL
    FIRE-RW, R, Y, I, PR
    STARTENTERSTART
    SELECTTABSELECT
    FFWDSEARCHSEARCH

  17. Can I use a USB or Bluetooth gamepad, like Nyko Playpad?

    Yes, you should be able any standard gamepad or joystick with any of my emulators. In particular, set the switch at the bottom of Nyko Playpad to the "generic gamepad" position. You may also want to visit the "Assign Keys" setting in order to make a comfortable button layout for yourself.

  18. I have 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.

  19. I have iCade joystick. Will it work?

    Starting Apr 5 2013, all new releases of my emulators support iCade joysticks. To enable iCade support, go into "Settings", then toggle "iCade Support" on. You may also want to customize the button layout with the "Assign Keys" setting.

  20. I have 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.

  21. I have 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.

  22. 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.

  23. 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 "Cheatopedia" there. Cheatopedia contains premade cheats for many popular games.

    To enter cheats manually, go to the Android menu and choose "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:

    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.

  24. 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".

iNES  |  MasterGear  |  Speccy  |  fMSX  |  ColEm  |  VGB  |  VGBA
Features  |  News  |  Tips  |  Downloads  |  FAQ


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