github StrikerX3/Ymir v0.1.3

latest releases: latest-nightly, v0.1.7, latest-rolling...
3 months ago

Ymir v0.1.3

This is a more substantial release packed with new features, improved usability and bug fixes, many of which requested by you!

macOS users, rejoice! Ymir is now available for both Intel and Apple Silicon Macs thanks to @Wunkolo's efforts (#49, #65, #95, #96). He's also done lots of polishing work, fixing bugs and improving overall performance.

image

Ymir now supports ROM cartridges for The King of Fighters '95 and Ultraman: Hikari no Kyojin Densetsu. The emulator will automatically load the appropriate ROM cartridge when the corresponding game disc is inserted. This behavior is optional and can be disabled if for some reason you want to check out their error screens again. (Although KoF'95 doesn't boot yet...)

Image
Image
Image
image

Speaking of automatic detection, Ymir will now switch between PAL and NTSC video standards depending on the auto-detected region for better compatibility.

The input system has received a few improvements too:

  • Certain actions (such as frame advance) are now repeatable by holding down the key. (Only works with keyboard keys for now.)
  • There is a new input bind option to toggle turbo mode on and off (bound to the key below Esc, ` on US keyboards, by default). You no longer have to hold the Tab key for turbo speed!
  • Binding keys used by disconnected controllers will no longer unbind the assignments from the disconnected controller.
  • Gamepads are no longer merged into one, and plugging/unplugging them should now assign them independent gamepad numbers as opposed to always assigning them to Gamepad 1.

Many graphics glitches were fixed thanks to your reports (#67, #69, #72, #76, #77). There are still more fixes to come. The best way to have them fixed is to report bugs, or better yet, submit a PR!

Many more SCSP (sound) issues were fixed thanks to @celeriyacon's test ROMs. Emulation accuracy on these tests is comparable or superior to Mednafen, although there are some bugs unique to Ymir unrelated to these tests that need fixing.

The save states system has been simplified and improved to better support old save state versions and facilitate upgrades to future versions.

Ymir now supports UTF-8 properly and can be run from paths with international characters, load ROMs and game disc images with accented characters in their file names, etc.

There are also a number of fixes for program crashes and game compatibility. Check the Changes section below for details.

UI improvements

Ymir now supports full screen mode, with Alt+Enter being bound by default to toggle the mode. In full screen mode, the emulator will attempt to run at ~60 fps in NTSC mode and ~50 fps in PAL mode to make use of the variable refresh rate feature on modern displays for an exceptionally smooth experience. Additionally, input lag has been significantly improved since version 0.1.2, being comparable to Mednafen/Beetle Saturn - about 4 frames using an Xbox controller.

Frame pacing was also improved, benefitting both full screen and windowed modes. See the comparisons below:

Before

Image
Image

After

Image
Image

In Settings > General, you can now optionally override any of the paths used by the emulator.

image

In Settings > IPL, you can now sort the table by clicking on the columns. Multiple columns can be sorted simultaneously.

ymir-sdl3_zTaWtA0cYj

You can now toggle VDP2 layers on and off under Debug > VDP. The Layers option opens a small window which lets you toggle the layers without going through the menus every time.

image

These indicators will now display on the top-right corner of the screen based on the current execution state:

image image image image

Their opacity changes over time, hence why they're all different shades of gray on these pictures.

Changes

New features and improvements

  • Build: Added macOS builds. (huge thanks to @Wunkolo!)
  • Cartridge: Added 16 Mbit ROM cartridge for Ultraman: Hikari no Kyojin Densetsu and The King of Fighters '95. (#71)
  • Cartridge: Added option to automatically load cartridges required by some games. (#98)
  • Input: Categorize some actions as "triggers" (one-shot actions, optionally repeatable) to differentiate them from "buttons" (a binary state). This allows frame step to be repeated by holding the keyboard key bound to it.
  • Input: Added a "Turbo speed (hold)" input bind that toggles turbo on and off. (#103)
  • System: Automatically switch to PAL or NTSC based on auto-selected region.
  • Save states: Automatically load IPL ROM matching the one used in a save state.
  • Debugger: Added VDP2 layer toggles to Debug menu and in a new window.
  • App: Allow customizing all profile paths. (#74)
  • App: Add IPL ROM list sorting. (#92) (@Wunkolo)
  • App: Add full screen mode (default shortcut: Alt+Enter) and command-line override -f. (#47)
  • App: Improve frame pacing for a smooth full screen experience. (#97)
  • App: Mitigate input lag in every mode (#101)
  • App: Display reverse, rewind, fast-forward and pause indicators on the top-right corner of the viewport. (#103)

Fixes

  • VDP1: Preserve EWDR, EWLR and EWRR on reset. Fixes some graphics glitches on Capcom games. (#67)
  • VDP2: RBGs would render incorrectly when starting the emulator with threaded VDP rendering disabled. (#77)
  • VDP2: Honor access cycle settings (CYCA0/A1/B0/B1 registers) to fix vertical cell scroll effect. (#76)
  • VDP2: Disable NBGs 1 to 3 if NBG0 or NBG1 use high color formats. (#76)
  • VDP2: Apply mid-frame scroll effects properly. (#72)
  • VDP2: Use the MSB from the final color value instead of the raw sprite data MSB, which fixes background priority bugs on Dragon Ball Z - Shinbutouden (#69)
  • SCSP: More accuracy improvements and bug fixes (thanks to @celeriyacon)
  • SCU: Fix repeated indirect DMA transfers when the write address update flag is enabled. Fixes a crash when going in-game on Shinobi X. (#84)
  • Input: Assigning keys to connected controllers will no longer unbind keys from disconnected controllers.
  • Rewind: Fix rare crash due to a race condition when resetting the rewind buffer.
  • App: Fix handling of UTF-8 paths. (#88)
  • Backup memory manager: Fix crash when loading an image with less files than the current image while having selected files at positions past the new image's file count.

Known issues

Several games exhibit graphics or sound glitches. See Issues for details.

The following games softlock or freeze during gameplay:

  • Daytona USA (the original release, not the CCE or Netlink editions) (#7)
  • Sakura Taisen (#90): can be worked around by mashing B to skip sound clips before the softlock happens
  • Shining Force 3 (Scenario 1): occasionally crashes during startup with a glitched screen. Seems to be related to certain save files being present in either backup RAM. If that happens, use the Backup Memory Manager to clear both backup RAMs leaving only the Shining Force save in memory.

The following games stay stuck on the SEGA copyright screen, on a black screen or boot back to the system menu:

  • Capcom Generation - Dai-5-shuu Kakutouka-tachi (#68)
  • Crusader - No Remorse (#108)
  • Cyberbots - Fullmetal Madness (#68)
  • Jung Rhythm (#85)
  • Marvel vs. Street Fighter (#68)
  • Saturn Bomberman (#63)
  • Sega Ages: After Burner II (#78)
  • The King of Fighters '95 (#75)
  • Virtua Cop 2 (#79)
  • X-Men: Children of the Atom (#73)
  • X-Men vs. Street Fighter (#68)

Which version should I download?

If you just want the emulator, grab the ymir- release for your operating system.

The AVX2 version offers slightly better performance but requires a CPU that supports the instruction set -- pretty much any Intel Core or AMD CPU since 2011 and Intel Pentium/Celeron CPUs from 2020 onwards has support for it. If you don't know if AVX2 is supported or you have no idea what any of this means, it's probably safe to grab the AVX2 version if you don't have an ancient or cheap computer. If it randomly crashes for no reason, try the SSE2 version.

For Windows releases, the Console version opens a terminal window alongside the main emulator window and the Win32 version is a proper GUI application with no terminal. If in doubt, prefer the Win32 version. Despite the name, Ymir is a 64-bit application. You might also need to install the latest Microsoft Visual C++ Redistributable package (x86_64 installer). Ymir requires Windows 10 or later.

The macOS releases are a brand new addition to this release. The a64 version is for Apple Silicon (ARM) systems, and x64 is for Intel systems. Ymir requires macOS 13 (Ventura) or later.

The ymdasm tool is more useful for emulator or homebrew developers. Check its README for instructions.

Don't miss a new Ymir release

NewReleases is sending notifications on new releases.