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

📄 changes.txt

📁 著名SFC模拟器Snes9x的源代码。
💻 TXT
📖 第 1 页 / 共 5 页
字号:
  the code was ignoring the screen flip value and the fact that X render  direction reversed if the screen was flipped horizontally. Was causing a  crash on the whale boss screen of Kirby Superstar.- Mortal Kombat 3 now auto-adjusts emulated cycles per scan-line work-around  a speech sample being cut short.- Added sample data register reading support to the sound DSP - somehow I  seem to have missed implementing this. Not sure if any ROM actually reads  the value.- Followed Sumire Kinoshita's suggestion and stopped clearing the ENDX flags  when the value is read, against my better judgement, and it does actually  improve speech samples in several games. Ooops! The Mortal Kombat series,  Magical Drop 2 and Metal Combat are the ones I've discovered so far.- WWF Arcade now auto-adjusts the cycles per scan-line value to work-around  a sound sample repeat problem.- Hmm. There's something about offset-per-tile mode I don't understand - WWF  Wrestlemania Arcade is getting corrupt graphics; not sure what effect the  ROM is trying to produce. Disabled offset-per-tile mode for the game for now.- Fixed Street Racer player 1 wobble problem during the soccer game by auto-  adjusting the cycles per scan-line value slightly.- Made Power Rangers Fight auto-adjust emulated cycles per scan-line to work  around a slight timing problem that causes an NMI to corrupt register  values that an IRQ handler is trying to update. Without it the scrolling  back-drop and fighter graphics are corrupt.- Illusion of Gaia seems to need the mode 7 centre X & Y values to be mod 1024  if the screen repeat flag is set. Fixes the island fly-over bug right at  the end of the intro but breaks a few other games. Hmm. Made it auto-switch  on for this game only.- Added memory map support for Radical Dreamers. Thanks to satellite hut master  for the information.- Made updates to the top bit of the sprite write address register be ignored  unless the low byte had been written to first. A ROM coding bug in  James Pond II requires this, otherwise it writes a junk byte value into the  main character's X position and Robocod wobbles around all over the place.- Reverted back to pre 1.31 way of initialising unknown register values -  Rock and Roll Racing was reading a junk register value and using the value  to set up DMA, which in turn was causing corruption on the player select  screen.- Added Star Ocean memory map - thanks zsKnight! The original ROM I was testing  was corrupt, no wonder I couldn't figure out the memory map myself! The game  still isn't playable, though, due to missing S-DD1 graphics decompression  (+ encryption?) emulation.- Started to dump some compressed data values from Street Fighter 2 Alpha in  the hope that one day someone will be able to crack the S-DD1's compression  algorithm.1.33a- C4 emulation wasn't being automatically enabled for Rockman X2 / X3 - the  Japanese versions of Megaman X2 / X3.- Fixed the Super FX plot table pointer that I accidentally broke while saving  1Mb of workspace RAM - it was stopping all Super FX games from working.1.33- 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. - 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 a couple of hours  due to laziness. If anyone knows the memory map details, let me know please!1.32a- The delay loading of the OpenGL DLLs on the Windows port was causing the  OpenGL initialisation code to fail. Reverted back to normal DDL loading but  with the side effect that Windows 95 users must visit the Microsoft web site  and download the OpenGL add-on before Snes9x will work for them.- Corrected the OpenGL bump-map display option - my attempt to get the   bi-linear OpenGL display option to work with Voodoo card's limited texture  size had broken the bump-map mode.1.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.- 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.1.31- 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, de-mangles 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.1.30- Forgot to force GUI surface to be displayed when some dialogs where popped  up - problem only happened on full-screen mode with triple or double  buffering enabled, or when using 3dfx mode. It appeared as if Snes9x had  locked up, but pressing Esc would pop down the hidden dialog.- Added a couple of options to the Settings dialog. Now its possible to  disable S-RAM auto-save which was causing Snes9x to write to the hard disk  every 30 seconds on some games, causing the occasional skipped frame.- Fixed Reset option which was accidentally broken when Netplay support was  added.- Added support for Dirt Racer - it leaves the Super FX chip running all the  time, so the default CPU emulation method never allocated any time to other  CPUs and the emulation seemed to lock up.- NMI timing changed again. Now an NMI can only be triggered once per  frame and enabling an NMI after the normal trigger scan line triggers  an NMI immediately. This fixes display glitches in Ys 5, Stargate and  Daffy Duck.- Fixed the WAI instruction to only 'wake up' once an actual NMI has  triggered, rather than just waking up when it should have triggered.  This fixes Battletoads, broken since version 1.29(ish).- Changed NMI again. Made reading or writing to PPU register 0x4210 not  clear NMI pending flag. Seems to allow all the NMI timing sensitive ROMs  I had on my list to now work without any special hacks. Illusion of  Gaia now works again.- Another NMI fix - cleared the CPU pending NMI flag at start of frame;  Battletoads intro was crashing without this. A long DMA was stopping the  SNES CPU so it couldn't and shouldn't respond to the NMI signal from the PPU.- Fixed Netplay problem when game didn't have any S-RAM and Sync Using Reset  was being used. An error dialog was displayed and the client would disconnect  from the server.1.30b#1- The Windows auto-frame skip code was broken - badly. It didn't re-sync a  timer value with timer events being generated, causing Snes9x to deliberately  stop and wait for an event when it didn't need to, slowing down the overall  emulation speed and increasing the number of frames skipped.- Improved the Windows cheat search dialog - its now possible to compare  against a value and more comparison functions are available.- Finally worked out why Voodoo 3 support was so buggy in Snes9x - the Voodoo 3  card generates a WM_DISPLAYCHANGE message when switching to Voodoo mode (the  Voodoo 1 and 2 cards don't); Snes9x thought that some other application had  changed the screen depth or resolution and tried to adjust its window to  match - triggering another WM_DISPLAYCHANGE message. No idea how the code  worked at all; it must have been only by chance and very dependant on the  driver version you were using!- Implemented Netplay on the Windows port - but its buggy as hell. I seem to  be having major Windows multi-threading problems. Comments I've seen seem to  suggest that Windows 95/98 don't implement true multi-threading; hmm...- Not happy with the current Netplay, so I scrapped it and tried again;  the protocol is much improved and not using select to control game timing  seems to have removed lots of the threading-type problems I was having.

⌨️ 快捷键说明

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