AmiMSX 4.x is a community update of AmiMSX, the MSX, MSX2 and MSX2+
emulator by Juan Antonio Gomez Galvez (GUS Entertainment / RED Soft),
released with his permission. It is built from his v3.1 source, with parts
of his later v3.2/v3.5 source. This version puts accuracy first: many
games that broke or glitched in 3.x now run as on a real MSX.
As before, AmiMSX takes over the machine while the MSX runs and drives the
custom chips directly. HELP returns to the menu.
Reporting problems
------------------
AmiMSX runs a large test set well, but some games still have problems
(see Known limits). Please report anything you find as an issue
on GitHub, with the game, the AmiMSX settings and your machine (CPU,
accelerator or emulator), so it can be triaged for the next update:
https://github.com/z00p/AmiMSX/issues
Requirements
------------
- AmigaOS 3.0 or later.
- A 68030 or better. The low-spec target is an A1200 or similar with a
68030 at 50 MHz and fast RAM. A stock 68020 A1200 runs it, but slowly.
- AGA. On ECS AmiMSX warns that it needs AGA and can carry on, with
limits, as 3.x did.
- The libraries and devices listed in AmiMSX.guide (as for 3.1).
- PiStorm (Emu68), BigMig or another fast CPU for MSX-Music (FM), 60 Hz
games at full speed and Smooth display.
- For the RTG preset: Picasso96 and a 16 or 32-bit screen mode of at
least 544x460 (960x540 is best on a 1080p display), and a fast CPU.
Installation
------------
Copy the AmiMSX drawer anywhere and start one of the preset icons:
AmiMSX 030 68030/50 with fast RAM: PSG, PAL, sprites every frame
AmiMSX PiStorm PiStorm, BigMig and other fast CPUs: PSG+FM, display
frequency from the VDP, Japanese ID (60 Hz), audio
filter, smooth display
AmiMSX RTG the PiStorm preset on a Picasso96 (RTG) screen, with
50% scanlines (ToolTypes RTG and SCANLINES=50)
Each preset keeps its own settings file (ToolType PREFS=<file>), and
Project > Save Settings writes to the preset you started.
AmiMSX4.romcache is created next to the program on first use: each
MegaROM is hashed once and its mapper looked up in AmiMSX4.romdb. Leave
the drawer writable.
The included AmiMSX2.data is the original one (MSX, MSX2 and MSX2+ system
ROMs, disk ROM and Kanji), as in the earlier AmiMSX packages, so disk
images and MSX-BASIC work.
What's new
----------
- Z80: POP/RET through ROM, RLD/RRD on ROM, NEG/CPL flags, M1 wait
states, LD A,R from emulated time.
- VDP: sprite collisions, the 5th sprite flag, sprite mode 2 bands and
mid-frame splits (sprite tables, SCREEN 4 tables, SCREEN 5/4 modes,
palettes, R#8/R#18/R#23, display off), transparent copies, LMMC.
- MSX2+: the machine is back, with V9958 fine scroll (R#27) and the left
mask (R#25) per line (Space Manbow, Nemesis 3 Enhanced, Chikubi Ninja).
- Sound: MSX-Music (FM) on Paula channel 3 ("PSG+FM", or "FM lite" with
the 4 loudest voices); PSG volume in 3 dB steps as the YM2149.
- Display: double-buffered sprites, Smooth display (SCREEN 4) for fast
CPUs, automatic edge mask for games that scroll sideways.
- Options: Use Japanese ID (60 Hz), Audio filter, Mask screen edges
(always or auto), per-game settings next to each cartridge.
- Cartridges: ROM database (mapper by SHA-1), 8 KB, 48/64 KB and 4 MB
ROMs, flash Konami SCC cartridges with saves (Pampas & Selene).
- Disks: drive B with its own image (written back), disk swap with Left
Amiga.
- Freeware texts and no anti-crack counter, from Juan's v3.2/v3.5.
- Cleaner exits when a screen, window or device can't be opened.
See Docs/CHANGES_4.x.txt for the full list.
New since 4.5 beta
------------------
- The menus are rearranged into seven: Project, Emulation, Input,
Disks, Cartridges, Tape and Tools, with plainer names (the guide gives
the old name of each line, and says more about what the settings do).
Main window: Machine:, Display: (Auto), Draw: (1 to 5 Frames),
Sprites ECS / 1 Frame, drives Off / Empty, and Drive A: and Drive B: rows.
Slot 2 can always be chosen: with an MSX Disk ROM set, it asks to
switch it off.
- Emulation > Speed: Normal, Overclock, No Limit (was Real MSX, Fast CPU,
Turbo Mode, in the main window).
- Disks by drive: Drive A (Load, Save, Eject), Drive B (Load, Eject).
Tools > New Blank Disk asks which drive.
- Gone: the On Quit settings (quitting always puts back the Amiga's own
display), Save RAM (Slot 3), the Register item, the Imploder compressor
and other dead windows (packed disk images still load). Settings files
keep their layout; an old On Quit setting is ignored.
New in 4.5 beta
---------------
- RTG display (beta): the new "AmiMSX RTG" preset shows the MSX on a
Picasso96 screen, such as a PiStorm's HDMI output: a sharp picture,
every MSX dot 2x2 pixels (960x540, an exact 2x on a 1080p display).
The menu opens there too, at double height. SCREEN 0 (40 and 80
columns, with blink), 1 to 8 are drawn on RTG, so the MSX2 boot
animation (SCREEN 6) and MSX-BASIC show there too, and so are screens
split between two of them (Manbow 2's title: SCREEN 8 over SCREEN 5);
other frames still go to the Amiga's own video output (see Known
limits).
- Scanlines on the RTG screen, hard or blended. Hard: every second row
25, 50 or 75% darker. Blended (as in Arnold): the row between two lines
is the mix of both, 25, 50 or 75% darker (light, normal, strong), which
looks softer on a big display. The choice is in its own menu item,
Emulation > RTG Scanlines (Off, Hard 25%, Hard 50%, Hard 75%, Blended
light, Blended, Blended strong); it takes effect at the next Continue
or Power ON and Save Settings keeps it. The ToolType SCANLINES=<n> (n%
darker, hard; the RTG preset has 50) or SCANLINES=blendlight, blend or
blendstrong is used when the settings file has no choice saved yet.
Blended scanlines need the 2x picture (a 1x screen gets hard ones) and
about 230 KB more memory.
- SCREEN 5 on RTG: VDP commands draw straight into the MSX video memory,
without copying the picture back from the AGA screen each frame.
- R-Type's cartridge type (Irem): R-Type plays, alone or in Slot 2
behind the R-Type FM loader in Slot 1 (set MSX Disk ROM to None).
Chosen by the ROM database, or Cartridges > Slot x Mapper > R-Type.
- The menu's About window shows the release date again.
RTG is still new: please report what you find on GitHub (see Reporting
problems), with the preset you used and your RTG board.
New in 4.4
----------
- Per-game machine: an MSX2, MSX2+ or turbo R game without its own
settings starts on that machine (turbo R games on the MSX2+), from
the ROM database and a new disk database. File Hunter's MSXdev and
homebrew games are in both. A game's own settings keep the machine.
- Cartridge SRAM: save memory for the ASCII8/ASCII16 SRAM cartridges
(Hydlide 2, A-Train, Xanadu, Deep Dungeon...), kept as
<cartridge>.sram next to the ROM, the same format as openMSX's.
- VDP commands: SRCH (BASIC's PAINT in SCREEN 5 and up); HMMV keeps
both colours of a byte (Pampas & Selene's health bars); SCREEN 8
PSET, LINE, YMMM, HMMC and LMMC draw into video memory.
- SCREEN 8 on a 68030/50 is back to its speed before 4.3 (Uridium 2:
about 74% of MSX speed, 4.3 about 68%).
- 68040/060 (PiStorm, BigMig): SCREEN 2 and 4 tiles are drawn by the
CPU. Lotus F3's road no longer judders. Bombaman's sprites no
longer ghost on fast machines.
New in 4.3
----------
- SCREEN 7/8 video memory is stored as on the V9938 (its two banks
interleaved). Manbow 2's title screen is right: logo, START and its
arrow, no boxes over the logo.
- VDP commands stay busy as long as on a real MSX2 (they still draw
at once). Jailbreak: no strip at the bottom of the playfield.
- VDP commands: XOR/AND/NOT drawing modes fixed (Head over Heels
Remake's menu letters); SCREEN 8 LMMV, DIX/DIY, POINT and LMCM.
- Z80 timing: DAA and DD/FD + LD r,r' cost the right cycles; 957 of
959 instructions match the Z80+M1 timing table.
- Sprite collisions are checked where sprites are on.
- SCREEN 8 games that switch modes every frame run a little slower on
a 68030/50 (Uridium 2: about 67% of MSX speed, was about 74%).
New in 4.2
----------
- Gradius III Legends: on POWER METER SELECT the old selection box is
erased again. VDP LINE now honours the logical operation (XOR, AND,
OR, NOT and the transparent versions); it always drew solid before.
- Mask screen edges is now Off, 8 dots or 16 dots, per game; Off is
the default and shows the whole picture. Auto mask is gone (it cut
off Uridium 2's score panel). The MSX2+ left mask (R#25) is always
applied.
- Quitting: Screen on Exit 'No Change' puts the Amiga's own PAL/NTSC
timing back. After a 60 Hz game, PAL screens opened later (other
emulators, games) lost their bottom lines.
- Options menu: Audio filter and Smooth display no longer run the
PAL/NTSC screen handlers when picked.
New in 4.1.2
------------
- Uridium 2: the title picture is drawn right. The Z80 now takes a
pending interrupt straight after the instruction that follows EI,
as a real Z80 does.
- Sprites: magnified sprites (R#1 MAG) in sprite mode 1 (Bit Logic's
hero on the intro screen, Popolon).
- SCREEN 2/4: a tile whose pattern or colour changes is redrawn in
the same frame (Gradius 2 with the MSX2+ enhancement patch: a grid
of dots over the star field).
- MSX2+: a SCREEN 5 game that doesn't use the coarse scroll (R#26)
uses the same display layout as on an MSX2.
- MSX2+ coarse scroll: no stray column at the left edge and no jumps
(Gradius III Legends scrolls smoothly).
- Screen pages: a page switch the game makes in the border is shown
from the top of the picture. On fast machines Barbarian's fighters
no longer flicker or vanish.
- Colours: MSX colour levels now use the full Amiga range (white is
full white), matching an MSX within a step.
New in 4.1.1
------------
- CD32 pads: a menu option per joystick port (Options: JoyPort 2
(Joystick) Pad, JoyPort 1 (Mouse port) Pad: Standard (2 buttons) or
CD32 pad). With CD32 pad the port is read with the CD32 protocol:
red = fire 1, blue = fire 2, yellow = Space, green = M, play = F1.
No auto-detection. Saved with the prefs and per game.
- MSX2+: sprites in SCREEN 5 are no longer garbled after a VDP
command touched their tables (Pampas & Selene walking left).
New in 4.1
----------
- MSX2+: coarse scroll (R#26) and two-page scroll (SP2) in SCREEN 5
and the tile modes (Gradius III Legends: set ROM to MSX2+).
- Mode splits: SCREEN 8 over SCREEN 5 (Manbow 2's title screen).
- Manbow 2: the ship no longer jumps back while it moves.
- Smooth display drops a late frame instead of repeating one, so the
music keeps its tempo.
- Z80: BIT, IN, RLD/RRD, CPI/CPD, DAA flags; RETI; IM 0; interrupt and
instruction timings.
- MVD drives are write-enabled by default, so disk games can save.
- A display bug that could blank a whole frame is fixed.
Games it runs well
------------------
Tested on a PiStorm A1200 and in the regression suite (WinUAE):
- Homebrew: Manbow 2, Lilly's Saga, Chikubi Ninja, Delta, Neon
Revenant, BUN-GA-RUA (Maiden's Extreme Fist), Pampas & Selene,
Uridium (MSXdev'14), Night Knight, Nogalious, Sword of IANNA,
Westen House, The Cure, Caos Begins, Uwol, Bit Logic, Mutants from
the Deep, Shoulder Blade OVERDRIVE, Gradius III Legends (MSX2+).
- Enhanced classics (community patches of Konami games; bring your
own original): Space Manbow (smooth on MSX2, superb on MSX2+),
Nemesis 3 Enhanced, Salamander Enhanced, Usas Enhanced, Zanac Ex
Enhanced, Gradius 2 with the SCC/enhancement patches.
- Disks: Ark-A-Noah and Sex Bomb Bunny (in MVD_Files), disk-based
homebrew such as Gradius III Legends.
Free homebrew: file-hunter.com and msx.org list most of these.
Known limits
------------
- Smooth display covers SCREEN 4 only; other modes run as before.
- Smooth display switches itself off in games that play MSX-Music
(FM), so their music keeps its tempo.
- MSX2+: no YJK modes (SCREEN 10-12) yet. Some MSX2 games choose a
different video mode on an MSX2+, so the picture size differs
(Gradius 2, Pampas & Selene); run MSX2 games as MSX2.
- Nemesis 2: the stars are drawn cyan instead of white, and the ship
can be missing for a frame in the hangar intro.
- Lilly's Saga: on fast machines the save-slot menu text can be drawn
as solid blocks (seen with Smooth display off).
- CD32 pads: on Standard a pad is read as a plain two-button joystick
(red = fire 1, blue = fire 2); set the port to CD32 pad for the
other buttons, and set a switchable adapter to its CD32 mode too.
Left Amiga (port 2) or Right Amiga (port 1) also press MSX fire
button 2.
- Rarely, a game doesn't start on the first Power ON after the
cartridge was changed (a black screen): press Power ON again.
- RTG (beta): SCREEN 5 and 7 are drawn on RTG only with "100% Refresh
in Screen Changes" on (the default); without it those frames go to
the Amiga's own output, and the RTG screen keeps its last picture and
goes black after a second. On a screen too small for the 2x picture
(under 544x460), SCREEN 6, 7 and 80-column text show every other
dot. 60 Hz games on a 50 Hz display show 5 frames in 6.
- Slot 2 can't be used while an MSX Disk ROM is chosen: AmiMSX offers
to switch it off.
- Drive B takes plain 360K and 720K images, not .MVD files.
- The R-Type FM loader doesn't offer MSX-MUSIC, so R-Type plays with
the PSG; on the MSX2+ machine the pair shows a black screen. Use
MSX2.
- Uridium 2 has no sound.
Credits
-------
AmiMSX: Juan Antonio Gomez Galvez, GUS Entertainment / RED Soft
(1994-2000/2009/2021).
Graphics: Multivac.
Thanks: Zener and Sandman.
Testing references: openMSX.
YM2413 instrument data: emu2413 (c) Mitsutaka Okazaki, MIT licence
(Docs/LICENSE.emu2413).
AmiMSX4.romdb: built from the openMSX software database.
Source
------
The 68k assembler source (vasm), tools and test suite:
https://github.com/z00p/AmiMSX
|