[note: only important changes are listed]

0.9
---

Program:
- Bomb Jack support.

- Background graphics in Zaxxon now work, albeit a bit slow (45-50 fps on my
  486/100)

- Support for the original version of Super Cobra. Note that I renamed the
  other one (which is a bootleg) "scobrab".

- Support for the original Moon Cresta (Nichibutsu copyright). These ROMs are
  encrypted, and slightly different from the other version. This is very
  likely the version Chuck Cochems remembers (with aliens teleporting right in
  front of your ship). I renamed the other version (which looks like a mix of
  the code from a bootleg version and the graphics from the Gremlin original
  version) "mooncrsb".

- Space Invaders now seems to work correctly. Deluxe version still doesn't
  work properly.

- F12 to take a snapshot of the gfx set (displayed using F4) now works.

- Better colors in Donkey Kong Jr. (thanks to Brad Oliver)

- Thanks to Gary Walton, Moon Quasar dip switches now are correctly described
  in the dip switch menu.

- F11 is now a toggle, also added F10 to turn off speed throttling (toggle as
  well)

Source:
- The memory handling was no longer up to the task, so I had to make it more
  flexible.
  RAM is no longer a static array; it is dynamically allocated by readroms(),
  split in memory regions (one for the CPU addressing space, one for graphics
  ROMs, and so on) so data not needed at run time, like the graphics data, can
  be unloaded from memory after conversion. The definition and usage of struct
  RomModule and struct GfxDecodeInfo has changed. struct RunningMachine
  contains an array of pointers to memory regions.
  RomModules are now defined using macros, and readroms() does some error
  checking as well. This greatly reduces the chance of making a silly mistake.

  And don't ask me why, but as a result of this change the emulation seems to
  run much faster than before!

- New rom_decode function pointer in the GameDriver structure. It is used to
  decrypt the whole ROMs after loading them (as opposed to opcode_decode,
  which is used to decrypt only CPU opcodes).
  Also, opcode_decode is now handled differently: instead of calling it at
  runtime when the CPU reads an opcode, another 64k of memory are allocated
  and the whole ROMs decrypted. opcodes are then fetched from this new array.
  This approach is less flexible, for example it cannot handle code created
  in RAM (Pengo does that). However, it is MUCH faster (finally I get 60fps
  in Crazy Climber!), so I'll go with it for now. Should the need arise for
  a more flexible decryption, we'll think about it.

- Some changes to the MachineDriver definition and mame.c needed to support
  multiple CPUs (they are NOT supported yet - this is just the first step)


0.81
----

Program:
- Sorry about screwing Donkey Kong Jr. colors... it's playable again. Colors
  are still way off though: anyone volunteers to fix them? ;-)

- Zaxxon now works, but the background graphics are missing


0.8
---

Program:
- Added some support for Carnival - it boots and runs the demo, but the
  graphics are messed up.

- Fixed graphics in Moon Quasar (yes it does run, but you need the correct
  ROMs)

- Better error checking in the sound initialization routines. It still sucks,
  but at least will notify of problems instead of locking up the emulation.
  The "0. Silence" driver also works.

- Removed the "-nosound" command line switch, replaced it with "-soundcard n"
  which allows to bypass the audio driver selection menu. Use "-soundcard 0"
  to turn off sound.

- Some support for Space Invaders (+ some clones) but it doesn't work well.

- Support for Battle of Atlantis (a Scramble hack)

- The ROM copyright notice is displayed in the main emulation screen.

- Maybe I understood how the character colors are selected in Donkey Kong, at
  least in part, but I'm not sure. Anyway, I started fixing them. I based on
  the Kong emulator by Gary Shepherdson.


  Following changes provided by Mirko Buffoni:

- You can view the game graphics pressing F4. Use cursor keys to change
  graphics set/color, F4 to return to the game.

- Support for Mario Bros. (wrong colors, no sound) and Zaxxon (doesn't work yet).

- Better colors in Amidar and Frogger.

Source:
- Added visible_area to the MachineDriver definition. It was used in all video
  drivers, so it's better to keep it centralized.

- Long-awaited function clearbitmap(), which correctly initializes a bitmap
  using background_pen. Note for people porting MAME to other systems:
  osd_create_bitmap() must call this function, the video drivers rely on that.

- I got rid of machine.c and put all into mame.c... when I have time, I'll try
  to organize the source better.


0.7
---

Program:
- Support for:
  Super Cobra (version running on a modified Scramble board)
  Amidar US version
  Crazy Climber Japanese version
  Pooyan (wrong colors, no sound)
  Phoenix/Pleiades (no sound)

- Scramble has 100% correct colors. The same palette is used by Super Cobra,
  but it doesn't look right.

- Gorf and Robby Roto boot but don't work.

- Added some support for Moon Quasar, but it doesn't work. Since the ROMs are
  encrypted, I don't know if this is due to wrong decryption, bad ROM, or
  wrong driver (I'm using the Moon Cresta one). I think that either MQ3 (which
  maps at 1000-17ff) is bad, or it uses a different encryption.


0.6
---

Program:
- Support for:
  Scramble (wrong colors, no sound)
  Uniwars (US version of Japanese Irem game)
  Frogger (including bootleg version running on a Scramble board)
    (wrong colors, no sound)
  Amidar (wrong colors, no sound)
  Turtles (wrong colors, no sound)
  Rally X (wrong colors, no sound, slowdowns)

- I'm beginning to understand how the Wizard of Wor video hardware works,
  gameplay hasn't changed but the graphics are more faithfully reproduced.

- Star background in Galaxians & co. The way I calculate it is probably not
  correct, anyway it looks reasonable.

- Fixed staccato notes in Pacman and other games using the same hardware.
  There are still some minor glitches (especially in Ms. Pac Man) but Pac Man
  tunes are now very close to the original.

Source:
- I reorganized the source directory tree, instead of one directory for every
  game there are now four directories (drivers, machine, vidhrdw, sndhrdw)
  which contain files named after the game.


0.5
---

Program:
- Fixed some problems in the Wizard of Wor driver, but it is still far from
  complete.

- Support for:
  Donkey Kong Jr. (wrong colors, no sound)
  Galaxians and the plethora of clones (correct colors, limited sound)
  Pisces (correct colors, limited sound)
  "Japanese Irem game". I believe the colors are correct, but since I've
    never seen the original game I can't know for sure.
  War of the Bugs (wrong colors, limited sound)
  Moon Cresta (wrong colors, limited sound)
  The End (wrong colors, no sound)

- By popular demand, reverted to the old AY-3-8910 emulation code.

Source:
- Changed readroms() to allow scatter loading of a single ROM. This was needed
  for Donkey Kong Jr. Now the end of the RomModule array is marked by a size==0,
  while name==0 means "continue loading the previous ROM at this address".

- Some bug fixes and changes to reduce porting problems (thanks to Brad Oliver)

- New function copybitmap() in common.c. Limited for now, will change in the
  future.


0.4
---

Program:
- Bagman support (wrong colors)

- Early Wizard of Wor support (not playable).

- New experimental AY-3-8910 sound emulation code provided by Andy Milne
  (andy@canetics.com). This sounds better in some places and worse in others.
  It is used by Crazy Climber, Crazy Kong and Bagman. Let me know what you
  think.

Source:
- Optimizations in drawgfx(), Mr. Do!'s title screen and intermissions now
  run faster, Crazy Climber and Crazy Kong benefit as well.

- Use version 1.1 of Z80Em by Marcel de Kogel. Faster!
  (note that I had to make a couple of changes to Z80.c to make Crazy
  Climber work).

- Handle IN and OUT instructions in the same way as memory accesses (table
  of handler functions). The parameters of the functions are the same, so
  the same function can be used both for memory and ports.
  Had to change the driver structure, removed the pointers to _in and _out
  functions and added port_read and port_write array pointers.
  Also defined a generic interrupt_vector_w() function, this makes the Pac
  Man driver tinier (look at pacman/machine.c, it's now there only to handle
  the cheat).


0.3
---

Program:
- Donkey Kong support (wrong colors, no sound)

- New definition of custom video modes, this will hopefully be compatible
  with more systems.

- Lady Bug and Crazy Climber should run a little faster on slow machines
  (Crazy Climber is still too slow, I know).

Source:
- new general purpose readinputport() function used to handle reads of
  input ports and dip switches. This saves some work when creating a
  game driver. Required changes to struct MachineDriver.

- struct GfxLayout now contains a planeoffset array instead of
  planeincrement, to better support more than 2 bitplanes. I also fixed
  (I hope) all the code which assumed 2 bitplanes. struct GfxDecodeInfo
  had to be changed as well.
