📄 changes.txt
字号:
Thanks to John Stiles for pointing out that the Mac port didn't have the missing music problem.- Fixed RGB subtraction bug on displays with only 5 bits for green, e.g. RGB555 displays. The GREEN_HI_BIT variable was always set to a value for 6 bit green displays.- Added the SA-1 memory map, still a long way to go before any SA-1 game will run.1.15- Jumped versions to keep in sync with the DOS port release.1.14- Improved 8-bit sound generation slightly, but it still sounds very poor compared to 16-bit sound.1.13- Implemented the Tales of Phantasia memory map using the information supplied by zsKnight. Had to also implement a de-interleave routine to work around a ROM feature and Snes9x CPU instruction fetching implementation detail.- Added a frames-per-second on-screen display option.- Fixed the final glitch bug with the Mario Kart track display - the byte code for the termination of the DSP1 raster command wasn't been recognised.- Disabled a NMI/DMA hack for Rise of the Robots, was causing problems for Mario Kart and 'Robots wasn't working correctly anyway.- Optimised the mode 7 rendering a little.- Changed tile rendering code to use offsets into screen buffer rather than direct pointers ready for z-buffer implementation.1.12- Changed V-blank NMI to occur immediately after a WAI instruction, Toy Story required this.- Fixed reading of H-DMA line counter register, Top Gear 3000 needed this.- Ripped off large parts of ZSNES's DSP1 code (with _Demo_'s and zsKnight's approval). Now Mario Kart works almost 100%.- Added a check to see if a vertical scan-line IRQ register change will cause a H-IRQ later on the current scan-line. Pilot Wings needed this.- Fixed possible crash bug in clip window code when both windows had two spans. Could actually cause Chrono Trigger to crash the emulator.- Fixed a lock-up problem with the C Super FX code, Star Fox and executing a few 'FX instructions per scan-line (required for Winter Gold).1.11- Partially fixed the DOS netplay server - the server timer is running too slowly and it doesn't deal with disconnects correctly yet.- Corrected the sound echo delay - it was varying with the sound playback rate chosen by the user - it shouldn't have been.- Implemented DOS netplay code - DOS server code still not working though.- Removed all floating point calculations from the sound generation code.- Fiddled with the pitch modulation code - my guess is the output of a channel that is used to modulate the frequency of another channel is automatically muted by the SPC700 chip. Just a guess, but the wind from FF3 sounds 'better' but far from perfect.- Optimised the tile palette index calculation.- Optimised the planar to chunky tile conversion code.- Fixed X11 port to always scale SNES image if hi-res. only (no interpolation) support is enabled.- Added zipped ROM image support using Gilles Vollant unzip code and some code that Ivar (Lestat) sent me a long time ago.- 65c816 asm RTI instruction was destroying the program bank in emulation mode, the C code was already correct. Caused C64E to break.1.10- Finished NetPlay v1 - allows up to five networked machines to play multi-player SNES games, one player on each machine.- Switchable full-screen mode added to Linux X11 port, some code and ideas nicked from Maciej Babinski's original Snes9x XFree86 DGA Linux port, the UAE Amiga emulator, plus lots of my own code.1.08- Bug fixes to C Super FX emulation - now Winter Gold works correctly again.1.07- More DSP1 work. Mario Kart is now playable! The character projection code is still broken so the opponents and obstacles aren't always positioned correctly on screen and you keep bumping into them, but I can still keep coming first!- Started work on NetPlay support.- Decreased sound card DMA buffer size on DOS port to improve sound generation and sound CPU synchronisation in some games.- Included Linux joystick driver patches from Vojtech Pavlik so the port can use the new v1.x joystick drivers, again written by Vojtech Pavlik. Allows use of Micro$oft Sidewinder pads, NES and SNES pads, PlayStation pads, Gamepad Pros, etc.- Added halve-the-result colour subtraction.1.06- Extended code to allow support for multiple 16-bit screen formats, switchable at run-time, rather just supporting one, selectable at compile time.- Added XFree86 DGA Linux port - code from Maciej Babinski.- More fixes to the X11 image format conversion and setup code.- The asm SetByte routine wasn't wrapping writes to S-RAM correctly, allowing some ROMs to think they were running on a copier and put up an error screen. Thanks to Nu of #rom for the report.- Added 'TV-Mode' support (interpolation and scan-lines) to the DOS and UNIX ports from code based on John Stiles work.- Added v-sync option to the DOS port.- Added fix to Pro Action Reply support, thanks to Paul Shoener III.- Added ggi support (untested) to Linux port using patches from Alexander Larsson (alla@lysator.liu.se).- Added 16 to 24/32 bit image conversion routines to the UNIX X11 code.- The SPC700 OR1 instruction was broken. Thanks to Pyrgopolinices for the report.- DOS port was having trouble splitting and joining path names - caused problems when specifying the full path name of a ROM when the ROM image was on another drive.- If a ROM reset the sound DSP and then turned on echo effects but kept the same echo delay setting, then the echo effects could not be heard. Thanks to madec@mclink.it for the bug report and freeze file that made it easy to find the problem.- DOS port was always using stereo sound setting, if sound card supported it, regardless of the user preference.- Linux port X11 port could crash if window was resized while transparency effects were enabled.- The colour subtraction accelerator look-up table was slightly wrong, causing one bit of red, green blue values to 'spill' into the next field.- Allowed colour window to cut a hole in the main-screen and show the sub- screen underneath. The effect is used by Illusion of Gaia.- Added support for colour subtraction, with the halve-the-result flag set.- Included DSP1 code from _Demo_. Now you can see the track in Mario Kart and the ground in Pilot Wings - still can't play the games though due to other missing commands.- Added an NMI hack to work around a code bug in Battle Toads: BATTLEMANIACS, its only by chance that the game works on a real SNES - And disabled it again because it causes problems for Chrono Trigger.- A frame skip of zero was actually still skipping one frame. Thanks to Marius Fodor for the info.- And yet more X-OR window bug fixes - now the effects during some of the more 'posh' spells look correct in Chrono Trigger.- Yet another window area inversion bug - off by one pixel on right-hand edge.- Forgot to put dummy start and end points for XOR window combination modes - now Uniracers looks correct and Sailor Moon looks like it does on a real SNES.- Window clip code was using wrong index into a 2-dimensional array when the whole of the main or sub-screens were clipped.1.05- The master volume disable code was looking that the wrong variable!- Fixed crash bug in newer sound code if a ROM tried to start a sample playing who's data went past the end of SPC700 memory. (Cannon Fodder)1.04- Fixed DSP1 ROM header detection bug.- More DSP1 work; still nothing works, although I know the multiply command is correct because I've compared the results against a real DSP1.1.03- Oops, the multi-player 5 disable code change broke the multi-player 5 being the default controller.- Implemented the colour window on the main screen - now Zelda's oval zoom window displays correctly and Krusty's Super Fun House clips the left-most 8 pixels as it does on the real SNES.- TERRANIGMA didn't like me returning a random value when it attempted to read a channel's the current sample byte.- Hacked in initial support for mode 7 priority-per-pixel - the priority bit doesn't actually change the priority of the pixel but the two games that I know of that use the feature look OK. (Winter Extreme Skiing and the intro of Tiny Toons Adventures).- Colour addition/subtraction code now uses RGB565 rather than RGB555 calculations - helps a little with the loss of the bottom bit of SNES colour data.- DSP1 emulation started - nothing works yet.1.02- Switched to adding back drop colour rather than fixed colour when sub-screen addition is enabled but there's nothing on the sub-screen. Uniracers seems to need it. - DISABLED it again. Causes problems for other ROMs and Uniracers itself on later screens.- Fixed XOR window logic combination mode and area inversion code, now Uniracers works correctly.- Oops, if colour window and half colour addition/subtraction were both switched on, area outside colour window was still being halved, it shouldn't. Hacky fix at the moment until I implement the correct fix.- Fixed several bugs with the mosaic effect and 16x16 tiles and a few possible background scroll offset bugs and the mosaic effect.- Optimised the sound sample generation code for cases when the SNES sample playback frequency was higher than the sound card playback rate.- Fixed possible click sound when a sample was first started to be played.1.01- Corrected scan-line count for PAL games - should be 312 lines verses 262 for NTSC. Was causing slow music on PAL games.- Added error correction code to the SPC700 timer update code - the SPC700 timers are updated using the emulated h-blank handler which is called every emulated 63.6 microseconds (15.720KHz) but the SPC700 timers need to be updated at multiples of 8KHz, hence the error. Was causing music to be played slightly too fast.- Switched back to using C SPC700 code - the old SPC700 asm code was lacking several optimisations that the C version had. It also had multiple speed hack cycle skipping bugs. Plus I hadn't even finished optimising all the code from the last time I converted the C compiler output.- Optimised SPC700 memory access routines a little.- Disabled code that prevented ROMs updating SPC700 timer values while the timer was running - it seems like it is allowed, even though docs on the 'net I've seen say its not.1.0- Fixed SuperScope support.- Added hi-res. option to my DOS port.- Fixed 4, 6, and 8 button standard PC joystick support.- Changed some types the source code was using BYTE -> uint8, WORD -> uint16, DWORD -> uint32 and BOOL -> bool8, types were clashing Windows typedefs but sizes didn't always match.0.99- 8-bit double height and/or width tile rendering was missing every other group of 4 pixels - screen pointer advance count was wrong.- Asm SPC700 emulation was ignoring the Shutdown flag - the result is its not possible to turn off cycle skipping for the SPC700 emulation.0.98- CPU to ROM address decoding code rewritten - used by Game Genie cheat codes, orginal code might have been the cause of some Game Genie codes not working.- Started to remove printf calls and replace them with calls to S9xMessage, port code can then dicide what to do with message.0.97- Re-enabled decompressed sample caching, still has a possible click problem but the sound code is a lot faster with it enabled. Added command line option to disable it if required.- Added '7' key support to rotate through available controller options, in the order multi-player5, mouse on #1, mouse on #2, superscope, standard controller and then back to multi-player5.- Hi-res. (512x448) support fixed.- Mouse support completed - Lemmings 2 and Mario Paint working a treat.- More colour window fixes.- Fixed freeze game problem when ZSNES SuperFX code is being used - ZSN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -