Back to index |
Info for msx |
Not emulated:
Printer port, diskdrives, megaRAM, Sound Cartridge (SCC+), MSX2, etc..
Cartridge emulation:
The MSX has 64kB RAM, like most (by far) MSX1 computers. It is located in slot 3. Two
cartridges are allowed: the first in slot 1 and the second in slot 2. So subslots aren't
emulated (yet).
The msx.crc file is important. The last field on every line specifies the type of ROM mapper.
See msx.crc for more information.
Sound emulation:
The standard sound chip, the PSG (AY8910) is emulated, so is the extension that was included
in some Konami cartridges: the SCC. The keyclick (PPI) is also emulated, as is the FM-PAC
(you'll need the fmpac.rom of the original Panasonic FM-PAC for this). Unfortunately the
YM2413 emulation in MAME does not emulate the volumes correctly.
Last but not least, the DAC in Konami's Synthesizer is emulated, and the SIMPL (DAC on the
printer port). The DAC in Konami's Matjusushi is also emulated, but the driver lacks MSX2
support.
SRAM in cartridges:
A number of cartridges (Hydlide 2, Xanadu, The Game Master 2 and more) had on-board sram.
This sram is automagically saved as a MEMCARD.
Tape emulation:
Unlike other MSX emulators, the tape emulation is not done by trapping BIOS calls. In our
opinion this is an evil kludge; apart from that, our setup does have an advantage. Tapes with
a custom loader (using direct access to the hardware) will work fine. It is done by saving
the tape as a .wav file. In principle, you could record a tape to .wav, and load them into
MESS.
History and Trivia:
In the early 80's, there were a lot of home computers, Microsoft and a Japanese company
called ASCII corporation (directed by Kay Nishi) decided then to create an industry standard
for the home computers: MSX (for MicroSoft eXtended). The new standard was based on an
existing computer: The Spectravideo SV 318. Microsoft designed the MSX 1 computers and the
first version of the OS: MSX DOS 1 (which looks like earlier versions of MS DOS).
Almost all Japanese and Korean computer companies made their own MSX computers (except
perhaps NEC). Bill Gates was then very confident about the future of the MSX standard.
Spectravideo (one of the MSX companies) made a 80 columns card and adapted CP/M on the MSX.
A lot of software(especially a lot of games from Sega, Konami, Taito, Ascii,...) and
hardware was developed for this standard. Despite all its qualities, the MSX family didn't
have great success in USA, however was pretty known in Europe (Netherlands and France), in
South America (Brazil) and USSR. This standard was replaced in 1985 by MSX 2.
A list of known MSX compliant machines:
Canon (Japan)
V-8: 16kB RAM (other source says 32kB RAM)
V-10: 16kB RAM
V-20: 64kB RAM
Casio (Japan)
MX-10: 16kB RAM (other source says 64k), docking station available
MX-101: 16kB RAM (other source says 64k)
PV-7: 32kB RAM
PV-16: 16kB RAM
Daewoo/Yeno (Korea)
Ce-Tec MPC-80: 64kB RAM (other source says 32KB)
DPC-100: 16kB RAM, built in loudspeaker, available in green, blue or silver
DPC-200: 64kB RAM
DPH-64: 64kB RAM (other source says 32kB RAM)
DPH-?: 64kB RAM, built in software, Arabic version
IQ-1000: 32kB RAM, produced for Korea
MX64: 64kB RAM
Dragon (Spain)
MSX-64: 64kB RAM
Dynadata (MSX from Daewoo in Spain)
DPC-200: 64kB RAM
Fenner (Italy?)
FPC-500: 64kB RAM
Fujitsu (Japan)
MB-H1: ??kB RAM
FM-X: 16kB RAM
General (Japan)
PAXON-PC K50: ??kB RAM, separate keyboard, computer and monitor in one box
PAXON-PC T50: 16kB RAM, RGB connector
PAXON-PC T55: 32kB RAM, RGB connector
Goldstar (Korea)
FC-80: ??kB RAM
FC-100: 16kB RAM
FC-200: 64kB RAM (with hole for light-pen)
Gradiente (Brazil)
XP-800 Expert 1.0: 64kB RAM, separate keyboard
XP-800 Expert 1.1: 64kB RAM, separate keyboard (with fixed ASCII tables, grey colour)
Expert plus: 64kB RAM, separate keyboard (black colour)
Expert DD plus: 64kB RAM, separate keyboard, 3,5" floppy disk drive (black colour)
Hitachi (Japan)
Hint: 16kB RAM
MB-H1 (Humanicatio): 32kB RAM, built in software (Sketch and Music)
MB-H1E: 16kB RAM
MB-H2: 64kB RAM, built in tape recorder
MB-H21: ??kB RAM
MB-H25: ??kB RAM
MB-H50: 64kB RAM
MB-H80: 64kB RAM, also built in software (Sketch and Music)
JVC/Victor (Japan)
HC-5: 32kB RAM (other source says 16kB RAM)
HC-6: 16kB RAM
HC-6AV: 32kB RAM, RGB connector
HC-7: 64kB RAM (Japanese version)
HC-7E: 64kB RAM (English version, other source says 32KB RAM)
HC-7GB: 64kB RAM
HC-30: 32kB RAM
HC-60: 32kB RAM
Kyocera (Japan)
YC-64: 64kB RAM
Mitsubishi (Japan)
Letus: 16kB RAM
ML-8000: 32kB RAM
ML-F48: 32kB RAM
ML-F80: 64kB RAM
ML-F110: 16kB RAM
ML-F120(D): 32kB RAM
ML-F8000: 32kB RAM
ML-FX1: 64kB RAM
ML-FX2: 64kB RAM, built in software
National (Japan)
CF-1200: 16kB RAM
CF-2000: 16kB RAM
CF-2700: 32kB RAM
CF-3000: 64kB RAM
CF-3300: 64kB RAM
CF-4000: ??kB RAM
FS-1300: 64kB RAM
FS-4000: 64kB RAM
Olympia (France)
PHC-2: ??kB RAM, same as some Sanyo?
PHC-28: 32kB RAM, same as Sanyo's PHC-28S
Panasonic/Matsushita (Japan)
CF-2000: 16kB RAM
CF-2700: 64kB RAM, same as Sanyo MPC-64
CF-3000: ??kB RAM
CF-3300: ??kB RAM
Perfect (Daewoo in Kuwait)
Perfect1: 64kb RAM, 1 slot, no reset, built in software
Philips (The Netherlands)
VG-8000: 16kB RAM
VG-8010: 32kB RAM
VG-8020: 64kB RAM, (VG8020 comes in 2 different versions (/00 and /20), new versions use
sub-slot for RAM)
Pioneer (Japan)
PX-7 PALCOM: 32kB RAM, built in laser disk interface, superimpose (image & sound (stereo)),
separate keyboard (UK version in black, JP version in black/silver (lila/blue keys) colour)
PX-V60: 64kB RAM
Radofin (Hong-Kong)
Triton: 64kB RAM
Radiola (France)
MX-180: 32kB RAM, Same as Philips VG-8010 with a different color case
Sakhr/Universal/Al Alamiah (Kuwait/Yemen)
Those computers are Yamaha and Sanyo MSX modified for arabian countries.
AX-100: 64kB RAM
AX-150: 64kB RAM
AX-170: 64kB RAM, built in special ROMs with Arabic characters set and software
AX-230: 64kB RAM, same software as AX-170 + 1MB of other software
AX-330: 64kB RAM, same as AX-230 but with built in SEGA-MEGADRIVE board
AX-990: 64kB RAM, 50 programs built in, SEGA-MEGADRIVE board built in
SX-100: 32kB RAM, 3 slots, RGB connector
SX-101: ??kB RAM, 3 slots
Samsung (Korea)
SPC-800: 64kB RAM
Sanyo (Japan)
MPC-2: 16kB RAM
MPC-3: 16kB RAM
MPC-4: 16kB RAM
MPC-5: 16kB RAM
MPC-6: 64kB RAM
MPC-10(mk2): 64kB RAM (other source says 32kB RAM), lightpen-interface
MPC-11: 64kB RAM (other source says 32kB RAM), lightpen-interface
MPC-64: 64kB RAM
MPC-100: 64kB RAM, hole for lightpen
MPC-200: 64kB RAM
MPC-X: 64kB RAM, built in lightpen, high-res adaptor and speech-synthesizer
PHC-27: 64kB RAM
PHC-28L: 64kB RAM, Same as PHC-28S but with 64kB RAM
PHC-28S: 16KB (or 32KB) RAM
PHC-30: 16kB RAM (other source says 32KB), built in tape recorder
PHC-30N: 64kB RAM
PHC-33: 32kB RAM
WAVY-MPC-10: 32KB (other source says 16KB) RAM, built in light pen unit
Schneider (Germany)
MC-810: 32kB RAM, (Same as Philips VG-8010 with a different color case)
Sharp/Epcom (Brazil)
HB-8000 HotBit: 64kB RAM (white colour)
HB-8000 HotBit 1.2: 64kB RAM (in black color)
Sony (Japan)
Note: Some of the Sony's computer names are followed by a letter like HB-101P, or
HB-101F or HB-700D. The last letter is only depending of the keyboard layout of the
country. D=German (QWERTZ) F=French (AZERTY) S=Spanish P=UK (QWERTY)
HB-10: 64kB RAM
HB-11: 64kB RAM
HB-11U: ??kB RAM, built in dictionary Japanese-English
HB-20: 32kB RAM
HB-55: 16kB RAM
HB-75: 64kB RAM, built in program: Personal Databank (schedule/memo/address)
HB-101: 32kB RAM, (Same as HB-201 but with 32kB RAM, but other source says 16kB RAM)
HB-201: 64kB RAM, built in joystick (Same as HB-501 but without tape recorder)
HB-501: 64kB RAM, built in tape recorder ('BitCorder'), pause button, joystick
HB-701, 64kB RAM
HB-701FD: 64kB RAM, floppy disk drive
Spectravideo (Hong-Kong/USA)
SVI-728: 64kB RAM, numeric keypad
SVI-738: 64kB RAM, built in 80 columns card (V9938), RS232C interface, 360KB 3,5" floppy
disk drive. Also called X'PRESS and also SVI-318 and SVI-328 MSX compatible with an emulator
Talent/Telematica (Argentina)
DPC-200: 64kB RAM, Daewoo's MSX model sold under the Talent name
Toshiba (Japan)
HX-10: 64kB RAM
HX-10D: 16kB RAM
HX-10DP: 64kB RAM
HX-10DPN: 64kB RAM, built in program (??)
HX-10E: 64kB RAM
HX-10S: 16kB RAM
HX-20: 64kB RAM, built in word processor (in total 64kB ROM), RAMdisk feature (32kB of
main RAM in page 0 and 1 are used, under BASIC), T6950 VDP (software compatible with
9929A which is normally used)
HX-20e: 64kB RAM, built in word processor, RS232C interface
HX-21: 64kB RAM, built in software
HX-22: 64kB RAM, RS-232C interface, RGB connector (SCART 21), built in word processor (in
total 64kB ROM)
HX-30: ??kB RAM, built in software
HX-31: ??kB RAM, built in software
HX-32: ??kB RAM, built in software
HX-51: ??kB RAM
Triton (Hong-Kong)
PC64: 64kB RAM
Yamaha (Japan)
CX5: 32kB RAM
CX5F: 32kB RAM
CX5M: 32kB RAM, built in FM synthesizer (SFG-01) and MIDI-Interface
CX5MII: 64kB RAM, built in FM synthesizer (SFG-01), MIDI-interface
CX5MII/128: 128kB RAM, built in FM synthesizer (SFG-05), (V9938 built in), built in
FM VOICING program II
CX-11: 32kB RAM
CX-100: 32kB RAM
YIS-303: 16kB RAM
YIS-503: 32kB RAM
YIS-503II/64: 64kB RAM, FDD
Yashica (Japan)
YC-64: 64kB RAM, Kyocera's MSX sold by Yashica
MSX system list compiled from the list by TRD, Manuel Bilderbeek & Alex Wulms. Thanks to
Stefano Priore, for abridging it to MSX1 specific info.
Other Info:
The MSX driver is very preliminary. Disk drive emulation doesn't work properly
for example, and memory emulation isn't very good either. Various MSX1 models
are emulated, and there is preliminary MSX2 support through the msx2 and msx2j
driver.
The required bios dumps are available at:
http://www.file-hunter.com/
Cartridges:
The ROM mapper (which is specified with -rom x in fMSX) is autodetected but
isn't perfect. So you should also install the crc files, which can be
downloaded from the official mess site. With the CRC files, cartridges with
SRAM or a DAC (like Synthesizer or Majutsushi from Konami) are detected
properly.
Tape emulation:
Tape emulation is done via .wav files; the actual sound the MSX produces
is recorded / played back, making tape emulation more authentic. Because of
this, you can record your existing tapes to .wav and play them in MESS. Make
sure your record them at high quality (44100Hz, 16 bit and mono).
.cas files are also supported but they're converted to sound by the driver
on startup. There is no support for writing .cas files.
While recording or playback you can hear the sound through the sound card
of your computer. You can control the volume by pressing <SCROLL LOCK> and
<~>.
.tap files from Virtual MSX can be converted to .cas using imgtool (see
imgtool.txt for more information).
Memory Emulation:
The memory map is from a standard MSX1; there are no subslots, nor MSX2
memory mappers for RAM. RAM is 64Kb in slot 3, and slot 1 and 2 are where
the cartridges end up.
Sound emulation:
The PSG, PPI (key click), SCC are emulated. The SCC isn't perfect yet, you
can hear slight imperfections in King's Valley 2 (when you through the knife),
F1 Spirit (when you start a race), Solid Snake (when you get to building 3).
The SCC is called `k051649' in the volume menu.
The FM-PAC is also emulated for which you need the ROM dump of an original
Panasonic FM-PAC. However the sound emulation isn't very good at all. :/
The following DACs are emulated: SIMPL, Konami's Synthesizer, Konami's
Majutsushi. The keyclick is also done through the DAC. To enable SIMPL
(which disables the printer port), press <SCROLL LOCK>, <TAB> and go to
Dip Switches. Here set SIMPL to "On".
You can control the volumes by pressing <SCROLL LOCK> (so you go to UI
mode) and then <~>. Press <UP> and <DOWN> to see different sound chips, and
<LEFT> and <RIGHT> to change the volume.
Video emulation:
The tms9928a (MSX1) emulation is very good, but doesn't emulate changes while
the screen is being drawn to the screen.
The v9938 emulation is preliminary and has problems with sprite mode 2 (MSX2
games), interlaced mode, graphic engine emulation, timing (Zanac Ex doesn't
run correctly and Aleste only runs in the Japanese version of the driver).
Also the PAL/NTSC (50/60Hz) switch is an evil hack, the actual refresh rate
of the screen isn't changed.
Also it's not very well optimized, I'll start optimizing as soon as it
works alright.
The v9958 isn't emulated at all.
The MSX1 and MSX2 video chips only only display a limited number of sprites on
one line; this causes sprite flickering, you can turn this off (which isn't
like a real MSX of course) by pressing: <SCROLL LOCK>, <TAB> and going to the
Dip Switches menu. Set "Enforce 4/8 sprites/line" to "Off". Note that sometimes
this feature is used for other purposes, like making sure a sprite is only
partly displayed (when you enter a world in The Maze of Galious for example).
Printer port:
The printer port is emulated; output to the port is saved to disk. However
no emulation/translation is done, so the data is raw.
MSX2 RTC:
The real-time clock, which keeps information like the time and date, should
be emulated correctly. However in PAL mode the timing isn't correct as the
refresh rate isn't properly adjusted. All settings are saved to disk.
Keyboard/joystick/mouse:
The keyboard layout should be properly emulated. Joysticks seem to default
to having key-bindings as well, so pressing <CTRL> or <ALT> will also work
for the joysticks, but might give some unexpected results.
The mouse emulation doesn't work properly yet. :(
Disk Emulation:
Disks are emulated through proper wd2793 emulation. Currently only the
Philips and Sony diskroms are supported; the Panasonic machines use the
tc8566af diskcontroller (unemulated) and the Brazillian machines are
port-based (not memory-mapped).
You need a proper diskrom dump, and the msx.crc file in place. The diskrom
should be recognized as type 15 otherwise the driver doesn't know it's
a diskrom.
Next specify the diskrom as one of the cartridges. That should do the
trick. :) Note that only .dsk files are supported; other formats can
be converted to .dsk using imgtool (it can convert .msx, .img, .ddi, .xsa,
multidisks -- see imgtool.txt for more information).
Error aren't properly handled yet. ``not ready'' is reported as ``record
not found'', which results in ``Disk I/O error'' in MSX-BASIC.
Also not that memory emulation isn't complete so MSX2 memory mappers
don't work yet.