Releases: ReyFxck/SNESticleRevive
Release list
SNESTICLE REVIVE v1.0.3 [PS2 MAJOR VERSION]
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-7700xand later) and reliable IRX residency checks. - Fixed MMCE integration for MemCard PRO 2 and SD2PSX, including real
device probing before exposingmmce0:ormmce1:. - 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 usableargv[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_bdare 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_ENDis 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
.modand.xmtracks onmmce0:andmmce1:.
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/bgmorbgm. - 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_xmplayers with the PS2 port of
libxmp-lite in core-player mode. - Tracker effects, timing, instruments, pattern changes, and loop points for
.modand.xmfiles 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, andcdfs:/BGMis opened only after stable
ready responses. - BGM subfolders are scanned up to four levels and duplicate paths are ignored.
- A
bgmfolder beside a direct ELF is detected automatically; launcher
cdrom0:paths are normalized tocdfs:. - MMCE searches
mmce0:/SNESticle/bgm,mmce0:/bgm,
mmce1:/SNESticle/bgm, andmmce1:/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=/trackspreserves subfolders and fails clearly when the
source contains no.modor.xmfiles.
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$217Ffor 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_LOGtiming/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
SNESTICLE REVIVE v1.0.2 [PS2]
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 + Crosssaves a state and
L2 + Circleloads it.L2 + R2remains 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 formc0:. - 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]
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]
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.cppsplit 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:
makewithJOBS,VERBOSE=1andPROFILE=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.



