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.
Overview
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, or 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 NEOGEO POCKET ngpbios.rom, for NEOGEO POCKET COLOR 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, or 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 |
Installation
Download the file from Download and unpack it to the appropriate directory.
uninstall
Since registry is not used, please delete the installed directory.
Execution
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 |
Installation
Download the file from Download and unpack it to the appropriate directory.
uninstall
Delete the installed directory.
Execution
Execute vdmgr in the installed directory.
After selecting the target menu, select the target system.
Acknowledgments
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/