1.39 - Added SDD-1 unknown graphics data logging at the dumper's request. A bit late but might help with Street Fighter 2 Alpha's data dumping. Creates a romname.dat file in the freeze file folder. - Implemented 16-bit texture support for OpenGL modes in Windows and Linux. Had to support a new pixel format type to do it - RGB5551 (one bit of alpha) which caused me some major problems - black was no longer always pixel value zero! - Removed the Bump map OpenGL mode from the Windows port (didn't look so good anyway and was slow). - Added a hidden novelty OpenGL mode (clue: a keyboard shortcut activates it) - Reverted back to FMod version 3.20 after reports that version 3.33 broke AD3 support. - Implemented a better work-around for the broken select system call in the Linux kernel - the original work-around was long-winded and stopped working when I implemented OpenGL support under Linux. - Added the same speed-up hack to the OpenGL code that the Glide code already supported. Basically, if your OpenGL implementation supports 16-bit textures then OpenGL mode should be as fast, or faster than the 3dfx Glide mode. - Hopefully fixed Glide support. - Reverted back to the original colour blending code. The newer code, although more accurate in most cases, had too many glitches and was slower. - Included multiple Japanese games fixes from Iswashi San. - Fixed a timing problem caused by a speed up hack that was affecting Top Gear 300. No the game still isn't playable yet, but I noticed the problem while investigating the DSP-4 chip used by the game. 1.38 - Added support for Star Ocean and Street Fighter 2 Alpha decompressed graphics packs from dejap. Used a binary chop search rather than a linear search to locate correct decompressed graphics more quickly - should help emulation speed during later stages of the game. - Included OpenGL support into the Linux port and speeded up the Windows OpenGL implementation slightly. The real speed up would occur if I could figure out how/if 16-bit textures are supported in OpenGL because at the moment the 16-bit software rendered SNES image must be converted to 24-bit before being uploaded as a texture... - Included the latest ZSNES DSP-1 code. Now Pilotwings, SD Racer and Suzuka 8 Hours are playable. Aim For The Ace, Super Air Diver 1 & 2 and Syutoko Battle 94 are also playable, but with bugs. Thanks to zsKnight, _demo_, et al for all their hard work. - Another Daffy Duck: Marvin Missions screen flicker problem worked around - writing to the IRQ enable register shouldn't clear any pending IRQs, but Sieken 3 seems to require this or else the game hangs. Special-cased Daffy Duck for now. - An NMI emulation bug was triggering a Panic Bomberman World game bug, crashing it. Basically, if a game enables NMIs after the normal trigger point, the NMI should not trigger if the game has already read the NMI clear register. - Panic Bomberman World requires SPC700 memory to be initialised to zero on reset otherwise the game hangs when a tune finishes and another one should start. - Added mouse pointer auto-hide to the Windows port. Much better than the turn the mouse pointer into a black dot method I was using before. - Included the latest ZSNES Super FX code. Not sure if it fixes actually fixes any games. - Added an offset hack for Strike Gunner to get the scrolling ground layer to line up correctly - another offset-per-tile bug hacked around for now. - Arrr! Left in some debugging code in the last release that prevented all games that need the slower SPC700 timing from working. Removed it. - Hmm. The broken cut-scenes in Deep Space 9 seem to indicate that I haven't got the emulated clock speed of the 65c816 CPU correct yet. And not by a little bit - a 9% too slow error. Hacked special timing for the game for now. - Added triple-buffering to Windows port - enabling double-buffering actually enables triple-buffering if you have enough free video RAM, defaulting to double-buffering if you don't. - Fixed another crash bug in the interpolated mode 7 code - if no scaling was being used (either up or down) and screen repeat was enabled and the screen was flipped horizontally, the routine would crash Snes9x. Was causing Snes9x to crash during rock monster boss stage of Castlevania 4. - Oops. Got the initialisation of the default SNES screen width and height round the wrong way - could cause a X Windows System error message on the UNIX port after loading a ZSNES freeze file. - Included the unofficial Windows port emulation fixes for several games including Kentouou World championship and TKO Super Championship. - Included Iwashi San's improved Anti Res. sound sample decoding routine and updated the C version to match. - Included Anti Res. improved sample decompression code he sent me ages ago, but for some reason I didn't include. Sorry. This version seems good enough to leave enabled all the time. 1.37 - Added fix for Captain America's corrupt graphics - a ROM bug causes it to read from what I thought should be an unmapped memory area, but it expects the value returned to be zero. - Added code to support games that switch to the hi-res. SNES screen mode part way down the screen while using the 3dfx bi-linear filter mode. The code basically has to back out of the speed up hack it was using when the game switches resolutions. - Fixed support for games that have mixed lo-res. (256x224), medium res. (512x224) and hi-res. (512x448) all on the same screen - corrects the display of Majin Tensei 2. - Added support for games that use sub-screen addition to the back-drop layer while displaying hi-res. graphics - something I thought the SNES couldn't do but the game Marvelous uses this. - Reworked the UNIX/Linux output image handling code: the image doesn't always have to be scaled when hi-res. support is enabled, the PutImage operation only updates the area of the screen it has to, the SNES image is now always centred in the window/full-screen area and if the SNES image changes size between frames, the old screen areas are now correctly cleared. - Fixed the corrupt graphics problem during the battle scene of Last Bible 3 - it requires that previously unknown DMA mode 5 should just act the same as DMA mode 1. - Fixed a nasty bug when H-IRQs were being reused on the same scanline - a logic bug could cause H-DMA processing for that line to be skipped. Was causing the bridge and the start banners to be the wrong colours in Top Gear 2. - Added Kreed's display processing modes to the Linux port, including his new asm version of the Super2xSaI mode and the new software bi-linear filtering mode. - Think I might have figured out the odd Mode 7 glitch problems the games Illusion and Gaia and Chase HQ were having. My original fix was to mod the centre X & Y values with 1024, but looks like the true fix is to mod X + horizontal offset and Y + vertical offset with 1024 when screen wrapping is enabled. - Disabled H-DMA'ing into V-RAM via registers 2118/2119. The game Hook deliberately does this causing graphic corruption while dialog boxes are displayed. Maybe the real SNES disallowed this and it was left in the game by mistake? Not sure what effect the game was trying to produce because disabling the emulation of this feature doesn't seem to affect the game at all, other than stopping the corruption. + Also fixes graphics junk problem on first screen of Bugs Bunny. - Added a 'region-free' timing hack for Power Rangers Fight - without it the NTSC version was displaying badly glitching graphics; I'd already fixed the PAL version. - Added true priority-per-pixel mode 7 support (the previous support was just a hack to get the colours correct) - level 2 of Contra 3 used this feature. - The Japanese, German, French and Spanish version of Illusion of Gaia needs the slow SPC700 timing. - Deleted the Breath of Fire 2 S-RAM hack for the hacker intro version - according to reports it was causing problems for the non-hacked version. - Legend, the PAL version, never sets the sound master volume control - Snes9x was defaulting this to off, I guess the real SNES must default it to full volume; changed Snes9x. The NTSC version of Legend does set the master volume level, but sets it to off just after the title screen. Hmm. The -nmv command-line switch allows you to hear sound in this version. - Panic Bomber World was tripping an SA-1 emulation bug - the WAI instruction emulation code was setting the 'waiting for interrupt' flag on the wrong CPU causing the main SNES to skip an instruction when the next interrupt occurred. - Panic Bomber World, Bomberman 4 and UFO Kamen Yakisoban all need the slower SPC700 timing. - Oops! The Super Formation Soccer 95 fix was causing Aero 2 to lock up. This means I have no no idea what value the DMA in progress register should represent. I've hacked it and made it toggle between 0 and $ff on each read which gets both games working, for now... - The ROM de-interleaving code always assumed the blocks were rearranged based on a power of two, but Francois found a copy of Soldiers of Fortune where this was not the case. Corrected the code. 1.36 - Finally worked out why the menu items weren't being highlighted in several ROMs, including Battletoads, U.N. Squadron and All Japan Pro Wrestling. Two problems: its seems the SNES does halve the colour value result when blending colours when only the fixed colour addition/subtraction is enabled, but doesn't halve the result when sub-screen is being blended and its a clear part of the sub-screen. The second problem was that I had an optimisation that prevented the time consuming colour blending c...
john.vanhay