Finally, a New Snes9x Release!
Sorry for the long wait; lots of reasons that I won't bore you with now.


Here's what is new in V1.32 :

  • Changed the Windows port to delay load the two OpenGL DLLs, so now they're only loaded if you switch to OpenGL mode. The original version of Windows 95 didn't include the OpenGL DDLs, so Snes9x wouldn't even start on that platform; now it should.
  • Added yet another sound buffer option to the Windows port - this time the block size of sound data to mix. Some DirectSound sound card drivers only report the play position moving in steps rather than continuous amounts and Snes9x's default mix block size turned out to be smaller than this step value on several cards. Snes9x couldn't work out out where the true play position was accurately enough resulting in broken, noisy sound output.
  • Added yet another sound buffer option to the Windows port - this time the block size of sound data to mix. Some DirectSound sound card drivers only report the play position moving in steps rather than continuous amounts and Snes9x's default mix block size turned out to be smaller than this step value on several cards. Snes9x couldn't work out out where the true play position was accurately enough resulting in broken, noisy sound output.
  • Modified the Windows frame timer code to use semaphores rather than events - they should make Snes9x more reliable at not missing frame sync pulses when Windows is busy doing background tasks.
  • Added SA-1 shutdown code - basically, Snes9x now stops emulating SA-1 CPU instructions when the SA-1 enters an idle loop waiting for the main SNES CPU to give it something to do. All SA-1 run much faster and smoother now.
  • Added multi-axis joystick/game controller support to the Windows port and tweaked the dead-zone threshold position a little.
  • It looks like the SNES PPU was designed to support 128K of V-RAM but only 64K was fitted; Snes9x wasn't wrapping all V-RAM address to stay within the 64K limit causing a corrupt title screen on ReX Ronan - there will be others.
  • Added amend functionality to the Windows Cheat Entry dialog and added extra text boxes for direct address and cheat value input rather than only being able to type in a Game Genie or Pro-Action Reply code.
  • BS Suttehakkun2 was crashing just before start of play - the ROM was performing a junk DMA that was corrupting RAM, crashing the game when it went searching for a particular value.
  • F-1 Grand Prix requires IRQ triggering when IRQ scan-line register set to current scan line, but Chuck Rock objects. Hmm. Chuck Rock seems to indicate the CPU emulation is running too fast, but I can't see where the mistake is. Special-cased Chuck Rock for now.
  • Optimised SNES DMA handling slightly - copying data to SNES V-RAM is now significantly faster.
  • Windows Cheat search dialog was ignoring data type parameter in various places which was causing problems when larger numbers were being searched for.
  • Forced unknown PPU register reads to always return 0 - a coding bug in Equinox shows that this is required. An earlier fix didn't work.
  • Puya Puya 2 & remix were objecting to an NMI being triggered when enabling NMIs after scan-line 226, but Ys 5 seems to require this. Hmm. Added a hack to support both games.

Still got to finish porting the netplay code to Linux/UNIX, but once I've done that I'll start work on C4 emulation (Megaman X2 & X3) using the information supplied by zsKnight (thanks!).