1. niuus

    OP niuus GBAtemp Maniac

    Mar 4, 2016
    Hi people. Almost exactly 2 years ago, i began this fun coding exercise as a little effort to backport interesting and useful changes present in other releases of Snes9x, mainly the ones related to libretro and the official Snes9x. I am no expert, but thought i could learn a little bit, and in the process make some personal updates to keep enjoying my favorite console on my favorite homebrew system. 240p FTW!

    Seeing that the GX emulators got some new updates in 2017-2018 and that there's still public interest in the Wii scene, i believe this is a good time to finally release it, since i couldn't do it last year (RL stuff).

    This fork will stay on Snes9x core version 1.52, and be focused primarily in maintaining full speed for all games, or as far as the Wii can push performance. Commits will still be cherry picked from the libretro/snes9x/snes9x gx as long as they do not degrade performance.

    Any help, feedback, or comments, will be always welcome.

    And last, but no least, thanks to Tantric, Zopenko, and more recently, Bladeoner, for maintaining the great GX emulator series.

    Merry christmas to y'all!


    More skins/styles available:
    SNES Classic Mini (USA)

    Midnight Purple

    Aqua Blue

    SNES Classic Mini (EUR)


    Some of the highlights are:

    • Minus 1 frame input lag difference.
    • SuperFX and SA1 chip games play closer to full speed and have less framedrops.
    • Quick boot straight into Satellaview games, no need for BIOS.
    • Top Gear 3000 is playable without graphical glitches.
    • Tengai Makyou Zero - Far East of Eden english translation is fully playable.
    • MSU-1 enhancement chip support.
    • Revisited and updated translations.
    • Raphnet adapter and HORI Digital Controller for GameCube users can now exit to the emulator Menu with Start+B+A+Select (Z button) combo.
    • NES Mini and SNES Mini classic controllers are fully supported.
    • Xbox 360 Controller (wired) support! Swap between controller ports 1-4 on multiplayer games with the Xbox Guide button!
    • Experimental Dualshock 3 Controller (wired) support.
    • Retrode 2 USB adapter support!
    • Wii Classic Controller, Wii Classic Controller Pro support.
    • Wii U Pro Controller support, for both Wii and Wii U.
    • Wii U Gamepad controller support through VC injects.
    • Screenshot/Cover/Artwork display.
      Swap between them with the +/Z button!
    • Wiiflow plugin mode.
    Check the README for more details.


    Newest/Latest release at:
    Readme available at:
    A Channel Forwarder is attached to this post (made by RunningSnakes).


    Attached Files:

    Last edited by niuus, Jul 20, 2020
  2. niuus

    OP niuus GBAtemp Maniac

    Mar 4, 2016
    [4.8.0 - March 10, 2020]
    * Language updates for Spanish, French, Portuguese.
    * .bs file extension support.
    * Classify region id 18 as PAL. [Tantric]
    * Set default calibration values, fix controllers that return invalid data.
    * Quick fixes for Rendering Ranger R2 and Targa (50/60Hz).

    Experimental support for Mad Catz SE FightStick for Xbox 360! Tested and working, separate binary available.
    Experimental support for Logitech F510 Controller (Xinput mode). Untested, separate binary available.

    [4.7.0 - February 02, 2020]
    * Kirby Super Star GCN performance fix.
    30+ FPS boost for this game, should make it enjoyable again on the Cube.

    * Add Show Local Time option. [bladeoner/Tantric]
    * Optimize USB controllers handling. [revvv]
    Only open device if VID+PID match.

    * ios version up [revvv]
    * GCN build fixes (thanks emukidid!)
    * Revamped README.

    * Create missing folders.
    In case one or more of the "\snes9xgx" folders are absent, they will be
    created on the second run of the emulator, after a settingsRX.xml has been
    generated by pressing Exit on first run.

    * Experimental DualShock 3 (wired) support.
    Based on libsickaxis 1.0 by Xerpi. As of now, it controls the 2-4 players
    at the same time. Could and should be upgraded in the future to polish up
    this implementation, any help on this task will be welcome.

    [4.6.0 - December 24, 2019]
    * Minor cosmetic tweaks.
    * Retrode 2 code cleanup.
    * Xbox 360 Controller code cleanup.
    * LED fix for different X360 Controller revision.
    * Fix GCN build.

    Now available in various skins/colors, choose the one you like the most:
    * Cosmo Black (Default)
    * SNS Mini Edition (USA)
    * SNS Mini Edition (EUR)
    * Midnight Purple
    * Aqua Blue

    [4.5.0 - November 22, 2019]
    * Xbox 360 wired controller support! (thanks revvv!)
    Before loading Snes9x RX, connect your Xbox 360 wired controller. When
    you're at the main screen (Choose a game), click on the emulator logo at the
    corner of the screen and read the status info at the bottom, just to make
    sure it was properly detected. In some cases you won't need to do this,
    it will just work. Remember, the controller only works when in-game.
    You can swap your player/port number by simply pressing on the
    Xbox Guide button. Enjoy!
    Right stick is configured as YXBA (essentially duplicating your buttons),
    specially useful for Smash TV fans like me =D
    * Xbox 360 wired controller code improvements. [revvv]

    [4.4.0 - November 07, 2019]
    * Fixed Funaki Masakatsu Hybrid Wrestler – Tougi Denshou graphical glitch.
    * Retrode 2 support tweaks.

    [4.3.0 - August 14, 2019]

    * Fixed "PowerFest 94 - Super Mario Kart" black screen.
    * Fixed Kat's Run - Zen-Nihon K-Car Senshuken graphic bg corruption during
    demo. Phalanx random black screen is fixed too.
    * Fixed Clayfighter blue clown face when selecting a player.
    * Fixed Stunt Race FX graphical glitch on the course selection screen.
    * Fixed Light Fantasy SRAM saving issues.
    * Fix out-of-bounds memory access. [bearoso]
    * Working buttons for all SNES peripherals.
    Mouse, SuperScope and the Konami's Justifier trigger/buttons never worked in
    any other controllers except the GCN pad and Wiimote. Now you can use the
    Wii Classic Controller, Wii U Pro Controller and Wii U Gamepad to
    fully emulate the peripherals.

    Now with experimental wired-DualShock 3 support (thanks to libsickaxis by xerpi!): connect your DS3 to your Wii's USB port prior to opening the emulator. When in the Snes9x RX's "Choose Game" screen, press Minus and Plus on your Wiimote/Wii U Pro Controller (DS3 led # 1 should lit) after that press the PS button. You should now be able to use it when in-game. Led might turn off but it's okey. Use the special labeled build.


    • May crash sometimes when changing games, or when syncing the DS3 if you're in-game, your mileage may vary.
    • DS3 input mirrors to all controllers at the same time.
    • No menues navigation yet.

    [4.2.0 - August 07, 2019]
    * Avoid USB call if there's no Retrode. [revvv]
    * Fix M.A.C.S. Basic Rifle Marksmanship. [ghost - OV2]
    The flickering was because game thinks joypad2 is constantly firing on/off.
    * Cleanup time.
    * Spanish language translation update.
    * JoJo no Kimyō na Bōken and Kick Off graphical glitches fixed. [bearoso]
    * Fixed Speedy Gonzales - Los Gatos Bandidos game freeze. [bearoso]
    * Fixed Doom graphical garbage. [twinaphex]

    [4.1.0 - August 01, 2019]
    * Backport+adjust the refactored APU Resampler. [bladeoner]
    * Adjust default input rate.
    * Retrode 2 USB adapter support (thank revvv!)
    The Retrode 2 cartridge reader offers USB mass storage access for your SNES
    cartridges, besides 4 ports for original controllers, more specifically:
    two SuperNES and two Genesis gamepads. 2-4 players are supported!
    Some notes from revvv:
    "- If the Retrode does not react, you just have to restart Snes9x GX.
    I never had to restart HBC or the Wii. This happens with my fork, too.
    But not very often.
    - Doom is a good testcase: My first build had a huge lag, but only with
    this game. After polling the Retrode only for player 1, the lag disappeared.
    (Doom is a single player game, so it's strange that they poll player 2.)"

    [4.0.0 - July 28, 2019]
    * Add Wii U GamePad support. [Fix94 - Tantric]
    * Allow "Original" render mode to be selectable when using the Wii Options
    TV Resolution setting for "EDTV or HDTV (480p)" over component cables:
    - This caters specifically to LCD / LED users with 240p supported displays,
    since the option was previously hidden. Users with CRT / PVM / BVM displays
    with supported 480p Progressive Scan mode will also benefit, since no Wii
    setting change will be needed for the "Original" 240p mode to be used.
    * Restore MSU1 playback position correctly. [bearoso]
    * Restore MSU1_AUDIO_POS. [bearoso]

    [3.9.0 - July 26, 2019]
    * Korean language update, minor cleanup. [DDinghoya]
    * GFX.DoInterlace-- should occur even if we don't render frame. [bearoso]
    * Move interlace flags to S9xSoftResetPPU. [bearoso]
    * Fix PPU blending with unoptimized change. [bearoso]
    * Use a lookup table. A little faster. [bearoso]
    * Fix color add for non-GFX_MULTI_FORMAT. [bearoso]
    * Make blending work with RGB555. [bearoso]
    * Proper 16-bit color conversion. [bearoso]
    * Use for loops for DRAW_TILE. 3-4% speed benefit. [bearoso]

    [3.8.0 - July 24, 2019]
    * Cleanup screenshot memory management [Tantric]
    This fixes the preview image not displaying on Gamecube.
    * Tenshi No Uta (Japan) compatibility hack.

    [3.7.0 - March 19, 2019]
    * Fix issue with on-screen keyboard. [Tantric]
    * Fix crash on launch when using network shares. [Tantric]
    * Various settings fixes.
    * Updated spanish language translation.

    [3.6.0 - February 21, 2019]
    * Remove wiiupc since libogc wiiuse supports WiiU Pro controller. [Tantric]
    * Re-add explicit Wii U Pro controller mappings. [Tantric]
    * Fix joystick calculations and controllers with no analog sticks. [Tantric]
    * Simplify logic for controller analog sticks. [Tantric]
    * Fix crash for Wiiflow plugin mode. (thanks, fledge68!)

    [3.5.0 - February 02, 2019]
    * Add Interpolation option and add Gamemenu Audio. [bladeoner]
    This adds the following:
    - A new "Audio" menu inside "Game". Now you can choose between:
    Gaussian Interpolation (Accurate), Linear, or None.
    * Restore GUI sounds and BG music.
    * Add ability to externally load fonts and activate Japanese/Korean. [Tantric]
    Put the jp.ttf and ko.ttf inside the Apps > Snes9xRX folder.
    You can download them from the Snes9X RX GitHub "hbc" folder.
    * Add support to load external background music. [Tantric]
    Put your bg_music.ogg inside the Apps > Snes9xRX folder.

    [3.4.0 - February 01, 2019]
    * Quick and dirty attempt to prevent reading and writing
    from/to the same audio buffer. [Tantric]
    * Avoid using file stat when possible. It's slow. [Tantric]
    * Fixed black screen: Tengai Makyou Zero. [bladeoner]

    [3.3.0 - January 28, 2019]
    * Remove two asserts in SPC.
    * Rewritten audio code. WIP. [Tantric]
    * Add logic to update the playback rate dynamically. [Tantric]

    [3.2.0 - January 26, 2019]
    * We only use the HermiteResampler. [Tantric]
    * SwitchAudioMode update.
    * Update hermite resampler to support dynamic rate control.
    Fixes audio blips. Remove some asserts in APU. [Tantric]

    [3.1.0 - January 24, 2019]
    * Kirby Super Star intro fix. (thanks, bladeoner!)
    * Reorder init to init snes9x memory earlier so it goes into MEM1. [Tantric]
    * Mute sound when in turbo mode, otherwise the APU buffer can get messed up. [Tantric]
    * Fix sound crackling. [Tantric]
    * Change audio playback to 48khz. this should fix the tinny sound problem. [Tantric]
    * Try to improve audio sync & reduce sound input rate slightly. [Tantric]
    * Disable sound sync (if enabled) when using turbo mode.
    Fixes sound cutting off when using turbo. [Tantric]
    * Also break out of S9xMainLoop in original location. [bearoso]
    * Invoke Menu with Start+A+B+Z, special for NES-SNES to GCN adapters.

    [3.0.0 - January 08, 2019]
    * Gamecube Virtual Memory implementation. [emukidid]
    - Adds ARAM usage via the TLB.
    * Add toggle to enable/disable virtual memory info.
    * Miscellaneous fixes.

    [2.9.0 - January 07, 2019]
    * Port option to not append "Auto" from vbagx. [libertyernie]
    * Correct the default aspect ratio if the Wii has 16:9 set up. [Tantric]

    [2.8.0 - January 06, 2019]
    * Credits crash fix and minor update.
    * Removed ImageFolder from GCSettings because it can always be retrieved
    from GCSettings.PreviewImage, added function to get its value. [cebolleto]
    * Changing image preview with plus button. [cebolleto]

    [2.7.0 - January 03, 2019]
    * Remove GUI Sounds and BG Music. A bit more resources available now. [bladeoner]
    * Change settings.xml to settingsRX.xml [bladeoner]
    * Remove rumble in GUI function. [bladeoner]
    * Rollback scanline filter fix. Makes it crash when loading a ROM on the GCN port.
    * Backport fix GC build with scanline filter. [Tantric/bladeoner]
    * Forgotten cleanup for remove rumble function. [bladeoner]

    [2.6.0 - December 29, 2018]
    * Settings saving fix. (thanks, Askot!)
    * New video filters / Fix for HQ2X-Scanlines change. [Tantric]
    * Minor menu optimizations. [Tantric]
    * Rollback graphic fix that broke StarFox graphics.

    [2.5.0 - December 24, 2018]
    * Remove some debugger code in cpuexec.
    * Fix Mario's Time Machine. [bearoso]
    * Fix tile selection in mosaic offset-per-tile mode. Fixes first Contra 3 boss. [bearoso]

    [2.4.0 - December 22, 2018]
    * Use a license stub everywhere [bladeoner]

    [2.3.0 - December 20, 2018]
    * Remove some debugger code.
    * Remove some movie code from logger.
    * Change where we break S9xMainLoopScan for input (Brunnis lag fix) [bearoso]
    * Don't break interlace syncopation on frame skip. [bearoso]
    * Add DMA timing hack for Koryu no Mimi translation by rpgone. [OV2]

    [2.2.0 - December 7, 2018]
    * Update ko.lang [DDinghoya]
    * Automatically create preview image dirs if they don't exist. [Tantric]
    * Remove update check completely. [Tantric]
    * Reorder init to init snes9x memory earlier so it goes into MEM1. [Tantric]
    * Disable multi pixel format support. [Tantric]
    * Code cleanup and fix include references. [bladeoner]
    * Change some defaults ("Artworks" to "Artwork"). [Tantric]
    * Prevent overrunning the file buffer, increase buffer size to load larger IPS/UPS files. [Tantric]

    [2.1.0 - November 26, 2018]
    * Add BPS soft-patching support. [qwertymodo]
    * MSU1 fixes backported. [bladeoner, qwertymodo]
    * Compile fixes for Linux. [bladeoner]
    * Allow loader (e.g. Homebrew Channel) to pass two arguments instead of three for autoload. [libertyernie]
    * Check argc. [libertyernie]

    [2.0.0 - October 21, 2017]
    * Compatible with the new english translation for "Tengai Makyou Zero - FeoE".

    [1.9.0 - October 10, 2017]
    * Remove things and tidy up.

    [1.8.0 - September 29, 2017]
    * Partially remove movie code (part 6).
    * Update mouse handling.
    * Partially remove NETPLAY code.

    [1.7.2 - September 27, 2017]
    * Partially remove movie code (part 5).

    [1.7.1 - September 26, 2017]
    * Partially remove movie code (part 4).

    [1.7.0 - September 25, 2017]
    * Partially remove movie code (part 3).

    [1.6.0 - September 05, 2017]
    * Partially remove movie code (part 2).
    * Fix MSU-1 file loading after saving/loading snapshots. [qwertymodo]
    * Sync MSU-1 code with upstream (sync 2). [qwertymodo]

    [1.5.0 - September 01, 2017]
    * Partially remove movie code (part 1).
    * New attempt to fix RAM mapping for Light Fantasy (matches Higan). [qwertymodo]

    [1.4.0 - August 31, 2017]
    * SuperFX fixes and improvements, some from snes9x2010. [jamsilva]

    [1.3.0 - August 30, 2017]
    * Added 20 MHz overclock option for the SuperFX chip.
    * Remove movie code. [twinaphex]
    * Sync MSU-1 code with upstream (sync 1). [qwertymodo]
    * Circuit USA timing hack. [bearoso]

    [1.2.0 - July 03, 2017]
    * Copied VLDC9 fix from snes9x_3ds. [jamsilva]
    * Support for more SA1 char conversion modes. [jamsilva]
    * Still cleaning things up... [jamsilva]

    [1.1.0 - January 14, 2017]
    * Remove unnecessary msu1 reset. [OV2]
    * Pack status registers before snapshotting so they're not lost. [GregorR]

    [1.0.0 - December 27, 2016]
    * New color scheme.
    * Changed references to bapu/dsp
    * Revisited and updated spanish translation.
    * Revisited and updated italian translation.
    * Removed unused files.
    * Fixed GC build.
    * Fast-Forward on the right stick is enabled again.
    * MSU-1 fixes from the qwertymodo branch.
    * The minimum file size for a ROM is now 30KB.
    * Fixed typos.
    Experimental builds:
    * Snes9xRX-4.3.0-NoTurboMode.zip

    Fast-Forward / Turbo Mode button is disabled.
    * Snes9xRX-4.8.0-LogitechF510Xinput.zip
    Support for the Logitech F510 in Xinput mode.

    Games with known issues:
    * A.S.P. Air Strike Patrol (U) / Desert Fighter (E) / Desert Fighter: Suna no Arashi Sakusen (J) (デザートファイター:砂の嵐作戦)
    Interlace draw bug in briefing screens, doesn't seem to affect when in gameplay.
    * Madden NFL 96 (U) [Affected on GX/RX]
    Not working.
    * Marko's Magic Football (E)
    Hangs Wii at black screen after the Akklaim logo.
    * Lobo (U) [Prototype] [Affected on GX/RX]
    Not working.
    * Robocop vs. Terminator (U)
    Black strobe effect on gameplay.

    Attached Files:

    Last edited by niuus, Mar 10, 2020
    rogerioronin, NoNAND and sindrik like this.
  3. Gamecuber

    Gamecuber Advanced Member

    Aug 29, 2012
    Merry X-Mas.
  4. rogerioronin

    rogerioronin Member

    Nov 19, 2013
    Thank you for such a beautiful job!
    METALIGALO likes this.
  5. MaeseJesus

    MaeseJesus GBAtemp Advanced Fan

    Apr 3, 2013
    This sounds great!

    One question, though: Does this share the same settings as the normal Snes9x GX? Would you be able to use both without problems?
  6. CMDreamer

    CMDreamer GBAtemp Advanced Fan

    Oct 29, 2014
    Just downloaded the file from Github. Telling by the file structure of it, I'd say it shares the same configuration of SNES9xGX, but haven't tested it yet, so don't quote me on that.

    On topic.
    Thanks for the updates and upgrades of this. I'm a huge fan of SNES games!
  7. niuus

    OP niuus GBAtemp Maniac

    Mar 4, 2016
    Yes! I did not changed that, so that it would be more convenient to share games and previews between both versions.

    Same for you!
    Last edited by niuus, Dec 26, 2018
    MaeseJesus likes this.
  8. rayabusa

    rayabusa Member

    Feb 22, 2018
    Thanks for this awesome job niuus!

    Ive been testing this emulator and it seems to be sharing the same configs with Snes9X GX(if you have both on your SD), even with Snes9X RX creating its proper settings.xml. The problem is that one emulator is disconfiguring the other, you have to configure all again when changing emulator. Is there a way to avoid this?
    rogerioronin likes this.
  9. The Real Jdbye

    The Real Jdbye Always Remember 30/07/08

    Mar 17, 2010
    I think the word you are looking for is backport. Rollback would be removing features already present.
    But nice work nonetheless :)
    Didn't think people were still interested in the Wii.
  10. niuus

    OP niuus GBAtemp Maniac

    Mar 4, 2016
    Hmm, i'm not sure why you are encountering that error, seeing that both emulators just saves its settings in their own folder, and since you can't have both boot.dol in one place for the Homebrew Channel to launch, i fail to see how this could happen. Any more details you can share?

    That's correct! Thanks for the term. Fixed :yayps3:

    And yeah, i really do love the Wii as a powerful and versatile retrogaming machine, specially since i use it on CRTs and a PVM.
    Deleted User likes this.
  11. cebolleto

    cebolleto GBAtemp Regular

    Mar 5, 2010
    Had the same problem here... I think there is a problem on how you are saving your settings file: Place the roms in a different folder than the default one, then load any rom and restart... The program complains about not being able to find the folder and all settings are lost
  12. Askot

    Askot Advanced Member

    Sep 13, 2015
    Nice update, it doesnt have input issue with classic controller like snes9xgx 4.3.9 has, a question: which libogc, devkitpro ppc version are you using? I think newest version had some issues, that' s why I am asking and this one is close to perfect
    Last edited by Askot, Dec 27, 2018
  13. Edu64

    Edu64 GBAtemp Regular

    Jan 25, 2015
    Cote d'Ivoire
    What is the problem with version 4.3.9 with the classic control?
    I've played quite that version and I have not noticed any problems.
  14. Askot

    Askot Advanced Member

    Sep 13, 2015
    If you are using Classic Controller Pro no issue, but if it's a Classic Controller original, left stick get stucked, even using a wii super famicom controller official from club nintendo has this issue and you cant move any direction in-game neither moving across emu options. Tested in latest emus fceugx 3.4.0, vbagx 2.3.7, snes9xgx 4.3.9 & 4.4.0 and usbloader gx rev 1268, have you updated and tested? This version was my last hope and it worked very well.
  15. rayabusa

    rayabusa Member

    Feb 22, 2018
    Yes, and there each on their own folder, with their own settings, but one is still using the settings from the other and when changing emulators the settings are resetted and you have to configure all again, it's weird.

    Exactly, this is what's happening to me, so this isn't a personal problem.
  16. Edu64

    Edu64 GBAtemp Regular

    Jan 25, 2015
    Cote d'Ivoire
    That explains why I have not had problems, I have occupied the classic pro controller and the controller of snes mini (the official).
    Question, does the nintendo club control have analog sticks?
    Last edited by Edu64, Dec 27, 2018
  17. Askot

    Askot Advanced Member

    Sep 13, 2015
    No analogs, it's just like super famicom -snes- controller
  18. Edu64

    Edu64 GBAtemp Regular

    Jan 25, 2015
    Cote d'Ivoire
    Strange that it does not work and the control of "snes classic mini" if it works, maybe that control came out before the pro controls and recognizes it as classic control of the first model.
  19. Askot

    Askot Advanced Member

    Sep 13, 2015
    Right but that's why I asked for used libraries, I think they were the culprit in this issue not in this fork.
  20. Edu64

    Edu64 GBAtemp Regular

    Jan 25, 2015
    Cote d'Ivoire
    Talking about libraries, maybe this is also affecting a game in specific "top gear 3000", even using retroarch in "snes classic mini" ,serious problems appear.
    It should be mentioned that this is the only game that occupies the dsp4 chip.
    In this version of the emulator does the game work ?, the last version that worked was 4.3.7
Draft saved Draft deleted

Hide similar threads Similar threads with keywords - Snes9x,