
 Change log

 [1.3]

 - Fixed last entry in CRC lookup table.
 - Added TMS9918 display mode support for SMS2 and GG video chips.
 - Added very preliminary Windows port using Allegro.

 [1.2]

 - Fixed smptab allocation error.
 - Various source code cleanups.
 - Minor tweaks to sync with Mac source changes.
 - New sound update code from Richard Bannister.
 - Added more support for PAL hardware.
 - Added partial support for Codemasters games.
 - Fixed some aspects of ROM loading.
 - Fixed SRAM restore bug in save states.
 - Fixed viewport size check when going from extended to normal mode, which
   fixes Fantastic Dizzy opening screen and V counter test program.
 - Split up VDP emulation into SMS/GG/MD specific parts.
 - Added support for different port I/O port memory maps.
 - Fixed mapper restore bug in save states.
 - Fixed UI key management in dos/main.c
 - Improved HV counter emulation.
 - Added dump VRAM keyboard shortcut. (Alt+V)
 - Split up DOS code into different modules.
 - Fixed EXT connector and related I/O port 2 behavior.
 - Added GG I/O register emulation.
 - Changed SRAM management.
 - Modified use of reset/poweron/poweroff functions.
 - Added configuration via CRC for some Codemasters games.
 - Fixed implementation of GG input port.
 - Added cycle counter feature to Z80 emulator.
 - Added shutdown functions to other modules.
 - Mapped 2nd player inputs to keyboard numeric pad in dos/main.c
 - Fixed reset button handling in dos/main.c
 - Moved Z80 port handlers to memz80.c
 - Fixed console type assign in loadrom.c (removed TYPE_* defines)
 - Added support for I/O chip disable control.
 - Rewrote I/O chip emulation.
 - Fixed pixel LUT to handle sprite collision behind high priority BG tiles.
 - Added emulation of sprite overflow status flag.
 - Added 'granularity' member to bitmap struct and fixed DOS blur code.
 - Fixed FM sound restore on state load / FM emulator change.
 - Corrected screen blanking width.
 - Removed sprite limit disable feature.
 - Added support for extended display modes.
 - Added partial support for PAL display timing.
 - Removed BMP_* macros, replaced with bitmap.viewport.* variables.
 - Removed Y's (J) rendering hack that was problematic in other games.
 - Added error logging routines.
 - Removed Game Gear specific rendering speedups.
 - Replaced cart.type with sms.console, replaced access with IS_GG macro.
 - Renamed INPUT_SOFT_RESET to INPUT_RESET. Use for SMS games only.
 - Removed INPUT_HARD_RESET, use system_reset() instead.
 - Modified vdp_ctrl_w() to update address register LSB during leading write.
 - Changed path length in wram/state/snap routines to PATH_MAX in DOS code.
 - Added define to specify message length in DOS code.
 - Added r/w handlers for FM detection latch access, renamed fm* -> fmunit*
 - Added territory/console members to struct sms (removed sms.country).
   Removed TYPE_* and replaced with TERRITORY_* enums.
 - Fixed FM register restore during state load when sound is disabled.
 - Updated memory system to support 1K pages.
 - Updated zlib to 1.2.1 and unzip.c to 1.0
 - Moved sound management out of system.c into sound/sound.c,fmintf.c
 - Moved state management out of system.c into state.c
 - Rearranged header file include order in system.h
 - Added support for MAME YM2413 emulator
 - Abstracted FM sound chip interface to support both YM2413 emulators
 - Updated timeline in dos/main.c and system.c
 - Removed SSL logging
 - Fixed path length in loadrom.c to MAX_PATH from limits.h
 - Added library version display option to dos/main.c
 - Moved file I/O code to fileio.c
 - Fixed loadrom.c to support 16K ROM images
 - Updated documentation and porting instructions
 - Modified EMU2413 to have update function for 2-channel output
 - Modified dos\config.c to ensure parameters are left during option parsing
 - Modified YM2413 emulator to check for NULL pointer during shutdown
 - Cleaned up variable names in snd struct
 - Added default mixer callback
 - Made sound_shutdown() free memory
 - Modified sound_init() to allow re-initialization
 - Cleaned up system.h, sms.h, vdp.h
 - Optimized color expansion for paletteized 8-bit format in render.c
 - Added Maxim's SN76489 emulator, removed the old one
 - Added YM2413 context management
 - Fixed PSG/FM state save/load behavior

 [0.9.4b]

 - Removed calls to text_mode() and changed textprintf() to textprintf_ex().
   for compatability with Allegro v4.1.11 (WIP).
 - Removed VERSION from shared.h and add APP_NAME, APP_VERSION to system.h.
 - Changed TYPE_OVERSEAS to TYPE_EXPORT in sms.h.
 - Renamed dos.c/dos.h to main.c/main.h.
 - Fixed FPS meter state display.
 - Moved 1P buttons from ALT/LCTRL keys to S/A keys.
 - Added work RAM dump feature (Alt+W).
 - Added mostly complete HV counter tables to hvc.h.
 - Rewrote VDP frame and line interrupt handling. 
 - Added ID and version number to state files.
 - Removed vdp_run(), renamed sms_run() to system_run() in system.c.
 - Merged cpu_reset() with sms_reset().
 - Consolidated parts of the ROM file loading routines.
 - Increased resolution of GG palette (Mean Bean Machine intro).
 - Fixed GG palette write handling (RoboCop 3 intro).
 - Rewrote and optimized tile caching routines.
 - Made SMS/GG palette brighter.
 - Fixed leftmost column drawing in SMS mode.
 - Upgraded Z80 CPU emulator from V2.7 to V3.3.

