Phase 2.3/5 of the Sega VDP / segac2.c clean-up: the coin-op bootlegs of Mega Drive games move from drivers/segac2.c to drivers/megadriv_acbl.c, with the board variants of current MAME, and the nine new sets we have the ROMs for are added. The Mega Drive part stays shared with the other Mega Drive based boards (includes/segac2.h). - Moved: aladmdb, barek2ch, barek3mb, jparkmb, sonic2mb, sonic3mb, twinktmb (titles as in current MAME). Same code paths as before: frames and audio identical to the previous build. - New: barekch, barek2mb, barek3mba, biohzdmb, bk3ssrmb, mk3mdb, srmdb, srssf2mb, ssf2mdb. - The board variants of MAME: the version register, 6 button pads (MAME's TH counter with the 1.5ms timeout), the 3rd I/O port coins, the DIP switches at 0x770070 of the scrambled boards (and the coins at 0x770078 of biohzdmb), the 6MB linear map of ssf2mdb, the PIC16C57 of barek2mb (emulated, with its latches; the 68000 byte writes reach both halves of the bus as on the real CPU; T0 is not connected), the simulated PIC of barek3mba. - The new sets take V-INT / H-INT through the VDP interrupt enables, as on the real hardware (mk3mdb took a V-INT before its RAM vector was set and crashed); the moved sets keep the old mode. - Big-endian hosts: the descrambling of the bootlegs uses BYTE_XOR_LE, and the PIC program of barek2mb is put in the host order the PIC core fetches its opcodes in. - Mega Drive VDP: in H32 mode the sprite table base uses bit 0 of register 5 (AT9), as on the real VDP and in MAME; it was always masked as in H40 (ssf2mdb sets 0x6d in H32: the fighters were missing; the sprites of mt_bbros were garbled). - PIC16C5x core: the PC wraps at the end of the program memory (the 2K parts start at 0x7ff and ran past the ROM), and the save states no longer register the ports and STATUS through R.picRAM before it is set (a NULL pointer: saving a game with a PIC crashed). They are in the data RAM, saved with the CPU memory. - Save states: the pad, frame counter and PIC latch state. - Metadata: mame2003-plus.xml (the bootleg entries regenerated), CHANGELOG.md. Claude-Session: https://claude.ai/code/session_01N3fzdsnzkQVtgYtYzqepjX Co-authored-by: Claude <[email protected]>
What is MAME 2003-Plus?
MAME 2003-Plus (also referred to as MAME 2003+ and mame2003-plus) is a libretro arcade system emulator core with an emphasis on high performance and broad compatibility with mobile devices, single board computers, embedded systems, and similar platforms.
In order to take advantage of the performance and lower hardware requirements of an earlier MAME architecture, MAME 2003-Plus began with the MAME 2003 codebase which is itself derived from xmame 0.78. Upon that base, MAME 2003-Plus contributors have backported support for an additional 350 games, as well as other functionality not originally present in the underlying codebase.
What games are supported?
View our live compatibility table built using datmagic, a tool created by the MAME 2003-Plus team. Datmagic auto-generates a compatibility table based on the latest XML DAT file. See an incorrect entry? Create a new issue to let us know! This allows us to keep the compatibility table as accurate as possible by fixing it at the source.
Authors: MAMEdev, MAME 2003-Plus team, et al (see LICENSE.md and CHANGELOG.md)
Documentation
User documentation for MAME 2003-Plus can be found in the libretro core documentation library.
Developer documentation can be found in the MAME 2003-Plus wiki.
Development chat
#programming channel of the libretro discord chat server.
Romsets and how to build them for this core
mame2003-plus was originally built from the MAME 0.78 codebase, meaning that 95% or more of MAME 0.78 romsets will work as-is in mame2003-plus, where they immediately benefit from its bugfixes and other improvements. In order to play the new games and games which received ROM updates in mame2003-plus, you will need to find or build the correct romsets.
Read more about rebuilding romsets in the libretro core documentation for mame2003-plus.