Ymir, Saturn emulator

Tried it and it crashes with any game. Is there also a proper info file?

I haven’t tested myself yet, but you probably have to make your own info file for now (could copy and edit the mednafen-saturn one).

I dunno what kind of bios it needs either. Same as the standalone I would expect.

Yeah, for the info file, I just copied/modified the saturn_mednafen one (remember to update the core info files from the RA updater in order for the change to actually take effect if you do it this way),

Though so far it doesn’t really matter anyway because I get the exact same results as petran791 -it just closes/crashes as soon as I try to load any game. Doesn’t matter the region or the format. The core does seem to load correctly on its own: it says ymir 0.3.0.

I’ll try to launch a game with --verbose. See if it says it’s missing some file(s) maybe. Other than that, I would try as Awakened suggested to use the same bios as the stand alone. Maybe it’s just expecting a different filenames as mednafen.

Here’s the debug info -everything below is from the moment the core is loaded then after the content/game tries to load. It does appear to accept the same bios as mednafen.

[libretro INFO] [Ymir] Loaded BIOS: sega_101.bin
[libretro INFO] [Ymir] CHD: Failed to open file: invalid data
[libretro INFO] [Ymir] BIN/CUE: [Line 1] CATALOG 0000000000000
[libretro INFO] [Ymir] BIN/CUE: Skipping CATALOG
[libretro INFO] [Ymir] BIN/CUE: [Line 2] FILE ā€œAlien Trilogy (USA) (Track 01).binā€ BINARY
[libretro INFO] [Ymir] BIN/CUE: File Alien Trilogy (USA) (Track 01).bin - 126772 800 bytes
[libretro INFO] [Ymir] BIN/CUE: [Line 3] TRACK 01 MODE1/2352
[libretro INFO] [Ymir] BIN/CUE: Track 01 - MODE1/2352
[libretro INFO] [Ymir] BIN/CUE: [Line 4] INDEX 01 00:00:00
[libretro INFO] [Ymir] BIN/CUE: Index 1 - 00:00:00
[libretro INFO] [Ymir] BIN/CUE: [Line 5] FILE ā€œAlien Trilogy (USA) (Track 02).binā€ BINARY
[libretro INFO] [Ymir] BIN/CUE: File Alien Trilogy (USA) (Track 02).bin - 233553 60 bytes
[libretro INFO] [Ymir] BIN/CUE: [Line 6] TRACK 02 AUDIO
[libretro INFO] [Ymir] BIN/CUE: Track 02 - AUDIO
[libretro INFO] [Ymir] BIN/CUE: [Line 7] INDEX 00 00:00:00
[libretro INFO] [Ymir] BIN/CUE: Index 0 - 00:00:00
[libretro INFO] [Ymir] BIN/CUE: [Line 8] INDEX 01 00:02:00
[libretro INFO] [Ymir] BIN/CUE: Index 1 - 00:02:00
[libretro INFO] [Ymir] BIN/CUE: [Line 9] FILE ā€œAlien Trilogy (USA) (Track 03).binā€ BINARY
[libretro INFO] [Ymir] BIN/CUE: File Alien Trilogy (USA) (Track 03).bin - 229390 56 bytes
[libretro INFO] [Ymir] BIN/CUE: [Line 10] TRACK 03 AUDIO
[libretro INFO] [Ymir] BIN/CUE: Track 03 - AUDIO
[libretro INFO] [Ymir] BIN/CUE: [Line 11] INDEX 00 00:00:00
[libretro INFO] [Ymir] BIN/CUE: Index 0 - 00:00:00
[libretro INFO] [Ymir] BIN/CUE: [Line 12] INDEX 01 00:02:00
[libretro INFO] [Ymir] BIN/CUE: Index 1 - 00:02:00
[libretro INFO] [Ymir] BIN/CUE: [Line 13] FILE ā€œAlien Trilogy (USA) (Track 04).binā€ BINARY
[libretro INFO] [Ymir] BIN/CUE: File Alien Trilogy (USA) (Track 04).bin - 208787 04 bytes
[libretro INFO] [Ymir] BIN/CUE: [Line 14] TRACK 04 AUDIO
[libretro INFO] [Ymir] BIN/CUE: Track 04 - AUDIO
[libretro INFO] [Ymir] BIN/CUE: [Line 15] INDEX 00 00:00:00
[libretro INFO] [Ymir] BIN/CUE: Index 0 - 00:00:00
[libretro INFO] [Ymir] BIN/CUE: [Line 16] INDEX 01 00:02:00
[libretro INFO] [Ymir] BIN/CUE: Index 1 - 00:02:00
[libretro INFO] [Ymir] BIN/CUE: [Line 17] FILE ā€œAlien Trilogy (USA) (Track 05).binā€ BINARY
[libretro INFO] [Ymir] BIN/CUE: File Alien Trilogy (USA) (Track 05).bin - 251569 92 bytes
[libretro INFO] [Ymir] BIN/CUE: [Line 18] TRACK 05 AUDIO
[libretro INFO] [Ymir] BIN/CUE: Track 05 - AUDIO
[libretro INFO] [Ymir] BIN/CUE: [Line 19] INDEX 00 00:00:00
[libretro INFO] [Ymir] BIN/CUE: Index 0 - 00:00:00
[libretro INFO] [Ymir] BIN/CUE: [Line 20] INDEX 01 00:02:00
[libretro INFO] [Ymir] BIN/CUE: Index 1 - 00:02:00
[libretro INFO] [Ymir] BIN/CUE: [Line 21] FILE ā€œAlien Trilogy (USA) (Track 06).binā€ BINARY
[libretro INFO] [Ymir] BIN/CUE: File Alien Trilogy (USA) (Track 06).bin - 236564 16 bytes
[libretro INFO] [Ymir] BIN/CUE: [Line 22] TRACK 06 AUDIO
[libretro INFO] [Ymir] BIN/CUE: Track 06 - AUDIO
[libretro INFO] [Ymir] BIN/CUE: [Line 23] INDEX 00 00:00:00
[libretro INFO] [Ymir] BIN/CUE: Index 0 - 00:00:00
[libretro INFO] [Ymir] BIN/CUE: [Line 24] INDEX 01 00:02:00
[libretro INFO] [Ymir] BIN/CUE: Index 1 - 00:02:00
[libretro INFO] [Ymir] BIN/CUE: [Line 25] FILE ā€œAlien Trilogy (USA) (Track 07).binā€ BINARY
[libretro INFO] [Ymir] BIN/CUE: File Alien Trilogy (USA) (Track 07).bin - 239715 84 bytes
[libretro INFO] [Ymir] BIN/CUE: [Line 26] TRACK 07 AUDIO
[libretro INFO] [Ymir] BIN/CUE: Track 07 - AUDIO
[libretro INFO] [Ymir] BIN/CUE: [Line 27] INDEX 00 00:00:00
[libretro INFO] [Ymir] BIN/CUE: Index 0 - 00:00:00
[libretro INFO] [Ymir] BIN/CUE: [Line 28] INDEX 01 00:02:00
[libretro INFO] [Ymir] BIN/CUE: Index 1 - 00:02:00
[libretro INFO] [Ymir] BIN/CUE: [Line 29] FILE ā€œAlien Trilogy (USA) (Track 08).binā€ BINARY
[libretro INFO] [Ymir] BIN/CUE: File Alien Trilogy (USA) (Track 08).bin - 313380 48 bytes
[libretro INFO] [Ymir] BIN/CUE: [Line 30] TRACK 08 AUDIO
[libretro INFO] [Ymir] BIN/CUE: Track 08 - AUDIO
[libretro INFO] [Ymir] BIN/CUE: [Line 31] INDEX 00 00:00:00
[libretro INFO] [Ymir] BIN/CUE: Index 0 - 00:00:00
[libretro INFO] [Ymir] BIN/CUE: [Line 32] INDEX 01 00:02:00
[libretro INFO] [Ymir] BIN/CUE: Index 1 - 00:02:00
[libretro INFO] [Ymir] BIN/CUE: [Line 33] FILE ā€œAlien Trilogy (USA) (Track 09).binā€ BINARY
[libretro INFO] [Ymir] BIN/CUE: File Alien Trilogy (USA) (Track 09).bin - 458804 64 bytes
[libretro INFO] [Ymir] BIN/CUE: [Line 34] TRACK 09 AUDIO
[libretro INFO] [Ymir] BIN/CUE: Track 09 - AUDIO
[libretro INFO] [Ymir] BIN/CUE: [Line 35] INDEX 00 00:00:00
[libretro INFO] [Ymir] BIN/CUE: Index 0 - 00:00:00
[libretro INFO] [Ymir] BIN/CUE: [Line 36] INDEX 01 00:02:00
[libretro INFO] [Ymir] BIN/CUE: Index 1 - 00:02:00
[libretro INFO] [Ymir] BIN/CUE: [Line 37] FILE ā€œAlien Trilogy (USA) (Track 10).binā€ BINARY
[libretro INFO] [Ymir] BIN/CUE: File Alien Trilogy (USA) (Track 10).bin - 300938 40 bytes
[libretro INFO] [Ymir] BIN/CUE: [Line 38] TRACK 10 AUDIO
[libretro INFO] [Ymir] BIN/CUE: Track 10 - AUDIO
[libretro INFO] [Ymir] BIN/CUE: [Line 39] INDEX 00 00:00:00
[libretro INFO] [Ymir] BIN/CUE: Index 0 - 00:00:00
[libretro INFO] [Ymir] BIN/CUE: [Line 40] INDEX 01 00:02:00
[libretro INFO] [Ymir] BIN/CUE: Index 1 - 00:02:00
[libretro INFO] [Ymir] BIN/CUE: [Line 41] FILE ā€œAlien Trilogy (USA) (Track 11).binā€ BINARY
[libretro INFO] [Ymir] BIN/CUE: File Alien Trilogy (USA) (Track 11).bin - 262812 48 bytes
[libretro INFO] [Ymir] BIN/CUE: [Line 42] TRACK 11 AUDIO
[libretro INFO] [Ymir] BIN/CUE: Track 11 - AUDIO
[libretro INFO] [Ymir] BIN/CUE: [Line 43] INDEX 00 00:00:00
[libretro INFO] [Ymir] BIN/CUE: Index 0 - 00:00:00
[libretro INFO] [Ymir] BIN/CUE: [Line 44] INDEX 01 00:02:00
[libretro INFO] [Ymir] BIN/CUE: Index 1 - 00:02:00
[libretro INFO] [Ymir] BIN/CUE: [Line 45] FILE ā€œAlien Trilogy (USA) (Track 12).binā€ BINARY
[libretro INFO] [Ymir] BIN/CUE: File Alien Trilogy (USA) (Track 12).bin - 288261 12 bytes
[libretro INFO] [Ymir] BIN/CUE: [Line 46] TRACK 12 AUDIO
[libretro INFO] [Ymir] BIN/CUE: Track 12 - AUDIO
[libretro INFO] [Ymir] BIN/CUE: [Line 47] INDEX 00 00:00:00
[libretro INFO] [Ymir] BIN/CUE: Index 0 - 00:00:00
[libretro INFO] [Ymir] BIN/CUE: [Line 48] INDEX 01 00:02:00
[libretro INFO] [Ymir] BIN/CUE: Index 1 - 00:02:00
[libretro INFO] [Ymir] BIN/CUE: [Line 49] FILE ā€œAlien Trilogy (USA) (Track 13).binā€ BINARY
[libretro INFO] [Ymir] BIN/CUE: File Alien Trilogy (USA) (Track 13).bin - 240797 76 bytes
[libretro INFO] [Ymir] BIN/CUE: [Line 50] TRACK 13 AUDIO
[libretro INFO] [Ymir] BIN/CUE: Track 13 - AUDIO
[libretro INFO] [Ymir] BIN/CUE: [Line 51] INDEX 00 00:00:00
[libretro INFO] [Ymir] BIN/CUE: Index 0 - 00:00:00
[libretro INFO] [Ymir] BIN/CUE: [Line 52] INDEX 01 00:02:00
[libretro INFO] [Ymir] BIN/CUE: Index 1 - 00:02:00
[libretro INFO] [Ymir] BIN/CUE: [Line 53] FILE ā€œAlien Trilogy (USA) (Track 14).binā€ BINARY
[libretro INFO] [Ymir] BIN/CUE: File Alien Trilogy (USA) (Track 14).bin - 321636 00 bytes
[libretro INFO] [Ymir] BIN/CUE: [Line 54] TRACK 14 AUDIO
[libretro INFO] [Ymir] BIN/CUE: Track 14 - AUDIO
[libretro INFO] [Ymir] BIN/CUE: [Line 55] INDEX 00 00:00:00
[libretro INFO] [Ymir] BIN/CUE: Index 0 - 00:00:00
[libretro INFO] [Ymir] BIN/CUE: [Line 56] INDEX 01 00:02:00
[libretro INFO] [Ymir] BIN/CUE: Index 1 - 00:02:00
[libretro INFO] [Ymir] BIN/CUE: Final FAD = 206524
debug | SMPC | Setting area code to 4
info | Media | Filesystem built successfully
[INFO] [Environ]: SET_MEMORY_MAPS.
[INFO] [Environ]: SET_SUPPORT_ACHIEVEMENTS: yes.
debug | SWRender-VDP1 | Enabling threaded VDP1 rendering

edit: testing a few more games: same results. Maybe the last line could be the problem:

debug | SWRender-VDP1 | Enabling threaded VDP1 rendering

If there are core options and if there’s an option to disable threaded VDP1 rendering it might be worth it to test while it’s disabled…problem is: the way opt files works is whenever no .opt file is present a default .opt file is created…only in this case the core seems to crash before that happens so there’s nothing that can be manually edited.

1 Like

Well, I think I know why the warmenhoven ymir core crashes at start for me. Ymir requires at least win10. Says so in the github page.

Tried the standalone -there are two windows versions: AVX2 and SSE2 -they both crashes at start for me and in my experience any core that’s based on a standalone which require Win10 and up will also not work on previous Windows versions when ported to libretro.

It also crashes on Win11

I’d check if you’re able to run the standalone on Win11 first.

If the standalone works for you but the core doesn’t, then not much else can be done I guess.

edit: Also, if you run RetroArch from a command prompt, like so:

you will see some log information in the prompt window even after the crash. Mine says: Enabling Threaded VDP1 Rendering just before it crashes. Maybe see if you get the same error.

For anyone who wants to try: to launch a command prompt, just right click on the folder containing the RA executable while holding r-shift (haven’t tried on Win11 but I’m guessing it still works) then choose ā€œopen window command menu hereā€ then in the prompt type

retroarch --verbose

2 Likes

In my case it progresses further but crashes right after the last line:

[INFO] [Core] Loading dynamic libretro core from: ā€œi:\emulators\retroarch64\cores\ymir_libretro.dllā€. [INFO] [Override] Redirecting save file to ā€œi:\emulators\retroarch64\saves\Ymir\Darius Gaiden (USA).srmā€. [INFO] [Override] Redirecting save state to ā€œi:\emulators\retroarch64\states\Ymir\Darius Gaiden (USA).stateā€. [INFO] [Environ] SET_SUPPORT_NO_GAME: no. [INFO] [Environ] SET_CORE_OPTIONS_V2. [INFO] [Environ] SET_CONTROLLER_INFO. [INFO] [Environ] SET_INPUT_DESCRIPTORS. [INFO] [Environ] SET_DISK_CONTROL_EXT_INTERFACE. [INFO] [Environ] GET_LOG_INTERFACE. [INFO] [Content] Content loading skipped. Implementation will load it on its own. [INFO] [Environ] GET_SYSTEM_DIRECTORY: ā€œi:\emulators\retroarch64\systemā€. [INFO] [Environ] GET_SAVE_DIRECTORY: ā€œi:\emulators\retroarch64\saves\Ymirā€. [INFO] [Environ] SET_PIXEL_FORMAT: XRGB8888. [libretro INFO] [Ymir] Loaded BIOS: sega_101.bin debug | SMPC | Setting area code to 4 info | Media | Filesystem built successfully [INFO] [Environ] SET_MEMORY_MAPS. [INFO] [Environ] SET_SUPPORT_ACHIEVEMENTS: yes. debug | SWRender-VDP1 | Enabling threaded VDP1 rendering debug | VDP2 | Enabling threaded VDP2 rendering [INFO] [SRAM] Skipping SRAM load. [INFO] [Core] Version of libretro API: 1, Compiled against API: 1 [INFO] [Core] Geometry: 320x224, Aspect: 1.333, FPS: 59.82, Sample rate: 44100.00 Hz. [INFO] [Video] Set video size to: fullscreen. [INFO] [Vulkan] Vulkan dynamic library loaded. [INFO] [Vulkan] Found GPU at index 0: ā€œNVIDIA GeForce RTX 5060 Tiā€. [INFO] [Vulkan] Using GPU index 0. [INFO] [Vulkan] Using GPU: ā€œNVIDIA GeForce RTX 5060 Tiā€. [INFO] [Vulkan] Queue family 0 supports 16 sub-queues. [INFO] [Vulkan] Got 2 swapchain images. [INFO] [Vulkan] Using resolution 3440x1440. [INFO] [Vulkan] Using BGRA8888 format. [INFO] [Vulkan] Loading stock shader. [INFO] [Input] Found joypad driver: ā€œdinputā€. [INFO] [Video] Found display server: ā€œwin32ā€. [INFO] [Audio] Set audio input rate to: 44100.00 Hz. [INFO] [WASAPI] Client initialized (shared, FLOAT, 48000Hz, 32.0ms). [INFO] [Audio] Started synchronous audio driver. [INFO] [Microphone] Initialized microphone driver. [INFO] [Display] Found display driver: ā€œvulkanā€. debug | SMPC | Processing RESDISA

Hm, look like it crashes further down the line than me but still before it had time to create an .opt file (which might have had an option to disable threaded rendering on vdp1 maybe).

Does Ymir has any advantages over Mednafen Saturn? I’m mostly interested about the input lag, i feel like most Saturn emulators are more laggy compared to emulators on other systems. I think Mednafen itself adds about 3 frames of lag. Playing the same games on a real Saturn feel more responsive, which is not as noticeable in other systems.

1 Like

I can’t run the standalone (needs win10 or higher) or the core, but from what I read, it’s much less demanding CPU wise, so you can run it on a weaker PC/device.

I’ve mentioned this before but as far as beetle/mednafen saturn or other Saturn emulators (I mostly use the beetle core, not mednafen standalone) being laggier, unless it can be shown objectively that it consistently adds about 3 frames of lags or more compared to real hardware, My guess is it’s mostly perception.

i feel like most Saturn emulators are more laggy compared to emulators on other systems

Perhaps that’s where this perception comes from. Comparing the lag of emulated Saturn games to the ones on other (emulated) systems is like comparing apples to oranges in this case. Many Saturn games (not all) were known to lag noticeably on hardware.

Let’s take Resident Evil on Saturn for example: Quick test anyone can do, just press left or right to make the character turn around and see how laggy it is on Saturn vs PSX. Well in this case, don’t even need a high speed camera it’s like 6-8 frames laggier on Saturn, maybe even more. It’s extremely noticeable. That only shows that specific game is laggier than on PSX though, it doesn’t prove beetle/mednafen saturn and every other Saturn emulators except for Ymir adds 3-4 frames of lag.

If you take Galactic Attack/RayForce on Saturn played on the Beetle Saturn core it’s almost next frame. Maybe 1 of lag. Two in the worse case scenario. But no way it’s 5+ (1 or 2 + 3 additional) frames. That is near unplayable for a shmup, even 3 or 4 frames is kinda rough for shmups imo.



TL;dr

So, kinda skeptical that ymir is massively less laggy than other Saturn emus/cores (and 3 frames less would fit the definition of ā€˜massive’ imo). For once, given there is plenty of cases where it’s already at 1 or 2 on beetle sat, ymir would actually have negative lag at this point, But more seriously, it is possible that ymir does have less lag than other Saturn emus… it’s also possible it has less lag than hardware if it’s not as accurate. With N64 emulation this is actually easily achievable when using the GlideN64 renderer and disabling framebuffer emulation; you will get considerably less lag than even on hardware but obviously it doesn’t behave like on hardware at this point.



real tl;dr

I think a ymir core would be good ultimately but the beetle saturn core is extremely mature and solid and for now from what I read on ymir the compatibility of mednafen is still overall better.

2 Likes

Excited to hear a RetroArch Core is being Worked On

Where to download the Core File?

1 Like

No Shock as mednafen been around lot longer then Ymir

1 Like

The idea Mednafen Saturn adds lag comes from me comparing the emulator to a real Saturn.

I was even using a CRT monitor at the time, yet Duke Nukem 3D felt noticeably laggier than the console. I also have a N64 and other consoles and i didn’t notice such difference on their own emulators.

Also, in Sonic Jam, testing Sonic 1, the Saturn version reacts on the 5th frame on Mednafen while the Genesis version reacts on the 2nd frame with GenesisPlusGX. Does the real game has such a difference?

I also tested Galactic Attack and that also reacts on the 5th frame, meaning it has 4 frames of lag. I assume the real game has only 1, plus 3 because of the emulator.

I haven’t seen a single game on Mednafen that has less than 4 frames of lag, which is why i said Mednafen most likely adds 3 by itself.

@GemaH did you try Yabuse with this as not need as much Power as Medafan Needs?

Yabause is a buggy mess. But i did try Yabasanshiro and it gives me the exact same results, both games react on the 5th frame.

Ymir is the way to go for future saturn games (or mednafen). Yabause and all its branches are outdated. Ymir just needs something like pgxp and it would be perfect. Mednafen needs the same plus texture filtering