2025年9月21日 星期日

BizHawk 2.11

 多機種模擬器 BizHawk 發布新版,更新如下 :

  • Atari2600Hawk
    • Fixed #4176 - [C64, 6502] Incorrect behavior for "undocumented" CPU functions
  • A7800Hawk
    • Fixed #4176 - [C64, 6502] Incorrect behavior for "undocumented" CPU functions
  • BSNES
    • Update to latest upstream version
    • Enhancement #3813 - Value from mem address is not passed to read callback
    • Fixed #4119 - BSNESv115+ SNES Mouse out of sync
  • C64Hawk
    • Merged #4192 - [C64] 1541 disk drive emulation facelift
    • Merged #4177 - [6502] Pass Lorenz C64 tests
    • Fixed #4176 - [C64, 6502] Incorrect behavior for "undocumented" CPU functions
  • Encore
    • Fixed local timezone being used to offset RTC (UTC is now always used)
    • Prevent "Update" CIAs being booted
    • Update/DLC CIA installation exception is now friendlier (simply states the Update/DLC CIA was successfully installed)
    • System Bus domain is added (super important for pointers!)
    • Loading a savestate will restore the framebuffer again
    • Fixed #4374 - Encore fails to create savestate
  • Faust
    • Fixed #4278 - Earthbound (SNES) crashes in Faust when trying to record input
  • Gambatte
    • Fix minor sound issues in GBA mode (non-sync change, purely audio output fix)
    • Enhancement #3813 - Value from mem address is not passed to read callback
    • Fixed #4394 - BizHawk crashes when using FFmpeg writer
  • GBHawk
    • Enhancement #3813 - Value from mem address is not passed to read callback
  • Genplus-gx
    • Update to commit 956fdba
    • Enable PC address error checks for gpgx. Needed for a speedrun glitch in Spider-Man that allows for skipping to the next level
    • Enhancement #3813 - Value from mem address is not passed to read callback
    • Fixed #4206 - [Genplus GX] Sega CD game, After Armageddon Gaiden malfunctions in 2.10
    • Fixed #4371 - XJ220 Sega CD doesn't run in Bizhawk 2.10.
    • Fixed #4324 - [GEN/MD] BizHawk crashed without error reporting after opening Demons of Asteborg newer versions
    • Fixed #4293 - Crash without error when Loading MegaCD Games in EU
    • Fixed #4229 - Demons of Asteborg does not work in 2.10
    • Fixed #3862 - Weird mem callback issue with high address locations under genplus-gx
  • MAME
    • fix crash for view names containing commas
    • sort views according to their index
    • Enhancement #3725 - MAME: disable archive opener fallback for OpenAdvanced
    • Fixed #4288 - [MAME] blitz99 won't launch, throws a GBL load error
  • melonDS
    • Updated to post 1.0 (commit 8a6fa3a
    • Loading a savestate will restore the framebuffer again
    • melonDS JIT is now supported
    • DLDI and DSi SD Card is partly now supported (for a simple blank SD card given, required for some homebrew)
    • DSi NAND apps that are not DSiWare can now be loaded in (considered DSiWare for purposes of the movie header)
    • Enhancement #3813 - Value from mem address is not passed to read callback
    • Fixed #4414 - System.NullReferenceException upon loading NDS ROM
    • Fixed #4344 - DS games unable to save, saveram overwritten upon reloading game
    • Fixed #4317 - MelonDS game printf is formatted weirdly
    • Fixed #3840 - DSiware games do not works
  • Mupen64Plus
    • Fixed #3155 - Pokemon Snap - Broken, fixed in upstream
    • Fixed #4233 - N64 - NTSC versions of Paper Mario do not boot on BizHawk 2.10
  • NesHawk
    • Merged #4309 - Fixed incorrect behavior of SHA, SHX, SHY, and SHS in NesHawk
    • Merged #4307 - Fix NesHawk APU Status open bus behavior
    • Fixed #4402 - Glitched graphics in NES Beauty and the Beast
    • Fixed #4176 - [C64, 6502] Incorrect behavior for "undocumented" CPU functions
  • Nymashock
    • Fixed #3436 - Bizhawk stops working in about half an hour of playing
  • O2Hawk
    • Fixed #4391 - '.' key mnemonic in .bk2 is indistinguishable from "not pressed"
  • PicoDrive32x
    • Fixed #4419 - The SEGA 32x Games don't work on Bizhawk, the screen is always Black. Please fix it (I prefer the Kega Fusion core, better than gen-plus).
  • QuickNes
    • Merged #4211 - QuickerNES NES 2.0 header read fix
      • Fixed #4186 - Crash when loading Digital Devil Story: Megami Tensei
    • Merged #4429 - [Fix] Adding a fix to QuickerNES to support certain games with submapper > 0
    • Fixed #4368 - QuickerNES only loads MiG-29 by codemasters on a black screen
    • Fixed #4402 - Glitched graphics in NES Beauty and the Beast
    • Fixed #4246 - QuickNES crashed when I tried to switch games (Bizhawk 2.10)
    • Fixed #4244 - Incorrect MMC5 emulation on QuickNES on Bizhawk 2.10.
    • Fixed #4243 - [quickerNES] Blacklist FDS Titles.
    • Fixed #4240 - Glitched battle screen in Lagrange Point English Translation on QuickerNES
    • Fixed #4239 - Super Mario All-Stars NES does not work on quickerNES core.
  • SameBoy
    • Update to v1.0.2
    • Enhancement #3813 - Value from mem address is not passed to read callback
    • Fixed #4343 - Sameboy core no way to turn off rumble when pressing a or b
  • Saturnus
    • Fixed #4314 - Saturnus runs FMV sequences slow on Linux
  • Snes9x
    • Fixed #4260 - Sound cracks during Star Fox gameplay on Snes9x core
    • Fixed #4194 - Snes9x Core issue - Brawl Brothers - Bizhawk 2.10 x64
  • Stella
    • Merged #4178 - [A26][Stella] Adds support for the console Select switch
      • Enhancement #4175 - [A26][Stella] Select switch is not implemented
    • Enhancement #3203 - Various A2600 games need B&W toggle changed during gameplay
  • TIC-80
    • Fixed #4391 - '.' key mnemonic in .bk2 is indistinguishable from "not pressed"
    • Fixed #4190 - Graphical error in a recent TIC-80 title
  • UAE
    • Enhancement #4213 - AmigaHawk - Add the option to have "Empty" ports in Sync Settings
    • Enhancement #4204 - UAE Core - May need more PAL Overscan
    • Fixed #4270 - UAE A1200 profile running slower than expected
  • Virtu
    • Fixed #4392 - Virtu: keyboard state is incompletely restored when loading a savestate
    • Fixed #4391 - '.' key mnemonic in .bk2 is indistinguishable from "not pressed"
  • DiscoHawk
    • Sped up chd writing by an order of magnitude
  • EmuHawk
    • Support relative mouse input (RMouse)
      • To bind to analog input, just bind regular mouse input (WMouse) twice.
      • Does not work in frame-by-frame mode!
    • Toggle Stay on Top hotkey
    • Fix crashes on startup with certain old Intel iGPUs
    • Fixed JumpList (Task bar recent items list) items not launching correctly
    • Merged #4452 - Ensure absolute paths in HawkFile
    • Merged #4403 - Fix input/hotkey bugs
    • Merged #4337 - usable movie sram
    • Merged #4210 - Add more courier font sizes instead of upscaling the 16px one
    • Merged #4191 - Update author/source metadata for several cores where it's missing
    • Merged #4450 - Fix libretro "no game" loading
    • Enhancement #3573 - [F.Rq.] Mouse cursor capture toggle (bound to Middle-Click by default)
    • "Mouse Capture Forces Topmost" option (Config -> Display -> Window)
    • Enhancement #4325 - [Suggestion] Update OpenAL-related dlls may bring better performance.
    • Enhancement #3734 - Savestate/bk2 `Framebuffer` isn't easily user-accessible
    • Enhancement #4168 - Unreleased cores aren't included in Help > About...
    • Enhancement #4081 - OOTB haptic feedback binds for GB, GBA, and PSX
    • Enhancement #4009 - Option for double sized Messages
    • Enhancement #3960 - Preferred Cores picker is opaque and inflexible
    • Enhancement #3707 - Rewind should increment rerecords
    • Enhancement #3419 - sync -f after every .SaveRAM and .bk2 backup write
    • Enhancement #3309 - Confusing "Desired frame length" option name in Rewind configuration
    • Enhancement #2926 - [Feature Req.] Play sound when movie playback is finished
    • Enhancement #2308 - StatusBar icon when Rewind is active
    • Fixed #4448 - config.ReplaceKeysInBindings isn't taking effect until binding a new key or restarting
    • Fixed #4436 - Rare access violation when loading a rom while RamWatch is open
    • Fixed #4396 - [🐧] Hang when playing Need for Speed Carbon - Own the City
    • Fixed #4379 - [🐧] Open [anything] in Browser button does not work, instead closing the app.
    • Fixed #4376 - [🐧] Label for SOCD setting cut off in Controller Config dialogue
    • Fixed #4358 - Latest dev build win 64. Can not change preferred core
    • Fixed #4346 - Movie fails to switch to record after loading a last-frame save state.
    • Fixed #4339 - doesn't recognize L and R of controller
    • Fixed #4312 - CLI launch fails with RCheevos-Hardcore Mode + Autosave
    • Fixed #4281 - Arch Linux - Sound not working
    • Fixed #4277 - xml games are loaded twice
    • Fixed #4208 - Use IDialogParent (instead of CoreComm) for UI in RomLoader
    • Fixed #4202 - Attempting to record movie with Libretro core throws NRE
    • Fixed #4197 - Play Movie dialog crashes with OverflowException: "unable to convert from decimal..." when a MAME movie is present
    • Fixed #4182 - "Autostart RetroAchievements" crashes emuhawk when offline
    • Fixed #4116 - Having "Input cycle" axis input set to 0 in SubGBHawk core with Audio Throttle with Unthrottled option enabled while using the XAudio2 output crashes BizHawk
    • Fixed #4082 - XMLGame file generated in Windows fails to load in Linux
    • Fixed #3989 - TAStudio modifies global "On Movie End" setting
    • Fixed #3962 - Auto-generated (sync-)settings descriptions are cut off
    • Fixed #3582 - Loading movies with nonexistent core name header doesn't fall back
    • Fixed #3496 - NRE from IGL_SlimDX9.FreeRenderTarget
    • Fixed #3053 - Rewinding while the emulator is paused has much worse performance.
    • Fixed #2907 - v2.6.1 or Latest - Fail to play with 2 controllers simultaneously
    • Fixed #2741 - LogWindow something causes crash on Mono
    • Fixed #2090 - BizHawk crashes when trying to load a savestate made with different sync settings
    • Fixed #1930 - [🪟] Windows' UI scale still causes problems w/ WinForms
    • TAStudio
      • position restore logic was missing when drawing analog
      • Merged #4433 - Seek fixes
      • Merged #4382 - Undo redo
      • Merged #4381 - Fix a situation where copy/paste hotkeys don't work.
      • Merged #4377 - Add some hotkeys for markers, and display them in tool tips.
      • Merged #4347 - Fixes to seeking and auto restore
      • Merged #4341 - Don't save when the user says no.
      • Merged #4330 - Respect the user's "ancient" savestate interval
      • Merged #4319 - Make the number of frames per TAStudio rewind configurable.
      • Merged #4272 - TAStudio marker lua
      • Enhancement #4172 - TAStudio export to bk2: specify name
      • Enhancement #3376 - TAStudio "new project" (Ctrl+N) cannot be rebound
      • Enhancement #2449 - QoL suggestion for Columns menu in TAStudio
      • Enhancement #2373 - TAStudio: scroll to a specific numbered frame
      • Fixed #3401 - TAStudio projects for the wrong game can be loaded, crashing on loadstate
      • Fixed #4430 - [TAStudio] Exception when truncating with markers
      • Fixed #4375 - [🐧] TAStudio "Clone # Times" doesn't work
      • Fixed #4184 - Cannot stop Bizhawk advance in TAStudio
      • Fixed #4103 - TAStudio child dialogs aren't parented correctly, and will be shown behind when "Always On Top" enabled
      • Fixed #3708 - TAStudio horizontal layout problems
      • Fixed #2622 - Make "Autopause at end of Movie" work in TAStudio
      • Fixed #2332 - [TAStudio] Certian error window prevents bizhawk from closing.
      • Fixed #2329 - Clicking the left column in TAStudio should pause when it reaches the target frame
    • Lua Console
      • Fixed #4271 - BizHawk crashes when opening lua console on Void Linux
      • Fixed #4252 - Apparent Lua bug, something about the call stack when using pcall
      • Fixed #4248 - [🐧] Lua Console: select all, Clear Output leads to NRE in Mono WinForms internals
      • Fixed #4167 - genesis Lua library not included in autodocs until core loaded
    • RAM Search
      • Enhancement #2974 - Don't reset RAM search results when changing value size
    • Log Window
      • Fixed #2741 - LogWindow something causes crash on Mono
  • Lua API/scripting
    • Merged #4335 - Add more Lua functions for TAStudio markers
      • Fixed #1161 - TAStudio branches/markers lua functions
    • Merged #4445 - Fix error when creating empty Lua form dropdowns
    • Merged #4188 - Add a method to the comm Lua library to allow setting ExpectContinue
      • Fixed #4187 - Lua Comm.httpPost fails when posting to servers that don't support Expect: 100-Continue
    • Merged #4256 - implement emu.setrenderplanes in EmulationApi for snes9x
    • Merged #3821 - Memory hook improvements (GPGX)
    • Merged #4283 - Memory Hook Improvements (Return value)
    • Enhancement #3035 - [Lua request] Read bytes as string (memory.read_bytes)
    • Fixed #4387 - IndexOutOfRangeException with Virtu core and Lua joypad.get()/joypad.getimmediate()
    • Fixed #4356 - Lua memory.write_bytes_as_array may not preserve order, keeps non-integer keys
    • Fixed #4252 - Apparent Lua bug, something about the call stack when using pcall
    • Fixed #4219 - tastudio.onqueryitembgtastudio.onqueryitemicon broken in release 2.10 and latest build
    • Fixed #3796 - Lua script sees different working directory when re-entered via callback
    • Fixed #2310 - Lua joypad.setanalog sets analog indefinitely
  • APIHawk
    • Fixed #3796 - Lua script sees different working directory when re-entered via callback
    • Fixed #4187 - Lua Comm.httpPost fails when posting to servers that don't support Expect: 100-Continue
  • Multiplatform
    • Fixed #4082 - XMLGame file generated in Windows fails to load in Linux
    • Fixed #2741 - LogWindow something causes crash on Mono
  • Movie importers
    • Fixed #3596 - .bkm importer is missing systems
    • Fixed #3555 - .dsm importer problems
    • Fixed #3909 - There was an error importing the bkm Movie program
  • gamedb
    • Enhancement #2939 - Refactor gamedb
    • Fixed #4268 - [SNES Autodetect] Ace o Nerae / Aim for the Ace fan translation being detected as BS-X
  • RetroAchievements
    • Fixed #4182 - "Autostart RetroAchievements" crashes emuhawk when offline
  • Libretro
    • Fixed #4202 - Attempting to record movie with Libretro core throws NRE
    • Fixed #3538 - Libretro analog controls don't work

SkyEmu v4

Game Boy Advance /Game Boy /Game Boy Color/DS 模擬器 SkyEmu 發布新版,更新如下 :

Major New Features

  • Retro Achievements
  • RetroArch/libretro core
  • Cross‑platform Google Drive cloud sync for save states.

Android Enhancements

  • Full controller & hardware keyboard support.
  • ARM 32‑bit, x86_64 builds now available.
  • Launch ROMs via command line – perfect for front‑end launchers.

UI / Theme Revamp

  • Fresh default theme + custom bitmap themes (UI, fonts, bezel, overlays, touch screen controls).
  • “Recently Played” improvements list: search, multi‑sort, delete.
  • Touch controls now show optional button labels.
  • Additional Toggle rewind/fast‑forward speed and slow‑motion at ½, ¼, and ⅛ speed.
  • Hardcore mode disables emulation aids for a true hardware experience.
  • BIOS & save files can be added/removed directly from the UI.
  • Export save states from web builds.
  • Exclusive full‑screen mode can be launched into via command line.
  • Integer scaling now sharper with less GPU load.

Debug Tools

  • MMIO read/write flags + breakpoints (GBA).
  • GBA & GB PSG sequencer debugger.
  • GB CPU & PPU debuggers.

Localization

  • Added French, Polish, and Swedish translations.

Emulation Improvements

  • Accuracy/performance gains for GB, GBA, NDS.
  • 8‑screen layout options for NDS.
  • Bug fixes for issues that prevented certain Action Replay codes from working in v3

HTTP Control Server

  • Can now be accessed from other computers on the same LAN
  • New commands have been added

2025年9月14日 星期日

Rosalie’s Mupen GUI v0.8.0

 N64模擬器 Rosalie’s Mupen GUI 發布新版,更新如下 :

  • Fix 64DD games crashing in some cases since v0.7.8
  • Add Windows Vista theme to settings on Windows (thank you @RibShark)
  • Add support for the netplay dispatch server

Ymir v0.1.8

 SEGA SATURN模擬器 Ymir 發布新版,更新如下 :

This releases focuses heavily on bug fixes, with a touch of quality-of-life features, debugging tools, and small but welcome improvements across the board. There are no major improvements or new features this time.

Official ARM Windows and FreeBSD builds have arrived, thanks to @tordona and @bsdcode respectively. You can find the Windows version attached in this release and the FreeBSD version in the ports collection.

This is probably the last 0.1.x release as I'm planning to rewrite CD Block and SMPC emulation for next version, which will be labeled 0.2.0. These components have been the Achilles's heel of Ymir's emulation accuracy, causing a large number of hard issues to investigate and solve. For this reason, expect the next release to take a bit longer or be less substantial that these last releases. Also, there's a small but non-negligible chance that the components will have big enough changes that save state compatibility with 0.1.x might be broken. I'll try my best to avoid this, but compatibility and accuracy will take precedence over convenience if necessary.

Compatibility improvements

Here's a small showcase of games that now work on 0.1.8 or had major bugs fixed:

image

(click any image to zoom)

Thanks to the enormous efforts of @GoodWall533@thelastangryman1907 and jabeck1 (and, of course, everyone else that has contributed), the compatibility list has reached over 50% of total games reported with about 85% compatibility. Filing compatibility reports is a great way to help the community too, so don't hesitate to test games and write your reports here!

Let's start with the elephants in the room: the CD Block and the SMPC, both of which now have test ROMs built by @celeriyacon. These two components have shown the worst cracks of Ymir's emulation -- every single SMPC test fails, and out of the two CD Block tests available, it only barely manages to pass one. My attempts to fix the components to pass the tests have resulted in worsened compatibility, so they will remain failing for the time being for the sake of compatibility. Both are responsible for a large number of freezes, crashes, no-boots and similar issues, and will require significant rework to be fixed. For that reason, I have decided to shift the focus onto low-hanging fruits this version and leave these components in their just barely working states until next version.

image

Not looking great here, but sometimes we have to take a step backward before we can take two steps forward.

That's not to say they haven't received any fixes, though. The test ROM has helped iron out some kinks with CD Block emulation, enough to get Virtual On - Cyber Troopers to not immediately crash after winning a fight (although it's still not fully stable either), and the SMPC tests have helped fix input problems with both the JP and EU releases of Discworld. Also, the CHD loader has received enough fixes to allow every Last Bronx dump I tested to boot properly, and the CUE parser has been rewritten, fixing dozens of issues with misaligned audio tracks and problems loading files with Unicode characters. The application now supports UTF-8 characters everywhere, although the fonts won't display all characters properly yet (Japanese text, most notably).

The internal game database has been upgraded to allow detecting games that benefit (but not require) the Backup RAM cartridge. Ymir will automatically insert the cartridge for these games:

  • Dezaemon 2 -- required for saving games
  • Sega Ages - Galaxy Force II -- required for saving replays

These cartridges will have unique names based on the game name and are saved to <profile>/backup/games/bup-ext-<title> [<code>].bin.

The SH-2 also got a few small fixes to edge cases thanks to new tests in @celeriyacon's SH-2 test ROM.

The SCU only had two fixes, one of which was affecting Phantasy Star IV in the Sega Ages collection from properly loading its graphics. Speaking of the games, there have been more SCSP fixes than usual this time which also helped improve compatibility with all games on the Phantasy Star collection. All of the games can now be played properly, although no one has played them to completion on Ymir yet. The SCSP fixes have also solved many problems such as soundtracks playing on only one channel, sound effects missing in multiple games, ear-bursting static noises, among others. Notably, CroNSF (also from @celeriyacon) is now playing songs properly!

image

Pairs of opposite sawtooth waves are used to simulate pulse waves of any width. Clever.

Finally, let's talk about graphics. Just like previous releases, there have been a multitude of VDP1 and VDP2 fixes, but this time, Ymir's VDP1 renderer has been upgraded to be pixel-perfect thanks Lordus (of DraStic fame). The new renderer received multiple optimizations and upgrades, including cycle-counting the VBlank erase process which fixes the flickering subtitles in Panzer Dragoon's FMVs (and fixes hangs in Parodius for some unexplainable reason), reworked erase and swap timings which fixes many cases of flickering or missing graphics, and a rough estimate-based cycle counting method for commands that solves significant slowdowns seen in Baroque's FMVs.

A VDP1 hack introduced on 0.1.7 to fix Mega Man X3's sprites has been reverted as it was causing problems on multiple games. This means the game's sprites are once again broken, but the upside is that at least 9 other games no longer have flashing or missing sprites.

As for the VDP2, yet another of @celeriyacon's test ROMs has helped tighten and improve video signal timings. Ymir was using an approximation that didn't quite yield the exact NTSC and PAL frame rates. Now, both modes target exactly 59.97 and 50 Hz respectively with very accurate VBlank and HBlank timings as well as VCNT sequences. Exclusive monitor modes (which no games seem to use) are partially working.

RBG rendering accuracy fixes have solved a longstanding problem in Radiant Silvergun's Stage 2C:

image

This used to be janky. Not anymore.

You can find the rest of the fixes in the Changes section below.

UI improvements

Ymir will now report slightly more useful error messages when it is unable to load a disc image which should help pinpoint the problem, be it a missing .bin file, a syntax error in a .cue file, a corrupted .chd, or anything of the sort. Also on the topic of errors, if the application fails to launch for some reason (such as failing to initialize the audio or video subsystems), it will display a message box with a short message describing the problem -- much better than the application not launching at all and leaving everyone (including me) confused. Also, thanks to @Wunkolo, macOS now has a global exception handler for serious issues like the one made available for Windows and Linux on 0.1.7.

The application is now capable of loading SDL game controller databases and includes a community-sourced database with the package, which should help improve compatibility with a variety of controllers.

On Windows 11, the window corners are now square rather than rounded.

image

An error box will be displayed if you attempt to load a game that requires a ROM cartridge (Ultraman - Hikari no Kyojin Densetsu and The King of Fighters '95) for which you don't have the image file in <profile>/roms/cart:

image

The CD Block section in the System State window will now display the file being currently read, if available -- a feature requested by game translators.

image

Debugger

In order to help troubleshoot some of these bugs, new debugging tools have been developed which may also be useful to homebrew developers.

You can now add watchpoints to both SH-2 debuggers. Watchpoints suspend execution when a particular memory address is read or written -- extremely useful to find out what is changing or accessing a particular value (especially hardware registers), as long as it's done by an SH-2 instruction.

image

The SCSP has gained its first set of debugging tools:

  • A slots viewer, showing the state of all registers as well as an oscilloscope of the output of each slot
  • An oscilloscope with the final output sent to the speakers
  • A simple KYONEX event trace (which will be improved in the future)
image

There's a new window that displays some of the most important VDP2 layer...


https://github.com/StrikerX3/Ymir/releases