DRR-NES Version History

v0.10.0001 (98-11-13)
* started program
* loads *.nes mapper #0 40KB roms
* prints header and reset vector

v0.10.0002 (98-11-14)
* has 15 opcodes
* traces opcodes
* displays registers
* now also supports 24KB roms
* added graphics routines but didn't use them yet

v0.10.0003 (98-11-15) -- alpha 1
* added 5 opcodes
* made a better memory access system
* made reads/writes to ppu memory
* switched from pure text output to graphic debugger w/ all registers, opcode
  display, cycle count

v0.10.0004 (98-11-16)
* added 2 opcodes
* implemented vblank flag
* the usual minor bug fix-ups

v0.10.0005 (98-11-18) -- alpha 2
* added 9 opcodes
* made background graphics engine!!! (# of bugs unknown)
* fixed several bugs in bg graphics
* fixed up debugger
* made it delete the two temp files when loading & when done

v0.10.0006 (98-11-20) -- beta 1
* added 9 opcodes (total of 40)
* fixed several bg graphics bugs
* did some major optimizations that didn't help as much as i thought they
  would :(  0.4fps -> 0.5fps
* fixed up a huge bug in vram writing: now some demos actually display
  stuff!!!!

v0.10.0007 (98-11-21) -- beta 2
* made sprites
* made them flip in all directions but removed that because it was a huge
  pain in the ass to keep working (what i did was just made 4 sprite engines
  for each different way that they could be flipped)
* switched main display to mode-x 320x240x256
* made sprites in their full 16 colors now but there's still no palette yet
  so the colors are incorrect

v0.10.0008 (98-11-22) -- gamma 1
* implemented bg palette and sprite palette
* implemented attribute table
* fixed a shitload of bugs in the above to finally get the colors to show up
  correctly in most cases (okay, Loopy's palette is a little off but so what)
* unfortunately, it slowed down to about 0.2 fps because of the way the NES
  has its fucking psycho atttribute table set up :(
* then i made it speed up a little but how much is unknown
* i also implemented the bg/sprite on/off flags so it doesn't bother drawing
  the screen if it's turned off to save a LOT of time
* but that damn bug that makes garbage show up where the screen is blank is
  STILL not fixed- i'm so sure that it's zeroed out on startup but oh well

v0.10.0009 (98-11-24)
* now has 57 opcodes
* readded sprite flipping although it still is a pain in the ass
* i made the graphics a little faster by doing a lot of optimizing
* unfortunately a new bug was introduced that made all roms give blank
  screens
* i found a bug and fixed it (i think) and now the games show garbled screens
  but there's still some big mess-up but now i'm out of time so i'll fix it
  later

v0.10.0010 (98-11-25)
* fixed bug from build 0009
* now has 74 opcodes
* made some more I/O registers
* remade memory read/write system
* fixed some little bugs
* now goes at 0.5 fps (on my P166)

v0.10.0011 (98-11-26) -- gamma 2
* speed up to 0.64 fps by optimizing graphics for Mode-X
* changed most variables from DIM SHARED to type-sign at the end

v0.10.0012 (98-11-27) -- gamma 3
* removed some opcodes that i accidentally put in that are only in the 65c02
  but not the 6502
* added some misc. opcodes (i forget how many)
* it doesn't have to be in a certain directory anymore - the first time you
  run it it asks you for the path and saves it to C:\DRR-NES.dat
* i made it so that you type in the filename instead of modifing the source
  code
* now you can switch back and forth between the debugger and output window
* you can quit using [Esc] instead of Ctrl-Break
* in the debugger you can step through the opcodes and you can jump to vblank
  on/off
* switched RAM from a string in memory to a file to make it faster (no more
  slow ASC(MID$(RAM, x, 1)) crap)
* now a lot of roms do different opcodes and show blank screens - i think i
  made a bug somewhere when i switched over the RAM system

v0.10.0013 (98-11-28)
* made a cool fps counter

v0.10.0014 (98-11-30)
* found and fixed several CPU bugs in an unsucessful attempt to fix the
  "build 12" bug
* the "random graphic garbage" bug was not found either :(
* for some unknown reason the CPU core has been slowed down considerably :(
* Today has simply not been a good day for DRR-NES.

v0.10.0015 (98-12-02) -- gamma 4
* made a major optimization in the main CPU core that increased total speed
  50%!!!
* fixed the build 14 slowdown bug to increase the speed again - 3.7 fps has
  been reached!!!! (a very huge accomplishment for QB)
* fixed the "build 12" bug AND with the same keystoke the BIG SUPER-ANNOYING
  GARBAGE BUG HAS BEEN FIXED!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* (what the cause was that I forgot the % sign after a variable) 8S
* made controllers 1 and 2 completely (although most programs do an
  unimplemented opcode if you push anything)
* (player 1: Arrows are the arrows, Select=v, Start=b, B=n, A= m)
* (player 2: Arrows are w-a-s-d, Select=1, Start=2, B=3, A=4)
* (debugger is z and FPS counter is x now)
* things are _REALLY_ starting to look up for DRR-NES!

v0.10.0016 (98-12-03)
* fixed several memory bugs to get "NES Test Cart" to complete the memory
  tests and show the color bars (but scrolling isn't implemented yet)
* added 2 opcodes

v0.10.0017 (98-12-04) -- final release
* implemented scrolling, but there are bugs
* this version is the v0.10 "final" but i'm not gonna release it because it's
  so early - i'll release v0.20 sometime soon

v0.20.0001 (98-12-23) -- alpha 1
* rewrote CPU core so that I only have to make an instruction for each
  command, not each opcode -- now (almost) all opcodes are made
* I still don't have enough information on BIT and BRK, SBC is a wild guess,
  and ADC, CMP, CPX, and CPY are also probably wrong
* Several new bugs were introduced and several were fixed. "NES Test Cart"
  stopped working and "Game Genie Code Conversion" flashes on and off every
  frame.

v0.20.0002 (98-12-24)
* fixed some minor bugs in the new CPU core but not any of the big ones

v0.20.0003 (98-12-29)
* added new font to DRR-NES

v0.20.0004 (98-12-30) -- beta 1
* added new title screen to DRR-NES
* added new ROM loading dialog box

v0.20.0005 (98-12-31 ~ 99-01-01) -- gamma 1
* Have a great 1999!
* fixed several bugs and now "NES Test Cart" works better than before the new
  CPU core and "Balloon Fight" shows the title screen
* speed is almost back to where it was before the new CPU core
* started to make a new debugger but so far it only has a few functions

v0.20.0006 (99-01-01)
* Made more debugger functions
* Fixed up some PPU mirroring bugs -- now "NES Test Cart" shows the "block of
  characters" screen

v0.20.0007 (99-01-02)
* Made DRR-NES automatically skip through wait-for-vblank loops in the form
  of "SomeAddress: JMP SomeAddress" -- the dither/interlace demos went from
  1.5 to 3 fps on my P166! :)
* (finally) Implemented sprite DMA transfers. The reason that it wasn't ever
  implemented before is that I didn't know that the register existed since it
  was mixed in with the sound registers. Now "NES Test Cart" shows the other
  three sprite tests that didn't show up before, although a lot of the
  sprites fail to display and there are some background glitches.

v0.20.0008 (99-01-08) -- gamma 2
* fixed up some scrolling bugs
* made controllers work in the debugger
* made the NES screen get drawn in the debugger
* fixed up a bug in ASL and LSR where it would set almost all of the flags
* made the "memory contents" box in the debugger

v0.20.0009 (99-01-09)
* made [F10] show ROM information in the debugger
* now it tells you what keys do what in the debugger

v0.20.0010 (99-01-10) -- delta 1 (v0.20 final release)
* I made a few little final adjustments and tweaks here and there.
* I also put in a few surprises when you press different keys during certain
  times. :)
* Finally, I can release DRR-NES to everyone! :)

v0.30.0001 (99-01-11) -- alpha 1
* I fixed a bug so now vertical writing works corrrectly.
* BIT was implemented (thanks uNESsential).
* Now Balloon Fight shows two game screens and NES Test Cart works slightly
  better.

v0.30.0002 (99-01-12)
* I reimplemented ADC/SBC & CMP/CPX/CPY (thanks again uNESsential).
* I did a other little optimizations here and there.
* Somewhere along the line I did a big "oops" because now 3/4 of the roms
  stopped working - they give bad opcodes and invalid program counters. :(
* I searched for hours for the bug but didn't find it. :(

v0.30.0003 (99-01-13) -- beta 1
* I searched for a few more hours and (finally) found out the bug- in the
  opcode TAY, it added one more than it should to the program counter. :S
* Now, Donkey Kong, Donkey Kong Jr., and Bomberman show the title screens!
* I implemented a frameskip now -- push + and - to increase/decrease it. On
  most games, the difference is only about 1 fps more, but on roms like the
  Zelda Title Screen Demo that draw one screen and don't do anything after
  that, I got like 36 fps on my P166!!!

v0.30.0004 (99-01-14)
* Now mapper #1 roms load completely and start executing instructions!
  (Although none of the registers are implemented yet so nothing gets very
  far.)

v0.30.0005 (99-01-15)
* I changed the entire memory access system from file-based to memory based,
  making huge speed increases! This took forever to do, but it was worth it!
  (The reason that it wasn't memory based before is because I would have to
  use slow ASC(MID$(SomeString$), Offset%, 1) crap, but now I found out how
  to directly PEEK/POKE the data from/to memory.)
* Unfortunately, the mapper #1 stuff was wrecked in the process, but it won't
  take too long to get it back.
* The only bug that I didn't fix in the new memory routines is this bug in
  the scrolling subroutine (I think) that messes up the screen a little and
  corrupts memory, so for now, "NES Test Cart" will crash after the
  scrolling part.

v0.30.0006 (99-01-16)
* I fixed a scrolling bug from build 0005 so that scrolling stuff doesn't
  crash anymore, but for some reason some name tables are still not showing
  up.

v0.30.0007 (99-01-17)
* I fixed a mirroing bug, so now all the bugs intorduced in build 0005 are
  gone now.

v0.30.0008 (99-01-20)
* I made a disassembly window with scrolling! (but it redraws slowly so it's
  a little bit of a pain in the butt)

v0.30.0009 (99-01-21) -- beta 2
* The disassembly window scrolls a lot nicer and quicker now.

v0.30.0010 (99-01-23)
* I fixed a bug in ROR, a bug where the upper and lower halves of RegPC were
  being pushed/popped in the wrong order, and a bug where RegPC was being
  incremented after an indirect jump.

v0.30.0011 (99-01-24)
* I switched the font to the PEEK/POKE system, giving a little speed
  increase in the debugger when you're holding down a button.

v0.30.0012 (99-01-28)
* Some CPU bugs were fixed and now Super Mario Brothers displays better (but
  it still is very garbled).
* I also fixed a bug in the memory read/write system that's been there since
  sometime in v0.10 that made the contollers not work in a lot of games (it
  has to do with the code that handled the $200x register mirroring).

v0.30.0013 (99-01-30) -- gamma 1
* ADC and SBC were changed somewhat and now Mario displays correctly.
* Unfortunately, I'm running into "out of memory" problems with the complier.
  I've hit the 64KB limit to a QBasic module/subs. What I have to do now is
  to divide the program up into smaller programs and chain them together.
* I implemented skipping in LDA $2002: BPL -$05 loops and made skipping also
  work during vblank, making some demos run at about 30-45 FPS on my P166!
  Cart.nes averages 15-20 fps! (The next day, I got it to compile by
  temporarily commenting out the debugger.) Unfortunately, the games still
  run at about 3 fps.

v0.30.0014 (99-02-03)
* I switched over the opcode fetching system from reading from the file to
  copying the file into memory and reading it there. Unfortunately, the
  variables + data is more than 64KB so I can't compile it yet again. If I
  could get it compiled, it would be even faster than the previous 15-20 fps!

v0.30.0015 (99-02-04)
* I found out about how you can use the /AH switch to use the "huge" memory
  model and got DRR-NES to complie again.  ACTUAL GAMES AVERAGE 9-12 FPS
  and now ABOUT HALF OF THE DEMOS RUN AT OVER 60 PFS!!!!!!!!!!!!!!!!!!!!!

v0.30.0016 (99-02-06)
* I worked on ADC/SBC some more, trying to fix the annoying problem where
  characters won't move side to side while in the air in Balloon Fight and
  Donkey Kong/Donkey Kong Jr. Mario doesn't move left/right at all. :( And
  DRR-NES won't complie yet again. It seems that this time it's a problem
  with the mouse stuff. (Before, I had it commented out so I didn't encounter
  the problem.)

v0.30.0017 (99-02-07) -- gamma 2
* I switched to a different mouse driver so DRR-NES would compile again.
* The opcode BRK was implemented.

v0.30.0018 (99-02-10)
* The sprite engine has been optimized. (Before, I had a separate engine for
  all four ways a sprite could be flipped and now I have one engine for all
  of them.)
* The NES scrolling graphics engine has been made a little faster.
* 8x16 sprites are supported now.

v0.30.0019 (99-02-14)
* Trainer support has been added.

v0.30.0020 (99-02-17)
* I changed some miscellaneous little things.

v0.30.0021 (99-02-18)
* I fiddled with various things a little trying to get SMB1 to work (to no
  avail).

v0.30.0022 (99-02-19)
* Mappers 2, 3, and 8 have been implemented and 1 has been partially
  implemented!!!!!!! (Big surprise, huh?) :)

v0.30.0023 (99-02-20)
* The Sprite RAM and NES RAM have been switched from the PEEK/POKE system to
  an integer array system.
* Some mapper #1 bugs have been fixed.
* CHR-ROM bank switching has been added to mapper #1 although I don't have
  very much information on it so it's basically a guess (extremely buggy).

v0.30.0024 (99-02-21)
* The Pattern Tables and Name Tables have also been switched from the
  PEEK/POKE system to the integer array system.

v0.30.0025 (99-02-22) -- gamma 3
* A new mirroring system has been implemented, allowing much easier coding
  of odd mirroring setups like "mirror all to $2400" and giving a slight
  speed boost.
* A stupid bug was fixed where the NES graphics engine would ignore the
  mirroring if no scrolling was taking place, fixing the problem where you
  had to move in some games (Bionic Commando) to display the background.
* The 6502 core has been made almost completely crash-proof.
* The mouse has been taken out of the debugger. It didn't do anything except
  mess up the graphics anyway.
* Mappers 7 and 11 have been added to DRR-NES.

v0.30.0026 (99-02-23)
* The loading interface has been changes a little.

v0.30.0027 (99-02-24)
* The "don't show bg/sprites on leftmost 8 lines" register was implemented,
  making games like Paperboy and Jaws look a little nicer.
* Some other registers were fiddled with a little, hopefully fixing some
  bugs.

v0.30.0028 (99-02-27) -- delta 1 (v0.30 final release)
* The "Memory Contents" window in the debugger has been fixed.
* The "Load ROM" dialog box has been changed a little.
* Hurray! Version 0.30 is finally done!
