Updates
Version 1.5.82 (2024.05.01)
Fix select rectangle not appearing on menus with a single item since 1.5.80
Android: Fix Bluetooth scan menu item incorrectly shown on Android 4.2+ devices that already have HID gamepad support
NES.emu: Fix some non-working internal palettes from last update and new Lightful and Palightful palettes
Saturn.emu: Tweak VDP2 thread queue for more consistent frame times
Version 1.5.81 (2024.04.13)
Fix crash when resuming app with audio enabled from previous update
Saturn.emu: Fix VDP glitches from previous update
Version 1.5.80 (2024.04.12)
Reorganize frame timing options into their own category and add Frame Clock -> Timer option for use on true VRR displays
Add support for opening a folder via an external event (command line, Android intent, etc.)
Android: Add support for future Android OS versions with 16Kb memory pages on ARM64
Android: Prevent fingerprint sensors with device names "uinput-*"Â from being detected as gamepads
Android: Only show System -> Performance Mode option if device supports it
NEO: Add support for the PVC mapper chip, fixing mslug5, svc, and kof2003
NEO: Fix missing tile graphics for ROM sets: bangbead, ganryu, kof2001, nitd, pnyaa, preisle2, s1945p, sengoku3, zupapa
NEO: Improve 68K/Z80 sync, fixes missing intro audio in Blazing Star in console mode
NEO: Fix CMC50 M1 decryption issue causing missing audio in games like kof2000 and samsho5
NEO: Fix pitch of ADPCM-B channel when changing sample rate during emulation
NES: Add/Update FBX and misc built in palettes
PCE: Fix loading SuperGrafx content not in internal DB such as homebrew ROMs
Saturn: Fix reading m3u files with Windows line endings
Version 1.5.79 (2024.03.13)
Fix autosave timer resetting when pausing emulation
Add a shortcut for a rewind button in On-screen Input Setup -> Add New Button Group
C64: Rename "Joystick Mode" option to clarify which port the P1 joystick is mapped to
C64: Add system option to set the default main joystick mode
C64: Rename "Autostart Basic Load" option to "Load To BASIC Start (Disk)" for consistency with VICE and properly set the default value based on the core
GBA: Add support for using a BIOS ROM, defaults off and can be enabled per-content
NES: Update core to FCEUX GIT 798c5a1 (2024.03.03), including Mapper 413
NES: Add console option to use the P2 start button as the Famicom microphone and add a virtual controller preset for it
Saturn: Fix m3u loading referenced files outside of current working directory or archive
Version 1.5.78 (2024.02.26)
Add key binding to close content
Fix frame drop when releasing a key as part of a combo assigned to fast forward/slow motion
C64: Update core to VICE 3.8
C64: Add color settings to video options
C64: Save options per core: default TDE, border mode, crop normal borders, SID engine, ReSID resampling
Saturn: Add per-content option to enable anamorphic widescreen for the few games that support it like PD Zwei and Nights, also useful for widescreen patches
Saturn: Add option to omit MD5 sum in save file names
Saturn & Snes9x: Add option to set deinterlace mode and default to bob deinterlacing
Version 1.5.77 (2024.02.04)
Re-release Saturn.emu, now based on Mednafen
Improve frame timing logic for better fast-forward performance
Set the autosave timer to off by default and allow setting custom timer value up to 720 min
Remove Video -> Image Buffers option, superseded by new advanced video options (Frame Clock and Precise Frame Pacing)
Add options to toggle L2/R2 key emulation from analog L/R triggers or analog Brake/Gas, when off this will only use digital L2/R2 events
Android: Update Precise Frame Pacing video option to work when using full target frame rate, this prevents the compositor from buffering a frame and can reduce input lag but may cause dropped frames
C64: Add option to set default True Drive Emulation
MSX: Add option to select a default Coleco machine type when loading .col files
MSX: Add support for loading BIOS directly from an archive file
NES: Fix mapper 45
PCE: Fix handling of save states that may change sizes based on emulation options (Arcade card, etc)
Version 1.5.76 (2023.12.14)
Fix corrupted input device configuration when deleting a key config without manually setting another
Map analog triggers to L2/R2 by default
Allow the "Mode" gamepad button to dismiss the menu, this is normally mapped to the center Xbox/PS button
Allow setting content zoom up to 200%
C64: Fix selecting system files in scoped storage and further improve archive loading speed
MD & PCE: Add support for loading CD images in zip archives
NES: Update core to FCEUX GIT e806a5a (2023.12.09)
Version 1.5.75 (2023.11.28)
Add state rewind support, configure by setting rewind states in Options->System and binding the rewind action to virtual/physical controls
When moving virtual controls, add option to snap to pixel grid (2 to 64 pixels)
Remember scroll position when going up a folder
Optimize various graphics functions like text rendering to reduce CPU usage
Optimize writing auto save states to storage to reduce chance of a frame drop
Various tweaks and fixes to physical gamepad mappings
Add keybindings for system reset
GBA: Update core to VBA-M GIT 64d8cff (2023.11.16)
C64: Optimize repeated loading of system files when using a zip archive
NES: Update core to FCEUX GIT 5a5faa7 (2023.10.26)
NES: Add key binding to Eject Disk/Switch Side for FDS content
Snes9x: Update core to Snes9x GIT d30060c (2023.11.03)
Version 1.5.74 (2023.08.27)
Due to internal changes to the input system to support more features in future updates, all button mappings are reset in this update
Allow mapping physical key combinations to input actions, up to 3 keys at once supported
Add option to highlight pushed virtual buttons, also works as an input viewer when using physical keys
Add support for setting any virtual button to act as turbo and/or toggle
Color turbo/toggle virtual controller buttons to differentiate them from normal ones
Add option to set max recent content items and increase the default to 20 items
C64: Convert all key mappings to use new key combination system so all shifted keys are customizable
C64: Allow loading of VIC-20 carts with memory address extensions (.20, .40, etc.)
NES: Update core to FCEUX GIT 35218bd (2023.08.19)
Version 1.5.73 (2023.05.21)
Replace "Force Max Screen Frame Rate" option with "Override Screen Frame Rate" to allow any supported rate
Add "Present Mode" video option, for setting the OpenGL swap interval
Add "Precise Frame Pacing" video option, enabled by default and is used when running at a lower frame rate target
Add support for blank frame insertion when the screen's frame rate is a multiple of the system's, controlled by "Allow Blank Frame Insertion" option
Android: Add native Chrome OSÂ input mode for mice events
Android: Fix dropped frames on some devices due to preset timestamp usage
Lynx, NGP, PCE, Swan: Add option to omit the MD5 hash in save filenames
NES: Update core to FCEUX GIT f8b8e93 (2023.05.02)
NES: Add per-content overclocking support
NES: Add basic NSF support, UI isn't implemented yet
Version 1.5.72 (2023.04.29)
Fix issue where sound stops working after it's muted during fast/slow mode
Add "Target Frame Rate" option for running emulation at a lower frame rate to save power or if the device can't deliver a stable full rate
Moved "Skip Late Frames" option into "Target Frame Rate" menu as "Full (No Skip)"
Android: Remove unneeded "Reduce Compositor Lag" option, its function is now managed automatically
GBA: Increase the volume of the noise channel to a more correct level
GBA: Improve color accuracy when converting GBA's 5-bit color to 8-bit
Version 1.5.71 (2023.04.24)
Fix a thread issue that could cause a dropped frames and slow fast-forward performance
Reduce input lag by running emulation asynchronously allowing input to still be applied even if it occurs just after a vsync interval
Android & Linux: Add "CPU Affinity Mode" option to set CPU affinity of emulation and render thread, on devices with different types of CPU cores (ARM big.little, etc.), default to using only the performance cores during emulation for more consistent frame times
Android: Add support for PerformanceHintManager on Android 13, allowing the app to report frame times to the OS and ramp up the CPU speed as needed, enabled when "CPU Affinity Mode" is set to Auto
Android: Add support for themed icons on Android 13
Android: Fix issues related to file extensions that affect front ends on Android 13
GBA: Fix issue where old save states could modify backup memory type, breaking in-game saves
Version 1.5.70 (2023.04.09)
Due to popular demand, re-added full screen aspect ratio option, now called "Fill Display"
Hide "Square Pixels" aspect ratio option on systems where it's the same as "Original"
Use alternate decimal formatting that hides extra zeros
Android: Fix repeat key events from volume keys still activating volume slider even when they're bound to app actions
Android: Prevent IMEs like SwiftKey from intercepting physical keyboard events and cause unwanted key releases
C64: Fix writing disk images on Android scoped storage
C64: Bypass VICE's keyboard queue to reduce input lag by up to 1 frame
C64: Fix left arrow key mapping
Lynx: Add .o to list of valid file extensions, used for homebrew
Lynx: Add support for loading headerless .lnx files
Lynx: Add HLE BIOS for use when BIOS path is unset
Lynx: Fix Zaku black screen
Version 1.5.69 (2023.04.05)
First release of Atari Lynx emulator Lynx.emu
Improve edge filtering quality of virtual controls and UI graphics
Split fast/slow mode into two separate functions
Save video aspect ratio separately for landscape/portrait modes and add "Square Pixels" setting
Simplify frame rate options and support always outputting the original framerate for VRR displays even if it changes mid-emulation
Fix hq2x shader on GPUs with lower precision float math like the Mali-450
Improve back button behavior in file picker
Linux: Explicitly set a bypass compositor hint on full-screen X11 windows, needed for VRR when using KWin
2600: Add support for the Booster Grip joystick
2600: Hide virtual d-pad and joystick buttons when keyboard controller is enabled
2600: Default to split console buttons in virtual controls
C64: Update core to VICE 3.7.1, system files updated on C64.emu page
C64: Improve error messages by showing the name of the last system file that failed to load
GBA: Update core to VBA-M GIT 892527e (2023.03.07) including version 2.1.5
GBA, GBC, NEO, Swan: Reduce CPU overhead saving SRAM mid-emulation
NES: Update core to FCEUX GIT bb76573 (2023.03.11) including version 2.6.5
NES: Update mappers: 134, 176, 205
Swan: Fix games like Firelancer that use a non-standard frame rate
Snes9x: Update to Snes9x 1.62.2
Version 1.5.68 (2023.03.01, released to beta track)
Add support for adding/removing on-screen control elements and remapping actions
Use split auxiliary virtual buttons by default (select, start, etc.)
Update UI icons to Material Design theme
Show full file listing even when selecting only a folder so the contents can be easily checked
Add "Autosave Content" option to allow only auto-saving backup memory without save states
Fix incorrect backup memory timestamp warning when a state doesn't exist
Allow up to 125% maximum sound volume
Android: Add support for system gesture exclusion on Android 10+, allows placing on screen controls on screen edges without triggering back gestures
NES: Fix loading 512 color palettes
Snes9x: Update to Snes9x GIT a2e0580 (2023.02.04)
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 0.9.36.1 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