Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
The main server is currently down. We are running on a backup server, so editing and search functionality are temporarily disabled. Please check back in a few hours.

Snes9x 3DS (Updated Fork): Difference between revisions

From GameBrew
No edit summary
No edit summary
 
Line 7: Line 7:
|type=Console
|type=Console
|version=1.61
|version=1.61
|license=Mixed
|license=[https://github.com/matbo87/snes9x_3ds/blob/master/LICENSE.md LICENSE]
|download=https://dlhb.gamebrew.org/3dshomebrews/snes9xfork3ds.7z
|download=https://dlhb.gamebrew.org/3dshomebrews/snes9xfork3ds.7z
|website=https://github.com/matbo87/snes9x_3ds
|website=https://github.com/matbo87/snes9x_3ds
Line 19: Line 19:
|image_alt=Snes9x Fork
|image_alt=Snes9x Fork
}}
}}
This is a fork of [[SNES9x 3DS]] which includes several new features, like custom border and second screen image for each game. You can also swap your game screen, use the new hotkey options such as Switch to player 2 or Quick Save/Load.
This project is a fork of the legacy [[SNES9x 3DS|snes9x_3ds]] codebase by [https://github.com/bubble2k16/snes9x_3ds bubble2k] and continues that work with a modernized architecture and improved user experience. It builds with current devkitARM, libctru and citro3d releases (as of June 2026). Optional assets are available in the dedicated asset repository: [https://github.com/matbo87/snes9x_3ds-assets snes9x_3ds-assets].
 
It works on all 2DS and 3DS models. Old 2DS/3DS mainly struggle with Super FX and SA-1 games, but most SNES titles run well.


The credits for the custom border and bottom image go to [https://github.com/ramzinouri/snes9x_3ds ramzinouri's fork] and [https://github.com/Asdolo/snes9x_3ds_forwarder Asdolo's snes9x forwarder].


== Features ==
== Features ==
* Thumbnail support (box art, title and gameplay).
* Improved rendering for HDMA-heavy games and mosaic effects.
* Per-game backgrounds for top and bottom screens, overlays with auto-fit option.
* SNES refresh rate matching (60.1 Hz for NTSC, 50 Hz for PAL).
* SNES refresh rate matching (60.1 Hz for NTSC, 50 Hz for PAL).
* Improved rendering for HDMA-heavy games and mosaic effects.
* NDSP audio output.
* NDSP audio output.
* Theme support.
* Rich visual customization with thumbnails, themes, per-game backgrounds and overlays.
* Crop and overscan.
* Improved cheat management.
* Improved cheat management.
* Crop and overscan.
* Extended hotkey options and screen swap support.
* Clean, RetroArch-style folder structure.
* Directory caching for faster ROM list loading.
* Directory caching for faster ROM list loading.
* Extended hotkey options and screen swap support.


==Installation==
==Installation==
Line 113: Line 111:
'''Q. A game runs slow. How can I improve performance?'''
'''Q. A game runs slow. How can I improve performance?'''


* Increase <code>Frameskips</code> (try 1-2 first)
* Increase <code>Frameskips</code> (more than 2 isn't recommended)
* Set <code>Frame Sync Method</code> to <code>Sleep Sync</code>
* Set <code>Frame Sync Method</code> to <code>Sleep Sync</code>
* Set <code>In-Frame Palette Changes</code> to <code>Disabled Style 1</code> or <code>Disabled Style 2</code>
* Set <code>SRAM Auto-Save Delay</code> to 60 seconds or disable it
* Set <code>SRAM Auto-Save Delay</code> to 60 seconds or disable it
* Set <code>In-Frame Palette Changes</code> to <code>Disabled Style 1</code> or <code>Disabled Style 2</code>
* Disable 3D and/or on-screen display settings
* Disable 3D and/or on-screen display settings
* If available, try the PAL version of the game (50 FPS instead of 60 FPS)
* Super FX games often run poorly on old 2DS/3DS models
* Check the [http://wiki.gbatemp.net/wiki/Snes9x_for_3DS Compatibility List] with care, it may be outdated


'''Q. A game looks or sounds wrong. What can I try?'''
'''Q. A game looks or sounds wrong. What can I try?'''
Line 128: Line 123:
* Enabled cheats can break visuals or gameplay; disable cheats and reload the game
* Enabled cheats can break visuals or gameplay; disable cheats and reload the game
* Check if your ROM is valid (No-Intro is highly recommended; ROM hacks may have issues)
* Check if your ROM is valid (No-Intro is highly recommended; ROM hacks may have issues)
* Check the [http://wiki.gbatemp.net/wiki/Snes9x_for_3DS Compatibility List] with care, it may be outdated
* Check the [https://github.com/matbo87/snes9x_3ds/blob/master/KNOWN_ISSUES.md Known Issues]


'''Q. Cheats are not working properly'''
'''Q. Cheats are not working properly'''


* The cheat set is only roughly tested
* Cheat support is only lightly tested and some codes may not work correctly
* Some cheats may not work correctly and may damage save data
* Use cheats with caution: broken codes can affect gameplay or damage save data
* Always use cheats with caution


'''Q. Satellaview (BS-X) games'''
'''Q. Satellaview (BS-X) games'''


* Satellaview games are supported, but compatibility is hit-or-miss.
Satellaview games are supported, but compatibility is hit-or-miss. See [https://github.com/matbo87/snes9x_3ds/blob/master/KNOWN_ISSUES.md Known Issues] for details and per-game status.
* See the [[#Known issues|Known issues]] section for details and per-game status.
 
==Building from source==
* Install devkitPro and 3DS toolchain packages (including devkitARM, libctru, citro3d). If needed, follow the [https://devkitpro.org/wiki/devkitPro_pacman devkitPro pacman guide].
* The Makefile is based on TricksterGuy's [https://github.com/TricksterGuy/3ds-template 3ds-template].
 
Required command-line tools in PATH:
* For <code>3dsx</code> builds: <code>tex3ds</code>, <code>smdhtool</code>, <code>3dsxtool</code> (from the devkitPro 3DS toolchain).
* For <code>cia</code> builds: <code>makerom</code> in addition to the above.
 
Common build targets:
* <code>make 3dsx</code>
* <code>make citra</code>
* <code>make 3dslink</code> (sends the .3dsx to your Homebrew Launcher)
 
This repository bundles makerom binaries under [https://github.com/matbo87/snes9x_3ds/tree/master/makerom makerom/] for convenience. Bundled binary provenance is documented in [https://github.com/matbo87/snes9x_3ds/blob/master/makerom/BINARY_SOURCES.md BINARY_SOURCES.md].
 
=== Emulator status ===
* Citra (nightly &le; 2104): working
* Azahar: Mode7 1024x1024 texture renders as a solid yellow texture
 
==Development and Contributions==
New work usually lands on <code>develop</code> first. Merges to <code>master</code> create build artifacts via GitHub Actions. Tagged GitHub [https://github.com/matbo87/snes9x_3ds/releases releases] are the official stable releases.
 
Community PRs are welcome. For larger changes, a short issue first is appreciated. Please keep PRs focused and test on hardware where possible. AI-assisted code is fine, but contributors are responsible for understanding and validating the code they submit. Broad, risky, hard-to-review PRs may be closed or split into smaller changes. Prototype work may still be credited if it informs a later implementation.
 
'''AI note:''' The developer notes that AI assistants are used as part of the development workflow, including code review, debugging, planning, implementation and documentation, with all changes reviewed and adjusted by the developer before being merged.


==Controls==
==Controls==
Line 186: Line 153:
https://dlhb.gamebrew.org/3dshomebrews/snes9xfork3ds-03.png
https://dlhb.gamebrew.org/3dshomebrews/snes9xfork3ds-03.png
https://dlhb.gamebrew.org/3dshomebrews/snes9xfork3ds-04.png
https://dlhb.gamebrew.org/3dshomebrews/snes9xfork3ds-04.png
==Known issues==
* Minor sound emulation errors.
* Poor performance in some SFX1/2 games like Doom.
* Mosaics.
* In-frame palette changes - This is because this emulator uses the 3DS GPU for all graphic rendering. Without in-frame palette changes implemented, a small number of games experience colour issues.
==License==
Some files may carry their own license headers, but because this project includes the Snes9x core (source/Snes9x/), redistribution of the combined project follows the Snes9x non-commercial license terms.
See:
* [https://github.com/matbo87/snes9x_3ds/blob/master/LICENSE.md LICENSE.md]
* [https://github.com/matbo87/snes9x_3ds/blob/master/THIRD_PARTY_NOTICES.md THIRD_PARTY_NOTICES.md]


== Changelog ==
== Changelog ==
Line 513: Line 467:


== Credits ==
== Credits ==
* Snes9x team for the fantastic SNES emulator.
* The Snes9x team for the SNES emulator core, and the libretro Snes9x core maintainers for ongoing reference work
* StapleButter / DiscostewSM for their work on BlargSNES. Many ideas for optimisations came from them.
* bubble2k, original author of [https://github.com/bubble2k16/snes9x_3ds snes9x_3ds], for creating the excellent base this fork builds on
* Author of SF2D library. Some codes for hardware acceleration evolved from here.
* Wyatt-James for his [https://github.com/Wyatt-James/snes9x_3ds snes9x_3ds fork]; this fork adapts a few safety, audio and stability fixes from his work
* Authors of the Citra 3DS Emulator team. Without them, this project would have been extremely difficult.
* ramzinouri's [https://github.com/ramzinouri/snes9x_3ds snes9x_3ds fork] inspired the image border/background and theme support
* Maki-chan for helping with the libctru 1.2.0 conversion.
* willjow's [https://github.com/willjow/snes9x_3ds snes9x_3ds fork] revived the project after development had gone quiet
* Fellow forummers on GBATemp for the bug reports and suggestions for improvements.
* The Citra/Azahar teams for making 3DS emulator testing and debugging practical
* Everyone reporting issues, testing games and suggesting improvements


== External links ==
== External links ==
* GitHub - https://github.com/Xeddius-Network/snes9x_3ds
* GitHub - https://github.com/Xeddius-Network/snes9x_3ds
* Github - https://github.com/matbo87/snes9x_3ds
* GitHub - https://github.com/matbo87/snes9x_3ds
* Universal-Team - https://db.universal-team.net/3ds/snes9x-updated-fork
* Universal-DB - https://db.universal-team.net/3ds/snes9x-updated-fork

Latest revision as of 03:30, 10 July 2026

Snes9x Fork
General
Authorbubble2k16, willjow, matbo87, Xeddius-Network
TypeConsole
Version1.61
LicenseLICENSE
Last Updated2026/06/28
Links
Download
Website
Source

This project is a fork of the legacy snes9x_3ds codebase by bubble2k and continues that work with a modernized architecture and improved user experience. It builds with current devkitARM, libctru and citro3d releases (as of June 2026). Optional assets are available in the dedicated asset repository: snes9x_3ds-assets.

It works on all 2DS and 3DS models. Old 2DS/3DS mainly struggle with Super FX and SA-1 games, but most SNES titles run well.


Features

  • Improved rendering for HDMA-heavy games and mosaic effects.
  • SNES refresh rate matching (60.1 Hz for NTSC, 50 Hz for PAL).
  • NDSP audio output.
  • Rich visual customization with thumbnails, themes, per-game backgrounds and overlays.
  • Crop and overscan.
  • Improved cheat management.
  • Extended hotkey options and screen swap support.
  • Directory caching for faster ROM list loading.

Installation

Instructions:

3DSX version:

  • Copy snes9x_3ds.3dsx to sd:/3ds/snes9x_3ds
  • Start it from the Homebrew Launcher

Supported ROM formats:

  • .smc
  • .sfc
  • .fig
  • .bs
  • .bsx

Configs, saves and imported assets are stored in sd:/3ds/snes9x_3ds.

User guide

Assets (images and cheats)

Assets are provided in dedicated asset repository: matbo87/snes9x_3ds-assets

Notes:

  • The repository follows a 1G1R-style selection.
  • Naming is strict No-Intro style for matching.

Folder structure:

3ds/
  └── snes9x_3ds/
      ├── backgrounds/
      │   ├── game_screen/
      │   │   ├── _default.png
      │   │   ├── Super Mario World.png
      │   │   └── ...
      │   └── second_screen/
      │       ├── _default.png
      │       ├── Super Mario World.png
      │       └── ...
      ├── cheats/
      │   └── Super Mario World.chx
      │   └── ...
      ├── overlays/
      │   ├── _default.png
      │   ├── Super Mario World.png
      │   └── ...
      └── thumbnails/
          ├── boxart.cache
          ├── gameplay.cache
          └── title.cache

.CHX Cheat file format

The .CHX is a cheat file format that you can create with any text editor. Each line in the file corresponds to one cheat, and is of the following format:

 [Y/N],[CheatCode],[Name]
  • [Y/N] represents whether the cheat is enabled. Whenever you enable/disable it in the emulator, the .CHX cheat file will be modified to save your changes.
  • [CheatCode] must be a Game Genie or a Pro Action Replay code.
    • A Game Genie code looks like this: F38B-6DA4.
    • A Pro-Action Replay code looks like this: 7E00DC04.
  • [Name] is a short name that represents this cheat. Since this will appear in the emulator, keep it short (< 30 characters).

The .CHX must have the same name as your ROM. This is an example of a .CHX file:

Filename: Gradius III (U) [I].CHX

Y,F38B-6DA4,Start with 31 lives
Y,7E00DC04,Constant Megacrush (enemies die)

You can only have either .CHT or .CHX in your ROM folder for the same ROM. If you have both, only the .CHX file will be effective.

FAQ

Q. A game runs slow. How can I improve performance?

  • Increase Frameskips (more than 2 isn't recommended)
  • Set Frame Sync Method to Sleep Sync
  • Set In-Frame Palette Changes to Disabled Style 1 or Disabled Style 2
  • Set SRAM Auto-Save Delay to 60 seconds or disable it
  • Disable 3D and/or on-screen display settings

Q. A game looks or sounds wrong. What can I try?

  • Set In-Frame Palette Changes to Enabled
  • Increase Audio Buffer Size if audio crackles, skips or stutters
  • Enabled cheats can break visuals or gameplay; disable cheats and reload the game
  • Check if your ROM is valid (No-Intro is highly recommended; ROM hacks may have issues)
  • Check the Known Issues

Q. Cheats are not working properly

  • Cheat support is only lightly tested and some codes may not work correctly
  • Use cheats with caution: broken codes can affect gameplay or damage save data

Q. Satellaview (BS-X) games

Satellaview games are supported, but compatibility is hit-or-miss. See Known Issues for details and per-game status.

Controls

Touchscreen - Menu

Up/Down - Choose option

A - Confirm

X+D-Pad Up/Down - Page Up/Page Down)

Left/Right - Change between ROM selection and emulator options

You can quit the emulator to your homebrew launcher/your CFW's home screen.

Screenshots

snes9xfork3ds-01.png snes9xfork3ds-02.png

snes9xfork3ds-03.png snes9xfork3ds-04.png

Changelog

v1.61

  • Features
    • Added 3D depth strength setting and refined splash/background depth effects (#65)
      • Custom game-screen backgrounds are now ideally 448x256 instead of 400x240; 400x240 images can expose edges at higher 3D depth settings.
      • Updated 448x256 game-screen backgrounds are available in the snes9x_3ds-assets v1.1.0 release.
    • Added save-state screenshot previews
    • Added per-game crop/overscan control (#55)
    • Added scanlines
    • Added Mode 7 bilinear smoothing (thanks to f4mrfaux) (#68)
    • Added Frame Sync setting with VBlank/Sleep pacing options
      • Sleep Sync can make games run smoother when they stutter or won't hold full speed, e.g. DKC2 on Old 3DS.
  • Rendering & Compatibility
    • Improved HDMA/in-frame palette compatibility for games with mid-frame palette changes (#73)
      • Helps games such as Top Gear and Super Turrican.
    • Added mosaic rendering support (thanks to f4mrfaux) (#70)
    • Fixed stale core data after switching ROMs
    • Fixed several game-specific rendering/timing issues
      • Includes fixes for Sim City intro, Jurassic Park transparency and Super Bases Loaded 2 crash.
    • Optimized Mode 7 tile 0 blit (thanks to f4mrfaux) (#67)
  • Audio
    • Migrated audio output from CSND to NDSP and improved audio scheduling/stability (thanks to f4mrfaux) (#58, 7ff81cc)
    • Added audio buffer size setting
      • Lower values reduce latency; higher values reduce the chance of crackling.
  • Documentation
    • Added KNOWN_ISSUES.md with compatibility notes for problematic games, Satellaview (BS-X) titles and common visual/audio issues.

v1.60.2

  • Bug Fixes
    • Fixed in-game freeze after toggling "Disable 3D" in menu (#54) (5251996)
    • Fixed SNES core regressions introduced by earlier cleanup commits (14af419, fb200ab)
  • Other Improvements
    • Reintroduced fast-forward hold hotkey and preserved legacy config compatibility (#23) (ce600fc)
    • Minor UI adjustments (e097bb6, 5b6188a)

v1.60.1

  • Bug Fixes
    • Fixed VRAM read control flow regression (#46) (c32c5ab)
    • Fixed WindowLR overlap tagging when trimming black scanlines (#46) (d536983)
  • Reintroduced Features
    • Reintroduced optional screen smoothing for stretched modes (#51) (432d202)
    • Reintroduced per-game framerate override (Auto or Force 60 FPS) (#50) (b4f45e8)
  • Maintenance
    • Documented bundled makerom sources for provenance (#47) (4cae630)
    • CI/tooling updates for GitHub Actions compatibility (475042a, 7e1a91a)

v1.60

  • Major Changes
    • Rendering backend migration: move from legacy GPU code to citro3d
    • Draw-call batching overhaul: fewer draw calls via batched rendering and XOR-based packed render-state diffing
    • GPU decoupling: separate gfxhw state preparation from the GPU submission path for a cleaner rendering pipeline
  • Performance
    • Rendering throughput:
      • layer/section collection and merged backdrop/color-math passes to reduce redundant draws
      • uniform upload and render-state update optimizations (including patched citro3d max-dirty behavior)
    • I/O and memory:
      • faster save/config writes and improved file I/O architecture
      • reduced heap fragmentation pressure
      • menu/file navigation streamlined, with snappier behavior on old 2DS/3DS models
      • improved ROM list caching
    • Asset handling:
      • background assets on 16-bit texture formats (RGB565) to reduce memory bandwidth/footprint
      • replace stb_image with a libpng-based path that uses a shared file scratch buffer (g_fileBuffer) and an aligned shared stream buffer (g_streamBuffer) to reduce heap churn/fragmentation
  • Features
    • Thumbnail system:
      • replace fragile thumbnail background-thread loading with on-demand reads from one cache file per thumbnail type
      • removes shared-state race issues and keeps thumbnail loading fast and stable for large ROM folders
    • SNES-accurate refresh-rate matching:
      • when gameplay starts/resumes, 3DS LCD timing is set to the game's native SNES rate (NTSC ~60.1 Hz / PAL 50 Hz)
    • On-Screen Display:
      • bezel overlay with auto-fit support
      • FPS overlay option
      • GPU-accelerated notifications
    • Stereoscopic 3D additions:
      • basic 3D support for splash screen, in-game scene background, and pause overlay
  • Stability & Code Quality
    • Code-quality cleanup: broad typing, const/sign correctness, return-path, warning cleanup across both 3DS frontend and SNES core
    • Build warning policy upgrade: remove old global warning suppression (-w) and move to enabled warnings enforcing -Werror by default
  • Breaking Changes
    • Config migration: settings.cfg may not migrate cleanly in all cases; defaults can be applied
    • Thumbnail assets: legacy per-image thumbnail folders are obsolete; thumbnails now load from *.cache files (boxart.cache, gameplay.cache, title.cache)
    • Background asset paths:
      • snes9x_3ds/borders -> snes9x_3ds/backgrounds/game_screen
      • snes9x_3ds/covers -> snes9x_3ds/backgrounds/second_screen

v1.52

  • Improved thread safety to prevent crashes from concurrent ROM list access.
  • Enhanced shutdown stability by fixing resource cleanup issues.
  • Added display options.

v1.51.1

  • Bug Fixes:
    • Old 3DS, Old 2DS: fix crash on O3DS/O2DS when user opens menu after game has loaded (#11) (71ed471)

v1.51

  • Features:
    • Theme option: add Dark mode and RetroArch theme (#4) (d343ca6).
    • File menu: adjust navigation pattern + provide more options in file menu tab (#4 d343ca6, ea2cd3f)
      • Going up a directory by pressing B.
      • Option to set a default starting folder.
      • Delete game option.
      • Random game option.
    • Pause screen: show a decent pause screen when menu is open during gameplay (4c9f3ec)
  • Bug Fixes:
    • O2DS: fix crash on O2DS (and probably O3DS as well) when saving SRAM (#2 (02788b1)
  • Code Refactoring:
    • Menu: reduce redundant code + preserve selected item index per tab (493c1a2, 4d6378a)
    • Dialogs: remove unnecessary animations for a snappier appearance (2bb82c6)
    • Second screen content: clean up + prevent flickering when info dialog appears/disappears (c1899df)

v1.50

  • Features:
    • Game preview option: boxart, title or gameplay.
    • Improved cheat menu: now with available/activated indicator.
    • Updated Banner: based on SNES VC banner.
    • Menu clean up:
      • Reset config(s) option.
      • Autosave is now game-specific.
      • Show saving dialog instead of freezed menu.
  • Bug Fixes:
    • Cheats: Fix cheats not loaded/saved properly.
    • Default button mappings: Fix missing default controls.
    • Home menu button: make emulator quit properly when user exits via home menu button.
    • Pixel perfect mode: Fix blurry image (mentioned here).
    • Long game lists: Fix app crash on exit.
  • Code Refactoring:
    • Makefile & app.rsf: use TricksterGuy's 3ds-template, update compiler options.
    • Image loading/rendering: use stb_image instead of lodepng for faster image decoding, unify image rendering logic.
    • Second screen content: improve performance.
  • Breaking changes:
    • Folder structure: All game related files are now in "3ds/snes9x_3ds", similar to RetroArch folder structure.

v1.45

  • Buffered file writer for faster config saves (thanks to willjow).

v1.42

  • Fixed screen tearing.
  • Added option to disable 3D Slider (thanks to ramzinouri).

v1.41

  • Fixed hotkey for making screenshot.
  • Fixed quick save/load (no data abort exceptions anymore).
  • Fixed Errors if cover image is missing.
  • Updated assets (icon, banner, border, cover).

v1.40

  • Added Swap Game Screen option.
  • Added switch controller option like in official Virtual Console (SF2 "Training Mode", Konami cheat, ...).
  • Custom second screen image and border for every game (thanks to ramzinouri and Asdolo).
  • Game Info option for second screen.
  • Provide more Hotkeys (Quick Save/Load, Swap Controllers).
  • Disable Analog to Digital Type option which allows you to use circle pad for hotkeys as well.
  • All game related files like cheats or save states are now in a single folder (folder name = rom name).
  • Screenshots are now in PNG format (thanks to ramzinouri).
  • Removed BlargSNES DSP Core, updated dsp-1, added dsp-2 -3 and -4 (thanks to ramzinouri).

bubble2k versions

v1.30

  • Improved sound synchronization.
  • Added BlargSNES DSP Core (experimental) for performance. The original Snes9X DSP core (default) suffers from sound skipping in some games like Aladdin and Gradius 3. You can choose which DSP core to use from the Options menu. The BlargSNES DSP Core sounds similar to the Snes9x Core for most games. Sounds like Final Fantasy 3's the howling wind sound different.
  • Added support for Tengai Makyou Zero English Patch (for hopefully all future versions).

v1.21

  • Fixed the ZL/ZR button problem when installing the CIA version.

v1.20

  • Fixed slider problem in New 3DS (where one of the eyes always sees a black screen).
  • Added button mappings and rapid fire settings like VirtuaNES / TemperPCE 3DS (thanks to AdmiralCurtiss).
  • Added button configuration to open emulator menu and fast-forward (thanks to AdmiralCurtiss). Use with care, though. In some games, fast-forwarding can freeze/corrupt your game.
  • Added a frame rate option to v-sync with the 60Hz 3DS refresh rate (thanks AdmiralCurtiss).
  • Added an option to auto-save state when exiting and loading when starting a new game. (thanks AdmiralCurtiss).
  • Added an option to force saving of SRAM, required by Yoshi's Island. (thanks AdmiralCurtiss).
  • Show 3DS battery level in the bottom right of the menu (thanks ramzinouri).
  • Increased scrolling speed in menu when holding down the D-pad.
  • Added memory mapper support for Tengai Makyou Zero English Patch (version 1.0 released 22 Oct 2017).
  • Supports most original BS Zelda (1-4, Map 2 1-4, Ancient Stone Tablets 1-4), except for the Remix version which still boots into black screen (thanks ramzinouri).
  • And other text changes (thanks FateForWindows).

v1.11

  • Fixed crashing bug when loading CHX cheat files.

v1.10

  • Implemented SA-1 sleep speed-hacks on the following games. These games run faster and some are able to run at 60 fps on the Old 3DS when things on-screen aren't too busy. Super Mario RPG; Kirby’s Dreamland; Jikkyou Oshaberi Parodius; Kirby Super Star; Marvelous; Super Robot Taisen; Panic Bomber World; Dragon Ball Hyper Dimension; SD Gundam Next; Power Rangers Zeo; Daisenryaku Expert 2; Masters New Augusta 3; Bass Fishing; J96 Dream Stadium; Shining Scorpion; Pebble Beach New; PGA European Tour; SD F1 Grand Prix;
  • Fixed mode 7’s CLIP_10_BIT_SIGNED formula to use the original Snes9x’s formula. This fixes Super Chase HQ’s mode 7 intro.
  • Imported SPC7110 decompressor chip code from Snes9x 1.52. Now Tengai Makyou Zero (Far East of Eden Zero) can boot after 2 restarts, and in-game graphics appears without problems.
  • Fixed important bug in cheat engine so that it doesn't not increment the 65816 processor's clock cycles when enabling/disabling cheats.
  • Fixed the problem of the menu not using the correct font when the emulator first boots up.
  • Added one more mode when using the 3D slider for a sharper image.
  • Major refactoring of code.
  • Fixed SA1 MMC's memory map code by copying it from Snes9x 1.54.2. Now Super Mario World hack VLDC 9 boots.
  • Fixed Mode 0 rendering bug. The original bug was there since day 1 and with this fix, Lagoon's title screen looks right.

v1.00

  • Transplanted the full SPC700 + DSP source codes from Snes9x v1.51 into this emulator. As a result, the sound emulation now supports Gaussian Interpolation, and has better accuracy. This fixes some sound problems in Clay Fighter and Mortal Kombat I and II.
  • Fixed Mode 7 priorities in games that use this: Contra III's stage 1 (at the loss of some color fidelity). Implementing this required the use of some crazy math hacks and hardware tricks to pull this off.
  • Implemented some experimental speed hacks for Super Mario RPG and Kirby's Dreamland. Runs slightly faster (still not full speed) on Old 3DS.
  • Implemented hi-res translucency. We get non-flickering emulation of hi-res screens (Secret of Mana, Seiken Densetsu 3, A.S.P. Air Strike Patrol) now as a bonus. As a result, Kirby's Dreamland is now playable.
  • Invented a new cheat file format .CHX (text file) so that players can add cheats by using any text editor.
  • Centralized the SNES output screen vertically on the top screen.
  • Overhauled the user interface to give a more modern look as well as provide additional fonts.
  • Added more screen stretch options as requested by many users.
  • Added 3D slider support. Pushing up the 3D slider doesn't create any 3D effect, but may create a better viewing experience.
  • Removed unnecessary debug messages during start up / shut down of the emulator.
  • Fixed a bug when the SRAM still saves randomly when it is set to Disabled.
  • Reduced memory footprint for storing texture position caches.
  • Made this version buildable with libctru v1.2.0 (thanks to Maki-chan) [Note: Building with devkitARM r46 and libctru v1.2.0 will cause a bug where the emulator cannot utilize the full clock speed of the New 3DS.]

v0.80

  • Fixed NMI interrupt for specific games such as Cu-On-Pa. This allows Cu-On-Pa to get past the selection screen.
  • Fixed ROM size calculation for Wonder Project J (English Patch). The game no longer hangs at the menu.
  • Implemented optimized rendering for offset-per-tile modes. This gives many games a major performance boost. Games such as Strike Gunner STG, Tetris Attack, Kirby's Avalanche, Contra's Stage 1 Boss, Super Mario All-Stars' Super Mario 2 all benefit from this improvement.
  • Implemented optimized rendering for sprites for modest performance boost.
  • Used SPC700 core from Snes9x v1.51.
  • Re-implemented an moderately optimized SA-1 core. Now games like Kirby Super Star, Super Mario RPG can boot. It will NOT run well on the old 3DS currently, but it will run smooth on a new 3DS with full clock speed.

v0.71

  • Fixed nasty bug that breaks loading of the second ROM, if the first ROM was loaded from a directory path that has spaces in it.
  • Added feature to allow users to page up/down the options in the menu while holding down X.
  • Minor optimizations.

v0.70

  • Fixed sprites priority issues. This fixes sprites problems of Shadowrun, Chrono Trigger, Super Mario All Stars' (and possibly other games too).
  • The newly implemented rendering engine also provides some modest speed improvements in some games.
  • Added feature to save the directory of the previously loaded ROM.

v0.63

  • Fixed bug in DMA when the source address comes from Save RAM. This fixes a number of Super Mario World Hacks so that text is readable on BG layer 3.
  • Fixed menu key lock issue to improve usability when exiting from menu back into the game.
  • Fixed DKC tile corruption issue. This probably also fixes most (if not all) tile corruption issues in other games, if you play a game for too long in a single sitting.
  • Fixed sound problems when auto-saving SRAM. Somehow the hardware or the library doesn't like us stopping and starting the CSND too often. Not too sure what the problem is.
  • Added an auto-save SRAM option to tell the emulator when to save SRAM (1 second, 10 seconds, 60 seconds, or disable auto-save). Note that regardless of the setting, the emulator will always save any modified SRAM every time you touch the bottom screen to activate the menu.

v0.62

  • Improved Mode 7 zoomed-in textures. Games like Seiken Densetsu, ActRaiser 1/2 look better when viewing the Mode 7 textures near to the ground. Thanks for Discostew for the motivation.
  • Improved sound handling to ensure that the left speaker plays at the same volume as the right speaker.
  • Added option to change in-frame palette handling. There are three options to choose from:
    • Enabled. (Slow, accurate, but never as accurate as software)
    • Disabled Style 1 (faster, less accurate)
    • Disabled Style 2 (faster, less accurate) works a little differently from Style 1 Most games are by default Disabled Style 2.
    • Bahamut Lagoon and Front Mission Gun Hazard are by default Disabled Style 1. Wild Guns, Judge Dredd, Batman Forever are by default Enabled.
  • Fixed Clock Tower to boot properly again.
  • Fixed Star Fox flickering problem when there are frameskips.
  • Fixed outside-of-track texture problem with Super Mario Kart’s Bowser Castle stages.
  • Fixed Final Fantasy V Intro logo cutout problem.
  • Fixed Donkey Kong Country's tile colour corruption bug.

v0.61

  • Fixed DSP bug that causes some games like Dragon Ball - Super Budoten 3, Umihara Kawase to mute.
  • Fixed bug that doesn't stop sound from playing when saving to SRAM.

v0.6

  • Default sound amplification to 2x …
  • Reduced GPU freezing problem after loading new ROMs / resetting too many times.
  • Resynchronise sound when you go into the menu (you can reset the sync this way after waking your 3DS from sleep mode).
  • Improved sound sample rate to 32 KHz, and added echo and interpolation. The result is overall better sound quality.
  • Improved sync between SPC700 emulation and the DSP.
  • Fixed Contra III Mode 7 EXTBG colors again.
  • Enabled the SPC700 Envelope Height reading.
  • Fixed Chrono Trigger music not resuming after any battle music or “sealed by mysterious force” music.

v0.51

  • Implemented pseudo hi-res mode 5 using alternate frame flickering to achieve the pseudo hi-res mode. Games that use this mode include: Secret of Mana, Seiken Densetsu 3, Air Strike Patrol, and a number of others.

v0.5

  • Implemented major graphic rendering optimizations for color handling, transparency and window effects. Although codes from BlargSNES was not used directly, ideas came from BlargSNES. Some games that use windowing effects should see some / significant performance increase. F-Zero (US / EUR versions) run full speed. Super Mario Kart (EUR) runs full speed. Axelay (US) runs at a playable speed. Breath of Fire 2 battle transition effects are smooth. Super Mario World circular window fade-in/out effects are smooth. etc.
  • Fixed sprite flickering problems in Yoshi's Island and DKC2.
  • Fixed 256-color background problems. DKC1/2 and Earthworm Jim 2 intro shows up correctly.
  • Fixed Mode 7 BG2 problems. Now Super Star Wars - Empire Strikes Back (snowspeeder stage) works correctly.

v0.42

  • Minor optimisation to GPU drawing.
  • Increased maximum number of cheats to 200.
  • Fix the crashing problem if there are too many cheats in the .CHT file.
  • Fixed the too many sprites on screen problem (fixes Shadowrun freezing).

v0.41

  • Fixed some transparency issues with Saturday Night Slam Master and Ghost Chaser Densei.
  • Updated SRAM saving timing.
  • Minor optimisation for SuperFX emulation.
  • First implementation of speed hacks (experimental for F-Zero, Axelay, Super Mario Kart, Yoshi’s Island)
  • Modified some debugging stuff.
  • Fixed some mode 7 glitches when a mode 7 game (like Super Mario Kart has been running for more than a few minutes).
  • Implemented palette flickering hack for Front Mission Gun Hazard, Bahamut Lagoon.
  • Implemented hack for Power Rangers Fighting Edition to prevent graphical glitches
  • Implemented hack for delayed SRAM (per 1 minute) saving for Star Ocean
  • Fixed the problem of loading up too many different ROMs once after another, causing the loading to finally fail.
  • When loading a game without settings, reset the frame rate setting to be based on the game's region.

v0.4

  • Experimental cheat feature. Requires you to have the .CHT file (May corrupt your save game, use at your own risk).
  • Added settings to enable turbo buttons (per game).
  • Added settings to allow user to amplify volume (per game) (beware of sound clipping that results in terrible sounds).
  • Palette hack for Secret of Mana to ensure that the dialog borders are blue (the bottom status window still behaves oddly due to palette changes).
  • Transparency fixes: o Legend of Zelda's prologue's dark room o Reported dark tints on several games like Doremi Fantasy, Bomberman, Secret of Mana, Chrono Trigger o Gradient shading on dialog boxes for Chrono Trigger and Final Fantasy III (battles) appear correct.
  • Fixed window clip problems.
  • Fixed mode 7 glitches causing mode 7 bugs in Secret of Mana, NHL 94, Magical Quest 3.
  • Fixed a number of sprite clipping problems o Megaman 7's Dr Wily's spaceship in the intro now pans in from the left correctly o Tales of Phantasia's trainee's sprites (after the intro) now clips correct.
  • Fixed color inconsistency causing some white sprites to be visible on a white background (eg. in NHL's EA Sports intro screen).
  • Added speed hack for games that use the WAI instruction (esp Donkey Kong Country 1, 2, 3 should see a good speed increase).
  • Added hack to avoid hiding sprites even if they exceed the maximum number the real hardware can display. Apparently, this fixes the missing cursor in Final Fantasy III.
  • And other bugs.

v0.35

  • Fixed Super Mario Kart grass area texture outside of the track. This fix should work for all cases.
  • Some minor performance and UI adjustments.

v0.34

  • Mode 7 minor performance improvements and update to draw Super Mario Kart's grass outside of the racing track. (some it works only under some conditions).
  • Taking of screenshot now only captures the upper screen.
  • Option of forcing frame rate to 50 FPS / 60 FPS / or based on the selected ROM's region.
  • Additional screen scaling option to 320x240.
  • Fixed the crashing problem when selecting options without any ROM running.
  • Fixed DKC1 piracy problem. The wrong mask logic was used when writing to SRAM.
  • Improved the logic to save SRAM to SD card about 1-2 seconds after your game was saved in the emulator.

Credits

  • The Snes9x team for the SNES emulator core, and the libretro Snes9x core maintainers for ongoing reference work
  • bubble2k, original author of snes9x_3ds, for creating the excellent base this fork builds on
  • Wyatt-James for his snes9x_3ds fork; this fork adapts a few safety, audio and stability fixes from his work
  • ramzinouri's snes9x_3ds fork inspired the image border/background and theme support
  • willjow's snes9x_3ds fork revived the project after development had gone quiet
  • The Citra/Azahar teams for making 3DS emulator testing and debugging practical
  • Everyone reporting issues, testing games and suggesting improvements

External links

Advertising: