Page 1 of 1

Snes9x RX - A new fork

Posted: Tue Dec 25, 2018 8:30 am
by niuus
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 (a.k.a. dborth), Zopenko, and more recently, Bladeoner, for maintaining the great GX emulator series.

Merry christmas to y'all!



Some of the highlights are:

* You can now play Super Mario World Central 9th Annual VLDC #9.
* -1 frame input lag difference.
* Kouryuu no Mimi english translation is playable.
* Tengai Makyou Zero - Far East of Eden english translation is playable.
* MSU-1 chip support.
* Revisited and updated spanish/italian translation.
* Gamecube & Wii build available.


Newest/Latest release at:
Readme available at: ... README.txt


Re: Snes9x RX - A new fork

Posted: Tue Dec 25, 2018 8:40 am
by niuus

[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:
None yet.

Games with known issues:
* Chou Aniki - Bakuretsu Rantou Hen (J)
Hangs at black screen after the 1st or 2nd round.
* Kick Off 3 - European Challenge (E)
Some garbage on the upper part of the screen of the soccer field.
* Lobo (U) [Prototype]
Not working.
* Robocop vs. The Terminator (U)
Black strobe effect on gameplay.

Re: Snes9x RX - A new fork

Posted: Tue Dec 25, 2018 12:46 pm
by emu_kidid
Nice to see, how does it fare on memory usage on the GameCube? I'd made a fork which added ARAM usage via the TLB, you might already have these changes if you're syncing with master and if they've been added (havent had a chance to look at the source yet)

Re: Snes9x RX - A new fork

Posted: Wed Dec 26, 2018 1:04 am
by niuus
emu_kidid wrote:
Tue Dec 25, 2018 12:46 pm
Nice to see, how does it fare on memory usage on the GameCube? I'd made a fork which added ARAM usage via the TLB, you might already have these changes if you're syncing with master and if they've been added (havent had a chance to look at the source yet)
Hi emu_kidid. Yeah! I saw your changes regarding the VM, i tried to implement them in fact, but didn't had much luck. I find them really useful specially for helping with the memory leaks i've read are present on the GCN version, but from what i tried, my build just ran games like a slideshow so i can't use them, i'm not sure if i missed something or if it's related to devKitPPC, since i am still using r26.

If you can take a look when you have the time, it would be pretty cool. Merry x-mas!

Re: Snes9x RX - A new fork

Posted: Wed Dec 26, 2018 5:28 am
by emu_kidid
That's odd, the builds I've posted on the forum here ran perfectly for GameCube. I used something more recent than r26 though

Re: Snes9x RX - A new fork

Posted: Tue Jan 08, 2019 5:21 am
by niuus
emu_kidid wrote:
Wed Dec 26, 2018 5:28 am
That's odd, the builds I've posted on the forum here ran perfectly for GameCube. I used something more recent than r26 though
Fixed. Instead of $(LTO) i used -LTO
Also, removed LTO = -flto

Re: Snes9x RX - A new fork

Posted: Sat Jul 27, 2019 10:49 pm
by emu_kidid
More releases!

v3.9.0 - 20190726
* 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]

v3.8.0 - 20190724
* Cleanup screenshot memory management [Tantric]
** This fixes the preview image not displaying on Gamecube.
* Tenshi No Uta (Japan) compatibility hack.

Re: Snes9x RX - A new fork

Posted: Mon Jul 29, 2019 5:22 am
by liquitt
even more!

v4.0.0 - 20190728
* 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]

Re: Snes9x RX - A new fork

Posted: Thu Aug 15, 2019 1:43 pm
by niuus
Later releases:

[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 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.)"