}
Common Source Code Project

This is the common source code archive of emulators: This archive is under GNU GENERAL PUBLIC LICENSE.

Download
Note: Windows CE port binaries are discontinued.

The target platforms are Windows 2000/XP/Vista/7.
This archive includes the device classes listed below:

4/16/2017
[VM/IO] revert the fix in 4/15/2017
[VM/SN76489AN] revert the fix in 4/15/2017
4/15/2017
[COMMON] add muldiv_s32 and muldiv_u32 to multiple 32bit integer
[COMMON] fix functions to support symbols
[VM/IO] improve to use read/write_io8/16/32w() to get wait clock from device
[VM/SN76489AN] improve to return 32 + 16 * n for wait clock
4/2/2017
[RESOURCE] improve menu items
[WINMAIN] improve menu items
3/30/2017
[COMMON] add functions to convert char, wchar_t, and _TCHAR to each other
[COMMON] add _fgetts, _ftprintf, my_ftprintf_s, and my_swprintf_s
[COMMON/FILEIO] add Fgetts and Ftprintf for _TCHAR
[COMMON/FILEIO] fix functions using ZLIB for _UNICODE case
[EMU/DEBUGGER] fix for _UNICODE case
[WINMAIN] improve to update status only when status is changed
[VM/HUC6280] improve disassembler to support symbols (thanks Mr.Kei Moroboshi)
[VM/I8080] improve disassembler to support symbols
[VM/M6502] support debugger and disassembler (thanks MAME)
[VM/MCS48] improve disassembler to support symbols
[VM/TMS9995] fix disassembler for _UNICODE case
[VM/UPD7810] improve disassembler to support symbols
[VM/UPD7810] fix disassembler for _UNICODE case
3/28/2017
[COMMON] add _tcscat and my_tcscat_s
[COMMON] add structure and functions to support symbols
[EMU/DEBUGGER] improve debugger to support symbols (thanks Mr.Kei Moroboshi)
[VM/MC6800] improve disassembler to support symbols (thanks Mr.Kei Moroboshi)
[VM/MC6809] improve disassembler to support symbols (thanks Mr.Kei Moroboshi)
[VM/TMS9995] improve disassembler to support symbols (thanks Mr.Kei Moroboshi)
[VM/UPD7801] improve disassembler to support symbols (thanks Mr.Kei Moroboshi)
[VM/Z80] improve disassembler to support symbols (thanks Mr.Kei Moroboshi)
3/26/2017
[VM/YM2413] support mute
3/20/2017
[COMMON] suport to read ascii/binary file compressed by gzip
[WINMAIN] fix to update status bar twice/second to supress flickar
[VM/SCSI_CDROM] support CD-ROM bin/img file compressed by gzip
[VM/DATAREC] support tape image file compressed by gzip
[VM/DATAREC] support to save FUJITSU FM-7/77 t77 format tape image
3/18/2017
[WINMAIN] support multiple data recorder
[EMU] support multiple data recorder
[VM/DATAREC] support HITACH BASIC Master Jr bin format tape image
[VM/PTF20] support access lamp signal
3/15/2017
[WINMAIN] add status bar to draw access lamps
[EMU] add interfaces to get access status of floppy/quick/hard disk drives
[EMU] add interface to get cmt status message
[VM/DATAREC] support cmt status message
[VM/HD44102] fix build error
[VM/MC6800] fix M_RDOP and M_RDOP_ARG macros (thanks PockEmul)
[VM/LD700] support access lamp signal
[VM/SCSI_CDROM] support access lamp signal
[VM/SCSI_DEV] support access lamp signal
[VM/SCSI_HDD] support access lamp signal
3/12/2017
[VM/DATAREC] fix issue that fast forward noise may not stop
3/11/2017
[VM/DATAREC] support to play play/stop/fast-fwd noise
[VM/MB8877] support to play seek/load/unload noise
[VM/HD44102] support HD44102 based on MAME 0.171
[VM/T3444A] support to play seek/load/unload noise
[VM/UPD765A] support to play seek/load/unload noise
[VM/UPD765A] fix seek time (thanks Mr.Artane.)
3/8/2017
[VM/DISK] improve to check if disk image is modified more strictly
[VM/DISK] import yaya2016-04-13plus1 (thanks Mr.umaiboux)
[VM/V9938] import yaya2016-04-13plus1 (thanks Mr.umaiboux and MAME)
[VM/YM2413] import yaya2016-04-13plus1 (thanks Mr.umaiboux)
3/7/2017
[WIN32/INPUT] improve to accept shift + caps/kana/kanji
[VM/DISK] support device name (thanks Mr.Aratane.)
[VM/EVENT] improve to check abnormal scanline number (thanks Mr.Sato)
[VM/EVENT] fix light weight sound rendering (thanks Mr.168)
[VM/*] add device name to all devices of each machine (thanks Mr.Aratane.)
3/4/2017
[WINMAIN] add interfaces for bubble casette (thanks Mr.Artane.)
[EMU] add interfaces for bubble casette (thanks Mr.Artane.)
[VM/*] import Mr.Artane.'s fixes (Commits on Feb 18, 2017)
[VM/AY_3_891X] split YM2203 and AY-3-891X (thanks Mr.Artane.)
[VM/DISK] fix trim buffer routine for 2D disk image (thanks Mr.Artane.)
[VM/EVENT] support light weight sound rendering (thanks Mr.Artane.)
[VM/MB8877] fix seek command for 2D disk image (thanks Mr.Artane.)
3/1/2017
[EMU/DEBUGGER] support < command (input commands from file)
2/9/2017
[WINMAIN] support to draw bitmap image onto buttons
[WINMAIN] fix to redraw pcb bitmap image when window is invalidated
[WIN32/SCREEN] fix to invalidate rects for 7-seg leds and buttons
12/29/2016
[RESOURCE] recompress png files in https://tinypng.com/
[EMU/DEBUGGER] support p command (trace one opcode, step-over)
4/13/2016
[WINMAIN] improve auto key for the case to switch upper/lowercase with capslock
[EMU/DEBUGGER] fix issue that u command may cause the infinite loop
[VM/DATAREC] support to detect the frequency of signal
[VM/DATAREC] fix to always adjust zero position of wave signal
[VM/UPD1990A] fix not to check clk signal is low when stb signal is raised
[VM/UPD7810] support debugger
[VM/UPD7810] support MOV A,S opecode
[VM/UPD7810] fix not to change V register (thanks PockEmul)
4/1/2016
[VM/DATAREC] suppot to specify channel of data and voice for each vm
[VM/UPD7810] support uPD7810 series based on MAME 0.152
[VM/UPD16434] support uPD16434 based on PockEmul
3/23/2016
[VM/FMGEN] fix psg volume (thanks Mr.umaiboux and Mr.Artane.)
[VM/MZ1P17] support MZ-80P3 and MZ-80P4 (thanks Mr.Suga)
[VM/UPD7801] support HOLD/HLDA signals at PC #7/#6 pins
3/17/2016
[ALL] improve VC++2013 project files for include/lib directories and manifest
[COMMON] import Mr.Artane.'s fixes (Commits on Mar 11, 2016)
[EMU] import Mr.Artane.'s fixes (Commits on Mar 11, 2016)
[EMU] add get_sound_rate()
[VM/SCSI_CDROM] improve CD-DA mixer to reduce cpu usage
3/16/2016
[VM/HUC6280] support busreq
[VM/MSM5205] support MSM5205 based on MAME 0.171
[VM/SCSI_CDROM] support SCSI CD-ROM drive
[VM/SCSI_CDROM] support NEC features based on MAME 0.171 and Ootake 2.76
[VM/SCSI_DEV] support more correct req timing
[VM/SCSI_DEV] simplify codes
[VM/SCSI_HDD] fix save/load state function to call SCSI_DEV's ones
[VM/SCSI_HDD] simplify codes
[VM/SCSI_HOST] suuport output bsy signal to notify bus free
3/5/2016
[EMU] add force_out_debug_log() function
[VM/DEVICE] add definitions for SCSI signals
[VM/I8237] suuport output signal to notify terminal count
[VM/MB8877] support MB89311
[VM/SCSI_HOST] support SCSI base host adaptor
[VM/SCSI_DEV] support SCSI base device
[VM/SCSI_HDD] support SCSI hard disk drive
[VM/UPD71071] fix to clear registers at initialize() for debug mode
[VM/UPD71071] fix initial mode and mask registers values in reset()
3/1/2016
[ALL] use integer types defined in stdint.h (uint8 -> uint8_t, etc)
[ALL] rename pair and scrntype to pair_t and scrntype_t
[COMMON] add get_long_full_path_name() and get_parent_dir()
[COMMON] rename IsFileExists() in FILEIO class to IsFileExisting()
[EMU] import Mr.Artane.'s fixes (Commits on Feb 27, 2016)
[EMU] add get_osd()
[EMU] add set_mouse_pointer(), set_mouse_button(), and get_mouse_button()
[EMU] add get_access_lamp_status() and get_led_status()
[EMU/DEBUGGER] avoid PostMessage() and GetAsyncKeyState()
[WIN32/CONSOLE] add is_console_key_pressed() and close_debugger_console()
[VM/DATAREC] fix t77 image loader (thanks Mr.Artane.)
[VM/DEVICE] add get_device_name() (thanks Mr.Artane.)
[VM/DISK] import Mr.Artane.'s fixes for eFM7/77/77AV hacks
[VM/MB8877] import Mr.Artane.'s fixes for eFM7/77/77AV hacks
[VM/MC6809] add 16/32bit read/write functions for debugger (thanks Mr.Artane.)
[VM/V99X8] fix macro to create color (thanks Mr.Artane.)
[VM/Z80DMA] fix build issue for MinGW's (older) GCC (thanks Mr.Artane.)
2/26/2016
[WINMAIN] refactor codes
[WIN32] fix routine to check the Windows Vista or later
[WIN32/INPUT] improve DirectInput codes for newer DirectX 9.0 SDK
[WIN32/VIDEO] improve routine to copy DirectShow buffer to vm screen buffer
[VM/HD46505] support to set character clock
[VM/MC6840] reimplement based on MAME 0.168
[VM/T3444A] fix build error
[VM/YM2203] fix to clear output register and mode register in reset()
2/21/2016
[VM/MB8877] fix timing to start read/write sector for invalid format track
[VM/T3444A] fix timing to start read/write sector for invalid format track
2/19/2016
[ALL] add VC++2013 project files
[ALL] change many public method names according to common naming convention
[COMMON] add create_string() function
[WINMAIN] copy codes to read clipboard for auto key from osd class
[EMU] copy codes for auto key and joystick mapping from osd class
[EMU/OSD] remove codes for auto key and joystick mapping
[VM/PRNFILE] fix not to register ack event in initialize() for debug build
[VM/MZ1P17] fix not to register ack event in initialize() for debug build
[VM/MZ1P17] fix font rom loader for MZ-80B/2000/2200
2/17/2016
[EMU] improve screen stretch modes
[EMU/OSD] improve screen stretch modes
[VM/FMGEN] support to set left/right volumes
[VM/YM2151] support to set left/right volumes
[VM/YM2203] support to set left/right volumes
[VM/Z80DMA] fix timing of bus request and release
2/13/2016
[VM/DISK] fix routine to calculate sector position for invalid format track
[VM/DISK] increase max sector number from 256 to 512
[VM/MB8877] improve timing to start read/write sector for invalid format track
[VM/MZ1P17] fix initial value of reset signal
[VM/PRNFILE] fix initial value of reset signal
[VM/T3444A] improve timing to start read/write sector for invalid format track
2/11/2016
[VM/DISK] fix to allow fdc class to get gap3 size
[VM/MB8877] improve timing to start read/write sector
[VM/T3444A] improve timing to start read/write sector
[VM/T3444A] fix to wait 100usec for tnd signal after sector is finshed
2/10/2016
[COMMON] improve routine to apply volume to sound samples
[WINMAIN] improve volume dialog
[WINMAIN] change volume uppder limit from +20dB to 0dB
[WINMAIN] support joystick dialog
[WINMAIN] simplify codes
[EMU] remove function to get sound device info
[EMU] change keyboard/joystick/mapper data pointer to const pointer



In the latest version, you can customize the inputs for the game controllers.
Please select the menu [Input] - [Joystick #1/#2].
Set focus to the edit box and hit joystick button or keyboard.



You can also change the volume for each sound devices.
You can change the volumes for left/right channes indivisually, except OPN(A) and OPM.
Please select the menu [Sound] - [Volume].
You can set the volume from -20dB to 0dB with slider controls.
2/7/2016
[WINMAIN] add dialog to set sound device volumes
[EMU] support to get sound device info
[EMU] support to set left/right volumes
[VM/BEEP] support to set left/right volumes
[VM/DATAREC] support to set left/right volumes
[VM/DEVICE] add virtual function to set left/right volumes
[VM/LD700] support to set left/right volumes
[VM/PCM1BIT] support to set left/right volumes
[VM/SN76489AN] support to set left/right volumes
[VM/TMS3631] support to set left/right volumes
[VM/UPD7552] support to set left/right volumes
[VM/YM2151] support to set volume
[VM/YM2203] support to set volume
[VM/YM2413] support to set left/right volumes
[VM/YM2413] fix memory leak issue
2/4/2016
[VM/TMS9995] support debugger
1/10/2016
[VM/MZ1P17] support ESC % 2 in MZ-1 mode
[VM/MZ1P17] support MZ-2/3/X1 mode
[VM/MZ1P17] improve hiragana mode
[VM/MZ1P17] support overprint in the case that line feed distance is not enough
[VM/MZ1P17] improve busy signal
[VM/MZ1P17] support ack and reset signal
[VM/PRNFILE] improve busy signal
[VM/PRNFILE] support ack and reset signal
12/31/2015
[VM/MZ1P17] support underline, hiragana mode, and color mode
12/30/2015
[COMMON] add jis_to_sjis() function
[EMU] fix to delete OSD instance after delete VM instance
[EMU/OSD] improve functions to manipulate bitmaps and fonts
[VM/PRNFILE] support save/load state
[VM/MZ1P17] support MZ-1P17
12/23/2015
[ALL] fix for UNICODE character set case
[COMMON] improve create_local_path() and get_file_path_without_extensiton() not to overwrite previous result soon
[EMU/OSD] improve to capture screen with png file format
[EMU/OSD] improve functions to manipulate bitmaps and fonts
12/20/2015
[EMU/OSD] remove functions for pinter interface
[EMU/OSD] add functions to manipulate bitmaps and fonts
[VM/PRNFILE] support dummy printer device that outputs to file
12/17/2015
[COMMON] add application_path() and create_local_path()
[COMMON] add create_date_file_path()
[COMMON] add get_host_time()
[EMU/OSD] remove EMU::application_path() and EMU::bios_path()
[EMU/OSD] remove OSD::create_date_file_name()
[EMU/OSD] remove EMU::get_host_time()
[WIN32/SCREEN] fix screen rotation
12/16/2015
[COMMON] improve config, common, and fileio for other environments
[EMU/OSD] improve lock_vm() and unlock_vm() to support nesting
[EMU/OSD] add force_unlock_vm() to force unlock vm ignoring nesting
[VM/DISK] improve for other environments
[VM/F9368] support F9368
[VM/FMGEN] fix to use FILEIO class (thanks Mr.Artane.)
[VM/LD700] improve for other environments
[VM/MC6809] improve for other environments
[VM/UPD765A] improve for other environments
[VM/V99X8] fix to check if screen buffer is valid or not
12/15/2015
[WINMAIN] fix to check if button caption is multi-line or not
[VM/I8080] fix to use fetch_op() function to fetch opecode
[VM/I8080] support to read interrupt enabled status
12/10/2015
[COMMON] improve common.h for other environments
[WIN32/SCREEN] fix crt filter issue for eFM-7
12/9/2015
[EMU/OSD] add OSD class and move OS dependent codes to OSD class
[WIN32/SCREEN] support screen rotation 180deg and 270deg, not only 90deg
[WIN32/SCREEN] support to load png image from resource
11/18/2015
[WINMAIN] support to eject disk with d88 bank selection menu open
[EMU/WIN32] add tape_playing(), tape_recording(), and tape_position()
[VM/∗] add tape_playing(), tape_recording(), and tape_position()
10/31/2015
[WIN32/INPUT] fix broken auto key function
[WIN32/INPUT] support to notify l/r-shift/control/menu key to virtual machine
[WIN32/SOUND] fix not to create a sound buffer on sound card memory
10/27/2015
[VM/IO] fix build error
[VM/UPD765A] fix tc signal in exec phase (thanks Mr.PI.)
10/7/2015
[VM/DISK] import Mr.Artane.'s fixes for FM-7 PSY-O-BLADE
[VM/IO] improve debug log for second cpu
10/6/2015
[WIN32/DEBUGGER] add > command to output the logfile
[VM/UPD7220] support vram data mask to support 12bit vram for MZ-3500
[VM/Z80] improve disassembler for DD/ED/FD opecodes
9/30/2015
[VM/TMS3631] add TMS3631 based on Neko Project 2
9/29/2015
[EMU/WIN32] fix terrible mistakes (thanks Mr.Artane.)
[VM/DISK] import Mr.Artane.'s fixes for FM-7 PSY-O-BLADE
[VM/MB8877] import Mr.Artane.'s fixes for FM-7 series
9/23/2015
[VM/UPD765A] fix index hole signal width to 5msec (thanks Mr.Sato)
9/17/2015
[TOOL/ANY2D88] support to convert solid image to 1dd
[TOOL/ANY2D88] support to convert solid image with sector size 256bytes
[WINMAIN] improve to inhibit starting screen saver
[VM/DISK] fix issue in the case that file extension of solid image is *.dsk
[VM/DISK] update physical disk format table
[VM/DISK] improve fdi converter
[VM/DISK] support to get am1 position in id field
[VM/MB8877] improve timing to start read/write sector
[VM/MB8877] fix to use const time to search sector in incorrect timing setting
[VM/T3444A] fix to use const time to search sector in incorrect timing setting
[VM/UPD765A] fix to use const time to search sector in incorrect timing setting
9/15/2015
[TOOL/ANY2D88] add new utility any2d88 that converts any format image to d88
[COMMON] add FileLength() function to FILEIO class
[WIN32/DEBUGGER] disable ctrl-c on the debug console
[VM/DATAREC] support to record tap format image
[VM/DISK] simplify image loader
[VM/DISK] improve cpdread converter for invalid track size table
9/9/2015
[COMMON] add batch file to merge manifest file for Windows Vista or later
9/8/2015
[VM/DISK] fix for single density disk in double density drive
[VM/T3444A] support T3444A/T3444M
8/28/2015
[WIN32/SCREEN] improve and simplify crt filter
[VM/DATAREC] rename SIG_DATAREC_OUT to SIG_DATAREC_MIC
[VM/DATAREC] rename set_context_out() to set_context_ear()
[VM/DEVICE] add virtual functions to get remaining time until event is expired
[VM/DEVICE] add functions to get remaining time until event is expired
[VM/MC6800] fix build error for MB8861
[VM/SY6522] support SY6522 based on MAME 0.164
8/25/2015
[WIN32/SCREEN] improve crt filter for non stretched screen
[WIN32/SCREEN] fix not to lock Direct3D9 offscreen surface for a long period
8/24/2015
[VM/DISK] fix to save image in d88 format if solid image is physical formatted
[VM/DISK] fix to save single side solid image correctly
[VM/DISK] fix imagedisk converter for single side disk image
8/23/2015
[VM/DISK] fix routine to check FM-7 DEATH FORCE
8/22/2015-2
[VM/DISK] support solid 1dd 280kb disk image with .img extension
[VM/MB8877] revert the fix in 8/22/2015
8/22/2015
[COMMON] replace many _TCHAR* to const _TCHAR* mainly for file path
[WIN32/DEBUGGER] improve L and W command to load/write intel hex format file
[VM/DISK] add patch for FM-7 DEATH FORCE (thanks Mr.Artane.)
[VM/MB8877] fix for 2d disk image on 2dd/2hd drive (thanks Mr.Artane.)
[VM/MC6809] improve mc6809 instructions (thanks Mr.Artane.)
8/21/2015
[WIN32/INPUT] improve auto key function for us-keyboard
[WIN32/INPUT] support to load vm's own auto key table
[VM/DISK] support *.1dd floppy disk image
[VM/I286] fix build error
[VM/MB8877] fix to check cylinder number for read/write sector command
8/13/2015
[VM/HUC6280] support debugger
[VM/I86] fix aad instruction for NEC V30
[VM/I286] add NEC V30 instructions based on MAME 0.128
8/9/2015
[VM/MB8877] support MB8866
[VM/MB8877] improve type-2/3 command timing for E flag
[VM/MB8877] fix write protect status (thanks Mr.Artane.)
8/8/2015
[VM/DISK] remove ugly patch for X1turbo Alpha
[VM/MB8877] remove ugly patch for X1turbo Alpha
[VM/MB8877] improve type-1 command timing
[VM/MB8877] improve type-2/3 command timing for E flag
[VM/MB8877] improve force interrupt command to finish write sector command
[VM/Z80SIO] improve transmitting timing for external clock signal
8/7/2015
[VM/DATAREC] support ASCII MSX cas format tape image (thanks Mr.Sean Yong)
[VM/DATAREC] improve mzt converter to support fast forward/rewind
[VM/DISK] improve image decoder for single side and data mark missing cases
[VM/MB8877] fix timing to abort searching the target sector
[VM/MB8877] fix to raise irq signal after abort searching the target sector
[VM/MB8877] fix to abort write command before drq when disk is write protected
[VM/MB8877] fix to abort write command when lost data occurs at first drq
[VM/MB8877] fix to read/write data register when lost data occurs
[VM/MB8877] fix to show crc error when verify track number at seek command
[VM/MB8876] fix not to show busy after seek command for FMR-30/50/60 series
8/5/2015
[WINMAIN] support menu to enable/disable correct fdc timing
[VM/DISK] improve to check both id crc error and data crc error
[VM/I286] fix issue that emulation may go to infinite loop when cpu is halted
[VM/MB8877] fix index hole signal width to 5msec (thanks Mr.Sato)
[VM/MB8877] improve drq signal timing to check E flag of type-2 and 3 commands
[VM/MB8877] improve drq signal timing for write track command
[VM/MB8877] improve data lost timing for write sector and write track commands
[VM/MB8877] improve to check both id crc error and data crc error
[VM/UPD765A] improve timing to go to exec phase
[VM/UPD765A] improve to check both id crc error and data crc error
[VM/Z80SIO] improve transmitting timing (thanks Mr.Sato)
8/3/2015
[VM/DISK] support sectors without data field
[VM/MB8877] improve drq signal timing for write sector command (thanks Mr.Sato)
[VM/MB8877] improve index hole signal width (thanks Mr.Sato)
[VM/MB8877] improve read/write command to wait at least 60msec after seeking
[VM/MB8877] improve seek command not to set seek error without verify flag
[VM/MB8877] improve read/write sector commands for sectors without data field
[VM/MB8877] improve write track command for sectors without data field
[VM/MB8877] improve force interrupt command to finish write track command
[VM/MB8877] remove ugly patch for MZ-2500 RELICS
[VM/UPD765A] improve read/write sector commands for sectors without data field
[VM/Z80SIO] improve transmitting timing (thanks Mr.Sato)
8/1/2015
[WINMAIN] support menu to modify write protected status of floppy disk image
[WINMAIN] support menu to enable/disable DirectInput for keyboard
[WIN32/INPUT] support to swap joystick buttons #1/#3/#5... and #2/#4/#6...
[VM/DISK] fix not to inherit the write protected status of image file
[VM/DISK] support to modify write protected status of floppy disk image
[VM/DISK] add ugly patch for FM-7 Gambler Jiko Chuushin Ha
[VM/MB8877] improve read/write commands to access the current track
[VM/MB8877] improve seek commands (thanks Mr.Artane.)
[VM/MB8877] suppot to set/get write protected status of floppy disk image
[VM/MB8877] add ugly patch for FM-7 Gambler Jiko Chuushin Ha
[VM/MC6809] improve mc6809 instructions (thanks Mr.Artane.)
[VM/PC6031] suppot to set/get write protected status of floppy disk image
[VM/PTF20] suppot to set/get write protected status of floppy disk image
[VM/UPD765A] suppot to set/get write protected status of floppy disk image
7/31/2015
[COMMON] fix all vcproj files to disable WholeProgramOptimization option
[COMMON] fix all vcproj files to enable SSE2 instructions
[CONFIG] support ignore crc options individually for each floppy drive
[VM/DISK] support ignore crc options individually for each floppy drive
[VM/MB8877] improve read/write commands (thanks Mr.Artane.)
[VM/MC6809] improve mc6809 instructions (thanks Mr.Artane.)
[VM/PC80S31K] fix m1 wait for PC-8801 series (thanks Mr.PI.)
[VM/PC80S31K] fix for force ready signal (thanks Mr.PI.)
[VM/UPD765A] fix for force ready signal (thanks Mr.PI.)
[VM/YM2203] improve timer timing (thanks Mr.PI.)
[VM/YM2151] improve timer timing (thanks Mr.PI.)
6/25/2015
[EMU/WIN32] add sleep(ms) for virtual machines (thanks Mr.PI.)
[WIN32/DEBUGGER] support * for bc/bd/be to clear/disable/enable all points
[WIN32/DEBUGGER] fix to accept escape key when the console is active
[VM/FMGEN] fix status register (thanks Mr.PI.)
[VM/MC6809] improve mc6809 instructions (thanks Mr.Artane.)
[VM/YM2203] fix busy period (thanks Mr.PI.)
4/29/2015
[EMU/WIN32] suport to load intel hexadecimal object file format
[WIN32/DEBUGGER] fix my_hexatoi() for 32bit hexadecimal value
[VM/MC6809] improve mc6809 instructions (thanks Mr.Artane.)
4/24/2015
[VM/DISK] fix to check only bit4-7 of sector status (thanks Mr.Artane.)
[VM/I386] improve i386 core based on MAME 0.160
[VM/MC6809] improve mc6809 instructions (thanks Mr.Artane.)
4/10/2015
[CONFIG] remove model-dependent codes
[VM/MC6809] improve mc6809 instructions (thanks Mr.Artane.)
[VM/MC6809] support debugger (thanks Mr.Artane.)
4/7/2015
[VM/MC6809] improve mc6809 instructions (thanks Mr.Artane.)
3/26/2015
[VM/MB8877] fix not to return error status when seek to unformatted track (thanks Mr.Artane.)
[VM/MC6809] improve mc6809 instructions (thanks Mr.Artane.)
[VM/YM2151] support mamefm.dll
[VM/YM2203] fix to check SUPPORT_MULTIPLE flag of mamefm.dll
3/21/2015
[VM/DISK] support 1dd floppy image
[VM/V99X8] support V99x8 (thanks Mr.umaiboux and Zodiac)
[VM/V99X8] support save/load state
[VM/Z80] support to hook ret opecode for pseudo bios call
3/19/2015
[WIN32/INPUT] fix DirectInput issues
3/15/2015
[WINMAIN] support to disable Desktop Window Manager (DWM) automatically
[WIN32/INPUT] support DirectInput for keyboard
[VM/∗] simplify including fileio.h
[VM/DATAREC] fix sound mixer
[VM/MC6809] improve mc6809 instructions (thanks Mr.Artane.)
[VM/UPD7801] fix disassembler
3/12/2015
[VM/DATAREC] support to play tape sound
[VM/DATAREC] support FUJITSU FM-7/77 t77 format tape image (thanks Mr.Artane.)
[VM/EVENT] suppot to change secondary cpu clock (thanks Mr.Artane.)
[VM/MC6809] improve mc6809 instructions (thanks Mr.Artane.)
[VM/MEMORY] support memory wait
[VM/PTF20] support save/load state
[VM/UPD765A] fix not to write sector because of tc if no data transfered
3/4/2015
[VM/I8255] fix save/load state
3/3/2015
[CONFIG] add cmt baud rate setting (thanks FP-1100 user)
[VM/UPD765A] fix period to raise lost data for write id command
2/28/2015
[COMMON] fix typo virtical to vertical (thanks Mr.Koucha-Youkan)
[VM/DISK] fix to use correct gap0/gap1/gap3 length for known format images
[VM/Z80] fix disassembler (thanks Mr.Reddam)
2/21/2015
[WIN32/INPUT] support to specify wait after shift key is pressed or released
[WIN32/SCREEN] improve crt filter for rotated screen
[CONFIG] add screen rotation setting
[VM/BEEP] improve sound quality
[VM/DATAREC] simplify sound mixer
[VM/DEVICE] rename bios_call() to bios_call_i86()
[VM/DEVICE] rename bios_int() to bios_int_i86()
[VM/DEVICE] add virtual function bios_call_z80()
[VM/DISK] support to fix sector number from big endian to little endian
[VM/EVENT] support more precise loop event timing
[VM/EVENT] improve sound quality
[VM/HD46505] fix to update timing after all required registers are written
[VM/PCM1BIT] simplify sound mixer
[VM/PCM1BIT] fix to suppress petite noise when go to mute
[VM/SN76489AN] improve sound quality
[VM/UPD7801] support correct serial i/o
[VM/Z80] support pseudo bios call
2/13/2015
[VM/UPD765A] add ugly patch for PC-8801 Kimochi Disk 2
2/1/2015
[VM/DISK] fix condition to check if the track offset is valid
[VM/DISK] fix routine to trim the disk image
1/31/2015
[VM/DISK] improve for format operation
[VM/DISK] fix issue that deleted mark is mistakely recognized as crc error
[VM/MB8877] support write track command
[VM/PTF20] rename pseudo EPSON TF-20 class from TF20 to PTF20
[VM/PTF20] improve format command
[VM/TF20] support EPSON TF-20
[VM/UPD765A] support write id command
1/28/2015
[VM/DATAREC] fix issue for loading state file saved while recording
[VM/PC6031] support save/load state
[VM/UPD7552] support save/load state
[VM/UPD7552] support init() function to specify sound rate
[VM/YM2203] fix to reset fmdll before registers are restored (thanks Mr.Rednow)
1/24/2015
[COMMON] avoid _tfopen_s() and use _tfpoen() not to lock reading file
[WINMAIN] fix to close d88 format disk image after image titles are read
[VM/DISK] fix to save image to temporary file if image file cannot be written
[VM/MB8877] fix to enable REC NOT FOUND patch only for Batten Tanuki
1/19/2015
[VM/HD146818P] support save/load state
[VM/I386] support save/load state
[VM/I8080] support save/load state
[VM/I8155] support save/load state
[VM/M6502] support save/load state
[VM/MC6800] support save/load state
[VM/MC6820] support save/load state
[VM/MC6840] support save/load state
[VM/UPD4991A] support save/load state
[VM/UPD71071] support save/load state
[VM/Z80SIO] improve transmit/receive timing
[VM/Z80SIO] support external transmit/receive clocks
1/14/2015
[COMMON] fix to use secure string functions
[COMMON] add substitutes for _TCHAR and secure string functions
[VM/I386] improve i386 core again based on MAME 0.157
1/11/2015
[VM/MC6820] fix mc6820 build error (thanks Mr.Artane.)
1/10/2015
[VM/DATAREC] support NEC PC-6001 p6t format tape image (temporary)
[VM/DATAREC] improve NEC PC-6001 p6 format tape image loader
[VM/I386] improve i386 core based on MAME 0.157
[VM/MC6847] support save/load state
[VM/MSM58321] support save/load state
[VM/YM2203] support to change device type to YM2608
12/29/2014
[VM/SN76489AN] support save/load state
[VM/TMS9918A] support save/load state
[VM/TMS9995] support save/load state
[VM/UPD7801] support save/load state
12/26/2014
[VM/AND] support save/load state
[VM/I8237] support save/load state
[VM/I86] support save/load state
[VM/LS244] support save/load state
[VM/LS393] support save/load state
[VM/NAND] support save/load state
[VM/NOR] support save/load state
[VM/NOT] support save/load state
[VM/OR] support save/load state
[VM/UPD1990A] fix to show lsb bit of second when shift register is not updated
[VM/UPD7220] support save/load state
12/25/2014
[EMU/WIN32] fix to remove printer file if the file size is less than 2 bytes
[EMU/WIN32] fix to initialize virtual machine when sound device type is changed
[VM/HD46505] support save/load state
[VM/I286] support save/load state
[VM/I8259] support save/load state
[VM/MCS48] support save/load state
[VM/UPD1990A] fix to show lsb bit of second after all bit are read
12/23/2014
[EMU/WIN32] simplify get/put functions for several types in file i/o class
[VM/BEEP] support save/load state
[VM/DATAREC] support save/load state
[VM/DISK] support save/load state
[VM/DISK] fix issue that disk image except d88 or beta image may not be saved
[VM/EVENT] fix load state function to update number of sound samples per frame
[VM/FMGEN] support save/load state
[VM/I8251] support save/load state
[VM/I8253] support save/load state
[VM/I8255] support save/load state
[VM/IO] support save/load state
[VM/MB8877] support save/load state
[VM/PC6031] fix to initialize old_D2H
[VM/PC80S31K] support save/load state
[VM/PCM1BIT] support save/load state
[VM/RP5C01] support save/load state
[VM/UPD765A] support save/load state
[VM/UPD1990A] support save/load state
[VM/W3100A] support save/load state
[VM/YM2151] support save/load state
[VM/YM2203] support save/load state
[VM/Z80] support save/load state
[VM/Z80CTC] support save/load state
[VM/Z80DMA] support save/load state
[VM/Z80PIO] support save/load state
[VM/Z80SIO] support save/load state
12/18/2014
[EMU/WIN32] support save/load state
[EMU/WIN32] support get/put functions for several types in file i/o class
[VM/EVENT] support save/load state functions
[VM/HUC6280] support save/load state functions
[VM/I8155] fix to clear event register id in reset()
[VM/I8253] fix to clear event register id in reset()
[VM/UPD765A] fix to clear event register id in reset()
12/16/2014
[VM/MB8877] fix to show not ready status a moment when no command is running
11/22/2014
[WIN32/SCREEN] support two screen stretch modes keep aspect and fill screen
[VM/I8080] fix debugger trace issue in busreq status
[VM/I86] fix debugger trace issue in busreq status
[VM/I286] fix debugger trace issue in busreq status
[VM/I386] fix debugger trace issue in busreq status
[VM/Z80] fix debugger trace issue in busreq status
10/26/2014
[WINMAIN] fix frame rate issue again
10/25/2014
[WINMAIN] fix frame rate issue (thanks Mr.Rednow)
[WIN32/DEBUGGER] fix issue about inputting decimal value
[VM/Z80] fix disassembler
10/11/2014
[WIN32/DEBUGGER] fix issue that hexa value ends with d is recognized as decimal
[VM/Z80] fix disassembler
10/10/2014
[VM/I8155] fix issue in the case that cpu clock is less than const frequency
[VM/I8253] fix issue in the case that cpu clock is less than const frequency
[VM/Z80CTC] fix issue in the case that cpu clock is less than const frequency
9/29/2014
[WIN32/SCREEN] support crt filter
9/13/2014
[WIN32/DEBUGGER] support search command
[VM/I86] support to change IP register value from debugger console
[VM/I286] support to change IP register value from debugger console
[VM/I386] support to change IP register value from debugger console
[VM/MC6800] support debugger
9/7/2014
[WIN32/DEBUGGER] support debugger console
[VM/DEBUGGER] support common debugger object
[VM/EVENT] fix to check ownew of event before it is canceled
[VM/I8080] support debugger
[VM/I86] support debugger
[VM/I86] remove code for i186 and i286
[VM/I286] fix for i8086/i8088/i80186
[VM/I286] fix not to quit REP when remained icount is less than 0
[VM/I286] support debugger
[VM/I386] support debugger
[VM/MB8877] fix not to cancel event registered by other device
[VM/MCS48] support debugger
[VM/UPD7801] support debugger
[VM/Z80] support debugger
8/28/2014
[COMMON] fix all vcproj files to set WholeProgramOptimization option
[WINMAIN] support 320x240 full screen mode
[VM/FMGEN] update fmgen.cpp from v1.49 to v1.50 (thanks Mr.Rururu-Tan)
[VM/FMGEN] update opna.cpp from v1.68 to v1.70 (thanks Mr.Rururu-Tan)
[VM/DATAREC] support NEC PC-6001 cas/p6 format tape image
[VM/I386] fix memory leak
[VM/I386] fix x87 opcodes FPREM and FPREM1 based on MAME 0.154
[VM/MC6847] support enable/disable signal
[VM/PC6031] support NEC PC-6031 and PC-6032 (thanks Mr.Nishida)
[VM/UPD765A] fix to compare all of C/H/R/N to search sector (thanks Mr.Haserin)
5/1/2014
[VM/I286] reimplement based on MAME 0.149
[VM/I286] support disassembler
[VM/I386] reimplement based on MAME 0.152
[VM/I386] support disassembler
4/17/2014
[WINMAIN] fix resource leak issue (thanks Mr.Redart)
[EMU/WIN32] fix resource leak issue (thanks Mr.Redart)
[VM/FMGEN] fix compiler dependent issue
[VM/YM2203] support full sound generator dll features (thanks Mr.Redart)
4/10/2014
[EMU/WIN32] support to map keys to joystick buttons
4/8/2014
[EMU/WIN32] support to capture the movie sounds in DirectShow codes
[VM/DATAREC] support SORD M5 cas format tape image
[VM/LD700] support PIONEER LD-700 laser-disc player
[VM/PCM1BIT] fix noise occurs when input signals top
[VM/YM2203] support to overwrite i/o mode to fixed value
4/7/2014
[WINMAIN] fix issue in the case that menu bar becomes multi line
[VM/DATAREC] fix to output no sound signal when tape image reaches end of tape
[VM/YM2203] fix build error in YM2608 case
4/1/2014
[VM/TMS9918A] fix mode1 and mode1+2 to fill out of screen with back color
[VM/YM2203] fix i/o port codes for AY-3-8910/8912/8913
[VM/YM2203] fix assert issue in fmgen module (thanks Mr.Mamiya)
3/26/2014
[EMU/WIN32] improve video recorder timing to sync to sound recorder
[EMU/WIN32] improve video recorder to compress frames in another thread
[EMU/WIN32] support to play a movie file
[EMU/WIN32] support Fgets() in file i/o class
[EMU/WIN32] support new function to get the file path without extension
[VM/TMS9918A] support super impose
1/8/2014
[VM/DISK] fix cpdread converter to check cylinder/side in track info block
[VM/DISK] fix cpdread converter to check deleted mark
[VM/MB8877] fix to seek one track when force interrupt is done
12/31/2013
[EMU/WIN32] support printer interface
12/5/2013
[VM/MC6840] support MC6840 (partial)
8/24/2013
[EMU/WIN32] fix access lamp renderer for Direct3D9
[VM/HD46505] fix to initialize frequency if vline is lesser than 400
[VM/MB8877] fix not to show record not found status after drive is changed
[VM/MB8877] fix to activate access lamp while searching target sector
[VM/MC6847] add function to load external cgrom image
[VM/MC6847] support to request bus to cpu in display timing
[VM/MC6847] support color bleed in black/white pattern (thanks Mr.tanam)
8/21/2013
[WINMAIN] fix to use GetFullPathName() to get the parent directory
[VM/MB8877] modify constant period for searching sector
8/16/2013
[VM/DISK] add ugly patch for X1turbo ARCUS
[VM/MB8877] fix to use constant period for searching sector if disk has no skew
[VM/MB8877] fix to show busy status while searching sector if sector not found
[VM/Z80DMA] fix dma stop condition
8/10/2013
[VM/DATAREC] fix not to skip frames while doint ff/rew
[VM/DATAREC] support ff/rew for cas and tap images
[VM/DATAREC] support APSS signals and doing APSS for SHARP X1
8/9/2013
[EMU/WIN32] improve debug log function
[VM/Z80DMA] fix not to reset all registers in reset command
8/8/2013
[VM/DISK] fix not to convert standard disk images to d88 format images
[VM/DISK] add ugly patch for X1turbo ALPHA
[VM/HD46505] reset registers and timings in reset()
[VM/MB8877] fix to use constant wait to search sector for standard disk image
[VM/MB8877] add ugly patch for X1turbo ALPHA
[VM/YM2151] fix to show busy status in a moment
[VM/YM2203] fix to show busy status in a moment
[VM/Z80DMA] fix dma stop condition
8/2/2013
[EMU/WIN32] fix to create new avi file when current file is close to 2GB
[VM/DISK] support 1.20MB/1.44MB/2.88MB floppy disk images
[VM/DISK] fix to add index mark in track image
[VM/UPD765A] fix read data command when sector size or number is invalid
[VM/UPD765A] fix seek time for MZ-3500
8/1/2013
[VM/DEVICE] support virtual function to set or get expend cpu clocks
[VM/DEVICE] support virtual function to get passed usec
[VM/DEVICE] support virtual functions for dma access with i/o wait
[VM/DISK] support function to get perid to transfer specified bytes
[VM/DISK] support functions to get drive rpm and track size
[VM/DISK] improve make track image
[VM/DEVICE] support function to get passed usec
[VM/I86] support function to get and set expend cpu clocks
[VM/I86] fix single mode dma when busreq is active
[VM/I286] support function to get and set expend cpu clocks
[VM/I386] fix single mode dma when busreq is active
[VM/I386] support function to get and set expend cpu clocks
[VM/I386] fix single mode dma when busreq is active
[VM/MB8877] improve timing of index hole, seek, search sector and transfer data
[VM/MB8877] improve to raise drq signal for each data
[VM/MB8877] improve timing of index hole, seek, search sector and transfer data
[VM/UPD765A] improve read data command to read sector gaps among sectors
[VM/UPD765A] improve read id command to read id of first found sector
[VM/Z80] support function to get and set expend cpu clocks
[VM/Z80] fix single mode dma when busreq is active
[VM/Z80DMA] improve timing of data transfer, bus request and release
7/24/2013
[WINMAIN] support 320x240 fullscreen mode
[EMU/WIN32] support multiple quick disk drives and cart slots
[CONFIG] support to read/write ini file
7/23/2013
[WINMAIN] simplify codes for boot mode and device type menus
[EMU/WIN32] fix sound recorder not to output the old samples
[VM/HD146818P] fix not to save backuped ram if it is not modified
[VM/MCS48] fix to divide the given clocks in MCS48 class
[VM/MCS48] fix not to run cpu if enough clocks are not given
[VM/RP5C15] fix not to save backuped ram if it is not modified
5/11/2013
[VM/I286] reimplement based on MAME 0.148
[VM/I386] reimplement based on MAME 0.148
[VM/I8255] improve mode #1 and #2
[VM/MCS48] support mcs48 based on MAME 0.148
4/25/2013
[VM/DATAREC] fix mzt image converter based on Bin2Wav
4/14/2013
[WINMAIN] support to show a message on title bar post from vm or emu class
[WINMAIN] disable close media menu when media file is not opened
[EMU/WIN32] add function to post a message onto title bar
[VM/DATAREC] fix mzt image converter to add 1sec space after header block
[VM/DATAREC] support to post the tape status message onto title bar
[VM/Z80PIO] fix handshake signals in bidirectional mode
[VM/Z80PIO] fix masks follows bit in control register
[VM/Z80PIO] fix to disable interrupt until the mask register is written
3/30/2013
[VM/DATAREC] fix issue that sample number in recorded wav file header is 0
[VM/DATAREC] improve recording wav file
[VM/DATAREC] improve wave shaper function to support dB-BASIC
[VM/EVENT] fix issue that continuous event causes invalid event clock
[VM/Z80PIO] support handshake mode
[VM/EVENT] fix not to skip frames when the sound is outputted
3/28/2013
[WINMAIN] fix to support max 30 screen resolutions
[VM/DATAREC] support wave shaper function
[VM/EVENT] fix not to skip frames when the sound is outputted
3/23/2013
[VM/I8080] support disassembler
3/21/2013
[VM/DATAREC] fix to skip the fact chunk in wave file header
2/26/2013
[WINMAIN] destroy window before emulation core is released
2/7/2013
[EMU/WIN32] remove the function to play media files
[VM/DATAREC] support fast forward and rewind
[VM/DATAREC] support playing wav file
[VM/HD146818P] fix to restart timer event when date/time is modified
[VM/MSM58321] fix to restart timer event when date/time is modified
[VM/RP5C01] fix to restart timer event when date/time is modified
[VM/UPD1990A] fix to restart timer event when date/time is modified
[VM/UPD4990A] fix uPD1990A compatible mode
[VM/Z80] revert modifying clocks for interrupt in mode2
1/23/2013
[WINMAIN] support drag & drop a cart or disk image files
[VM/HD146818P] support modifying the date and time
[VM/MSM58321] renamed from RTC58321 to MSM58321
[VM/MSM58321] support modifying the date and time
[VM/MSM58321] support busy flag and base signal register
[VM/MSM58321] remove ugly functions for FMR-50/60
[VM/MS5832] removed and joined to MSM58321
[VM/RP5C01] support modifying the date and time
[VM/RP5C15] removed and joined to RP5C01
[VM/UPD1990A] support modifying the date and time
[VM/UPD1990A] remove ugly functions for PC-9801/PC-98LT
[VM/UPD4991A] support modifying the date and time
[VM/Z80] revert previous modification
[VM/Z80] modify clocks for interrupt in mode2
1/18/2013
[VM/DISK] fix to always save the converted disk image
[VM/Z80] revert reimplemented Z80 core based on MAME 0.145
12/29/2012
[EMU/WIN32] support joysticks with more than 4 buttons
[EMU/WIN32] support new function to get crc32 value
[VM/DISK] fix make_track() to consider the media type
[VM/DISK] fix teledisk/imagedisk converter to get the correct media type
[VM/UPD765A] fix read diagnotics to start reading at the top of 1st sector data
10/23/2012
[VM/HUC6280] reimplement based on MAME 0.147
[VM/I286] reimplement based on MAME 0.147
[VM/I386] reimplement based on MAME 0.147
8/18/2012
[EMU/WIN32] support to switch GDI/Direct3D9
[VM/UPD7220] add get_start() function
[VM/YM2203] support mamefm.dll(V1)
3/20/2012
[EMU/WIN32] fix not to render screen to Direct3D9 buffer while recording video
[VM/DEVICE] add new virtual function to nitify ei opecode is done on cpu
[VM/YM2151] fix to raise/clear irq line when it is changed as level signal
[VM/YM2203] fix to raise/clear irq line when it is changed as level signal
[VM/Z80] fix to notify ei opecode is done on z80 core
3/15/2012
[EMU/WIN32] fix to renew vm class instance to change cpu clock in reset()
3/6/2012
[WINMAIN] fix to reset timing controls when run any extra frames to fill sound buffer
[EMU/WIN32] fix to stretch offscreen buffer in both window mode and fullscreen mode
[EMU/WIN32] fix to call ReleaseDC() to release the device context
[EMU/WIN32] fix to call SelectObject() to select the old hBmp before release the DIBSection
[EMU/WIN32] fix to start play sound buffer when virtual machine is driven
[EMU/WIN32] fix to use constant threshold for joystick direction values
[EMU/WIN32] support table to convert given keycodes from winmain
[EMU/WIN32] fix to initialize d88 multi volume handler
[VM/DEVICE] add virtual function to fetch opecode
[VM/FMGEN] fix to give the advanced time with chip clock, not usec
[VM/YM2151] fix to initialize register #29 to enable only timer interrupt
[VM/YM2151] fix to update fmgen count when read/write opm registers
[VM/YM2151] fix to update fmgen count with chip clocks
[VM/YM2203] fix to update fmgen count when read/write opn(a) registers
[VM/YM2203] fix to update fmgen count with chip clocks
[VM/Z80] fix to use new fetch_op() function to fetch opecode from memory bus
2/22/2012
[WINMAIN] add codes to check memory leaks in debug build
[VM/∗] Fix memory leaks
2/20/2012
[WINMAIN] support d88 disk image with multi voluemes
[EMU/WIN32] update screen manager with Direct3D9
[VM/DISK] support d88 disk image with multi voluemes
2/16/2012
[WINMAIN] simplify timing controls
[EMU/WIN32] simplify screen manager
[EMU/WIN32] fix to capture the rotated screen in vertical screen mode
[VM/Z80] reimplement based on MAME 0.145 Z80 core
2/13/2012
[VM/EVENT] fix not to clear sound buffer index in reset function
[VM/I8255] fix not to clear output signals in default setting
2/11/2012
[VM/I8255] fix to clear output signals when control register is written
[VM/Z80] fix not to output debug log for continuously executed halt command
2/8/2012
[EMU/WIN32] fix to release all pressed keys when the main window lost focus
2/7/2012
[VM/UPD765A] fix the wait time to finish seek command
2/6/2012
[VM/YM2151] fix to raise irq when timer is expired before it is reset
[VM/YM2203] support YM2608(OPNA)
[VM/YM2203] fix to raise irq when timer is expired before it is reset
2/2/2012
[VM/Z80] fix to consider meaningless $dd/$ed/$fd
1/31/2012
[VM/UPD1990A] support uPD4990A
1/27/2012
[VM/DISK] fix the routine to check d88 format
[VM/EVENT] fix the event manager for sub cpu event timing
1/25/2012
[WINMAIN] support to specify the minimum window width
[EMU/WIN32] fix the routine to detect the shift and numpad keys are pressed
[VM/DISK] fix to check if the inserted disk image is really d88 format
[VM/EVENT] update event manager to check events in every cpu opecode
[VM/HUC6260] update cpu to run only one opecode and return clocks
[VM/I86] update cpu to run only one opecode and return clocks
[VM/I386] update cpu to run only one opecode and return clocks
[VM/M6502] update cpu to run only one opecode and return clocks
[VM/MC6800] update cpu to run only one opecode and return clocks
[VM/MC6809] update cpu to run only one opecode and return clocks
[VM/TMS9995] update cpu to run only one opecode and return clocks
[VM/UPD765A] fix to get the side number from hdu param in SHARP MZ-3500 case
[VM/UPD765A] fix index hole signal width and frequency
[VM/UPD7801] update cpu to run only one opecode and return clocks
[VM/Z80] update cpu to run only one opecode and return clocks
1/18/2012
[EMU/WIN32] support to detect the shift and numpad keys are pressed
[VM/I8080] fix to refer read_data8w() to fetch opcode if memory wait is active
[VM/UPD765A] fix to accept seek command before other seek is not finished
[VM/UPD765A] fix to accept tc in result phase after read/write commands
[VM/YM2203] fix to read the input port value though the port mode is output
[VM/Z80] fix to refer read_data8w() to fetch opcode if memory wait is active
1/11/2012
[VM/HD46505] support to update the timing settings in the event manager
[VM/UPD7220] support to update the timing settings in the event manager
1/9/2012
[VM/DEVICE] add virtual function to get the id of parent event manager
[VM/EVENT] fix to notify the timing changes only to child devices
1/7/2012
[VM/DEVICE] add virtual function to notify that timing settings are changed
[VM/EVENT] fix to notify to all devices when timing settings are changed
[VM/PC80S31K] add ugly patch to enable both #1 and #2 drives
[VM/UPD765A] fix that recalib is successfully done though disk is unformatted
[VM/YM2203] fix to update the period that fmgen is driven in vline
[VM/YM2151] fix to update the period that fmgen is driven in vline
1/5/2012
[VM/HD46505] fix the issue that vline event is not correctly registered
[VM/UPD765A] fix the issue that CP/M Plus does not boot correctly on QC-10
12/31/2011
[EMU/WIN32] support to change the frame timing by virtual machine
[VM/DEVICE] support multiple event manager
[VM/DISK] support to detect the disk ejection
[VM/EVENT] support multiple cpus with different clocks
[VM/HD46505] fix typo
[VM/I8237] support word transfer
[VM/I8259] fix to wait a few time to raise irq that imr is cleared
[VM/PC80S31K] support PC-80S31K floppy drives
[VM/UPD765A] support non dma mode
[VM/UPD765A] fix to clear irq signal when result pahse is finished
[VM/UPD765A] support irq/drq mask signals
[VM/UPD765A] support to detect the disk ejection
[VM/Z80] support NOP in IM0 interrupt
8/6/2011
[EMU/WIN32] render access lamp in emu class
[VM/MC6820] support MC6820 (partial)
6/1/2011
[VM/BEEP] remove the routine to get frequency from the pulse count
[VM/MC6800] support MB8861
5/28/2011
[VM/MB8877] clear track register and index hole counter in reset()
[VM/MC6800] support mc6800/mc6801/hd6301
[VM/MC6809] support mc6809
[VM/Z80DMA] fix issues for X1/X1turbo games (thanks Y.S.)
5/20/2011
[EMU/WIN32] support sound latency 50msec
[VM/DEVICE] add virtual function do_dma() for single mode dma
[VM/I8237] support single mode
[VM/UPD71071] support single mode
[VM/Z80DMA] fix issues for X1/X1turbo games (thanks Y.S.)
[VM/Z80DMA] support single mode
[VM/I86] call do_dma() in every machine cycle for single mode dma
[VM/I386] call do_dma() in every machine cycle for single mode dma
[VM/Z80] call do_dma() in every machine cycle for single mode dma
5/19/2011
[VM/EVENT] fix to check registered count for frame/vline events
[VM/EVENT] clear event counts before other devices are initialized
[VM/HD46505] fix to update sync signals in more precise timing
[VM/HD46505] support notifying vline event to other devices
[VM/Z80DMA] fix issues for X1/X1turbo games (thanks Y.S.)
[VM/Z80DMA] fix to return current count/address for init read sequence command
[VM/Z80DMA] fix do_dma() routine
5/18/2011
[VM/DISK] fix dsk floppy disk image converter
5/14/2011
[VM/DISK] support dsk floppy disk image based on MESS formats/dsk_dsk.c
[VM/I8259] support poll command
[VM/I8259] update eoi command
[VM/MEMORY] return file size of loaded bios image
[VM/UPD765A] fix sence interrupt status result
[VM/UPD765A] fix not to clear exm bit in multi sector read/write
[VM/Z80CTC] fix not to reset time constant when channel is freezed
[VM/Z80DMA] fix transfer length when 0 is specified
5/4/2011
[EMU/WIN32] remove patch code for PV-2000 in input manager
[VM/DEVICE] add virtual functions for 16bit/32bit dma
[VM/I8259] refine code
[VM/IO] support standard d-ff register
[VM/IO] support 16bit/32bit dma functions
[VM/MB8877] change wait period for read/write from 100msec to 70msec
[VM/HD146818P] check address line in write access
[VM/UPD765A] check address line in write access
[VM/W3100A] check address line in write access
[VM/YM2203] disable status register for AY-3-8912
4/27/2011
[COMMON] modify struct union 'pair'
[VM/EVENT] fix to get more precise cpu clocks
[VM/HUC6260] fix to get more precise cpu clocks
[VM/I8080] fix to get more precise cpu clocks
[VM/I86] fix i286 protected mode boundary check (from MESS)
[VM/I86] fix POP SP and POP ESP (from MESS)
[VM/I86] fix to get more precise cpu clocks
[VM/I386] fix to get more precise cpu clocks
[VM/M6502] fix to get more precise cpu clocks
[VM/TMS9995] fix to get more precise cpu clocks
[VM/UPD7801] fix to get more precise cpu clocks
[VM/Z80] fix to get more precise cpu clocks
4/25/2011
[VM/MB8877] fix to wait 40msec to read/write just after seek command
[VM/Z80CTC] fix to initialize vector when reset device
[VM/Z80CTC] fix to copy time constant to counter just after reset command
[VM/Z80CTC] fix to clear pending irq when RETI opcode is detected
[VM/Z80CTC] fix to update int signal without checking the current signal
[VM/Z80DMA] fix to update int signal without checking the current signal
[VM/Z80PIO] fix to update int signal without checking the current signal
[VM/Z80SIO] fix to update int signal without checking the current signal
4/23/2011
[VM/DISK] fix to check disk type in teledisk converter
[VM/I86] reimplement based on MAME 0.142 80x86 core
[VM/I86] support 80186
[VM/MB8877] fix to clear drq/irq when status register is read
[VM/UPD71071] fix not to restart dma while dma is running
[VM/Z80CTC] fix to clear pending irq when control reg is updated
[VM/Z80DMA] fix not to restart dma while dma is running
[VM/Z80DMA] fix end of block condition
[VM/Z80DMA] fix to support auto restart
4/15/2011
[VM/DEVICE] add virtual functions for i/o port with dma
[VM/DISK] support drive type
[VM/MB8877] add functions to get/set drive type
[VM/UPD765A] add functions to get/set drive type
[VM/Z80DMA] change transfer length when block length equals to 0
4/14/2011
[VM/DEVICE] add virtual functions for Z80 daisy chain definitions
4/13/2011
[VM/Z80DMA] fix address step count (thanks Kale)
4/12/2011
[EMU/WIN32] fix repeat flag for caps/kana/kanji keys
[VM/DISK] fix not to write disk image when data is not modified
[VM/IO] support read/write interface for dma
[VM/Z80] fix disassembler
[VM/Z80DMA] support Z80DMA (based on MAME Z80DMA core)
4/6/2011
[EMU/WIN32] fix joystick manager
[VM/DISK] support standard disk image without format info
[VM/Z80SIO] fix abort/break flag
[VM/Z80SIO] fix not to load data before sync char is loaded
4/1/2011
[EMU/WIN32] support stereo sound
[EMU/WIN32] fix joystick initialization
[VM/DATAREC] support to load wave file with 16bit/stereo and any frequency
[VM/DATAREC] support to load TAP tape images (used for SHARP X1 series)
[VM/DATAREC] support to rewind tape image
[VM/EVENT] support stereo sound
[VM/FMGEN] fix timer not to cause overflow
[VM/FMGEN] support interface to read int signal
[VM/SN76489AN] fix mixer issue that volume mixed by other device is doubled
[VM/YM2151] fix irq handling to refer int signal from fmgen
[VM/YM2203] fix irq handling to refer int signal from fmgen
[VM/Z80SIO] support monosync/bisync mode
[VM/Z80SIO] support auto enables bit in wr3
[VM/Z80SIO] support send break bit in wr5
[VM/Z80SIO] support sync/abort bit in rr0
[VM/Z80SIO] support signals to notify transmitt/recieve is done
[VM/Z80SIO] support sync signal (input/output)
[VM/Z80SIO] fix not to reset external signals
2/16/2011
[EMU/WIN32] notify key repeat
[VM/YM2203] fix prescaler for AY-3-8190/8192
[VM/YM2151] fix typo
1/26/2011
[EMU/WIN32] support capture screen
[VM/SN76489AN] support SN76489
[VM/SN76489AN] fix noise period
1/21/2011
[EMU/WIN32] support output debug log to console
[VM/DEVICE] fix virtual functions for memory and i/o access with wait
[VM/MB8877] support output debug log
[VM/MB8877] support request cpu to output debug log when status is read
[VM/Z80] support variable m1 cycle wait
[VM/Z80] support disassembler to output executed mnemonics
[VM/Z80SIO] change delay timing for data transmitter
1/16/2011
[VM/YM2203] support AY-3-8190/8192
[VM/Z80SIO] fix transmit/status interrupt
12/28/2010
[EMU/WIN32] support power off notification
[VM/DATAREC] support to load MZT/M12 tape images
[VM/I8251] support break signal
[VM/MB8877] change irq signal to low when new command is processed
[VM/MSM5832] support address write signal
[VM/Z80SIO] support cts/dcd signals
9/29/2010
[VM/UPD765A] fix not to retry read id command
[VM/UPD765A] fix to return the result of non-seek commands for sence intstat
[VM/UPD765A] fix to update the data lost event when data is read/written
9/20/2010
[VM/DEVICE] support interface for memory mappied i/o
[VM/I8237] fix bank register
[VM/I8253] fix counter latch before the counter update event is occured
[VM/MEMORY] support general memory bus
[VM/SN76489AN] fix noise generator
[VM/UPD765A] fix to wait 100usec before go to result phase
[VM/UPD7220] fix not to terminate write command after data is set
[VM/UPD7220] support interface to get the cursor address and top/bottom lines
9/4/2010
[VM/EVENT] support to run extra frames for continuous sound
[VM/IO] support to register the return value
[VM/IO] refine i/o map registrations
[VM/UPD765A] support external drive selection
[VM/UPD765A] fix not to output index hole signal if disk is not inserted
8/31/2010
[VM/UPD765A] support dack signal
8/27/2010
[VM/AND] fix output signal when it is changed
[VM/OR] fix output signal when it is changed
[VM/NAND] fix output signal when it is changed
[VM/NOR] fix output signal when it is changed
[VM/NOT] fix output signal when it is changed
[VM/DEVICE] refine signal connections
[VM/DISK] support SF7 floppy disk image
[VM/EVENT] sync 2 or more cpus precisely
[VM/I8253] fix read both low and high counter
[VM/PCM1BIT] update to check on/off signal width in one sample
[VM/TMS9918A] fix screen mode selection
[VM/UPD765A] support reset signal
[VM/UPD765A] support index hole signal
[VM/Z80] revert reimplemented Z80 core (temporary)
8/13/2010
[EMU/WIN32] reset virtual machine after emu class is initialized
[VM/M6502] support M6502 and N2A03
[VM/SN76489AN] fix mixer
[VM/YM2151] fix mixer
[VM/YM2203] fix mixer
8/9/2010
[EMU/WIN32] disable ALT short cut key
[VM/Z80] reimplement Z80 (based on MAME Z80 core)
8/6/2010
[VM/MC6847] fix graphics mode
[VM/MC6847] check vram size in render routine
8/4/2010
[VM/MC6847] support MC6847
[VM/UPD7801] add wait signal
[VM/Z80] support raise irq by write_signal()
6/4/2010
[EMU/WIN32] update screen stretch/rotation
[EMU/WIN32] support window x3 - x8 modes
[EMU/WIN32] support fullscreen mode with any resolutions
[EMU/WIN32] fix video recorder
[EMU/WIN32] hide menu bar in full screen mode
[EMU/WIN32] save opened file dir for common dialog's initial dir
[VM/UPD765A] fix result status for recalib/seek commands
5/12/2010
[EMU/WIN32] remove Windows CE support
[EMU/WIN32] remove Direct 3D support
[EMU/WIN32] remove waveOut api support
[EMU/WIN32] remove video capture support
[VM/DISK] support media type property
[VM/DISK] check if the current disk image is reopened
[VM/UPD7220] update csform/csrw commands
[VM/UPD7220] support unknown $5a command
[VM/UPD765A] support force ready signal for NEC PC-98 series
[VM/UPD765A] fix result status for recalib/seek commands
[VM/UPD764A] update hdu for sence device status command
[VM/UPD765A] raise interrupt when disk is inserted or ejected
12/28/2009
[EMU/WIN32] support artwork, buttons and leds for one-board micro computers
[VM/I386] reimplement 80386 (based on MAME i386 core)
[VM/I8237] support increment mask of bank register
[VM/I8251] check number of sync characters
[VM/I8253] fix mask bit for output signal
[VM/UPD7220] check vram pointer is not null
[VM/Z80CTC] fix issue in the case sysclock is same as cpu clock
5/25/2009
[VM/UPD7220] fix initial vect params
[VM/Z80CTC] support different sysclock from cpu clock
5/20/2009
[VM/MSM5832] fix build error
5/17/2009
[VM/I386] support 80386
[VM/LS393] refine implements of output signal
[VM/MSM5832] support MSM5832
[VM/SN76489AN] support cs/we/data signal to be controlled without i/o bus
[VM/Z80CTC] refine implements of output signal
4/9/2009
[COMMON] modify definition of uint64 and int64
[VM/DEVICE] support 32bit i/o bus
[VM/IO] support 32bit i/o bus
4/5/2009
[VM/I8155] fix build error
[VM/UPD1990A] fix shift register
4/1/2009
[COMMON] define uint64 and int64
[EMU/WIN32] support 1024x768 and 1280x1024 full-screen mode

[VM/DEVICE] support 32bit memory bus
[VM/DISK] detect disk is changed
[VM/EVENT] remove hsync event
[VM/EVENT] initialize sound buffer before reset
[VM/EVENT] multi instance free
[VM/HD46505] support vblank signal
[VM/HD63484] support HD63484 (based on MAME HD63484 core)
[VM/HUC6260] support HuC6260 (based on Ootake cpu core)
[VM/I8155] add mask bit for output signal
[VM/I8253] add mask bit for output signal
[VM/I86] fix to refer 16bit i/o bus
[VM/UPD1990A] support TP signal
[VM/YM2151] support YM2151 (use fmgen core by Mr.CISC)
2/8/2009
[EMU/WIN32] support window minimize button
1/16/2009
[EMU/WIN32] change screen buffer type from uint16 to user-defined type
[EMU/WIN32] change screen buffer depth from RGB555 to RGB888 on windows pc

[VM/I8155] support i8155

*) change the compiler from vs2005 to vs2008
1/2/2009
[EMU/WIN32] support power off requested by vm

[VM/I8237] support external bank register
[VM/I8251] support txrdy/txempty/dsr/dtr signals
[VM/I8251] support loop back
[VM/I8251] don't reset dsr bit of status register
[VM/I8253] don't latch count before previously latched count is not read
[VM/I8254] support i8254 based on i8253
[VM/I86] fix push sp in 8086 mode
[VM/I86] fix a20 line in fetch functions
[VM/IO] change class name from IO8 to IO
[VM/IO] support 16bit i/o bus
12/26/2008
[EMU/WIN32] support kana-characters on auto key function

[VM/DISK] support ImageDisk floppy disk image
[VM/I8085] support 8080/8085 (based on MAME 8080/8085 core)
[VM/I86] change class name from X86 to I86
10/17/2008
[EMU/WIN32] fix key notification for caps/kana/kanji

[VM/X86] optimize the pseudo bios call by interrupt
10/6/2008
[EMU/WIN32] fix the problem when new file path is specified
[EMU/WIN32] support 96khz sound

[VM/DATAREC] support trigger signal
[VM/DATAREC] output remote signal
[VM/I8253] fix mode3 output signal
[VM/PCM1BIT] support LPF
[VM/UPD765A] fix AT bit in the result of seek command
[VM/X86] support pseudo bios call
8/27/2008
[EMU/WIN32] fix build problem for Windows CE

[VM/I8255] support mode1
[VM/I8259] clear irr bit if the request signal is changed to low level
[VM/UPD1990A] support i/o coonection interface
[VM/X86] fix interrup status
[VM/X86] fix pop es on 80286
8/19/2008
[VM/UPD765A] fix the problem that data lost occurs after the result phase
[VM/UPD765A] fix CB bit in the status register in sence intstat command
[VM/UPD765A] fix AT bit in the result of seek command
8/16/2008
[EMU/WIN32] support rotate screen
[EMU/WIN32] fix build problem for Windows CE

[VM/BEEP] more clear beep generation for the constant frequency
[VM/BEEP] fix mute logic
[VM/DEVICE] return address for unassigned I/O port
[VM/EVENT] fix crash problem in the initialization
[VM/I8251] fix PE bit in the status register
[VM/I8253] check edge of the input signal
[VM/I8253] fix gate signal
[VM/RTC58321] support i/o coonection interface
[VM/UPD4991A] modify i/o connection interface
[VM/UPD4991A] fix year data
[VM/UPD765A] support drq line delay
6/11/2008
[EMU/WIN32] open command line as cart or disk file path
[EMU/WIN32] convert file path to full and long file path

[VM/AND/OR/NAND/NOR] support and/or/nand/nor gates
[VM/DATAREC] output low signal when the tape is closed
[VM/MB8876] support motor on/off signal
[VM/PCM1BIT] support on/off signal
[VM/PCM1BIT] support high quality sound
[VM/RTC58321] support RTC58321
[VM/UPD4991A] support uPD4991A
[VM/UPD765A] fdc status patch for MZ-3500
[VM/X86] fix freeze problem that some opecodes did not decrease the clock
[VM/Z80] return busack signal whe busreq occurs
4/22/2008
[VM/LS244] support 74LS244/245
[VM/UPD1990AC] support uPD1990AC
[VM/X86] fix hlt
[VM/X86] support busreq
[VM/Z80] don't reset busreq in reset()
4/16/2008
[VM/UPD7220] support pitch command
[VM/UPD7220] fix vecte command in the case R=C=T=L=0 (pset)
[VM/UPD765A] fix read id command
4/12/2008
[VM/LS393] support 74LS393
[VM/RP5C01] support RP-5C01
[VM/UPD7220] fix pset function
[VM/UPD7220] notify vsync
[VM/UPD765A] check sector id strictly
4/8/2008
Windows CE port binaries are discontinued because of the user-support difficulties.
Plase build them by yourself if you need them.
4/7/2008
[EMU/WIN32] support the screen size changing requested by the virtual machine
4/3/2008
[VM/I8259] fix the cascade mode condition
[VM/UPD7220] fix low/high byte condition in dma commands
[VM/UPD7220] check the param count in fifo buffer in sync/vectw commands
[VM/UPD7220] get mod param in write command with no params
[VM/UPD7220] check mod param in vect/char drawing commands
[VM/UPD7220] check dir param in read/write command
[VM/UPD7220] support line drawing in vecte command
[VM/UPD7220] update ead/dad after drawing commands
[VM/UPD7220] fix lsb/msb order in pset function
3/22/2008
[VM/I8251] notify rxrdy is changed
[VM/TF20] fix the error result of read command
3/20/2008
[EMU/WIN32] set DirectX9 graphics params on the screen menu
3/2/2008
[EMU/WIN32] support DirectX9 graphics
[EMU/WIN32] fix the window size problem of eHC-40


Blit screen by regacy GDI and D3D9
2/29/2008
[EMU/WIN32] more quick stretch screen
[EMU/CONFIG] divide the config version to the file version and the virtual machine version
[VM/TF20] support EPSON TF-20 terminal floppy drives
2/27/2008
[EMU/WIN32] Windows CE.NET binaries for GAPI are no longer supported
[EMU/WIN32] Don't use StretchBlt
2/20/2008
[VM/HD146818P] support sqw and periodic interrupt
[VM/HD146818P] clear IRQF/PF/AF/UF in the reg $0c when it is read
[VM/I8237] fix the build error
[VM/I8237] reimplement based on uPD71071
[VM/UPD7220] fix the build error
[VM/UPD7220] modify hblank/vsync event
[VM/UPD765A] lost data event occurs soon if dma request is not accepted
[VM/Z80SIO] change uPD7201 fifo buffer size
2/11/2008
The interrupt logics are largely modified and are now very close to the real circuits.

In the older versions:
This is because let CPU not to monitor the int-line in every opecodes.
But it causes some problems for example:
In this release:
[VM/DEVICE] modify virtual functions for interrupts
[VM/I8259] support the new interrupt logic
[VM/I8259] fix the crash problem
[VM/UPD7201] support uPD7201 (combined to Z80SIO class)
[VM/X86] support the new interrupt logic
[VM/Z80] support the new interrupt logic
[VM/Z80CTC] support the new interrupt logic
[VM/Z80PIO] support the new interrupt logic
[VM/Z80SIO] support the new interrupt logic
[VM/Z80SIO] support the End of Interrupt command
[VM/Z80SIO] fix the status register #0 (interrupt pending bit)
[VM/Z80SIO] fix the status register #2 (vector)
[VM/Z80PIC] removed
1/5/2008
[VM/BEEP] fix the crash problem when the frequency is constant
[VM/BEEP] support the interface to change the frequency
12/31/2007
[VM/FIFO] support read_not_remove()
[VM/NSC800] fix NSC800
8/24/2007
[EMU/WIN32] check the status of both left and right ALT/CTRL/SHIFT keys
8/22/2007
[VM/RP5C15] fix the initial 12H/24H setting
8/19/2007
[VM/MB8877] fix the status for type4 command
[VM/UPD71071] support the base registers
[VM/X86] fix rep never to exit and re-fetch the opecode in the loop
[VM/X86] fix the modrm table
8/16/2007
[VM/DEVICE] add the virtual functions for dma access
[VM/I8237] fix the typo
[VM/I8259] support the special fully nest mode
[VM/I8259] support the rotation of priorities
[VM/I8259] support the intrrupt request from Z80 family devices
[VM/IO8] support 16bit i/o adrress
[VM/MB8877] support the dma access
[VM/MB8877] support the irq and drq signals
[VM/RP5C15] support reading the values of banks #13/#14/#15
[VM/UPD71071] support uPD71071
[VM/X86] support 8086/V30/80286
[VM/YM2203] support the irq signal
7/23/2007
[VM/DATAREC] modify the frame skip condition (skip when the signal is changed)
[VM/TMS9918A] reimplement based on MAME 0.116
[VM/UPD7801] support the memory access wait
7/16/2007
[VM/TMS9995] support TMS9995
2/11/2007
[COMMON] support auto key hitting from the clipboard
[COMMON] save and restore the window mode when the emulator is restarted
[VM/DEVICE] modify memory access wait
[VM/DEVICE] support i/o access wait
[VM/DISK] fix the crash problem when the invalid track number is set
[VM/HD46505] support HD46505
[VM/HD46505] fix the display/vsync/hsync signals timing
[VM/I8253] more precise signal timing in mode #2, #4 and #5
[VM/MB8877] support the access led status
[VM/PICM1BIT] support 1bit pcm
[VM/UPD765A] support the acces led status
[VM/YM2203] support the volume adjustment
[VM/Z80] modify memory access wait
[VM/Z80] support i/o access wait
[VM/Z80SIO] fix the recv and under-run interrupt flags
[VM/Z80SIO] fix the status affect vector
[VM/Z80SIO] cancel the interrupt request when read the recv buffer
[VM/Z80SIO] support the i/f to clear the recv buffer
2/1/2007
[COMMON] ignore some warnings on Visual Studio 2005
[WIN32/SCREEN] support video recording
[WIN32/SOUND] record wave as 16bit, stereo
[WIN32/SOUND] dont use multi threading to recieve MM_WOM_DONE event
[WIN32/WCE] build 4 binaries (use GAPI or GDI, DirectSound or waveOut)
[VM/BEEP] modify beep sound generator for more stable frequency
[VM/DATAREC] auto stop at the end of tape image
[VM/DEVICE] add virtual functions to get the memory wait and passed clocks in cpu class
[VM/EVENT] more precise event timing refering the passed clock in cpu class
[VM/I8253] drive counter when it reaches the terminal count or read the count registers
[VM/I8253] more precise output signal timing
[VM/NSC800] suppor NSC800
[VM/Z80] fix the clocks for opecodes DD-CB-** and FD-CB-**
[VM/Z80CTC] drive counter when it reaches the terminal count or read the count registers
[VM/Z80PIC] accept the interrupt request when it is running
12/31/2006
[WIN32] support DirectShow video capture devices (DX8 or later is required)
[WIN32] support Windows CE.Net 4.x devices (use GAPI and waveOut APIs)
[VM] each device can get the cpu time
[VM/BEEP] modify beep sound generator for more stable frequency
[VM/Z80] support BUSREQ
[VM/Z80PIC] call do_reti() in the device that requested the interrupt
[VM/Z80SIO] suppor Z80SIO
[VM/DISK] support TeleDisk floppy disk image
[VM/EVENT] fix the problem in the case that the new event is registered in the event callback routine
[VM/I8253] drive the counter more accurate and less power
12/7/2006
Initial release



Purpose

I had developed 11 emulaters in these years and implemented many devices.
There are many devices that are commonly used for exmaple i8255. I can divert their souce codes but I cannot use common one source code for each devices.
Becase the device class includes the codes for the unique circuit for each machine, for example i8255 class includes the codes for the keyboard.

I have started this common source code project to settle this problem.
I also aim to convine the win32 source codes for each works.

Description

For the purpose, I implement the devices under the rule listed below:

  1. Implement the device base class. This base class has the interface method connected to the memory bus, I/O bus, and other devices.
  2. Implement the every device classes as the superclass of the device base class.
  3. Register the destination device class connected to the output port as the pointer of device base class and also register the input port id.
  4. The device base class also has the event callback method. Every devices can register their own pointer to the event manager class.
You may feel that the purpose is similar to MAME/MESS project. The difference is that the pointer of interface function is registered in MAME/MESS, but the pointer of device class is registered in my project. And I dont aim to convine to one binary like MAME/MESS.

Example 1) dma

MEMORY* memory; // this is the unique hardware
UPD765A* fdc;
I8237* dma;

dma->set_context(0, memory);
dma->set_context(1, fdc);

The device base class has the common memory bus interface write_data8(addr, data) and read_data8(addr). I8237 has MEMORY and UPD765A pointer as the device base class pointer and he can read and write their data with these interface.

Exmaple 2) keyboard with i8255

I8255* pio;
KEYBOARD* key; // this is the unique hardware

pio->set_context_port_a(key, SIG_KEYBOARD_COLUMN);
key->set_context(pio, SIG_I8255_PORT_B);

In this case, we write the key matrix column to i8255 Port A and read the key stats from i8255 Port B.
The device base class has the common input interface write_signal(id, data, mask).
When we write the column to i8255 Port A, I8255 class write the data as key->write_signal(SIG_KEYBOARD_COLUMN, data, 0xff).
In KEYBOARD class's write_signal(), create the key status for the given column and return it to i8255 Port B like pio->write_signal(SIG_I8255_PORT_B, data, 0xff).

Example 3) i8253 timer

I8253* pit;

pit->set_context_ch0(pit, SIG_I8253_CLOCK_1);
pit->set_context_ch1(pit, SIG_I8253_CLOCK_2);

In this case, OUT#0 is connected to CLK#1, and OUT#1 is connected to CLK#2.

Example 4) TMS9918 vsync event

void TMS9918::initialize() {
vm->regist_vsync_event(this);
}
void TMS9981::vsync_event(int v, int clock) {
// event manager call this function in every vsync
}