Another release containing a bunch of small things. There are a few game fixes and some UI tweaks, as well as some reorganization in the backend. The biggest front-facing feature is a Vulkan output for the Windows and Gtk ports. Like OpenGL, Vulkan can use the slang shaders in the libretro repository.
This is a small release for a bunch of little things that have accumulated. Big changes behind the hood are a change to the tile renderer so that it builds much quicker, and a swap of the Gtk port to C++ bindings, both of which should be unnoticeable. Michael Buckley also wrote a completely new macOS port, due to the complete deprecation of the classic APIs the old port used.
The Windows port now has an extra "Hacks" settings dialog that allows enabling some settings to allow older ROM hacks to work. The GTK port's hack settings are still hidden behind the -Ddangerous-hacks=true compile flag. The libretro port has had the remaining hack added. Use with caution and don't submit bug reports associated with enabling these hacks.
We have added support for libretro .slangp presets and .slang shaders. These can currently only be used with OpenGL on the Windows and GTK versions. A large set of shaders can be downloaded from:
-shaders
The DirectSound driver has been glitch-prone for a while, so it has removed and replaced with a WaveOut driver. WaveOut is the most basic Windows method for outputting sound, and has used the same output path as DirectSound since Windows Vista. There are only small differences between the two, but the main one is that WaveOut doesn't loop by default, which means we can use a push API and have Dynamic Rate Control. XAudio2 is still available and recommended if your system supports it.
.slang support requires SPIRV-Cross, which is a git submodule of Snes9x. git can retrieve this with:
git submodule update --init shaders/SPIRV-Cross
If a source archive is used, .slang support will be disabled unless you download the submodule. This can be done by extracting an archive from -Cross/release to that directory, or by creating a temporary git repository in the extracted Snes9x source by running git init and using the above command.
This is a small, but important, bugfix release. Movie support, which was broken in 1.56 has been fixed. The GTK+ port will be able to save config files again while using non-latin languages. Aside from that, there have been some cleanups and a bit of UI refinement. The only emulation change is an adjustment to a timing hack.
For those packaging the GTK+ port, note that building with GTK+ 3 is now highly recommended over GTK+ 2 and should have no regressions. Also note that Wayland compatibility is implemented, which, if enabled, also requires GTK+ to have been compiled with Wayland support. The configuration file format for this port has changed to a simple .ini-style that can be edited by hand and is saved as snes9x.conf, keeping with the other ports' convention, in the user's config directory. This will cause any changes to settings made with previous versions to be reset to default. Frame-skipping options have also been simplified to remove never-used "fixed" rate settings and to simplify interaction with dynamic rate control and sound sync.
Usb2Snes is a firmware for the Sd2snes cartridge written by Redguyy that allows to use the USB port on the Sd2Snes to access various fonctionnality of the Sd2Snes. Most notable are uploading ROM, read and write various memories of the console.
The issue with this approche, when writing application that use this techology only one application can have access to the Sd2snes. So for example you cannot run an Item tracker for alttp randomizer at the same time than the fileviewer to upload a new ROM.
QUsb2Snes is a replacement for the middle part of the previous diagram. Since now the applicationdoes not access directly the Sd2Snes through the Usb connection. Nothing prevent this intermediate part to trick the applications to make them access something else, like a Snes Emulator or a SNES Classic
Snes9x-rr allows to run Lua scripts in the emulator, that allows use to connect to QUsb2snes. You can use the Multitroid version of Snes9x-rr ( ) or use Snes9x-rr 1.60 -rr/releases. Older version of Snes9x-rr does not allow to write to ROM from Lua so some application will not work.
You will need to change the Lua support on the emulator. Go into the Config -> Customize menu then goes into the Advanced tab and select Lua+LuaInterface at the bottom in the Lua core part. Restart the emulator.In the Lua directory of BizHawk create a lua_bridge directory (or a similar name) then copy the content of the BizHawk directory from QUsb2Snes (the lua file and the dll file).Run your game and then in the Tools menu start the Lua console click on the folder icon to load the multibridge.lua file. You need to close the Lua console if you want to disconnect properly.
Snex9x core : For software needing to the patch the ROM (multitroid for example) you etheir need to patch the rom manually with the IPS file or put the IPS file along side the rom with the same name for retroarch to auto patch it.
c01484d022