[Bug 288495] [NEW PORT] emulators/Ymir: Sega Saturn emulator

From: <bugzilla-noreply_at_freebsd.org>
Date: Sun, 27 Jul 2025 16:58:05 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=288495

            Bug ID: 288495
           Summary: [NEW PORT] emulators/Ymir: Sega Saturn emulator
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
               URL: https://github.com/StrikerX3/Ymir
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: ports-bugs@FreeBSD.org
          Reporter: bsdcode@disroot.org
 Attachment #262489 maintainer-approval+
             Flags:
             Flags: maintainer-feedback+

Created attachment 262489
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=262489&action=edit
new port: Sega Saturn emulator

Ymir is a Sega Saturn emulator with the following features:

- Load games from MAME CHD, BIN+CUE, IMG+CCD, MDF+MDS or ISO files
- Automatic IPL (BIOS) ROM detection
- Automatic region switching
- Up to two players with standard Control Pads or 3D Control Pads on
  both ports
- Fully customizable keybindings
- Backup RAM, DRAM and ROM cartridges
- Integrated backup memory manager to import and export saves, and
  transfer between internal and cartridge RAM
- Save states
- Rewinding (up to one minute at 60 fps), turbo speed, frame step
  (forwards and backwards)
- Full screen mode with VRR support and low input lag
- Optional deinterlaced/progressive rendering of high resolution modes
- A feature-rich debugger

https://github.com/StrikerX3/Ymir


Build and playtested on amd64 14.2-RELEASE.

Porting notes for the brave reviewer/committer:

1) USES=llvm is used because the build requires the "clang-scan-deps" binary
which is not available with the llvm build in the base system.

2) The git submodule for the "fmt" library is kept instead of unbundling with
devel/libfmt because version 11.2 is required and the port is still on 10.2.
Bug #286406 suggests it will still take a while before devel/libfmt gets
updated to 11.2. I'll have an eye on it and will unbundle the dependency when
the new version lands.

3) The git submodule for the "tomlplusplus" library is kept instead of
unbundling with devel/tomlplusplus because a recent commit is required. I'll
unbundle the dependency when upstream makes a new release.

4) The git submodule for the "imgui" library is kept instead of unbundling with
x11-toolkits/imgui because the SDL3 backend is required and the port currently
doesn't provide this backend. I recently submitted a patch to include the
backend (bug #288454), but there's also the problem that the SDL2 and SDL3
backends can't be enabled at the same time. So the port would have to make a
decision to enable one of two backends by default, but which one? Maybe it
would be better to have one flavor per backend of x11-toolkits/imgui.
Long story short: I guess the imgui submodule will stay for longer.

5) In the process of unbundling all the remaining dependencies I had to feed in
the include paths for some dependencies explicitly.

6) As stated in pkg-message, the file dialogs aren't working currently. Ymir
uses SDL3's FileDialog API and the dialogs also don't work for me in the
"testdialog.c" testprogram in the SDL3 repository. So it's most probably not
Ymir's fault. I need to investigate more. For now directory paths must be
changed manually in the configuration file if it's required. And games have to
be started from the commandline the first time. After the first time they can
be selected from the "Recently played" menu of Ymir.

-- 
You are receiving this mail because:
You are the assignee for the bug.