⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changes.txt

📁 著名SFC模拟器Snes9x的源代码。
💻 TXT
📖 第 1 页 / 共 5 页
字号:
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 code from being called if  the colour being added/subtracted was black - adding zero to a number doesn't  affect the result, but not performing the side-effect of halving the result  does affect the final value...- Super Formation Soccer 95 requires that the DMA enabled register doesn't  always return zero, otherwise the game locks up.- Thanks to several people reporting a screen flickering problem in the  pseudo 3-d section of Jurassic Park 2 I've fixed a nasty problem in H-IRQ  handling code which could cause double-triggers or skip IRQs altogether.  With this fix I can now remove the special hacks for Ninja Warriors Again,  Chuck Rock and F-1 Grand Prix.	- More games needing the slow SPC700 timing:  Zennihon Puroresu 2, Soulblazer and Robotrek.- The CPU idle time skipping code was skipping cycles during a software delay  loop in Itchy and Scratchy, causing screen flicker.- Looks like reading the value of register $2137 shouldn't clear a pending  IRQ - was causing screen flicker on Yoshi's Island.- Actraiser 1 & 2 both need the slow SPC700 timing.- Terranigma reads a sound channel's current sample output value and waits for  it to be zero before preceeding. I forgot to always return zero when a  channel was silent. This mistake was causing the game to lock up.   + Itchy and Scratchy and was causing the music to stop and samples to be cut     short in the Mario Early Years series.- Added a hack for Secret of the Evermore - at several points in the game, just  as the plane is about to land, it reads from unknown registers $4000 and  $4001 and, if it doesn't get the value its looking for, the game hangs or  displays corrupt graphics.- Silva Saga 2 was accidentally triggering a colour blending hack I put in  place Kirby Dreamland 3 and Kirby Superstar.- The ZSNES freeze-file loading code could leave a file open if the file wasn't  a valid ZSNES freeze file.- Super Punch-out requires certain DMA registers to be updated after the DMA  completes. Snes9x used to do that, but I must have accidentally left the code  commented out whilst investigating a different problem in another game.1.35- Added a recently played game list to the Windows port File menu so you can  quickly load up your favourite games.- Included IPS patching support based on code from Neill Corlett - just rename  the patch file to match your ROM image name but with a .ips extension and  copy it into your ROM or freeze-file folder.- Added John Weidman's and Darkforce's S-RTC, (Real Time Clock) emulation code.  The only game that seems to use it is Dai Kaijyu Monogatari II.- Included code from Nose000 for games with 128Kbytes of S-RAM. Now  Sound Novel-Tcool, Thoroughbred Breeder 3, RPG-Tcool 2 and Dezaemon are  supported.- The Windows port now has an option to make the 'turbo speed' button a toggle  button.- The optimised fixed colour addition/subtraction code was ignoring the colour  window. Thanks to John Weidman for pointing this out.- Added mode 7 and hi-res. hack for Dezaemon from Nose000 - the mode 7 hack  looks interesting (to me); I wonder if some other games would benefit?- Both Tales of Phantasia and Star Ocean need custom sound CPU timing. Hmm.  That's 4 ROMs now, there will be more... That means I still haven't  discovered all the major SNES timing quirks. :-(- Windows port now has an option to save the S-RAM data at any time.- Windows port saving SPC dumps now auto-increments the filename.- Added work-around for a Super Robot Wars Ex ROM bug - the game was checking  the wrong PPU register for end of h-blank. The game must have only worked by  chance rather than by design on a real SNES.1.34- Corrected the colour addition/subtraction and halve the result code not to  halve the result when only the fixed colour is used, i.e. the sub-screen is  clear. Discovered and fixed this awhile ago, but I accidentally reintroduced  the bug when adding some optimisations a few versions back.- Finally cleared the last of the offset per tile background mode bugs. There  was something odd about the tile at the left-hand edge of the screen that I  couldn't figure out - well now I have. Yoshi's Island level 6 boss screen,  Mario RPG mine cart screen and Jim Power title screen now all display  correctly.- Made reading blank areas of the SNES memory map return the middle byte of  the address - fixes Home Alone which tries to execute code in an empty part  of its memory map but only works because the real SNES seems to return the  middle byte of the address - $60 in this case, which corresponds to the  ReTurn from Subroutine instruction.- Added auto-cycle skipping disable for Earth Worm Jim 2 and several other  games that spool sample data using H-DMA as the sample is being played.  Improves some sound effects in these games.- Fixed joy-pad routines to only report up or left if down or right are also  pressed respectively. Works around a game bug in Empire Strikes Back in the  asteroid stage where the game crashes if both left and right are pressed -  something impossible to do on the original SNES game-pad.- Added custom SPC700 timing for Rendering Ranger R2 - the game now works with  full sound. No idea why it needs custom SPC700 timing.- The ROM type detection was broken for Treasure Hunter G and Test Drive 2 -  fixed the code so type 2 ROMs can be LoROM.- Adjusted the main CPU cycles per scan-line from 341 to 342 to give an exact  match for the timing required for Earth Worm Jim 2. All EWJ2 needs now  for perfect sound emulation is a method of synchronising the emulation  speed to the host hardware's sound card playback rate, oh, and a fast CPU!  The Linux port already has this but seems to be broken because games  play at double-speed when this option is enabled.- Some SPC700 code in Earth Worm Jim 2 seemed to prove that I had guessed the  clock speed of the SPC700 sound CPU incorrectly - out by almost a factor of  two, in fact. Changed the relative emulated clock speed of SPC700. Now  Chrono Trigger doesn't lock up at certain points anymore, the special SPC700  timing for games written by the Human Software company isn't required and  you can hear some more of the sound samples in Earth Worm Jim 2, etc.- H-IRQ triggering code was broken - if a ROM turned on H-IRQ but later turned  it off, Snes9x could continued to generate H-IRQs, crashing some games.- Added a generic test for Human Entertainment games - they need special  sound CPU timing to work. Gets Taekwon-Do working.- Disabled offset-per-tile mode for Theme Park; the world map screen is corrupt  with it enabled.- Yet more changes to the offset-per-tile backgrounds modes 2 and 4. Added  64 tile wide screen support for Mario RPG's mine cart ride and fixed multiple  bugs with the handling of horizontal offset-per-tile used in Chrono Trigger's  fade in of the space ship.- New feature: Snes9x can now load ZSNES freeze state files! Just copy them  into the freeze file folder and Snes9x will load them when you load a freeze  file, but only if the corresponding native format Snes9x freeze file doesn't  exist.- Added memory map hack for Batman - Revenge of the Joker: its ROM header block  is in the wrong location and Snes9x incorrectly detected its ROM type.- Fixed an off-by-one-pixel clip window 2 bug when the window was set to clip  outside the window area; clip window 1 was already correct. Removed the bright  line bug at the left edge when the combat screen is appearing in Starfox and  the clip problem when text boxes zoom-out in Yoshi's Island.- Jim Power's title screen seems to prove that the per-tile offset data on  mode 2 isn't ignored for the left most tile as I originally thought.  Modified the code.- The recent timing changes highlighted another problem with Daffy Duck -  changed IRQ enable register to only clear pending IRQs if one has been pending  for several microseconds.- Speeded up the sprite data register handling slightly.- Finally got Aero the AcroBat 2 working, after many hours of investigation,  spread over several years - literally! Two problems. The SNES doesn't seem  to consider scan-line line zero to be part of the v-blank period even though  the line is never drawn and V-IRQs at the start of the scan-line have to be  delayed until a few microseconds into the line - Traverse: Starlight & Prairie  required this as well, so I removed the original, Traverse specific hack.  There's a problem with the in-game music that I'll investigate at a later  date.  - The in-game music problem just required ENVX emulation to be switched on,    off by default on the Linux port, on by default on the Windows port.- Fixed the mode 7 corruption problem on the title screen of Chase HQ using the  same trick as Illusion of Gaia - i.e. mod the mode 7 centre X & Y values with  1024.- Fixed another crash bug in the interpolated mode 7 code - a portion of

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -