Les changements: – copying screenshots to the clipboard
– context menu
– CRTC refinements
– minor adjustments to some CPU timings
– audio timing improvements
– crash fix related to I/O card attachment
Les changements: – Support for DirectInput and buffered keyboard input (for Wine compatibility)
– Selectable speed
– Emulator screen to clipboard (Alt+X)
– File loading from command line
– ‘h’ command in the interactive monitor
– Support for multipart HTP files with direct loading (HL2)
– Support for HTP ROM traps (HL2)
– Optional accented character set (HL2)
Version changes serve as landmarks and are by no means stable builds
This changelog lists the main (but not all) changes made since 0.0.X
– Win32/vm_native.cpp: Improve sparse memory file mapping robustness by @elad335 in #17547
– Config: Implement 128-bit setting entry type by @elad335 in #17548
– Update submodules by @Megamouse in #17550
– Generate random OpenPSID upon config initalisation by @derole1 in #17543
– Change sceNpManagerGetMyLanguages languages priority by @RipleyTom in #17551
– Fix sceNpManagerGetAccountRegion’s returned language by @RipleyTom in #17554
– Multi-Slot Savestates by @elad335 in #16611
– Update Qt to 6.10.0 by @Megamouse in #17567
– Qt/Input: Adjust pad settings dialog based on pad capabilities by @Megamouse in #17540
– vk: Resource binding model rewrites [part 2 of 2] by @kd-11 in #17427
– rsx: Fix user clip plane encode/decode by @kd-11 in #17580
– SaveStates: Fix Gem Thread Reboot by @elad335 in #17574
– ffmpeg: update cellAtracXdec code to ffmpeg 7 by @Megamouse in #17585
– SaveStates: Improve SPU locking success rates by @elad335 in #17588
– [Build] Explicit Triple with LLVM 21.1.0 by @Niram7777 in #17401
– Qt: Allow to clear keyboard shortcuts in dialog by @Megamouse in #17590
– overlays: allow to update messages by id instead of text by @Megamouse in #17591
– vk: Make more bindable objects uniquely identifiable by @kd-11 in #17594
– vk: Do not access async scheduler if not explicitly initialized by @kd-11 in #17596
– SaveState Manager Fixes by @elad335 in #17606
– Relax SceNpCommunicationId validation by @RipleyTom in #17608
– Fix build with Qt 6.10 by @engdyn in #17589
– Improve sceNpSignalingGetLocalNetInfo by @RipleyTom in #17609
– More communication id validation changes by @RipleyTom in #17610
– vm: Deallocate memory early, check no PS3 memory leaks by @elad335 in #17612
– vk: Make best-effort attempt to utilize the low-latency pool by @kd-11 in #17613
– SaveStates/SPU-LLVM: Fix SPU Access Violations on load by @elad335 in #17617
– vk: Filter out re-bar usage from memory pressure watchdog by @kd-11 in #17620
– Update OpenAL-soft submodule by @qurious-pixel in #17552
– Update linux docker image to v.1.7 by @Megamouse in #17568
– Add ability to record/screenshot with overlays by @Megamouse in #16803
– Qt: fix TSX warning box style by @Megamouse in #17639
– CI: Bump LLVM version on macOS to v21 by @shinra-electric in #17630
– cellGame: Fix cellHddGameCheck dataVersion parameter by @elad335 in #17645
– sys_usbd: Emulate Kamen Rider Summonride Ride Gate by @deReeperJosh in #17605
– Update SDL to 3.2.26 by @Megamouse in #17647
– input: always apply stick multiplier when no analog limiter button is set by @Megamouse in #17648
– Remove std::strcpy by @elad335 in #17656
– [Hotfix] PSF.cpp: Fixup by @elad335 in #17657
– cmake: simplify code by @oltolm in #17655
– System.cpp: Check if the original EBOOT.BIN is valid for disc game updates by @elad335 in #17661
– sys_usbd: fix id/type combo for Kamen Rider Display by @deReeperJosh in #17662
– rsx: Implement buffer notification invalidation cascade and shader attribute pixel_center_integer by @kd-11 in #17666
– Update submodules by @Megamouse in #17668
– input: change default squircle value to 4000 by @Megamouse in #17669
– CI: Download Translations by @FlexBy420 in #17619
– Synced Skylander variant IDs with values from Dolphin for #13315 by @robotics13 in #17658
– gl: Implement polygon render modes by @kd-11 in #17672
– 3rd Party: Bump MoltenVK to v1.4.0 by @shinra-electric in #17642
– sys_usbd: Small tidyups by @deReeperJosh in #17671
– SPU: Fix race in PUTLLC with unchanged data by @elad335 in #17675
– rsx/vk: Optimize image uploads for layered resources [1 of 2] by @kd-11 in #17676
– rsx: Fix shader interpreter by @kd-11 in #17678
– Savestates/TAR: Extract files asynchronously, Improve savestate load performance by @elad335 in #17680
– ZSTD: Fixup threads terminations by @elad335 in #17685
– rsx: Fix an oops causing DEVICE_LOST by @kd-11 in #17686
– Overlays/SaveStates: Add multi-slot support to controller menu by @elad335 in #17688
– PPU: Fix VCFUX accuracy on x64 by @elad335 in #17690
– sys_ppu_thread: Fix u64 stack size argument by @elad335 in #17692
– cheats: fix cheat type on apply by @Megamouse in #17693
– overlays: take screenshot after exiting the home menu by @Megamouse in #17696
– rsx: fix some warnings by @Megamouse in #17687
– [Mac Arm64] Use runner ccache by @qurious-pixel in #17698
– utils: replace hex_to_u64 with std::from_chars by @oltolm in #17695
– Qt: add button to remove gamepad config by @Megamouse in #17697
– SPU: Use CMPXCHG16B for atomic store if possible, improving stability by @elad335 in #17694
– asm.hpp: replace custom functions with C++20 functions by @oltolm in #17700
– SPUCommonRecompiler.cpp: use std::lexicographical_compare_three_way by @oltolm in #17705
– Fix some warnings by @Megamouse in #17703
– Core: Remove Intel-TSX ISA Extension based code by @elad335 in #17702
– Overlays: improve font loading and add more chinese fallback fonts by @Megamouse in #17699
– SPU/vm: Effortless Optimizations by @elad335 in #17708
– [POC] PPU Profiler by @elad335 in #17714
– [BSD] Fix noreturn errors by @qurious-pixel in #17717
– rsx: Implement GPU deswizzle for smaller texel widths by @kd-11 in #17720
– Add word alignment check to ppu_register_function_at by @FeTetra in #17718
– rsx: Rework GPU deswizzle kernel to prevent hangs by @kd-11 in #17731
– rsx/gl: Use naturally aligned IO buffers by @kd-11 in #17725
– Fix Clang build and other small fixes by @oltolm in #17736
– sys_fs: Remove PPU sleep hacks by @elad335 in #17740
– SPU Analyzer: Fix jumptable analysis for SPU Block Mega by @elad335 in #17742
– rsx/shaders: Implement a basic CFG and use it for FP decompilation by @kd-11 in #17743
– rsx: Fix saw-tooth artifacts when using GPU deswizzle for small texel widths by @kd-11 in #17748
– vk: Allow buffer creation in rebar memory to fail gracefully by @kd-11 in #17751
– MacOs: Hopefully fixes build by @elad335 in #17755
– Add an entry on Log panel’s contextual menu to show the main disk usa… by @digant73 in #17715
– Fixup ::narrow by @elad335 in #17756
– rsx/cfg: Check for end flag before handling any instruction including NOP by @kd-11 in #17760
– Fix possible ambiguity of utils::bless by @elad335 in #17757
– Free previous pointer after reallocating memory by @rcaridade145 in #17763
– rsx: Clean up aligned realloc implementation and add UTs by @kd-11 in #17764
– SPU LLVM: Support PUTLLC16 in CellSpurs JobChain management by @elad335 in #17733
– Emu/UX: Automatic Cache Precompilation for PKG instal by @elad335 in #17768
– SPU LLVM (Mega): Fix quarter of missing jumptable discoveries by @elad335 in #17767
– SPU/config: Make SPU Mega block size the default by @elad335 in #17769
– SPU Analyzer: Ignore large switch state for constant propagation pass by @elad335 in #17771
– Qt/Overlays: Add sound effect manager by @Megamouse in #17716
– Update dependencies by @Megamouse in #17777
– SPU: Tame PUTLLC16 by @elad335 in #17781
– Add notes for VS 2026 to BUILDING.md by @Megamouse in #17778
– Qt: save spinbox values with fmt::format by @Megamouse in #17789
– Qt: Update header texts and actions when language changes by @Megamouse in #17779
– rsx: rsx capture fixes by @Megamouse in #17785
– Qt: fix game list table multiselection by @Megamouse in #17793
– Qt: update main window elements on language change by @Megamouse in #17795
– YoRHa: Fix the height of QSpinBox by @AniLeo in #17788
– Qt: fix update note visiblity on linux/macOs by @Megamouse in #17801
– Qt: Relax game_list deselection checks by @Megamouse in #17799
– Update submodules by @Megamouse in #17802
– rsx/common – work around macos posix_memalign quirks by @kd-11 in #17800
– hidapi: switch to official libusb remote by @Megamouse in #17803
– cellPad: fix pad mode setters by @Megamouse in #17780
– Qt: fix game list refresh order on language change by @Megamouse in #17806
– Update Qt for macOs to 6.10.1 by @Megamouse in #17807
– [Testers Needed] Make RSX FIFO Atomic fetching default by @elad335 in #17810
– [macOS] Add OpenCV to macOS builds by @schm1dtmac in #17815
– (macOS) Support loading VK ICDs (in preparation for KosmicKrisp) by @schm1dtmac in #17735
– UI: remove unnecessary QOverloads by @oltolm in #17827
– Check available and required size when installing a package by @digant73 in #17829
– RPCN v1.5.0 by @RipleyTom in #17825
– bit_set.h: forward declare fmt_unveil by @oltolm in #17836
– fmt: add more string_view versions of string functions by @Megamouse in #17839
– overlays/macOs: add some fallback fonts for cyrillic by @Megamouse in #17842
– rsx/cfg/fp: Rewrite fragment program decompiler dependency tracking by @kd-11 in #17837
– cellGem: implement world coordinate orientation in cellGemGetState by @Megamouse in #17849
– Fix some recent warnings by @Megamouse in #17857
– rsx/cfg: Fix edge case where an empty block is defined by @kd-11 in #17858
– cellGem: Fix YUV conversions, implement gain, averaging and basic outlier detection by @Megamouse in #17859
– vk: Ignore memory pressure handling when allocating core data in the ReBAR heap by @kd-11 in #17871
– cellGem: improve bayer demosaicing by @Megamouse in #17873
– Fix RPCN replies ordering by @RipleyTom in #17878
– Prevent atomic collisions on cache line boundary by @elad335 in #17752
– Util/sync.h: Fix iterator invalidation in futex emulation by @elad335 in #17880
– arm64: Make sure context storage is 16-byte aligned at a low offset to not get address truncation during calculations. by @kd-11 in #17874
– Revert « Fix hypervisor context memory placement » by @AniLeo in #17884
– [macOS] Update to MVK 1.4.1 with private API support (fixes panics, improves feature support) by @schm1dtmac in #17877
– SPU Analyzer: Fix missing jump table entries in Mega mode by @elad335 in #17870
– rsx/cfg: Increase valid register file size to 768 bytes per pixel pipe by @kd-11 in #17889
– [macOS] Switch macOS atomics to futexes, bump min ver to 14.4 by @schm1dtmac in #17888
– Revert « SPU/config: Make SPU LLVM Mega block size default » by @AniLeo in #17866
– sys_fs: Optimize split files handling by @elad335 in #17883
– [macOS] Use native os_sync calls for futexes by @schm1dtmac in #17893
– More accurate sceNpMatching2AbortRequest by @RipleyTom in #17896
– Build LLVM 22.x 8462cff fix removed/reprecated by @Niram7777 in #17786
– [macOS] General cleanup/fixups for CI and VK portability by @schm1dtmac in #17900
– Clans: Emulator and server implementation by @ZephyrCodesStuff in #17835
– [macOS] Force max pthread priority, fix throttling by @schm1dtmac in #17905
– Clans: fix graphical bug displaying JID instead of username by @ZephyrCodesStuff in #17906
– overlays: log font lookup info on exception by @Megamouse in #17903
– sceNpClans: cleanup by @Megamouse in #17908
– Clean UsbTransfer state by @RipleyTom in #17918
– [macOS] Don’t compile in GL-related code or link GLEW by @schm1dtmac in #17921
– Qt/cheats: don’t accept imported cheats unless valid by @Megamouse in #17928
– Improve Manage menu by @digant73 in #17919
– fix lld warning LNK4217 by @oltolm in #17910
– Fix lld warning LNK4286 by @Megamouse in #17932
– USB: Update Kamen Rider Summonride virtual portal by @Florin9doi in #17916
– rsx: Shader codegen optimizations by @kd-11 in #17862
– Qt: Allow user to precompile caches on demand when installing package… by @Megamouse in #17809
– RPCN menu changes. by @Ninetime in #17936
– Remove call to glxewInit by @RipleyTom in #17929
– cellScreenshot: update filenames by @Megamouse in #17830
– improve menus hierarchy by @digant73 in #17941
– Improve Utilities and Log menus by @digant73 in #17944
– Build Freebsd update compiler/LLVM devel (22) by @Niram7777 in #17899
– USB: Added support for G27 compatibility modes by @Florin9doi in #17926
– rpcs3_version: Bump to 0.0.39 by @AniLeo in #17946
Since v0.0.38 was tagged:
– 422 new commits
– 477 source code files have been edited
– 16 909 lines of code were added and 6 598 deleted
– 17 code contributors
– 92 days of development
[changes]
– Display: Bloom radius has been reset due to different units.
– UI: Options have been merged from Tools > Options into System > Configure System.
[features added]
– Cartridge: MaxFlash 1Mbit flash type is now selectable, including recent SST39SF010-based cartridges.
– Cheats: Cheat window is now modeless and resizable.
– Command Line: Specifying more than one image will now stack media slots in order.
– Custom Devices: Memory layers can now be auto-controlled based on OS/BASIC/Self-Test ROM visibility.
– Custom Devices: Improved error display when hot reloading the custom device definition file.
– Debugger: Improved SIODATA trace channel output.
– Debugger: Added .devices and .device_info commands.
– Debugger: Static trace (st) command now has -b option to trace through BRK instructions.
– Debugger: Added block detection support for Z80 disassembly.
– Debugger: .tracecio now reports AUX2 on open commands.
– Debugger: Implemented history for memory pane.
– Devices: Added full emulation for 850 Interface Module.
– Devices: Internal 850 R: handler now blocks Break during concurrent I/O instead of ending concurrent I/O when it is pressed.
– Devices: Standard 850 emulation is now more consistent with DTR/RTS state.
– Devices: Add device list is now sorted by name.
– Devices: Improve timing precision of Indus GT full emulation.
– Devices: Added The Pill device.
– Devices: Added the Black Box Floppy Board.
– Devices: Added Speedy XF disk drive.
– Devices: Added CSS Multiplexer.
– Devices: Added XM301 modem.
– Devices: Added named pipe serial adapter.
– Disk: Add option for reinterleaving to 4:1 SD for SuperSynchromesh.
– Disk: Improved timing correction when accelerating disk reads.
– Disk Explorer: Multiple files can now be exported at a time.
– Display: Added support for screen masks.
– Display: Move screen mask rendering to after color correction to reduce aliasing.
– Display: Improved scaling of bloom filter to different resolutions.
– Display: Added Direct3D 11 custom effect support.
– Display: Added NEON optimizations for PAL high artifacting.
– Firmware: Redesigned firmware dialog.
– Firmware: Added known firmware audit dialog.
– HDevice: Added support for MyDOS XIO 34 (Make Directory) and using XIO 33 (Delete) on directories.
– Input: Added paddle input emulation.
– PerfAnalyzer: Right-drag scrolling is now supported.
– PerfAnalyzer: Added native tracing mode, which profiles the emulator itself.
– PerfAnalyzer: Added option for video trace channel frame size and resizable splitter to change the height of the displayed video channel.
– Printer: 1020 plotter pen colors can now be customized.
– Printer: The printer UI pane now allows selecting between multiple printer outputs.
– Recorder: Added option to pause/resume video recording.
– Recorder: Added support for recording and playback of stereo SAP type R.
– Recorder: Added VGM recording and playback support.
– Simulator: Increased scanlines run at a time to slightly improve speed.
– UI: Added 850 error codes to error decoder.
– UI: Reduced flickering on drive indicators when using full emulation disk drives.
– UI: Removed title bar from docked panes and improved resizing behavior.
– UI: Increased splitter bar size slightly and raised drag thresholds to reduce accidental pane undocking.
[bugs fixed]
– ANTIC: Fixed line buffer being cleared on blank lines.
– Cartridge: Improved emulation of SpartaDOS X pass-through cartridge port.
– Cartridge: Added reset button for The!Cart.
– Cassette: Fixed recording position not being reset properly when creating a new tape.
– Cassette: Improved accuracy of Vorbis decoding.
– Command Line: /profile command line switch is now case insensitive.
– Custom Devices: Fixed crash when attempting to create a memory layer directly mapping beyond the end of a segment without explicit offset.
– Custom Devices: Fixed a compiler crash when using nested anonymous functions.
– Custom Devices: Added support for unsafe calls, including the ability to issue UI commands.
– Debugger: Improved debugger UI state update when non-debugger commands are used to resume execution.
– Debugger: Fixed .pathdump command repeating instruction lines.
– Debugger: Fixed history view sometimes not displaying effective address on an instruction after stepping from a memory access breakpoint.
– Debugger: Fixed horizontal scroll problems with overscroll in memory window.
– Devices: Fixed Rapidus write-through improperly capturing writes to ROM or extended memory.
– Devices: 1090 registers are now always visible regardless of PBI enable state to match the known PAL equations.
– Devices: Booting off the 1030 with internal firmware now registers T: device properly.
– Devices: Fixed 1030 ModemLink and T: handler download with SIO acceleration enabled.
– Devices: SuperSALT test assembly voltage inputs now reflect computer model differences.
– Devices: Fixed some coprocessors losing cycles when single stepping.
– Devices: Fixed SIDE 3 not being switchable from a controlled cartridge port.
– Devices: Fixed SX212 speed not saving and emulation mode not switching properly.
– Devices: Fixed modem not dialing out to IPv6 addresses.
– Disk: Relaxed standard disk emulator requirements on command frames and ignore overlapping commands for most disk emulation profiles.
– Disk Explorer: Dragging out directories from a MyDOS disk no longer produces a bogus file.
– Disk Explorer: Fixed crashes and directory corruption issues in CP/M filesystem handler.
– Display: Fixed regression in D3D11 driver where bloom broke in full-screen mode.
– Display: Screen effects dialog no longer reports high dynamic range (HDR) is available when the display is configured for wide color gamut (WCG).
– Display: Fixed Enhanced CIO screen editor not wrapping characters properly on Delete Character commands.
– Firmware: The initial « autoselect » state for OS and BASIC firmwares is now always shown.
– GTIA: Fixed intermediate state when switching from CTIA to GTIA on the fly.
– HDevice: Current directory is now cleared on reset.
– HDevice: Long file name encoding/truncation now works for directories.
– HDevice: Fixed relative paths being parsed with the wrong unit’s current working directory.
– HLE: Fixed a bug in the fast math acceleration hook for the normalization routine.
– HLE: CIO acceleration now supports multiple devices with the same name but different units, e.g. P3: and P6.
– IDE: CHS translation mappings now round down the number of cylinders instead of rounding up.
– Input: Fixed crash after XInput controller is disconnected.
– Input: Added workaround for Xbox Wireless Controller being detected twice through DirectInput.
– Input: Fixed regression with Keyboard Controller not reading properly in fast pot scan mode.
– Input: POT4-7 inputs are now grounded properly on XL/XE machines.
– PerfAnalyzer: Fixed CPU profile window breaking temporarily after saving a trace.
– PerfAnalyzer: Fixed scrolling artifacts with frame boundary lines.
– PerfAnalyzer: Fixed lockup when pressing Tab.
– POKEY: Improved accuracy of pot scan.
– Recorder: Fixed bitrate not being adjustable for H.264+AAC encoding.
– Recorder: Fixed memory leak when using MediaFoundation-based formats.
– Save States: Fixed bug with active POKEY IRQs getting lost.
– Simulator: Fixed booting a new image sometimes not cancelling a program load in progress.
– Simulator: Loading a program with Open Image no longer forces a cold reset.
– Modem: Fixed intermittent failure to disable Nagle on outgoing connections.
– Modem: Outgoing connections no longer force off server-side echo.
– Modem: Binary mode negotiation is disabled when CR/LF translation is enabled.
– VBXE: Fixed hires artifacts when using attribute map with 1.26 core and extended color, or hires switching at the borders.
– VBXE: Fixed bugs with attribute map horizontal scrolling.
Core / Cache
– Updated object cache generation logic.
– Object cache is now generated based on the following option settings:
. 1Block Clock
. Bus Wait
. ICache
. Split Memory Read
. Split Memory Write
– Updated SCU-DSP object cache generation.
– Cache filenames now differ from R37 even with the same DSP program.
– Existing caches must be regenerated.
Compatibility / Settings
– The main processing logic has been changed.
– Some software may no longer work with previous settings.
– If issues occur, delete the configuration files in the `Setting` folder
or reset settings using the **Default** button in the options dialog.
For games that do not work correctly or display issues, try adjusting:
– SCU DMA Real Transfer
– SH2 DMA Real Transfer
– Enable ICache
– SH2 Write Buffer
– SH2 Cache
– Split Memory Write
– 1Block Clock
– Bus Wait
VDP / Rendering
– Fixed VDP2 processing.
– Corrected display issues in *Kaze no Klonoa /ç–¾é¢¨é”æ³•大作戦*.
– Fixed title screen display in *Clockwork Knight ~Pepperouchau no Fukubukuro~*.
– Fixed noise issue when the sound thread is disabled.
– Fixed VDP1 processing.
– *Star Fighter 3000* is now playable.
BIOS
– Fixed an issue where object cache was not loaded when using a BIOS.