Version 1.5.68 (WIP)

    • Add support for adding/removing on-screen control elements and remapping actions

    • Use split auxiliary virtual buttons by default (select, start, etc.)

    • Show full file listing even when selecting only a folder so the contents can be easily checked

    • Android: Add support for system gesture exclusion on Android 10+, allows placing on screen controls on screen edges without triggering back gestures

Version 1.5.67 (2022.10.29)

    • Fix issue displaying error messages when loading content from 1.5.66

    • Fix issue where backup memory isn't reloaded when restarting emulation from changing settings in System Actions

    • PCE: Update core to Mednafen 1.31.0 and include more accurate "pce" core along with a system option to swap between "pce" and "pce_fast"

Version 1.5.66 (2022.10.26)

    • Add new autosave system with multiple slots replacing the single autosave state

    • Add Autosave Launch Mode option to control autosave behavior when opening content

    • Set autosave timer default to 5 mins and keep track of time during emulation so it's not reset when pausing/resuming

    • Add options allowing separate folder paths for screenshots, patches, cheats, and palettes as supported by the emulators

    • Save screenshots in a per-content folder and name them using the current date/time

    • Add prescale 3x and 4x video effects

    • Add a link to the online documentation in the options menu

    • Add key bindings for turbo modifier and app exit

    • Android: Make save timestamp text respect locale settings when using plain file paths

    • Android: Fix text input vertical padding issues

    • Linux: Fix keyboard modifier state handling

    • Linux: Fix crash when no primary XRR output is present

    • NEO: Fix possible audio issues when loading a save state from incorrectly restoring Z80 memory

    • NEO: Store memory card contents per-game

    • Snes9x: Update to Snes9x GIT ae12429 (2022.10.22)

    • Snes9x: Add option to set folder for loading Satellaview files

    • Snes9x: Add option to set BS-X and Sufami Turbo BIOS files

    • Snes9x: Add support for loading single cart Sufami Turbo ROMs

Version 1.5.65 (2022.09.14)

    • GBA: Fix L trigger mapping bug from last update

Version 1.5.64 (2022.09.12)

    • Add video options for setting RGB color levels

    • Android: Add video option to force the highest screen refresh rate on your device in case automatic switching doesn't set the proper rate

    • GBA: Add hardware light sensor support on Android, tweaked via Light Sensor Scale system option

    • GBA: Add key bindings to increase/decrease simulated light level for devices without a hardware light sensor

    • NEO: Fix loading Magician Lord Set 2 due to wrong CRC

    • NES: Add/update mappers: 59, 314, 370, 411

    • Swan: Fix swapped A/B when Y buttons are hidden on the virtual gamepad

Version 1.5.63 (2022.09.08)

    • Android: Fix crash on Android TV when selecting Browse for Folder on a device with no document viewer activity

    • Swan: Add per-game manual rotation option

Version 1.5.62 (2022.09.04)

    • Add new app Swan.emu for emulating WonderSwan

    • The "Set screen's reported rate" frame rate option now falls back to the emulated system's rate when out of range

    • Improve the CRT overlay effect with better blending and option for a mask or grille pattern

    • Add LCD grid overlay effect

    • GBA: Add support for the hardware accelerometer and gyroscope on Android

    • NES: Update core to FCEUX GIT 1798fca (2022.08.23)

    • NES: Add/Update mappers : 176, 342, 523

    • PCE: Add options to control visible video lines for showing overscan

    • PCE: Add sprite limit option

    • PCE: Add CD access speed option

    • PCE: Add sound mixer and ADPCM low-pass filter option

Version 1.5.61 (2022.08.10)

    • Update the frame rate option "Set default rate" to "Set emulated system's rate" which uses the system's original rate such as 59.83Hz on PCE or 60.10Hz on NTSC SNES, useful with a VRR display to run content at the same speed as original hardware.

    • Update fast-forward option to support either slow motion or fast-forward and allow custom values between 0.05x and 20x

    • Reduce sound volume when fast-forwarding

    • Add Content Rotation video option to rotate the emulated display independent of the UI

    • Android: On Android 11+ the "Set screen's reported rate" frame rate option now scans all supported rates for the best match, useful if your device dynamically switches between multiple rates like 60 and 90Hz

    • Android: On Android 11+, add a new file location "App Media Folder" that normally points to /storage/emulated/0/Android/media/[app]/ and allows read/write access to all apps including file managers, useful for storing files on Android TV devices without a working system file picker

    • GBA: Fix non-working sound filtering options

    • MD & PCE: Add CHD disc image support

    • MD: Improve light gun handling: Auto-enable SMS Light Phaser based on content, update light gun position during pointer gesture, handle off-screen light gun position, map Justifier's start button to virtual gamepad, map Menacer's alternate fire buttons to virtual gamepad's B & C

    • MD: Show current setting of Input Ports option when set to Auto

    • NES: Add mappers: 126, 534

    • NES: Automatically fast-forward Famicom Disk System access times

    • Snes9x: Fix virtual gamepad player 5 incorrectly mapping to player 1

    • Snes9x: Fix .cht file not updating when toggling a cheat on/off

Version 1.5.60 (2022.07.18)

    • Detect DualShock 4 gamepad using product id so it keeps the same device name no matter how it's connected

    • Android: Add option allowing the virtual controls to overlap the area used by a phone's display cutout/notch

    • Android: Add support for displaying app content edge-to-edge behind the OS status and navigation bars

    • 2600: Update core to Stella 6.7

    • C64: Fix RGB565 color rendering broken from last VICE core update

    • GBA: Add option to override the save type in case auto-detection isn't correct

    • GBA: Add a basic audio mixer and options to control filtering and interpolation

    • GBA: Enable interrupt ticks emulation for better accuracy on all builds except 32-bit ARM due to performance cost

    • MD: Don't show Mode and A button on-screen controls when not needed

    • MSX: Fix Coleco number key mappings on on-screen keyboard

    • NEO: Fix MAME sets with 9 character filenames not appearing in game list

    • NES: Add default visible video lines option

    • NES: Add correct line aspect ratio option to scale the aspect ratio by (224 / visible lines)

    • NES: Automatically set Hyper Shot controller in FC expansion port when loading compatible software like Hyper Olympic or Hyper Sport

    • NES: Automatically set Hyper Shot light gun in FC expansion port when loading Space Shadow

    • NES: Update TXC mappers from FCEUmm and add mapper 452

    • NES: Add .unif to possible ROM extensions

    • NES: Increase FDS eject wait time to 2 seconds to fix disk change detection on certain games

    • Snes9x: Add Justifier light gun support

Version 1.5.59 (2022.05.01)

    • Load folders using a separate thread to prevent the app from not responding if the storage medium is slow like a network share

    • Auto-save backup memory to disk as it's written, currently supported on GBA, MD (CD BRAM only), NEO, NES (FDS only), NGP, PCE, Snes9x

    • Improve some file releated error messages

    • C64: Only show the default model option of the current emulated system

    • C64: Save drive types to each content's .config file so they don't reset upon loading

    • C64: Add default palette option

    • GBC: Improve accuracy of built in palette colors

    • NES: Update core to FCEUX 2.6.4

    • NES: Add mappers 63, 282, 332, 380, 414, 422

    • NES: Add options to control visible video lines for showing overscan and cropping 8 pixels on each side

    • NES: Add on/off options for the standard 5 NES sound channels

    • Snes9x: Update core to Snes9x GIT 1085ed6 (2022.04.13)

    • Snes9x: Add option to control usage of extended 239/478 video line modes

Version 1.5.58 (2022.02.09)

    • Fix a key/gamepad mapping bug when applying profiles

    • Add sound buffer size option of 1 frame for fast devices

    • 2600: Update core to Stella 6.6

    • 2600: Increase audio update rate to allow for lower audio latency

    • 2600: Fix inverted red/blue colors when using Simulate TV Phosphor option

    • 2600: Directly set analog paddle position upon touching the screen

    • C64: Update core to VICE 3.6.1

    • C64: Automatically manage virtual device traps based on TDE

    • GBA: Update core to VBA-M 2.1.4

    • GBA: Increase audio update rate to allow for lower audio latency

    • GBA: Reduce input lag by 1 frame on games that check for input on GBA scanline 160

    • MD & PCE: Add support for Musepack audio tracks

    • NES: Update core to FCEUX 2.6.2

    • NES: Increase audio update rate to allow for lower audio latency

    • NES: Add sound low pass filter and swap duty cycles options

    • NES: Add mapper 319 support

Version 1.5.57 (2022.01.17)

    • Add Options -> System -> Save Path -> Legacy Game Data Folder to convert a Game Data/[system] save path into a regular save path

    • Change the save path for the App Folder option from Game Data/[system] to EmuEx/[system]/saves

    • Lowered default audio buffers to 3 frames, except on older Android devices that don't support AAudio

    • Fix color issues when using an image effect along with an sRGB display mode

    • Android: Default non-gamepad input devices to the PC Keyboard profile

    • Android: Fix mouse button issues and add scroll wheel support in menus

    • Android: Change "Handle Unbound Gamepad Keys" option to "Handle Unbound Keys" and save per input device

    • Android: If uninstalling, prompt to keep the app's data in the Android/data/[app] folder

    • MD: Fix crash when entering a longer than expected cheat code

    • NES: Fix missing Disk System BIOS menu text

    • NES: Fix crash setting external palette from Android URI path

    • Snes9x: Add turbo L/R key bindings

Version 1.5.56 (2021.12.27)

    • Fix detecting files with uppercase extensions

    • Optimize listing folders with many files

    • Android: Fix crash when getting an intent path without a URI scheme

    • GBA: Fix reading/writing 32k SRAM .sav files

    • MSX: Fix issue where media ejects itself when a state fails to load

    • NGP: Update core to Mednafen Neopop, fixing compatibility issues and adding DAC sound, .ngf save files are still compatible but not .ngs save states

    • Snes9x: Fix issues reading cheat files from 1.5.55

Version 1.5.55 (2021.12.24)

    • Remove Separate Emulation Thread option and instead use a hybrid approach for more consistent frame times

    • When browsing files, navigating up from the root folder will open the File Locations menus

    • Add GUI option to control showing hidden files in file browser

    • Various under the hood optimizations & fixes

    • Android: Implement support for scoped storage via the native folder picker on Android 5.0+ and allow saving data onto external storage devices that were previously inaccessible. Note: If using/upgrading to Android 11+, scoped storage is the only way to access files and previous file paths will become invalid. To regain access to your content & save data, use the "Browse For Folder" menu item from the file browser top bar.

    • Android: Fix startup error on devices reporting 10-bits/channel color modes like the Pixel 6

    • Android: Add support for USB/Bluetooth mouse back button

    • 2600: Update core to Stella 6.5.3

    • 2600: Add support for using the mouse/touchscreen as an analog paddle control

    • 2600: Add option to set a predefined window region for analog paddle control

    • C64: Update core VICE to 3.5

    • C64: Add additional key bindings for symbolic keys and combine both PC keyboard configs into one

    • C64: Improve shifted key code mappings

    • C64: Add menu command to start emulation with an empty tape attached

    • C64: Add system option for selecting an external palette

    • C64: Replace Swap Joystick Ports option with Joystick Mode and add support for using joystick as keyboard cursor

    • C64: Replace cursor keys in keyboard overlay with left and up arrows

    • C64: Add support for RAM expansion module on C64/C128

    • MD: Fix possible crash in SMS mode due to illegal memory access on ARMv7 CPUs

    • MD: Skip writing blank SRAM files and remove existing blank SRAM files as needed

    • MD & PCE: Add support for FLAC encoded CD audio tracks

    • MSX: Bundled C-BIOS now runs directly from app and no longer needs installation on file system

    • MSX: Speed up state loading

    • NES: Update core to FCEUX GIT 66c301d (2021.10.19)

    • PCE: Update core to Mednafen 1.27.1

Version 1.5.54 (2021.06.18)

    • Move emulator processing into the main thread by default to reduce vsync scheduling variance, the previous method can still be enabled via Options -> System -> Separate Emulation Thread

    • Android: Fix crash when using external displays

    • Android: Work around blank emulator display on certain Mali GPUs when rendering in RGBA8888 format

Version 1.5.53 (2021.06.08, C64.emu-specific release)

    • C64: Fix missing sound in release build due to incorrect compiler flag causing part of the SID DAC code to miscompile

Version 1.5.52 (2021.06.07)

    • Add support for 32-bit color in sRGB color space as a display option when supported by the OpenGL driver to provide a more CRT-like gamma response with linear filtering

    • Add option to select rendering between 32-bit color (RGBA8888) for improved accuracy or 16-bit (RGB565) for better performance on older devices

    • Android: Improve external storage detection on Android 11 and add the OS file picker to the list of path locations

    • Android: Enable NEON CPU optimizations on 32-bit ARMv7 devices for improved performance (already enabled on 64-bit devices), note: some older Tegra 2 devices won't run NEON builds

Version 1.5.51 (2021.03.07)

    • Update OpenGL initialization code for improved compatibility

    • Fix GPU Copy Mode -> System Memory option not applying properly

    • Android: Fix screen rotation issues on certain older 32-bit ARM devices like the Nexus 7

    • Android: Fix performance issues on devices like the Oneplus 3 due to change in vsync handling from 1.5.50

    • Android: Fix crashes due to virtual display connection/disconnection operations such as those used by screen recording apps, note you must set Options -> Video -> External Screen -> OS Managed to record the full app video output

Version 1.5.50 (2021.02.22)

    • Fix possible crash when opening an empty directory or archive file

    • Small emulation thread optimizations

    • Prevent repeated key events from exiting the app from the menu, allows holding down the cancel key on a hardware gamepad/keyboard to quickly return to the main menu from a sub-menu

    • Android: External display detection optimizations

    • Android: Fix possible issue with visual updates when the app returns to the foreground

    • Android: Add option to handle unbound gamepad keys that prevents the OS from handling those events, ex. if "B" on a gamepad is unbound then the app won't exit if it's pushed during emulation with this option turned on (option located @ Key/Gamepad Input Setup -> General Options)

    • C64: Add menu shortcut for downloading the VICE system files

Version 1.5.49 (2020.12.31)

    • Android: Don't use AAudio by default on Android 8.0 due to various driver bugs causing crashes on Samsung, Asus, and Huawei devices. If you have an affected device and would like to help find possible workarounds to the crashes, please email me via the address on the Play Store page.

    • PCE: Fix invisible system card option

Version 1.5.48 (2020.12.27)

    • Fix missing text with unicode characters in UTF16 range 0x7FFF-0xFFFF

    • Android:Fix crashes on 2016-2017 Samsung devices when using AAudio driver

    • Android:Fix blank menu text on Mali-T820 GPU

    • Android:Fix incorrect button inputs with PS4 controllers (possibly others) if the device changes state while in use, note their is a separate issue where the PS4 controller isn't detected as a gamepad if it makes the bluetooth connection while in-app and is currently being investigated, connect it before launching the app as workaround

Version 1.5.47 (2020.12.26)

    • Various render thread optimizations for more consistent performance and fixes for single-core devices like the Xperia Play

    • Improved CPU -> GPU copy performance & compatibility

    • Add confirmation before taking a screenshot

    • Add sound volume to audio options

    • Add key binding for fast forward toggle

    • Changed Render Multithreading option to Image Buffers for GPUs that support sync fences, it controls whether to use a single image buffer to limit input latency but be more prone to frame drops, or two buffers for more stability but possibly an extra frame of latency

    • Android: Fix volume keys not auto-repeating during emulation

    • Android: Add option to select between OpenSL ES and AAudio audio drivers in case the default has issues

    • Android: Remove the obsolete process priority option

    • Android: Disable sustained performance mode by default on supported devices due to inconsisent performance effects

    • Android: Add support for Android 11 frame rate API to automatically select the best screen refresh rate (ex. on Pixel 4's 90hz display, 60Hz NTSC content will use 60Hz mode for reduced power use, 50Hz PAL content will use 90Hz mode for better frame pacing)

    • Android: Send frame timestamps to the system to improve frame pacing a further limit input latency in cases where frames can get backed up such as after rotating the screen or resizing the window, supported on Android 4.3+

    • C64: Add option to load media file without autostart, if file is a .prg it's loaded as a cart

    • C64: Add support for loading VIC-20 cart images in .prg format (must load without autostart) and automatically load pairs of .prg files meant for different memory addresses with *-x000.prg naming scheme (ex. Dig Dug-2000.prg & Dig Dug-a000.prg will both be loaded together when either is selected from the file picker)

    • C64: Add support for enabling VIC-20 memory expansions

    • GBC: Fix corrupted screenshots when using RGBA8888 color format

    • MSX: Use 80% volume as default for extra sound chips to avoid clipping

    • MSX: Increase internal sound emulation update rate to slightly reduce latency

    • NGP: Fix possible emulation crashes due to unaligned memory access

Version 1.5.46 (2020.06.30, released to beta track)

    • Fix a possible crash when exiting app due to not properly waiting for renderer worker threads to exit first

    • Fix emulation display and app exit/resume issues when using a 2nd window/display

    • Android: Add support for AAudio API on Android 8.0+ that supports exclusive access to the audio device for lower latency

    • Android: Add 8BitDo controller profiles

    • MSX: Enable Y8950 & MoonSound audio support

    • MSX: Add sound mixer option menu for setting volume/pan levels

    • NES: Fix crash when loading UNROM 512 hardware and add support for mapper 268

    • Snes9x: Update core to Snes9x GIT 995f0be (2020.06.07)

    • Snes9x: Use more accurate base SuperFX2 speed for Yoshi's Island

Version 1.5.45 (2020.06.07)

    • Update aspect ratio option to support custom values

    • Add option to enable/disable sound during fast forward

    • Android: Fix Performance Mode -> Normal setting having no effect

    • Android: Make Performance Mode -> Sustained on older ARMv7 devices more effective, this option tries to keep the CPU at max speed to prevent dropped frames on devices with aggressive power management but increases power usage so only enable if needed

    • C64: Add datasette controls

    • C64: Add Autostart Basic Load option

    • GBC: Fix crash when using the RTC

Version 1.5.44 (2020.06.01)

    • Rename "Dim Screen If Idle" option to "Allow Screen Timeout In Emulation" and disable by default

    • Fix some situations where the overlay effect doesn't display properly until pausing/unpausing emulation

    • Show directories in file picker using a bold font and sort them before files

    • Add confirmation prompt before clearing recent games list

    • Android: Fix app hanging on certain versions of Android when entering the background, including Samsung devices running 4.x - 5.x

    • 2600: Update core to Stella 6.1.2

    • 2600: Add digital paddle controller emulation

    • GBC: Update core to Gambatte GIT 56e3371 (2020.03.13)

    • GBC: Use RGB888 rendering by default to improve color accuracy

    • GBC: Fix minor issues handling unchanged frames during screen transitions

    • MSX: Fix a minor memory leak with emulated hardware using the i8254 chip

    • MSX: Allow selecting machine type on a per-game basis

    • MSX: Fix errors when loading from a rar or 7z archive

    • MSX: Add hard/soft reset support

    • NEO: Support decrypting samsho5/samsh5sp sets

    • NEO: Fix missing graphics in rotd set

    • NES: Update core to FCEUX 2020.05.03 GIT version

    • NES: Fix missing FDS BIOS load error messages

    • NES: Add Frameskip Mode option for games that have glitches during frameskip such as The Adventures of Rad Gravity

    • Snes9x: Fix visual issues after skipped frames in games like Starfox

Version 1.5.43 (2020.04.10)

    • Allow entering a custom path in the file browser

    • Allow entering custom values for options: On-screen Input -> Button Size, Video -> Overlay Effect Level/Content Zoom/App Zoom, GUI -> Font Size

    • Fix issues with fast-forward and improve speed consistency

    • Android: Add Ouya launcher compatibility to the standard Android build

    • Android: Work around OpenGL initialization issues on older Tegra devices

    • 2600: Add support for Genesis pad and overriding the default controller used per game

    • C64: Update core to VICE 3.4

    • C64: Use per-system gtk3_sym.vkm file to resolve input mappings and remove hard-coded C64 defaults

    • C64: Fix wrong joystick port used for turbo fire

    • C64: Fix minor memory leak in virtual disk code

    • C64: Add prompt to overwrite existing disk image when starting with a blank disk

    • NEO: Add support for Universe BIOS 4.0

    • NES: Update core to FCEUX 2020.01.30 GIT version

    • NES: Add default palette and video system options

    • Snes9x: Add SuperFX clock multiplier option

    • Snes9x: Fix issues saving emulation hack options

Version 1.5.42 (2020.02.06)

    • Android: Fix external storage detection code from 1.5.41 to work with non-stock vendor implementations like Samsung

    • 2600: Update core to Stella 6.1-rc1, save states from previous version aren't supported due to format changes

    • 2600: Add audio resampler quality option

    • Snes9x: Add separate echo buffer to console options, needed by some older ROM hacks

Version 1.5.41 (2020.02.02)

    • Various memory optimizations in font code

    • Android: Replace "Storage Devices" entry in file browser with storage volumes list reported by OS on Android 7.0+

    • Android: Work around driver bug preventing app launch on Vivante GC1000 GPU (Galaxy S3 Mini, Galaxy Tab 3) after 1.5.39 update

    • MD: Fix loading ROMs over 4MB that don't use special mappers (UMK3)

    • Snes9x: Update core to Snes9x 1.60

    • Snes9x: Add option to select audio DSP interpolation method

    • Snes9x: Correctly load .msu files from ROM path instead of save path

    • Snes9x: Fix memory leak when loading save state with MSU-1 data

    • Snes9x: Fix crash in file loader with ROM reporting incorrect type

Version 1.5.40 (2020.01.17)

    • Fix shader compiler errors on certain OpenGL drivers due to incorrect syntax

    • Android: Disable render multithreading option by default on OS versions below 8.0 due to devices with buggy drivers

    • Android: Fix a possible crash when app enters the background due to window redraw request after the renderer is inactive

    • NEO: Fix incorrect interrupt timing causing slowdowns on games like Viewpoint with Musashi 68K CPU core

Version 1.5.39 (2020.01.11)

    • Update core framework to split emulation, rendering, and input events in separate threads, this reduces worse-case input lag and allows for additional optimizations in the future

    • Add support for cancelled touch events, fixes issues with back gesture on Android 10

    • Various under the hood tweaks and fixes

    • Android: Add native 64-bit x86 builds and use the new Android App Bundle format to reduce download size

    • Linux: Various fixes to X11 and frame timer code to improve compatibilty with Nvidia drivers

    • NEO: Add support for loading Universe BIOS 3.2 & 3.3 and fix issues when saving the region/system

    • NEO: Add native 64-bit ARM build using ported Musashi 68K CPU core

    • NEO: Fix 32-bit compatibility with new Android versions by updating Cyclone 68K CPU core to eliminate text relocations

    • NEO: Fix possible crash in filename handling code

    • NEO: Fix Metal Slug 3 lockup by preventing simultaneous left + right input

    • PCE: Fix memory leak in filename handling code

    • Snes9x: Fix dropped Super Scope inputs

Version 1.5.38-beta (2018.03.25)

    • Move various options to system actions sub-menu and save them on a per-game basis

    • 2600: Update core to Stella 5.1.1

    • 2600: Add option for TV phosphor simulation blend amount

    • C64: Fix reset command

    • GBA: Fix incorrect RTC emulation option value

    • MD: Fix error reading last CD track

    • NES: Fix possible errors in ROMs that use mirroring on ARM64

    • PCE: Update core to Mednafen 1.21.1

Version 1.5.37 (2018.03.02)

    • Add option to automatically increase audio buffer size if needed such as when routing audio over Bluetooth

    • Fix possible crash in the new audio code

    • C64: Update core to VICE 3.1

    • C64: Fix PRG loading

    • C64: Fix crash selecting crop normal borders option

    • NES: Update core to FCEUX SVN revision 3394 with various mapper fixes

    • Snes9x: Fix max ROM size check

Version 1.5.36 (2018.02.26)

    • Re-written audio backend with reduced latency default settings

    • Fix possible crash when loading a game and integer-only zoom is set

    • Android: Add storage devices path to file locations menu

    • GBC & GBA: More accurate audio speed

    • GBA: Fix losing GB APU audio when changing sample rate option during a game

Version 1.5.35 (2018.02.23)

    • Improve CPU->GPU copy performance in cases where direct memory access is possible

    • Bold font for menu headings

    • System actions menu to consolidate various commands that were previously in the main menu

    • Changed back/escape button behavior to better follow OS interface guidelines

    • Various error handling improvements

    • Remove hard limits on number of key and input device configs

    • Allow navigating top bar and virtual keyboard with key input

    • Repeated key input doesn't wrap menu selections

    • Improve file browser with cleaner paths and file locations menu

    • Show menu when app suspends so game doesn't resume suddenly

    • Advanced video options with "Auto" show what is automatically selected

    • Android: Improve multi-window mode support

    • Android: Support sustained performance mode on Android 7.0+

    • Android: Adaptive icons for Android 8.0+ launchers

    • Android: Option to opt-in/out of beta builds via Google Play Store

    • iOS: Use posix_spawn() instead of system() for compatibility with newer iOS versions

    • iOS & Linux: Use proper system paths to store config files, existing config files are automatically moved to the new paths

    • Linux: Use EGL as OpenGL interface by default

    • Linux: Use KMS/DRM for vsync events

    • Linux: Replace deprecated dbus-glib code with GDBus

    • 2600: Update core to Stella 4.7.3

    • C64: Update core to VICE 2.4.32

    • C64: Toggle for warp mode

    • C64: Option for ReSID sampling mode

    • MD: Fix possible crash due to illegal memory access

    • NES: Update core to FCEUX SVN revision 3200

    • NES: Options for higher quality audio emulation modes, per-line sprite limit, and Dendy video system

    • NES & Snes9x: More accurate frame rate and audio speed

    • PCE: Fix possible crash due to bad stack memory access

    • Snes9x: Update core to Snes9x 1.55

    • Snes9x: Native PAL support, previous PAL/NTSC spoofing now controlled by video system option

    • Snes9x: Improve 239 line mode support

    • Snes9x 1.43: Fix possible crash due to buffer underflow

Version 1.5.34 (2016.07.25)

    • Fixed loading games with international characters from archives

    • Improved error messages when selecting files & directories

    • Added ability to return to default storage path by clicking the middle of the navigation bar in a file browser

    • Android: Fixed blank directory listing on some devices

    • Android: Fixed crash when using Samsung screen recorder

    • Android: Fixed Mix With Other Apps option not toggling on

    • Android: Fixed crashes on some devices like the LG G4 on Android 6.0 related to the GPU Copy Mode option

    • MD: Fix save state compatibility between 32-bit and 64-bit builds

    • MSX: Fix various issues loading media from save states

    • MSX: Store various volatile memory files in save path instead of machine path

Version 1.5.33 (2016.06.27)

    • Show error messages for various file loading errors in browser

    • Fixed loading archive files from drag & drop and Intents

    • Restored missing sound option "Mix With Other Apps"

    • Fixed screenshot write error, and taking a screenshot now advances a frame each time

    • Android: Fixed crash on Nexus 6 on Android N with GPU Copy Mode set to Auto

    • Android: Fixed lack of input response on devices like the Moto G with Marshmallow update

    • Android: Recognize stylus input as touch events

    • C64: Updated core to VICE 2.4.28

    • C64: Fixed PRG loading

    • C64: Set TDE off by default in the interest of battery life

    • C64: Added Virtual Device Traps option needed to use disks without TDE

    • C64: Added more options under System & Media Control menu

    • Snes9x: Recognize .mgd extension

Version 1.5.32 (2016.06.17)

    • Android: Fixed GPU Copy Mode from picking Surface Texture if the related shader fails to compile and can't actually produce any graphics output

Version 1.5.31 (2016.06.16)

    • MSX: Quick fix for missing Machine Type menu item, no other systems were changed

Version 1.5.30 (2016.06.16)

    • Rewrote archive support, all systems can load ZIP, RAR, & 7Z archives for most media except CD images (solid archives may not always work currently)

    • When assigning an unrecognized key in an input config, display its keycode instead of "Unknown" so the user can differentiate them

    • Improve velocity calculation when scrolling a menu to behave more consistently between all types of input devices & frame rates (i.e. a touch screen with very high sample rate or monitor with higher than 60Hz refresh rate)

    • The reset menu command can now perform a soft or hard reset if the system supports it

    • Android: Support new Android features like runtime permissions for external storage, and correct behavior in multi-window

    • Android: Fixed crashes on some Mali GPUs with GPU Copy Mode on Auto

    • Android: Added native ARM64 build

    • Android: Split into two APKs to save space on older ARM devices, ARM64 & X86 builds moved into 2nd APK

    • Android: Add option to prevent CPU going idle and potentially dropping frames by simulating a touch-screen event every second

    • C64: Updated core to VICE 2.4.20

    • C64: Experimental option for setting different VICE emulation systems, this feature is not yet complete because various I/O functions aren't hooked up yet

    • C64: Moved C64 Model option into renamed System & IO Control menu, this sets the current C64 model for the running game and is stored in the save state

    • C64: Added Default C64 Model option, this sets the initial model when launching a game without a previous save state

    • C64: Fixed reboot when loading a save state with a different C64 model than current

    • C64: Fixed audio rate when save state changes between NTSC/PAL

    • 2600: Updated core to Stella 4.6.1

    • NES: Support loading FDS BIOS from an archive file

Version 1.5.29 (2015.05.21)

    • C64 & MSX: Fixed blank on-screen keyboard for GPUs that don't support mipmaps on non-power-of-2 textures

Version 1.5.28 (2015.05.17)

    • Android: Fixed crash on devices with Adreno 320 GPUs when GPU Copy Mode is set to Auto

Version 1.5.27 (2015.05.14)

    • Added Frame Rate option for devices with screens that are close to but not exactly 60/50Hz, possible settings include using the reported rate from the device or trying to detect it by timing frames

    • Removed Frame Skip option and replaced with Skip Late Frames

    • Improved audio re-sampling accuracy for various systems

    • Changed unbinding keys to wait for two left inputs on the device instead of just one to prevent accidental unbinding

    • Added Effect Color Format option to override the color format used for image effects (shaders)

    • Replaced Use Highest Color Mode option with Display Color Format to specify the screen's preferred color format

    • Take advantage of various OpenGL ES 3 features to speed up rendering on supported devices

    • Android: Replaced Fast CPU->GPU Copy option with GPU Copy Mode to allow overriding the mode in case the default has issues on a device

    • Android: Override incorrectly reported refresh rates from AT&T Xperia Play and Motorola Droid

    • Android: Work around a few GLSL compiler bugs on Mali and Adreno GPUs to improve shader compatibility

    • iOS: Updated BTstack client code to fix crashing issues in the previous version

    • X11: Fixed usage of SGI_video_sync extension to avoid buffering frames

Version 1.5.26 (2015.01.20)

    • Added Prescale 2x effect, this does a simple 2x point scale of the image so it can then be stretched with linear interpolation while keeping sharp pixel edges, and also avoids introducing scaling artifacts at non-integer zoom levels

    • Added fallback shaders for GPU drivers that don't support enough varying parameters, should allow Scale2x and hq2x to run on more GPUs

    • Android & iOS: Fix text input issue when entering new cheats

Version 1.5.25 (2014.12.15)

    • PCE: Fixed 6-button pad appearing in on-screen controls when not enabled

Version 1.5.24 (2014.26.13)

    • MD & PCE: Fixed .bin CD audio playback artifacts introduced in 1.5.22

Version 1.5.23 (2014.12.12)

    • Fixed Show Gamepad If Screen Touched option broken in previous update

    • Fixed missing scroll bars in menu

    • Android: Fixed app launch crash when MOGA Pivot app is installed on Android 5.0

    • iOS: Added support for iPhone 6 & 6 Plus screens

Version 1.5.22 (2014.26.11)

    • Fixed a few crashes related to text entry

    • Tweaked most gamepad default profiles to be more consistent with each other

    • Android: Fixed resuming emulation if app suspends & resumes without losing window focus

    • Android: Worked-around Nvidia Shield Android 5.0 driver bug causing black screen

    • Android: Fixed issues when rotating device on some GPU & driver combinations (cropped screen on Intel Baytrial GPUs, crash on Tegra 3 with Android 4.2)

    • Android: Use Material theme for text entry on Android 5.0

    • Android: Fixed packaging issues preventing full Android TV compatibility

    • Android & iOS: Save key codes as 2 bytes in config file to account for new keys, any saved input configs will need to be re-assigned

    • iOS: Added experimental support for hardware keyboards via the Apple Bluetooth stack (uses private APIs so may break in future iOS versions but works up to 8.1), also improves iCade latency since keys are accessed directly

Version 1.5.21 (2014.09.25)

    • C64 & MSX: Fixed crash when selecting IO device insert/eject menus

    • MD: Fixed crash in Shining Force 2 and other games when compiling for ARM with GCC 4.9 due to undefined behaviour in some VDP functions

Version 1.5.20 (2014.09.24)

    • Improved hq2x effect quality and speed: now works with linear filtering and renders exactly 2x the amount of pixels so uses less GPU power in most cases

    • Added Scale2x shader

    • Reduced memory used when backgrounded by deallocating all font data

    • Added Default setting to Save Path option that uses an automatic path on the primary storage device (displayed when setting is selected)

    • Optionally fall back to default save path if the current lacks write access, for example on Android 4.4+ using a secondary SD card

    • Reorganize some options and rename Options -> Input to Emulated System Options, available under On-screen Input Setup and Key/Gamepad Input Setup if the system has extra input options

    • Android: Fixed some crashes in the Bluetooth error handling code

    • Android & iOS: Added option to override OS external display mirroring (HDMI, Airplay, etc.) and show just the game content while the on-screen controls remain on the phone/tablet screen

    • iOS: Added support for MFi gamepads on iOS 7+

    • iOS: Added native 64-bit builds for most systems

    • MD: Fixed .iso file loading without a cue file

    • MD & PCE: Updated CD image routines from Mednafen with some .cue file handling improvements and better caching when reading images

    • MD & MSX: Fixed some possible crashes when loading games due to memory corruption

    • NEO: Added option to select between Universe BIOS 2.3, 3.0, and 3.1

Version 1.5.19 (2014.03.03)

    • Compatibility fixes and minor optimizations to hq2x shader (still more to come), now reports if shader fails to load in the case of an older GPU that cannot support it

    • Support key repeats in iCade mode

    • Android: Fixed incorrect screen layout on Android 4.0 when the status bar is shown

    • Saturn: Updated to Yabause SVN r3240

    • Saturn: Save the selected SH2 core in config file

Version 1.5.18 (2014.02.27)

    • Added hq2x OpenGL shader, located in the new Image Effect menu in Video options

    • Android: Fixed analog stick/trigger issues from 1.5.16

    • Android: Fixed incorrect screen layout on Android 4.1 & 4.2 when the status bar is hidden

Version 1.5.17 (2014.02.25)

    • Fixed incorrect virtual keyboard placement bug introduced in 1.5.16 (applies only to C64.emu & MSX.emu)

Version 1.5.16 (2014.02.24)

    • Added OpenGL 3.x renderer for desktop and OpenGL ES 2.0 renderer for mobile, will allow for improved graphics effects and custom shader support in the future. On mobile, it replaces the older OpenGL ES 1.x renderer on ARMv7 and X86 devices (ARMv6 devices continue to use it). On desktop, OpenGL 3.x is used automatically if supported, otherwise it falls back to 1.2.

    • Allow setting sound buffer size option to 2 frames, useful for reducing latency on Android devices that have extra buffering in the OS or audio drivers.

    • Added key repeats for quickly scrolling menus on input devices that lacked them (analog joysticks, or any device connected via the in-app Bluetooth system)

    • Added animation when the screen area changes (like when hiding the status bar) to avoid the video "jumping" between different parts of the screen

    • Added ability to bundle a game in the application package for certain systems (allows for quicker testing on a stock device). The Bundled Games menu can be toggled in GUI options.

    • 2600: Added PAL/SECAM support and option to select between video formats

    • NES: Use custom palettes named [game].pal located in the save path

    • PCE: Fixed graphics in games that switch horizontal resolution in mid-frame like Order of the Griffon, and set visible scanlines to 224

    • PCE: Added CloneCD image (.ccd) support from Mednafen

    • Snes9x: Update sound per-line instead of per-frame in Snes9x 1.5x, reduces chance of sound dropouts

    • Android: Re-hide the OS navigation bar automatically in case an external task (using the volume slider for example) causes it to re-appear

    • Android: Added menu command to add a shortcut icon for the currently running game to the OS launcher

    • Android: Fixed a possible issue with the screen not updating properly while a text input dialog is shown

    • Android: Various input system improvements including support for non-HID MOGA controllers when the MOGA Pivot app is installed, added a generic key profile for Xbox 360-like gamepads to help configure them faster (becomes default if the input device reports itself as a gamepad & joystick), replaced "Joystick Axis 1 as D-pad" with individual settings for either analog stick or the POV hat, allowed the Y button to dismiss the menu for gamepads without a menu button, removed "Skip OS Input Method" option and always enable it when not inputting text to avoid extra latency

    • Linux/X11: Added native PulseAudio support

Version 1.5.15 (2013.11.06)

    • Snes9x: Fixed issues in the new audio code that could that could crashes after loading certain save states (Note: this version is only for Android since all other ports were fixed in 1.5.14)

Version 1.5.14 (2013.11.02)

    • Bluetooth input system tweaks: Added missing LH & RH buttons on Wii U Pro controller (thumb-sticks clicked in), Ignore duplicate scan requests by the Bluetooth driver (makes scanning on the OUYA more reliable), the Dim Screen If Idle option now works properly when devices are connected

    • Android: Fixed crash if sound is enabled on ARMv6 CPUs that don't supported mirrored memory pages

    • Android: Don't assume low-latency audio support unless the device specifically reports it. Previously it was enabled it on all Android 4.2+ devices, possibly defaulting the buffer size lower than the device reliably handles.

    • Android: On Android 4.4+, the Hide OS Navigation option uses the new "immersive" app mode that keeps the navigation bar hidden even when using the touch screen

Version 1.5.13 (2013.10.27)

    • On-screen control improvements: Replaced fixed-position options with option to drag & drop elements to any position, landscape/portrait positions stored independently, new menu & fast-forward icons, moved setup menu to top level for easier access, added option to reset all values to default, added larger 15 and 16 point button sizes

    • Added 8:7 aspect ratio option to NES, SNES, & PCE when using regular zoom levels

    • Fixed Confirm Overwrite State option not affecting states saved via key press

    • UI tweaks: Updated icons to flat Android-like style for cleaner look, added new icons to make certain actions more intuitive (ex. when selecting a directory, the file browser shows a check-mark to confirm instead of an X), slightly improved text rendering and blending quality

    • Added Screen Area option to reduce the display size of the entire app, useful on monitors/TVs with overscan

    • 2600: Updated core to Stella 3.9

    • 2600: Added option to control TV phosphor simulation which is used to avoid flickering graphics in some games that display half the sprites on alternate frames

    • C64: Updated core to VICE 2.4.5

    • C64: Fixed setting FastSID option, and default to ReSID if available in port

    • C64: Include ReSID in IOS port

    • C64 & MSX: Added option to use a custom path for system/firmware files

    • GBC: Updated core to current GIT version of Gambatte with some small fixes and optimizations

    • GBC: Added option to use special built-in palettes for classic GB games recognized by the GBC hardware

    • NES: Updated core to current 2.2.3 SVN version of FCEUX with some mapper fixes, and an extra fix for Top Gun

    • NES: Fixed cheats not saving on iOS/Android if the app exits after being backgrounded

    • Android: Use scaled DPI coordinates to calculate the on-screen control sizes instead of physical DPI coordinates by default since many devices report incorrect physical screen sizes. The new Size Units option controls the coordinate type used.

    • Android: Improved audio-backend with low-latency support on Android 4.2+ and 48KHz sample rate if device supports it

    • Android: Registered file types supported by each system with the OS so it's possible to launch a game using an external file manager

    • Android: Added default key profiles for the Nvidia Shield

    • Android: Made input device connect/disconnect events fully accurate on Android 4.1+, removes need for Re-scan OS Input Devices menu command

    • iOS: Fixed screen size issues when starting with status bar shown

    • Linux/X11: Treat the first command-line option as the game/directory to load upon launch

    • Linux/X11: Added experimental multi-window mode. Currently just mirrors the game video but will be used to implement native external display support for Android & iOS with separate content on each screen.

Version 1.5.12 (2013.05.24)

    • Added an option to control if the on-screen controls automatically re-appear when the screen is touched even if a gamepad is connected, this feature was added in 1.5.10 but can now be manually controlled (accidentally omitted in last update)

    • Android: Fixed non-working Joystick Axis 1 as D-Pad setting from 1.5.11

    • Android: Improved text input with full text editing capabilities (selections, cut & paste, etc.)

Version 1.5.11 (2013.05.19)

    • Fixed a bug in texture handling from 1.5.10 causing corrupted graphics in some odd-sized emulator screen modes (341-pixel mode in PCE for example)

    • When adding cheat codes in NES/GBC/MD, the dialog now asks for the code first followed by the description, this avoids confusion and the extra step of going into the code's sub-menu

    • Replaced the Large Fonts option with Font Size, containing a selection of font sizes to choose from

    • 2600: Updated core to Stella 3.8.1 with various compatibility improvements

    • C64: Added a key mapping to swap joystick ports

    • C64: Applying quick C64 settings while a game is running automatically restarts and runs the game

    • C64: Recognize and load .PRG files

    • GBA: Added cheat code support (GameShark and Code Breaker)

    • NES: Updated core to FCEUX 2.2.2 SVN with additional mapper fixes

    • Saturn: Updated core to Yabause SVN 3112

    • Android: Fixed incorrectly sized on-screen controls on Motorola Droid Razr & Bionic after the Android 4.1 update. This device started reporting the incorrect physical screen size so a device-specific hack was added to work-around it.

    • Android: Tweaked event handling to prevent input lag on certain devices running Android 2.3 & 4.0

    • Android: Various input detection tweaks including: less strict keyboard detection so the iCade Mode option appears for the iCade 8-bitty, better joystick axis enumeration fixing issues with some USB joystick adapters, detect and remap Xbox 360 Wireless Adaptor keycodes for the d-pad so it's usable

    • Android & iOS: Added audio option "Mix With Other Apps". If off (the default), the app will try to stop the user's background music player (iPod, Google Play Music, etc.) if present. If on, background music is allowed to play and mixed with the emulator's audio.

    • iOS: Small optimizations to audio latency by eliminating thread locking and improved ring buffer implementation

    • iOS & Linux/X11: Added PS3 Controller support to in-app Bluetooth system, on Linux the process must have the cap_net_bind_service capability to open network ports below 1024 and you must shut down any daemons listening on the HID channels

    • Linux/X11: Identify multiple keyboards reported by XInput2 as separate input devices, and support hot-plugging them

    • Linux/X11: Added support for evdev joysticks/gamepads with hot-plug

    • Linux/X11: Removed hard-coded font configuration and dynamically load fonts as needed by the characters encountered

    • Linux/X11: Added device-specific support for the Open Pandora handheld (recognize input devices, frame-buffer vsync method, & work around PowerVR driver bug with font textures)

Version 1.5.10 (2013.03.31)

    • Pushing the "Left" key on a controller/keyboard unbinds the selected action under Input Device Setup (allows unbinding single actions without using a touchscreen or mouse)

    • Automatically re-activate touch controls if touch-screen is used in-game after a gamepad is detected

    • Fixed incorrect Wii Nunchuk input caused by previous update

    • Android: Fixed app hanging on startup on ARMv6 devices missing the eventfd system call, needed since the last update and should be standard for Android 2.3, but some vendors removed it from their kernels. The problematic devices include: Samsung Galaxy Ace, Alcatel OT-983

    • Android: Input handling improvements: OUYA controller key profiles, OUYA/PS3/Xperia Play button labels, split Motorola Droid/Milestone key profiles from generic PC Keyboard

    • Android: Fixed some possible crashes in the Java Bluetooth code due to threading issues, and also reduced connection overhead by using a native Bluetooth socket if possible

    • Android: Re-worked font DPI handling to use screen density values instead of physical sizes and respect user's font size in the Android settings app, also moved the "DPI Override" option to "On-screen Config" since it only affects touch controls now

    • Android: Ouya-specific APK (trims out compatibility code for Android pre-4.1, has Cortex-A9 optimizations, and some other tweaks), available separately via the Ouya store in the near future

    • iOS: Manually load Blutrol.dylib if present

    • iOS: Added Use Highest Color Mode option to control which display mode the app selects at startup, when off it runs in 16-bit color to reduce memory usage (default on ARMv6 devices)

    • C64: First release

    • GBA: On-the-fly IPS/UPS/PPF patching upon loading a rom (patch file should match rom name and be in the save directory)

    • NES & MD: Added Video System option to force NTSC/PAL timings (NES can switch mid-game)

Version 1.5.9 (2013.03.11)

    • Added an Integer-only (Height) setting to the Zoom option. This has the same effect as the other Integer-only setting but applies aspect ratio correction to the image width. It can be used to get correct scanlines while keeping the requested aspect ratio.

    • Added Wii U Pro Controller support to the in-app Bluetooth system and made them appear as separate devices from Wiimotes (Classic Controllers now also behave in the same way)

    • Fixed some out of bounds array access in the Neogeo, MSX, and Snes9x 1.5 emulation code that could cause random crashes

    • Android: Various input device detection fixes: check that a device is a alpha-numeric keyboard or else don't show the "iCade Mode" option, properly detect the Xperia Play gamepad on Android 4.x, ignore MHLRCP (MHL remote control) devices which claim to be gamepads but aren't, accept repeated key presses from all device types (fixes using two keyboards/iCades at once)

    • Android: Don't show Vibration option if the device doesn't support it

    • Android: Re-wrote core event loop code to effectively prevent any input lag, eliminate possible crashes when certain window parameters are changed (status bar, etc.) and make it easier to work with native Android UI elements in future updates (text input for example).

    • Android: Minimized video judder when using Auto-frameskip on Android 4.1+ with frame timestamps provided by "Project Butter"

    • iOS: Minimized video judder when using Auto-frameskip with frame timestamps

    • iOS: Re-wrote audio back-end to use AudioUnit API due to problems with the previous AudioQueue API in iOS 6.1, it provides lower latency and won't freeze the emulation if the audio skips due to an underrun

    • iOS: Fixed app crashing when going into the background on iOS 6.1

    • iOS: De-allocate the frame-buffer when going into the background to save some memory

    • Linux/X: Support shifted symbol keyboard keys when doing text input

    • GBA: Added option to manually enable/disable RTC emulation (needed for the Liquid Crystal Pokemon hack)

    • MD: Fixed incorrect cheat behaviour on little-endian systems (X86/ARM) due to addresses not being swapped for single-byte Megadrive codes

    • MSX: Fixed incorrect external storage path for the MSX.emu directory on some Android devices

    • NEO: Added support for the following games: Choutetsu Brikin'ger / Ironclad (ironclad & ironclado) Bang Bang Busters (bbbuster), Treasure of the Caribbean (totcarib)

    • NES: Updated emulation core to current FCEUX 2.2.1 SVN version, there may be minor save-state compatibility issues depending on the game's mapper

    • NES: Added "(EU)" to list of filename components checked when activating PAL mode

    • Snes9x/1.5x: Fixed applying Block Invalid VRAM Access option from the config file

    • Snes9x: Added cheat code support, uses the standard SNES .cht format

    • Snes9x: Fixed a path name bug that added an extra dot to the extension when looking for IPS files, preventing the correct file from loading

Version 1.5.8 (2013.02.02)

    • Replaced Input/Player Mapping and all Key Config menus with a new Input Device Setup that lists all currently active key-based input devices and allows for these additional features: per-device configurations, user-defined key profiles, per-device iCade settings so multiplayer is possible on platforms like Android 3.1+ where each device is accessed independently, split player mappings on one device (for example, one keyboard can have controls for players 1 & 2 on different keys). Additionally, by selecting Auto-detect Device To Setup, you can jump directly to the setup menu for a specific device by just pushing any button on it

    • Added option to turn on/off confirmation of overwriting save states

    • Added key mappings to increment/decrement the save state slot

    • Added date & time to the save state slot menu items

    • Android: Turned off Suspended App Icon by default on Android 3.0+ since it's not as useful due to the OS dedicated app switcher

    • Android: Internally re-map O button on Xperia Play to not conflict with Back button so both can be used for different functions

    • Android: Added a default key profile for a PS3 Controller (via USB port) and gave it custom UI controls (PS button closes the menu)

    • Android: Recognize analog joystick inputs as separate keys compared to dpad ones so they can be assigned different functions

    • Android: Recognize analog L/R triggers as keys

    • Android: Improved detection of input device changes from the OS and added a popup when a change occurs

    • Android: Added a work-around to avoid crashing on some JXD devices due to OS bugs in the Bitmap JNI functions

    • iOS: Enabled full screen on 16:9 devices (iPhone 5)

    • iOS: Increased auto-frameskip precision from micro-seconds to nano-seconds and made sure to always use a monotonic clock so it behaves properly if NTP adjusts your clock while playing

    • Linux/X: Fixed linker error with MESA by checking for glXSwapIntervalSGI and glXSwapIntervalMESA at runtime

    • MD: Added support for Game Genie & Action Replay cheat codes, uses the standard .pat format from Kega Fusion, Gens, Genesis Plus GX, etc.

    • MD: Removed SegaCD code from the ARMv6 builds since it's probably not usable with its current performance and just wastes memory

    • MD: Fixed a bug in the ROM loader that can cause random crashes

    • MD: Fixed a possible crash in the ARMv5/ARMv6 Android build due to unaligned memory access

    • MSX: Fixed on-screen keyboard in Coleco mode incorrectly sending * when pushing the # key

    • Snes9x/1.5x: Updated emulation core with fixes up to Jan 26, 2013 GIT version

    • Snes9x/1.5x: Added Block Invalid VRAM Access option

Version 1.5.7 (2013.01.07)

    • Android & Linux/X: Increased auto-frameskip precision from micro-seconds to nano-seconds and made sure to always use a monotonic clock so it behaves properly if NTP adjusts your clock while playing

    • Android: Fixed some problems with activating/saving the Fast CPU->GPU Copy and Direct Texture options

Version 1.5.6 (2013.01.02)

    • Android: Fixed blank on-screen controls on Vivante GPUs due to auto-mipmap driver bug

    • Android: Disabled OES_draw_texture on all GPUs for now due to various driver issues, will be made into an option in the future

Version 1.5.5 (2012.12.29)

    • Android: Disabled OES_draw_texture on Adreno GPUs running Android 4.0+ because it produces a blank screen with SurfaceTexture (Fast CPU->GPU Copy option)

    • Snes9x/1.5x: First release

Version 1.5.4 (2012.12.28)

    • When setting a save or BIOS path, switch to the previously selected directory if it exists, and don't forget the previous directory "Load Game" was in

    • Allow setting sound buffer size down to 3 frames

    • Android: Fixed startup crash on some Adreno GPUs by initializing OpenGL surface directly to the requested color mode, instead of reinitializing it multiple times

    • Android: Use the OES_draw_texture OpenGL extension to draw the screen if supported. May help on older devices where performance is GPU-limited

    • Android: Fixed input lag on the R800i Xperia Play by explicitly checking for events at the start of each frame. For some reason the stock Android build doesn't signal the app in a timely manner when new events are ready.

    • Android: Compiled apps using a pre-release GCC 4.8.0 compiler for some small speed boosts, also fixes a mis-compile with GBA.emu on ARM that prevented full optimizations from working when using the older GCC 4.7.x compiler

    • iOS: Fixed broken iCade support from 1.5.3 due to initialization code changes

    • 2600: Excluded unused debug code from Thumbulator, giving a speed boost to DPC+ roms

Version 1.5.3 (2012.12.13)

    • Added Save Path option to control where save states, save memory, and cheats are loaded/saved

    • Changed various BIOS select menu entries to show the currently selected file

    • Save the Show Bounding Boxes on-screen config option to the config file

    • GBA: Fixed error reading some zip files because the version info wasn't correctly handled

    • MD: Save some additional CPU state to fix hangs in Soldiers of Fortune

    • MD: Fixed missing libsndfile support for .wav playback

    • Android: Fixed possible USB gamepad detection errors by waiting 100ms after a device is plugged in before re-scanning

    • Android: Changed input handling to prevent unresponsiveness on Android 3.1+ when using multiple USB controllers

    • Android: Fixed pushing buttons with the same key code on multiple USB controllers at once

    • Android & Linux/X: Added Use Highest Color Mode option to control which display mode the app selects at startup. On Android, you can turn this on to get 32-bit color if supported by your device (previously all <= 2.3 devices used 16-bit, all non-Adreno devices on Andoird 3.0+ used 32-bit). Some devices like the Galaxy S3 currently have driver bugs in their 32-bit support so you should leave it off if you experience any display corruption.

    • iOS: Switched to LLVM's newer standard C++ library (libc++) on ARMv7, requiring iOS 5.0 at least

    • Linux/X: Clip window size on startup if it exceeds the workable desktop area

    • Linux/X: Fixed possible bug in unique instance registration (don't use spaces in DBUS name)

Version 1.5.2 (2012.11.11)

    • Fixed a possible crash depending on how the system font handles missing characters

    • Allow variable pixel heights per system for overlay effects, fixes scanlines in Master System games on MD.emu

    • MD: Reimplemented plain .bin & .iso loader for test/homebrew purposes (no CDDA support)

    • Android: Disabled Fast CPU->GPU Copy support on Adreno 200 due to GPU driver bugs

    • iOS: Handle composed text properly (European characters with accents, Korean, etc.)

    • WebOS: Fixed a crash opening the Input options

    • WebOS: Auto-rotate to upside down landscape mode on the Touchpad

Version 1.5.1 (2012.11.07)

    • MD: If selecting a .bin that matches a .cue file by name, load the .cue file instead. If no .cue file is present, don't load the .bin unless it's small enough to be a cartridge game

    • MD: Better CD region detection

    • Android: Fixed a minor input handling glitch that causes "Failed to receive dispatch signal" to be printed repeatedly in the Android log

    • Android: Fixed the 32-bit color Adreno GPU hack added in 1.5.0, should fix motion blur in landscape on Galaxy S3

Version 1.5.0 (2012.11.04)

    • Re-wrote core text rendering code with these improvements: recognize Unicode UTF-8 text, improved performance slightly, more accurate word wrap

    • Added upside-down portrait orientation setting, and use it in auto-mode if supported

    • Don't show image from previous game behind auto-load state prompt

    • GBA: Fixed saves in Pokemon Mystery Dungeon (European version), delete your old .sav file if you've run the game previously

    • GBA: Added 7zip (.7z) file support

    • 2600: Updated core to Stella 3.7.3 with various fixes, including a DPC+ music bug. Save-states from previous versions are no longer valid.

    • GBC: Added option to select one of four audio re-samplers to trade-off speed vs. quality

    • MD: Added .cue CD image support with CDDA playback (loading .bin or .iso files directly is no longer supported)

    • MD: Save game region to config file

    • NES: Pop-up an error message if the user tries to turn on an unset Game Genie code that could potentially lock up the game

    • Android & iOS: Wrote a new font renderer that hooks into the font support provided by the OS. This means apps use the system font (differs by OS version), display any characters supported by it (Japanese, etc.), and the app size is reduced slightly since the bundled font isn't needed

    • Android: Added option to disable fast CPU->GPU copy (SurfaceTexture) on Android 4.0+ in case of GPU driver bugs

    • Android: Fixed controls turning into dark rectangles on Adreno 225 GPUs (Galaxy S3, etc.) due to an OpenGL driver bug (mainly triggered by MD.emu)

    • Android: Prevent unknown keycodes sent by the OS from performing unwanted actions like opening the menu

    • Android: Support USB gamepad hotplug on Android 3.1+

    • Android: Disable 32-bit color on Adreno GPUs with Android 4.0+, fixes reported ghost images and distortion on multiple devices like the Galaxy S3 with Snapdragon SoC

    • Android: Added extra high density icon (for Nexus 10, etc.), also used for Xperia Play launcher

    • Android: Added option to increase the app's process priority, may help if background apps are interfering with performance

    • iOS: Fixed screen orientation issues on iOS 6

Version 1.4.35 (2012.10.10)

    • Added an Android-specific workaround for GBC.emu to prevent crashes on some Adreno GPUs due to a driver bug causing the GPU to read beyond the allocated buffer (extra 1440 pixels of padding added to buffer)

Version 1.4.34 (2012.10.02)

    • Fixed bug in config file code from 1.4.33 preventing key config from saving

    • NGP: Save system language

    • GBA: Added R+B button combination to key config

    • iOS: Better error handling if a Wiimote hangs while setting up the connection

Version 1.4.33 (2012.09.30)

    • Added a confirmation prompt with date when loading an auto-save state. The "Confirm Auto-load State" setting under System options toggles it (useful in most systems to prevent SRAM from getting clobbered if you forget about your auto-save state, or in MSX.emu to cleanly switch machine types without having to toggle the auto-save state option each time).

    • Bluetooth scan tweaks/fixes (make sure scan completes before opening connections)

    • 2600: Updated emulation core to Stella 3.7.2

    • GBC: Updated emulation core to Gambatte SVN 348 (minor fixes, better error messages, & performance boost)

    • GBC: Added support for using/editing Game Genie and GameShark (01xxxxxx type) cheat codes

    • GBA: Properly show error message if ROM loading fails

    • SNES: Don't skip audio processing when fast-forwarding, fixes sound artifacts in games like Secret of Mana

    • MD: Properly map inputs for players 3 & 4 on games using J-cart hardware

    • MSX: Added an option to automatically perform a 5x fast-forward during floppy disk access, can greatly speed up load times if your device is fast enough

    • Android: Fixed DPI override not applying to on-screen controls until orientation change

    • Android: Disabled in-app rotation animations in CM7 since it provides its own

    • Android: Check if GPU only supports OpenGL ES 1.0 and disable features that need 1.1 (Auto mipmaps, etc). Fixes controls turning into white blocks on older devices like the HTC Hero

    • Android: Fixed cropped display after an orientation change on devices that don't send a proper window resize events (Xperia Play when sleeping in portrait mode, and awakened by sliding gamepad open)

    • Android: Fixed text entry for cheats on Android 2.2 and lower

    • iOS: Adjusted iPhone/iPod DPI calculations to work with taller iPhone 5 screen

Version 1.4.32 (2012.08.22)

    • Fixed incorrect sound buffer sizes in PAL mode for MD and NES, should reduce worst-case latency

    • Saturn: First release

    • Android: Reduced chance of crashing on some devices when toggling the status bar (Due to issues in the OS & drivers, it's not possible guarantee the app won't crash on affected devices. If everything worked in 1.4.31, there is no chance your device can crash).

    • Android: Fixed fast CPU->GPU copy (SurfaceTexture) in Android 4.1

    • Android: Fixed some C++ library issues that restore support for Android 2.0-2.2 devices on NES, GBC, and PCE (2600 still has issues)

    • Android: Re-wrote OpenSL ES sound under-run detection to avoid incorrectly restarting playback until all sound data is exhausted, should allow more devices to use smaller sound buffers without playback interruptions. The new Strict Underrun Check option controls if playback restarts at the moment the hardware reports playback has ended (on) or if playback has entered a stalled state (off). Note that depending on the driver, recovering playback may be an expensive operation and can cause significant frame drops, increase the sound buffer size and set Strict Underrun Check on if you experience issues.

    • Android: Added x86 build for devices with Intel CPUs

Version 1.4.31 (2012.07.28)

    • Fixed a bug when using auto-frameskip that could cause a game to pause itself until toggling the menu

    • Fixed visual glitch in boolean menu options causing on/off text to appear instead of the real values (Language switch in NGP.emu, Unibios mode switch in NEO.emu, etc.)

    • Added sound buffer size option to control worst case audio latency. Lower values decrease sound lag but increase chance of audio skipping. Especially useful for making music/rhythm games more precise. Supported on Android 2.3+, iOS, & WebOS.

    • MD: Fixed SMS input broken in 1.4.28

    • GBA: Fixed missing iCade support in some builds

    • GBA: Fixed graphics issues in Camelot games (Golden Sun, etc.) on Android & WebOS (seems to be a bad compile or undefined behavior in GBA-arm.cpp if -fexpensive-optimizations is used)

    • GBA: Minor speed optimizations

    • iOS: Enabled automatic file write permission fixing on GBA.emu as supported by the other systems

    • iOS: Lowered average audio latency to 6-8 frames (about a 2x improvement)

    • iOS & Android: Added a Hide Status Bar option to control if the top status bar on most non-tablet devices is visible, it can also be hidden only while in-game

    • Android: Improved window calculation code to account for top toolbars bars like those on the Kindle Fire and prevent visual/input artifacts

    • Android: Added a Java-based Bluetooth back-end as a fallback in case the native C one fails, allows devices that previously needed to use Bluez IME to work with the in-app Bluetooth support

    • Android: Prompt user to enable Bluetooth automatically

    • Android: Disabled OES_texture_npot on HTC Desire HD due to faulty OpenGL driver causing blank font rendering

    • Android: Added an OpenSL ES audio back-end for improved performance and latency

    • Android: Changed Android text input (for cheats in NES.emu) to use a native text widget for better compatibility with different input methods

Version 1.4.30 (2012.06.25)

    • GBA: Fixed accidentally disabled ARM prefetch code fixing NES Classic and Famicom Mini games

    • GBA: Fixed dummy link cable emulation so Sonic Advance 1 & 2 boot

    • GBA: Fixed possible sound buffer overflow that can corrupt memory

Version 1.4.29 (2012.06.12)

    • Android: Fixed a startup crash on the Samsung Galaxy Y (VideoCore IV GPU) due to a Direct Texture test

    • WebOS: Added native HP TouchPad support

    • WebOS: Tweaked audio buffering to reduce skips

    • GBA: first release (2012.06.22)

Version 1.4.28 (2012.06.11)

    • Improved text rendering to prevent fuzzy/blurred text in the menu

    • 2600: Updated core to Stella 3.6.1, with ARM Thumb emulation for DPC+ games

    • NES: Added a cheat edit mode for adding/editing cheats (Game Genie or direct memory patches)

    • NES: Added A+B to key config

    • MD: Added initial gun support for the Menacer and Justifier

    • MD: Changed hard-reset to a soft-reset (needed in X-Men)

    • MD: Better CD region detection

    • GBC: Updated to Gambatte SVN revision 314 with some minor fixes

    • PCE: Updated to Mednafen 0.9.22-wip with some minor fixes and better CD error detection

    • PCE: Fixed uneven scanline overlay effects

    • Android: Fixed a crash on some devices if buttons were held down when launching the app

    • Android: Rewrote multi-touch code to account for devices that cycle touch IDs instead of re-using the lowest ID, such as the Xperia Play and possibly others. If your device is having multi-touch issues and you're certain the hardware & drivers are working, this should fix it.

    • Android: Increased max multi-touch points to 4

    • Android: Re-implemented trackball support (was broken due to an earlier input code update)

    • WebOS: Fixed an issue causing a 30fps cap on the HP Pre3

Version 1.4.27 (2012.05.04)

    • Android: Additionally disabled OES_texture_npot on any Adreno GPU running Android 2.2 or less (HTC Evo Shift 4G, etc.) due to faulty OpenGL driver

Version 1.4.26 (2012.05.03)

    • Fixed Wii Classic Controller detection for newer models

    • Android: Disabled OES_texture_npot on all Adreno 200 GPUs (LG Optimus V, etc.) due to faulty OpenGL driver causing blank font rendering

Version 1.4.25 (2012.04.29)

    • Performing a Bluetooth device scan adds additional devices without disconnecting previous ones

    • Reduced scan time by connecting to multiple Bluetooth devices at once

    • Improved Bluetooth scan messages

    • Optionally allow Bluetooth connections to stay active when the app is backgrounded

    • Added support for the Wiimote Nunchuk extension and properly ignore unrecognized extensions

    • Tweaked color CRT filter look

    • Added a Medium-Low (M-Low) setting to Diagonal Sensitivity

    • MD: Fixed an issue preventing save-states from working in certain CD games like Snatcher

    • MD: Added simulated CD audio tracks to fix hangs in games like Lunar 1 and Snatcher

    • NEO: Modified audio timer to better maintain sync, intros in games like KOF'98 and Garou stay in sync with the music

    • NEO: Save state bug fixes, all previous states should be discarded due to format changes

    • GBC: add an option to use fully saturated GBC colors like VisualboyAdvance does

    • iOS: Fixed a bug preventing iCade mode from working if enabled at app startup

    • Android: Fixed a possible white screen rendering bug on Adreno-based devices running CM9

    • Android: Added support for the OES_texture_npot OpenGL extension used on Mali GPUs (Galaxy S2, etc.)

    • Android: Added option to hide the Android 4.0+ navigation bar if the device allows it

    • Android: Base default GUI navigation options on whether the device has a hardware menu button, instead of whether it runs Android 3.0+ or not

Version 1.4.24 (2012.04.01)

    • GUI rendering speed optimization

    • Android: Fixed a crash introduced in 1.4.23 when selecting Input/Player Mapping on Android 3.1+

    • iOS: Fixed a crash when starting in landscape orientation

    • MD: Added 64K SRAM cart support for Sega CD, always stored in big-endian format and compatible with Gens

Version 1.4.23 (2012.03.29)

    • Added idle screen dimming for Android 1.6-2.2 and iOS, auto-disabled when Bluetooth controller is connected

    • Added colored CRT and CRT 2x effects (old effect renamed to CRT Mask), and more effect levels

    • Added a menu command to take a game screenshot

    • Fixed pushing start+select simultaneously with the on-screen controls using one finger

    • Added a low diagonal sensitivity setting to the on-screen controls and made it default

    • Android: Fixed a DPI override bug from 1.4.22

    • Android: Fixed DPI calculation if using non-auto orientation in the GUI and you start the app rotated 90 degrees off

    • Android: Fixed and audio track creation issue causing sound to only work once per app launch on some devices

    • Android: Fixed Xperia Play gamepad in Android 4.0+

    • iOS: Increased maximum touches to 7 fingers on 3GS and newer devices

    • MD: Initial Sega CD support, supports ISO or BIN images (no CUE files yet), needs respective USA/Japan/Europe BIOS files set in the options

    • NEO: Added a progress bar when loading games using a background thread to access the files, prevents app unresponsive warnings on platforms like Android

Version 1.4.22 (2012.03.16)

    • This is an bug-fix release for Android 2.3+ only

    • Added option to show a menu icon when using on-screen controls

    • Android: Added option to dim the screen when idle in the menu to save power

    • Android: Added option to dim the OS navigation bar in Android 3.0+

    • Android: Recognize the GL_ARB_texture_non_power_of_two extension for npot textures

    • Android: Devices running Android 3.0+ now default to a 32-bit color display mode

    • Android: Fixed some issues in the multiple HID gamepad support added in 1.4.19

    • Android: Disable SurfaceTexture on Android 4.0+ if corresponding OpenGL extension is missing (Fixes issues with current build of CyanogenMod 9 on the G2x)

    • Android: Fixed a crash when setting the image filter with no game loaded

Version 1.4.21 (2012.03.09)

    • Added Scanline and CRT overlay filters with selectable 25%, 50%, or 100% intensity. Examples: Scanlines 100%, 25%, CRT 50%, 25%

    • Android: Added support for Surface Textures on Android 4.0+, this obsoletes Direct Texture to improve CPU->GPU copy performance and works with all devices meeting the minimum OS requirement

    • NEO: Added option to control strict ROM checking. If off, the internal ROM filenames are also used when matching files instead of only the CRC-32 (same behavior as before version 1.4.19)

    • NEO: Fixed wrong 68K cycle count in Cyclone code causing startup issues on certain games (intro music in Blazing Star, hung intro Matrimelee) when Emulate Timer is off

Version 1.4.20 (2012.03.06)

    • MSX: Fixed on-screen keyboard size bug introduced in 1.4.19 on devices that don't support npot textures

Version 1.4.19 (2012.03.02)

    • Added Show Bounding Boxes option to on-screen config showing the exact regions of the screen used in controller calculations. For the d-pad, white = single direction, green = diagonal, red = no input (deadzone) Example Screenshot

    • Added H and V Overlap options to on-screen config that affect what portion of the base button size is added to the bounding box, potentially overlapping with adjacent buttons for pushing both at once

    • Added Diagonal Sensitivity option for on-screen d-pad, setting to None disables diagonals completely

    • Generalized iCade support so it also works on Android and WebOS

    • Android: Fixed a screen orientation bug which could cause a distorted display on some devices upon orientation changes in the menu (Android 2.3+ only)

    • Android: Added Skip OS Input Method option to skip preprocessing key inputs by the OS in case it causes issues like dropped keys, etc. (Android 2.3+ only)

    • Android: Check for multiple HID gamepads and treat each one as a different player. Currently this is only done once at app startup so you must restart the app to detect more gamepads. (Android 3.1+ only)

    • Android: Added option to control image dithering, always on if using Android 3.0+ for better on-screen control image quality

    • 2600: Added Color/B&W switch to menu and key config

    • 2600: Added Keyboard Controller to key config

    • 2600: Render audio with 16-bit samples for an improved volume range

    • NEO: Added Test Switch (service mode) to key config

    • NEO: Fixed Spin Master when Emulate Timer is set to Auto

    • NEO: Added .gno cache file support. When the Make/Use Cache Files option is on, new .gno files are created for games that don't have them upon loading, and existing .gno files are used. You can also use Gngeo on your PC to create the .gno files. Using cache files speeds up loading a reduces memory usage, but may cause issues in certain games.

Version 1.4.18 (2012.02.19)

    • NEO: iOS-specific release switching to the Cyclone 68K core bringing compatibility on par with Android and WebOS which already used it. All save states from previous version are invalid.

Version 1.4.17 (2012.02.14)

    • First release of NEO.emu (emulates SNK Neogeo MVS/AES system)

    • This update only contains source code cleanups so no binaries for other systems will be released

Version 1.4.16 (2012.02.01)

    • Fixed an on-screen d-pad problem from 1.4.15

Version 1.4.15 (2012.01.31)

    • Fixed the state slot menu item always showing "0" even when other slots are selected

    • Fixed an on-screen control issue introduced in 1.4.14 where a face button may incorrectly go into the not-pushed state when sliding from the mid-zone (i.e. pushing 2 adjacent buttons) back to a single button

    • Made recalling the previously used menu optional, set via "Remember last menu" under GUI Options

    • Android: Added additional support for the Wii Remote Plus: working LEDs and Classic Controller, but still needs the red sync button to connect

    • Android: When using a USB joystick, properly read more than one d-pad or analog stick in the Android 2.3+ back-end

    • Android: Disabled 48KHz sound support for now as Android seems to just re-sample to 44KHz even when the native rate is 48KHz, so it's just a waste of resources

    • iOS: Moved config files to /User/Library/Preferences since shared Documents folder may not exist on 5.0.1 jailbreak

Version 1.4.14 (2012.01.26)

    • Added a navigation bar to simplify touch controls when moving back between menus and returning to a running game (also shows the title of the active menu)

    • Menus remember scroll positions and highlighted items when navigating back to them, simplifying key-based navigation

    • When returning to the menu during a game, recall the previously used one

    • When using key-based navigation, auto-highlight the first entry on new menus

    • Split up Key Config into categories (In-Game Actions, etc.) and added support for selecting between multiple built-in defaults.

    • Split up Options into categories (Video, Audio, Input, etc.)

    • Android: Added partial support for the new Wii Remote Plus models with the following issues: You must use the red sync button for a working connection, the LEDs constantly flash, and Classic Controllers don't work

  • Android: Fixed volume key and key repeat handling in the Android 2.3+ back-end

  • Android: Fixed a startup crash with Android 4.0 on the HTC Sensation due to a missing free() function in the gralloc module

    • Android: Set APK as Xperia Play optimized so it shows up in the games launcher

    • Android: Added page up/down in menus when using gamepads reporting L/R buttons

  • Android: Enabled 48KHz sound by default if device natively supports it

  • Android: Fixed some USB directional pads by lowing the analog range needed for a direction press

  • Android: Default to 0 frameskip if refresh rate is 60Hz and running at least Android 3.0

  • Android: Added a work-around for an OpenGL driver bug on the Samsung TXT causing corrupt graphics

    • MD: Fixed input handling for certain SMS games like Wonder Boy in Monster Land

    • MD: Save the 6-button gamepad option

    • MSX: Added Colecovision ROM support

    • NGP: Fixed some crashing issues in games like Cotton (English version)

    • 2600: Changed center on-screen controls to Select & Reset so the functions are more consistent with the other apps

    • 2600: Replaced Soft Reset menu command with Console Switches, for additionally setting difficulty switches

    • SNES: Fixed both mouse buttons incorrectly activating during a right-click

Version 1.4.13 (2012.01.02)

    • Android: Fixed a buffer overflow in the audio back-end that could crash the app on some devices. Only NGP.emu can trigger the issue.

    • NGP: Added compatibility with the English patched Card Fighters 2

Version 1.4.12 (2011.12.24)

    • Android: Fixed an issue with the AndroidManifest.xml not allowing devices without Bluetooth to install the apps (a side-effect of increasing the minimum required OS version on an APK)

    • Added D-Pad Deadzone option (controls the distance from the center until a direction is registered)

Version 1.4.11 (2011.12.22)

    • Android: Convert Android 2.3+ analog joystick events to digital so they are usable for input once again

    • Android: Fixed a possible screen redraw issue on the Galaxy Nexus after changing orientation

Version 1.4.10 (2011.12.21)

    • Android: Fixed an issue with the AndroidManifest.xml file causing app restarts and missing soft menu buttons on Android 3.0+ (Note: main app code was not recompiled and shows as version 1.4.9)

Version 1.4.9 (2011.12.21)

    • Android: Made app into multiple APKs, each optimized for a specific version of Android (1.6, 2.0-2.2, and 2.3+). Will allow future updates to use new OS features (Bluetooth toggle prompts, Xperia Play touch pads, etc.) without breaking compatibility with previous versions. The Market will automatically install the correct APK based on your OS, and the new 2.3+ code should fix issues on newer devices like the Galaxy Nexus.

    • Android: Re-wrote event and input handling code using Android 2.3 APIs (Looper and InputQueue) to maximize responsiveness.

    • Android: Fixed a possible crash in the notification icon code

    • NES: Added Bandai FCG mapper fix from FCEUX SVN-2347

    • MD: Minor 68K CPU optimizations

    • MSX: Added an internal ROM database to properly detect certain ROM types and increase compatibility

Version 1.4.8 (2011.11.26)

    • Fixed saving Screenshot and Exit key configs

    • Decreased turbo button rate to every 4th frame to better model controllers like the PC-Engine's

    • Android: Extended "Auto" On-screen Controls mode to hide controls when Xperia Play gamepad slides open

    • iOS: Fixed Classic Controller analog stick support (broke in the last Wiimote code re-write)

    • iOS: Relocated config files to /User/Documents/explusalpha.com/ since the base Documents directory is wiped when using the iBooks jailbreak fix. The app will move existing config files automatically for the next few updates so old files aren't left over.

    • 2600: Added paddle control support via the existing joystick controls

    • 2600: Added support for internal ROM database to detect parameters (fixes games like Dig Dug NTSC)

    • 2600: Fixed Galaxian graphics with Stella SVN 2279 patch

    • NES: Added FCEU .cht cheat file support and a menu to enable/disable cheats

    • NES: Fixed stuck music notes in "Gimmick!" when sound channels are mute

    • NES: Updated core to FCEUX 2.1.6-svn (general emulation fixes)

    • GBC: Added option to report the system as a GBA in GBC mode (used to access the Advance Shop in Zelda)

    • GBC: Updated core to Gambatte 0.5-wip (general emulation fixes)

    • NGP: Improved Z80 sync so music plays at the proper speed

    • NGP: Performance optimizations due to new Z80 sync code

    • MSX: Added support for loading a Sunrise IDE controller as a cartridge and its associated hard disk images

    • MSX: Load Game menu automatically loads any disk image 1 meg or larger as a hard disk image

    • MSX: Made the Reset menu command do a hard instead of soft reset to fix games like Metal Gear 2 and be more consistent with other emulated systems

    • MSX: Fixed the wrong directory appearing in ROM/Disk Control if the user changed directories via Load Game

Version 1.4.7 (2011.10.25)

    • Fixed a bug saving certain on-screen control positions introduced in 1.4.6

    • Android: Prevented compatibility zoom mode from activating on Android 3.2+ devices since it isn't needed

    • Android: Made suspend notifications cancel-able and prevented them from getting stuck if the app was previously killed

    • iOS: Fixed Classic Controller detection if it's plugged in during the initial scan

    • PS3: Fixed unbinding the wrong button in the key config

Version 1.4.6 (2011.10.21)

    • Added a sound rate option for most emulated systems (22, 32, 44, and 48 KHz) and fine-tuned mixing rates for slightly better synchronization. Note that 48KHz is only natively supported on certain Android devices.

    • Android: Updated compiler to GCC 4.6.1 and tested apps on Android 4.0 emulator

    • Android: Fixed Bluetooth connection issues introduced in 1.4.5

    • Android: Optional notification icons to show when the app is suspended in the background

    • iOS: Added iCade support

    • iOS: Added support for the Zeemote JS1 Bluetooth controller

    • MD: Fixed some memory alignment issues that could cause crashes

Version 1.4.5 (2011.10.09)

    • This is an Android-only release to fix a potentially serious input latency issue affecting certain devices

    • Text wrapping in notification messages

    • Android: Added support for the Zeemote JS1 Bluetooth controller

    • MD: 68K CPU speed tweaks and multi-CPU support for future Sega CD emulation

Version 1.4.4 (2011.09.21)

    • Multi-iControlPad support (functions the same way as Wiimotes already do)

    • Confirmation dialog when exiting the app via key mapping

    • Added an option to change the Bluetooth scan time in seconds for cases where the default of 4 secs is not sufficient

    • Zoom option for 100% to 70% image scaling, or "Integer-only" which always scales in multiples of the original pixel resolution (double-width modes are implicitly height-doubled)

    • Android: Improve app behavior when going in/out of focus to work better with certain lock-screens

    • MD: FM Sound Unit option to control whether FM sound is enabled in SMS mode

    • MSX: Bundle the free C-BIOS ROMs to allow the app to work without additional setup steps. You'll be prompted to install them if the app runs without an existing MSX.emu directory present.

    • MSX: Fix a crash when loading an incomplete save state. Now the game properly closes instead of crashing the app.

Version 1.4.3 (2011.09.11)

    • Added a screenshot function configurable in the key config. The image consists of the raw output of the emulated system, saved in PNGs numbered from 000 to 999 in the game's directory

    • Confirmation dialogs for resetting a game, loading a state, overwriting a state, and resetting the key config

    • Android: Changed some defaults to work around OpenGL driver bugs. Evo 3D phones now default to GPU Sync Hack on, and Direct Texture only defaults on with PowerVR SGX 530 GPUs

    • Android: Fixed vibration bug introduced in last update

    • MD: Big-Endian SRAM option to change how data is interpreted in .srm files so saves from other emulators like Gens load/save properly

    • MSX: Made on-screen keyboard multi-touch aware

Version 1.4.2 (2011.08.15)

    • Auto save-states can be saved after a certain amount of time has passed (15/30mins) to minimize data loss in the event of a crash, power loss, etc.

    • Increased the bounding box size for the fast-forward on-screen control, making it easier to push

    • Input handling optimizations, key codes have changed so all controls must be reset

    • Android: Use native key codes for button maps so all possible Android keys can be used, even those not known by the app

    • Android: Properly pause game if active behind another window (such as a lock-screen)

    • Android: GPU Sync Hack option to work around broken OpenGL drivers on some phones. Only enable if you're getting lock-ups or other strange behavior. It's enabled by default on the HTC Desire on Android 2.2 or lower. If your device starts working properly with this option on, please report it to me.

    • MD: Recognize .gen and .md extensions

    • MD: Fix opening zip files containing other data stored before the rom

    • MD: Fix FM sound clipping

    • MD: Game Region option to specify USA, Europe, or Japan console types

    • PCE: Audio output optimizations and auto adjust sample rate for 262 line games (Bonk's Adventure)

    • MSX: CPU optimizations, about 10% faster in most cases

    • MSX: Improved audio sync, fixing drop-outs on certain games

    • MSX: Increased ROM mapper support

    • SNES: Adjusted sound pitch and interpolation enabled

    • SNES: Fix a crash caused by setting the on-screen D-Pad off if L/R are placed on it

Version 1.4.1 (2011.08.09):

    • Fixed some memory leaks when closing the menu

    • MSX: first release

Version 1.4.0 (2011.07.20):

    • Note: The config file format has changed and all options should reset automatically, in case of issues delete the config file manually

    • Recent Games list added to the main menu, stores the last 10 games played.

    • On-screen fast forward hot-spot now acts as an on/off toggle

    • Android: Vibration support when using touch controls, available under Options -> On-screen Controls

    • iOS: Minimize Bluetooth input latency and make BTstack an optional package, you'll be prompted to install it the first time you start a Bluetooth scan

    • iOS: Fixed a possible Wiimote detection issue

    • iOS: Fixed app start-up in portrait mode on iPad and add better default settings

    • SNES: Mouse support

    • MD: Master System support

    • MD: SVP support for Virtua Racing (Note: you need a very fast device for this)

    • PCE: Updated PS3 port with multi-controller support and fixes for external audio tracks on CD games

Version 1.3.30 (2011.06.26):

    • Better error handling and messages when a saving a state fails

    • Configurable Menu and Fast-forward hot-spots for the touch screen (set under On-screen Config)

    • Android: Updated Bluetooth event processing system to minimize latency caused by buffered events

    • PCE: Optimizations to CD reading code