Skip to content

SNESTICLE REVIVE v1.0.3 [PS2 MAJOR VERSION]

Latest

Choose a tag to compare

@ReyFxck ReyFxck released this 02 Aug 18:16

Notes/Credits

  • Thanks to SAMUELPV for testing and approving the version, also for testing the MMCE and reporting the bugs, and for testing all 4 games! Thank you also for reporting the black screen issues and other problems; they will all be fixed soon!
  • If you have any problems or want any improvements, please open an Issue, fill it out with the PS2 model and a detailed description of the problem if possible, and also include a screenshot.

Highlights

  • Rebuilt the storage/SIO2 initialization path for broader Deckard slim
    compatibility (SCPH-7700x and later) and reliable IRX residency checks.
  • Fixed MMCE integration for MemCard PRO 2 and SD2PSX, including real
    device probing before exposing mmce0: or mmce1:.
  • Replaced the menu BGM replay path with libxmp-lite, improving tracker
    effects, instruments, pitch, timing, and loops.
  • Restored ISO BGM without blocking boot or freezing the device-selection
    screen.
  • Stabilized direct packed and unpacked ELF boot, including launchers which do
    not provide a usable argv[0].
  • Fixed Captain Commando (USA) and the tested Mighty Morphin Power
    Rangers
    titles through general SNES hardware-emulation corrections rather
    than per-ROM hacks.
  • Removed the verbose diagnostic instrumentation used by the test builds.

Boot, IOP, and Deckard models

  • Every boot device now follows one IOP reset. The old memory-card-only second
    reset, which discarded loaded modules while leaving stale EE-side state, was
    removed.
  • Boot no longer depends on rom0:EELOADCNF, reducing BIOS/model-specific
    behavior.
  • SifLoadFileInit, cache state, and embedded-module runtime state are reset in
    a consistent order after the IOP reboot.
  • The ELF path is copied into owned, always-valid buffers. host: is used as a
    safe fallback when a launcher supplies no executable path.
  • CD/DVD starts with SCECdINoD, avoiding a mechanical disc-ready wait during
    boot, and the obsolete CDVD RPC path is no longer used.
  • The changes target direct ELF, ISO, OPL, and wLaunchELF boot paths. They
    remove known BIOS assumptions, but broad real-hardware testing is still
    required before claiming every physical revision is verified.

MMCE, MX4SIO, and storage

  • sio2man, mcman, mcserv, padman, mtapman, mmceman, and
    mx4sio_bd are pinned as one coherent in-tree IRX set.
  • The embedded IRX loader now checks the module _start() result in addition
    to the LOADFILE module ID. MODULE_NO_RESIDENT_END is correctly treated as
    failure.
  • MMCE support PINGs both physical ports and lists only slots which actually
    answer. Save-state destination selection uses the same result.
  • Menu BGM now discovers .mod and .xm tracks on mmce0: and mmce1:.
    Only PING-confirmed slots are accessed, including when MMCE is enabled from
    Video Config after the initial music index has already been built.
  • The internal HDD is also a BGM source. With HDD Support enabled, the
    player enumerates main APA/PFS partitions and uses the first one containing
    SNESticle/bgm or bgm.
  • MMCE and MX4SIO are mutually exclusive SIO2 backends. If the opposite driver
    is already resident, the UI requests a restart and applies the change after
    the next clean IOP boot.
  • USB keeps the modern multi-device BDM stack with FAT16/FAT32/exFAT and
    MBR/GPT support.
  • Internal-HDD modules remain disabled by default and lazy-loaded on the first
    browser or BGM access after the user enables HDD Support.
  • Essential boot/module import results remain available for failures which
    occur before the UI can appear.

Menu music and Issue #16

  • Replaced the partial jar_mod/jar_xm players with the PS2 port of
    libxmp-lite in core-player mode.
  • Tracker effects, timing, instruments, pattern changes, and loop points for
    .mod and .xm files are reproduced much more accurately.
  • Source audio is continuously resampled to the SPU2's 48 kHz output without
    accumulating per-frame rounding drift.
  • The default synthesis rate is now 24 kHz, with 16–48 kHz still available
    in Video Config.
  • Per-frame synthesis is bounded to avoid CPU spikes on heavy modules while
    preserving accumulated musical timing.
  • Playlist advancement follows libxmp's completed-loop state, prevents an
    unwanted fragment from the restarted loop, and inserts a clean short gap.
  • Invalid tracks are removed one per frame so several bad files cannot stall
    the menu for a long time.
  • Local folders are indexed immediately. CD/DVD uses a grace period and
    non-blocking readiness polls, and cdfs:/BGM is opened only after stable
    ready responses.
  • BGM subfolders are scanned up to four levels and duplicate paths are ignored.
  • A bgm folder beside a direct ELF is detected automatically; launcher
    cdrom0: paths are normalized to cdfs:.
  • MMCE searches mmce0:/SNESticle/bgm, mmce0:/bgm,
    mmce1:/SNESticle/bgm, and mmce1:/bgm, including subfolders up to four
    levels, with one probe/scan per activation rather than per-frame polling.
  • HDD playlist entries retain their complete logical
    hdd0:/PARTITION/... path and remount the correct PFS partition before each
    track load, so browsing or loading a ROM from another partition does not
    invalidate already indexed music.
  • make iso ... bgm=/tracks preserves subfolders and fails clearly when the
    source contains no .mod or .xm files.

SNES core compatibility

  • A hard 65C816 reset now initializes the stack pointer to $01FF. Soft
    reset retains the low byte while restoring the emulation-mode stack page.
  • Reserved instruction WDM ($42) consumes its signature byte and resumes
    at the following opcode instead of falling through into STP handling.
  • ROM mirroring now follows cartridge address-line behavior instead of simple
    modulo wrapping, fixing non-power-of-two images such as 12-Mbit/1.5-MiB
    LoROM cartridges.
  • ROM mapping is installed per 8-KiB page, including LoROM, HiROM, and ExLoROM
    mirror paths.
  • Added detection and normalization of Type-1 interleaved ROM images.
  • The fixed 21-byte internal ROM title is copied into a sanitized,
    NUL-terminated buffer, preventing UI/log reads into adjacent header fields.
  • CPU/APU communication ports APUIO0-3 ($2140-$2143) now mirror correctly
    through $217F for reads, writes, and queued SPC synchronization.

Confirmed games after the fixes

Game Previous symptom Result
Captain Commando (USA) ROM information flashed briefly, followed by a permanent black screen Boots and renders correctly
Mighty Morphin Power Rangers: The Movie Froze after the Bandai logo Fixed
Mighty Morphin Power Rangers Froze during startup Fixed
Mighty Morphin Power Rangers: The Fighting Edition Failed to progress correctly through startup Fixed

These are hardware-behavior fixes and may benefit other titles using the same
access patterns; no ROM-name compatibility exceptions were added.

Final release cleanup

  • Disabled temporary SNDBG_LOG timing/PPU/DMA/S-DD1 instrumentation.
  • Removed the CPU/APU instruction traces used to locate the Power Rangers wait
    loop.
  • Removed active SuperFX GO/STOP/poll traces, diagnostic pixel counters, ROM
    chip-detection dumps, and temporary SRAM-load messages.
  • Removed verbose BGM scanning, file-browser, and cover-index logging.
  • PROFILE, DSP4_CAPTURE, and the debug boot screen remain off by default.
    Short operational boot/device-import reports are intentionally retained for
    failures which happen before the UI exists.

Known limitations

  • The storage changes target Deckard consoles and multiple launch paths, but
    wider tests are still needed across physical consoles, MMCE revisions,
    MemCard PRO 2/SD2PSX firmware versions, and OPL configurations.
  • libxmp playback is substantially more accurate, but unusual or malformed
    tracker modules may still differ.
  • Save states remain limited to base SNES hardware. Games using DSP, SuperFX,
    CX4, OBC1, S-DD1, S-RTC, or Super Game Boy hardware remain blocked until
    those coprocessor states are fully serialized.

SCREENSHOTS

Captain Commando Power Rangers 1
Power Rangers 2 Power Rangers 3