Snes9x.COM: News

 

Windows and i386 Linux Snes9x Ports Released v1.33
The highlights include C4 emulation, an important speed hack bug fix and improved colour subtraction code.

The C4 emulation in Snes9x, to make Megaman X2/X3 playable, was only possible due to the many days/weeks of work that zsKnight spent reverse engineering these games and coding up an emulation; thank you zsKnight! Snes9x actually includes ZSNES's asm C4 emulation code; for this reason, C4 emulation is only available on Intel/AMD ports of Snes9x at the moment, until I reverse engineer zsKnight's i386 into C code. There will be no source code release until this work is completed.

Here's the full list of what's new in this release:
- Noticed another problem with the CPU_SHUTDOWN code - Chrono Trigger locked
up during the intro but only when using the asm code CPU core. Found the
algorithm difference between the code and made the CPU match what the C
version was doing. Still not sure why it caused a problem in the first place.
- Changed colour subtraction code to use Lindsey Dubb's newer version he sent
me some time ago but I 'forgot' to include. I say forgot, but I really put
off including it because, although it improves most games that use the
effect, it does result in one or two slight visual glitches.
- Hacked in zsKnight's C4 emulation asm code - now both Megaman X2 and X3 are
playable. Still got to complete the reverse engineering of the i386 asm code
to C so other, non-Intel ports can have C4 emulation.
- Shuffled the keyboard mapping a bit on the Linux port so now Tab key acts as
an emulation speed turbo button, `, # and ~ act as superscope turbo and
/ acts as the superscope pause button.
- Some old SA-1 shutdown code was causing the main SNES CPU to shutdown
randomly instead. Very noticeable in Mario RPG where the game was running
too slowly and music was getting out of sync with in-game action.
- Fixed asm CPU_SHUTDOWN code that I accidentally broke while trying to
optimise it! Thanks to all the people who noticed Snes9x's frame skipping
had changed between releases. Frames rates should be improved again for more
than 50% of games.
- Re-enabled in-lining of the C SNES memory access routines, improves frame
rate by one or two on slower machines.
- Optimised the asm 65c816 addressing mode emulation code a little.
- Included some code changes making life easier for the Mac porter, John Stiles.
- Added memory map support for Sufami Turbo using information supplied by
Nose0000. No idea if it works because I don't have the ROM.
- Spent a few minutes trying to figure out the Star Ocean memory map so at
least the sound effects could be heard. But gave up after 60 minutes or so
due to laziness. If anyone knows the memory map details, let me know please!

Have fun.

Gary, 3-11-2000 18:58:00

 

Linux PowerPC port
If you are using Linux on a PowerPC then your in luck. Within a day of the initial release it has been ported to Linux(PowerPC) by Casey.

Enjoy...

Jerremy, 8-10-2000 15:11:00

 

Updated Snes9x Windows Port Released
This release is exactly the same as the last 1.32 release but with fixed OpenGL support. Users of the original Windows 95 must download the Microsoft OpenGL upgrade from their web site before this release will work for them.

If you don't use the OpenGL mode and have already downloaded v1.32, don't bother downloading this version.

Gary, 7-10-2000 10:04:00

 

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:
- 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.
- 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!).

Gary, 6-10-2000 17:53:00

 

Snes9x v1.31 for Windows Released
This release is available as an installable .exe file or a as zip file for more advanced users who prefer more control over the installation process.

Unfortunately, you will need to reconfigure Snes9x after installing this new release because the diagonal key support I added makes some of the old registry settings incompatible.

Highlights of the new release include OpenGL support, Windows WAVE sound output support, DirectSound support improved and auto-detect for odd Super FX format ROMs.

Here's the full list:

- Snes9x DirectSound code modified - the mixing block size is now always 10ms
for Windows 95/98/2000 and 20ms for NT 4.x, now there should be no need to
enable Sync Sound when a large sound buffer is required (helps emulation
speed). The maximum sound buffer length values have been updated to reflect
the smaller mixing block size.
- Changed the DirectSound code back to use an offset from the play position
as the place to write new sample data into the sound buffer - on NT 4.x the
write position seems to vary randomly rather than being a fixed distance
in front of the play position as documented. Now I know why I used the play
position originally!
- Changed the DirectSound code to fill the sound buffer at the write position
supplied by DirectSound, rather than just before the current play position -
should help reduce latency.
- Added an auto-detect method for interleaved mode 2 Super FX ROM images -
well, not really auto-detect: if the game crashes and its a Super FX game,
Snes9x assumes its in interleaved mode 2, demangles the ROM image and tries
to run the game again.
- Had to update the Snes9x Windows registry version number as the additional
diagonal settings make old registry settings incompatible.
- Added diagonal keyboard controls to the Windows port, as requested by
several users.
- Changed PPU code to return zero when reading non-existent registers - the
game Equinox relies on this due to an original game coding bug.
- Included FMOD sound driver support to Windows port - people experiencing
broken sound or delayed sound, etc, might want to give it a try.
- Tales of Phantasia - un-interleaved format ROM memory map changes to match
odd ZSNES format, now the hacked ROM works.
- Changed NMI again. Made reading or writing to PPU register 0x4210
clear NMI pending flag again, without this Super Tennis does not work.
- Changed NMI timing back to be the same as several versions ago and just
special cased Cacoma Knight instead - although kept the code to prevent
the re-triggering of an NNI more than once in the same frame.

Gary, 23-8-2000 11:31:00

Go back in time

Snes9X.COM
Back

DisclaimerView our Privacy Policy
The Snes9X team is not connected or affiliated with any mentioned company in any way. The opinions of the Snes9X team do not reflect the views of the various companies mentioned here. Companies and all products pertaining to that company are trademarks of that company. Please contact that company for trademark and copyright information.

Copyright 1998,1999 Webmaster