........................  
 Welcome to century XXI    RockNES - A NES videogame emulator
........................   Copyright (c)1998-2003 Fx3
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

History of past updates:

 * RELEASES 3.xx

 What's new for version 3.10 (12/09/2003)
 ----------------------------------------
 - Fixed the unreported (!) broken pAPU stereo sound effect;
 - Fixed pAPU sound driver, correct reset and envelope/sweep emulation;
 - Fixed pAPU volume levels to something near enough;
 - Added pAPU volume decay for the mixed sample output;
 - The fast forward now silents the sound output;
 - Fixed FDS state loading, plus its IRQ disk timing (or almost);
 - Fixed PRG-ROM/WorkRAM data identification on bank 3 (savestates);
 - Changed nametable/color RAMs to be saved in a separated tagged block (NAM),
 hence older RSx states are no more compatible;
 - Fixed a bug in the disassembler (relative branch address);
 - In the disassembler window, the actual CPU bank was incorrectly set;
 - Added ability to disassemble CPU 5000h-7FFFh regions;
 - A couple of CPU fixes, such as IRQs, and a few opcodes now parsed as NOP;
 - PPU timing tweaked once again, and rendering slightly optimized;
 - Fixed two PPU rendering bugs (of max. fine x-scroll value and color ram);
 - NMI timing tweaked once again, might be imperfect though;
 - Changed sprite DMA transfer behaviour on 4014h writes;
 - Removed mappers 6, 8 and 17 support (hacked stuff, gone nowadays);
 - Improved VRCVI/MMC5/mapper91 IRQ timing;
 - Fixed frame-IRQ somewhat (sound in Dragon Quest games is okay again);
 - Fixed a bug saving files (filename related);
 - Fixed stretched blitter plot (`-blitter 4` option in the rocknes.INI file);
 - Removed that vsync option for a while;
 - Mouse pointer fixed to start at GUI bar, instead of screen centered;
 - Changed `ROM cheat` label to `ROM patch` for your best safeness;
 - Up to date unzip code/ZLIB library;
 - Added a few C tweaks to speed up the emulation a bit;
 - PPU frame rendering optimized;
 - Optimized filters Pixelated and EAGLE, hence a very nice speed up;
 - Usual minor fixes and cosmetic changes.

 What's new for version 3.02 (08/04/2003)
 ----------------------------------------
 - Added pseudo-stereo sound output (optional);
 - ASM window now shows the PRG bank and the respective ROM address;
 - Small fix in the MMC3 IRQ timing (Joe&Mac2);
 - Mapper #90 IRQ timing improved and mapper fixed (FinalFight3);
 - Mapper #91 IRQ timing fixed (StreetFighter2);
 - Fixed a glitch in the ASM window (two CPU banks selected);
 - Fixed a bug in the pAPU duty cycle/envelope counters;
 - Fixed triangle channel (volume level wasn`t being cleared on channel off);
 - Added volume decay to triangle channel (avoids `clicks` on playback);
 - Fixed DMC volume decay rate and sample decompression;
 - Fixed $4011 PCM playback and its volume decay rate;
 - Fixed PCM data caching, no more emulation crashing;
 - Fixed gamegenie reset (whoops!);
 - Partial FDS driver fix (mapper #20);
 - File select dialog resized (heh, bigger!), plus with new colors;
 - Changed default video driver to VESA1 instead of AUTODETECT;
 - Stupid config mistake fixed, now 48k sound sample rate works;
 - Fixed a bug in the 640x480 stretch blitter;
 - VRCx IRQs are preliminary again, couldn't find a proper fix yet;
 - Known problems list updated;
 - Minor cosmetic changes.

 What's new for version 3.01 (07/27/2003)
 ----------------------------------------
 - Added ability to save the ASM code to a text file;
 - Added opcode $89 as double-NOP (asian `Super Donkey Kong` works);
 - Added sprite RAM address clearing on frame ending (fixes a few asian games);
 - Added frameIRQs, but might be preliminary though (sound in Dragon Quest 2);
 - Fixed a minor CPU issue with 2 variables;
 - Fixed $4015 register behaviour;
 - Fixed triangle channel functionally (Total Recall/Ghostbusters 2);
 - Fixed DMC status bit on $4015 reads (Solar Wars/Bomberman 2/Castelian);
 - Fixed default video settings (when no config file is found);
 - Fixed screenshot saving and changed its format to "game title 000.bmp".

 What's new for version 3.00 (07/26/2003)
 ----------------------------------------
 - My brand new kickass 6502/2A03 CPU core;
 - Sound drivers (pAPU + VRCVI) rewritten from scratch (better support);
 - New savestate file format, fully composed by tagged blocks;
 - Fixed a few problems saving/loading states;
 - Fixed WAVE logging;
 - Fixed WorkRAM initial data back to $00s, except for mapper #4;
 - Fixed GUI colors if user selects a different palette (VS Unisystem);
 - Fixed mappers #9 and #10 graphics on state loading;
 - New fast stretched mode on 640x480 by default now;
 - Added a disassembler, you can output ASM code to a window anytime;
 - Others usual source fixes.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 * RELEASES 2.xx

 What's new for version 2.61
 ---------------------------
 - Changed WRAM dummy data to $FFs instead of $00s (Low G Man works, thanks
 to FluBBa for the information);
 - Sound changed to 16-bit output, plus volume decay;
 - Small fix in the pulse channels frequency;
 - Small fix in the triangle/noise channels volume;
 - Small improvement to Konami's VRC6 sound driver emulation;
 - Fixed a bug on RIFF wave header saving, now 16-bit signed;
 - Fixed filename for dumping $8000-$FFFF data;
 - Fixed emulator shutdown (whoooops!);
 - NMI/RESET/IRQ vectors (values) are now dumped correctly;
 - More cleanups.

 What's new for version 2.60
 ---------------------------
 - Added sound wave logging (wheee);
 - Fixed 4-screen mirroring (Rad Racer 2 and others are okay);
 - Fixed register $400E (noise channel);
 - Fixed broken DMC real-time support;
 - Fixed pAPU output, plus much better noise support;
 - Fixed a few ppu timing issues (Days of Thunder now works);
 - Fixed a few issues in the sprite code;
 - Fixed a bug in the input device poll (player 2 polling);
 - VRC6 sound flag wasn't being cleared on mapper reset, fixed it;
 - Removed that stupid 60Hz speed sync (when sound is off), now the monitor
 refresh rate (vsync) is used: please, set it to 60Hz if possible;
 - Filters now can use any video resolution higher than 640x480, no more
 overriding the rocknes.ini setting;
 - More internal tweaks and cosmetic changes.

 What's new for version 2.51
 ---------------------------
 - Changed insert coin key to F8 (argh!);
 - Fixed another memory leak, now in the FDS driver;
 - Disabled FDS disk flipping if no FDS data is loaded (ugly);
 - Fixed memory corruption in the gamegenie driver;
 - Cleanups in the gamegenie driver.

 What's new for version 2.50
 ---------------------------
 - More rewrites and major cleanups, plus internal changes;
 - Added 4 new video filters: 2xSaI, SuperEagle, Pixelated (TV looking) and
 scanlines, all displayed on 640x480 resolution;
 - Added bright level adjustment! Press F1 to increase or Shift+F1 to
 decrease level;
 - Reworked extra memory management, now allocated only if required;
 - Fixed dummy buffer size (it was too large);
 - Fixed Allegro shutdown on gfx error (on startup only);
 - Fixed player #2 input select (joystick #2 is selectable again);
 - Sound is enabled if the config file is missing (whoops!);
 - Enabled VS Atari RBI Baseball reads (whoops);
 - Enabled full WRAM write for trained ROMs (controls now work);
 - Fixed sprite #0 strike cycle calculation;
 - Fixed ppu address refresh to the old setting (it was glitching games);
 - Fixed mapper #5 (MMC5), mirroring behaviour corrected;
 - Fixed a bug in the mapper #13, plus ppu I/O optimized (Videomation works);
 - Fixed a bug in the Konami's VRC IRQs (mappers #21,#23,#24,#25,#26);
 - Fixed mapper #21 (Wai Wai World 2 and others);
 - Fixed broken fastforward key and sound shutdown;
 - Fixed 640x480 image centering;
 - Fixed screenshot/FDS message color display (whoops);
 - Added coin inserted message display;
 - Fixed insert coin key to TILDE instead of TAB (grr);
 - Fixed screenshot return status (no more fake error message on GUI);
 - Fixed a memory leak on program exit;
 - On CPU dumping, the interruption pending status is checked by the I_FLAG;
 - Small ppu pattern I/O optimization;
 - A couple of minor fixes and mistakes.

============================================================================
 2002 Releases
 *************

 What's new for version 2.40
 ---------------------------
 - More internal changes and rewrites;
 - NES joypad latch was not being cleared if the input type is joystick;
 - Fixed a mistake on movie play status (bleh);
 - Fixed a stupid loading bug for trained ROMs;
 - Fixed ppu address reset behaviour (Rambo is okay);
 - Fixed MMC3 IRQs (yay, finally);
 - Allowed mapper IRQs to trigger on scanline 240 (fixes a few games);
 - Added a specific fix for Rad Racer games (the road is okay);
 - Fixed 8-sprites ppu flag;
 - Fixed filenames to dump chr data;
 - Small PSG and color emphasis/monochrome optimizations;
 - GFX corruption (like map#226) has been fixed;
 - Changed joypad data reading behaviour;
 - Changed to compile with the newest stable Allegro release;
 - Changed some filenames for dumping RAMs;
 - Minor core cleanups, bug fixes and cosmetic changes.

 What's new for version 2.30:
 ----------------------------
 - Fixed PPU pattern writes (not allowed for games with CHR ROM, whoops);
 - Fixed mapper #15 (100-in-1 Contra works);
 - Fixed mapper #44 (Super 7-in-1);
 - Fixed mapper #227 (1200-in-1, wrong 32k selection);
 - Fixed mapper #229 (31-in-1);
 - Fixed mapper #234 (Maxi 15, graphics are ok).
 - Proper mapper #90 state loading;
 - Changed cpu dumping file from nes6502.dmp to nes6502.log;
 - Made a lot of internal changes and optimized the loading/reset procedures;
 - Major cleanups and junk code remotion.

 What's new for version 2.20:
 ----------------------------
- Fixed PRG/CHR page masking (whoops);
- Fixed coin bit detection for VS Unisystem;
- Fixed a problem in the sprite render;
- Small fix in the CPU reset;
- Sprites RAM is now readable, fixes some games and demos (Froggy is ok);
- Fixed NES movies (joypad data logging - RSx files);
- Fixed CRC32 calculation if a trainer is present;
- Fixed PRG data loading if a trainer is present;
- Fixed a major problem with the gamegenie driver;
- Fixed some possible memory corruption;
- PSG volume level changed to v*23/16;
- Fixed broken Famicom DiskSystem driver (FDS);
- Added message display for FDS operations (of disk insert/eject, side);
- Added ability to detect what's paged on $6000-$7FFF (for CPU dumping);
- Added mapper #87 support (PlayChoice-10 The Goonies);
- Preliminary mapper #241 support (Edu, unplayable);
- Fixed mapper #4 IRQs, still imperfect;
- Fixed mapper #7 crashes (Cobra Triangle works fine);
- Fixed mapper #15, but the CHR is corrupted?! (hacks and xxx-in-1 games);
- Fixed mapper #32 (Image Fight);
- Fixed mapper #73 IRQ timing (Salamander);
- Fixed mapper #90 IRQ flag (fixes Super Mario World score);
- Fixed mapper #94 (jap. Commando);
- Fixed mapper #97 (Kaiketsu Yanchamaru);
- Fixed mapper #160 (Aladdin, preliminary IRQ);
- Fixed mapper #187 (unofficial SF/KOF games);
- Fixed mapper #189 (Yoko SFII/Master Figther II);
- Fixed mapper #225 (xxx-in-1 games);
- Fixed mapper #226, but the CHR menu is corrupted?! (76-in-1);
- Fixed mapper #227 (1200-in-1 - problems with its info);
- Fixed mapper #232 (Codemasters' Quattro games);
- Fixed mapper #235 (xxx-in-1 games);
- Optimized MMC5 WRAM status reading;
- Minor fixes to the GUI;
- A few core cleanups and tweaks, it's really fast;
- Compiled with Allegro 4.1.7 and lastest gcc package.

 What's new for version 2.10:
 ----------------------------
 - Joystick calibration is back again;
 - Fixed state saving/loading (older files are not compatible);
 - Fixed a bug in the mapper #1 (MMC1);
 - Fixed FDS driver (partially), broken from rewrite;
 - Fixed a bug in the CPU cycle counter;
 - Fixed 'no game loaded' error threat;
 - Fixed input setup on joystick detection error;
 - Fixed MMC3 IRQs somewhat, still imperfect;
 - Fixed a small issue with the dummy sound driver;
 - Fixed PRG/CHR page masking, thanks to Vagla for pointing me this;
 - Config file cleaned, removed some deprecated options;
 - PPU timing tweaked, still imperfect due to line-based render;
 - PSG driver cleaned up a bit;
 - Color RAM i/o optimized;
 - New NES palette, taken from Rockman Complete Works (PSX);
 - EAGLE filter is back again;
 - Documentation cleaned and partially rewritten;
 - A few CPU tweaks, finally up-to-date, thanks Matt.
______________________________________________________________________________

 Version 2.01 (July 14th 2002)
 - Fixed fastforward, no more crashing (I hope);
 - Fixed mapper #1 (Dragon Warrior 3 & 4 work);
 - Fixed RSx savestate (missing mapper block ID);
 - Fixed audio silent (does nothing when no sound);
 - Fixed a couple of major problems with the GUI;
 - Gameplay is no more stopped if a ROM loading isn't successfull;
 - Key F11 disabled for quit-to-OS, since you can define a custom key;
 - CPU dumping now has timestamp and path included;
 - General tweaks and cleanups.

 Version 2.00 (July 12th 2002)
 - Major source rewrite, fixing tons of problems for listing;
 - New savestate format, smaller and smart, no crashes;
 - PPU frame render slightly optimised/tweaked;
 - PPU and CPU timings work better;
 - Added a fast forward key (maximum speed <-> no framesync);
 - Added a sprite #0 hit patch for mapper #7 too (fix some Tradewest games);
 - Fixed PCM channel, removed hacks, added real-time counter;
 - Removed that Help text from GUI;
 - Config file (rocknes.ini) included to avoid problems;
 - A few mappers may be broken, so please, report them;
 - Compiled with the newest GCC/Allegro;
 - First release, be patient...

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 * RELEASES 1.xxx

Version 1.960 (03/31/2002) * HAPPY EASTER!
- New sound core, better output and volume mixer;
- Small fixes in the savestate code;
- Added new options to patch/corrupt ROM data;
- Fixed a GUI problem when taking a screenshot (wrong errorcode);
- All video filters (EAGLE, 2xSai) are currently disabled;
- Compiled with newest GCC/Allegro;
- Possibly a few other changes that I don't remember.

============================================================================
 2001 Releases
 *************

Version 1.952 (07/31/2001)
- Fixed the -quit_emulation_button flag (tested).

Version 1.951 (07/31/2001)
- Fixed mapper #44 (tested);
- Fixed GameGenie codes (I hope);
- Added a configurable joypad button to quit the emulator. Edit the config
file (rnsetup.ini) and look for ASSIGNMENTS, -quit_emulation_button;
- Added support to dump CHR locations of VROM type (preliminary);
- Documentation updated.

Version 1.950 (07/30/2001)
- Fixed $6000-$7FFF CPU bank I/O, many broken mappers are working again;
- Fixed a bug on $4003/$4007 writes (sound regs);
- Fixed the number of CPU cycles per sound sample;
- Fixed color emphasis (setting a palette range with no v-sync),
the CMC80's demo works fine;
- Fixed NES movie status flag (damn it);
- Added mapper #44 (1991 Super HiK 7 in 1 384K), untested;
- Enabled 8 sprites per scanline limitation (fixes some games);
- Scanline #0 is being displayed again;
- Fixed pattern table offsets dumping (seeks all VideoRAM banks);
- Fixed a major problem with directories setup;
- Fixed bitmap centering when using SuperEAGLE;
- Re-added kritz' GameGenie core, slightly changed;
- Game information dumping slightly improved (+path and +EOF string);
- Changed the config file extension from rnsetup.CFG to rnsetup.INI;
- Usual cosmetic changes and minor bugs fixed;
- Documentation slightly updated.

Version 1.942 (07/21/2001)
- Fixed ROM information saving (header + CRCs in a text file);
- Fixed mirroring state loading for RSx files (when an unknown value is found);
- Fixed a stupid GUI bug: no more emulation reset when you leave the GUI by
first time;
- Fixed a small flaw in the scanline cycle calculation;
- Fixed a small flaw in the MMC3 scanline counter (from previous version);
- Fixed mapper #68 (Batman: Return of Joker - USA/Jap - works fine again);
- Added a patch to fix mirroring in Super Cars game.

Version 1.941 (07/18/2001)
- The memory leak fix hadn't been enabled! It's ok now;
- Fixed a bug in the mapper #21 (damn it);
- Fixed a bug in the mapper #151 startup;
- Fixed VRCxx IRQ timing for the new ppu timing;
- Fixed sprite #0 hits;
- Added sprite #0 hits by cpu cycle, plus a patch to get VideoMation ok;
- Added floating point for scanline cycle calculation, making the things
near perfect! Rad Racer 2 (and others) works better and no glitched;
- Minor adjustment in the ppu timing;
- Minor fixes in the ppu interface.

Version 1.940 (07/16/2001)
- Fixed file path for dumped items;
- Fixed ppu timing (broken from previous version, fixes scrolling);
- Fixed bitmap centering (640x480);
- Fixed a major problem with memory leak;
- Fixed saved states for mapper #0 games (old and undiscovered bug);
- Fixed RSx state file (removed unnecessary data saving);
- Fixed a bug in the mapper #1 (from previous version);
- Fixed mapper #19 (Family Circuit '91 works fine);
- Fixed MMC3 reset, plus small IRQ timing fix;
- Added full support for mapper #119 (Pinbot and High Speed are playable);
- Added a ppu tweak to get Rad Racer 2 working good (maybe more games too);
- Added support to dump ppu patterns offsets (ROM locations);
- Added support for paged CHR RAM (used by some mappers);
- Added a CPU cycle calculation per scanline (not good, but works better);
- Minor ppu render cleanup;
- Lots of bug fixes, plus more changes for portability.

Version 1.930 (06/28/2001)
- Fixed GUI colors for 16-bit video modes, plus surface clearing (Fx3);
- Fixed a potential bug setting color emphasis and monochrome modes (Fx3);
- Fixed broken EAGLE support from previous version (Fx3);
- Fixed ZIP support, plus added support for GZipped files (Richard);
- Small optimization in the PPU code (Richard);
- More fixes and changes for portability (Richard/Fx3).

Version 1.920 (06/25/2001)
- Started to rewrite the entire source for portability;
- Fixed VRC6 sound output again (added timestamp, works much better);
- Fixed ppu mirroring restoration on state loading (.RSx files);
- Fixed another bug on state loading (bad CHR?);
- Fixed color emphasis reset (thanks Alexandre);
- Added pAPU state saving (+VRC6 sound). Old states are fully compatible;
- Added that old pop-up message system (old request, ok);
- Added SuperEAGLE/Super2xSaI engines (*warning: preliminary and _very slow_
even in a p800 (!), so take care... weird GUI colors too, I know why...);
- Function keys (F1-F12) does not freeze the emulator anymore;
- Removed that PPU timing hack;
- A lot of cleanups and minor bugs squashed.

Version 1.910 (05/19/2001)
- Partial rewrite, squashing lots of problems and bugs (too much for listing);
- Fixed a flaw in the MMC3 IRQ timing;
- Fixed VRC6 output (working nicely now, thanks Alexandre);
- Fixed a bug in the PCM channel, plus $4015 sound register;
- Fixed command line parse, thanks to everyone for the feedback;
- Fixed save state feature (may be incompatible sometimes);
- Fixed tons of GUI problems (+internal Help);
- Fixed config file reading (+small changes);
- Added an option (ROM patch) to fetch the byte value from current address;
- Using last Matt Conte's 2A03 (6502) CPU emulator;
- Source fixed to compile with no warnings;
- Cosmetic changes, plus general optmizations.

Version 1.900 (04/15/2001) * HAPPY EASTER
- Fixed a memory read bug (VS Unisystem ok);
- Fixed mappers #7 (duh), #65, #79, #113, #234 (Maxi-15 works fine), #243;
- Fixed a bug in the noise sound channel (whoo... much better);
- Added mapper #57 support (GK-L01A);
- Added CRC32 display (for PRG/CHR data) in the game info GUI dialog;
- Added directory setup in the config file for dumped data;
- Added a nice tweak to retrieve status (bits) from a number, soft speed up;
- Added patches to fix some map#79 games with wrong mirroring set;
- Added iNES header information save + CRCs in a file (.nfo);
- Changed iNES header fix to work with CRC32 numbers (PRG);
- Changed screenshot format from PCX to BMP;
- Changed some GUI labels;
- Reenabled my MMC3 (mapper #4) IRQ timing code;
- PRG ROM dumping disabled when there are no CHR ROM pages;
- Cosmetic changes, small optimizations and some errors squashed.

Bug-fix on 03/06/2001
- Fixed I/O reads, the VS Unisystem games are playable again.

Version 1.830 (03/05/2001)
- Fixed name garbage when saving files;
- Fixed RAM, WRAM, VROM and CPU registers dumping;
- Added PRG data dumping when no VROM is present (due the request);
- vsync on/off switch was disabled, oops;
- Documentation revised.

Version 1.820 (03/03/2001)
- Most of mapper #5 (MMC5) code has been rewritten, fixing some games;
- Added MMC5 RAM saving/loading (size is always 65536 bytes);
- Fixed NESticle state loading (STA files -- mappers 0,1,2,3 and 4 only);
- Removed that FDS warning at startup (now displayed on FDS loading);
- Some changes for ANSI compatibility, plus cosmetic changes and minor fixes.

Version 1.810 (02/28/2001)
- Rebuilt most of startup sequence, tons of problems were fixed;
- Fixed memory corruption, FDS driver and NES reset;
- Fixed a memory problem in the PPU reset (fixing gfx garbage);
- Fixed HBlank timing for mappers (broken from previous version);
- Fixed mappers #40, #42, #43, #69, #90 (broken from previous version);
- Fixed mapper #67;
- Fixed ROM mapping on $6000-$7FFF memory space;
- Fixed a problem in the config (default inputs settings were not done on
startup);
- Removed garbage from GUI, fixed mapper information box;
- Tons of cosmetic changes, plus minor fixes.

Version 1.800 (02/23/2001)
 - Accurate emulation of sprite #0 hits, improving the compatibility;
 - Removed frameskipping (sorry, no more possible, accuracy over speed);
 - Tweaked the NES timing, fixing a couple of games;
 - Fixed savestate (rsx) code;
 - Fixed a problem setting monochrome mode;
 - Fixed the directories setup (it was not being refreshed on rom loading);
 - Fixed a stupid sprite clipping bug;
 - Added an option in the GUI to display current inputs devices, and
 to restore default settings;
 - Updated 2A03 CPU core (november/2000);
 - Compiled with Allegro WIP 3.9.34, newest DJGPP package;
 - A lot of others fixes and cosmetic changes.

Version 1.703 (01/27/2001)
 - Fixed savestate code to suit big-endian byte order (the MacOS);
 - Fixed EAGLE blitting (removed debug junk);
 - Fixed sprite ram data overflow (oh boy);
 - More fixes to MMC5 (IRQ is working again, sorry).

Version 1.702 (01/22/2001)
 - Fixed trainer support.

Version 1.701 (01/21/2001)
 - Fixed directories setup.

Version 1.700 (01/20/2001)
 - Added ZIP support [katharsis];
 - Small changes in the rom loading;
 - Movie support slightly improved;
 - Added support for mapper #67 (no games are playable);
 - Mapper #5 improved somewhat (only CastleVania3 and MetalSladerGlory work);
 - Mapper #33 improved somewhat (support FlintStones);
 - Mapper #43 (1xx-in-1) changed to number #235;
 - Mapper #48 (SMB2j (LF36)) changed to number #43;
 - Fixed mapper #4 IRQ timing;
 - Fixed mapper #21 (Ganbare Goemon Gaiden 2 has correct gfx);
 - Fixed mapper #68, more games are playable;
 - Fixed mapper #160 (Aladdin -- preliminary IRQ timing control);
 - Fixed mapper #235, thanks to Takeda/nester;
 - Fixed VS Atari RBI Baseball patch on reads;
 - Fixed pAPU timing (was completly wrong, damn it!), output is better;
 - Fixed a PCM decoding bug, plus removed IRQ and cycle eating on queue;
 - Fixed sprite DMA transfer;
 - Fixed state loading (of RSx files);
 - Fixed PPU state at 'power on' (starts at scanline zero), thanks to Ki;
 - Fixed pattern table dumping, thanks snowbro for the bug report!
 - Small PPU optimizations/tweaks;
 - ROM images larger than the header spec may be loaded again;
 - Game screen is no more cleared when video resolution dialog is closed;
 - Added horizontal screen centering using LFB blitter;
 - Added directories setup for everything;
 - Added FPS (frames-per-second) display. Just press F1 to display/hide;
 - Added current video resolution display in the Help->System specs dialog;
 - Mapped F11 key to 'quit to OS' directly;
 - A couple of non-emulation related problems were squashed, plus cleanups;
 - Documentation updated, plus big english errors fixed :-B

============================================================================
 1998-2000 Releases
 ******************

Version 1.600 (11/24/2000)
 - Added a ppu tile caching system, sped up the things;
 - Added a decent savestate format -- NOT compatible with the old ones;
 - Added a new method for noise luts, much clean;
 - Added mapper #180 (Nichibutsu, game Crazy Climber supported);
 - Added preliminary VS UniSystem reads handler (Atari RBI Baseball works),
thanks to xodnizel;
 - Added a cheap hack to get Paris-Dakar Rally Special working (map66);
 - Fixed a major bug in the mapper #40 (SMB2j) reset;
 - Fixed mapper #83 CHR bankswitch (World Heroes2 works);
 - Fixed mapper #232 (BF9096 chip - used by Codemasters' Quattro carts);
 - Fixed mapper #233 (the '20-in-1' half works, 'reset' to active);
 - Fixed nametables dumping (dumping the entire $400 data in a .nam file);
 - Fixed major problems in the sound startup routines;
 - Fixed number of cpu cycles per sprite DMA transfer;
 - Fixed ppu layout (frame starts at VBlank);
 - Fixed ppu latch system and ppu reads, thanks to Ki for his findings
(pass ok in the tests programs).
 - Fixed mirroring state saving (when a mapper uses a custom mirroring);
 - Tweaks in the FDS driver, more games are working;
 - Cleaned up the 16k CHR RAM support code, used by mapper #13;
 - Expanded ROM information display;
 - Whoops, removed "dump pattern addresses" option from GUI;
 - General cleanups to boost the performance;
 - Added a 'secret' mapper, I will tell you later... ;-)

Version 1.500 (11/05/2000)
 - NES sound driver partially rewritten. Added real-time state for register
 $4015, which fixes sound output for all games;
 - Added mapper #76 driver (Namco 109);
 - Added mappers #72, #92, #101 (Taito mappers);
 - Added mappers #83 (Cony mapper), #240;
 - Added mapper #100 (NESticle MMC3 hack mode, untested);
 - Fixed mapper #70 (small hack for Kamen Rider Club);
 - Fixed mapper #113 (to support HES carts);
 - Removed duplicated pattern table saving on games with no VROM.

Version 1.421 (10/18/2000)
 - Fixed a bug on sound reset, the noise channel is now working properly.

Version 1.420 (10/18/2000)
 - Better noise emulation;
 - Added an option in the GUI to save sprite ram within all informations
 for each sprite, like a text file;
 - Added stretched mode, due the request (delete the old config file to
 setup this option);
 - Minor optimization in the scanline blitter;
 - Fixed some GUI options that were working when no game was loaded.

Version 1.410 (10/11/2000)
 - Added mapper #118 (IQS MMC3) driver, now YsIII - Wanderers from Ys
 and Goal! Two are playable;
 - Fixed FDS memory allocation and system startup, major cleanup/rewrite;
 - Fixed FDS image loading. Files with no header should be ok;
 - Added FDS image identification by the NINTENDO-HVC string, removed
 the old one by file extension (required only by images with no fwNES'
 FDS header).
 - Fixed ROM load/free, squashed several mistakes;
 - Disabled MMC3 WRAM control, enabled from previous version.

Version 1.400 (10/09/2000)
 - Small mistakes squashed on FDS driver;
 - Fixed FDS disk writes somewhat, no more 'ERRxx' problems;
 - FDS images with no header present are loadable (you need .FDS extension);
 - Fixed mapper #42, pirate MarioBaby works fine;
 - Fixed frame-IRQs, now there's sound output in DragonQuest games;
 - Fixed a possible memory leak problem;
 - Added WRAM (bank at $6000) dumping;
 - Removed some general junk, more minor changes that I don't remember...

Version 1.303 (09/27/2000)
 - Fixed (this time with sure) trainer support.

Version 1.302 (09/26/2000)
 - Fixed trainer support (bug from previous version);
 - Small mistakes with 'while' loops fixed.

Version 1.301 (09/25/2000)
 - Fixed some problems with FDS driver, more games are playable;
 - Whoops! Fixed broken mapper #43 from previous version.

Version 1.300 (09/24/2000)
 - Fixed a mapper #1 (MMC1) bug, now more games are playable;
 - NES periodic rewritten, much better, fixing tons of games!
 - Adjusted Konami's VRCxx IRQs timing (now 99.9% good);
 - Fixed a nasty NES reset problem;
 - Fixed Famicom DiskSystem emulation, thanks Ki for the docs! Notice that
 your FDS image won't be saved/changed for a while;
 - Sound driver optimized (a bit faster now);
 - As always... more changes and bugs squashed, but I don't remember... :)

Version 1.200 (09/09/2000)
 - Fixed a small problem loading saved states;
 - Fixed sound shutdown (no more crash on exit);
 - Fixed mapper 5 (MMC5) IRQ problem (Laser Invasion works fine);
 - Fixed mapper 19 IRQ timing (game Final Lap works fine);
 - Small IRQs timing fix for VRCxx and mapper 17;
 - New mappers supported, thanks to Scott Wu for Taiwan mappers:
   * #43 - used by 150-in-1 (preliminary);
   * #110 (SACHEN SA-006), used by Honey Peach;
   * #113 (SACHEN TC-005), used by Totsu Geki;
   * #117 (Futura), used by Sango IV (preliminary);
   * #184 (unknown), used by Wings of Madoola;
   * #187 (unknown), used by King of Fighters'96, Street Fighter Zero 2;
   * #189 (FC-001EMC), used by Street Fighter II (YOKO soft);
   * #246 (Taiwan Number 1), used by a couple of chinese games.
 - Pattern table saved in the game directory as "gamename.PT0/PT1";
 - Broken stuff might work again, I hope;
 - More changes and fixes that I don't remember...

Version 1.110 (08/01/2000)
 - Added color emphasis and monochrome mode;
 - Added preliminary frame-IRQ, thanks to Ki for the NES findings;
 - Added tick handler (60FPS when sound is disabled);
 - Fixed frequency sweep on square wave #0, again, thanks Ki;
 - Forced overscan color to be black (fixes that gray around the screen in
 some video modes);
 - Fixed CHR RAM write-protection set by some mappers;
 - NES PSG/VRCVI sound drivers improved a bit;
 - *Final* format to saved games, now with the extension *.RSx (x=0..9), this
 means your saved state will be always compatible with future releases;
 - Changed F1 by ESC to swap to GUI (F1 does nothing now);
 - Fixed movies shutdown when user quits by GUI;
 - Some small internal changes and fixes.

Version 1.100 (07/20/2000)
 - Rebuilt ROM images loading (memory allocation);
 - PSG optimizations and fixes;
 - PCM channel finally fixed, working good with all games;
 - Fixed 22.05MHz sample rate support;
 - Added 48.00MHz sample rate support (if supported);
 - Added sprite RAM dumping;
 - Fixed color RAM dumping;
 - Fixed inputs setup (weird);
 - Fixed some GUI problems;
 - Fixed FDS support, still preliminary;
 - Fixed save/load state to FDS games;
 - Added VS Platoon and VS Golf/Lady Golf palettes (partial);
 - Added full mapper #13 using 16k CHR RAM support (Videomation works fine);
 - Added mapper #42 (bootleg Mario Baby), untested, may be wrong;
 - Added mapper #234 (Maxi-15, no dumps work well);
 - Fixed MMC5 CHR bankswitching, added Fill mode (still preliminary);
 - Mapper #90 slightly improved;
 - Some PPU tweaks to improve the things;
 - More changes and fixes that I don't remember...

Version 1.090 (06/24/2000)
 - Fixed noise frequencies table;
 - Fixed pAPU 'active time left' table;
 - Small PSG optimizations and more fixes;
 - Fixed CHR bankswitching macros (added a few more too);
 - Fixed mapper #23 CHR banks.

Version 1.080 (06/19/2000)
 - Major emulation core cleaned/rewritten;
 - Added mapper #75 (Konami VRC1 / Jaleco SS8805);
 - Fixed mapper #18 (Jaleco SS8806);
 - Fixed mapper #23 PRG bankswitching (oops!);
 - Fixed mapper #24 mirroring set;
 - Fixed mapper #26 (jap. Madara works fine);
 - Fixed mapper #78 (jap. Holy Diver works fine);
 - Fixed mapper #88 (jap. Quinty works fine);
 - Fixed mapper #227 (pirate cart 1200-in-1 works fine);
 - Fixed mapper #228 (gfx corruption, oops!!);
 - Fixed pAPU timing;
 - Fixed noise sound channel (almost perfect);
 - Fixed PCM volume level;
 - Fixed a VRCVI reset problem;
 - Fixed a bug parsing sound rate setting from config;
 - Fixed a bug parsing frame rate setting from config;
 - Fixed a bug parsing game directory from config;
 - Added pAPU reset on NES reset;
 - Rebuilt some PSG stuff;
 - Rebuilt CHR bankswitching (more games are playable, it fixes mapper #90);
 - Fixed PRG/CHR bank mask;
 - More bugs were squashed, fixed some broken stuff due the last updates.

Version 1.070 (06/12/2000)
 - Rebuilt and cleared up NES memory handler system, lots of fixes. Things
should work better than before. Changed a couple of internal stuff;
 - Rebuilt input configurations, much cleaned up;
 - Rebuilt PSG event queue (fixes the NSF player);
 - Minor PSG/FDS code fix/clean;
 - Saved states slightly changed due the memory system changes;
 - NES sound updated at end of frame, instead of VBlank hit (works better);
 - Replaced some 'generic mappers id' by 'board names', when possible;
 - Added mapper #94 (Senjou no Ookami, jap. Commando);
 - Added mapper #97 (Kaiketsu Yanchamaru, jap. Kid Niki);
 - Fixed a minor mapper #5 (MMC5) startup problem;
 - Fixed mapper #113 (=#79, Rad Racket works, other games may be buggy);
 - Fixed a backed battery problem;
 - Fixed VROM dumping (file is saved in the same folder that ROM image is,
with ".chr" extension, instead of generic "vrom.dmp");
 - Changed nametable dump (filename) to use ".nam" instead of ".ntb";
 - Removed "vsdir" from config file (no more used);
 - Updated with latest 6502 core by Matt Conte (supports all 256 opcodes).

Version 1.061 (05/27/2000)
 - Added RAM dumping;
 - Fixed ROM cheat to wrap values greater than 255, and higher addresses;
 - Changed CHR bank masking on mapper #3;
 - Fixed initial mirroring state (it was wrong loading saved states);
 - Fixed minor bugs in the PCM channel;
 - Fixed MMC5 to get (at least) CastleVania3 working with no gfx corruption;
 - Fixed a PSG (sound) shutdown bug.

Version 1.060 (05/11/2000)
 - Added partial support for NESticle saved states (*.STA);
 - Added signed noise output (very good);
 - VRC6 sound driver slightly cleaned;
 - Fixed sound output and constants values;
 - Fixed a bug parsing '-sound_rate' from config ('no sound' is ok again);
 - Fixed soundcard name display (when 'no sound', it displays '-off-');
 - Fixed saving/loading states to mappers 5, 19, 90 and 230 data (specific);
 - Mapper #1 (MMC1) rewritten, added 512k support (DragonWarrior 3 & 4 works);
 - Mapper #5 fixed somewhere (more games work, still very bad);
 - Mapper #11 CHR page mask fixed (no more gfx corruption, I hope);
 - Mapper #25 rewritten/fixed, now TMNT2j works;
 - Mapper #32 mirroring fixed (Image Fight works fine again);
 - Mapper #69 fixed (added command 8, now game 'Gimmick!' works);
 - Mapper #90 slightly cleaned/fixed;
 - Added mapper #6 (preliminary support);
 - Added mapper #73 (Konami's VRC3, japanese Salamander);
 - Added mapper #160 (Aladdin cart), preliminary support;
 - Added mapper #232 (Codemasters' Quattro games, *does not* work yet);
 - IRQ timing updated at end of h-blank (works a bit better);
 - Fixed Metal Slader Glory gfx glitch (right side of screen), IRQ related;
 - Added ROM data cheat;
 - Added CPU dumping (of registers), color palette, patterns, nametables;
 - GUI now supports .NES, .NEZ, .BAK and .FDS extensions;
 - Added more help text in the 'Help' dialog;
 - This document was updated/changed a bit;
 - More minor problems were squashed.

Version 1.052 (04/08/2000)
- Rebuilt startup/shutdown sequence and GUI handling;
- Crappy mirroring fix for mapper #70 (Arkanoid2 and Kamen Rider Club ok);
- Added image size checking (it compares the real size with the header spec);
- Added mapper #230 (22-in-1/Contra, working);
- Fixed mapper #227 (1200in1 cart works, still partial);
- Fixed trainer support (battery loading related);
- Fixed a couple of non-emulation bugs to avoid memory problems/crashing;
- Fixed screenshot (disabled when no game loaded);
- Final (and better) save state format;
- GUI color changed to a soft green;
- More changes and general bug fixes.

Version 1.051 (04/02/2000)
- Fixed mapper #41 (Caltron 6-in-1 works fine);
- Added mirroring control to mapper #33 (not sure if correct, game Insector X
seems to look better);
- Fixed minor GUI glitches.

Version 1.050 (03/30/2000)
- Compiled with the newest DJGPP (everything's much better), hence LFN
(Long FileNames) are supported;
- Fixed a CHR switching bug from 1.04 in mapper #1 (Bigfoot is ok again);
- Fixed a stupid CHR/PRG page select bug in mapper #255 (more games work);
- Fixed PRG bank switching (some values were being truncated);
- Fixed MMC3 (mapper #4) 4-screen mirroring (Gauntlet works fine), and a bug
with CHR bankswitching, now Taito Chase HQ works with no gfx corruption;
- Added/fixed mapper #19 support (preliminary, thanks Nori for the info);
- Fixed mapper #70 (mirroring bug);
- Added mapper #41 (Clatron / Myriad Games 6 in 1 unlicensed cart), untested,
thanks to Kevin Horton for the info;
- Removed SaveRAM write-protection when a trainer is present (hacked japanese
Parodius works fine again);
- A couple of bugs fixed, general junk removed, a lot of code cleaned;
- Documentation slightly changed.

Version 1.042
- Fixed PCM output for better RAW sound (good);
- Small change compiling the binary, tell me if it's better (faster?).

Version 1.041
- Fixed crashing problem when 'no sound' is set, oops;
- Some fix for 'save state' (it may have problems yet);
- Some cosmetic changes in the sound core.

Version 1.04
- Using Matt Conte's 6502 CPU core (faster);
- Rebuilt a lot of stuff to suit the new CPU core (more games should work);
- Rebuilt some sound stuff (output fixed, waves are correct);
- Sound timing slightly changed (RAW PCM works, still buggy in some games);
- Fixed no sound problem when you swap to GUI and back to game;
- Fixed sound system reset (no more 'sound' when 'no sound');
- Fixed VS Excitebike palette (looks nice in tracks 5,6,7);
- Fixed mapper #68 (mirroring was disabled, blah);
- Fixed mapper #225 (58-in-1 works fine);
- Fixed mapper #226 (76-in-1, working with no problems);
- Fixed mapper #228 (Cheetahmen II works);
- Fixed mapper #233 (42-in-1 cart, partial, just the first half/22 games);
- Added mapper #229 support (31-in-1, working with no problems);
- Added mapper #255 support (110-in-1, some games still don't work);
- Added preliminary FDS support (mapper #20);
- Changed VBlank & NMI scanlines (VS Excitebike ok, more games work too);
- GUI fully rewritten (using Allegro's routines yet, btw);
- Removed more junk code, tons of cosmetic changes and minor bugs out;
- Updated help display, documentation updated.

Version 1.03

- Added MMC5 IRQ modes 0 & 1 (Castlevania 3 and Metal Slader Glory works);
- Added NES sound frequency sweep (Mario jump sound works);
- Fixed MMC5 CHR bank switching (no more glitches);
- Fixed a color bug with VS Excitebike (black instead of blue);
- Fixed 4-screen mirroring set when you load a state (*.RNx), ok;
- Fixed RAM saving when you save a state ($0800-$1000 block fills the RAM);
- Keyboard & joystick can be enabled (like p1 as joystick, p2 as keyboard);
- Added joystick calibration on startup (check rnsetup.cfg for information);
- Adjusted mapper #40 IRQ timing to fix the 'cloud glitch';
- Removed screen clearing (bitmap is always cleared with black);
- Added vsync, joypad calibration and bitmap blitter select in the config;
- Default bitmap blitter changed to old blitter (more compatible);
- More minor problems has been fixed, some junk removed.

Version 1.02

- New IRQ handler system (using 'hooks');
- Fixed MMC5 support (CastleVania 3 US works, still unplayable);
- Added mapper #226 support (76in1 cart, partial);
- Added mapper #227 support (1200in1 cart, does not work);
- More minor bugs fixed.

Version 1.01

- Fixed a CPU bug (from 1.0, IRQ related), and some others;
- Fixed mapper #40 IRQ timing (SMB2j works correctly);
- Fixed machine 'reboot' problem caused by some mapper #4/#64 games (argh!);
- Fixed a problem with mapper #7 (PRG page select, from 1.0);
- Fixed some problems with mapper #64;
- Fixed mapper #85 (major problem, Lagrange Point works);
- Fixed some problems with mapper #225 (58/110-in-1, working again, woohoo!);
- Fixed some problems with mapper #231 (Wally Bear and the No! Gang works!);
- Fixed a config problem (joypad type were ignored if >11);
- Fixed a major bug with battery support ($6000);
- Changed (again) VBlank/NMI scanline hit (more games work, others not yet);
- Added NES sound envelope volume control (the output is _too_ much better);
- Added IRQ control to mapper #65;
- Added mapper #91 (preliminary, bad IRQ support, but the pirate game
Street Fighter III is playable).
- Started MMC5 support (does not work yet);
- There's mapper #233 (42-in-1) support since 1.0 (oh my memory!);
- More fixes and minor changes;
- Please, send me your feedback! It's important! Thank you.

Version 1.0  

- Added 5th NES sound channel (PCM), preliminary support;
- Added Konami's VRCVI extra sound chip emulation;
- Added mapper #40 support (the FDS SMB2j 'lost levels' hacked to NES format);
- Added mapper #90 support (Super Mario World), preliminary;
- Major sound rewrite/fix, very optimized, too much better;
- Screen clearing fixed (I hope);
- PPU render optimized, slight speed increase;
- Current palette is correctly restored if the resolution is changed;
- Reset disabled if a NES movie is in use;
- Fixed RAM r/w and mirroring (Joe&Mac works good);
- Fixed VBlank/NMI scanline hit;
- Fixed some CPU bugs (opcodes, NMI and IRQ), still buggy and slow;
- Fixed a config bug getting videocard selection (working again);
- Fixed a crash problem with 320x200 resolution (PSG related);
- Fixed NES image center using the old blitter;
- Fixed Load/Free ROM shortcuts in the GUI display;
- Fixed some GUI glitches/problems;
- Fixed 'load error' when mapper is not supported;
- Fixed a major mirroring problem (4-screen layout), now more games should
work fine ('Rad Racer 2' looks too much better). The mirroring system has
been changed a bit to fix this problem;
- Fixed VRAM address range (game 'The FlintStones' works fine again);
- Fixed a major pattern table overwriting bug that causes no background in
some games, such as mapper #4 (games 'Cowboy Kid' and 'Fantasy Zone' work);
- Fixed a major mapper #4/#64 bug, now Mickey's Safari works fine again, more
games are working good (TMNT2 has no more glitches);
- Fixed a mapper #85 CHR glitch (Lagrange Point has perfect title screen);
- Fixed trainer support (overwrite data problem);
- Found 'Castelian' hang problem (PCM related), but unable to fix it yet;
- Mapper startup/hooks stuff rewritten;
- Screenshots enabled (hit F12 to save a PCX);
- Removed ctrl+G 'ghost' (does nothing and it crashes the emulation);
- Removed 'Free ROM' GUI option (not useful);
- Added a new way to save pcx files (it does not take emulation time);
- Added a new main NES palette, very closed to NES, thanks to Chris Covell;
- Added VS SkyKid and VS Dr.Mario palettes (check menu item CPU->Palettes);
- Added mirroring control to mapper #66 (not sure if correct);
- NES movies are closed if you quit to OS (at any status);
- PlayChoice-10 games should work fine (.NES format).

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 * RELEASES 0.xxx

Version 0.991

- Fixed a crash problem of mapper #0 games writting to $8000-$FFFF (?), now
Ms PacMan (Namco version) works;
- Fixed a couple of mirroring bugs in the mappers;
- Fixed NES hard reset (I hope);
- Key F5 enabled for NES reset;
- Moved a lot of stuff (internally) to avoid too much public stuff;
- GUI items not finished are not displayed for a while;
- Added VS Unisystem palettes selection in the GUI;
- Removed some junk code and minor GUI glitches.

Version 0.99

- Added a basic GUI, missing some items (to be completed);
- Major rewrite. Things should work too much better than before;
- Removed command line switches (at least for a while);
- A lot of stuff fixed. Saved states and Movies has a final format;
- Added player #2 joypad logging for Movies;
- Mappers added: #21 (Wai Wai World 2) and #85 (Lagrange Point, partial);
- Most of mappers were fixed (except mapper 65, I haven't full info);
- Rebuilt all virtual NES emulation (loading, reset, memory setup etc.);
- Fixed some IRQs (on Mapper #4) and some scrolling problems;
- Fixed palette mirroring, thanks to [Delta] for the info;
- Fixed screen layout (VBlank start scanline, NMI scanline);
- Added a sound fix to kill long notes problem (should cut off something);
- Currently, you can't change the number of cycles per scanline (113) or
scanlines per frame (262).
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
//eof
