
CHANGELOG

NOTE:
DOS and SDL ports are based on smsplus 1.3, with all changes backported from smsplus-gx Wii & GCN ports
Changes to the rendering code brought in smsplus 1.4 by Charles MacDonald (removed tile cache) is not included.

??/??/????: Eke Eke
- updated Z80 core to last version (fix undocumented BIT instructions & interrupts timing)
- improved Z80 timing accuracy: fixes sky flickering in Shadow of the Beast
- improved VDP accuracy (Status flags, sprites, HV counters, etc), Sms Plus now passes all tests in Flubba's VDP Test Program
- improved Sega Phaser autodetection: fixes lightgun support in some games
- improved Mappers emulation
- fixed FM unit & I/O chip concurrent access (Wonderboy III in Dragon's Trap, Time Soldiers)
- fixed Korean BIOS support
- fixed 3D-Glasses faking initial state
- adjusted SN76489 volume to real SMS2 output
- added emulation of new Korean 8k paging chip (Omar Cornut, Charles MacDonald)
- added support for new released Korean games (Omar Cornut, Charles MacDonald)
- added SG-1000 emulation
- added Colecovision emulation
- removed support for 8-bit color.
- various code cleanup & improvments

14/12/2008: Eke-Eke
- added Blargg's NTSC Filter support (NTSC video artifacts emulation)

15/07/2008: Eke-Eke
- added an option to disable original Sprite Limit emulation (reduce sprite flickering)
- added an option to display the hidden parts of the original Game Gear LCD screen
- added Laser Ghost in "Light Phaser" game database

01/06/2008: Eke-Eke
- fixed port $3E emulation: fix Gain Ground, Ninja Gaiden,...
- added Paddle emulation: fix inputs in all games requiring paddle (Alex Kidd BMX Trial, Megumi Rescue,...), best handled using D-Pad or Analog Sticks.
- added LightPhaser emulation: fix inputs in all games requiring the lightgun (Wanted, Rambo III, Operation Wolf,...), best handled through Wiimote IR pointing, can also be used through D-Pad or Analog Sticks.

19/04/2008: Eke-Eke
 - fixed VDP init when loading savestate: fix graphics in games using TMS9918 mode
 - added port $3E emulation and full SMS BIOS support (see user notes)
 - implemented SMS1 VDP "tilemap mirroring" bug: fix Y's (J) status bar when running in SMS1 mode
 - updated Z80 core to last version (fix some undocumented behaviour): fix Rambo 3 "Game Over" screen & Robocop 3 "pause" bug
 - corrected PAL CPU clock value
 - modified FM Unit detection: fix FM music in many japanese games
 - added full overscan emulation: when enabled, aspect ratio is exactly like on original hardware, including borders (horizontal borders
 are generally completely hidden under TV edges)
 - corrected Game Gear VDP handlers in SMS mode: fix colors in GG-MS mode
 - improved Codemasters Mapper emulation: fix Excellent Dizzy Collection & Ernie Els Golf
 - added Korean Mapper emulation: fix Sangokushi III & Dodgeball King
 - adjusted SMS color palette values (compared side by side with a real PAL SMS 2)
 - fixed Hcounter table (thanks to FluBBa)

20/07/2007: Eke-Eke
 - added 3D Glasses faking: fix graphics in games requiring 3D Glasses
 - fixed VDP & Z80 SP registers initialization (usually done by BIOS): fixe games not working without BIOS (Ace of Aces, Shadow Dancer)
 - completed game database for specific configuration (mappers, region, peripherals), based on Meka database

27/03/2007: Eke-Eke
 - corrected bug which made some SMS games not being fullscreen displayed
 - modified sound mixer for more correct FM music (try Wonderboy III Dragon's Trap)
 - FM is now disabled by default (only a few games use the FM unit and enabling FM forces the console type to japanese)

 [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.

