Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/fceux.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/attic
diff options
context:
space:
mode:
authorpunkrockguy318 <punkrockguy318@users.sf.net>2008-08-10 17:38:39 +0400
committerpunkrockguy318 <punkrockguy318@users.sf.net>2008-08-10 17:38:39 +0400
commit88b1fffe9db1aa451c02e895014925494e6af2b6 (patch)
treea46cd82f0370c96d222861faa01eea95c026362f /attic
parentd8a5bbeac87925a54d275f3c3141b805fd4c5be4 (diff)
extensive sdl cleanup
see the changelog.txt for details
Diffstat (limited to 'attic')
-rw-r--r--attic/ChangeLog509
-rw-r--r--attic/ChangeLog.older2183
-rw-r--r--attic/authors30
-rw-r--r--attic/fceu-svga.6135
-rw-r--r--attic/readme32
5 files changed, 2380 insertions, 509 deletions
diff --git a/attic/ChangeLog b/attic/ChangeLog
index 027420b3..359eee9a 100644
--- a/attic/ChangeLog
+++ b/attic/ChangeLog
@@ -1,512 +1,3 @@
-0.98.12:
-
- Win32: Fixed the behavior of the sound logging function.
-
- Fixed a bug that was causing 2xscale/3xscale to be broken
- when clipping the leftmost and rightmost 8 columns.
-
- Added an iNES header correction entry for JustBreed.
-
- Modified the MMC5 "ELROM" board emulation to not emulate WRAM.
-
- Corrected various pieces of code that were causing compiler warnings.
-
- Win32: Scaling settings(x, y, stretch to fill screen) are now respected while
- using a special scaler in full screen mode, though if x or y scale is
- less than what is needed for a particular scaler, it will be
- adjusted.
-
- Win32: The window will be reblitted when it becomes invalidated while
- a game is loaded(such as when you're resizing the window).
-
- When the PPU is in a "dead" state after starting up, the graphics
- buffer is now cleared. Previously, particularly in the Windows port, when
- a game was closed, and a new game was loaded, the last image from
- the previous game would be displayed for a short time.
-
- Win32: Blit skipping will now occur when sound is disabled and FCE Ultra is
- running behind the desired frame rate.
-
- Win32: Blit-skipping behavior can now be configured to some extent in the "Timing" configuration
- window.
-
- Win32: Added a "Recent Directories" submenu to the "File" menu.
-
- Removed some debugging code that shouldn't have been enabled in 0.98.11.
-
-0.98.11:
-
- Win32: Special scalers are now also supported in windowed mode. For Scale2x/Scale3x,
- the fastest "desktop" bit depth is 16bpp. For hq2x/hq3x, it is 32bpp.
-
- The shared video blitting code(drivers/common/vidblit.c) can now blit using Scale2x
- and Scale3x to any target bit depth(8bpp, 16bpp, 24bpp, and 32bpp) instead of just
- 8bpp, as it was before.
- HQ2x and HQ3x can now blit to 16bpp, 24bpp(untested), and 32bpp. The 16bpp and
- 24bpp targets are done doing post-processing conversion, after HQ2x/HQ3x, which
- really does hurt speed.
-
- Changed a few names in the credits section of the documentation to their
- aliases. Names you didn't get to pick to have are so troublesome. :b
- I also made various fixes/updates to the documentation.
-
- Updated the FAQ with some information regard video mode bit depths and speed.
-
- SDL: Disabled the fast-forward-key speed-limiting code. I thought I had
- done this before...
-
- Fixed a major bug in the movie recording code, and added some code to automatically detect
- and fix playback of broken movies from earlier versions.
-
- Did a little swapping thing with mapper 90 and 209. I moved back Mortal Kombat 3
- to mapper 90, and moved Shin Samurai Spirits 2 to mapper 209. Sorry for any confusion.
- Mapper 90 should be considered as having the fancy nametable select mode disabled, with
- mapper 209 having it enabled.
-
- Added support for mapper 160, which turns out to be the same hardware as mapper
- 90. Joy.
-
- Improved mapper 90 emulation. This mapper really needs low-level
- emulation for IRQs to work right, though. :/
-
- Win32: Fixed the "hide left/right 8 video columns" feature.
-
- Since FCE Ultra is ending(or has already exceeded? :b) its actively-updated life,
- I've gone ahead and added per-game hacks for "Kick Master" and the PAL version
- of "Star Wars". See the documentation for more details.
-
- Minor optimizations to the high-quality sound emulation code. The FIR filter
- code is the bottleneck, though, so these changes won't have much of an effect
- on overall speed.
-
- Altered MMC3 IRQ emulation(and the hooks in ppu.c for it).
-
- Fixed a rather major typo in the VRC7-emulation code.
-
-0.98.10:
-
- Reimplemented network play. It now requires a standalone network play server, which
- will be released as a later time. For fun, "starmen.net" is running this server,
- which is publicly accessible.
- I also made various code fixes/improvements to allow for network play, particularly
- with the command handling code.
-
- Reworked much of the VS Unisystem emulation code, partially based on information from
- MAME. The following games are now supported:
-
- Battle City
- Castlevania
- Clu Clu Land
- Dr. Mario
- Duck Hunt
- Excitebike
- Excitebike (Japanese)
- Freedom Force
- Goonies, The
- Gradius
- Gumshoe
- Hogan's Alley
- Ice Climber
- Ladies Golf
- Mach Rider
- Mach Rider (Japanese)
- Mighty Bomb Jack (Japanese)
- Ninja Jajamaru Kun (Japanese)
- Pinball
- Pinball (Japanese)
- Platoon
- RBI Baseball
- Slalom
- Soccer
- Star Luster
- Stroke and Match Golf
- Stroke and Match Golf - Ladies
- Stroke and Match Golf (Japanese)
- Super Mario Bros.
- Super Sky Kid
- Super Xevious
- Tetris
- TKO Boxing
- Top Gun
-
- Win32-native: Fixed a bug in the debugger's breakpoint list that appeared when
- one tried to delete a breakpoint(the control accidentally had auto-sort enabled,
- causing a discrepancy between what was displayed and what was contained in internal
- data structures).
-
- The current disk image XOR original disk image is now stored in save states. This
- should greatly increase compressability(important for network play), and make
- it a little more legal to distribute such save states now.
-
- Modified the save state format to allow for more precise and larger version numbers.
-
- Various minor code changes.
-
- Fixed initialization of the FCEUGameInfo structure, which previously led
- to problems with sound output on the SexyAL-using ports(Linux).
-
- Apparently I added support for mapper 255 a while back. Documentation updated.
-
- Added iNES header correction information for Armored Scrum Object and Alpha Mission.
-
- Merged banksw.h into ines.c, fixed some of its prototypes in ines.h.
-
-0.98.9:
-
- Win32-native: Fixed the speed throttling used when sound is disabled. In previous
- 0.98.x Win32-native releases, emulation was running at 1/2 the speed it should
- have been when sound was disabled.
-
- Win32-native: Moved settings in the "Miscellaneous" configuration window
- to where they should have been in the first place, and added "GUI" and "Timing"
- configuration windows to accommodate some.
-
- Win32-native: Fixed the handling of the "Scroll Lock" key used to disable and
- enable Family BASIC Keyboard input.
-
- Updated documentation to handle some slight differences in the Win32-native
- port("Win32-native" is what the Win32 port using native APIs, as opposed to something
- like GTK+ and SDL, will be referred to in documentation now). I also made
- some other minor wording adjustments to the documentation.
-
- Added an iNES header correction for Dragonball.
-
-0.98.8:
-
- Fixed a typo in sound.c that caused only part of the sound registers
- to be saved in save states.
-
- Win32: Switched over to the DirectDraw7 interface, from DirectDraw4's.
- The surface Flip() method will now block, which results in somewhat
- smoother animation/scrolling, especially when combined with the
- auto blit-skip implemented in 0.98.6 when sound is enabled.
-
- Win32: Undid a change made in the last release that limited the
- speed of fast-forwarding when using the tilde key. I really do
- need to implement some sort of unified timing/blit skip system...
-
- Win32: Added an option, disabled by default, to ask for confirmation
- before exiting FCE Ultra.
-
- Win32: Added an option, enabled by default, to disable the system
- screen saver while a game is loaded.
-
- Win32: Added a new video synchronization mode, a "lazy" wait for
- vblank/vertical retrace. It calls Sleep(0) in its wait loop. This
- still uses all available cpu cycles, but it is much more friendly
- to other processes than the old-style wait for vblank.
-
- Win32: Added support for joystick POV hats.
-
-0.98.7:
-
- Fixed a bug in the debugger's disassembler when disassembling
- opcode 0xBC.
-
- Fixed the behavior of the right mouse button with zapper emulation, to
- correspond with what it is documented as doing.
-
- Win32: Added proper support for maximizing the window.
-
- Win32: Rewrote most of the input and input configuration code.
-
- Win32: Changed the configurable aspect ratio to something sensical, the current
- display's pixel aspect ratio, default of 1:1(square pixels).
-
- Win32: Made the default full-screen video mode the custom video mode. I should have
- done this a long time ago to make custom video mode configuration more straighforward
- for users...
-
- Added some JACK audio code to be used by the SDL build. I'll test it and complete
- it later.
-
-0.98.6: Made several code modifications to work with older versions of gcc.
-
- Fixed more header file network play #ifdef-age.
-
- Fixed a typo in cart.h.
-
- Fixed some funky code in FCEU_memmove().
-
- Fixed some source code causing compiler warnings.
-
- Fixed SexyAL's format conversion code to not rely on deprecated casting semantics.
-
- Readded the native Win32 code, and made many improvements. The major thing
- that needs to be done now with it is to rewrite the input handling code and input
- configuration code.
-
-0.98.5:
- Added LL to the 64-bit integer constants in ines.c
-
- Fixed OpenGL support under Mac OS X.
-
- Added the ability to hide background and/or sprites with the F4 key.
-
-0.98.4:
- Moved NETWORK #ifdef's to netplay.c to simplify things.
-
- Fixed gzip file loading code(I think). I'm still a bit unsure about the semantics
- of dup() and close(), though.
-
- Corrected FDS code to try loading the FDS image before loading the BIOS.
-
- Readded "native" SDL sound code, used for Mac OS X(and maybe BeOS).
-
-0.98.3:
- Removed the wxWindows GUI code. GTK+ 2 code will take its place,
- once it is ready.
-
- Added reset and power commands to the movie format. More commands(such as insert
- disk, eject disk, flip dip switch, etc.) will be added simultaneously as work
- on network play continues.
-
- Modified SexyAL OSS code to not adjust the number of fragments to a power of 2.
- It works fine on my card, allowing finer-grained buffer size control,
- but I'm not sure it will work with all chips.
-
- Fixed parsing of the "-specialfs" command-line argument.
-
- Added the hq3x scaler.
-
- Updated to the latest Scale2x code. I also added the Scale3x scaler.
-
- Changed the keyboard assignments for toggling full screen to "Alt" + "Enter".
-
- FCEUI_SaveState() and FCEUI_LoadState() changed. Porters should read
- driver.h.
-
- Miscellaneous changes to accommodate new network play plan. It's not close
- to being finished.
-
- Altered RTI emulation. In Paris Dakar Rally's NMI handler, it does "CLI ; RTI".
- Previously, FCE Ultra would generate an interrupt right after RTI occured, due to the
- presumed latency that RTI had with the I flag. I changed it so there is no latency, so
- no interrupt will occur in this case(interrupts kill this game). The interrupt source
- is the "frame IRQ", which it never disables, if anyone cares.
- This change does break the "Stars SE" demo, though. Hmm.
-
- "FCEUGameInfo" is now a pointer, rather than just a statically-allocated structure.
- This may cause some null-dereferencing-related crashes, but it should help keep
- code a little cleaner(maybe?).
-
- Played around with the FDS FM code some more. It's still not right. Bah.
-
- Hacked in support for entering Datach/Barcode World barcodes without a GUI, using the
- F8 key and the numeric keys.
-
- Added code to save/load movies. Movie support will only record/play back the
- states of the four emulated gamepads.
-
- Modified the sound code to use timestamp/timestampbase differently. In addition,
- timestampbase is now saved in save states("timestamp" doesn't need to be saved, since
- it's reset to 0 at the end of each emulated frame).
-
-0.98.2:
- Fixed a few problems with the SDL command-line build code
- for Win32. Also, SDL 1.2.7 seems to have a bug that breaks FCE Ultra's
- full-screen/windowed switching capabilities(at least under Win32).
- Stupid everything.
-
- Minor SexyAL changes.
-
- Updated documentation.
-
-0.98.1:
-
- Increased the volume of the FME07 sound channels.
-
- Fixed a bug in the SexyAL endian conversion code.
-
- Made the SexyAL chunk conversion loop work.
-
- Replaced the old OPL2 emulator with a modified version of
- Mitsutaka Okazaki's YM2413 emulator for the VRC7 sound emulation.
-
- Decreased the pitch of the FME 07 expansion sound channels by one octave.
-
- Decreased volume of output of $5011 in MMC5 emulation code.
-
-
-0.98.0: Some changes I made aren't listed below. Ah well. The magnitude
- of the changes was too great...
-
-
- Default sound volume is 100(%), which makes a lot more sense than 75%, but not much.
- It's multiplied by 3/4 internally now.
-
- Added support for the Datach barcode reader(GUI interface only). The emulation code
- was adapted from the VirtuaNES source code.
-
- Reassigned the Datach games to mapper 157, from 16, with CRC32 checks.
-
- Increased the maximum number of screen snapshots in the snapshots directory
- to 99999(from 999).
-
- Reassigned the following games to mapper 210, using CRC32 checks:
- Chibi Maruko Chan
- Dream Master
- Family Circuit '91
- Famista '92
- Famista '93
- Famista '94
- Heisei Tensai Bakabon
- Top Striker
- Wagyan Land 2
- Wagyan Land 3
- If you use a hack/translation of one or more of these games, you will of course
- need to manually change the mapper number in the header for it to work properly in
- FCE Ultra. Family Circuit '91 still may not fit in with the rest of these games,
- but it's definitely not a "stock" mapper 19 setup.
-
- Fixed an OpenGL palette bug when using scanlines(previously, I think it was
- setting the palette of the scanlines overlay texture instead of the actual image
- texture in some instances). The bug showed up on games that make use of the color
- deemphasis bits.
-
- Rewrote a lot of the PPU background rendering code to be more accurate(and
- obfuscated!). This eliminates the X-offset hack I made earlier.
-
- Removed some of the NSF visualization code, and altered the look of the NSF
- display slightly. The NSF waveform visualization code will now take into
- account the current volume setting.
-
- Changed the default key bindings for the standard emulated gamepad
- to something more compatible with window managers. I may change it back, but probably
- not, since it is easily configurable now.
-
- Updated the MMC5, VRC6, and FME07 low-quality sound emulation code
- with the compatible parts of the high-quality sound emulation code for those chips.
-
- Adjusted timing of horizontal scroll update(near the beginning of hblank. I made
- it occur sooner). I also added a hack to allow X-offset(fine X scroll) changes mid
- scanline, however, it is extremely ugly, and may not work correctly for everything
- (doing it correctly would probably kill speed).
- I mainly did it to fix games like F-1 Race and Mach Rider, and other racing
- games that are extremely sensitive to horizontal scrolling timing.
-
- Some FDS IRQ emulation changes to fix some screen corruption problems
- in "Kaettekita Mario Bros".
-
- Removed zlib(the code, not support).
- I also removed support for compiling without zlib(it's small, simple, provides
- very useful functions, and may provide critical features for fceu in the future).
-
- *undone, breaks debugger, FIXME.* Replaced some inline functions with macros in x6502.c.
-
- Increased the speed of Namco 106 sound emulation in HQ sound mode.
-
- Many many sound emulation changes and adjustments based on blargg's tests.
- The default sound volume is about 150% what it was before, because the sound range
- has changed(now -soundvol 100 is like -soundvol 200 on older builds), and the
- default "soundvol" setting is 75. 100 clips on some Namco games, and 200 clips
- on many games, so I'll probably have the configurable volume range as [0:125].
- What exactly is "%" supposed to mean in this case.... 100% of what?!
-
- When using low-quality sound emulation mode, total emulation speed is about 10%
- less than previous builds. The change in speed for high-quality sound emulation
- mode is significantly less.
-
- Added beginnings of SexyAL to source code tree, removed SDL sound support, and
- old OSS code.
-
- Copied over some autoconf/automake stuff from phamicom. It stills needs a bit
- of work...
-
- Fixed DMC IRQ emulation. Fixes many CodeMasters games. Finally. ^_^
-
- Restructured a lot of files, changed the interface between driver and
- emulator code slightly.
-
- * Insert stuff here *
-
-November 28, 2003 - Snapshot
-
- Removed the DOS, Linux SVGAlib, and Win32 targets. *GASP*
- Win32 support will return(eventually), using SDL + wxWindows.
- SDL can use svgalib or GGI anyway, so it shouldn't be a huge loss.
- DOS support will only return if someone ports SDL to DOS. ^_^
- It would be nice if SDL could accept modelines. Maybe in SDL 2.0...
-
- Merged fce.c and svga.c into fceu.c, and fce.h and svga.h into fceu.h.
-
- Reassigned "Mortal Kombat 3 - Special 56 Peoples" to mapper 209.
-
- Added emulation of the "Oeka Kids" tablet.
-
- Added emulation of the Family Trainer.
-
- Added emulation of the "Ultimate Quiz King" buzzers.
-
- Added emulation of the Mahjong controller.
-
- Added emulation of HyperShot controllers.
-
- Fixed loading of NSFs with load addresses below $8000.
-
- Cleaned and simplified some of the NES APU code.
-
- Altered mapper 65 emulation. Fixes Kaiketsu Yanchamaru 3. Does it break anything?
-
- Wrote a small FAQ file.
-
- Fixed displaying of garbage and other unpleasantness on the first scanline. I need
- to clean up that code, though.
-
- Fixed color deemphasis emulation when all bits are set. For some
- reason, I had commented out the code. Bleh.
-
- NSF player now writes $C0 to $4017 if the FDS is being used(the FDS
- BIOS writes $C0 to $4017). $40 for all other NSFs.
-
- Added support for iNES mapper 58(nnnesterj).
-
- Added support for iNES mapper 208.
-
- Reassigned "Fudou Myouou Den" to mapper 207(CRC32 checks).
-
- Reassigned "Karnov" to mapper 206(CRC32 checks).
-
- Fixed the mapper 95 code, which was horribly broken.
-
- Differentiated between mappers 33 and 48. Added CRC checks to assign
- some games to mapper 48. "Flintstones 2" and "Don Doko Don 2" are
- the games that need to be assigned to 48. Are there others?
-
- Replaced usage of TriggerIRQ to X6502_IRQBegin/X6502_IRQEnd combos in
- various mapper emulation files. 67, 33/48, 40, 73, 42, 65, 6, 182
- Removed function TriggerIRQ() from x6502.c
-
- Fixed the sound volume of the VRC7 emulation in high-quality sound mode.
- Decreased(slightly) the volume of VRC7 emulation in both high-quality sound modes.
-
- Decreased the volume of the MMC5 expansion sound channels.
-
- Decreased the volume of the FME-7/mapper 69 expansion sound channels.
-
- Added FCEU_gmalloc(), which will call exit() if memory allocation fails,
- otherwise it is guaranteed to return a memory block.
- This will be used in the mapper code mainly. It should only
- be used for small memory chunks. The reasoning is that if 64 some like KB of
- RAM or less can't be allocated, for example, it'd probably be best to
- exit the emulator ASAP. It also helps to simplify code logic, and
- help (me) with modularization.
- The behavior of this may change in the future. I still need to think about it.
- I should probably save the configuration file regularly(or much better,
- use the registry) on the Windows port, though.
-
- Cleaned up the save-state saving/loading code a bit, and added
- support for linked save state structures for better modularity and
- less code duplication.
-
- Merged the iNES and UNIF MMC1, MMC3, and MMC5 code more completely.
- I may need to sanify CHR RAM and WRAM allocation for pedanticness,
- though. Also worked on Tengen RAMBO-1 emulation, and mapper 90 emulation.
- ***THIS MAKES SAVE STATES FOR GAMES THAT USE THESE EXPANSION CHIPS INCOMPATIBLE
- WITH PREVIOUS VERSIONS***
- I plan on doing the same thing with other mappers/boards in the future, though.
- Always on the quest for 1.0...
-
November 12, 2003 - 0.97.5 Release
Windows: Added limited support for arguments that change configuration
diff --git a/attic/ChangeLog.older b/attic/ChangeLog.older
new file mode 100644
index 00000000..027420b3
--- /dev/null
+++ b/attic/ChangeLog.older
@@ -0,0 +1,2183 @@
+0.98.12:
+
+ Win32: Fixed the behavior of the sound logging function.
+
+ Fixed a bug that was causing 2xscale/3xscale to be broken
+ when clipping the leftmost and rightmost 8 columns.
+
+ Added an iNES header correction entry for JustBreed.
+
+ Modified the MMC5 "ELROM" board emulation to not emulate WRAM.
+
+ Corrected various pieces of code that were causing compiler warnings.
+
+ Win32: Scaling settings(x, y, stretch to fill screen) are now respected while
+ using a special scaler in full screen mode, though if x or y scale is
+ less than what is needed for a particular scaler, it will be
+ adjusted.
+
+ Win32: The window will be reblitted when it becomes invalidated while
+ a game is loaded(such as when you're resizing the window).
+
+ When the PPU is in a "dead" state after starting up, the graphics
+ buffer is now cleared. Previously, particularly in the Windows port, when
+ a game was closed, and a new game was loaded, the last image from
+ the previous game would be displayed for a short time.
+
+ Win32: Blit skipping will now occur when sound is disabled and FCE Ultra is
+ running behind the desired frame rate.
+
+ Win32: Blit-skipping behavior can now be configured to some extent in the "Timing" configuration
+ window.
+
+ Win32: Added a "Recent Directories" submenu to the "File" menu.
+
+ Removed some debugging code that shouldn't have been enabled in 0.98.11.
+
+0.98.11:
+
+ Win32: Special scalers are now also supported in windowed mode. For Scale2x/Scale3x,
+ the fastest "desktop" bit depth is 16bpp. For hq2x/hq3x, it is 32bpp.
+
+ The shared video blitting code(drivers/common/vidblit.c) can now blit using Scale2x
+ and Scale3x to any target bit depth(8bpp, 16bpp, 24bpp, and 32bpp) instead of just
+ 8bpp, as it was before.
+ HQ2x and HQ3x can now blit to 16bpp, 24bpp(untested), and 32bpp. The 16bpp and
+ 24bpp targets are done doing post-processing conversion, after HQ2x/HQ3x, which
+ really does hurt speed.
+
+ Changed a few names in the credits section of the documentation to their
+ aliases. Names you didn't get to pick to have are so troublesome. :b
+ I also made various fixes/updates to the documentation.
+
+ Updated the FAQ with some information regard video mode bit depths and speed.
+
+ SDL: Disabled the fast-forward-key speed-limiting code. I thought I had
+ done this before...
+
+ Fixed a major bug in the movie recording code, and added some code to automatically detect
+ and fix playback of broken movies from earlier versions.
+
+ Did a little swapping thing with mapper 90 and 209. I moved back Mortal Kombat 3
+ to mapper 90, and moved Shin Samurai Spirits 2 to mapper 209. Sorry for any confusion.
+ Mapper 90 should be considered as having the fancy nametable select mode disabled, with
+ mapper 209 having it enabled.
+
+ Added support for mapper 160, which turns out to be the same hardware as mapper
+ 90. Joy.
+
+ Improved mapper 90 emulation. This mapper really needs low-level
+ emulation for IRQs to work right, though. :/
+
+ Win32: Fixed the "hide left/right 8 video columns" feature.
+
+ Since FCE Ultra is ending(or has already exceeded? :b) its actively-updated life,
+ I've gone ahead and added per-game hacks for "Kick Master" and the PAL version
+ of "Star Wars". See the documentation for more details.
+
+ Minor optimizations to the high-quality sound emulation code. The FIR filter
+ code is the bottleneck, though, so these changes won't have much of an effect
+ on overall speed.
+
+ Altered MMC3 IRQ emulation(and the hooks in ppu.c for it).
+
+ Fixed a rather major typo in the VRC7-emulation code.
+
+0.98.10:
+
+ Reimplemented network play. It now requires a standalone network play server, which
+ will be released as a later time. For fun, "starmen.net" is running this server,
+ which is publicly accessible.
+ I also made various code fixes/improvements to allow for network play, particularly
+ with the command handling code.
+
+ Reworked much of the VS Unisystem emulation code, partially based on information from
+ MAME. The following games are now supported:
+
+ Battle City
+ Castlevania
+ Clu Clu Land
+ Dr. Mario
+ Duck Hunt
+ Excitebike
+ Excitebike (Japanese)
+ Freedom Force
+ Goonies, The
+ Gradius
+ Gumshoe
+ Hogan's Alley
+ Ice Climber
+ Ladies Golf
+ Mach Rider
+ Mach Rider (Japanese)
+ Mighty Bomb Jack (Japanese)
+ Ninja Jajamaru Kun (Japanese)
+ Pinball
+ Pinball (Japanese)
+ Platoon
+ RBI Baseball
+ Slalom
+ Soccer
+ Star Luster
+ Stroke and Match Golf
+ Stroke and Match Golf - Ladies
+ Stroke and Match Golf (Japanese)
+ Super Mario Bros.
+ Super Sky Kid
+ Super Xevious
+ Tetris
+ TKO Boxing
+ Top Gun
+
+ Win32-native: Fixed a bug in the debugger's breakpoint list that appeared when
+ one tried to delete a breakpoint(the control accidentally had auto-sort enabled,
+ causing a discrepancy between what was displayed and what was contained in internal
+ data structures).
+
+ The current disk image XOR original disk image is now stored in save states. This
+ should greatly increase compressability(important for network play), and make
+ it a little more legal to distribute such save states now.
+
+ Modified the save state format to allow for more precise and larger version numbers.
+
+ Various minor code changes.
+
+ Fixed initialization of the FCEUGameInfo structure, which previously led
+ to problems with sound output on the SexyAL-using ports(Linux).
+
+ Apparently I added support for mapper 255 a while back. Documentation updated.
+
+ Added iNES header correction information for Armored Scrum Object and Alpha Mission.
+
+ Merged banksw.h into ines.c, fixed some of its prototypes in ines.h.
+
+0.98.9:
+
+ Win32-native: Fixed the speed throttling used when sound is disabled. In previous
+ 0.98.x Win32-native releases, emulation was running at 1/2 the speed it should
+ have been when sound was disabled.
+
+ Win32-native: Moved settings in the "Miscellaneous" configuration window
+ to where they should have been in the first place, and added "GUI" and "Timing"
+ configuration windows to accommodate some.
+
+ Win32-native: Fixed the handling of the "Scroll Lock" key used to disable and
+ enable Family BASIC Keyboard input.
+
+ Updated documentation to handle some slight differences in the Win32-native
+ port("Win32-native" is what the Win32 port using native APIs, as opposed to something
+ like GTK+ and SDL, will be referred to in documentation now). I also made
+ some other minor wording adjustments to the documentation.
+
+ Added an iNES header correction for Dragonball.
+
+0.98.8:
+
+ Fixed a typo in sound.c that caused only part of the sound registers
+ to be saved in save states.
+
+ Win32: Switched over to the DirectDraw7 interface, from DirectDraw4's.
+ The surface Flip() method will now block, which results in somewhat
+ smoother animation/scrolling, especially when combined with the
+ auto blit-skip implemented in 0.98.6 when sound is enabled.
+
+ Win32: Undid a change made in the last release that limited the
+ speed of fast-forwarding when using the tilde key. I really do
+ need to implement some sort of unified timing/blit skip system...
+
+ Win32: Added an option, disabled by default, to ask for confirmation
+ before exiting FCE Ultra.
+
+ Win32: Added an option, enabled by default, to disable the system
+ screen saver while a game is loaded.
+
+ Win32: Added a new video synchronization mode, a "lazy" wait for
+ vblank/vertical retrace. It calls Sleep(0) in its wait loop. This
+ still uses all available cpu cycles, but it is much more friendly
+ to other processes than the old-style wait for vblank.
+
+ Win32: Added support for joystick POV hats.
+
+0.98.7:
+
+ Fixed a bug in the debugger's disassembler when disassembling
+ opcode 0xBC.
+
+ Fixed the behavior of the right mouse button with zapper emulation, to
+ correspond with what it is documented as doing.
+
+ Win32: Added proper support for maximizing the window.
+
+ Win32: Rewrote most of the input and input configuration code.
+
+ Win32: Changed the configurable aspect ratio to something sensical, the current
+ display's pixel aspect ratio, default of 1:1(square pixels).
+
+ Win32: Made the default full-screen video mode the custom video mode. I should have
+ done this a long time ago to make custom video mode configuration more straighforward
+ for users...
+
+ Added some JACK audio code to be used by the SDL build. I'll test it and complete
+ it later.
+
+0.98.6: Made several code modifications to work with older versions of gcc.
+
+ Fixed more header file network play #ifdef-age.
+
+ Fixed a typo in cart.h.
+
+ Fixed some funky code in FCEU_memmove().
+
+ Fixed some source code causing compiler warnings.
+
+ Fixed SexyAL's format conversion code to not rely on deprecated casting semantics.
+
+ Readded the native Win32 code, and made many improvements. The major thing
+ that needs to be done now with it is to rewrite the input handling code and input
+ configuration code.
+
+0.98.5:
+ Added LL to the 64-bit integer constants in ines.c
+
+ Fixed OpenGL support under Mac OS X.
+
+ Added the ability to hide background and/or sprites with the F4 key.
+
+0.98.4:
+ Moved NETWORK #ifdef's to netplay.c to simplify things.
+
+ Fixed gzip file loading code(I think). I'm still a bit unsure about the semantics
+ of dup() and close(), though.
+
+ Corrected FDS code to try loading the FDS image before loading the BIOS.
+
+ Readded "native" SDL sound code, used for Mac OS X(and maybe BeOS).
+
+0.98.3:
+ Removed the wxWindows GUI code. GTK+ 2 code will take its place,
+ once it is ready.
+
+ Added reset and power commands to the movie format. More commands(such as insert
+ disk, eject disk, flip dip switch, etc.) will be added simultaneously as work
+ on network play continues.
+
+ Modified SexyAL OSS code to not adjust the number of fragments to a power of 2.
+ It works fine on my card, allowing finer-grained buffer size control,
+ but I'm not sure it will work with all chips.
+
+ Fixed parsing of the "-specialfs" command-line argument.
+
+ Added the hq3x scaler.
+
+ Updated to the latest Scale2x code. I also added the Scale3x scaler.
+
+ Changed the keyboard assignments for toggling full screen to "Alt" + "Enter".
+
+ FCEUI_SaveState() and FCEUI_LoadState() changed. Porters should read
+ driver.h.
+
+ Miscellaneous changes to accommodate new network play plan. It's not close
+ to being finished.
+
+ Altered RTI emulation. In Paris Dakar Rally's NMI handler, it does "CLI ; RTI".
+ Previously, FCE Ultra would generate an interrupt right after RTI occured, due to the
+ presumed latency that RTI had with the I flag. I changed it so there is no latency, so
+ no interrupt will occur in this case(interrupts kill this game). The interrupt source
+ is the "frame IRQ", which it never disables, if anyone cares.
+ This change does break the "Stars SE" demo, though. Hmm.
+
+ "FCEUGameInfo" is now a pointer, rather than just a statically-allocated structure.
+ This may cause some null-dereferencing-related crashes, but it should help keep
+ code a little cleaner(maybe?).
+
+ Played around with the FDS FM code some more. It's still not right. Bah.
+
+ Hacked in support for entering Datach/Barcode World barcodes without a GUI, using the
+ F8 key and the numeric keys.
+
+ Added code to save/load movies. Movie support will only record/play back the
+ states of the four emulated gamepads.
+
+ Modified the sound code to use timestamp/timestampbase differently. In addition,
+ timestampbase is now saved in save states("timestamp" doesn't need to be saved, since
+ it's reset to 0 at the end of each emulated frame).
+
+0.98.2:
+ Fixed a few problems with the SDL command-line build code
+ for Win32. Also, SDL 1.2.7 seems to have a bug that breaks FCE Ultra's
+ full-screen/windowed switching capabilities(at least under Win32).
+ Stupid everything.
+
+ Minor SexyAL changes.
+
+ Updated documentation.
+
+0.98.1:
+
+ Increased the volume of the FME07 sound channels.
+
+ Fixed a bug in the SexyAL endian conversion code.
+
+ Made the SexyAL chunk conversion loop work.
+
+ Replaced the old OPL2 emulator with a modified version of
+ Mitsutaka Okazaki's YM2413 emulator for the VRC7 sound emulation.
+
+ Decreased the pitch of the FME 07 expansion sound channels by one octave.
+
+ Decreased volume of output of $5011 in MMC5 emulation code.
+
+
+0.98.0: Some changes I made aren't listed below. Ah well. The magnitude
+ of the changes was too great...
+
+
+ Default sound volume is 100(%), which makes a lot more sense than 75%, but not much.
+ It's multiplied by 3/4 internally now.
+
+ Added support for the Datach barcode reader(GUI interface only). The emulation code
+ was adapted from the VirtuaNES source code.
+
+ Reassigned the Datach games to mapper 157, from 16, with CRC32 checks.
+
+ Increased the maximum number of screen snapshots in the snapshots directory
+ to 99999(from 999).
+
+ Reassigned the following games to mapper 210, using CRC32 checks:
+ Chibi Maruko Chan
+ Dream Master
+ Family Circuit '91
+ Famista '92
+ Famista '93
+ Famista '94
+ Heisei Tensai Bakabon
+ Top Striker
+ Wagyan Land 2
+ Wagyan Land 3
+ If you use a hack/translation of one or more of these games, you will of course
+ need to manually change the mapper number in the header for it to work properly in
+ FCE Ultra. Family Circuit '91 still may not fit in with the rest of these games,
+ but it's definitely not a "stock" mapper 19 setup.
+
+ Fixed an OpenGL palette bug when using scanlines(previously, I think it was
+ setting the palette of the scanlines overlay texture instead of the actual image
+ texture in some instances). The bug showed up on games that make use of the color
+ deemphasis bits.
+
+ Rewrote a lot of the PPU background rendering code to be more accurate(and
+ obfuscated!). This eliminates the X-offset hack I made earlier.
+
+ Removed some of the NSF visualization code, and altered the look of the NSF
+ display slightly. The NSF waveform visualization code will now take into
+ account the current volume setting.
+
+ Changed the default key bindings for the standard emulated gamepad
+ to something more compatible with window managers. I may change it back, but probably
+ not, since it is easily configurable now.
+
+ Updated the MMC5, VRC6, and FME07 low-quality sound emulation code
+ with the compatible parts of the high-quality sound emulation code for those chips.
+
+ Adjusted timing of horizontal scroll update(near the beginning of hblank. I made
+ it occur sooner). I also added a hack to allow X-offset(fine X scroll) changes mid
+ scanline, however, it is extremely ugly, and may not work correctly for everything
+ (doing it correctly would probably kill speed).
+ I mainly did it to fix games like F-1 Race and Mach Rider, and other racing
+ games that are extremely sensitive to horizontal scrolling timing.
+
+ Some FDS IRQ emulation changes to fix some screen corruption problems
+ in "Kaettekita Mario Bros".
+
+ Removed zlib(the code, not support).
+ I also removed support for compiling without zlib(it's small, simple, provides
+ very useful functions, and may provide critical features for fceu in the future).
+
+ *undone, breaks debugger, FIXME.* Replaced some inline functions with macros in x6502.c.
+
+ Increased the speed of Namco 106 sound emulation in HQ sound mode.
+
+ Many many sound emulation changes and adjustments based on blargg's tests.
+ The default sound volume is about 150% what it was before, because the sound range
+ has changed(now -soundvol 100 is like -soundvol 200 on older builds), and the
+ default "soundvol" setting is 75. 100 clips on some Namco games, and 200 clips
+ on many games, so I'll probably have the configurable volume range as [0:125].
+ What exactly is "%" supposed to mean in this case.... 100% of what?!
+
+ When using low-quality sound emulation mode, total emulation speed is about 10%
+ less than previous builds. The change in speed for high-quality sound emulation
+ mode is significantly less.
+
+ Added beginnings of SexyAL to source code tree, removed SDL sound support, and
+ old OSS code.
+
+ Copied over some autoconf/automake stuff from phamicom. It stills needs a bit
+ of work...
+
+ Fixed DMC IRQ emulation. Fixes many CodeMasters games. Finally. ^_^
+
+ Restructured a lot of files, changed the interface between driver and
+ emulator code slightly.
+
+ * Insert stuff here *
+
+November 28, 2003 - Snapshot
+
+ Removed the DOS, Linux SVGAlib, and Win32 targets. *GASP*
+ Win32 support will return(eventually), using SDL + wxWindows.
+ SDL can use svgalib or GGI anyway, so it shouldn't be a huge loss.
+ DOS support will only return if someone ports SDL to DOS. ^_^
+ It would be nice if SDL could accept modelines. Maybe in SDL 2.0...
+
+ Merged fce.c and svga.c into fceu.c, and fce.h and svga.h into fceu.h.
+
+ Reassigned "Mortal Kombat 3 - Special 56 Peoples" to mapper 209.
+
+ Added emulation of the "Oeka Kids" tablet.
+
+ Added emulation of the Family Trainer.
+
+ Added emulation of the "Ultimate Quiz King" buzzers.
+
+ Added emulation of the Mahjong controller.
+
+ Added emulation of HyperShot controllers.
+
+ Fixed loading of NSFs with load addresses below $8000.
+
+ Cleaned and simplified some of the NES APU code.
+
+ Altered mapper 65 emulation. Fixes Kaiketsu Yanchamaru 3. Does it break anything?
+
+ Wrote a small FAQ file.
+
+ Fixed displaying of garbage and other unpleasantness on the first scanline. I need
+ to clean up that code, though.
+
+ Fixed color deemphasis emulation when all bits are set. For some
+ reason, I had commented out the code. Bleh.
+
+ NSF player now writes $C0 to $4017 if the FDS is being used(the FDS
+ BIOS writes $C0 to $4017). $40 for all other NSFs.
+
+ Added support for iNES mapper 58(nnnesterj).
+
+ Added support for iNES mapper 208.
+
+ Reassigned "Fudou Myouou Den" to mapper 207(CRC32 checks).
+
+ Reassigned "Karnov" to mapper 206(CRC32 checks).
+
+ Fixed the mapper 95 code, which was horribly broken.
+
+ Differentiated between mappers 33 and 48. Added CRC checks to assign
+ some games to mapper 48. "Flintstones 2" and "Don Doko Don 2" are
+ the games that need to be assigned to 48. Are there others?
+
+ Replaced usage of TriggerIRQ to X6502_IRQBegin/X6502_IRQEnd combos in
+ various mapper emulation files. 67, 33/48, 40, 73, 42, 65, 6, 182
+ Removed function TriggerIRQ() from x6502.c
+
+ Fixed the sound volume of the VRC7 emulation in high-quality sound mode.
+ Decreased(slightly) the volume of VRC7 emulation in both high-quality sound modes.
+
+ Decreased the volume of the MMC5 expansion sound channels.
+
+ Decreased the volume of the FME-7/mapper 69 expansion sound channels.
+
+ Added FCEU_gmalloc(), which will call exit() if memory allocation fails,
+ otherwise it is guaranteed to return a memory block.
+ This will be used in the mapper code mainly. It should only
+ be used for small memory chunks. The reasoning is that if 64 some like KB of
+ RAM or less can't be allocated, for example, it'd probably be best to
+ exit the emulator ASAP. It also helps to simplify code logic, and
+ help (me) with modularization.
+ The behavior of this may change in the future. I still need to think about it.
+ I should probably save the configuration file regularly(or much better,
+ use the registry) on the Windows port, though.
+
+ Cleaned up the save-state saving/loading code a bit, and added
+ support for linked save state structures for better modularity and
+ less code duplication.
+
+ Merged the iNES and UNIF MMC1, MMC3, and MMC5 code more completely.
+ I may need to sanify CHR RAM and WRAM allocation for pedanticness,
+ though. Also worked on Tengen RAMBO-1 emulation, and mapper 90 emulation.
+ ***THIS MAKES SAVE STATES FOR GAMES THAT USE THESE EXPANSION CHIPS INCOMPATIBLE
+ WITH PREVIOUS VERSIONS***
+ I plan on doing the same thing with other mappers/boards in the future, though.
+ Always on the quest for 1.0...
+
+November 12, 2003 - 0.97.5 Release
+
+ Windows: Added limited support for arguments that change configuration
+ to be passed to FCE Ultra. Example: fceu -pal 1 c:\streetgangs.nes
+ It may be useful in frontends.
+
+ Fixed filename generation for automatic IPS patching when a file
+ with no extension is loaded. Before this change, FCEU would
+ look for "game..ips" with a file named "game".
+
+ Converted and updated the cheat guide in(to) HTML.
+
+ Added support for iNES mappers 202,203,231 from info from cah4e3.
+ Fixed support for mappers 60, 200.
+
+ Fixed various major bugs in the breakpoint deletion code.
+
+ UN*X: Added support for OSS(/dev/dsp) devices that don't support mono
+ sound.
+
+ Increased PPU startup idle time to 2 frames. Fixes that
+ unlicensed "Earthworm Jim 3" game. Does it break anything?
+
+November 9, 2003 - 0.97.4 Release
+
+ Fixed another obscure PPU emulation screen corruption bug.
+
+ Added support for Game Genie cheats in the cheat interface.
+
+ Windows: Reworked the cheat interface, merging the cheat search
+ and cheat list windows into one.
+
+ Windows: Greatly improved the CPU debugger.
+ The code still needs a lot of cleaning, though.
+
+ Readjusted VRC6 IRQ emulation timing.
+
+ Added support for the UNIF MMC3 board TEROM. The maximum PRG/CHR sizes
+ may not be correct in this implementation, though.
+
+November 8, 2003 - 0.97.3 Release
+
+ Added a control to set the highest quality sound mode in Windows.
+ This change requires that any users who previously set
+ "high quality sound" to set it again.
+
+ Fixed the volume of high-quality sound mode again. The changes
+ I made earlier didn't affect all the filter coefficients.
+
+November 8, 2003 - 0.97.2 Release
+
+ Made a minor optimization to writes to palette memory.
+
+ Altered VRC6 IRQ emulation timing slightly.
+
+ Fixed a weirdo PPU emulation bug that could cause garbage on the right
+ side of the screen in certain situations. Thanks to FrenziedPanda for
+ bugging me enough to make me look into the problem and fix it.
+ I should be on the lookout to see if the fix breaks anything, though.
+
+ Fixed the volume of high-quality sound mode(-soundq 1). It was
+ at 1/4 the volume it should have been. I compensated by increasing
+ the precision of the filter coefficients, which increased the sound
+ quality of that mode slightly without hurting performance.
+
+November 7, 2003 - 0.97.1 Release
+
+ Fixed mapper 105 emulation. I had begun merging it into the
+ rest of the MMC1 code for 0.97, but I hadn't finished it.
+
+ Changed things like RdMem(_PC++); to RdMem(_PC); _PC++;
+ Darn evil global variables. I need to fix them. Screw speed.
+
+ Expanded checks for the global variable "fceuindbg"(used in debug
+ mode to prevent reads in the debugger from altering any registers).
+
+November 6, 2003 - 0.97 Release
+ * Note: I still had much more I had wanted to get done for 0.97,
+ but I lost even more interest. The Windows port still doesn't
+ have a way to enable the "highest" sound emulation mode, nor the
+ low pass filter code, not to mention that the lowpass filter code
+ isn't complete(I would need to design a high-order FIR filter from an IIR
+ filter to work properly-have the correct rolloff, among other
+ things-at finite playback rates).
+
+ Fixed a bug in the IPS patcher. The recorded size wasn't being updated
+ after a successful realloc() was made, which could lead to corrupted patch
+ data from some patches.
+
+ Added support for mappers 200, 201 from submitted code.
+
+ Rewrote mapper 15 support to make more sense(well, depending
+ on your point of view...).
+
+ Fixed 256KB CHR select support for mapper 115.
+
+ Added support for mapper 12 from code from cah4e3.
+
+October 16, 2003 - Snapshot
+
+ Fixed support for mapper 245(for nonencrypted/non-smynes-screwed up
+ ROM images only. Fixes "Yong Zhe Dou E Long [...] Dragon Quest 7".
+
+ Added support for mappers 60, 62, 230, 244 from submitted code.
+
+ Modified mapper 90 emulation to allow game-select on reset
+ for "Final Fight 3".
+
+ Modified mapper 45 emulation to allow "Super 8-in-1" to work.
+
+ Added a low-pass filter, and an option to enable it(CLI ports).
+
+ 0x00 is now written to $4011 in the NSF player code instead of 0x40.
+ Fixed some other similar sound register init problems that I had fixed
+ in Festalon but forgot to fix in FCEU. Grrr.
+
+ Removed some unnecessary 64-bit integer usage from FIR sound filtering
+ code.
+
+ Added a new sound quality mode. Higher than high, it's highest(in
+ FCE Ultra, for now). Still need to fix the interface to allow
+ enabling it in the Windows port.
+
+ Added some code for lower-level MMC3 IRQ emulation. It isn't completed
+ , and will not work properly as-is. I'm still playing around with
+ it occasionally.
+
+ Fixed the sprite overflow flag(I think I fixed it), that was broken in an earlier
+ pre-0.97 release.
+
+ Fixed support for iNES mapper 193.
+
+ Command line arguments "-pal" and "-gg" now take extra arguments(1/0)
+ and are remembered in the configuration file.
+
+September 27, 2003 - Snapshot
+
+ Added support for iNES mapper 50.
+
+ Modified the UNIF board initialization code. Hopefully, this
+ new interface will eventually be used with the iNES code.
+
+ Miscellaneous code cleanups.
+
+ /dev/dsp is now set to 8(previously 9) buffers of 128 samples in length
+ in the SDL code.
+
+ Tried to make the save state code more expandable and modular.
+
+ Moved a lot of the PPU code into ppu.c.
+
+ Added more extensive debugging code to the 6502 emulator, to allow
+ for memory read/write hooks(including zero page addressing modes).
+
+ Readadjusted DMC timings when PAL emulation is enabled. It looks
+ like it was correct before I had made the August 2 change. Thanks
+ to Bananmos for the information. I think. :/
+
+ Added support for iNES mapper 193 from information from virtuanes.
+ I think my dump of it is "bad", though. PRG and CHR pages look
+ like they are in the wrong order(logical vs physical? Who's to say
+ what's physical?).
+
+September 1, 2003 - Snapshot
+
+ Fixed some minor initialization issues with iNES mappers 7 and 34.
+
+ Added support for UNIF board NES-GNROM.
+
+ Removed support for save states created with versions of FCE Ultra
+ less than 0.56.
+
+ Replaced SDL sound buffering code with a lock-free FIFO implementation
+ written by David Olofson, with a few modifications by myself.
+
+ Fixed a VRC7 NSF bug(it showed up under the reworked driver/file
+ loading order in the cli code).
+
+ The board in "Rolling Thunder" has "RAMBO 1" on it, not "RAMBO-1".
+
+August 9, 2003 - Snapshot
+
+ Removed the old plain text documentation and replaced it with
+ a new document in HTML. It is not completed yet, though.
+
+ Rewrote the SDL-native audio code to be less wacky and more
+ thread-safe(hopefully). I'm still waiting for a new SDL audio
+ API...
+
+ Altered the MMC5 IRQ timing. Fixes minor graphical glitches
+ in Castlevania 3. Does it break anything?
+
+ Removed some debugging code that got into the last snapshot.
+
+August 5, 2003 - Snapshot
+
+ Added some code in the IPS patcher to allow for expanding the size of files.
+
+ Fixed a double free() bug with a mapper 51 game(in ines.c).
+
+ Added support for "Alien Syndrome" (US release) as iNES mapper 158.
+ It looks like a derivative of the normal RAMBO-1 board(or is that
+ the name of the chip?), similar to TKSROM/TLSROM(mapper 118).
+
+ Improved the "native" SDL sound code. It will now call SDL_Delay(),
+ among other nice things. The code could probably be improved more,
+ though.
+
+ Added support for decimal components in xscale/yscale in the SDL
+ port. Set the default xscale for windowed mode to 2.40(to get a
+ more correct aspect ratio, assuming the display is currently at
+ a 4:3 aspect ratio).
+
+ Modified args.c to handle floating-point numbers.
+
+August 2, 2003 - Snapshot.
+
+ Disabled texture wrapping with OpenGL(there were problems at the edges
+ of the screen with linear interpolation). Bah. Now the edges
+ are too bright...
+
+ Improved the accuracy of the DMC timing when PAL emulation is enabled.
+ I still don't think it's totally correct, though.
+
+ Changed the default settings for the SDL code. Full screen
+ is now 640x480x8bpp by default, xscale and yscale are 2 for both full
+ screen and windowed, opengl support is enabled, linear interpolation
+ for OpenGL is enabled, and X-axis stretching is
+ enabled(in full screen).
+
+ "Scanlines" were enabled in 8bpp to 8bpp blits in
+ drivers/common/vidblit.c when they shouldn't have been. Fixed.
+
+ Fixed OpenGL code under big-endian platforms.
+
+August 1, 2003 - Snapshot.
+
+ Various code clean-ups.
+
+ Played around with adding a GTK+ GUI to the SDL code.
+
+ Rewrote part of the hq sound rectangle wave code.
+
+ Replaced the high-quality sound inline assembly filter code with
+ slightly faster C code.
+
+ Hacked around with GP32 support. I don't know if the GP32 would
+ be fast enough, though.
+
+ Skipped frames will now have D5 of $2002 set at the beginning
+ of the frame. Fixes "Bee 52". I must see if it breaks anything.
+
+ Added OpenGL support to the SDL code.
+
+ Removed the PPU drawing inline assembly code, replacing it with a faster
+ algorithm written in C.
+
+ "Disabling" the 8-sprite limitation will no longer cause
+ "Bee 52" to break. However, the "Solstice" wizard will still
+ have the weird thing growing out of his face in the introduction,
+ since it depends on no more sprites to be rendered.
+
+ Added entry for that Black Bass game for header corrections in
+ ines.c
+
+ Strip color burst bit(D0 of $2001) is only "emulated" if bg or
+ sprite rendering are turned on, at the end of the scanline.
+ Doing it with pixel/tile granularity would require modifying
+ the sprite graphics data copying routine, which I don't
+ feel like doing. Fixes that crazy Sayoonara demo by Chris Covell.
+ I also modified the NES RAM initialization code.
+
+ Adjusted VRC7 IRQ emulation for better Lagrange Point goodness.
+
+ Added support for iNES mapper 91. (VirtuaNES)
+
+0.96:
+ Improved RAMBO-1(mapper 64) emulation. "Skull and Crossbones" is
+ now playable.
+
+0.95:
+
+ timestamp and timestampbase are no longer saved/loaded to/from
+ save states. They were causing too many problems I didn't
+ want to fix, and I never intended them to be saved in save states
+ when I wrote the code that uses them.
+ I think the reason they were being saved was that I wanted to make it
+ possible to add movie support and network play save state loading
+ (distributing the save state over the network). So if someone in
+ the future wants to add these features, the issues(primarily with
+ zapper emulation and sound emulation) with saving the time stamp will
+ need to be resolved.
+
+ Fixed some crashing bugs when save states are loaded when
+ high-quality sound emulation is enabled. It is like patching
+ holes in a swiss-cheese boat. All the holes may be patched, but
+ it looks ugly. At least it tastes good...
+ TODO: Look into saving more data in the save states, especially
+ data that is based off of "timestamp" and "timestampbase". Also
+ look into validating this data. Right now, corrupt save state data
+ might cause memory corruption in FCE Ultra.
+
+ Fixed some bugs in the NSF player.
+
+ Cleaned up more code.
+
+ Reduced the usage of TriggerIRQ().
+
+ Split the palette code into a new file, palette.c, from svga.c
+
+ Low-G-Man(NTSC and PAL versions) are now recognized by CRC32 value,
+ and WRAM will be disabled if they are loaded. A warning/status message
+ will also be printed regarding this issue.
+
+ Decreased the volume of the DMC/PCM channel in low-quality sound
+ emulation.
+
+ Low-quality sound emulation now uses 32-bit integers for much
+ better speed.
+
+ FCEUI_CRC32() wasn't returning anything. D'oh. Fixed.
+
+ Added somewhat crude support for games that switch background CHR data
+ mid-scanline (this is needed in games such as Mother, Pirates!,
+ Business Wars, and Marble Madness).
+
+ Altered NMI, IRQ, and BRK emulation again. Fixes some games,
+ like Bases Loaded 2 and Dynamite Bowling, and maybe some others.
+ I had to increase the size of the IRQlow variable for delayed
+ NMI execution... I also had to add a delay between PPU reset
+ and the PPU actually doing anything, to fix "Knight Rider".
+
+ Fixed a mapper 90 save state bug.
+
+ /dev/dsp code now searches for /dev/dsp before /dev/dspX (where X is
+ a non-negative integer).
+
+ SDL joystick axes configuration is now done from the joystick.
+
+ Tweaked various Konami mappers' IRQ counter emulation.
+
+ Added custom SDL throttle code that gives up time slices instead of
+ using 100% cpu.
+
+ Fixed an issue with sprite priorities on MSB-first platforms.
+
+ Modified powerpad.c to avoid a symbol conflict when compiling on the
+ Power PC architecture.
+
+0.94r3:
+ sound.c:
+ Fixed a divide-by-zero bug that occurred when a virtual
+ reset(like by pressing F10) occurred when sound emulation was
+ disabled.
+
+0.94r2:
+ drivers/common/vidblit.c:
+ Fixed code for 32bpp blur effect.
+
+ drivers/cli/sdl-video.c:
+ Added error message for unsupported bit depths.
+
+ mappers/simple.c, ines.c:
+ Used this bug fix pseudo-release as an excuse to add
+ support for mapper 107. Information taken from virtuanes.
+
+0.94(fixed release)
+---
+ Fixed call to InitUNIXDSPSound in svgalib.c
+
+ Added man pages.
+
+0.94
+---
+ Added support for rapid fire A/B buttons on physical joysticks
+ in SDL/svgalib/DOS code.
+
+ Implemented "high-quality" Namco 106 emulation(used for hq sound mode).
+ In this case, "high-quality" means sounding more like it should,
+ not necessarily cleaner. I'm not certain that it's totally correct,
+ but it's in the right direction.
+
+ RAM cheats should no longer affect Game Genie emulation. I still
+ need to completely verify this. There may be some sort of race
+ condition.
+
+ Removed various minor speed hacks in the name of style and
+ correctness(and to make maintaining FCE Ultra easier for those
+ people who are not me). :)
+
+ Removed NSF cpu hacks, as I changed code to make them unnecessary.
+
+ Fixed another FDS IRQ emulation bug. "Famicom Grand Prix II" works
+ now.
+
+ Fixed a memory leak and a heap corruption bug in "file.c".
+
+ Added support for on-the-fly IPS patching.
+ Place the IPS file in the same directory as the file to load,
+ and name it filename.ips.
+
+ Examples: Boat.nes - Boat.nes.ips
+ Boat.zip - Boat.zip.ips
+ Boat.nes.gz - Boat.nes.gz.ips
+ Boat - Boat.ips
+
+ Some operating systems and environments will hide file extensions.
+ Keep this in mind if you are having trouble.
+
+ Patching is supported for all supported formats(iNES, FDS, UNIF, and
+ NSF), but it will probably only be useful for the iNES format. It
+ can be used with the FDS format, but be warned that it will permanently
+ patch your disk image, as the disk image is written back to disk
+ when the game is unloaded(unless the disk image is in a zip file, in
+ which case it isn't written back to disk). UNIF files can't be
+ patched well with the IPS format because they are chunk-based with no
+ fixed offsets. Support for a UNIF patching format may be added
+ in the future(probably by someone else.).
+
+ Added more games to the list in ines.c for having battery-backed
+ WRAM, for header corrections.
+
+ Copied over the 96KHz filter coefficients from Festalon that I forgot
+ to do in 0.92. Oops.
+
+
+0.93
+---
+
+ Reduced the volume of the FDS sound channel.
+
+ Fixed a bug in the FDS IRQ emulation code that caused "Lutter" to not work.
+
+ Fixed a bug in unif.c that would cause a crash if a unif file were
+ loaded without a board name being specified(as could happen
+ with a corrupted nsf).
+
+ Fixed a bug in general.c relating to relative filenames(running
+ fce ultra like "./fceu ../big.nes" would work, but "./fceu ../big"
+ would not work- it crashed).
+
+
+
+0.92r2
+---
+ Fixed dpcm irq bug that broke Cobra Triangle.
+
+.92
+---
+
+ Removed NSF player background, and added some special effects goodies.
+
+ Changed the NSF player to use the emulated gamepad as input instead
+ of having special NSF-player-only keys.
+
+ Added support for mapper 249(using nonencrypted games), thanks to SARO
+ for info. SMYNES sucks.
+
+ Updated video blitting library-thing(vidblit.c) with more special
+ effects, and removed 24bpp support.
+
+ SDL cleanupification.
+
+ Added support for mapper 61.
+
+ nnnesterj: Added support for mapper 57.
+
+ Fixed mapper number for "Golden Game 150 in 1". Changed it to 235
+ from 43.
+
+ DDraw back buffer surfaces are now created in system memory if the
+ hardware blitter can't do stretching.
+
+ Restructured file wrapping code.
+
+ Added new cheat search methods.
+
+ Fixed a major cheat unloading memory bug(and memory leak).
+
+ Emulated that funky nonlinear DAC effect for hi-quality sound.
+
+ More fixes/cleanups to FDS emulation code.
+
+ Tweaked PPU timing a bit.
+
+ Improved network play.
+
+ Holding the enter key down will no longer do fun stuff to the nsf
+ player.
+
+ Improved NSF player. It should support streaming pcm nsfs now...
+
+ Changed FDS keyboard keys around a bit. F6 is the disk select key,
+ and F8 is the disk insert/eject key.
+ F8 to insert VS Unisystem coin, F6 to view/toggle dip switches.
+ Hopefully people won't complain after blindly hitting the save state
+ buttons. :)
+
+ Many fixes and improvements to the Windows port. No more cpu-consuming
+ wait loops(specifically, sound). Added a message window.
+
+ FDS sound emulation improvements.
+
+ FDS disks are now auto-inserted on power on(or was it loading a new
+ game...).
+
+ Changed the default last rendered scanline to 231.
+
+ ines header corrections are now printed as status messages, not errors.
+
+ Rearranged input updating code.
+
+ Fixed a sprite transfer bug. Fixes PAL version of Rainbow Islands.
+
+ Debugger hooks added.
+
+ Small optimizations in Refreshline and FetchSpriteData to hopefully
+ offset the slight slowdown in the cpu core.
+
+ MapperHBIRQHook is now called differently(depending on hi/low bg/spr
+ addresses).
+
+ Added support for unif board UNL-8237.
+
+ Added support for mapper 144(death race).
+
+ Added partial support for mapper 74.
+
+ Fixed a cpu emulation bug in GETIYWR. It would sometimes set "target"
+ to 0x10000, which was a BAD THING(overflow; now it wraps).
+
+ Tried to add support for mapper 241. Needs special keyboard emulation.
+ I think.
+
+ Internal RAM is now initialized to something other than 0. Fixes
+ Minna no Taabou no Nakayoshi Dai Sakusen.
+
+ Reassigned "The Money Game" to mapper 155. It doesn't seem to
+ respect the WRAM enable/disable bits. Silly game. And
+ Tatakae!! Rahmen Man.
+
+ Added support for mapper 115(still needs 256KB CHR select), 241, 114,88.
+
+ Attempted to add support for mappers 91, 187.
+
+ Modified frame IRQ to not break so many damn games.
+
+ Fixed sprite hit detection loop.
+
+ Improved support for mappers 80, 90,117,154, 189.
+ nnnester and virtuanes.
+
+ Reassigned "Devil Man" to mapper 154.
+
+ Removed bogus Trojan header fix in ines.c.
+
+
+
+.81-post:
+----
+ Fixed/Worked around(?) compilation problems on gcc 3.2.x.
+
+.81:
+----
+
+ More SDL goodies.
+
+ Renamed "Makefile.olinuxsdl" to "Makefile.unixsdl"
+
+ More SDL fixes and cleanups.
+
+ BeOS port is now compiled with the "-no-fpic" flag, which allows
+ me to use my inline assembly. The executable work fine as far as
+ I can tell.
+
+ Added "Makefile.beos". gcc doesn't like my inline assembly
+ used in RefreshLine(),so this port will likely be slightly slower than
+ other x86 ports.
+
+ Added a check to make sure SIGBUS is not equal to SIGSEGV in
+ drivers/cli/main.c. Needed for compiling under BeOS.
+
+ Renamed the "PI" member of the X6502 structure due to conflicts with
+ a defined symbol with some math header files.
+
+ Merged fcelineasm.h into fceline.h
+
+ Fixed(possibly) a possible problem in fcelineasm.h with input register
+ clobbering.
+
+ More SDL changes.
+
+ Added speed throttling code to the CLI code, and added a command
+ line switch "-nothrottle".
+
+ Lots of restructuring/rewriting/merging of the MMC3 code.
+
+ Updated DOS code to use the generic CLI wrapper.
+
+ Reads from $4090 and $4092 now return the current envelope setting
+ in FDS sound emulation. I'm not sure if this is correct... Affects
+ "Ai Senshi Nicole" and "Bio Miracle Bokutte Upa".
+
+ Added native SDL sound support to the SDL code. the "olinuxsdl"
+ now uses this code by default instead of the unixdsp sound code.
+
+ Modified MMC3 IRQ counter emulation. I'll need to watch out to see
+ if it breaks any games. Fixes: MegaMan 3, Gun Nac, Klax(Japanese).
+
+ Changed a few memory reads in x6502.c to use RdRAM instead of RdMem,
+ resulting in a slight speed increase.
+
+ Cleaned up mapper 250 emulation code.
+
+ Added support for iNES mapper 51(thanks to Kevin Horton for the
+ information).
+
+ Merged some iNES mappers corresponding to bootleg multicarts
+ based on MMC3s with mbshare/mmc3.c.
+
+ Added support for iNES mapper 52(thanks to Kevin Horton for the
+ information).
+
+ Made some hacks to the MMC3 emulation code so that I can add support
+ for pirate MMC3 multicarts more easily. I should clean it up later.
+ Moved mapper 44 emulation code to mbshare/mmc3.c.
+
+ Saving screen snapshots will no longer corrupt the frame buffer
+ for one frame(unless memory couldn't be allocated).
+
+ Fixed screen snapshot saving(it was sort of broken due to the
+ changes made to the driver<->emulator interface code; status
+ messages were being saved to the image). FCEUI_SaveSnapshot()
+ no longer returns a value(the request to save a screen snapshot is
+ serviced before status information would be written in the next frame).
+
+ nosprites is now set to 0 before RefreshSprite() returns, to prevent
+ problems if a game turns off the bg and sprites when FetchSpriteData()
+ for the next scanline is called but then turns on sprites when
+ the actual scanline is drawn.
+
+ PPU_hook() is now called more often if PPU_hook is non-null.
+ Made changes to mappers 118, 95, 9, and 10 to compensate.
+ No games seem to be broken, and I added support for mapper 96
+ (though the games aren't very playable because the special controller
+ isn't emulated).
+
+ Romance of the 3 Kingdoms is now recognized to use 16KB ex-WRAM.
+
+ Added support for mapper 185...sort of. I think this is another
+ instance of incompatible hardware being lumped onto one mapper number.
+ Sigh.
+
+ Added support for "Famicom Jump 2" as iNES mapper 153.
+ If a good(as far as I can tell) dump is loaded, FCE Ultra will
+ automatically fix the mapper number.
+ I also made some changes to the mapper 16 IRQ emulation code.
+
+ BRK now sets the I flag.
+
+ Reads from $4015 no longer reset DPCM IRQ.
+
+ Changed emulation of RTI instruction slightly.
+
+ X.IRQlow is now set to 0 in PowerNES().
+
+ The VS Unisystem bit in the iNES header is no longer looked at(
+ I was having too many problems with this bit being set when it
+ shouldn't have been). Now, VS Unisystem emulation is enabled
+ when a known VS Unisystem game is loaded. I also rewrote the VS
+ Unisystem detection function.
+
+ iNES mapper 1 now supports pageable CHR RAM if no CHR ROM is present.
+ Fixes "Family School".
+
+ Mapper 70 no longer has a mirroring control emulated, and I extended
+ the number of 8KB CHR pages supported to 16.
+
+ Cleaned up iNES MMC5 save RAM loading/saving code and added
+ support for MMC1 games with 16KB of RAM(the second 8KB are saved),
+ via CRC32s(currently only Genghis Khan(USA) and Nobunaga's Ambition(
+ USA and Japan) are recognized).
+
+ Added support for the MMC5 Koei game "Ishin no Arashi", in the iNES
+ format(I added an entry with its CRC32 value and the number of 8KB
+ WRAM banks it needs).
+
+ Better iNES mapper 33/48 IRQ counter emulation.
+
+ Added the game "Uchuusen - Cosmo Carrier" to this list. I'm
+ beginning to hate the iNES format more and more...or maybe
+ just Fanwen. :)
+
+ Added the mapper 32 game "Major League" to the list of games
+ that usually need iNES header correction...but in this case, the
+ iNES header cannot specify that this game needs to have one-screen
+ mirroring.
+
+ iNES header information is now printed before any header corrections
+ are made based on a database.
+
+ Fixed a bug in mapper 32 emulation. "Ai Sensei no Oshiete"
+ works now.
+
+ Tried to add support for iNES mappers 245 and 249.
+
+ Fixed the MMC5 read handler to return the data last on the data
+ bus instead of 0xFF when a read was made to an unmapped address.
+ This seems to fix the lockup problems in "Bandit Kings of Ancient
+ China".
+
+ Reversed "Modified the time at which the "y scroll" register is updated
+ during hblank." The changes broke Klax.
+
+ Added an unsigned 64-bit base timestamp variable "timestampbase".
+ Adding this to the 32-bit variable "timestamp" will return
+ the number of cycles executed since emulation started(in the future
+ I'll probably change it to since reset or power toggle).
+ This allowed me to replace "lastn" hack in the MMC1 code with
+ something better.
+
+ Changed my mind and undid the removal of support for old save states.
+
+ Removed support for old save states and in general I won't
+ try to support save states made with previous versions.
+
+ MMC1: Writes to $8000-$FFFF with D7 set will now cause
+ the first MMC1 register to be OR'ed with 0x0C. I'm not sure
+ if this is correct, but it doesn't seem to break anything
+ and it fixes Robocop 3. I'll see if anyone reports games
+ not working in .81 that worked in .80.
+
+ Worked on a generic driver interface wrapper very similar
+ to the driver interface FCE Ultra used to use(I'm getting
+ tired of all of the duplicated driver code). Eventually,
+ the DOS, SVGAlib, and SDL ports will use this wrapper.
+
+ Similar change to the argument parsing code.
+
+ Changed configuration file saving-loading routines and the
+ configuration structure to allow for linking config structures
+ to each other).
+
+ Small fix to the emulation of the MMC5 split screen mode.
+
+ Made Linux SDL code compilable again.
+
+ Changes to MMC5 EXRAM emulation(read/write).
+
+ Fixes to the emulation of the MMC5's split screen mode, based on
+ observations while using CastleVania 3 and a Game Genie(on a real
+ NES).
+
+ Fixed a bug in ines.c that caused any calls to AddExState() from
+ a mapper initialization function to be effectively "erased"(ResetExState()
+ was called after the mapper was initialized). Fixes the VRC7 sound
+ state saving/loading stuff.
+
+ Finished adding support for the MMC5's split screen mode(this does
+ not mean that the support is complete, but at least the intro in
+ "Uchuu Keibitai SDF" works correctly now).
+
+ Worked on adding support for the MMC5's split screen mode. Not
+ completed.
+
+ Reverted to .80's FDS sound code.
+
+ Modified the time at which the "y scroll" register is updated
+ during hblank.
+
+ NSF playing code will now disable FDS sound output on song init
+ (fixes some problems with the Zelda no Densetsu NSF rip).
+
+ Increased the emulated clock speed of the FDS sound emulation code
+ to give better quality output.
+
+ Modified NMI to occur a few cycles later. Fixes BattleToads...but
+ it may have broken other games. Also modified the way NMI's are
+ handled in x6502.c.
+
+ Modified ines.c to memset() GameMemBlock to 0 on virtual power toggle.
+ Also, trainers are now loaded into their own buffer instead of
+ directly into emulated WRAM and copied into emulated WRAM on
+ power toggle; I've been meaning to do this for quite some time.
+
+ Changes to the way the zapper cursor is drawn on the screen.
+
+ FCEUD_WriteSoundData(), FCEUD_BlitScreen(), and FCEUD_UpdateInput()
+ have been combined into one function: FCEUD_Update().
+
+ More fixes to the network play code, and a fix to the Windows network
+ play driver code that fixes(hopefully) a rather evil bug that caused
+ lockups when the remote stopped network play.
+
+ Added code to set the battery-backed bit in RAM if a game needs it,
+ based on CRC32.
+
+ Added more games to the list of games that commonly have bad iNES
+ headers, in ines.c
+
+ Updated docs and usage.h for DOS and Linux regarding the new video
+ mode and the new refresh rates.
+
+ Linux: Fixed a bug with video mode 6(a few upper scanlines were being
+ cut off). Increased the refresh rate of video mode 3 to 120hz.
+
+ Increased the refresh rate of video mode 2 to 65 hz in the Linux port.
+
+ Screen snapshots can now be taken while playing an NSF.
+
+ Added a new sexy tweaked vga mode that I created to the Linux svgalib
+ port. It's 256x224 at a refresh rate of 103hz. Hopefully it won't
+ blow up anyone's monitor. ;)
+ DOS port will follow eventually.
+
+ Modified Makefile.base to produce an executable named "fceu" instead
+ of "fce".
+
+ The plans(cycle-accurate ppu emulation) for .90 were a bit ambitious,
+ and I still need to make other fixes before then.
+
+ Fixed some minor(usually) bugs with setting 256x240 tweaked VGA mode
+ in DOS and Linux ports.
+
+.80:
+----
+
+ Cleaned/fixed a few things in the mapper 19 emulation code.
+ Family Circuit '91 still doesn't work quite right... I wonder if
+ it's a bad dump.
+
+ Added input override code to Windows port.
+
+ Added code to fix iNES header information in RAM and suggest
+ changes to the user.
+
+ Added support for iNES mapper 152(to be used with games set to
+ mapper 70, that use one-screen mirroring instead of h/v mirroring).
+
+ Blits using the DirectX blitting function(method?) to the primary
+ surface are now done with the asynchronous flag set(if that
+ fails, a "normal" blit is tried).
+
+ The DirectX blit buffer(secondary surface that FCE Ultra writes to
+ directly and then uses the DirectDraw blit function on to blit
+ to the primary buffer) is now created without specifying it
+ should be in system memory or video memory, except in the case
+ when no hardware blitting is available, and then DDraw is explicitly
+ told to create the surface in system memory.
+
+ Added Family Keyboard support to the DOS port.
+
+ Cleaned up the VRC7 sound emulation code. I need to find a way
+ to save the current sound state in a save state.
+
+ Found out the real name of the "Space Shadow" gun; it's
+ called the "Hyper Shot". I'm still not sure who made it, though.
+ Possibly Bandai did. The interesting thing is that Konami
+ also made a Famicom accessory(dual square boxy things with two buttons
+ on each) with the same name(though there might not be a space in the
+ name).
+
+ Only the upper two bits read from $4016/$4017 are undefined.
+ Bit5 is always 0, though. Fixed the bug in "input.c".
+ Silly kevtris' old documents. New kevtris' brain is always good.
+
+ Family Keyboard support for the Windows port.
+
+ Added support for the Family Basic Keyboard to the Linux port, other
+ ports todo.
+ Might want to add support for the tape recorder at some time.
+ Also mapped the "Scroll Lock" key to disable/enable command keys
+ so that the FBK is more useable. It doesn't disable CTRL C,
+ though...
+
+ Changed a lot of inlined functions in x6502.c to macros so that
+ I could test out some optimization ideas.
+
+ DOS code updates for game input override support.
+
+ Small optimzation to opcode $4c, and relative jumps.
+
+ Added some code to ines.c to set controller information in
+ FCEUGameInfo(returned by FCEUI_LoadGame()) based on crc32 values.
+
+ Updated user documentation and usage.h for DOS and SVGAlib input
+ command-line changes.
+
+ Added an option to disable the four-score(to Windows and Linux ports
+ so far).
+
+ Updated Windows interface to support the new Famicom expansion
+ devices.
+
+ (Re)Added support for the Famicom 4-player device.
+
+ Improved Zapper emulation...sort of. It still needs a lot of work. :/
+
+ Added *partial* support for the "Space Shadow" gun.
+
+ Added support for the Arkanoid controller(both NES and Famicom style).
+
+ Added code to support the extension Famicom input devices.
+
+ Added PAL scanline start/end drawing settings to Windows port.
+
+ Added pause emulation key(F2) to Windows port.
+
+ In the process of rewriting/fixing up input code stuff.
+
+ Minor bug fix to Power Pad emulation code.
+
+ VS Hogan's Alley and VS Duck Hunt automatically select the zapper
+ now(though it only works on the SVGAlib port).
+
+ Undid some FDS sound code changes introduced in 0.76 that totally
+ screwed up sound. Oops.
+
+ Added code to allow different settings for first/last scanline
+ drawn while in PAL emulation mode, to the Linux and DOS ports.
+
+ Added convenience(it's not necessary, but it reduces redundant and
+ confusing code in the driver code) function
+ FCEUI_GetCurrentVidSystem(int *slstart, int *slend).
+
+ Updated file "TODO".
+
+ Changed #include <unzip.h> to #include "zlib/unzip.h"
+ in file.c.
+
+ NSF 6502 player now initialized the stack pointer on reset.
+
+ Worked on de-emphasis emulation code quite a bit.
+ The deemphasized palette calculated at the end of the frame is now
+ based on what deemphasis bits were set for the longest during
+ the screen(sampling interval is a scanline) update loop.
+ Added a "static" deemphasized palette at $40-$7F in the palette table.
+ This corresponds to the colors when all of the deemphasis bits are set.
+ I did this to fix the PAL game "Noah's Ark", without breaking
+ anything else. The only downside is a slight speed loss(~2% on
+ my system when sound is disabled), but this is acceptable to me,
+ at least.
+ Maybe it's time to write hi/true-color ppu drawing code...
+
+
+ Fixed an out of bounds array access in svga.c in SetNESDeemph().
+ The variable "lastd" in svga.c was being initialized to the wrong value.
+ Thanks to "Jarod CANAL" for pointing this out.
+
+ Removed FCEUI_SetFirstRenderedLine or whatever it was called and
+ the function to set the last line. Replaced with:
+ void FCEUI_SetRenderedLines(int ntscf, int ntscl, int palf, int pall);
+
+ Changed SetVidSys(int w) to ResetVidSys() in fce.c. Reenabled
+ PAL/NTSC emulation overrides based on game loaded(really only useful
+ for NSFs and UNIFs now).
+
+ UNIF loading code now recognizes the chunk "CTRL" and tries
+ to use it. Only the svgalib code supports overriding of input
+ settings based on game loaded, now, though...
+ The user is still going to have to configure powerpad settings
+ on his/her own.
+
+ Fixed return values of FCEU_fseek() and fixed a problem in unif.c
+ related to it.
+
+ Changed mechanism for how FCE Ultra tells the driver
+ code what type of system is being emulated. A structure of
+ type "FCEUGI" is returned from FCEUI_LoadGame().
+
+ Fixed a major mapper 64 emulation bug introduced in 0.76.
+
+ Modified BlitVidHi() in drivers/win/video.c to speed it up.
+
+ Added support for loading the iNES-format Game Genie ROM image.
+
+ Removed ggrom.h and added code to load the Game Genie ROM
+ image from a file.
+
+ Added Windows netplay.c. (new: the user exiting the emulator
+ while stuck in a blocking recv() or send() loop now works.)
+
+ Fixed a vram address register bug in fce.c that I created when I got
+ rid of the pair/dpair data types.
+
+ Added new mappers/92.c
+
+ Removed mappers/92.c until I can contact LULU or rewrite it.
+
+ drivers/win changes. Removed netplay.c until I can rewrite it.
+
+ Got rid of pair/dpair data types.
+
+ Got rid of silly "TempArray" thing.
+
+ Began adding GPL headers to files. FCE Ultra is going to be in
+ a state of legal limbo for the next few days...
+
+ Replaced crc32.c and crc32.h, and added some #ifdef's and #defines
+ to use the crc32 code in zlib instead if zlib is linked with
+ FCE Ultra.
+
+ More fixes to sb.c.
+
+ Cleaned up drawing.h and ggrom.h(even though ggrom.h will *probably*
+ be removed before the next release).
+
+ Redid frameskip code.
+
+ Rewrote necessary pieces of sb.c and sb.h and fixed quite a few
+ bugs. I still need to test it on various other sound cards, though.
+
+ Rewrote(more like "recreated in my own image") DOS keyboard driver.
+ Removed unused "keyscan.h" from drivers/svgalib
+
+ Rewrote part of(the parts that Marat wrote - the connection and
+ closing parts) the Linux TCP/IP network play code. I guess it works,
+ but I haven't tested it very much. In any case, it's still dangerous
+ to use network play in FCE Ultra with SVGAlib, since recv() or send()
+ might block and since the keyboard is in raw mode, you have a problem.
+ Maybe a future SVGAlib will fix the general problem of lockups if
+ keyboard_update() isn't called, though it is only partly SVGAlib's
+ problem...
+
+ Fixed FCEU_fseek() when used with a compressed file in the PKZIP
+ format that has been loaded. Fixes a UNIF loading problem.
+ Also added a check to the return value of FCEU_fseek() in unif.c.
+
+ Replaced Marat's 6502 emulation core with my own.
+ It should be fully functional, but as always, I don't know if
+ I implemented the undocumented instructions correctly.
+ Several things are correct in this new core that were not in
+ Marat's(D flag is no longer cleared by interrupts, for example).
+
+ Altered mapper 16 irq counter emulation slightly.
+
+ Fixed the behavior of the SXA, SYA, and XAS opcodes based on the
+ documentation I have. I'm not sure what happens when page crossing
+ occurs with those instructions on a real NES, though.
+ Also CHANGED(not fixed) emulation of opcode $8B("XAA").
+
+ Changed some of the M* functions(absolute indexed and maybe some others)
+ to perform dummy reads.
+
+ Changed some of the macros in m6502.c to inlined functions so
+ that I can modify and examine them more easily.
+
+.77:
+----
+
+ Fixed a silly network play bug(in the global network play code)
+ that caused excessive lag.
+
+ Added a "niceness" setting to the sound configuration dialog.
+ Removed obsolete information from the dialog.
+
+ Fixed speed throttling code in Windows port when PAL emulation is
+ disabled/enabled and a new game hasn't been loaded yet.
+
+ Commented out a printf() to debug stuff in fds.c(oops).
+
+ Applied PK's joystick patch to the osdl code. It allows the user
+ to map axes and it fixes a joystick button mapping configuration saving
+ bug.
+
+ Added two command line options new to Linux port to DOS port.
+ Just need to test them...
+
+ Added some stuff to unif.c to allow for boards that can support
+ CHR RAM instead of CHR ROM(darn Sachen boards...). Fixes UNIF
+ version of "Q-Boy".
+
+ Added command line option "-snapname" to Linux port. I'll add it
+ to the Windows port as well, but probably not to the DOS port.
+
+ Added clip option to Linux port.
+
+ Fixed sound logging(in Windows port) so that multiple recording
+ sessions now work.
+
+ Added an option to clip the leftmost and rightmost 8 columns
+ of graphics in the Windows port.
+
+ Added a submenu that lists recently opened files, in the Windows
+ port.
+
+.76:
+----
+
+ Updated porting.txt.
+
+ Added speed throttling code to Windows port that's used when sound is
+ disabled(and an option in the "Miscellaneous"
+ configuration window to disable it).
+
+ Added cheat interface to DOS build.
+
+ A few tweaks to the text cheat interface code in the cheat listing code.
+ Added a command to quickly toggle the status of the cheat(though a
+ cheat can still be disabled/enabled by (M)odifying the cheat).
+
+ Support for UNIF UNL-TC-U01-1.5M board added. Same credits as below.
+
+ Rewrote mapper 228 code just for the heck of it(actually, I couldn't
+ figure out why some(about two) of the games in the Action 52 cart
+ weren't working in .75(and .76). I traced it back to .71, where an apparent bug in
+ the undocumented 6502 opcode emulation allowed it to work, which
+ was later fixed for the .72 release(opcode 0x7C)). I'm thinking
+ that the dump is bad...
+
+ Added a few crc32 checks to ines.c to check for and report when
+ a known(by me) bad(hacked or bad dump) game is loaded.
+
+ Added support for the following UNIF boards. Thanks to Quietust
+ and Kevin Horton for the information. Some problems still exist
+ with a few games that use these boards, though...
+
+ UNL-Sachen-8259B
+ UNL-Sachen-8259A
+ UNL-Sachen-74LS374N
+ UNL-SA-016-1M
+ UNL-SA-72007
+ UNL-SA-72008
+ UNL-SA-0036
+ UNL-SA-0037
+
+ Fixes to some stuff in cart.c(for example, calling setprg32() when
+ only 16kb of prg data is present now works).
+
+ Added support for iNES mapper 189.
+
+ Tried to add support for the UNIF board "UNL-H2288". Failed.
+
+ Updated "cheat.txt" to fix a few typos and added an example of finding
+ and adding a cheat using the Linux port's text interface. The actual
+ section on the Linux cheat interface still needs to be written, however.
+
+ Changed network play code in the Windows port and fixed a bug.
+ Fixed a similar bug in the Linux netplay code....sort of.
+
+ A few cosmetic changes to the dialogs in the Windows port.
+
+ Fixed sound initialization on the Windows port(it was being initialized
+ when FCE Ultra started even if it was disabled by the user. Oops.).
+
+ Joystick button configuration code in Windows port changed slightly
+ to be more useable.
+
+ Changed reference to video mode 5 in the linux port to "1 per 4".
+ It may not be very meaningful, but it is certainly better
+ than "TV Emulation". I'll change the Windows port reference later.
+
+ Documented video mode 7(320x240) for the Linux port. Also added
+ a check for the FBDev driver in order to use this mode instead
+ of a tweaked vga mode if that driver is being used.
+
+ Added/Fixed cheat interface for Linux port. It's still not perfect,
+ though. The code is ugly...
+
+ Callback function for FCEUI_ListCheats() now receives
+ status information(enabled/disabled).
+
+ Callback functions for cheat functions now must return 0 to
+ stop listing cheats or 1 to continue.
+
+ Fixed a problem(the cheat code was reading in cheats
+ for address $0000 from cheat files if any blank lines were present).
+
+ SDL port zlib changes(linked dynamically to zlib now).
+
+ More changes to envelope decay + looping on code. No longer
+ depends on value @ $4017. It now sounds correct based on some
+ tests I did with SMB3 and a GG, but Goonies 2 doesn't sound right(
+ based on a sound file sent to me by another person).
+
+ Added support for iNES mapper 140. Thanks to Quietust for the
+ information.
+
+ I need to figure out how to deal with the problem of so many
+ bad NSFs that most people consider good...
+
+ Changed envelope decays a bit. Their behavior now depends on bit
+ 7 of $4017. I don't know if this is right...
+
+ Addition of debug.c for some debugging stuff.
+
+ Updated zlib to 1.1.4.
+
+ Modified code in various files to allow UNIF games to override
+ current selected video system emulation(NTSC or PAL). Need to
+ make sure this really works.
+
+ Changed sound.c to prevent desynchronization during network play.
+ This might slow down sound emulation slightly, especially when
+ sound emulation is disabled. I really don't care...
+
+ Updating network play code. More info later...
+
+ Moved the sound/video/etc output code in EmLoop() to the top of the
+ for(;;) loop so that initialization prior to calling EmLoop() will
+ be the same as initialization done during a call to a FCEUD_* function.
+
+ A few very small changes to sound emulation in fds.c.
+
+ Changed unlink() to remove() in cheat.c and removed the including
+ of the header file unistd.h.
+
+ Split up the cc=... statement in RefreshLine() to make it easier
+ to read and not ambiguous(to Borland's C compiler).
+
+ Changed a lot of the function declarations in cheat.c. I'll need
+ to verify that cheat searching still works ok and that cheats still work
+ ok. I'll also need to update the Windows(and Linux console) cheat code
+ to prevent compiler warnings.
+
+ Fixed various minor code problems(not minor if you want to use a
+ compiler besides gcc). This is an ongoing process...
+
+ Removed bit fields after reading about and thinking about possible
+ portability problems, though I kept some optimizations in fceline.h
+
+ Minor code simplification in drivers/win/joystick.c(replaced
+ "case 200 ... 207" and "case 208 ... 215".
+
+ Modified some code to use bit-fields in the graphics rendering code
+ in fce.c and fceline.h. gcc seems to be able to optimize the new
+ code to run faster.
+
+ Fixed m6502.c and fce.c to initialize variables on virtual power
+ toggle. This should fix network play on the Windows port.
+ I'm also in the process of cleaning up fce.c.
+
+.75:
+----
+ Fixed directories configuration stuff in Windows port(corresponds
+ to .75r2).
+
+ More changes to square wave channel envelope/volume emulation...
+ Changes described in the large paragraph some lines down have been
+ abandoned.
+
+ Added a command line switch to set the volume in the dos port.
+
+ Changed Windows sound configuration dialog. Now buffer length is
+ specified in time, not samples. I also added a volume control.
+
+ Reduced the volume on 8-bit sound output on all ports by 1/2.
+
+ Added a function FCEUI_SetSoundVolume(). Added support for setting
+ the volume via the command line in the Linux port, other ports coming
+ soon.
+
+ Changed FCEUD_WriteSoundData() again. No longer has a "Check"
+ argument. All clipping(ugh) is done internally now.
+
+ Added a directories configuration dialog to the Windows port. I worked
+ on it too long and I became a zombie, so it might have a few bugs.
+ That's what guine...err...users are for. ;) Don't expect me to do
+ anything like this for any other port, though. I don't feel like
+ doing it on the DOS port, and the Linux and other UNIXy ports shouldn't
+ really need it.
+
+ Made some changes to the rectangle/square wave channel emulation to
+ fix the pops in SMB. I have no idea if what I did is correct. To
+ be honest, I'm not sure I know EXACTLY what I did, but it's something
+ like this: Writes to $4003/$4007 now reset the duty cycle count
+ and reload the cycle counter with the current wavelength. Writes to
+ $4003/$4007 now do not update the amplitude output of the channels; they
+ will be updated after the cycle counter hits 0(or below).
+
+ More information in iNES informational output.
+
+ Minor changes to mappers/16.c.
+
+ Increased the volume of the VRC6's sawtooth wave channel.
+
+ Added more information to the RAM cheat guide.
+
+ Changed the triangle wave generation code slightly. I decided
+ to remove support for the higher-frequency triangle waves, as they
+ are too cpu-costly to create and are probably not very audible on a
+ real NES anyway.
+
+ Major changes to how sound is mixed. This necessitated a high pass
+ DC-offset removing filter, and a low-pass filter just to make things
+ sound better. ^_^
+ Note: FCEUD_WriteSoundData() no longer needs to clear the waveform
+ data referenced by the passed pointer; it's done internally now.
+
+ Fixed JMP ($xxxx) - now handles wrapping like it occurs on a real 6502
+ (hopefully; I'm assuming that the same holds true for the NES' cpu).
+
+ Added the ability to load a custom global palette in the DOS port.
+
+ Fixed bug in drivers/common/unixdsp.c(wrong return value if sample
+ rate was out of range).
+
+ Many sound fixes... - Frequency sweeps, length counter stuff,...
+
+ Changed Windows port to use IDirectInput7 and IDirectInputDevice7
+ interfaces.
+
+ Fixed a Game Genie bug in the core emulation code. It only appeared
+ in the Windows port, though. (Enabling gg emulation, loading a game,
+ and then disabling gg emulation and loading a new game while in the
+ gg code entry screen would cause the new loaded game to not work
+ correctly).
+
+ Modified windows port to use the config saving/loading stuff in
+ drivers/common/config.c
+
+ Mapper 45 cleanups/fixes.
+
+ Added the ability to load a custom global palette in the Linux port.
+ Yay.
+
+ Fixed a large number of overcomplicated code and silly bugs in
+ drivers/common/config.c. This changes the format of the configuration
+ structure, too. Also added support for saving/loading strings with
+ automatic memory allocation when strings are loaded.
+
+ Minor change in InitNetplay().
+
+ Fixed bad type conversions for pointers to functions and fixed
+ some bad declarations of functions.
+
+ Reenabled zlib support for the sdl build. I need to pay attention
+ to patches that modify lines than don't fit on my screen.
+
+ Fixed vidblit.c to not emit so many warnings when compiling.
+
+.74:
+----
+
+ Stop sound in Windows port when user clicks l/m/r mouse buttons
+ in the non-client area of the window.
+
+ Added "Drag and drop" file open support to Windows port.
+
+ Various code cleanups.
+
+ mappers/33.c optimization.
+
+ Rewrote the function "FCEU_MakeFName()".
+
+ Removed crc32.h from mappers directory.
+
+ Modified some of the window resizing code in the Windows port.
+
+ Added support for waiting for vblank/double buffering to the Windows
+ port.
+
+ Added/Fixed support for iNES mapper 248.
+
+ After an NSF file is loaded, information about its header is now
+ displayed.
+
+ Fixed a typo in the Namco 106 extra ram handling code.
+
+ Improved the quality of the Namco 106's extra sound channels.
+ - Thank Mamiya and Applepie(real name?) for info.
+
+ When an NSF file is being played, FCE Ultra will no longer go through
+ its scanline rendering loop. This speeds up NSF playback considerably.
+
+ Updated "porting.txt".
+
+ Moved some stuff from DriverInterface() to their own functions.
+
+ Fixed some iNES mapper 18 IRQ counter emulation bugs. "Ninja Jajamaru -
+ Ginga Dai Sakusen" now works.
+
+ Rewrote large pieces of the mapper 64 code. "Skull and Crossbones"
+ still doesn't work, though.
+
+ Changed format of iNES header information output, added "ROM CRC32" info.
+
+ Modified the way cycle timing is done slightly. No change
+ for NTSC emulation, but PAL emulation is a little more accurate.
+
+ Changed the behavior of indirect indexed(I hope I got that right ;))
+ instructions to behave more like a real 6502(junk reads are now
+ performed).
+
+ A few optimizations/cleanups in m6502.c.
+
+0.73
+----
+
+ * Fixed several bugs with sprite emulation. Several games(such
+ as "Trojan" and "VS Duck Hunt") that were broken in .71 and .72 now
+ work ok.
+ * Added support for iNES mapper 82. Thanks to those who work on
+ "unofficial nester".
+ * Added support for iNES mapper 250(used by "Time Diver Avenger").
+ * Fixed the documentation to show that iNES mappers 48, 83, and 232
+ are supported.
+ * Removed various pieces of stale code and fixed a few minor bugs.
+ * Fixed a triangle wave channel bug(the channel was sometimes enabled
+ when it shouldn't have been).
+ * Writing to $4010 with the upper bit clear now acknowledges the DPCM
+ IRQ. This appears to fix "Stunt Buggies".
+ * Rewrote pieces of the Zapper emulation code to be cleaner and more
+ accurate.
+ * Rewrote the VS Unisystem dip switch drawing code.
+ * Simplified the setting of VS Unisystem dip switches. The "V" key
+ now toggles viewing AND editing of dip switches.
+
+0.72
+----
+
+ * Various minor bug fixes.
+ * Various code cleanups and size and speed optimizations.
+ * Removed some (apparently) unused MMC5 sound emulation code.
+ * Changed the behavior of $2003 and $4014 to better simulate what occurs
+ in a real NES.
+ * Fixed a few bugs in the undocumented 6502 opcode emulation code.
+ The Game Genie code "NUTANT" for SMB 3 works correctly now, at
+ least(previously it caused the game to lock up at the end of levels).
+ * Rewrote large pieces of the 6502 memory fetching code, resulting
+ in a slight slowdown in the speed of emulation. Benefits include:
+ Game Genie emulation now works(again) and 6502 emulation is more
+ accurate.
+ * Added support for iNES mapper 72. Thanks to rinao for the information.
+ * Fixed support for iNES mapper 77(used by Napoleon Senki).
+ * Fixed/Added support for iNES mapper 226. Apparently I made a mistake
+ in the documentation. Thanks to Mark K. for the information.
+ * Added support for iNES mapper 227. Thanks to Mark K. for the
+ information.
+ * Added support for iNES mapper 234(used by the Maxi-15). Thanks
+ to Mark K. for the information. Note that many of the Maxi-15
+ ROM images on the Internet have corrupt CHR data(graphics), or the
+ mapper number is set incorrectly(usually to 11). Use a utility to
+ fix the mapper number.
+ * Added support for the following UNIF boards(prefixes omitted):
+ - EKROM (and fixed the reference to "Gemfire" in the documentation).
+ - HKROM
+ * Added the ability to enable and disable individual RAM cheats.
+ * Fixed some problems with the cheat search code(the NES' internal
+ RAM was being searched differently than any external RAM, which
+ was being search incorrectly).
+
+0.71
+----
+
+ * Fixed a 6502 emulation bug that was causing some Koei games
+ (ex: Nobunaga's Ambition, Genghis Khan) to not work.
+ * Extensive PPU/CPU timing adjustments.
+ * Fixed support for iNES mapper 40.
+ * Added support for the following UNIF boards(prefixes omitted):
+ - ETROM
+ - ELROM
+ - EWROM
+ * Fixed a few bugs in the UNIF code.
+ * Added support for loading and saving cheat files and an interface
+ to search for/add/delete/list cheats(no interface yet on Linux/DOS).
+ * Fixed a few minor bugs in the Windows DX code.
+ * Command line options to control the number of sound fragments
+ and the fragment size have been added(Linux).
+
+0.70
+----
+
+ * Adjusted PPU/CPU timing.
+ * Removed(until I understand the problem) a hack to get one of the
+ games in the Caltron 6-in-1 to work.
+ * Fixed an MMC3 IRQ emulation bug("Project Q" works better now).
+ * Fixed a problem/misunderstanding regarding the upper scanline.
+ It can now be displayed again.
+ * More accurate sprite hit emulation(fixes the title screen of
+ "Ultimate Stuntman").
+ * VRAM bank switching for iNES mapper 4 is now possible(and enabled
+ for all mapper 4 games without CHR ROM). Fixes "Tenchi o Kurau 2".
+ * Added support for the Famicom's four-player adapter and the ability
+ to enable it(it is disabled by default to prevent compatibility
+ problems).
+ * Added an option(under miscellaneous configuration) to automatically
+ open the "File Open" dialog box when FCE Ultra is started.
+ * Sound sampling rate is now configurable.
+ * Fixed some bugs in the DirectSound code.
+ * Joystick button configuration is a little more user friendly(and
+ stable, hopefully) (Linux).
+
+0.62
+----
+
+ * Added support for the Famicom Disk System's extra sound channel.
+ * Updated the version of Tatsuyuki Satoh's OPL2 emulator used in
+ FCE Ultra from .36f to .37a. The sound quality in "Lagrange Point"
+ seems to have improved.
+ * Added support for iNES mapper 242(used by "Wai Xing Zhan Shi").
+ * Fixed a network play bug that could cause desynchronizations
+ if more than one network play session occured since FCE Ultra
+ was started. This bug only showed up on the Windows port, though.
+ * Increased the volume of the noise and triangle sound channels.
+ * Fixed a save state loading bug.
+ * Fixed a small memory leak that was being caused by the VRC7
+ state loading code.
+ * Fixed a bug that could cause FCE Ultra to crash if a virtual disk
+ was being read and the user ejected the virtual disk.
+ * Various minor bug fixes/code cleanups.
+ * NTSC color "emulation" can now be enabled again(the code to
+ enable it was broken in the last version). (Linux)
+
+0.61
+----
+
+ * Speed optimizations in sprite rendering code.
+ * Screen snapshots are now saved in the PNG format instead of the PCX
+ format.
+ * Fixed Game Genie emulation(it wasn't working in the last release).
+ Also added support for Game Genie emulation to the UNIF code.
+ * Rewrote command line option parsing code.
+ * Fixed a problem(if FCE Ultra was configured to connect to a remote
+ host and the remote host was given as an IP address, and the IP
+ address couldn't be reverse resolved, which is commonly the case
+ on home LANs, the connection attempt would fail) in the network
+ play code. I had misinterpreted the Winsock API documentation
+ when I wrote the code. (Windows)
+
+0.60
+----
+
+ * Various speed optimizations.
+ * Sound is no longer messed up when a JAM/KIL opcode is emulated.
+ * Fixed an overflow bug that occured when $4014 was written to
+ during certain(rare) conditions.
+ * Fixed a few save state bugs.
+ * Fixed a MMC1 CHR bank switching bug.
+ * Added emulation of the MMC5's WRAM write-enable/disable registers.
+ * Fixed a sound frame IRQ emulation bug. "Qix" works now.
+ * Added UNIF support. Some of the board emulation is still a bit
+ buggy, though. Look at the documentation for a list of supported
+ boards.
+ * Updated the "Palette Notes" section of the documentation. Also
+ fixed a few other problems with the documentation.
+ * Added support for loading files in the PKZIP and gzip
+ compressed file formats via zlib.
+ * Added the ability to configure the first scanline and the last
+ scanline to draw to the screen. Enabling PAL emulation no longer
+ will cause all 239 scanlines to be displayed, though an option
+ to override these settings for when PAL emulation is enabled may
+ be in the next version.
+ * Fixed a bug that would cause the emulated D-pad of virtual gamepads
+ emulated through the keyboard to be duplicated through "higher"
+ virtual gamepads(gamepad 1 would affect 2,3,4; gamepad 2 would
+ affect 3,4; etc.). (Windows)
+
+0.55
+----
+ * Rewrote window resizing code. The window will now resize itself
+ to a multiple of the NES' screen dimensions nearest to the user
+ selected dimensions. (Windows)
+ * Added an option to use buttons instead of axes on physical joysticks
+ for the emulated D-Pad. This is useful for some digital joysticks. (Windows)
+ * Fixed a bug that would cause FCE Ultra to crash if sound were
+ disabled during emulation. (Windows)
+ * Added the ability to "fast forward" emulation.
+ * Added an option to allow more than 8 sprites per scanline to be
+ displayed.
+ * Added an option to save all extra non-volatile game data
+ (such as battery-backed RAM) in a directory under FCE Ultra's
+ base directory(as opposed to the directory the game is located in).
+ * Added an option to allow the emulator to change to a full screen
+ video mode once a new game is loaded. (Windows)
+ * Rewrote pieces of DirectInput joystick handling code. Hopefully
+ it should increase compatibility. (Windows)
+ * Added the ability to automatically obtain button numbers when
+ configuring joysticks, by pressing buttons on the joystick.
+ * Added the ability to close the current game(decreases CPU usage). (windows)
+ * Increased the speed of various function calls by passing
+ arguments to functions through registers instead of through the
+ stack.
+ * Added emulation of the MMC5's raw PCM register.
+ * Added the ability to save/load save states while network play
+ is occuring.
+ * Having PAL emulation enabled will no longer override the
+ NTSC/PAL settings in NSF headers.
+ * Fixed a bug that got into the .54 release. Extraneous data was
+ being returned on reads from $2002, which caused problems
+ with some games(such as "Choujin Sentai Jetman").
+
+0.54
+----
+ * Fixed a bug that would cause a wrong battery-backed WRAM file
+ name to be produced if FCE Ultra was passed a file name without
+ any directory component(such as "fceu SuperBlah.nes").
+ * Fixed an iNES mapper 118 emulation bug that got into the code
+ in a recent code cleanup. "Armadillo" is playable again.
+ * Fixed a typo(and bug) in the MMC5 emulation code.
+ * Data returned from emulated reads to "unmapped" areas or
+ memory locations where bits are undefined should now be correct.
+ * Fixed emulation of the sprite memory transfer register $4014.
+ It now takes into account the last value written to $2003 and
+ starts the transfer to that location in sprite memory(like on
+ a real NES).
+ * Added a video configuration dialog box. (Windows)
+ * Added the ability to configure a custom video mode. Aspects
+ that are configurable include width, height, bits per pixel,
+ and size transforming(stretching and scaling). (Windows)
+
+0.53
+----
+
+ * Fixed a bug with joysticks that occured on systems with multiple
+ joysticks. (Windows)
+ * Added support for iNES mappers 77 and 92(thanks to LULU for the code for both).
+ * Added partial(timer is non-configurable) support for iNES mapper 105.
+ * Changed save state format again. Save states made with previous
+ versions should still be compatible, though this may change in
+ future versions.
+ * Small optimization to sprite emulation code.
+ * Rewrote color-deemphasis code to use integer math instead of
+ floating-point math.
+ * Rewrote and restructured input code. (Linux)
+ * Added command line option "-f8bit" to force 8-bit sound. (Linux)
+ * Rewrote and restructured input code. Among other new features,
+ keyboard keys are now somewhat configurable. (Windows)
+ * Writes to $4003/$4007 will now reset the emulated square wave
+ duty cycle generator.
+ * Added emulation of the Power Pad.
+ * Rewrote joystick device reading code to use the event-driven
+ interface. This should fix various problems regarding support
+ for joysticks with many buttons. (linux)
+
+0.52
+----
+
+ * Fixed a PCM emulation bug(digitized voices in "Ikari Warriors 2"
+ and "The Immortal", among others, work now).
+ * Fixed noise channel's LSFR update frequencies(hopefully).
+ * Various minor bug fixes.
+
+0.51
+----
+
+ * Added support for iNES mappers 86 and 89.
+ * Reduced byte size of the NSF player's background.
+ * Adjusted CPU/PPU timing.
+ * Fixed sound channel frequency calculations for when PAL emulation is enabled.
+ * Rewrote large pieces of the sound code and got rid of the sound queue. Sound quality should be slightly better now.
+ * Various minor bug fixes.
+
+ Windows:
+
+ * Fixed an FDS side reset bug when a new game is loaded.
+ * Screen width/depth/height changes while FCE Ultra is in windowed mode are handled now.
+ * Changed the configuration file format.
+ * Added a palette configuration dialog.
+ * Added the ability to load a custom NES palette.
+ * Added an option to double 16-bit sound volume.
+ * Added an option to force 8-bit sound.
+ * Added an option to use a secondary sound buffer(versus the primary).
+ * Added an option to wait for vertical blank if sound is disabled.
+ * Added an option to run while focus is lost.
+
+0.50
+----
+
+ * Many bug fixes.
+ * Sound code partially rewritten to improve quality(near-perfect
+ raw PCM now) and eliminate the need for a separate thread.
+ This created a small problem with network play, though, so read
+ the network play notes section. Also, synchronizing to
+ vertical blank has been removed.
+ * Rewrote other pieces of sound code. No more "buzzing" in MegaMan 2,
+ Codemasters games' intros, etc.
+ * Added support for the NES Zapper and the VS Unisystem's light
+ gun. Be sure to read "Light Gun Notes".
+ * Changed save state format. Save states should now be much
+ smaller for most games. Most(not all) save states created with
+ an older version should work.
+ * Added support for VS Duck Hunt and VS Hogan's Alley.
+
diff --git a/attic/authors b/attic/authors
new file mode 100644
index 00000000..f4220e5a
--- /dev/null
+++ b/attic/authors
@@ -0,0 +1,30 @@
+A list of people who have contributed code to FCE Ultra follows.
+Please note that the "Code Contributions" field may not be all inclusive;
+the coder may have done more than what is listed.
+
+Name/Alias Code Contributions Contact Information
+------------------------------------------------------------------------------
+Aaron Oneal Many changes to compile http://www.morphgear.com
+ with MSVC and first frame
+ skipping code.
+
+BERO Base FCE code. bero@geocities.co.jp
+
+CaH4e3 Some mapper code. CaH4e3 at mail dot ru
+
+\Firebug\ VGA register setting code. ??
+
+Joe Nahmias man pages.
+
+LULU SDL network play code. ??
+
+Paul Various code for the official kuliniew@purdue.edu
+ Kuliniewicz SDL port.
+
+Quietust VRC7 "translation" code. quietust@ircN.org
+
+Tatsuyuki OPL2 emulator. ??
+ Satoh
+
+Xodnizel Most of the FCE Ultra code. http://xodnizel.net/
+
diff --git a/attic/fceu-svga.6 b/attic/fceu-svga.6
new file mode 100644
index 00000000..a2f7e503
--- /dev/null
+++ b/attic/fceu-svga.6
@@ -0,0 +1,135 @@
+.\" t Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH FCEU-SVGA 6 "March 27, 2003"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+fceu-svga \- An emulator for the original (8-bit) Nintendo game console.
+.SH SYNOPSIS
+.B fceu-svga
+.RI [ options ]
+"filename"
+.SH DESCRIPTION
+.B FCE Ultra
+is an emulator for the original (8-bit) Nintendo Entertainment System (NES).
+It has a robust color palette rendering engine that is fully customizable,
+along with excellent sound and joystick support, and even includes TCP/IP based
+network playing for head-to-head gaming with your friends!
+.PP
+The emulator is available in two versions for Linux (there are also versions
+for DOS and Windows): an SDL-based version, and one based on SVGALIB. The two
+versions are essentially the same \-\- use the SVGALIB version for the Linux
+console, and the SDL version for playing in X.
+.SH OPTIONS
+These are some of the more frequently used options in FCE Ultra SVGALIB. Run
+fceu-svga without any options for a larger list, or see the README for the full
+list.
+.TP
+.BI \-gg
+Enable Game Genie emulation support.
+.TP
+.BI "\-cpalette " <file>
+Use the custom palette in <file>.
+.TP
+.BI "\-soundvol " <percentage>
+Sets the sound volume to the given percentage.
+.TP
+.BI "\-sound " <rate>
+Set the sound playback sample rate (0 == off).
+.TP
+.BI "\-connect " <server>
+Connect as a client (player 2) to <server> for TCP/IP network play.
+.TP
+.BI \-server
+Be a host server (player 1) for a TCP/IP network game.
+.TP
+.BI "\-netport " <portnum>
+Use <portnum> for TCP/IP network play.
+.SH KEYBOARD COMMANDS
+.B FCE Ultra
+has a number of commands available within the emulator.
+It also includes default keyboard bindings when emulating game pads or power pads.
+.SS Gamepad Keyboard Bindings
+.TS
+center box;
+cb | cb, c | ci.
+NES Gamepad Keyboard
+=
+Arrows Cursor Arrows
+A Left ALT
+B Left CTRL
+Select TAB
+Start ENTER
+.TE
+.SS Other Commands
+.PP
+.TP 15
+.BI <F2>
+Activate cheat interface.
+.TP 15
+.BI <F3>
+Lock virtual console.
+.TP 15
+.BI <F4>
+Unlock virtual console.
+.TP 15
+.BI <F5>
+Save game state into current slot (set using number keys).
+.TP 15
+.BI <F7>
+Restore game state from current slot (set using number keys).
+.TP 15
+.BI <F9>
+Save screen snapshot.
+.TP 15
+.BI <F10>
+Reset NES.
+.TP 15
+.BI <F11>
+Toggle power to NES.
+.TP 15
+.BR <F12> ", " <ESC>
+Quit
+.B FCE Ultra.
+.SH NOTES
+This program needs permisison to the video hardware, this normally requires
+root access. One way to accomplish this is by making
+.BI "fceu-svga " suid-root.
+An easy way to do this is using the
+.BR dpkg-statoverride
+command. For example, as root on a
+.I Debian
+system run:
+.PP
+.B dpkg-statoverride --update --add root games 04755 /usr/games/fceu-svga
+.PP
+This will ensure that the setuid bit is preserved across package upgrades.
+.SH SEE ALSO
+.BR dpkg-statoverride "(8), " fceu-sdl (6)
+.TP
+.I /usr/share/doc/fceu-doc/readme-linux.txt.gz
+The
+.B FCE Ultra README
+for linux, available from the
+.I fceu-doc
+Debian package.
+.TP
+.I http://fceultra.sourceforge.net/
+The
+.B FCE Ultra
+project homepage.
+.SH AUTHOR
+This manual page was written by Joe Nahmias <joe@nahmias.net>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/attic/readme b/attic/readme
new file mode 100644
index 00000000..ca3c2e5b
--- /dev/null
+++ b/attic/readme
@@ -0,0 +1,32 @@
+FCE Ultra was developed with gcc and GNU make in mind. MSVC will probably
+compile the Windows source code with a few modifications, but you'll still
+need to make a project file.
+
+Several pre-made makefiles are provided:
+ Makefile.beos - BeOS(with SDL and SDL_net)
+ Makefile.unixsdl - UN*X(FreeBSD/Linux/etc, with SDL)
+ Makefile.linuxvga - Linux(with svgalib)
+ Makefile.dos - (MS/PC/DR) DOS
+ Makefile.win - MS Windows 9x/Me/Xp/2000/etc.(with DirectX).
+ Makefile.macosx - Mac OS X(with SDL)
+
+If you want to use Makefile.beos or Makefile.unixsdl for a cpu type other
+than 80x86, you will need to remove "-DC80x86" from the defines line
+and also remove "-DLSB_FIRST" if your target cpu uses MSB first ordering.
+You'll also need to remove/change "-mcpu=xxx".
+
+For the Windows port, I use MINGW32. http://www.mingw.org
+
+To compile the DOS port, you'll need to download the DJGPP package.
+Any version of gcc >=2.95.3 should compile the code without changes, BUT
+the DJGPP versions of gcc have some problems:
+ gcc 2.95.3 sometimes breaks when compiling the code. gcc 3.0.2 seems to
+ produce bad code for sound.c. So, I recommend using gcc 3.0.4 for
+ compiling the DOS version.
+
+Modifying the "-mcpu=i686" string in the makefiles, to optimize more effectively
+for your cpu type, is a good idea.
+
+Always do a "make -f Makefile.<platform> clean" before compiling for a
+different platform or if you update via cvs and if you have stale object
+files lying around.