v1.20: unofficial release by manopac (the one that emulates the C7420 Home Computer cartridge)

Emulator changes
	- updated source to Allegro 4.4.1
	- emulates Z80 processor in cartridges and the communication between the Z80 and the videopac system (C7420 Home Computer cartridge)
	- configuration file changed: new o2emcfg.xml, it is now possible to use a different configuration for every game (instead of hacks.cfg and o2em_def.cfg)
	- Intelligent Keyboard Routine to allow proper typing on keyboards (mapping keys to a modern keyboard instead of keykombinations from G7400)
	- keyboardroutine now supports the extra keys on Videopac+ (G7400, Jopac etc))
	- option for hard resetting the system (power off/on) using Shift+F5
	- makefile for unix updated
	- fixed bug that prevented entering debug after browser before game start
	- file browser: passing a directory instead of a file to o2em opens the browser in this directory
	- file browser: SHIFT+letter to change disk drive, letter now jumps to first entry in list
	- file browser: changing the sort order also changes the side the list is shown on (sorted list always left)

Emulation changes:
	- fixed drawing of VP+ double size characters (fixes C7420 Start Logo)
	- introduced an option to allow VDC writes even if foreground is on (programs wouldn't work on original system, but fixes Puzzle Piece Panic (emulator version)

C7420 Emulation
	- complete emulation of cartridge
	- CLOAD and CSAVE can be used, file is loaded/saved with the name given in the folder "basic" (default, can be changed), emulating the low level read of the BIOS
	- CLOAD/CSAVE can load/save binary or BASIC-(text-)files
	- QuickLoad/QuickSave using F9/F10 loads/saves directly to/from memory (much faster, BASIC programs only)
	- CLOAD without filename supported - loads the next file in the directory (alphabetical order)
	- Data Extraction from Emulation Environment - copy all characters from screen to the clipboard (F11)

Debugger
	- save option "z80mem" to save the z80 Memory

v1.18.1: June 12th, 2010
unofficial release by manopac (the one that runs fine on Windows 7, has a file browser, a spriteeditor and fixes lots of bugs ...)

Note: some features were broken in 1.18 from copying only half the source from my unofficial version 1.17.4 - these should all be fixed now (some were reported on SourceForge, the rest I found comparing 1.17.4 with 1.18 file by file)

Fixes from Sourceforge:
 	- breakpoint works now again (Soeren found this one as well) - didn't make it from 1.17.4
	- MegaCart support works now again (Soeren found this one as well) - didn't make it from 1.17.4
  - score.c fixed for Linux compilation (Soeren Gust) - didn't make it from 1.17.4
  - corrected Linux makefile (Stephan Raspl)
	- all source filenames are now lowercase again to work on systems with case-sensitive filenames

Emulator changes
  - major change: I changed the way the screen is drawn - no more switching to a 8bit mode which does not work in Vista and Windows 7, instead blitting to a mode that has the same color depth as desktop. Should fix fullscreen and windowed mode on Windows 7 and Windows Vista
	- o2em can now be launched again from any directory and not only from its home - didn't make it from 1.17.4
	- moved to Allegro 4.2.3.1 and compiles clean without errors (changed deprecated functions)
	- fixed helpscreen (down actually scrolls down now, added instructions)
	- suck_roms() function removed from main (it didn't do anything but calculate a crc for all (!) your roms before starting O2EM)
  - function abaut() renamed to about()
	- config-file is taken now from o2em directory even if called from different directory
  - added example "o2em_def.cfg" config-file, uncomment the options you want or just adapt it to your needs
	- reworked main.c completly and basically rewrote most of the code implemented in 1.18. - makes a lot more sense now and is a lot more readable
	- added command line option "enable vpp" (if explicit bios is used, e.g. for hacked bios files)
	- added command line option "biosfile" to explicitly specify a file for bios
	- added command line option "crc" to force the hack for a specific crc on any ROM
	- added command line option -joyautodetect which detects the available joysticks and starts assigning it from stick1
	- right and left joysticks can now be swaped using F7
	- file browser when o2em is called without arguments
	- hacks.cfg filled with names for all roms in the pack from Ren's file
	- added command line option "disablebrowser" to disable file browser
	- added command line option "browsersortorder" to set default sortorder for browser (filename or gamename)

Emulation changes
	- cleaned up code for game specific hacks a bit, moved hacks to extra file "hacks.cfg" to seperate from code
	- turn off hacks with command line switch
	- read/write from/to certain registers (unused, foreground, grid) behaves more like original now - this might make some programs that work on O2em but not original systems stop working (but that is as its supposed to be)
	- fixed the "double size sprites are shifted only 1 instead of 2 pixles" bug again (fixed in my v17.2, unfixed in v18, refixed in my v18.1)
	- cpu overflows to 0 on address 7FF now
  - rightmost column of dots is now drawn if dot-grid is on
	- no drawing of foreground objects when vdc is turned off can be turned on using "-useforen" (this was implemented as a hack for certain roms, I wanted to completly remove it, but the timing in o2em is so wrong, that a lot of problems with games arised, so I let it in and gave the option to developers to turn it on when needed)

Debugger changes
	- improved the edit function in debugger (all locations: intram, extram, vdc, rom, megarom)
	- improved the load function in debugger (all locations: intram, extram, vdc, rom, megarom)
	- improved the save function in debugger (all locations: intram, extram, vdc, rom, megarom, vpp)
	- added "saverom": writes the currently loaded ROM to specified filename or original filename (if called without argument)
	- added "info" command to debugger (info about rom, bios, system etc.)
	- fixed "extram" command (shows now only the actual available 128 byte instead of 256)
	- renamed command "video" to "vdc"
	- md can now be used for editing one location just as the other "show" commands
	- removed lots of code (similar commands use the same code now)
	- changed command "c" into "edit" for editing all types of memory (except vpp)
	- so (step over) -> sets breakpoint to next instruction and runs (with output and interaction)
	- run -> sets breakpoint and runs to instruction given (with output and interaction)
  - list of breakpoints instead of just one supported now
	- added "editsprite": graphical sprite-editor that lets you scroll through memory and shows normal and double sized sprites
  - added "findsprite": lets you search the ROM for the displayed sprite (specify sprite number to search for)
  - added "speed" to set speed from debugger while emulator is running
	- added commands to enable/disable chars/quadchars/grid/sprites/vpplus drawing, so you can easily see what elements are used for creating what gfx on the screen

v1.18:  01/15/2007
	
	- added the option -biosdir to define bios directory path
	- added the option -romdir to define rom directory path
	- added the option -help to help display
	- directory search fix : When you don't have the "roms/" and/or "bios/" 
	  directory, the program will dump core (by Walter de Jong).
	- O2Launcher works now, o2em ignore roms and bios path if o2Launcher
	  is running.
	- quad display fix: changed the way quad chars are drawn, fixes problems
	  in KTAA as well as score display in Black Hole and Red Baron (Soeren Gust)
	- support for Soerens MegaCART bank switching (Information about
	  how to use this will be included in the next verison of Soerens
	  Bios-Documentation) (Soeren Gust)
	- new feature in debugger: savevpp to make an uncompressed dump of the VPP
	  screen and slide data (Soeren Gust)
	- dis48: fix to work under linux again (Soeren Gust)
	- init_sound volume is not set to maximum (By Gunter Wambaugh)
	- added makefile and options for freeBSD (By Gunter Wambaugh)
	- Other minor fixes.


	all the next changes were implemented by Manopac:	

	- added the option -s0 to redefine the system keys (see o2em.txt for usage)
	- bugfix: highscore-file is only written if scoretype is set
	- changed Default Stick 1 key from right <Control> to "L" to enable Fire and 
	  movement at the same time
	- two joysticks can be used now: first stick in command-line is mapped to joystick 1,
	  second to joystick 2 (compatible to old command line options)
	- changes in debugger: status of registers is now displayed after instructions 
	  are executed
	- new features in debugger: savedatah and savedatab to save data from memory 
	  as sourcecode ("db xxx")
	- changed Default Stick 1 key from right <Control> to "L" to enable Fire
	  and movement at the same time
	- two joysticks can be used now: first stick in command-line is mapped to
	  joystick 1, second to joystick 2 (compatible to old command line options)
	- changes in debugger: status of registers is now displayed after 
	  instructions are executed
	- new features in debugger: savedatah and savedatab to save data from memory
	  as sourcecode ("db xxx")
	- removed the limit that KTAA was the only 3K enabled rom (every
	  rom divideable by 3K is allowed now)
	- dis48: added option -bios to disassemble bios (start at address 0)
	- dis48: empty line after each page
	- new feature to save the highscore in games (F6 to set in game)
	- new feature to save/load state (F2/F3) (with command line option savefile)
	- new features in debugger: savevdc and saveext to save data from Extram and VDC
	- new feature in debugger: viewsprite
	- new feature in debugger: bp (breakpoint) - o2em runs with output until 
	  breakpoint is reached (bpc to clear)
	- new feature in debugger: so (step over) - runs to next instruction in memory
	- more explicit register display (P1 & PSW)
	- fixed the "double size sprites are shifted only 1 instead of 2 pixles" bug
	- new features in debugger (load / save file, change values in memory, 
	  assemble to memory)

v1.17:  05/01/2005

    - BIOS identified by CRC, to activate a specific BIOS type: -o2rom, or 
    -g7400, or -c52, or -jopac. The old form can be used. See O2EM.txt for more.

    - Automatic identification of BIOS VP+ when the selected game is only VP+.

    - Creation of the standard directories (ROMS, BIOS, VOICE) when uncompressing
    O2EM archive. 

    - ATLANTIS, FROGGER, COMANDO NOTURNO and CATCH THE BALL now work without 
    graphic bugs. This correction is based on a specific patch for each game.
    Thanks Rafael Cardoso for reports these bugs.


V1.16:  12/28/2004

    - Fixed a slowdown in Pick Axe Pete (based on a patch by Arlindo de
    Oliveira).
    
    - Reverted back to the old palette for O2 games, while using the new
    palette for Videpac Plus games (selected based on bios version in use).


V1.15:  12/12/2004

    - Added support for 12kb and 16kb games. Trans American Rally+ works now.
    
    - Added fixes to the VP+ gfx emulation made by Soeren Gust. Flashpoint
    works properly now.
    
    - Fixed a bug in the Windows-specific emulation timing code that caused
    the emulator to crash when run on a Windows machine which was on for a
    few days without a reboot.
    
    - Fixed a bug in the emulation of the DAA instruction, which caused bugs
    in the score of several games (Le Tresor Englouti, Cosmic Conflict, etc.).
    
    - Fixed instruction timings (patch by Soeren)
    
    - Modified the palette to use values calculated from the Videopac+ RGB
    encoder specs by Ren van den Enden, instead of guessed values.
    
    - Other minor fixes.
    


V1.01:  10/23/2002

    - Major speed optimization.
    
    - Implemented VDC <-> VP+ collision detection.
    
    - On the original machines it is possible to make all VDC 
    colors bright by clearing P17. This affects the background and
    dark grid colors. Implemented. Now the Killer Bees! intro screen
    works correctly.
    
    - Fixed the wrong color order when mixing between VP+ and VDC graphics.
    Jopac Moto Crash now works.  Fixed by Soeren Gust.
    
    - Now the VBLANK pulse is visible on the T1 input. This can be used
    to differentiate between PAL and NTSC.

    - Other minor fixes.



V1.00:  09/12/2002

    - Implemented complete Videopac+ G7400 emulation. Implemented it from
    scratch, based on the EF9340/41 datasheet (sent by Simon Scudder), on
    the technical docs made by Soeren Gust and disassembling the VP+ bios.
    You will need a Videopac+ bios image file in order to use this feature.
    You can use the -bios option to select it, rename the file to o2rom.bin,
    or select it in O2EM Launcher settings. Please note that a few O2 games
    do not work with the VP+ bios, so most likely you will need both bios
    versions to be able to run all the games. For copyright reasons these
    files are not included with O2EM, but you can find them in the Internet.
    
    - Added a default configuration file. Now you can specify your preferred
    options in a configuration file, instead of typing it every time you
    execute the emulator. The command line options override the default
    settings in the file. See O2EM.txt for more.
    
    - Extended the -s1 and -s2 switches to allow customizable keys with the
    joystick emulation. Based on a patch written by Zimmerman that
    implemented customizable keys it in a different way. See O2EM.txt for
    more.
    
    - Added support to the Four in 1 Row game.
    
    - Added the -exrom switch to enable the use of a special ROM mapping mode.
    See O2EM.txt for more.

    - Improved the sound with Frogger and Popeye.

    - Minor fixes.



V0.90:  08/07/2002

    - Fixed the color palette, based on screen shots from a real O2 console.

    - Fixed a bug in the sprite drawing priority. Now in several games the
    sprites look better (Demon Attack, Turtles, Atlantis, Computer Golf,
    Football, Helicopter Rescue, etc.).

    - Modified the emulation of sprites and characters in the border region of
    the screen. Fixed the bug of character wrapping to the other side of the
    screen and other problems (Atlantis and others). Now the main characters of
    P.T.Barnum's Acrobats! do not fall from the edge of screen.

    - Fixed the audio pitch and implemented white noise emulation. Now
    explosions sound much better!

    - Fixed a background line blinking problem that used to affect lots of
    games.

    - Fixed the color bar at the left of the screen.

    - Enhanced the support for European/Pal games. Now several games look and
    play better. Shark Hunter intro works correctly. Frogger and Depth Charge
    are fully playable !

    - Implemented an audio filter that accurately emulates the behavior of the
    low-pass filter present in the audio output of the real console. The sound
    is better now. (Enable it with -filter).

    - Fixed the screen size. Now you can see all the graphics in the game,
    including the time in Labyrinth.

    - Implemented Dot Grid emulation. Now Marksman is playable.

    - Implemented a cached video emulation, to make it run faster with slow
    machines / video cards.

    - Implemented screen shots (use the F8 key and the -scshot option)

    - Implemented the sprite shifted/smooth modes. Now the main character of
    Q*bert looks hi-res.

    - Several minor fixes.


    The following fixes were made by Soeren Gust:


    - Implemented the missing JNI instruction.

    - Implemented the 1kb data ROM / 3kb program ROM addressing mode used by
    Musician.

    - Fixed the height of the grid lines.

    - Added support for 3Kb per bank



V0.87:  06/21/2002

    - Fixed a collision bug introduced with version 0.86.
    Now Cosmic Conflict runs again. Thanks to Dan Boris for reporting
    this bug.

    - Implemented the option to set the O2 bios file name/dir, as
    requested by my friend Heitor, to enable him to support it with his
    nice O2EMLauncher frontend for O2EM 0.8x, as requested by its users.
    Get O2EMLauncher here: http://www.odyssey.com.br/o2emlauncher/



Version 0.86:

    - Fixed a bug in the drawing of quad characters. Now you can play
    Q*Bert and Nimble Numbers Ned. Some other games will also have
    improved graphics or text (Popeye, Super Cobra, etc.) .

    - Fixed another bug in the collision detection. Now Demon Attack
    works correctly.



Version 0.85:

    - Fixed the collision detection. Now you can play Killer Bees!

    - Implemented partial support to mid-screen changes to the VDC
    registers without interrupts. Now several games look better, and some
    that didn't work can be played, including Power Lords and Super Cobra.

    - Fixed a bug in the video emulation that made some games like Turtles
    and Shark Hunter appear with some strange static characters.



Version 0.80:

The following changes were already implemented by Daniel Boris in version
0.701.  Implemented them again in the sources based on version v0.65:

    - Fixed a bug in the CPU core related to the handling of branch
    instructions near page boundaries. (Without it Sid the Spellbinder
    crashed after the first level).

    - CPU core now jumps to the correct address on an external interrupt.
    Killer Bees runs again.

    - Fixed shape of '$' character and added missing 64th character to
    character set (ripped the correct character data from the v0.701
    executable file).

    - Fixed bug in drawing of bottom grid line.

    - Added Voice support. Re implemented it from scratch, based on O2
    technical specs released by Dan Boris and disassembling Smithereens
    and Turtles (now it always work with Turtles).

The following changes are new to version 0.80:

    - Updated the code to compile with Allegro 4.0.x and to work
    without changes under Windows, Linux and DOS, with optimizations
    for each.

    - Implemented the option of windowed or fullscreen video modes,
    with scaling, centering and optional 50% scanlines.

    - Cleaned the code to make it more portable and maintainable.

    - Improved timing, using the most accurate way available for
    each platform.

    - Fixed the keyboard scan code translation table.

    - Fixed and improved the built-in debugger.

    - Fixed the reset. It now works with Turtles.

    - Fixed joystick detection code.

    - Implemented variable speed control relative to original O2.

    - Implemented individual volume control for sounds and voice.

    - Implemented Pause/Information (F1).

    - Avoided collision of keyboard input with key joystick
    emulation. Now Caps Lock enables/disables the W,D,S,A,Space keys
    for keyboard input when they are used by joystick emulation.
    Works well with games like K.C.'s Krazy Chase.

    - It now releases more CPU time to the system (if possible).

    - Other minor changes/fixes.



