Releases with ports for two or more operating systems.
- Details
- Category: Multiple Platform
What's New:
- MiniGB-APU now has it's own repository at https://github.com/deltabeard/minigb_apu
- MiniGB-APU now outputs 16-bit signed integer (s16) samples instead of 32-bit floating point (f32). In addition, there is no more floating point arithmetic.
- General improvements to documentation.
- When a HALT instruction is executed, Peanut-GB now calculates the emulated CPU time until an interrupt will occur instead of looping one CPU cycle at a time until a counter triggers an interrupt. This allows for a significant performance improvement in games which use the HALT instruction.
- Use compiler intrinsic functions if available for a small number of emulated CPU instructions.
- Many fixes to LCD emulation, including LY=LYC interrupt, BG over OBJ priority, mode timing, IO overwriting, etc. #66 #69 #70 #78.
- DMG-ACID2 Test on Peanut-SDL
- Added bootrom support using gb_set_bootrom.
- peanut_gb.h can now be compiled as an object by defining PEANUT_GB_HEADER_ONLY.
- Fix MBC2 emulation #80.
- Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience.
- Details
- Category: Multiple Platform
What's New:
- Implement the HALT bug, where executing a HALT instruction while IME=0 and (IE & IF) != 0 causes the program counter to fail to increment after the next opcode read; this fixes The Smurfs from hanging on startup as it depends on the HALT bug to change an LDH A, ($FF00+$8C) instruction (F0 8C) into LDH A, ($FF00+$F0) followed by ADC H (F0 F0 8C)
- Add an About window specifying current version
- Details
- Category: Multiple Platform
What's New:
- Fixed the definition of the 'ton' unit (U.S. short ton). It was 10^10 times too large, due to a missing sign in the units definition table.
- Equations like [1:2:3]=A, when entered without a name, weren't parsed correctly, because the part before the first colon would be incorrectly interpreted as a name. Fixed.
- When an error occurs while evaluating an equation, and that equation exists in the EQN list, pressing R/S in the EQN list view will now start editing that equation, with the cursor on the part of the equation where the error occurred.
- Details
- Category: Multiple Platform
What's New:
Added the ability to change the color of the non-working games/devices in F1
- Details
- Category: Multiple Platform
What's New:
Note: This release contains changes that may alter existing gamepad configurations.
Note: MPEG .dat files will be updated, on all games, with this update.
Note: The release contains new files required within the pics folder.
If upgrading, ensure the new files are copied to your existing folder setup.
- DAT_VERSION 3 .dat files. 4Gb+ UHD M2V files are now supported
- Singe 2 dynamic 'overlay resolution switching' is now supported.
- Singe API driven Active Scoreboards - Game LUA requires simple changes.
- Singe Scoreboard API can use the hardware Arduino USB Scoreboard.
- .dat file (re)parsing video blanking bug, is now fixed.
- Scaled video window is now positionable: -scale_shiftx and -scale_shifty
- More accurate (default) annunciator 'rank' graphics (Updates in pics folder).
- Added 'dedicated cabinet' style annunciator bezel: -dedannunbezel
- Score and annunciator bezels now have transparency level adjustments.
- The independent Scorepanel can be initialized on a selectable secondary screen.
- Game Controller trigger bug is fixed and HAT behaviour has changed (extended buttons).
- Overlay scoreboard can be disabled using null scoreboard in lair and ace: -noscoreboard
Argument change overview
-scorescreen - Choose secondary screen for independent Score Panel display.
-set_overlay is no longer supported on updated games.
New bezel features are documented in: bezels.txt
Gamepad HAT(D-PAD) U-D-L-R behaviour has changed - Now provides 4 extra buttons for hypinput.ini
KEY_UP = SDLK_UP 0 BUTTON_DPAD_UP AXIS_LEFT_UP
KEY_DOWN = SDLK_DOWN 0 BUTTON_DPAD_DOWN AXIS_LEFT_DOWN
KEY_LEFT = SDLK_LEFT 0 BUTTON_DPAD_LEFT AXIS_LEFT_LEFT
KEY_RIGHT = SDLK_RIGHT 0 BUTTON_DPAD_RIGHT AXIS_LEFT_RIGHT
- Details
- Category: Multiple Platform
What's New:
Added
- Ability to add games to categories created in steam (including Favorites and Hidden!)
- SRM now respects addition of non SRM managed games to SRM created categories, i.e. it won't delete them.
- Global buttons added to steam directory and user accounts field in parsers.
- Choose Account button added to user accounts field in parsers.
- Added an SGDB search field to the fix match page in preview.
- Include Visible and Exclude Visible buttons in preview to make adding exceptions even easier.
Changed
- Requests library changed to node-fetch, hopefully fixing timeout issues. But I have been burnt before.
Fixed
- Fix match was somewhat broken for the artwork only (Steam) parser, wasn't setting the exceptionId correctly.
- Subtle bug that prevented Remove All Added Entries from doing anything to categories or controllers when Preview hadn't been generated.
- Minor issue where image index wasn't being set to zero after an image was saved to steam (making it seem like the image didn't save even though it did).
- Graphical issue with scrollbar in EmuDeck theme, credit to @dragoonDorise.
- Details
- Category: Multiple Platform
What's New:
- Fix updater on windows always installing the desktop icon
- Fix updater on windows not re-launching RMG after installation
- Fix the speed limiter toggle and speed factor options not working on linux on some systems
- Fix the 1080 Snowboarding cheats (thank you Gent)
- Add support for moving the toolbar (changes to the docked position are persistent across application runs)
- Update GLideN64 and mupen64plus-input-gca
- Details
- Category: Multiple Platform
What's New:
Linux port
- fixed last issue in #2951 properly
AppleII / C64
- fixed states sometimes crashing when a disk change actually happens
BSNESv115+
- fixed #3638 (snes_get_board returns empty string)
- fixed #3643 ("No PPU sprite limit" option doesn't seem to work)
Gambatte
- fixed #3648 ([GameBoy Link] Buzzing noise when one of the Players is muted)
MAME
- fixed BIOS selection menu
- added emulation issues and ROM info to RomDetails dialog
- report emulation status via ROM info icon and text
- fixed #3631 (bgaregga locks up the process)
- hide settings for optional dip switches (for now)
- use 0x3ffffffc as framerate numerator, like actual MAME does since 0.254 (fixes MP4 processing on YouTube)
- fixed #3565 (kinst + kinst2 = crash)
- fixed #3615 (rom loading regression)
- fixed crash with games using k001006_device (e.g. windheat)
NESHawk
- fix open bus execution following write instructions (#3633)
Octoshock
- fixed exe load crash
SMSHawk
- fix noise audio channel on SMS VDP (LFSR is 16 bit wide) (#3602)
EmuHawk
- fixed #3268 ("Unthrottled" setting burns cpu when paused)
- If a PSX .bin is loaded, try synthesising a .cue
- don't keep multidisk flag on after it was set once
- speedup the PlayMovie dialog
- Prevent annoying waits when using firmware manager with DSi NANDs present
- Lua
* fixed #3616 (error loading module in lua (socket.dll))
- TAStudio
* speedup column drawing
* fixed bugs with entries in patternsform (#3649)
- RetroAchievements
* fixed RetroAchievements rich presence not working
* fixed Jaguar CD homebrew hashing wrt retroachievements
* disabled leaderboard list form
* fixed various crashes and deadlocks
- Details
- Category: Multiple Platform
What's New:
- IMGMAKE will choose LBA partition types for 2GB or larger disk images, but the user can also use -chs and -lba options to override that choice. The CHS or LBA partition types do matter because it affects which version of INT 13h is used by Windows 98/ME to boot up and, if drive C: is in compatibility mode, at all times. (joncampbell123)
- PC-98 256-color mode will also trigger the auto mode of "render on demand" for performance reasons because per-scanline raster effects are very unlikely in that case, as will MDA and Hercules machine types. (joncampbell123)
- When the DOS IDLE API is enabled (by default), limit STI+HLT to occur on INT 28h only once after any call to read the CON device or call to BIOS INT 16h to read the keyboard. This fixes stalls and sluggish input problems with programs that like to call INT 28h often like the Pacific C compiler PPD IDE interface. (joncampbell123).
- Hercules InColor machine type: Fixed attribute and RAMFONT handling of 48K RAMFONT mode and added planar text rendering. (joncampbell123).
- Details
- Category: Multiple Platform
What's New:
- Windows - bugfix: upgraded to GTK-3 runtime gtk-3.24.38
* Among other things, this fixed an error in the display of the topmenu on systems with multiple monitors.
* The module for checking the latest version of the program now uses SSL.
* The program can now be compiled in Windows in both 32-bit and 64-bit versions.
- bugfix: WD279x - command type III read track addr - fixed empty FD
- bugfix: 4 years ago I accidentally disabled the CMT extension TAP, no one noticed :(
- added new topmenu section the Audio, now is posible to setup audio volume for all channels or individualy per channel
- the default main window rendering scale is now set to Bigger - 150%
* In the Display section you can now select the startup window size from one of three predefined sizes - 100%, 150% and 300%.
- virtual CMT now supports motor control via i8255
* Engine state may by controlled manualy by the "Pause" toggle button in the CMT control pannel.
Play / Record + Pause => motor OFF
Play / Record => motor ON
* If the engine is running and the i8255 sends a signal to stop it, the "Pause" switch is activated.
* CMT saving: after opening a new file is now switched default to mode "Record + Pause".
- into CMT menu added option for enable/disable MZF filesize check and fix (default is enabled)
- Details
- Category: Multiple Platform
What's New:
Fix an issue where controller wouldn't respond after being disconnected and reconnected
- Details
- Category: Multiple Platform
What's New:
MAME Testers bugs fixed
-----------------------
- 06797: [Core] (trs/coco3.cpp) MC6809 handles invalid instruction $10 $4F incorrectly. (Tim Lindner)
- 07146: [Crash/Freeze] (atari/atarigt.cpp) tmek20: Emulator hangs after some time at the title screen. (Angelo Salese)
- 07261: [Crash/Freeze] (nec/pce.cpp) tg16 [addfam]: Emulated system freezes shortly after starting a game. (Angelo Salese)
- 07384: [Gameplay] (nec/pce.cpp) pce [xwiber]: Second stage boss never appears. (Angelo Salese)
- 07727: [Graphics] (nec/pce.cpp) pce [ppersia]: Bad graphics are displayed at the top of the status area. (Angelo Salese)
- 07892: [Gameplay] (namco/galaga.cpp) sxeviousj: Inserting a coin immediately starts a game with stuck controls. (hackbar)
- 08327: [Sound] (namco/galaga.cpp) bosco: Certain DIP switch settings cause issues with the enemy base explosion sound. (hackbar)
- 08511: [Core] (trs/trs80.cpp) trs80l2: SuperUtility 3 fails to boot due to false sync detection. (Tim Lindner)
- 08585: [Gameplay] (nec/pce.cpp) pce [tblade]: Game freezes after transition from chase view to overhead view. (Angelo Salese)
- 08593: [Graphics] (taito/taito_f3.cpp) landmakr and clones: Ending slides are offset vertically. (ywy)
- 08601: [Crash/Freeze] (tangerine/oric.cpp) oric1 [zorgons]: Attempting to start the game crashes the emulator. (O. Galibert)
- 08602: [Graphics] (konami/ultraman.cpp) ultraman: All sprites appear as shadows. (Ivan Vangelista)
- Details
- Category: Multiple Platform
What's New:
- Added a cache file (xmlcache.dat) that is written to the pfeMAME folder after a full database refresh. This is essentially a copy of the output from the mame.exe -list xml command. Then on the next database refresh I read that file and compare its MAME version info with the MAME version info currently running. If they match, then I use that data. If not then I have to perform the full -listxml which takes longer. This has reduced a full database refresh on my machine from 36 to 24 seconds.
- Fixed a but that stopped the visual pinball roms from working. I hadn’t updated that code in quite a long time and found that the list format was no longer correct. I need to find a better way of doing this moving forward.
- Removed the right click context menu items for playing ROMs with different emulation engines.
- Removed enginetouse.dat file and related code.
- Added a new non_mame_exulators.xml file.
- Rewrote the playgame code to allow for reading different emulator engine options from the XML file.
- Added additional code to the database build to support the new alternate emulation engine process.
- Added a new menu item under the Edit Menu -> Setup Alternate Emulators.
- Added a new module -> Alternate Emulators
- Fixed a bug that caused the filepaths buttons to be greyed out on first-time-run even though they were enabled. Just needed a refresh after the first time run popup message.
- Removed any code and manual references relating to the psutil and keyboard imports and ability to shut down MAME by holding a key. This never worked properly as various platforms think you are trying to run a key logger and block it or require admin rights which is bonkers.
- Added a button hover highlight effect
- Added a bold font and underline to the slot headings
- Other graphical improvements to the slot controls page
- Additional changes to controls in preferences window to support color modes
- Improved the refresh of the quantities section of the statusbar when searching. Still not perfect but at least better.
- Added a startup window to select the application language
- Added application language selection to the preferences window and command line
- Added a framework for the application languages (still needs a lot of work)
- More changes to preferences window layout to sizer better for different languages
- Moved logging to functions.py module and got rid of write_log_remote. Any module that now needs to write to the log file can set up local logging or receive the logging object through init.
- Added line number and module name to the logger to assist with debug
- Fixed setup.py to handle multiple folder imports with setuptools
- Updated build_source_distribution.py so that for folder creation with all sub folders and files you just have to include the top level folder and refer to it as ‘folder_all’
- Updated the manual to include language selection and the new alternate emulation engine support.
- Command line errors will now generate a message but not then start the pfeMAME application. This way you can see they you had an error.
- Updated the search box so that when it looses focus, the search text gets cleared. Fixes an issue where the box locks up when it looses focus after some text is entered.
- Updated the setup.py file for building distributions. Under macOS you need to put the ‘locales’ language folder within the ‘Resources’ folder. To do this just define a second insertion point for the data_files setup variable.
- Details
- Category: Multiple Platform
What's New:
Emulation fixes
- GBA Audio: Fix improperly deserializing GB audio registers (fixes mgba.io/i/2793)
- GBA Audio: Clear GB audio state when disabled
- GBA Memory: Make VRAM access stalls only apply to BG RAM
- GBA Overrides: Fix saving in PMD:RRT (JP) (fixes mgba.io/i/2862)
- GBA SIO: Fix SIOCNT SI pin value after attaching player 2 (fixes mgba.io/i/2805)
- GBA SIO: Fix unconnected normal mode SIOCNT SI bit (fixes mgba.io/i/2810)
- GBA SIO: Normal mode transfers with no clock should not finish (fixes mgba.io/i/2811)
- GBA Timers: Cascading timers don't tick when disabled (fixes mgba.io/i/2812)
- GBA Video: Fix interpolation issues with OpenGL renderer
Other fixes
- Core: Allow sending thread requests to a crashed core (fixes mgba.io/i/2784)
- FFmpeg: Force lower sample rate for codecs not supporting high rates (fixes mgba.io/i/2869)
- Qt: Fix crash when attempting to use OpenGL 2.1 to 3.1 (fixes mgba.io/i/2794)
- Qt: Disable sync while running scripts from main thread (fixes mgba.io/i/2738)
- Qt: Properly cap number of attached players by platform (fixes mgba.io/i/2807)
- Qt: Disable attempted linking betwen incompatible platforms (fixes mgba.io/i/2702)
- Qt: Fix modifier key names in shortcut editor (fixes mgba.io/i/2817)
- Qt: Fix a handful of edge cases with graphics viewers (fixes mgba.io/i/2827)
- Qt: Fix full-buffer rewind
- Qt: Fix crash if loading a shader fails
- Qt: Fix black screen when starting with a game (fixes mgba.io/i/2781)
- Qt: Fix OSD on modern macOS (fixes mgba.io/i/2736)
- Qt: Fix checked state of mute menu option at load (fixes mgba.io/i/2701)
- Qt: Remove OpenGL proxy thread and override SwapInterval directly instead
- Scripting: Fix receiving packets for client sockets
- Scripting: Fix empty receive calls returning unknown error on Windows
- Scripting: Return proper callback ID from socket.add
- Vita: Work around broken mktime implementation in Vita SDK (fixes mgba.io/i/2876)
Misc
- Qt: Include wayland QPA in AppImage (fixes mgba.io/i/2796)
- Qt: Stop eating boolean action key events (fixes mgba.io/i/2636)
- Qt: Automatically change video file extension as appropriate
- Qt: Swap P1 and other player's save if P1 loaded it first (closes mgba.io/i/2750)
- Details
- Category: Multiple Platform
What's New:
Changes
- Added an experimental theme downloader
- Added a setting to set the user theme directory to an arbitrary location (not configurable via the GUI)
- Added scrollable text container support to the system view
- Added six new theme properties for sizing and placement of the helpsystem when a menu is open
- Added a scaleInwards property to the grid element to contain scaling within the element boundaries
- Added a new gameOverridePath property to the image element to enable per-game static image overrides
- Added support for using the systemNameSuffix property together with scrollable text containers
- Added support for the Sinclair ZX Spectrum Next (zxnext) game system
- Added support for the Sinclair Spectrum ZX emulator ZEsarUX
- Added support for the Sinclair Spectrum ZX Next emulator #CSpect on Linux and Windows
- Added the PicoDrive RetroArch core as an alternative emulator for the gamegear system
- Added the LRPS2 RetroArch core as the default emulator for the ps2 system on Linux and Windows
- (macOS) Added the Mupen64Plus-Next RetroArch core as the default emulator for the n64 and n64dd systems
- Set the Neko Project II RetroArch core to start in the game directory as it created a config file in the ES-DE binary directory
- Added "Shortcut or script" as an alternative emulator for the arcade and mame systems
- (Unix) Added the .desktop and .sh file extensions to the arcade and mame systems
- (macOS) Added the .app and .sh file extensions to the arcade and mame systems
- (Windows) Added the .bat and .lnk file extensions to the arcade and mame systems
- Added the .app file extensions to the nds system
- Added the .7z and .zip file extensions to the 3do system
- Changed the platform from pc to pcwindows for the desktop and kodi systems
- (Linux) Dropped support for prebuilt RPM packages
- Changed the color scheme names for the bundled Slate and Modern themes from "Dark mode" and "Light mode" to "Dark" and "Light"
- Any theme directories with names ending with "disabled" (regardless of case) are now ignored
- Updated SDL to 2.26.5 on Windows, macOS and the Linux AppImage builds
- Added the libgit2 library as a dependency
- Added support for changing the BusyComponent text dynamically
- Added proper helpsystem handling to ComponentGrid for some previously unhandled horizontal grid layouts
Bug fixes
- (Windows) Fixed a regression that made .bat and .lnk files with some special characters in the filename impossible to launch
- Clearing or deleting a game could hang the application if the media files could not be deleted due to insufficient permissions
- Using the cropSize property could lead to a crash under very rare circumstances
- Multi-row text with blank lines that was not displayed in a scrollable container was sometimes not wrapped correctly
- Fixed several potential container overflows in GuiTextEditKeyboardPopup that could lead to rare crashes when running on an ARM processor
- Fixed a potential container overflow in ViewController that could lead to rare crashes when running on an ARM processor
- (macOS) When opening the main menu an error message was logged about accessing a nonexistent ShowQuitMenu setting
- The scissor box size in ScrollableContainer was sometimes not calculated correctly
- FileSystemUtil::renameFile() did sometimes not provide a return value for whether it succeeded or not
- Details
- Category: Multiple Platform
What's New:
add Amiga emulation
- A1000 (OSC/ICS), A500 (Full OCS), A500 (ECS Agnus, OCS Denise)
- RGB or S-Video with PAL/NTSC color encoding, border cropping
- support all global features like: runAhead, savestates, G-Sync, configs, Warp, JIT polling, shader
- up to 4 disk drives with acceleration option
- Chipram, Slowram, Fastram
- list disk content in UI
- AROS firmware is preinstalled
- motor controlled auto warp
- drive sounds
- support custom frequencies like B.C. Kid (56.4 Hz)
- if you only want to use one of the two emulators, Amiga or C64 core can be hidden
emulator now boots automatically after power on
- Splash screen can be disabled
- emulator remembers which core was used last
disk swapper can be filled faster due to multiple selection of files
- files from archives can also be added quickly
- if requested disk swap position is not prepared, emulator guesses the disk based on requested position and the currently inserted disk
windows: prevent App minification when focus loss in fullscreen
C64: add option to combine Virtual Device Traps (instant load first file) with floppy speeder
C64: improve drive motor controlled auto warp
- add option to stop auto warp when software requests input, because
- some games stop drive motor too late and warp runs too long, what could lead to the loss of a life
C64: support magicdesk CRT's with broken header
C64: fix runahead slowdown with REU/GeoRAM when using a lot of memory, e.g. REU 16 MB
Mice and other mouse-controlled devices, such as Lightguns, can now be configured with one click