SDL2 is now up to ver 2.0.7 release and 2.0.8 dev. The Raspbian Stretch changes we had to patch the source for have been included into the official source no so I’ve updated the tutorial to fix the process. I’ve also updated the utility library versions to the latest ones and removed the smpeg util library. It was only included because it was a requirement for mp3 support in the mixer library and that has been replaced by mpg123 in the latest version. The smpeg library hasn’t been updated since 2013 and no longer compiles clean.
Raspbian Stretch is here, Everything is shiny and new. Stuff that worked is broken, stuff that was broken now works, it’s all fun and games.
- I’ve removed the GCC6 tutorial, it’s no longer needed.
- The SDL2 Tutorial has been updated, you should definitely read it.
- The Compiling MAME page has been updated to reflect the new compile process.
- The old version of MAME for Raspberry Pi has been removed from the download page
Step right up, step right up, new version of MAME due imminently
Starting with MAME 0.177 the default compiler on Raspberry Pi (GCC 4.9.2) will no longer work. MAME needs a minimum of GCC5 to compile. My compiling MAME tutorial has been updated to reflect that. Compiling MAME on a Raspberry Pi is pretty easy. It’s been a supported compile target for a few revisions now. Just follow these instructions.
Raspbian Wheezy didn’t come with SDL2 installed, Raspbian Jessie comes with SDL2-2.0.2, a mere apt-get away.
New in SDL2-2.0.4 is a RPI video target that uses a hardware accelerated OpenGLES2 renderer for the frame buffer to speed up screen drawing. This is obviously something we want, especially if we are playing about with games or emulation. This isn’t packaged for us anywhere to install yet (it will be in Raspbian Stretch when it releases, but it’s not there yet)
As of the latest version, MAME now requires GCC 5 as a minimum to compile. Raspbian Jessie ships with GCC 4.9.2 which, at nearly 2 years old, is now just a little too stable. GCC 6.2 is considered stable so there seems no reason to not upgrade.
A new version of MAME is available and I have updated the Raspberry Pi build. Get it from my MAME page here.
Note: This month is the first month that the code modernization effort being undertaken by MAMEDEV has stopped MAME from compiling cleanly on a stock Raspberry Pi. MAME now requires GCC5 as a minimum to compile and three updated libraries to run the compiled code. I will be reworking the tutorial for building/installing MAME in the next few days to cover how to do this.
As a stop gap I have left last months MAME version available for download for those not happy to mess around with their Raspberry Pi build environments.
For those who are happy to mess about, here’s a clue… Debian stretch includes gcc-6 and g++-6 stable as standard, installing those will include the required libraries as well.
As an incentive to potential fiddlers; this months MAME appears to run between 5% and 10% faster than last months. I guess that’s down to the newer compiler!
The whatsnew.txt is reprinted below.
0.177 ------- MAMETesters Bugs Fixed ---------------------- - 00550: [Graphics] (atarisy2.c) apb: There is a graphics problem with your police car at the point you drive away from your starting square. (crazyc) - 01455: [DIP/Input] (segas18.c) lghost: Problem with crosshair (Pitou) - 05584: [Gameplay] (konamigx.c) rungun2, slamdnk2: during run mame produces several messages about unknown protection command (Tafoid) - 05823: [Core] (coco12.c) -ramsize does nothing for emulation although it does change the .ini file (Nathan Woods) - 06185: [DIP/Input] LIGHTGUNS: Aimtrak Dual Lightguns no longer properly detect (Pitou) - 06269: [Debugger] DEBUGGER: Unable to use any valid cheats while using debug (Ryan Holtz) - 06292: [Crash/Freeze] (victor9k.c) victor9k [cpm86]: Freeze with 'cpm86' disk (Curt Coder) - 06314: [Crash/Freeze] Fatal error - All sets using '-centronics p72' slot/option (Ryan Holtz) - 06315: [Crash/Freeze] Fatal error - All sets using c4023, c1526, mps802 devices (Ryan Holtz) - 06316: [Crash/Freeze] (pc1512.c) pc1512, pc1512dd, pc1512hd10: Use of 'ibm_mfc' slot option causes Fatal error (Ryan Holtz) - 06317: [Crash/Freeze] (pc1512.c) pc1512, pc1512dd, pc1512hd10: Use of '3c503' slot option causes Fatal error (Ryan Holtz) - 06326: [Crash/Freeze] (megadriv.c) megadriv, 32x and clones, some segac2.c sets: Selecting machine and game via softlist though internal menu results exception/crash (Osso) - 06328: [Crash/Freeze] Various ISA using machines: Crash/Exception at Initialization (crazyc) - 06330: [Crash/Freeze] (altos5.c) altos5: Crash/.Exception on start (crazyc) - 06331: [Crash/Freeze] (apollo.c) dn3500_19i, dsp3000, dsp3500, dsp5500: Crash/Exception on start (Osso) - 06332: [Graphics] (galaga.c) digdug and clones: Graphics from Tilemap 0 are missing (Osso) - 06335: [Interface] UI:: Input (general) selection menus do not display correctly or at all (Vas Crabb) - 06342: [Crash/Freeze] pc (pccga): System crashing while loading (crazyc) - 06343: [DIP/Input] (taito_l.c) plottingu: Coinage dipswitches are labeled incorrectly. (Tafoid) - 06349: [Gameplay] brapboys: MAME crashed when exiting game (O. Galibert) - 06352: [Crash/Freeze] (cps1.c) mbombrd, mbombrdj: Crash in demonstration mode (Osso) Source Changes -------------- -maygay1b: [David Haywood] * Fixed second set of lamps * Partially investigated MCU hookup -apple2gs.cpp: Redumped 341-0748 FE-FF ROM for the ROM03 Apple IIGS, confirming that 341-0748 and 341-0749 ROMs are identical. [Brian Troha] -mpu4.cpp: Added all known expansions as fragments for DRIVER_INIT. This will permit 'per set' configuration to make the games playable. [James Wallace] -naomi.cpp: Added all known Sega DIMM board firmware dumps. [TylerDurden67] -amstrad.cpp: Added pause button to GX4000. [Barry Rodewald] -debugimgui: Added images menu, with crude file select dialog, added very crude create image dialog. [Barry Rodewald] -ALTOS5: Fixed banking, all disks can boot. [Robbbert] -Renamed the arcade "sun" project to avoid conflict with the mess "sun" project [Robbbert] -Playmatic Pinball: All MPU-1 games working, plus other WIP. [Robbbert] -MK14: [Robbbert] * Fixed a memory bug. * Added paste facility, cassette, sound, and notes. -Pro-80: Added devices. [Robbbert] -Separated the LDP-1450 laserdisc player into its own device [James Wallace] -Added support for MPU4 layouts for games beginning with 'a', based on MFME2MAME conversion. CHR protection data is still not hooked up for many of these sets, so lamping behaviour is incorrect. [James Wallace] -Dumped Ferrari F355 Japan BIOS. [ShouTime] -Fixed TNZS ROM locations/labels [Brian A. Troha, Lord Nightmare] -hiscore.dat: updates [Leezer] -Various netlist fixes: [couriersud] * Minor include cleanup * Fixed a memory hole caused by assign operators * More C++ * Use noexcept in netlist code where appropriate -abc80x: Fixed ABC-838 disk image cell size. [Curt Coder] -c64: Optimized the 1541 bit read/write function slightly without noticable effect on driver speed, since the 2 CIA's are the current bottlenecks. [Curt Coder] -compis improvements: [Curt Coder] * Created a bus for the graphics card slot * Fixed keyboard * Promoted driver to working * Fixed RTC to use 24 hour mode -victor9k improvements: [Curt Coder] * Set floppy RPM after track step * Implemented hires graphics * Implemented display brightness control * Fixed keyboard line Y12 * Implemented SCP communications * Boots to CP/M and MS-DOS now - promoted driver to working -pofo improvements: [Curt Coder] * Implemented the A: credit card memory * Fixed the RTC * Added memory card slot interface and ROM/RAM cards -im6402: Reset receive/transmit registers after data frame is changed [Curt Coder] -wangpc improvements: [Curt Coder] * Fixed interrupt handling - boots to DOS now * Fixed keyboard error on POST -Fixed missing region report when DEVICE_SELF is used. [O. Galibert] -dirom: device_rom_interface for sound chips with rom/memory map alternative [O. Galibert] * Make robust for oversize ROMs -dirom,okim6295: Added/fixed banking support. [O. Galibert] -Preliminary VGM player (vgmplay) [O. Galibert] -kaneko_calc3: Stop trashing memory. [O. Galibert] -Fairlight CMI IIx driver: [Ryan Holtz] * Modernization of Phil's CMI IIx driver * Hooked up serial callbacks, alphanumeric keyboard now works * Fixed FDC DMA, QDOS now boots * Fixed MSM5832 RTC hookup * Hook up second floppy -vgmplay.cpp enhancement: [Ryan Holtz] * Added HuC6280, NES APU, Gameboy DMG, YM2203, YM3812, YM3526, AY-3-8910, Namco C352, Sega MultiPCM, Konami K053260, Atari POKEY and Oki M6295 support. * Added support for looping. * Added dual-chip support for AY-3-8910, YM2203, MultiPCM, and POKEY. -tv990/995: Added save state support and LPT port. [R. Belmont] -tv950: New redumps, fleshed out the skeleton, needs a CRTC expert to draw anything. [R. Belmont, Al Kossow] -ti99 improvements: [Michael Zapf] * Fixed stuck INT line in TMS9902 * Improved logging * Fixed missed CTS signal, outgoing RTS, incoming DTR * Fixed RS232 line mapping * Fixed debugger access to cartridge * Use proper RAM devices instead of ROM_REGIONS * Fix a problem with formatted disk images that do not match the expected file size * Fixed another issue with double stepping -ti99_dsk: Fixed issue with deleted data marks in FM. [Michael Zapf] -hdc92x4: Added 9224 emulation. [Michael Zapf] -Added PC-AT mode (still untested), some preparations for 9224 emulation. [Michael Zapf] -floppy: Improved floppy sound emulation with new sound samples. [Michael Zapf] -Funworld driver: Added technical notes to Inter Games poker. [Roberto Fresca] -Jolly Card (Austrian, set 2): * Added specs [Roberto Fresca, Team Europe] * Added GAL16V8S dump [Team Europe, caius] -Jolly Joker (Apple Time): Added technical notes. [Roberto Fresca] -Amatic multigames: Corrected technical notes. [Roberto Fresca] -alto2 improvements: [Juergen Buchmueller]: * Added speaker sound * Further cleanup and removed cruft * Get rid of the fake status display. Refactor mouse positioning code. * Removed extra screen buffer * Save copying odd/even frame scanlines by immediately updating bitmap * Fixed I/O memory read * Reduced frame rate (really 30 frames/60 fields per second) * Replaced decoded MIR bit fields * Removed member function pointers * Refactored videotiming, use attoseconds_t -apricot improvements: [Dirk Best] * Moved expansion bus to its own directory * Created bus interface for the keyboard interface * Made HLE keyboard emulation a bus device * Use device_buffered_serial_interface and device_matrix_keyboard_interface for the HLE keyboard emulation to reduce duplication and implement a FIFO * Added rtc support to keyboard -Keyboard/terminal improvements: [Vas Crabb] * Added base classes for HLE matrix keyboard and buffered RS232 device * Made generic keyboard/terminal more usable: configurable typematic delay/rate, selectable JIS/ANSI layout, handle simultaneous keypresses more intuitively, use meta to set high bit, configurable auto LF on CR, auto CR on LF and local echo, audible bell * Untangled Olivetti M20 keyboard from generic_keyboard, add notes, use physical layout * Untangled RM Nimbus keyboard from generic_keyboard aand fix -natural * Untangled x68k keyboard from generic_keyboard, improve key names, default mapping and typematic behaviour * Untangled QX-10 keyboard from generic_keyboard * Kept NGEN keyboard barely working -Rewrote srcclean to be cool with UTF-8, C++14 and Lua. [Vas Crabb] -Fixed UTF-16 encode, pass UTF-16 to Windows character drawing. [Vas Crabb] -Made path_iterator copy search path to fix use-after-free [Vas Crabb] -devfind improvements: [Vas Crabb] * Made object finders behave like pointers (not pointer/reference/ vector) hybrids * Removed some default argument values and dangerous accessors * Use single uniform class for object array finders, using real arrays to avoid double indirection * Use a format string to allow more flexible tag names in object array finders * Use template using typedefs to greatly reduce bolerplate code * Consolidated template instantiations speeding up the build * Added Doxygen comments to many key classes -Fixed cosmic.cpp and mpu4.cpp games that had too few tags passed to I/O port array finder [Vas Crabb] -dooyong.cpp: Video improvements: [Vas Crabb] * Mix two 4bpp tilemaps for the 8bpp layer in popbingo * Made ROM tilemap generator into a device, moving a whole lot of stuff from video start to machine config and removing trampolines * Changed tile/sprite ROM regions to be 16-bit to better match hardware * Represent 16-bit text layer block on Z80 games as a device * Split up state classes some more and use derived machine configs -Fixed regression: using IPT_START in sms makes mame think joypad 1 is occupied and inserts joypad 2&3 instead of joypad 1&2 [hap] -dotrikun improvements: [hap] * Much better video timing, but still shows glitches in ccovell's ROM * eat_cycles clamps to 0, adjust_icount does do what I intended * Try another method for video timing -gx4000: Don't use IPT_KEYBOARD for console pause button. [hap] -al520ex: Use correct key name for tvordiy znak. [hap] -hh_tms1k: Gamelist notes update. [hap] -hh_hmcs40: Added sag internal artwork (external artwork still recommended). [hap] -tlcs90: Fixed a nonsense check. [hap] -chessmst: Added reset and halt buttons. [hap] -champbasjb: Fixed MAME complaining about missing MCU device, correct romlabels. [hap] -lghost: Allow gun offset correction to be disabled. [hap] -tiamc1: Tilemap bit layers disable control. [MetalliC] -i8080: Fixed status callbacks during stack and IO access [MetalliC] -vector06: Improvements: [MetalliC] * RAM expansion emulated, MicroDOS and software works now * Fixed ROM cartridge address decoding, boots now * Changed to use KR1818VG93 FDC * Added "Sound Tracker" and "R-Sound" AY8910 sound * Added pit8253 sound * Fixed vblank interrupt generation -cv1k.cpp: Found and corrected bad bits in Pink Sweets U2 graphics ROMs based on comparison 4 dumped versions. [MetalliC, rtw] -aica: Added ADPCM diff value clamp based on encoder research. [kode54, MetalliC] -hp9845: Added correct character generator ROMs. [fulivi, A.Kueckes] -Use emumem.h defines whenever possible. [Giuseppe Gorgoglione] -gba: Reworked and simplified code. [Giuseppe Gorgoglione] -gba: First batch of code refactorings: [Giuseppe Gorgoglione] * Attempt at modernizing the code by taking advantage of C++ features -Made hiscore path configurable by ini file, fix .hi file path resolution. [stengun] -Fixed Gun#2 not working in MAME #618 [Pitou] -Fixed read case in kaneko_calc3.cpp and made kaneko_toybox.cpp safe as well. [David Haywood] -Various Seibu Refactoring: [David Haywood] * Air Raid, Street Fight and Dark Mist all use very similar video systems;this takes some steps towards allowing a common implementation * Street Fight and Cross Shooter use a common mmainboard wiht different Video Boards; makes video boards into devices to faciliate this -Put DM01 matrix board CPU inside device for BFM Sc2/4. [David Haywood] -Maygay M1A, MCU bones, commuication not hooked up yet. [David Haywood] -Fixed many MPU4 set descriptions: [David Haywood] * Identify and mark hacks * Associate sets with correct games * Treat Casino Bar-gain and Bar-gain as different games -Treat Sc2 DMD as screen, avoid tag lookups, add correct DMD ROM to some sets [David Haywood] -Maygay M1A/B partial fix for lamp mapping: [John Parker] * Fix the lamp mapping for the first half of the matrix * Fix typo and add comment to function that is intended to handle the second half of the matrix -Added layouts to Maygay driver: [John Parker] * These are generated, and will be updated as I MFME2MAME converter is improved, reels are transcribed, etc. * m1albsqp, m1apollo2, m1bargnc, m1bghou, m1bigdel, m1calypsa, m1casclb, m1casroy1, m1chain, m1cik51o, m1clbfvr, m1cluecb1, m1cluedo4, m1cluessf, m1coro21n, m1dkong91n, m1dxmono51o, m1eastndl, m1eastqv3, m1fantfbb, m1fightb , m1frexplc, m1gladg, m1grescb, m1hotpoth, m1htclb, m1imclb, m1infern, m1inwinc, m1itjobc, m1itskob, m1jpmult, m1lucknon, m1luxorb, m1manhat, m1monclb, m1mongam, m1monmon, m1monou, m1nhp, m1nudbnke, m1omega, m1onbusa, m1przeeb, m1retpp, m1search, m1sptlgtc, m1startr, m1taknot, m1thatlfc, m1topstr, m1triviax, m1trtr, m1ttcash, m1wldzner, m1wotwa -Added new Scorpion 1 layouts: [John Parker] * sc1barcd, sc1bartk, sc1cl65, sc1clbtma, sc1cwcl, sc1dblch, sc1pwrl, sc1sirb, sc1spct, sc1str4 -Scorpion 2: Added 12 internal layouts: [John Parker] * sc2ptytm1, sc2cpe, sc2casr2, sc2majes, sc2eggs1, sc2prom, sc2cpg, sc2copcl7, sc2town2, sc2suprz1, sc2heypr, sc2prem2 -Scorpion 4: Added 35x Layouts. [John Parker] -Scorpion 4: Added 73 Layouts. [John Parker] * sc4jack, sc4kalei, sc4knokb, sc4lirb, sc4lined, sc4lockb, sc4lkbcl, sc4mmmg, sc4mgr, sc4mtbb, sc4mtbclb, sc4monoba, sc4mondxe, sc4mr2rc, sc4motor, sc4mou, sc4nmtj, sc4nudita, sc4pacqpa, sc4paccl, sc4pstata, sc4pgold, sc4po8, sc4ppclb, sc4pipe, sc4plumb, sc4polic, sc4pony, sc4potsha, sc4pwrbq, sc4pwrsg, sc4pen1c, sc4qmodo, sc4quidrb, sc4rhxcsa, sc4rhxcl, sc4redsq, sc4rotc, sc4revod, sc4richl, sc4rttt, sc4roksc, sc4rogds, sc4rmo, sc4rtc, sc4srrca, sc4smk7, sc4slci, sc4solgl, sc4slihd, sc4sparkd, sc4sbust, sc4starpk, sc4strk, sc4sahed, sc4susk, sc4suscl, sc4s6cd, sc4taekw, sc4takcl, sc4tempt, sc4lions, sc4tic2, sc4tbana, sc4tload, sc4tpshta, sc4trail, sc4ttomb, sc4tridn, sc4tfclb, sc4vrgclb, sc4wldjkc, sc4xmarka -JPM IMPACT: Added 58 layouts. [John Parker] * j6aceclb, j6acehi, j6amdrm, j6arcadee, j6big50, j6bigbukc, j6bigtopa, j6bnkrcl, j6bnza, j6btbwd, j6camelt, j6casclaf, j6cascze, j6colcsh, j6cpal, j6crack, j6drdogh, j6euphor, j6ewn, j6fastfr, j6ffce, j6frtpot, j6gidogh, j6gldclb, j6gogold, j6goldgla, j6guabc, j6guabcl, j6hapyhrb, j6impulsc, j6indyi, j6kfc, j6kungfud, j6megbck, j6mono60, j6monst, j6montlkb, j6oxobin, j6quick, j6ra, j6redarwf, j6reelmn, j6rh6cld, j6rhchil, j6rico, j6rollerd, j6slagng, j6snakes, j6stards, j6swpdrp, j6tombc, j6topflg, j6twst, j6untch, j6vindal, j6vivark, j6wizardd, j6wldkng -MPU3: Added 39 layouts. [John Parker] * m3acech, m3autort, m3biggam, m3bigsht, m3blkhle, m3cabreta, m3chase, m3circle, m3cskill, m3cunlim, m3fortun, m3gcrown, m3gmine, m3lineup, m3loony, m3nnice, m3oddson, m3online, m3oxo, m3ratrce, m3razdaza, m3replay, m3rockpl, m3rollem, m3rxchng, m3sexcu, m3slight, m3snaphp, m3spoof, m3supadr, m3supnud, m3supspo, m3supwin, m3sweep, m3tfair, m3toplin, m3winagnb, m3winstr, m3xchngg -Scorpion 4: Mostly fixed 7-segment displays. [John Parker] -Maygay: Fixed input strobe order bug [John Parker] -Updated regenerated Maygay layouts; all now initialise OK. [John Parker] * Updated due to Converter bugfixes. -Maygay: Added/updated layouts: [John Parker] * Layouts have the new 'MFME2MAME Debug View' * Layouts have new fix (same as MPU4) for 'coin slot buttons' * Some reel lamp improvement for 5th reel * Added four new layouts -JPM MPS: Added 89 Layouts: [John Parker] * j2adnote, j2always, j2bankch, j2bigbnk, j2bigbox, j2blustr, j2cashbn, j2cashrl, j2cashro, j2cashrv, j2cashtk, j2coinsh, j2coppot, j2cprndx, j2criscr, j2crown, j2cshalm, j2cshcrd, j2cshfil, j2cshnud, j2cshsmh, j2cvault, j2droplt, j2ewn, j2ews, j2exec, j2fasttk, j2fiveal, j2fiveln, j2fqueen, j2frucnx, j2fullhs, j2fws, j2ghostb, j2gldchy, j2goldbr, j2hilocl, j2hinote, j2hiroll, j2hitmon, j2hotpot, j2hotsht, j2hypnot, j2jackbr, j2kingcl, j2litean, j2litnot, j2lovshd, j2lovsht, j2luckar, j2lucky2, j2maxima, j2missis, j2monblt, j2mongam, j2montrp, j2nolimt, j2notesh, j2nudbnz, j2nudfev, j2nudmon, j2nudshf, j2paypkt, j2penny, j2plsmnd, j2plsnud, j2pndrsh, j2rdclb, j2reelbn, j2reelbo, j2reelcz, j2reelmc, j2reelmo, j2silvcl, j2silvsh, j2sldgld, j2slvrgh, j2spcrsv, j2sstrea, j2stahed, j2supfrc, j2suprsh, j2supsft, j2supstp, j2suptrk, j2swbank, j2take2, j2trail, j2tstplt -JPM SYSTEM5: Added 21 layouts: [John Parker] * j5ar80cla, j5cira, j5fairp, j5firebl, j5hollyc, j5hotdoga, j5indsum, j5intr, j5movie, j5nite, j5palma, j5popeye, j5sizl, j5supbara, j5suphi, j5swop, j5term, j5topshp, j5trail, j5ujb, j5wsc -BFM DMD: Adjusted to more accurately match the colour of the real machines [John Parker] -Techno Drive improvements [superctr] * Fix H8 ADC inputs * Sub CPU seems to expect certain H8 SCI behavior, otherwise it locks up after a few minutes making controls unresponsive. * Bypassed 'COIN ERROR' at bootup by patching the sub CPU program * Swapped 'th1fl3l.12' and 'th1fl3u.13' and placed them at proper memory location (0x1800000) so game no longer crashes at Namco logo -namconb1: fix sound timing for some games [superctr] * fixes the sound tempo in nebulray, gslugrsj, gslgr94u and clones, and vshoot. -Byteswapped timecris sample ROM, remove MACHINE_IMPERFECT_SOUND flags for C352 games. [superctr] -Namco C352 improvements: [superctr] * Replaced C352 core with new one used in VGMPlay (fixes noise generation and sample interpolation) * Change clock frequencies for sub CPU and sound chip for System 12/23 drivers based on my research on the sound drivers, including a comparison between the ND-1 and System 12 drivers * Removed rear channels for systems that lack a second Sanyo LC78815M stereo DAC -kim1: RS & ST keys, input ports update: [Dagarman] * Hooked up the ST key and updated RS key function * Updated INPUT_PORTS to add numpad keys and better support pasting * Moved type definitions to kim1.h * Simplified kim1.lay coordinates -Documented 3 diagnostic menu bugs in the Vii's BIOS. [PressStartandSelect] -Fixed action on debugger 'trace'/'traceover' commands: [Nathan Woods] * 'trace'/'traceover' commands were registered as having three arguments, this fixes it so there are four arguments -Fixed some MC6847 low resolution video modes: [Nathan Woods] * Fixed a bug from where video data was sampled that could cause too many samples to be loaded in low resolution video modes * On the CoCo, this fixes some low resolution video modes used by Project Nebula and some other games -CoCo 1/2: Fixed configurable RAM sizes: [Nathan Woods] * Changes the 6883 SAM implementation to assume memory bank lengths smaller than available space are not mirrored -Made rom_entry a class that keeps copies of strings: [Nathan Woods] * Also introduce a POD tiny_rom_entry for static ROM definitions * C++-fiied code that iterates over rom_entry arrays -diimage refactoring: [Nathan Woods] * Changed device_image_interface::load() so that it doesn't load both images and softlist items * Remove vestigial has_been_created() API * Consolidated error code translation * Use std::string rather than C strings in more cases * Better encapsulation of format list * Better encapsulation of filename extension extraction -software list refactoring: [Nathan Woods] * Separation of software list data structure from runtime device * Use std::string rather than C strings in many cases * Standardized terminology for various concepts -Converted many NUL-terminated strings to std::string: [Nathan Woods] * Parameters to zippath and emufile * menu_software_list::m_filename_buffer -Check return value of CassetteLegacyWaveFiller.chunk_sample_calc() (this is just better error checking). [Nathan Woods] -Changed device_image_interface::determine_open_plan() to not create an image unless device_image_interface::create() is used. This fixes odd behavior where zero byte images could be created. [Nathan Woods] -Report Win32 ERROR_INVALID_NAME as osd_file::error::NOT_FOUND [Nathan Woods] -Fixed menu lag. [dankan1890] -Use required_ioport_array for multiple keyboards. [shattered] -ec1841: Adapted to new memory system. [shattered] -mc1502: Made serial test in BIOS work. [shattered] -poisk1, mc1502: Minor fixes. [shattered] -vt240: Fixed host comms when flow control is enabled. [shattered] -dvk_ksm: Fixed host comms, added PORT_CHARs to its keyboard. [shattered] -dvk_ksm: Dropped dvk_ksm01 variant and merged ROM sets; enabled tx to its keyboard. [shattered] -ms7004: Enabled serial rx and add PORT_CHARs. [shattered] -keyboard: Added F16..F20 keys (present on DEC terminals). [shattered] -isa_hdc: Implemented READSBUFF command (used by ec1841 diagnostics). [shattered] -Remapped "P1 Mahjong Score" to / key for OS X. [AJR] -New core input type: "Memory Reset": [AJR] * Resets settings/bookkeeping to system-provided default * The default key binding F1 -Designated more memory reset inputs in mahjong games. [AJR] -dynax.cpp: Regularized service inputs. [AJR] -Attempted to fix distortion with -refreshspeed and -audio xaudio2. [Calamity] -New stretching options (as suggested by Jezze): [Calamity] * New option -unevenstretchy (complementary to -unevenstretchx) * New option -autostretchxy, to automatically apply -unevenstretchx or -unevenstretchy based on source native orientation. -Warp mode for relative mouse on OSX SDL 2.0.4 (fixes Github issue #1232). [bradhugh] -sengokmj: Inputs refined based on examination of program code: [AJR] * All service inputs are momentary switches, not DIP toggles * Added unused SW2 DIPs as displayed in service mode * Added a couple of obscure inputs not shown in service mode -pwrkick, othldrby: Various improvements: [AJR] * Added NVRAM to Power Kick and Othello Derby; document the reset mechanism for the latter * Added ticket dispenser to Power Kick (seems to work for the most part) * Removed numerous bogus DIP switches * Thoroughly reconfigured coin inputs in Power Kick, adding counters and lockouts for all three (including the "Key In" input that really isn't) * More meaningful settings for the "Payout" DIP switch in Power Kick (based on program code) -skylncr.cpp: Improvements to almost all games: [AJR] * Use standard input mappings in all games except Sonik Fighter * Added working hopper outputs and payout buttons * Promoted mbutrfly to WORKING after solving the protection (the code wasn't encrypted) and add the button lamps internally associated with it * Decrypted bdream97, which is almost working now with obvious graphical glitches and some apparent input problems -kurukuru, ppj: Input/output improvements: [AJR] * Ticket dispenser now works * Corrected "Payout Mode" DIP settings * Corrected DSW1 settings in Pyon Pyon Jump * Renamed coin inputs and coin-related DIP switches and order by increasing denomination * Removed "Unknown" inputs that aren't actually used * Full character names only for Kuru Kuru Pyon Pyon * Reset button now mapped as "Memory Reset" * Random notes based on program code -Show color values in palette viewer: [AJR] * Move the mouse over a color rectangle to show index and RGB values * For indirect pens, index of the corresponding color is also shown * For colors in normal RAM-based palettes, the raw value in memory is also shown (does not currently work with most buffered palettes, and is incompatible with PROM-based or RAMDAC-based palettes) -Validity checking improvements: [AJR] * Always print the name of each driver with -validate -verbose before check to help detect crashes * Softlists get validated the first time, not every time but the first * Make address maps complain when entry bounds lie outside the global mask -Midway V-Unit imrprovements: [Risugami] * Added layouts for Cruis'n USA, Cruis'n World, and Off Road Challenge * Added wheel force feedback reference and made notes on other outputs * Finished implementing the Galil command communication * Finished implementing motion controller -Decrypted River Patrol (Japan), game now working. [MASH] -Fixed PROMs in Dribbling (dumped a Dribbling PCB with different PROMs). [f205v, MASH] -Added missing PAL dump to Green Beret (bootleg). [MASH] * Same PAL dump also in suprmriobl, drhl and ddragon6809a -Added video proms to Turkey Shoot and Mystic Marathon. [MASH] -Fixed arcade only build (cshooter.cpp changed to airraid.cpp). [MASH] -Added proper SMT Flash dumps to deluxe4u. [system11] -dynax.cpp: dumped color PROMs for Intergirl [f205v] -arkanoid.cpp: Cleaned up comments; updated notes about which MCUs are used. [Lord Nightmare] -Synchronise with PinMAME and add many new pinball sets [Osso] New machines added or promoted from NOT_WORKING status ------------------------------------------------------ Alto-II [Juergen Buchmueller] TeleNova Compis [Curt Coder] Atari Portfolio [Curt Coder] Victor 9000 [Curt Coder] Wang Professional Computer [Curt Coder] Vector 06c [MetalliC] Intergirl [f205v] Magical Butterfly (version U350C, protected) [AJR] River Patrol (Japan) [MASH] Techno Drive (Japan, TD/VER.B) [superctr] Select-A-Game: Baseball 4 [hap, Kevin Horton] Select-A-Game: Pinball [hap, Kevin Horton] New clones added or promoted from NOT_WORKING status ---------------------------------------------------- Compis II [Curt Coder] The NewZealand Story (US, old version) (older PCB) [CoolMod, The Dumping Union] Metamorphic Force (ver AAA) [Abelardo Vidal] Virtua Cop 3 (Rev B) [ShouTime, rtw] Air Gallet (older) [Artemio Urbina] Super Hang-On (Hang-On conversion, Japan, FD1094 317-0039) [Charles MacDonald, ShouTime] Deluxe 4 U (ver. 0107, 07/01/2000) [caius] Dealer's Choice (E4A1) [Brian Troha, The Dumping Union] Terminator 2 - Judgment Day (rev LG1 11/04/91) [Bicycle Repairman] OutRun 2 Special Tours (Japan) (Rev A) (GDX-0011A) [ShouTime, rtw] Casino Five (3315-02, U5-2B) [Brian Troha, The Dumping Union] Wangan Midnight Maximum Tune 2 (Japan) (Rev A) [ShouTime, rtw] Jolly Card (Austrian, set 2) [Roberto Fresca, Team Europe] Golden Tee '98 Tournament (v3.02) [Brian Troha, The Dumping Union] Gals Panic S - Extra Edition (Europe, set 2) [Hammy, The Dumping Union] Teenage Mutant Ninja Turtles (US 4 Players, version H) [The Iron Goat] Gulf Storm (Korea) [system11] Champion Base Ball (Japan set 3) [Siftware, MASH] Escape from Mars (bootleg of Lunar Rescue) [Siftware, MASH] New Zero Team (V33 SYSTEM TYPE_B hardware) [caius] New machines marked as NOT_WORKING ---------------------------------- CMI IIx [Ryan Holtz] Quest of D [f205v] Mobile Suit Gundam 0079 Card Builder [any, f205v, ShouTime, soyandroid, rtw] Mobile Suit Gundam 0079 Card Builder Ver.2.02 [any, f205v, ShouTime, soyandroid, rtw] Mobile Suit Gundam 0083 Card Builder [f205v, soyandroid] Mobile Suit Gundam 0083 Card Builder Check Disk [any, f205v, ShouTime, rtw] Mobile Suit Gundam 0083 Card Builder Ver.2.10 [any, f205v, ShouTime, soyandroid, rtw] Ring & Ball (?) [Hammy] The Key Of Avalon 2.5 - War of the Key (server) (Rev B) [ShouTime, rtw] The Key Of Avalon 2.5 - War of the Key (client) (Rev B) [ShouTime, rtw] Tandy/Memorex Video Information System MD-2500 [Carl, Sly DC] Select-A-Game: Space Invader 2 [hap, Kevin Horton] Unknown Inter Games poker [Roberto Fresca, Team Europe] Unknown Funworld A7-11 game 1 [Roberto Fresca, Team Europe] Unknown Funworld A0-1 game [Roberto Fresca, Team Europe] Multi Game I (unknown V2.4) [Roberto Fresca, Team Europe] New clones marked as NOT_WORKING -------------------------------- Jolly Joker (Apple Time) [Roberto Fresca, Team Europe] Jungler (Subelectro, bootleg on Scramble hardware) [Andrew Welburn] Unknown Funworld A7-11 game 2 [Roberto Fresca, Team Europe] Wangan Midnight Maximum Tune (Japan) (Rev B) [ShouTime, rtw] New WORKING software list additions ----------------------------------- pc98_cd.xml: added more disks + FM Towns hybrids [rzero9] fmtowns_cd.xml: new dumps [rzero9] coco_cart.xml: Switched 'cclimbra' to 'cclimber'. [Nathan Woods] pofo.xml: Dumped the File Manager/Tutorial card. [Curt Coder] New NOT_WORKING software list additions --------------------------------------- gba_ereader.xml: Animal Crossing Series 2 [Shideravan] Translations added or modified ------------------------------ Catalan [Jordi Mallach] Spanish [A.Viloria]
I’ve run benchmarks on a set of 150 games in MAME. I tried to pick a fair sampling of the classics and the more modern games, I even included a couple of obviously impossible ones. I do seem to have ended up with far too many CPS2 games though!
The benchmarks have been run on the Raspberry Pi Model B, The Raspberry Pi 2 and the Raspberry Pi 3. I ran them Normally and Overclocked.
Check out the results here.
MAME 0.176 is out, the changelog is reprinted below, you can get the Raspberry Pi and Apple macOS versions from HERE
MAMETesters Bugs Fixed ---------------------- - 06288: [Interface] UI:: Selecting "Category" after listing "Favorites" causes exception (Vas Crabb) - 06291: [Interface] (carpolo.c) carpolo: Unable to view recorded video made with -video bgfx/-window (Jezze) - 06286: [Misc.] (segaorun.c) shangon: Captured AVI video from this game shows only sound, no image (Angelo Salese) - 06263: [Interface] UI: Choosing any filter which has no data makes the UI unrecoverable (Maurizio Petrarota) - 06280: [Interface] PLUGINS: The plugin.ini file is created in the current folder when it should be created in the "ini" path. (crazyc) - 06279: [Interface] PLUGINS: pluginspath does not resolve $HOME (crazyc) - 06285: [Gameplay] (vendetta.c) esckids, esckidsj: Slowdowns in gameplay (Osso) - 06284: [Interface] Watchdog dialog is not able to be captured (cuavas) - 06246: [Graphics] (legionna.c) cupsocsb, cupsocsb2: Black screen (Angelo Salese) - 06268: [Crash/Freeze] MAME can crash when switching languages (Vas Crabb) - 06266: [DIP/Input] (seta.c) metafox: Bonus_Life DIPSETTING values and labels are incorrect (Tafoid) - 06262: [Crash/Freeze] All sets using SHARC drc: Crash when running DRC (Linux only?) (Ville Linde) - 06305: [Crash/Freeze] (atpci.c) at586, at586x3, ficvt503: Use of -kbd slot options 3270pc or pcat causes crash (crazyc) - 06304: [Crash/Freeze] (mac.c) macse30: Crash when attempting to use any slot option for -pds030 (Osso) - 06309: [Crash/Freeze] (mac.c) macsefd: Crash on Exit using -pds slot (Osso) - 05534: [Crash/Freeze] (pc8001.c) All sets in pc8001.c: Crash after OK (Robbbert) - 06324: [Crash/Freeze] (funkball.c) funkball: Fatal Error at Start (Osso) - 06323: [Debugger] (psikyosh.c) gunbird2, s1945iii: Crash when attempting to use -cheat (AJR) - 06313: [Crash/Freeze] (victor9k.c) Crash when using -fdc:5d:0 and -fdc:5d:1 slot with '525ssqd' option (Pernod) - 06312: [Crash/Freeze] (osborne1.c) Crash when using -mb8877:0 and -mb8877:1 slot with '525sssd' option (Pernod) - 06311: [Crash/Freeze] (myb3k.c) Crash when using -fdc:0 and -fdc:1 slot with '525sssd' option (Pernod) - 06281: [Crash/Freeze] astrocde [280zzap]: 280Zzzap/Dodgem Cartridge Resets (Duke) Source Changes -------------- -Scorpion4 7segment displays mostly fixed [John Parker] -Fixed coinage in Touchmaster 2000-8000 [MASH] -z80scc: fix dropped character problem for sun4_75, and fix edge cases where datasheet recommendations are ignored allowing sun3/sun4 to recognise keyboard and hk68v10 to work with correct SCC clock [Joakim Larsson Edstrom] -pc9801: fixed mouse buttons [rzero9] -coco3 improvements: [milliluk] * improve palettes and support alternate composite mode * GIME fix for scanlines in legacy graphic modes -m6809: Improve debugging support for 6809/6309 cpus [milliluk] -GNU/kFreeBSD support [stevenc99] -Add arch defines for Linux alpha and mips64el. [Jordi Mallach] -Take pkg-config path from env if defined [Bernhard Frauendienst] -Name Neo-Geo AES, NeoGeo CD and FM Towns Marty buttons [Shideravan] -Updated *nix man pages. [Cesare Falco] -poisk1: unbreak after "Memory fun", add B623 sound card (skeleton) [shattered] -r9751: Add save state support, document progress and clean up, add PROM version 4.2 [Brandon Munger] -ym2151, ym2413: Isolate, objectify, integrate [O. Galibert] -add Net-DIMM 3.03 firmware [letoram, gamerfan, Mark F., Smitdogg, The Dumping Union] -Netlist improvements: [Couriersud] * nltool now accepts -Ddefine=value to pass on to netlists * improved option handling and added "dummy" options to add grouping and examples in help output. * improved --cmd=listdevices output * Fix dynamic timestepping. This will work with breakout using real capacitor modelling instead of delay devices. Really slow, but very useful to calibrate timings. * Fix an awful bug in timing for delay devices. * Switched to clang 3.8 and made code compile with aggressive warnings. This exposed serious issues with implicit constructors. * Removed trampolines (OUTLOGIC, INPLOGIC and friends). * Started using doxygen comment and documentation style. Added doxygen files to documentation folder. * Refactored code triggered by doxygen output. * Moved internal and support classes into namespace detail. * Use an unordered map in parser. * Added iterators to pstring. * Moved two macros, added more RAII and improved exceptions. Fixed some bugs in parser code. * Fixed a number of bugs in parser code and exception handling. -Forte Card: Switched the ver 110 (spanish) to parent set since it's a newer version. Also cleaned up the driver. [Roberto Fresca] -Render module improvements: [Giuseppe Gorgoglione] * Direct3D HLSL: use aviwrite to record AVI movies * Cleanup patches for Direct3D renderer * BGFX: fix crash when bgfx effect folder is not present -Fixed priority issues in Legionnaire, Heated Barrel, Denjin Makai and Godzilla [Angelo Salese] -opwolf.cpp: fix all the gameplay problems by improving the c-chip protection simulation [Bryan McPhail] -Miscellaneous modernisation: [Nathan Woods] * File create and format refactoring, better name/path validation (with POSIX implementation from Vas Crabb) * Use string objects in in core_file static functions, menu items, strconv functions, image device extensions and softlist classes * Consolide default implementation of create_option_guide() * Filesel cleanup * Migrate softlist code from simple_list to std::list -Added crt-geom and crt-geom-deluxe shaders for bgfx including several aperture grille/shadow mask patterns (designed for RGB subpixel order) [Jeremy Green] -Added option hide ROMless machines from the availables list. [Maurizio Petrarota] -sun4 updates: * Added SPARCStation 1+, 4/110, and 4/4x0 ROMs [Al Kossow] * SPARC CPU core fixes [Ryan Holtz, Vas Crabb] * Preliminary counter/timer support [R. Belmont] * Separated sun4 and sun4c, started implementing unique original sun4 features. [R. Belmont] * Support both 8 and 16 context variants of sun4c arch [R. Belmont] * Improved original sun4 architecture support [R. Belmont] * Initial FDC hookup [Ryan Holtz] * Improved timers, logging - sun4_40 runs FORTH programs at ok prompt [Ryan Holtz] -Add high-level emulation of Sun type 3/4/5/6 keyboards [Vas Crabb] * U.S.A, Great Britain, Sweden and Japan layouts for Type 5 * Layout selection settings for Type 4 and Type 5 * Identification selection for type 4 * Adaptor for connecting to RS-232 port representing level translator * Hook up to sun3, sun4 and sun4c -zeroteam: improve sprite/sprite priorities [AJR] -feversoc.cpp: Hook up EEPROM; remap buttons, hook up lamps and serial RTC [AJR] -denjinmk: hack sound comms to work without ROM patch [AJR] -vt100.cpp: Add the older vt102/vt131 romset to the vt131 driver as another bios set [Lord Nightmare, Al Kossow] -Corrected many Mahjong dip switches and settings [system11] * Fixes for: Mahjong Focus, Nozokimeguri Mahjong Peep Show, Mahjong Fantasic Love & Ojousan * Various Video System Mahjong dip switches -Final enhancements to HP TACO driver [fulivi] -Further IRQ passthrough cleanup [AJR] * Remove irq_line methods from M6502, M6800, M6809, S2600 and replace uses with DEVCB_INPUTLINE * Remove a few IRQ passthroughs from spiders.cpp * Add several aliases for M6800_IRQ_LINE -Increase uismall.bdf coverage: [Vas Crabb] * Complete coverage of Latin Extended-A, most of Latin Extended-B * Monotonic Greek * Full ISO-8859-5 Cyrillic, many other Cyrillic characters * Half-width katakana * Some IPA Extensions -UI refactoring: [Vas Crabb] * Move most main launch menu stuff out of the base menu class * Move some common code from selgame and selsoft into selmenu * Eliminate the troublesome static members in ui::menu * Eliminate some function statics * Move palette menu drawing code out of base into palette menu class * Use std::bind, references where nullptr is unacceptable, and const where appropriate * Improve encapsulation of class members * Reduce repeated string allocation in audit code * Don't play so fast and loose with integer types * Eliminate some expensive deep copies of vectors/maps * .h -> .ipp for things that aren't really headers * Remove members that have lifecycle associated with operation -DPS1: system boots up, working [Robbbert] -bankdev: pass through the debugger flag from the incoming space argument [R. Belmont] -Apollo changes: [Hans Ostermeyer] * Keyboard mapping adjusted to fit current MAME * Fixed screen raw parameters * Fixed disp.dex Test 20 (Video SYNC Gen. Add. Test) for color displays -3c505: The Ethernet frame check sequence is now appended to transmit data [Hans Ostermeyer] -input_common: fixed 0.172 regression for non-US keyboards [Hans Ostermeyer] -fix item hilighting in debugger state view when scrolling [Vas Crabb] -Introduce validity checks for RGB utilities and fix bugs uncovered [Vas Crabb] * Fix rgbvmx on Linux ppc64 and ppc64le targets with GCC 5 * Added several missing functions to rgbgen * Fixed logical shift right in rgbgen * Fixed sra that should be sra_imm in rdptpipe * Added some simple SSE4.1 optimisations in rgbsse * Re-organised rgbsse, rgbvmx and rgbgen to be in more logical order * Fixed return type on some modifying operators * Made some more reference parameters const * Removed inline qualifier from a number of methods as it's implied when body is present at declaration * Mark some constructors explicit -null_modem: rtscts flow control + relevant fix to i8251 [shattered] -Updated driver with new information related to ID and gamelist for tourvis.cpp [system11, Tafoid] -Fix archimedes disk format [O. Galibert] -apple2: don't allow debugger to trigger slot switching [Peter Ferrie] -tiamc1: Kot-Rybolov implemented sound, documentation updates [MetalliC] -Tia-MC1 driver: Added support for KR580VV55A parallel peripheral interface (clone of i8255), added technical notes about some odd behaviour with some ports, listed the specs of Kot-Rybolov hardware, and added all clocks via #define. [Roberto Fresca] -amstrad: fix undocumented mode 3. [Barry Rodewald] -bbc: added monitor configuration (Colour, B&W, Green, Amber) and preliminary slots for expansion [Nigel Barnes] -Flaming 7's, original custom hardware improvement: [Roberto Fresca] * Reverse-engineer protection to bypass the requested serial number. The iButton device still needs to be hooked. Promoted these games to working with their correspondent flags. * Added tech notes, comments and instructions to boot the machine for first time. -Flaming 7's, Taiwanese hardware: Reverse-engineer protection to bypass the requested serial number. The iButton device still needs to be hooked. Promoted the game to working with its correspondent flags. Added technical notes. [Roberto Fresca] -hiscore.dat: Updates [Leezer] -alto2: Hunting the jiggly cursor bug [Juergen Buchmueller] -chihiro: added 837-13551 jvs input device, completed the communication with jvs devices through usb [Samuele Zannoli] -chihiro: game crtaxihr "Crazy Taxi High Roller (Rev B)" boots too [Samuele Zannoli] Translations added or modified ------------------------------ Chinese (simplified/traditional) [YuiFAN] Greek [BraiNKilleRGR] Japanese [Vas Crabb] Portuguese (Brazil) [Ashura-X] New machines added or promoted from NOT_WORKING status ------------------------------------------------------ Swing Gal [BET] [system11] Player's Choice (M4C1) [Blair Quinney, The Dumping Union] Gorodki [shiru8bit, IgorR76, '15kop' arcade museum] Kot Rybolov [MetalliC, shiru8bit, IgorR76, '15kop' arcade museum] Flaming 7 (Custom Hardware, Main, 50 Bonus) [Roberto Fresca] Flaming 7 (Custom Hardware, Main, 500 Bonus) [Roberto Fresca] Flaming 7 (Custom Hardware, Main, 2000 Bonus) [Roberto Fresca] Flaming 7 (Custom Hardware, Egyptian Gold, 2000 Bonus) [Roberto Fresca] Flaming 7 (Taiwanese Hardware, unknown version) [Roberto Fresca] TeleVideo 990 [R. Belmont, Al Kossow, Carl] TeleVideo 995-65 [R. Belmont, Al Kossow, Carl] Rainbow-100B [Bavarese] MBC200 [Robbbert] New clones added or promoted from NOT_WORKING status ---------------------------------------------------- Beastie Feastie (Epos Tristar 9000 hardware) [The Iron Goat] Raiden Fighters 2 - Operation Hell Dive (Japan set 3) [IronGiant] LTM Portable (B+) [Nigel Barnes] LTM Portable (Master) [Nigel Barnes] Bubble Trouble (World, Rev B) [Alex Cmaylo, The Dumping Union] Sensory Chess Challenger 9 (set 2) [anonymous] Operation Thunderbolt (World, rev 1) [Muddymusic, The Dumping Union] Digital Equipment Corporation VT240 [Carl] Elektronika MC7105 [Shattered] Intergirl [f205v] New machines marked as NOT_WORKING ---------------------------------- Tomy Prin-C [TeamEurope] Datamax 8000 [Robbbert] New clones marked as NOT_WORKING -------------------------------- BT Merlin M2105 [Nigel Barnes] New WORKING software list additions ----------------------------------- pc98_cd.xml: Final batch of additions [rzero9] pce_tourvision.xml: Added a number of new dumps (15) [system11, Tafoid] poisk1_flop.xml: Added basic softlist [shattered] New NOT_WORKING software list additions --------------------------------------- gamate.xml: Volcano Panic [Juan Felix Mateos and Mr. Postman] gamate.xml: Hot Hero; Baseball [Peter Wilhelmsen] gba_ereader.xml: Starting work doing the GBA e-reader software-list [Shideravan]