• Print



Vdmgr is a multi-system emulator that emulates the NES, NeoGeo Pocket, Sega SG-1000 / Mark III, MCS BASIC-52, TD 4, GMC-4, Z80 computers and MSX. 


It is a library that manages modules (※1) that emulate the functions such as CPU, memory, devices, and so on from small items such as clock generator, address bus, and input / output pins, and analyze files and debug information .

System configuration file (※2) on, only to describe the connection between the module, its own system (※3) only create a text file (※4) can, system configuration file that you created, Vdmgr (※5), Vdmgrdebug (※6) to move on the application It is possible.

Modules are created in basic C language.
It exchanges with other modules via interfaces (table of function pointers), but all modules operate in units of 1clk.
Therefore, it is not necessary to consider the type of module to be connected, operation timing, etc. (※7).
You only need to think about the modules you create so you can create, modify, and modify modules relatively easily.

Also, if you create JTAG, ROM monitor, other modules that work with real devices, you can say that you want to debug on vdmgrdebug (※8).


※1 A component that has one or more functions necessary for creating a system is called a module.
There are modules that emulate only CPU and memory, and modules with multiple functions such as CPU + memory + debug information analysis.
※2 It is a text file with almost the same format as Windows standard .ini file.
※3 A system that combines one or more modules and makes something work is called a system.
For example, the NGPocket system emulates NEOGEO POCKET.
※4 When you want to create a system with 10 Z80s, you can easily create it with just a text file.
※5 It is possible to say that it is an application dedicated to executing and to operate in full screen display.
※6 Execution, debugging (source level debugging possible if there is a debugging module), an application for performance analysis.
※7 In the case of the NGPocket previously created, I was told to move the CPU by the amount of one line to be drawn, draw at the timing of H - SYNC, repeat it until V - SYNC.
With this method, you can not deal with processing such as palette change in the middle of screen drawing.
As for the libvdmgr module, it is possible for the CPU to move freely for each module as it said that the CPU needs only the clock required, the drawing waits for the dot clock.
Especially when it is severe on the clock like a family computer, you can not emulate completely unless you operate it in 1 clock unit.
※8 Of course, it can not cooperate with modules that only work in virtual environments (eg performance analysis).


Processing has changed significantly with v.0.1.0.

List of files required for system operation

system-name Required files Description
GMC-4 None Nothing in particular.
HVC-001 Vdmgr / bios / disksystem.rom In order to operate DISK SYSTEM, an image file (8 KB) of the DISK SYSTEM RAM adapter is required. Save the
DISK SYSTEM RAM adapter as
saved in a file with the name disksystem.rom and copy it to the bios folder.
When operating ROM only, no image file is necessary.
MCS BASIC-52 Vdmgr / bios / BASIC-52.BIN Firmware is required. Download /
decompress base52all.zip from MicroControllers and Electronics and copy the
"BASIC - 52.BIN" file to the bios folder.
MSX Vdmgr / bios / cbios_main_msx1_jp.rom,
vdmgr / bios / msx.rom
BIOS image file is required. Download / decompress the
BIOS from the C-BIOS and
copy the "cbios_main_msx1_jp.rom" file to the bios folder.
NEOGEO POCKET Vdmgr / bios / ngpbios.rom
vdmgr / bios / ngcbios.rom
BIOS image file is required.
Sucks out 0x0000 - 0xffff of the actual machine, if it is
save it to the file with the name of ngcbios.rom , copy it to the bios folder.
SC-3000 + SF-7000 Vdmgr / bios / sf7000.rom,
vdmgr / bios / sf7000.sc
The SF - 7000 ROM image file (8 KB) is required to operate the SF - 7000. Save the
SF-7000's ROM as a sf7000.rom or sf7000.sc
file and save it to the BIOS folder.

When operating only SC-3000, no image file is necessary.
SG-1000 / SEGA MARK III None Nothing in particular.
TD 4 None Nothing in particular.
Z80 video game ALL 8255.bin, or ALL 8255.HEX
(Select firmware from the menu to open) Since permission

was received from Mr. Ishizu, firmware binary is unnecessary .
Firmware is
necessary (not necessary when moving your own firmware).

Source etc. can be downloaded from double-sided tape wiring type electronic work .
ColecoVision Vdmgr / bios / ColecoVision.rom BIOS image file is required.
Sucks out 0x0000 - 0x1fff of the actual machine, saves it to the
file under the name of ColecoVision.rom, and copies it to the bios folder.

For Windows

Operating environment

OS Operation confirmation with Windows XP / 7/8/10 (7 only check with 32/64 bit, others are only 32 bits)
CPU Atom 1.67 GHz / Core 2 Quad Operation check at 2.66 GHz
Memory Operation confirmation in 2 Gbyte or more environment
Video / Sound Working with DirectX 9.0c



Download the file from Download and unpack it to the appropriate directory.



Since registry is not used, please delete the installed directory.



Execute vdmgr.exe or vdmgrdebug.exe in the installed directory .
From the menu, select "Edit" - "Advanced settings" and then select the target system.


About errors

If the following error is displayed, please install " DirectX End User Runtime " from Microsoft 's page .



For Raspberry Pi

Operating environment

OS Operation confirmation with RASPBIAN (2014-01-07)
Model Operation confirmation with Model B



Download the file from Download and unpack it to the appropriate directory.



Delete the installed directory.



Execute vdmgr in the installed directory.
After selecting the target menu, select the target system.


I am using zlib 1.2.7 to decompress the zip file.
Thank you very much for your useful library.

Official website: http://zlib.net/