basicNES 2000 Changelog
Current Revision: v1.5 [debug level 2]
Quote - 'Rome wasn't built in a day.'
http://home.att.net/~r.jarrett/bNES.html
Get at me - d.jarrett@att.net

03.08.03 - WHOOPS! Small source update. Fixed palette mirroring.

26.06.03 - Released basicNES v1.5 [debug level 1] to the basicNES homepage. I'm not really sure what is new. I think there is new mirroring code though. Rewrote some of the CPU emulation also. Please send me bug reports.

---->Don't know what I did in between[???]<----

03.06.02 - Released basicNES v1.4 [debug level 0] to the basicNES homepage.

Between 14.04.02 and 03.06.02 - Several rewrites, some games looked screwed up, like mario 3, mario 2 has some bugs, we'll get to them in the near future.

14.04.02 - Worked on Write/Read6502 and thanks to Quietust, got SMB working perfect(w/ exceptions due to the scrolling). But the title screen is beautiful. Added a Key Configuration dialog. More to be added to the configuration later. The basicNES project is now closed source(sorry, open source causes too many problems.) Rewrote much of the Reads and Writes to the PPU address area($2000-$3FFF).

30.03.02(Early morn.) - Fixed mapper #32(Image Fight 2 and such). Fix more mappers later.

29.03.02 - Rewrote completely Write6502 and Read6502. Removed the new scrolling engine. Removed UsesSRAM boolean variable to allow every game access to $6000-$7FFF. Removed newer RenderScanline function and replaced it with an old one. There appear to be no downfalls to any of these changes.

26.12.01 - Fixed a mapper problem affecting the graphics in several games. Put together a new palette from a bunch of other palettes and then tweaked it some.

25.12.01 - Re-added original scrolling method with some enhancements and an option to choose between the 2. Auto-set for some games. Tweaked the apu some more.

24.12.01 - Attempted to implement scrolling as a real nes would handle it. Fixed problems with some games, but not all.
           Fixed an apu bug. The wrong tones were being played.

05.12.01 - As promised, the new bNES. I'll update this file when I have more time.

08.04.01 - Last release for awhile, I need to sort out some stuff. But just as it says in the readme, feel free to release a modded version, as long as it adds something needed. Lots of new stuff was added, many mappers supported now.

20.01.01 - Added "Scroll Fix 1" to the emulation menu, which fixes problems in some games, but causes them in others which is why it's just an option.

19.01.01 - Implemented idle detection (bottom of execute % submenu). The benefits are incredible, especially if you have a slow computer. It works with most games. Arkanoid exceeds 300fps on my 500mhz Celeron. It actually identifies the locations of idle loops so that it can speed through them later on. It's much safer and gives better results than setting the execute % manually.

17.01.01 - Fixed recent noticeable performance problem. Sound is muted when paused. Saved states are much smaller. Bank switching is faster.

10.01.01 - Release v1.1 dl0 to the homepage.
[Can't remember the dates]: Fixed up MMC2 and MMC3, SMB3 is now playable. Punch-Out looks good too.
23.12.00 - Clean up code a little.
07.12.00 - Added midi sound. Doesn't sound perfect, but usually it's adequate. Fixed a scrolling bug I accidentally created. Fixed a few other mostly scrolling related bugs.
04.12.00 - Some more awesome speed improvements. An unfortunate side effect is that saved states from previous versions don't work. With frameskip of 3 I get over 250 fps playing Super Mario Bros on a 500mhz Celeron. Also, on slow computers autospeed shouldn't be able to lock it up like before, although I can't test it.
03.12.00 - Sprites now drawn as full tiles rather than scanline by scanline. Internally supports 15, 16, and 32bit color rather than just 32bit. Noticeably faster when zoomed in 16bit. Detects color depth changes at run time. Sped up bank switching. Background drawn all the way to the edges, not clipped to full tiles.

27.11.00 - No functional changes. Rewrote code to blit array to screen from scratch. Smaller, less dead code, and no more 3rd party code.
25.11.00 - Now supports both horizontal and vertical mirroring, rather than just vertical. Fixed 8x16 sprites. Zelda 2 looks better, but still ugly. Added zooming support. It runs fastest in 32bit color mode.
24.11.00 - Released the emulator to the homepage with fixes.
	 - I'm very happy with the recent events that have occured. We now have a full speed
	   NES emulator written in Visual Basic, well, at least it is full speed on my p2-400.
	   I wonder how it runs on my P100??? Thanks a ton to David Finch, he's done miracles
	   for me. 
24.11.00 - Saved states are compressed. Colors look right.
22-23.11.00 - David Finch took back his function pointer idea and also added automatic speed control. Also added support for saving states.

20-21.11.00 - David Finch added sprites and scrolling, and sped it up some more. Fixed some bugs.

19.11.00 - David Finch changed key codes to A=90,B=88,Sl=67,St=86  ZXCV.
  Cleaned up some code and defined some vars that were used as global but were undefined and therefore local.
  **Finally realized that all keys besides A weren't working, and fixed it.
  **Many games are now fully playable except no sprites. 
  **Took screen shots of Dragon Warrior and Super Mario Bros 2.
  Comments are near most changes I could remember.


Later 18.11.00 - David Finch implemented much faster graphics and modified the cpu emulator to use function pointers instead of a big select case for calling the appropriate opcode sub. This pushes the speed over the 60fps needed.


18.11.00 - David Finch made some random optimizations. Mostly a major scanline rendering speedup (still slow though), but also some other things. Changed some of the 2^ to faster equivelants.

15.11.00 - Added Mappers #69,71 but unsure about #69's workability.
01.11.00 - Added Mappers #68,78.
	 - Changed some stuff in M6502.bas and m6502instruct.bas.
29.10.00 - Released v0 [debug level 1.4] to the basicNES homepage.
	 - Added Mapper #1[MMC1].
	 - Cleaned up VROM switching.
15.09.00 - Released v0 [debug level 1.3] to the basicNES homepage.
14.09.00 - Had it so that if bit 8 of $2000 was set it would nmi6502
	   at every HBlank. This is now fixed, and fixed many games
	   along with it.
	 - Added Mapper #91[SF3 Hack]!
13.09.00 - Added Mapper #40[Super Mario Bros. 2 Japan]. Something
	   wrong with palette though.
02.09.00 - Re-wrote some of the mappers.
	 - Changed WRAM to bank6() and RAM to bank0().
	 - Changed some stuff in Write6502.
22.08.00 - Re-wrote Mapper #9(MMC2) implementation.
	 - Is 1.3 ready yet?
21.08.00 - Removed scrolling from the scanline renderer, its not ready. Anyone one
	   wanna throw some ideas around about how to implement it?
	 - Minor changes to the 6502 core.
	 - Started adding preliminary Apple II support. It's not include in the 
	   release editions though.
	 - Minor changes to the LoadNES() function.
04.08.00 - Got Kirby's Adventure working!
30.07.00 - Added CPUPaused menu under Emulation.
	 - Removed Palette selections under Emulation.
30.07.00 - Added Vertical Scrolling to the line renderer.Thanks to Neill Corlett.
	   Still a little buggy.
29.07.00 - Wrote a line-based renderer, which ensures
	   more games will run. RenderScanline(Scanline)
	   is the new function.
	 - Added Palette support thanks to Bero and his
	   FCE emulator.
	 - Anybody want to help me with sprites?
27.07.00 - Added Mappers #33 and #34.
	 - Changed all other mappers to support new bankswitching scheme.
26.07.00 - Started adding support for 8x8 sprites, slow going though,
	   anyone wanna e-mail and tell me how? thanks.
23.07.00 - Added Mapper #66, thanks to Quietust.
	 - Added Mapper #9.
	   The CHR-ROM switching is still wrong...
	 - New way to figure out Mirroring in Write6502().
22.07.00 - Implemented a new bankswitching system that is based on
	   DarcNES. Thanks to nyef, and Delta for the suggestion.
	 - Fixed Mapper #4 CHR-ROM switching.
20.07.00 - Added Mapper #4[MMC3]. Might still be buggy.
	 - Changed adrmode() with constants for addressing modes instead
 	   of strings.
	 - Also changed exec6502 with constants for the opcodes.
18.07.00 - Fixed bug in DrawScreenQb() that was causing extra lines to
	   be drawn in some games like 1942.
	 - Released debug level 1.2 to the basicNES homepage.
17.07.00 - Added Mapper #11 support.
	 - Added Mapper #7 support. I just downloaded the Mappers.doc by
	   \Firebug\ so I should be implementing more mappers as the days
	   go by.
	 - Added Select32KBank() so I could add Mapper #7 support.
	 - Added a Common Dialog File opener without using the actual control, just
	   a part of the windows api. Saves hard disk space and download time.
16.07.00 - Created 2 Screen rendering engines. There is one for the 4 color
	   screens but with DirtyChar[faster], and there is one that
	   actually uses the NES Palette[slow, no DirtyChars].
         - Added Mapper #2 support. Preliminary, but some games work.
	 - Added Select8KVROM() and Select16KBank for easy ROM access
	   and adding mappers. 
16.07.00 - Released debug level 1.1 to the basicNES homepage.
15.07.00 - Added Preliminary Mapper #3 support. Ice Hockey works!
	   But no sprites yet so its not really playable. Don't know
	   what other games work...
         - Added Free ROM menu, and CPURunning to check the status of
	   the CPU[read the source, and you'll know why].
	 - Removed tsb and trb opcodes, as they aren't in the NES
	   6502[as I'm told].
	 - Made the basicNES screen bigger[And Yoshi is the icon!]
14.07.00 - Implemented DirtyChars in DrawScreen(). Gives it a little
	   bit of a speed increase.
         - Added Joypad 1 support.[Check exec6502() and KeyDown()].
         - Released source/binary to basicNES homepage.
13.07.00 - Wrote Read6502, Write6502, LoadNES, DrawScreen functions
	   Fixed up the 6502 core.

