MAME is a multi-purpose emulation framework.

MAME's purpose is to preserve decades of software history. As electronic technology continues to rush forward, MAME prevents this important "vintage" software from being lost and forgotten. This is achieved by documenting the hardware and how it functions. The source code to MAME serves as this documentation. The fact that the software is usable serves primarily to validate the accuracy of the documentation (how else can you prove that you have recreated the hardware faithfully?). Over time, MAME (originally stood for Multiple Arcade Machine Emulator) absorbed the sister-project MESS (Multi Emulator Super System), so MAME now documents a wide variety of (mostly vintage) computers, video game consoles and calculators, in addition to the arcade video games that were its initial focus.


0.202 (2018-09-26)
------------------


MAMETesters Bugs Fixed
----------------------

- 05059: [Documentation] Some games have incorrect release year listed. (sjy96525)
- 05881: [Documentation] (whitestar.cpp) rctycn and all clones: Incorrect descriptions. (sjy96525)
- 05904: [Graphics] (sshangha.cpp) sshangha, sshanghaj: Sprite priority bug with the in-game message boxes. (David Haywood)
- 06020: [Color/Palette] (sshangha.cpp) sshangha, sshanghab, sshanghaj: Black sprites in some cutscenes. (David Haywood)
- 06258: [Graphics] (taitogn.cpp) usagi: Weird background color for score recap. (smf)
- 06874: [Gameplay] (seattle.cpp) blitz: Hangs on a black screen if the power-on self test is enabled. (Ted Green)
- 06967: [Crash/Freeze] (msx.cpp) canonv30f: [debug] Assertion Failed! m_entrymap.find(name) == m_entrymap.end() (Robbbert)
- 06991: [Crash/Freeze] (model1.cpp) swa: Crash with access violation after a while. (AJR)
- 06998: [Interface] Software lists title screenshot directories not working. (Robbbert)
- 07021: [DIP/Input] (vtech2.cpp) laser500: Reset key is not mapped. (hap)
- 07074: [Graphics] (skykid.cpp) drgnbstr: The title logo is not displayed correctly. (kunikuni)
- 07076: [Graphics] (psikyo.cpp) tengaij, tengai and maybe more: [possible] Bad glitch graphic on some stages. (cam900)
- 07081: [Crash/Freeze] (amstrad.cpp) cpc6128: Certain disks that work in older releases won't run. (AmatCoder)
- 07085: [Crash/Freeze] (mcr.cpp) Most machines in mcr.cpp, mcr3.cpp: Calling member function with null this pointer. (Vas Crabb)
- 07086: [Crash/Freeze] (r9751.cpp) r9751: [debug] Assertion Failed! Expression: m_functions.empty() (Osso)
- 07087: [Crash/Freeze] (atari400.cpp) a400, a400pal, a800, a800pal: Object finders are not for resources created on start. (Vas Crabb)
- 07089: [Crash/Freeze] Assorted machines: Attempting to bind callbacks to parent of root device. (Vas Crabb)
- 07090: [Crash/Freeze] (astrocde.cpp) tenpindx: Invalid format string in output finder tag. (Vas Crabb)
- 07091: [DIP/Input] (namcos2.cpp) sgunner2, sgunner2j: Coin inputs are not registered. (AJR)
- 07092: [DIP/Input] (targeth.cpp) targeth, targeth10, targetha: Player 2 Y axis is broken, and X axis is inverted. (AJR)
- 07096: [Crash/Freeze] (micro3d.cpp) All sets in micro3d.cpp: Hang during the boot process. (AJR)


New working machines
--------------------
Emma II trainer [Robbbert]
Pitapat Puzzle [David Haywood, ClawGrip, Brian Troha, The Dumping Union]


New working clones
------------------
800 Fathoms (older) [ShouTime, The Dumping Union]
Acorn Electron (Trial) [Centre for Computing History, ABUG]
Botanic (English / Spanish, set 2) [ClawGrip, Roberto Fresca, Recreativas.org, The Dumping Union]
Chouji Meikyuu Legion (Japan ver 1.05, bootleg set 2) [ClawGrip, Roberto Fresca, Recreativas.org, The Dumping Union]
Defend the Terra Attack on the Red UFO (bootleg, set 2) [Siftware, MASH]
Four Trax (Japan) [ShouTime, The Dumping Union]
Frogger (Video Dens, bootleg on Scramble hardware) [ClawGrip, AJR]
Gals Panic 4 (Europe) [nomax, The Dumping Union]
Hard Head 2 (v2.0, Music Program v2.0) [ClawGrip, Roberto Fresca, Recreativas.org, The Dumping Union]
Lucky Ball 96 (Ver 3.01) [Roberto Fresca, Grull Osgo, Daniel Gallimberti]
Lucky Ball 96 (Ver 4.01) [Roberto Fresca, Grull Osgo, Daniel Gallimberti]
Mandanga (bootleg of Mandinga on Galaxian hardware, set 1) [Ivan Vangelista, The Dumping Union]
Mandanga (bootleg of Mandinga on Galaxian hardware, set 2) [Ivan Vangelista, The Dumping Union]
Meteorite (Proel bootleg of Asteroids) [MikeMcBike]
Midnight Landing (Japan) [ShouTime]
Midnight Run: Road Fighters 2 (JAD, Japan v1.10) [ShouTime, The Dumping Union]
Pac-Man (Video Dens, Spanish bootleg on Galaxian hardware) [ClawGrip, Roberto Fresca, Recreativas.org, The Dumping Union]
River Patrol (Japan, unprotected)
[ShouTime, Henrique Areias Pontes, Dane Biegert, Evan Korzon, Mario Mantese, Smitdogg, The Dumping Union]
Star Castle (****tail) [Brent Walker]
Tehkan World Cup (1986 year hack) [ClawGrip, Roberto Fresca, Recreativas.org, The Dumping Union]
The Simpsons (4 Players Asia) [Leonard Oliveira]
Toki no Senshi - Chrono Soldier (MC-8123, 317-0040) [ShouTime]
TouchDown Fever 2 (bootleg) [ClawGrip, Roberto Fresca, Recreativas.org, The Dumping Union]
Vendetta (World, 4 Players, ver. ?) [Jorge Silva]
WEC Le Mans 24 (v2.01) [ClawGrip, Roberto Fresca, Recreativas.org, The Dumping Union]


Machines promoted to working
----------------------------
Air Combat 22 (Rev. ACS1 Ver.B, Japan) [hap]
Cart Fury [Ted Green]
Jugend+Technik CompJU+TEr [Robbbert]


Clones promoted to working
--------------------------
Jugend+Technik CompJU+TEr (EMR-ES 1988) [Robbbert]
Jugend+Technik CompJU+TEr (ES 2.3) [Robbbert]
Jugend+Technik CompJU+TEr (ES 4.0) [Robbbert]
Lucky Ball 96 (Ver 3.50 - 616) [Roberto Fresca, Grull Osgo]
Lucky Ball 96 (Ver 3.50 - 623) [Roberto Fresca, Grull Osgo]
Lucky Ball 96 (Ver 3.50 - 626) [Roberto Fresca, Grull Osgo]
Lucky Ball 96 (Ver 3.50 - 627) [Roberto Fresca, Grull Osgo]
Stop Thief (Electronic Crime Scanner) (patent) [Mike]


New machines marked as NOT_WORKING
----------------------------------
Hazeltine 1420 Video Display Terminal [AJR]
Hazeltine 1552 [Al Kossow]
Jongputer [yukaritamura]
Lee Data 1214D Display Terminal [Al Kossow]
MIPS Magnum R4000 (big) [Patrick Mackinlay]
MIPS Magnum R4000 (little) [Patrick Mackinlay]
Nvidia nForce PC (CRUSH11/12) [Samuele Zannoli]
Video 21 [MikeMcBike, Robbbert, hap, David Haywood]


New clones marked as NOT_WORKING
--------------------------------
Acorn Briefcase Communicator [Centre for Computing History, ABUG]
Acorn Communicator (Italian) [Centre for Computing History, ABUG]
Acorn Communicator (prototype) [Centre for Computing History, ABUG]
Diner (LF-2) French [PinMAME]
The House of the Dead (prototype) [Andy Geezer]
Wyse WY-75 [Robbbert]


New working software list additions
-----------------------------------
c64_flop: Bill Budge: Pinball Construction Set, JingleDisk - Holiday Musical Story with Computer Animation [FakeShemp]
camplynx_cass: Super Air Raid [Nigel Barnes]
fmtowns_cd:
Super Real Mahjong PII & PIII +, The Visitor [DamienD, Tokugawa Corporate Forums]
Teito Taisen, Teitoku no Ketsudan II, Zoku Youjuu Senki - Suna no Mokushiroku [r09, redump.org]
fmtowns_flop: Daisenryaku III '90 Map Collection Vol. 1 [r09]
ibm5150:
2630 Fourier Analyzer (Demo), Easy-PC Demonstrator for Printed Circuit Boards and Schematics,
Mitt forsta ordbehandlingsprogram (Swe), Ranger 1 (Demo), The Great International Paper Airplane Construction Kit
[FakeShemp, Justin Kerk]
ibm5170: Heimdall, Heimdall 2: Into the Hall of Worlds [ArcadeShadow]
interpro: Intergraph Mechanical Software [Brian Ekins]
uzebox: Babylon Tower, Bomber, Bugz, Fifteen Puzzle, Holey Moley, Joyrider [ArcadeShadow]


New NOT_WORKING software list additions
---------------------------------------
bbc_flop_6502: P-System [Nigel Barnes]
bbcm_cart: Smart Cartridge [Centre for Computing History, ABUG]


Translations added or modified
------------------------------
Korean [Neius]


Source Changes
--------------
-pipibibsbl: Fixed clocks - they're different to original. [AJR]

-Moved imperfect graphics flag from drivers to PSX GPU device. [AJR]

-m6502: Made SET instruction in Mitsubishi M740 subfamily actually affect execution (fixes MT07091). [AJR]

-m79152pc: Implemented cursor, scrolling support, and some video attributes. [AJR]

-froggervd: Patched program ROMs, allowing game to work. [AJR]

-imds2: Split out emulation of I/O controller board as separate device. [AJR]
* Also identified and added more IOC firmware revisions.

-z80dart: Fixed miscellaneous bugs. [AJR]
* Default RxD to 1 to avoid spurious break condition.
* Corrected CTS level in RR0 after "Reset External/Status Interrupt" command.
* Allow immediate de-assertion of RTS output when nothing is being transmitted.

-pcd.cpp: Fixed pcx display. [AJR]

-tzx_cass.cpp: Finish a block with a 1 ms minimum pause when specified pause length is zero. [AmatCoder]

-dsk_dsk.cpp: Read sectors with deleted mark set. [AmatCoder]

-Apply scanline effect before defocus effect, and moved scanline effect into separate shader. [anikom15]

-bbusters.cpp: Fixed beast Busters sprite priority and converted to single-pass drawing. [Bryan McPhail, Daniel Filner]

-megatech.cpp: Added cart label numbers from manual. [Bryan McPhail]

-mips3: Fixed DMULT/DMULTU behaviour (GitHub #3718). [Bryan Perris]

-lethalj.cpp, artmagic.cpp: Reduced run-time tag map lookups, and improved function and region naming. [cam900]

-raiden2.cpp, r2dx_v33.cpp: Corrected Oki M6295 clock and pin 7 level for zeroteam, nzerotea, and zerotm2k. [cam900]

-legionna.cpp: Corrected metadata for denjinmk. [cam900]

-psikyo.cpp, dreamwld.cpp: Fixed tilemap rowscroll effects. [cam900]

-Improved PC-FX sound: [cam900]
* huc6230: Fixed PSG, converted ADPCM update to timer callback, and implemented CD-DA volume control.
* huc6272: Fixed CD-DA output.

-yunsun16.cpp: Reduced code duplication, run-time tag map lookups and unused members, and simplified tilemap scanning code. [cam900]

-funybubl.cpp cleanup: [cam900]
* Cleaned up member and region naming, and reduced run-time tag map lookups.
* Corrected Oki M6295 clock and converted sample space to memory bank.
* Corrected palette size and converted to use palette decoder member.
* Converted VRAM to use address map bank device, and converted drawing to use tilemap system.

-sshangha.cpp: Fixed Oki M6295 clock and pin 7 level. [cam900]

-nmg5.cpp: Converted bitmap layer to use a MAME bitmap, reduced need for ACCESSING_BITS, and reduced code duplication. [cam900]

-neogeo.cpp, neopcb.cpp: Eliminated register_postload, and eliminated some MCFG macro usage. [cam900]

-neogeocd.cpp: Re-worked to better match MAME code conventions. [cam900]

-crospang.cpp: Fixed tile banking - should fix bugs in bestri. [David Haywood]

-raiden2.cpp: Organised Raiden 2 and Raiden DX set by code revision. [David Haywood]

-seta001: Removed a sprite drawing kludge. [David Haywood]

-sshanghai.cpp: Improved video mixing and palette handling. [David Haywood]

-fuukifg2.cpp, fuukifg3.cpp: Fixed tilemap buffer offset. [David Haywood]

-Started converting Namco C65 and C68 to devices. [David Haywood]

-namcos2.cpp, namcos21.cpp: Use configured banking for audio CPU program. [David Haywood]

-namcos2.cpp: Separated C123, C169, C355 and ROZ drawing emulation from driver class. [David Haywood]

-namcos21.cpp: Split into three drivers for different configurations, and moved DSP emulation to a device. [David Haywood]

-opwolf: Removed C-chip simulation and cleaned up code. [Dirk Best]

-opwolfb: Inputs are read by Z80 and written to shared RAM. [Dirk Best]

-galaxian.cpp updates: [kazblox]
* Improved machine configuration and video sync in Take Off, Explorer, and Amigo (set 2).
* Marked Explorer and Amigo (set 2) as having imperfect sound emulation.
* Marked Take Off as having incorrect colors
* Fixed Jump Bug starfield limit.
* Fixed bullet size in Scramble.
* Derived jungsub clocks from the L-1200-2 pixel clock, as the Subelectro 113 board has no crystals.
* Improved SF-X and Monster Zero background drawing.
* Converted to use MCFG_SCREEN_VBLANK_CALLBACK rather than MCFG_DEVICE_VBLANK_INT_DRIVER.
* Changed turpins to derive from Super Cobra rather than Scramble.
* Added sound program ROMs from Amidar to Mandinga, marked as bad dump.
* Improved protection simulation for The End and Scramble.

-mimonscr: Fixed video RAM mirror address - score is now displayed correctly. [kazblox]

-pacland.cpp: Improved sprite priority and drawing at screen edges. [kunikuni]

-sn76496.cpp: Made NCR8496 and PSSJ-3 noise generator behaviour match hardware tests.
[Lord Nightmare, Qbix, ValleyBell, NewRisingSun]

-williams.cpp: Fixed Speed Ball inputs. [MASH]

-bbcb: Added AMS 3" Microdrive Disc System and Microware DDFS FDC floppy controller options (latter is not working). [Nigel Barnes]

-bbc: Added Acorn Bitstik and Bitstik 2 analogue controllers. [Nigel Barnes]

-acorn_fdc, atom_discpack: Set READY on HEAD_LOAD. [Nigel Barnes]

-emumem: Fixed I/O ports and memory banks in internal maps. [O. Galibert]

-interpro: Fixed network emulation. [Patrick Mackinlay]
* osdnet, dinetwork: Fixed time travel issues.
* taptun: Pad short frames and append frame check sequence on Windows.
* clipper: Fixed bugs in carry flag handling.
* i82586: Improved interrupt handling, implemented serialisation delays, fixed transmit bug, and added reset handling.

-apple2e.cpp: Corrected I/O intercepts to match hardware behaviour. [Peter Ferrie]

-apple2e: Fixed issues with cards in slots 1 and 2 that use the $C800 space. [R. Belmont, Peter Ferrie]



-decstation improvements: [R. Belmont]
* Emulated accelerated quasi-blitter enough to get a working console.
* Added LANCE Ethernet controller.
* Started implementing IRQ handling in gate array.

-z8: Fixed numerous bugs, including detection of stack type, JP and CALL with indirect register addressing, and DA. [Robbbert]

-luckybal.cpp updates: [Roberto Fresca, Grull Osgo]
* Implemented banking and I/O multiplexing.
* Added DIP switch locations, and added pinout and I/O connections to notes.

-Added preliminary AMD LANCE Ethernet controller device. [Ryan Holtz]

-sun4.cpp updates: [Ryan Holtz]
* Ignore writes to ASIs used by unemulated write-through cache controller.
* Fixed DMA and MMU page fault handling.
* Trigger memory access exceptions on access to undefined memory types.
* Added SBus slots with support for bwtwo, cgthree and cgsix cards.
* Added an alternate FCode PROM for the bwtwo framebuffer.
* Added a skeleton Artecon SB300P 3-serioal/1-parallel SBus card device.
* Corrected timekeepr type.
* Added sun4c MMU device implementing S4-buffer, S4-cache and S4-MMU functionality.

-sparc: Fixed TBR masking on traps and interrupts, and refactored CPU/MMU interface for better performance. [Ryan Holtz]

-nscsi_cd: Return data from correct offset when initiating read at a block that isn't on a sector boundary. [Ryan Holtz]

-timekpr.cpp: Fixed issue that could cause updates to be missed. [Ryan Holtz]

-Added skeleton SunPC 5x86 Accelerator, SunSwift 10/100 Ethernet + Fast Wide SCSI, and TurboGX+ SBus card devices.
[Ryan Holtz, Andrew Liles]

-32x: Improved audio FIFO behaviour and corrected DAC resolution. [smf]

-NES APU: Removed read/write trampolines and corrected channel enable reset state. [smf]

-vgmplay updates: [smf]
* Added support for Sega 32X sound.
* Added support for Y8950, YM2608, YM2610 and YM2612 sample playback.
* Added support for C6280, SN76496 and YM2203 sample playback.
* Automatically enable NES APU and Sega 32X channels in bad rips missing the enable commands.
* Assume default header size if header size read from file is invalid.
* Fixed off-by-one error in bounds check on PCM write.

-emumem: Fixed unmapped read values with subunits. [smf]

-mcr68: Mapped 6840 on lower data bits on all games - matches schematics for blasted. [smf]

-PSX GPU: Implemented textured dot rendering, transparent dots and line, and semi-transparent (STP) drawing. [smf]

-tandy1t.cpp: Improved keyboard simulation (improves behaviour in t100tx MS-DOS BASIC). [smf]

-zn.cpp: Hooked up Primal Rage 2 watchdog. [smf, coolmod]

-powervr2.cpp: Store different polygon types into separate lists, and ignore alpha value for opaque polygons. [snickerbockers]

-zsg2.cpp: Properly reset emphasis filter state at key-on (fixes popping in raystorm song 12). [superctr]

-nereid: Implemented palette read-back, and fixed save states. [Sven Schnelle]

-topcat: Implemented interrupts, cursor register read-back, plane enable, pixel placement rules, and other fixes. [Sven Schnelle]

-i8291: Set BO bit only if receiver is ready, fix MJMN bit, reset EOI flag when in TIDS, and implemented DCAS. [Sven Schnelle]

-voodoo_pci: Return different values for PCI configuration register 0x40 depending on GPU type (fixes MT06874). [Ted Green]

-coco12.cpp, coco3.cpp: Use CLEAR or CTRL as second shift, allowing more punctuation to be typed in natural keyboard mode.
[Tim Lindner]

-Re-wrote serial mouse emulation: [Vas Crabb]
* Simplified code and eliminated timers.
* Split Microsoft mouse into separate two-button (Microsoft), three-button (Logitech), and click wheel devices.
* Made Mouse Systems mouse behaviour better match early Mouse Systems models.
* Added "rotatable" Mouse Systems mouse support (untested due to lack of software).
* Added Sun mouse support, currently hacked to run at 9,600 Baud to work around a separate issue.

-Fixed issue where dual-screen systems could be incorrectly displayed with 4:3 aspect ratio. [Vas Crabb]

-neogeo.cpp: Dumped sp1-u4 BIOS from a US 4-slot MVS. [ack]

-seta2.cpp: Added P0-113A PCB layout and note about undumped version of Guardians using this board. [Brian Troha]

-vamphalf.cpp: Re-dumped Cool Minigame Collection (Italy). [caius, Brian Troha]

-suprnova.cpp: Verified PLD dumps. [caius]

-tumbleb.cpp: Improved documentation for tumbleb2 set. [ClawGrip, Roberto Fresca, Recreativas.org, The Dumping Union]

-namcos2.cpp: Dumped PLDs for rthun2j. [ClawGrip, Roberto Fresca, Recreativas.org, The Dumping Union]

-m72.cpp: Dumped PAL for rtype2j. [ClawGrip, Roberto Fresca, Recreativas.org, The Dumping Union]

-slapfght.cpp: Re-dumped getstarb1, updated ROM labels, and added placeholder for undumped protected PAL.
[ClawGrip, Roberto Fresca, Recreativas.org, The Dumping Union]

-valtric: Re-dumped text ROM vt_07.bin and corrected size. [ClawGrip]

-fmtowns_cd.xml: Dumped Branmarker 2 Extra Disc. [DamienD, Tokugawa Corporate Forums]

-Corrected and improved documentation in konamigx.cpp, konamim2.cpp, and wecleman.cpp. [f205v]

-f1superb: Changed title to match manual and title screen. [f205v]

-vegas.cpp: Updated flags to better reflect emulation status. [Hydreigon]

-Updated hiscore.dat for recent changes in MAME. [Leezer]

-ibmpc.cpp: Verified dump of 08/16/82 revision of IBM 5160 (PC/XT) BIOS. [MicroCoreLabs]

-digel804.cpp: Dumped Celectronic Berlin/Digelec Promicron 2000 programmer v2.3 BIOS. [MikeMcBike]

-chihiro.cpp: Brute forced security key for Quest of D Oukoku no Syugosya. [Peter Wilhelmsen, Morten Shearman Kirkegaard]

-vastar.cpp: Dumped PROMs for dogfightp. [ShouTime]

-Corrected metadata for Chess Challenge 2, Dirt Dash, and Heuk Sun Baek Sa. [sjy96525]

-taitogn.cpp: Removed redundant flag from Usagi. [sjy96525]

-Added abbreviated forms of some command-line options to documentation. [Wellington Uemura]
https://www.mamedev.org/index.php