
  ####                                                      ###           ###
 ##  ##                                                      ##            ##
 ###     ##  ##  ## ###   ####   ## ###  ##  ##   ####       ##   ####     ##
  ###    ##  ##   ##  ## ##  ##   ### ## ####### ##  ##   #####  ##  ##    ##
    ###  ##  ##   ##  ## ######   ##  ## ####### ##  ##  ##  ##  ######    ##
 ##  ##  ##  ##   #####  ##       ##     ## # ## ##  ##  ##  ##  ##        ##
  ####    ### ##  ##      ####   ####    ##   ##  ####    ### ##  ####    ####
                 ####

                       A Sega Model 3 Arcade Emulator.

                   Copyright 2003-2026 The Supermodel Team

                                 CHANGE LOG

Commit f479d0b on 2026-10-19 by Rex

    Enhance README with widescreen feature details

    Added explanation of widescreen feature and comparison image.
Commit 3e1b239 on 2026-10-19 by Rex

    Add files via upload
Commit eb88910 on 2026-10-19 by Rex

    Revise README with updated installation and setup instructions

    Updated installation instructions for Windows, Linux, and macOS. Clarified
    requirements and added details for first-run setup.
Commit ba61b45 on 2026-10-19 by Rex

    Update README with installation instructions

    Added installation instructions for Ubuntu/Debian and Mac OS users.
Commit ec4548b on 2026-10-19 by Rex

    Enhance README with download and build info

    Updated README with download instructions and build requirements.
Commit 01f5b6e on 2026-10-18 by Igloo-Garage

    Write depth in the transparent pass

    New3D keeps glDepthMask enabled while drawing its transparency layers.
    Without the write, farther polygons drawn later cover nearer ones, which
    painted a black patch over the Carnotaurus' snout.

Commit c500a6d on 2026-10-18 by Igloo-Garage

    Align Lost World crosshair with in-game cursor

    The game applies a fixed calibration to the 8-bit ADC range before mapping
    it to the screen. Feeding the full 0..255 range made the in-game cursor
    overshoot and sit down-right of the crosshair. Map the analog gun axes onto
    the calibrated travel and normalize the crosshair with the same axis ranges.

Commit 006e289 on 2026-10-18 by Igloo-Garage

    Show only the player 1 crosshair by default

    Player 2 has no mouse mapping in the SDL backend, so enabling both 
    crosshairs left a stationary one in the middle of the screen.

Commit 198ad40 on 2026-10-18 by Igloo-Garage

    Draw crosshair above every overlay layer

    Render the light gun crosshair in the in-game overlay's foreground draw list
    so the Vulkan backend has one at all, and record the OpenGL crosshair after
    the panel and statistics readout so nothing can cover it.

Commit b789ead on 2026-10-18 by Igloo-Garage

    Confine mouse to game window during gun play

    Grab the pointer for light gun games so the simulated cursor cannot wander
    onto another monitor, and release it when the session ends.

Commit a969d50 on 2026-10-18 by Igloo-Garage

    Keep analog gun crosshairs visible while firing

    Analog guns have no off-screen position, so the trigger buttons must not 
    suppress the P1/P2 crosshair.

Commit 6109671 on 2026-10-18 by Igloo-Garage

    Add mouse fallback and absolute gun aiming

    Remove the mouse-centering requirement when binding axes, bypass the dead
    zone for absolute gun axes, and wire mouse mappings for P1 gun games in the
    SDL backend. Light gun games now enable crosshairs by default.

Commit 4b906f2 on 2026-10-18 by Rex

    Add files via upload
Commit d8bc9a3 on 2026-10-18 by Igloo-Garage

    Add Linux file pickers and font fallback

    Use zenity or kdialog for the Browse buttons on Linux when either is
    installed, and ask Fontconfig for a Simplified Chinese face when the usual
    Noto/WenQuanYi paths are absent. Without either, the text fields and
    built-in font remain the fallback.

Commit e2a0dee on 2026-10-18 by Igloo-Garage

    Move advanced settings into the Core tab

    The Advanced tab is gone: its MSAA, scaling, CRT and glow controls now sit
    below the Core settings under their own heading, so they are not missed
    behind a separate tab.

Commit 8cf4ac6 on 2026-10-18 by Igloo-Garage

    Fix macOS settings path and narrow-panel layout

    Anchor macOS Config/NVRAM/Saves paths to the executable directory so saving
    works regardless of the working directory, and write the log next to the
    executable instead of a non-existent Data folder.

    On narrow settings panels, move long control labels above the widget instead
    of clipping them, and draw disabled-reason text on its own line rather than
    squeezing it beside the control.

Commit 44ed71f on 2026-10-18 by Igloo-Garage

    Fix PingFang font selection on macOS 13

    stb_truetype kept the last Unicode cmap record, which on macOS 13's
    PingFang.ttc is a format-14 variation-sequences table. The first glyph
    lookup then hit an assert in stbtt_FindGlyphIndex. Accept only formats
    0/4/6/12 so the format-12 subtable is used instead.

Commit 8767447 on 2026-10-18 by Igloo-Garage

    Add macOS file dialogs and light UI theme

    Use NSOpenPanel/NSSavePanel for the settings Browse buttons, default macOS
    to the executable's ROMs folder, and resolve relative paths against the
    executable directory.

    Load PingFang, Microsoft YaHei or Noto Sans CJK so the interface has Chinese
    glyphs on every platform, and replace the dark theme with a warm paper light
    palette shared by the settings window and the in-game overlay.

Commit 0469118 on 2026-10-17 by Igloo-Garage

    Bundle MoltenVK in the macOS release

    Ship the universal libMoltenVK.dylib (MoltenVK 1.3.0, chosen for macOS 11
    compatibility), its ICD manifest and Apache-2.0 licence in Frameworks/, and
    load it from next to the executable before the system fallbacks.

    This makes Vulkan 3D work on macOS without Homebrew or the Vulkan SDK.

Commit 8e37d27 on 2026-10-17 by Igloo-Garage

    Find Homebrew MoltenVK automatically on macOS

    Add the Homebrew libvulkan and libMoltenVK paths to volk dlopen fallback
    list for macOS, so brew install molten-vk works without DYLD_LIBRARY_PATH or
    VK_ICD_FILENAMES.

    Report the missing Vulkan implementation with instructions to install 
    MoltenVK or use the New 3D renderer instead of asking about vulkan-1.dll on
    macOS.

Commit d07fe5a on 2026-10-17 by Igloo-Garage

    Fix dependency generation for universal builds

    Filter the ARCH sequence from the dependency flags. clang -MM rejects 
    multiple -arch options.

Commit 0c14c4d on 2026-10-17 by Igloo-Garage

    Fix the macOS makefile version probe

    Match "define ... SUPERMODEL_FORK_VERSION" without the leading hash. GNU
    Make 3.81 treats a hash inside $(shell ...) as a comment, truncates the sed
    command and dies with "unterminated variable reference".

    When the usual error grep finds nothing, annotate the last 20 log lines so
    makefile and startup failures are visible in the checks API.

Commit 509852b on 2026-10-17 by Igloo-Garage

    Fix CI error reporting and macOS target

    Disable set -e around the make and executable pipelines so their exit status
    can be captured. With GitHub default -e, a failing pipeline aborted the step
    before the error summary and ::error:: annotations.

    Drop the -Xarch flags and build both slices for macOS 11.0, avoiding the
    per-architecture link flags.

    Document macOS 11+ as the minimum supported version.

Commit 7eb9a68 on 2026-10-17 by Igloo-Garage

    Fix package check and macOS make parsing

    Write the archive listing to a file before reading its first line. GitHub
    bash runs with pipefail, and closing the pipe early made GNU tar exit 2 on
    SIGPIPE, failing the check on Linux.

    Move the nested ifeq/else/endif directives to column 0. macOS ships GNU Make
    3.81, which rejects the tab-indented form.

    Emit ::error:: annotations for the first 20 matching build errors so a 
    failure is readable without admin access to the job logs.

Commit 43456cb on 2026-10-17 by Igloo-Garage

    Fix package folder naming and macOS compatibility

    Name the archive folder after the fork version and date from Src/Version.h
    instead of the upstream core version. VERSION itself is unchanged because it
    is compiled into SUPERMODEL_VERSION, which is written into save states.

    Build a universal arm64/x86_64 macOS binary and set explicit deployment 
    targets (11.0 for arm64, 10.15 for x86_64). Without them the CI Xcode SDK
    stamped minos 26.0 into the executable, so the release would not start on
    current Macs.

    Add CI checks for both architectures, a 10.x/11.x minos and the 
    Supermodel-VK.v top-level folder in every archive. Document the bare 
    universal macOS binary and the MoltenVK requirement for Vulkan 3D.

Commit 94c387a on 2026-10-17 by Igloo-Garage

    Embed the application icon in the MinGW build

    Embed IDI_SUPERMODEL alongside the manifest in the MinGW resource script,
    matching the MSVC script. Previously only the manifest was embedded, so the
    executable and window icons were missing.

Commit a5667e8 on 2026-10-17 by Igloo-Garage

    Name release assets after the fork, not upstream

    The release job took its version from make version, which reports the
    upstream core's 0.3a-<date>-git-<sha>. Read SUPERMODEL_FORK_VERSION and
    SUPERMODEL_FORK_DATE from Src/Version.h instead, and name the assets
    Supermodel-VK.v<version>-<date>.for.<Platform>.<ext>.

    GitHub turns spaces in asset names into dots, so the dotted form is the name
    the release page actually stores.

Commit 8002d62 on 2026-10-17 by Igloo-Garage

    Match the MSVC subsystem in the MinGW build

    Makefile.Win32 stripped -mwindows, so the CI and release Windows build was a
    console-subsystem program and showed a console window when started from
    Explorer. The MSVC project uses <SubSystem>Windows</SubSystem>.

    Main.cpp already attaches to the parent console for command-line output, so
    -print-games still works from cmd/PowerShell.

Commit e6867ab on 2026-10-17 by Rex

    Update README with GUI and CRT post-processing details

    Added images and details for GUI settings and CRT post-processing.
Commit 2b7a5c5 on 2026-10-17 by Rex

    Add files via upload
Commit 95c2ab9 on 2026-10-17 by Igloo-Garage

    Do not fail CI when the generated config is absent

    On Windows the ini is written under the executable's Data/Config rather than
    the working directory's Config, so rm returned 1 and the Validate step
    failed after a successful build. Use -f; the file only exists in the working
    tree on Unix.

Commit af1c79b on 2026-10-17 by Igloo-Garage

    Surface validation and packaging errors in CI

    Both steps could fail with no readable output: the job log needs admin
    rights, and the job-summary reporting only covered the compile step. Tee
    their output and write the relevant lines to GITHUB_STEP_SUMMARY, as the
    build step already does.

Commit c0bdcc8 on 2026-10-17 by Igloo-Garage

    Restore executable bits on the shell scripts

    The packaging rule runs ./Scripts/changelog.sh directly. With mode 100644
    the Unix runners fail with Permission denied before the script starts;
    upstream ships it as 100755. The same mode was lost on
    CompileVulkanShaders.sh.

Commit 4ee1392 on 2026-10-17 by Igloo-Garage

    Handle a missing changelog base commit

    changelog.sh defaults FROM_REF to 06594a5, an upstream commit. This fork
    does not carry the upstream history, so git log exited with "unknown
    revision" and the packaging step failed on every platform right after a
    successful build.

    Use the configured range when FROM_REF resolves, and otherwise list the full
    history with a warning.

Commit a4b913f on 2026-10-17 by Igloo-Garage

    Fix the gcc build errors that MSVC never saw

    The video backend compiles these files on Linux and macOS too, but the local
    build only uses MSVC, so declarations left outside their #ifdef _WIN32 guard
    went unnoticed.

    - Put the modal loop hook and the overlay's Win32 key state inside _WIN32,
    keeping the SetModalLoopHook stub unconditional.
    - Include <cstdint> in R3DSceneBuilder.h. MSVC found uint32_t indirectly;
    gcc did not.
    - Rename OverlayBackend::None to NoBackend. <X11/X.h>, pulled in by
    <SDL_syswm.h>, defines None as a macro, so the enumerator became 0 and every
    reference to the other enumerators failed to parse.

Commit c7f89a7 on 2026-10-17 by Igloo-Garage

    CI: show the compile errors in the job summary, and do not cancel other
    platforms

    A failure only ever surfaced as 'exit code 2' with no readable detail: the
    job-log API needs admin rights, and the artifact upload was after the
    failing step so it never ran. The build now tees its output and, on failure,
    writes the matching lines into GITHUB_STEP_SUMMARY, which is public.

    fail-fast was also cancelling the other two platforms the moment one failed,
    which hides the one thing worth knowing about a GCC-only break: whether it
    is platform-specific or common to all of them.

Commit 5b5089e on 2026-10-17 by Igloo-Garage

    Fix four source paths in the makefile that pointed at files which do not
    exist

    The Linux and macOS CI jobs died on these, and would have died on any GCC
    build:

Commit 1a588f3 on 2026-10-17 by Igloo-Garage

    CI: fetch Vulkan-Headers before building

    The workflow never obtained Vulkan-Headers, so the first Vulkan source file
    died with: Src/Pkgs/volk/volk.h:50: fatal error: vulkan/vulkan.h: No such
    file or directory.

Commit 1891505 on 2026-10-17 by Igloo-Garage

    Remove personal configuration backups and a leftover build script

    Config/Supermodel.ini.bak-* are snapshots of the author's own settings - ROM
    path, controller bindings, every tuned value. The .gitignore line named the
    file exactly, so the timestamped copies were not covered and two of them
    reached the first commit. Both are removed and the pattern now matches the
    backups too.

    Scripts/_make_upload.ps1 was a one-off helper used to assemble this folder.
    It has no place in the repository.

Commit 9c3d9d6 on 2026-10-17 by Igloo-Garage

    Supermodel-VK v0.9.0.3a-20261017
