Skip to content

Releases: ReyFxck/SNESticleRevive

SNESTICLE REVIVE v1.0.3 [PS2 MAJOR VERSION]

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

SNESTICLE REVIVE v1.0.2 [PS2]

Choose a tag to compare

@ReyFxck ReyFxck released this 29 Jul 02:27

CONTEXT

Project based on the source code of SNESticle (Icer Addis), available since 2022 — however abandoned and full of pending issues: several bugs, missing files, a very old compiler (GCC 3.2), very little documentation, and also corrupted files.

CREDITS

  • Thanks to Icer Addis for this incredible emulator (the original SNESticle).
  • Port based on the fork by wolf3s.
  • Thanks to Adriano Oliveira and Yamark for testing on real hardware.
  • Thanks to wLaunchELF ISR (Israpps), the Open PS2 Loader community, FCEUmm (AKuHAK), PicoDrive (Irixxxx), and others for keeping their repositories public — they greatly helped in understanding how to implement new features (I borrowed a thing or two from each).
  • Thanks to the Snes9x and bsnes repositories, and to other docs/repositories that helped with the implementation of special chips.
  • Thanks to the Miniz and Upng repositories for lightweight code for file/image decompression.
  • Thanks to HardLevel for publicizing the project and providing a tutorial.

NOTES

  • Not everything has been tested, since I am testing on an emulator (my PlayStation 2 is broken) — so some bugs may appear in certain things.
  • Problems and life improvements related to Issue #17

BUGS

There is still a known bug with the bgm folder in certain PS2 models; consider using only the ISO file if you are experiencing this problem. mmce is not working yet.

WHAT'S NEW?

Documentation

  • [FIX] Readme has been fully updated.

Save states

  • Restored the original SNESticle shortcuts: L2 + Cross saves a state and
    L2 + Circle loads it. L2 + R2 remains reserved for opening or closing the
    menu and saving modified SRAM.
  • Added a one-time destination chooser shown on the first save: Auto, USB,
    Memory Card, MMCE, or Internal HDD. The choice is remembered and can be reset
    later from the Save States menu.
  • Auto always uses quick slot 1 and, when only a Memory Card is available, uses
    the connected card with preference for mc0:.
  • Added five quick slots for explicitly selected destinations.
  • The save-state format now includes ROM identity, version, generation, and CRC
    checks. Each slot keeps two banks so the previous bank can be recovered
    automatically if the newest one is incomplete or corrupt.
  • New states use fast deflate compression and avoid unnecessary full-payload
    rereads, substantially reducing save and load times.
  • Existing uncompressed version-1 save states remain compatible.

Management and interface

  • The Save States screen now works as a file manager both on the initial
    homebrew screen and while a game is paused.
  • States stored on USB, Memory Card, MMCE, and Internal HDD can be browsed and
    deleted through the file menu. Deleting a state removes both banks belonging
    to its slot.
  • The Save States title is aligned near the top without moving the original
    option and help-text positions.

Memory Card, SRAM, and audio

  • Unformatted Memory Cards are detected before use. The emulator asks whether
    to format the card, clearly warns that all contents will be erased, and
    selects No / Cancel by default.
  • After confirmed formatting, the SNESticle directory and icons are recreated
    and the pending save or browse operation resumes.
  • SRAM changes are checked immediately when opening the menu so a recent
    in-game write is not missed.
  • Audio is muted during blocking operations and restored correctly when
    returning to the game, preventing repeated tail audio and resume deadlocks.

Compatibility

  • Save states are available for base SNES hardware.
  • Games using DSP, SuperFX, CX4, OBC1, S-DD1, S-RTC, or Super Game Boy remain
    blocked until the complete state of those chips is serialized.

SNESTICLE REVIVE v1.0.1 [PS2]

Choose a tag to compare

@ReyFxck ReyFxck released this 03 Jul 18:28
21e7c35

CONTEXT

Project based on the source code of SNESticle (Icer Addis), available since 2022 — however abandoned and full of pending issues: several bugs, missing files, a very old compiler (GCC 3.2), very little documentation, and also corrupted files.

CREDITS

  • Thanks to Icer Addis for this incredible emulator (the original SNESticle).
  • Port based on the fork by wolf3s.
  • Thanks to Adriano Oliveira and Yamark for testing on real hardware.
  • Thanks to wLaunchELF ISR (Israpps), the Open PS2 Loader community, FCEUmm (AKuHAK), PicoDrive (Irixxxx), and others for keeping their repositories public — they greatly helped in understanding how to implement new features (I borrowed a thing or two from each).
  • Thanks to the Snes9x and bsnes repositories, and to other docs/repositories that helped with the implementation of special chips.
  • Thanks to the Miniz and Upng repositories for lightweight code for file/image decompression.
  • Thanks to HardLevel for publicizing the project and providing a tutorial.

NOTES:

Not everything has been tested, since I am testing on an emulator (my PlayStation 2 is broken) — so some bugs may appear in certain things.
This version is more of a complement to the first one; no drastic changes were made to the core for improvements since I do not know where the specific bugs are coming from — but most of these improvements are aimed at better support for PS2 inputs. Some bugs may still occur or something may be missing.

Ps Some features have not been tested:

  • Mass USB Drive (Exfat/FAT32, 100% tested by Adriano_Oliveira)
  • HDD APA (100% tested by Adriano_Oliveira)
  • MMCE (0% Never tested)
  • External HDD (0% Never tested)
  • Host System (0% Never tested, may not be working)
    Extras:
  • Multiple USB (Not tested)

OTHER:

If you find bugs in specific games, please open an issue — it will help me find the error more easily, and of course a screenshot makes it even easier :)
A frequent bug that is occurring but does not affect anything is that the BGM folder is not being recognized via ISO; this will be fixed soon.

WHAT'S NEW?

Documentation

  • [FIX] Readme has been fully updated.
  • [UPD] MIT license dropped (reason: ZSNES), switched to GPLv2.
    Modules and Code
  • [IOP] Removed old code and updated to recent bdm.
  • [ADD] HDD support (Exfat/FAT32 - P: mbr, gpt)
  • [ADD] MMCE support (SD2PSX, PSxMemCard Gen2, MemCard Pro 2, MX4SIO)
  • [ADD] External SSD support (Exfat/FAT32)
  • [UPD] cdfs modules updated.
  • [ADD] Support for chiptunes and menu music (.mod, .xm)
  • [WIP] Adding SuperFX, not yet finished, games do not start yet.
  • [WIP] Adding DSP-3, not yet finished, games do not start yet.
  • [WIP] Adding DSP-4, not yet finished, game starts but it is still not possible to race (based on ZSNES).
  • [FIX] Message log is now more efficient.
  • [ADD] Increase/decrease gameplay volume in the emulator.
  • [ADD] Increase/decrease menu music volume.
  • [ADD] Choose menu music frequency (in case of freezes... 24khz is the default).
  • [ADD] ON/OFF menu music toggle disables its consumption.
  • [FIX] Some memory card bugs fixed.
  • [FIX] Some screen bugs fixed.
  • [ADD] Game covers with support for libretro covers (see libretro repository — may require folders with those names, or covers with the same name as the ROM in the same folder).
  • [WIP] Small attempt to get 6MB games working.
  • [ADD] Added covers ON/OFF toggle in the settings menu.
  • [ADD] Added the ability to disable inputs in the menu for fewer calls and more free RAM. (mass, HDD, mmce)
  • [FIX] Many bugs from previous test versions fixed.
  • [UPD] A few more modules updated (thanks opl and israpps in wlaunchelf ISR)

KNOWN ISSUES SPRITES/CORE.

  • Super Mario Kart (timer).
  • Super Metroid and Mega Man X2 (glitches when pressing Start).
  • Final Fight 2 (sprite glitch).
  • Super Mario Bros 3 (NES) — issue with the core itself; there is an open issue about this.
  • NES pitch and audio still need fine-tuning.
  • NES save not yet implemented.
  • 6MB and 8MB ROMs and Ex-HiROM Ex-LoROM (not yet supported).
  • Pinocchio game does not open.
  • X-Men game crashes to osdsys.

FUTURE ADDITIONS

  • DSP-3 and DSP-4, Super FX, among others (most are Japanese games with calculation logic in the ROM).
  • Fix host (may not be working correctly).
  • Favorite games fixes
  • Top Gear SlowDown FIX.
  • Fix game crashes.

SNESTICLE REVIVE v1.0.0 [PS2]

Choose a tag to compare

@ReyFxck ReyFxck released this 27 Jun 04:53

CONTEXT

Project based on the SNESticle source code (Icer Addis), available since 2022 — but abandoned and full of loose ends: numerous bugs, missing files, an ancient compiler (GCC 3.2), very little documentation, and even corrupted files.

NOTES

Not everything has been tested, since I'm testing on an emulator (my PlayStation 2 is broken) — so bugs may show up in some things!

CREDITS

  • Thanks to Icer Addis for this amazing emulator (the original SNESticle).
  • Port based on wolf3s's fork.
  • Thanks to Adriano Oliveira and Yamark for testing on real hardware.
  • Thanks to wLaunchELF ISR (Israpps), the Open PS2 Loader community, FCEUmm (AKuHAK), PicoDrive (Irixxxx) and others for keeping their repositories public — they made it much easier to understand how to implement new features (I borrowed a thing or two from each).
  • Thanks to the Snes9x and bsnes repositories, and other docs/repos that helped with implementing the special chips.

CHANGELOG

Modules & Code

  • Code modularized and folder structure rebuilt from scratch for easier maintenance.
  • Several project scripts and files recovered from corruption / that were missing.
  • Dropped GCC 3.2 — welcome GCC 15.1.
  • Mainloop.cpp split into smaller modules.
  • Dropped SJPCM — welcome AUDSRV.
  • Several old modules replaced with newer versions.
  • Makefile rewritten from scratch, with optional auto-install of libraries/dependencies.
  • Old CD/DVD modules (by Aka. Hiryu) removed and updated.
  • Host modules updated [untested / may not be 100%].
  • USB flash drive support (exFAT and FAT32).
  • Automatic NTSC/PAL region detection (50/60Hz) from the BIOS.
  • Network no longer starts at boot (it's opt-in, like in OPL) — fixed a freeze on real PS2.
  • Improved build system: make with JOBS, VERBOSE=1 and PROFILE=1.
  • Renamed to SNESticle Revive 1.0.0.
  • Added a new name and new icon in the PS2 OSDSYS (memory card).

Interface

  • New background UI.
  • New font and new color — fixed across all resolutions (aside from a few glitches).
  • Settings screen (WIP).
  • Resolution and axis (offset) adjustment in the config screen.
  • Fixed an issue with the character count in ROM names.
  • Fixed an issue with the missing space character in ROM names.
  • Added working analog stick (works in games too).

Video / GS

  • Many GS fixes.
  • 240p fixed and working (default for CRT TVs).
  • Video switching/configuration screen added.
  • Built-in GSM, no OPL needed (experimental, untested).
  • Focus on keeping the emulator lightweight on real PS2.

Super Nintendo & Nintendo (NES)

  • InfoNES added in place of NESticle (couldn't find NESticle in the original repository).
  • NES emulation stabilized.
  • NES performance: direct RGBA rendering → SMB3 went from ~30fps to 60fps.
  • NES audio partially implemented — sample rate fixed to 32000 Hz (fixed pitch/crackling); still has issues.
  • Cartridge size handling fixed — iaddis didn't support certain final cartridge sizes (e.g. the 0.5MB bank), which froze hacks like Metroid X: Fusion 1.3; now they run, and new hacks may work too.
  • Fixed warnings and out-of-bounds read bugs inherited from upstream InfoNES.

Special Chips (Adriano confirmed they run better on real PS2)

  • DSP-1 / DSP-2 finalized — Mario Kart, Pilotwings (DSP-2 only Dungeon Master). Still heavy on the EE; VU optimization pending.
  • OBC1 — 100% (Metal Combat).
  • CX4 — 100% (Mega Man X2 / X3).
  • S-DD1 — added (Star Ocean still freezes; Street Fighter Alpha 2 runs slow).

KNOWN ISSUES

  • Super Mario Kart (timer).
  • Super Metroid (glitches when pressing Start).
  • Final Fight 2 (sprite glitch).
  • Super Mario Bros 3 (NES) — a bug in the core itself; there's an open issue about it.
  • NES pitch and audio still need fine-tuning.
  • NES saving not implemented yet.
  • DSP-1/DSP-2 still heavy on the EE (freeze under load).
  • 6MB and 8MB ROMs (not supported yet).

FUTURE ADDITIONS

  • DSP-3 and DSP-4, Super FX, among others (mostly Japanese games with calculation logic in the ROM).
  • HDD / MMCE support.
  • Game cover art support.
  • Fix host support (it may not be working correctly).
  • Further optimize the SNES CPU on the EE (MIPS and VU support).
  • Favorite games.
  • Amiga-style music in the menu.