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.
