- New games: Eeekk!, Miss World 2002 and Power Flipper Pinball Shooting
- New Working games: Tokio / Scramble Formation
- New Non-Working games: Knights of Valour 3 HD (V105), Multistar 3 and Royal Ascot II
- New clones: Flicky (128k Version, 315-5051, larger roms), Golden Crown Hopper (Dutch, Game Card), Knights of Valour 3 HD (V101), Knights of Valour 3 HD (V102), Knights of Valour 3 HD (V103), Knights of Valour 3 HD (V104), Mahjong Clinic (Japan, set 2), Momoko 120% (English text), Multi Wars (bootleg of UniWar S), The NewZealand Story (World, old version) (older PCB), Raiden (Korea, bootleg), Real Bout Fatal Fury / Real Bout Garou Densetsu (Korean release), Same! Same! Same! (1P set, NEW VER! hack), Sega Rally Championship - DX, Side by Side 2 Evoluzione RR (Ver 3.1 J), Simpson Junior (bootleg of J. J. Squawkers), Space Dungeon (larger roms), Steering Champ (GQ710 VER. UAA), Super Visual Football: European Sega Cup, Top Skater (USA), Turbo Force (US) and Virtua Striker 2 '99 (Step 1.5)
- New PEPlus games: Player's Edge Plus (XMP00011) 5-in-1 Wingboard (CG2298)
- New PinMAME games: Back To the Future (2.8), Lost in Space (1.01 France), Monday Night Football (2.9, 50cts) and X-Files (3.03 France)
- New drivers: pgm3.cpp and zwackery.cpp
- New devices: 74hct157, 74ls157, bitbanger, cd40105, dac76, ef9369, input_merger_hi, m68705_new, midway_serial_pic_emu, mm5837, null_modem, printer_image, pseudo_terminal, rs232_loopback, scc85C30, serial_keyboard, serial_printer, serial_terminal, sunkbd, sunkbd_adaptor and z80scc_channel
- ADSP21062 / SHARC CPU: Use standard memory maps
- ARM CPU: Fixed STR! with rd == rn
- COP400 CPU
. Added COP400 LEI opcode (reset L pins when EN2=0)
. Correct internal RAM memorymap
. Added L pins tri-state callback
- Dynamic Re-Compiling: Fixed XMM usage on x64 ABI, restores debugger functionality on Mac/Linux for DRC drivers (cpu\drcbex64.cpp)
- i960kb CPU
. Added scanbyte and IP-relative lda opcodes, masked low bits of branch targets. Removed printf.
. Preliminary support for CALLS instruction and WIP on FAULTx instructions
- M68020 CPU: Respect 68020 "freeze I-cache" bit; (MESS) 'Micro 20' 68020 cache test now passes.
- M68705 CPU: Start putting some 68705 functionality in the CPU core rather than copy+pasted in all the drivers. As this is a lengthy task I've created a derived CPU type with the new functionality to aid in the process without disrupting existing drivers that haven't yet been updated. Started with Alcon/Slap Fight, Guardian, Tiger Heli and Tokio / Scramble Formation.
- MB86235 CPU: Added preliminary recompiler, disable for now. Fixed PR updates.
- PowerPC 4xx/6xx CPUs
. Set DSISR to the DSI flags rather than the address on data access faults
. Fixed DSI flag bits. Alignment exceptions will need more complex mask/shift depending on the instruction's addressing mode, but that's a job for another time; at any rate it uses the LSBs of the DSISR register.
- TMS32025 CPU
. Use the standard memory interfaces
. Correct space of internal data maps
- TMS32051 CPU: Removed address_spacenum. That's an elaborate way to do a nop.
- DCS sound: Implemented proper ram bank switch for ADSP2181 systems
- Votrax SC-01 sound: Simulated device (gorf, qbert, qbertqub, reactor, sqbert, tylz and wow). Complete simulation of digital section based on die imaging. Plosives are still imperfect.
- 6840 PTM: Use standard device clock for internal clock
- 8155 RIOT: Attempt at fixing 8155 timer behavior so 8085 doesn't lose interrupts in Equites
- 8253 PIT: Reading back the count while in the middle of a 16-bit write returns a xor'ed version of the value written. Fixes (MESS) Apricot PC error 29.
. Fixed issue with 68000 byte writes to sector count by only taking the bottom 8 bits from the bus (machine\atahle.cpp). Note: Don't use mem_mask as ATA doesn't have an equivalent mechanism for byte accesses and it could mask out data that real hardware would keep.
. Fixed ATA Write Multiple (command c5) ignoring the block count on the first block (machine\idehd.cpp)
- Discrete Netlist
. Added simple ROM hookup capability
. Device additions: 74161 Synchronous 4-Bit Binary Counter with Clock. 7473 Dual Master-Slave J-K Flip-Flops with Clear and Complementary Outputs. Am2847 Quad 80-bit Static Shift Register. DM9334 8-bit Addressable Latch. 82S126 1K-bit bipolar PROM device. 74174 Hex D-Type Flip-Flop with Clear. 2716 16 Kbit (2048x8) UV EPROM. 74166 Parallel-Load 8-Bit Shift Register device. 74260 Dual 5-Input NOR Gate device. Intel 2102A 1Kbit (1024x1) Static RAM. 74365 Hex Bus Driver with 3-State Outputs. Generic 2- and 3-terminal Tristate device. Note: Tristate device and 74365 do not actually tristate, they are simply a way of combining multiple outputs + chip enables. Added 74165, 74194, 7475, 7485, DM9322, uA741 in 8-, 10- and 14-pin DIP variants (netlist\macro\nlm_opamp.cpp), 4316 bilateral switch pack, 82S126 4kbit (512x8) TTL bipolar PROM and 82S123 256-bit (32x8) TTL bipolar PROM.
. Added shared RAM pointer, for use by netlist RAM devices which need updating by non-netlist driver code.
. Various fixes: 7473: Made device only transition on a falling clock. 74161: Inverted Clear and Clock inputs to match datasheet. 74260: Fixed number of inputs. Am2847: Fixed shift register size (was 160 bits, should have been 80 bits). DM9334: Inverted C and E inputs to match datasheet.
. Added netlist-based video board emulation to (MESS) Hazeltine 1500
. Added inductor to netlist and some files to nl_examples. Fixed 74107 and 74107A timings to typical values. Leave more comments on differences between 74107 and 74107A.
. Added proper connection information for a number of chips to net_lib.cpp. This allows to parse and run (MESS) nl_hazelvid.cpp using nltool: nltool -t 1 -f nl_hazelvid.cpp
- Floppy: Added a configuration for disable the motor control when MO line is not connected (machine\wd_fdc.cpp)
. Changed a number of declarations to use std::string instead of 'const char *. Removed dead strncatz() function.
. Fixed a recently introduced error in the 'dir' command line command. Cleaned up the output of the 'dir' command.
- MC68230 PIT
. Improved reset, timer and port C behaviour. Fixed typo and removed uneeded counter in exchange for a more clear TIN pin clock update interface
. Added bitwise update methods for all ports and moved register access methods to private section
. Fixed bug in port A-C write and added check of DDR registers for bit updates
. Added initial support for timer interrupts and embryonic support for port interrupts
- Microtouch touch screen: Added output status command and fixed data transmission at 2400 baud (drivers\adp.cpp, cubo.cpp, magtouch.cpp, meritm.cpp, pcat_nit.cpp, tmaster.cpp and vlc.cpp)
- Polygon rendering: Added method triangles_drawn to get private member m_triangles (video\poly.h)
. Added 74LS157 Quad 2-Line to 1-Line Data Selectors/Multiplexers device
. Created new 74LS157 device and hook it up to MSM5205 on Rastan. Use 74LS157 device also in Disco Boy and yunsung8.cpp. 74LS157-ization in clones Pang (bootleg, set 3) and Super Pang (World 900914, bootleg) with working sound. 74157 updates (Pinball division): Added 74HCT157 device type alias. Hook up 74HCT157 in inder.cpp and spinb.cpp as per schematics. Changed device and macro names. Stylistic cleanups; avert potential crash in some drivers. This doesn't seem quite right by the schematics, but gives better sound.
- Z80 DART
. Set the vector status bits to 1 at eoi
. Only update serial line configuration if it actually changes. Allows the apricot serial port to work correctly.
- Z80 SCC
. Enabled more Rx interrupts and fixed FIFO error
. Fixed a regression FIFO bug and a bug in the handling of Special Interrupts. Clean up some of this double paren nonsense.
. Fixed loading of the colour proms for moonbase and moonbasea
. Fixed colors don't change at certain areas of the screen for each player's turn in a 2-player game of sicv, sicv1, invadpt2, invadpt2br, moonbase and moonbasea. It fixes also the ship colour (the score was already ok) of galxwars, galxwars2, galxwarst, ozmawars, ozmawars and starw1 (ID 06449).
- amusco.cpp: Added coin counter and dispenser
. Fixed incorrect colors in Space King 2 at certain areas of the screen (ID 06450)
. Added bonus sound to Kamikaze and Space King 2
- atarittl.cpp: Added a chip burn-down list, listing which chips still need to be emulated for Indy 4 and Stunt Cycle.
- atlantis.cpp, midzeus.cpp and seattle.cpp
. Updated Midway Zeus2 Video coordinate scaling and increased Z buffer to 24 bits
. Updated screen rectangle to keep Skins Game from crashing. Renamed UART ports in atlantis.cpp.
. Added hooks for serial communication (machine\midwayic.cpp)
- by6803.cpp, mcr.cpp, mcr3.cpp, mcr68.cpp and zwackery.cpp
. Identify DAC (-> AD7533) for Midway Cheap Squeak Deluxe/Turbo Cheap Squeak
. Moved the Cheap Squeak Deluxe sound board to its own file (audio\csd.cpp) and give it its's correct name. Updated CSD interface to better reflect real hardware, added address decoding PAL and verify memory map.
. Removed "Artificial Artist" board PAL from Zwackery, now included in the CSD device.
. Added fresh dump of the magnet system Exzisus disk. One sector different, fixes graphical glitches in first level. The Magnet System were being sold back in the day, so not protos despite the bugs.
. Further attempts to improve accuracy of 40105 FIFO emulation
. Parametrize constants used in debug command routines to support different bios/kernel versions. Moved threadlist debug command to Xbox.
. Enable clipping of vertices where w is negative. Updated w clipping and disable it since it still causes problems.
. Added method triangles_drawn to get private member m_triangles (video\poly.h)
. Added some debug checks and adjustments in graphics routines
- chihiro.cpp and triforce.cpp: Redumped PICs & documented S/Ns for Quest of D, Key of Avalon 2.x and Virtua Striker 4 Ver.2006 (Japan)
- darkmist.cpp and raiden.cpp: Added PCB notes
. Sound improvements for clone Automat (bootleg of Robocop): Reduced YM2203 speed to match music pitch on reference video. Added second MSM5205 + two 74LS157 and fixed communications. Added sound banking (probably not entirely correct).
. Don't apply H6280 decryption to sound Z80 in clone Secret Agent (bootleg). Incremental sound improvements.
- dec8.cpp: Added id8751h dumps to 'csilver' and 'srdarwin', not hooked up yet. Dumps look good, hookups appears to be slightly different to other games due to different main CPU and interrupt schemes, still investigating. These can probably be used for the japanese clones if the ID byte is changed to create a fake rom, as was done for the other sets in the driver.
. Added multiplexed inputs for clone Beaste Feastie and Dealer
. Dumped PAL10H8 for clone Beastie Feastie (conversion kit)
. EPOS decryption simplification WIP (machine\epos.cpp)
. Fixed OL gal display for Rettou Juudan Nekkyoku Janshi. Note: Hardware writes to a VRAM mirror for showing the OL gal.
. Added visible horizontal parameter to CRTC
- gaiden.cpp, spbactn.cpp and tecmo16.cpp
. Final Star Force
. Fixed the 'direct sum' of two ARGB colors (video\tecmo_mix.h). This corrected the wrong saturated colors in Level 2 (tank underwater,final boss).
. Added a video reference (https://www.youtube.com/watch?v=EXBTNk-0ejk) for the wrong background in the title screen.
. Fixed macro typo in video\tecmo_mix.cpp; renamed MCFG_TECMO_MIXER_BLENDSOUCE to MCFG_TECMO_MIXER_BLENDSOURCE. Corrected some sum_colors mistakes. Added extra parenthesis to std::min for sum_colors and removed 'extra spaces'.
- gkigt.cpp: Fill in RAM areas so all sets make it to polling vbl instead of crashing
. Created a Thomson EF9369 video device and use it for the driver
. Cleanup driver, hook up SN76489 ready signal, hook up some debug LEDs.
. Hook up PPI and ACIA. Label some outputs.
. Fixed and improved output labels, add ten up labels
. Cleaned up serial handling (machine\iteagle_fpga.cpp)
. Remapped service buttons to standard location. Connected CDROM and started adding RS232 communication ports. Removed leftover debug print.
- konamigx.cpp: Fixed CPU and sound CPU hanging on state load (video\k053246_k053247_k055673.cpp, sound\k054539.cpp and k056800.cpp)
- legionna.cpp, raiden2.cpp and seicupbl.cpp: Fixed palette dimming by respecting a fade-me-not bit (seibucop\seibucop.cpp and seibucop_dma.hxx)
- leland.cpp: Initial work towards save state support
- mcr68.cpp: Replaced 6840 PTM custom implementation with the standard one
- metro.cpp: Made sound output mono. None of these games are stereo.
- mitchell.cpp: 74LS157-ization in clones Pang (bootleg, set 3) and Super Pang (World 900914, bootleg) with working sound
- midwunit.cpp: Decapped and read out security PICs for Ultimate Mortal Kombat 3 (rev 1.2) and Rampage: World Tour (rev 1.3). Added proper PIC labels.
. M1COMM/M2COMM cleanups
. Make clone Wing War R360 (US) playable
. Guessing security PIC number of Shakatto Tambourine
. Dumped 253-5508-0364 from unknown NAOMI satellite game and 253-5508-0422J from Quest of D (some undumped newer version)
. Added Sega DIMM board architecture documentation
- peplus.cpp: Documentation update
- photon.cpp: Minor cosmetical cleanup, initial preparation for save state support.
- segag80r.cpp: Added "Return 0xffff" HACK for the current program counter while fetching the vector as the segag80r protection currently relies on it. Reduced the number of extraneous reads that the segag80r protection performs. This fixed most/all Sega G-80 sets resets itself during play (ID 06440).
. Dumped I8751 317-0078 at location C2 for parent set altbeast. Also renamed the mc8123 regions to 'mc8123' instead of 'mcu' because it was confusing.
. Dumped I8751 317-0123A at location C2 for parent set goldnaxe. Although I've had to added a dubious cycle steal change to prevent things from crashing, might need more testing / investigation / work with the PCB to verify interrupt sources and if there's a bus steal mechanism.
. Added dump of I8751 '317-0112 at location C2 to clone goldnaxe2. Chip was faulty, some bit errors and internal checksum fails. Still using simulation for now. The code looks to be mostly the same as the goldnaxe set, not even offset, but unused garbage areas have different fills so tracking down exactly which bits are bad is difficult, as they're not neccessarily all in the used code.
- slapfght.cpp: Start putting some 68705 functionality in the CPU core rather than copy+pasted in all the drivers. As this is a lengthy task I've created a derived CPU type with the new functionality to aid in the process without disrupting existing drivers that haven't yet been updated. Started with Alcon/Slap Fight, Guardian and Tiger Heli.
- srmp2.cpp: Fixed regression with ADPCM playback on M68k based games
. Documented 315-5649 IO chip and fixed Astra SuperStars test mode hang
. Fixed bad dumps in Choro Q Hyper Racing 5
. Redumped 'Print Club 2 2000 Summer' and 'Print Club 2 Vol. 8 Summer' using the heat-gun method to obtain valid dumps from fragile ROM chips
. Sound improvements for clones Altered Beast (Datsu bootleg), Mutant Warrior (Altered Beast - Datsu bootleg), Passing Shot (4 Players) (bootleg), Shinobi (Datsu bootleg, set 1) and Shinobi (Datsu bootleg, set 2). Hook up MSM5205 and 74LS157 on the 2xYM2203 bootlegs, all of which now have some imperfect samples playback.
. Correct clone Golden Axe (bootleg) sound system configuration (2x YM2203 (4MHz) and MSM5205 (384000 Hz))
. Added Taito M-Chip M-001 dump for Extermination. Also works for Dr. Toppel's Adventure and Plump Pop.
. Various driver refactoring
. Fixed MCU name in Plump Pop, and marked MCU as bad pending verification that it is the same which Dr. Toppel and Extermination use.
. Updated a slew of comments, added most missing pals as undumped, fixed some rom labels, added a chart of the different Taito/Seta PCBs covered by TNZS driver and the differences between each.
. Decapped, deprotected, dumped and hooked up the HD647180X MCUs for Vimana, Fire Shark and Teki Paki.
. Fixed DSWB reading in toaplan1.cpp (seems to be inverted when read by the MCU), also reverted changes to TJUMP jumper settings and inverted those as well on read, though it still seems to be a bit screwy for some settings. Vimana regions should work fine now.
. Fixed MSM5205 sounds. Simplified ADPCM write: No need for nibble swap.
. Inputs clean up. Implemented main irq_ack. Better names for tilemap vars.
. Fixed manufacturer in clone Cannon Ball (Yun Sung, vertical) (was "J" not "T"); also added 'Production' suffix.
. Use 74LS157 device
- 10-Yard Fight: Fixed flipscreen/cocktail mode offset (ID 04796)
. Added internal layout and connected microtouch to Magic Mask and Party Gras
. Added default NVRAM to cuckoou, dolphntru, incasunu, magimask, magimaska, minemine, partygrs, pengpayu, qnileu and wcougaru so the games come up in a playable state.
. Redumped clone Chicken (RHG0730-03, US) and Top Banana (0100550V, NSW/ACT), now passes checksum.
. mpu4vid.cpp: Updated mpu4vid to use Thomson EF9369 video device
- Amiga: Removed a couple of driver_data() calls
- Archimedes (aristmk5.cpp and ertictac.cpp)
. Make floppies work
. Fixed vblank timings in Acorn Archimedes and enabled partial updates, VIDC definitely needs a device rewrite at this stage plus ARM timings are quite off unsurprisingly (machine\archimds.cpp).
. Fixed Vertical Count Register and pixel clock timings
. Fixed sound double-buffering
. Fixed ertictac.cpp regression
- Beezer: Rewrote driver. Uses the standard 6840 PTM core for sound generation. New MM583 Noise Generator device. New DAC-76 DAC sound. Use resistor network values for colors. Use bankdev device for banking.
- The Berlin Wall: Fixed "Copy Board" error message in clones The Berlin Wall (bootleg?) and (Korea) (ID 00101)
- Bombjack Twin: Hooked up OKI6295 in clone Atom (bootleg of Bombjack Twin), needs banking and improved sound tempo. Adjusted dipswitches as per dipsheet.
- Burning Fight: Correct clone Burning Fight (prototype, ver 23.3, 910326) romlabels (thanks jackc) and added it to swlist (hash\neogeo.xml).
- Crystal Castles: Clarified input situation by assigning port conditions/names to the button inputs so they have proper default mappings between Upright/Cocktail (ID 06451).
- Disco Boy: Use 74LS157 device
- Double Dealer: Fixed flip screen regression and removed prefixes/suffixes
- Dream 9 Final: Set initial banking so Z80 doesn't run off rails
- Dynamite Duke: Replacing parent with the set having the latest build date. Also added build dates to the description for all games in driver.
- Equites: Use 8155 device. Attempt at fixing 8155 timer behavior so 8085 doesn't lose interrupts.
- Final Fight: Fixed clone Final Crash (bootleg of Final Fight) sprites not flipped when flipscreen is ON (ID 04921)
- Finalizer: Fixed flipscreen (ID 04922)
- Game Magic: Removed unnecessary file machine\cr589.h
- Ghouls'n Ghosts: Added missing PAL dump to clone Daimakaimura (Japan)
- Hana Awase: Fixed credits dipswitch does not work (ID 02855)
- Mustache Boy: Flip screen improvements. Fixed Y positions of flipped sprites. Implemented flip screen "Hard SW" as in Irem games. Correct polarity of all dipswitches.
- NBA Jam Extreme: Added 4th button
- Phoenix: Fixed cocktail mode displays incorrectly (ID 06452)
. Added missing sound ROM for U-boat 65
. 74157 updates (Pinball division): Hook up 74HCT157 in inder.cpp and spinb.cpp as per schematics
. Another attempt at improving accuracy of sound emulation in inder.cpp
- Rastan: Created new 74LS157 device and hook it up to MSM5205 on Rastan
- Shoot Out
. Added a note that the PCB has only one 12 MHz XTAL, derived all clocks by this value and replaced 'old style' screen parameters with MCFG_SCREEN_RAW_PARAMS.
. Removed m_bFlicker variable and used screen.frame_number instead.
. Fixed missing title screen music, fixed coin counter and simplified rom loading. Skipping hex values is not so strange for a BCD counter (that would be invalid for a decoder IC). Clarified the coincounter_w comment.
- Side Pocket: Fixed cocktail mode, added a note about the 'cooperative mode', implemented y scroll and added VRAM and CRAM mirrors. Small draw_sprites clean-up. Added a TODO node about possible unimplemented MCU simulation for "cocktail mode".
- Sky Robo: Fixed Sky Robo doesn't boot since MAME 0.154
- Sunset Riders: Some input port cleanup/simplification for Sunset Riders (4 Player) clones. All inputs mappable are shown in the Test Mode even if they are not used for that particular versions/cabinet type.
- Tail to Nose
. Added sound semaphore hookup, fixes random BGM lockups.
. Added alternative input method, selectable thru control panel dip-switch. Added DIP locations.
- Tokio / Scramble Formation: Dumped 68705 MCU and hooked up. Fixed MCU clock rate based on comments in driver (Games now playable).
- Turbo Force
. Better documentation for the Turbo Force sets
. Added correct and verified MASK roms. Fixed size for gfx rom U134 & U135 and added a redumped U180 sound rom at the correct size.
- Vapor Trail
. Fixed missing 'game over' animation and 'P3 coin' is 'Service Mode' dipswitch.
. Implemented main irq acknowledge. Note about the service mode DSW + game alignment.
- World Beach Volley: Added PIC16c57 dump. This gives partial sound. OKI banking setup for the game is incorrect in the driver so music doesn't currently play also I cleaned up OKI banking in the whole driver by using configured banking to make further work cleaner.
- Zombie Raid: Hook NVRAM, added calibrated default.
- Zwackery: Moved gamr to its own driver. It doesn't have much in common with the other games in the driver. Also clean up the implementation, make spriteram 8-bit, added some hardware info and button descriptions.
- Fixed rom names in aerofgt.cpp, dec0.cpp, momoko.cpp, neodriv.hxx, tnzs.cpp and zwackery
- Dipswitch fixes in mjcamera, mustache.cpp, nmk16.cpp and tail2nos
- Description changes of Coccinelle (bootleg of Lady Bug, set 2), Danchi de Quiz: Okusan Yontaku Desuyo! (J 001128 V1.200), The Double Dynamites (Japan 13NOV89), The Double Dynamites (US 13NOV89), Dynamite Duke (Europe set 1 03SEP89), Dynamite Duke (Europe set 2 25JUL89), Dynamite Duke (Japan 03SEP89), Dynamite Duke (US 25JUL89), Exzisus (EX 1.0, Magnet System), Flicky (64k Version, 315-5051, set 1), Flicky (64k Version, 315-5051, set 2), Flicky (128k Version, 315-5051), Flicky (128k Version, not encrypted), Grand Cross v1.02F, Lost in Space (1.01, Display 1.01), Mahjong Clinic (Japan, set 1), Metal Slug 2 Turbo (NGM-9410) (hack), Momoko 120% (Japanese text), The NewZealand Story (World, prototype) (older PCB), The NewZealand Story (World, unknown version) (older PCB), Sega Rally Championship - TWIN/DX (Revision C), Sega Rally Championship - TWIN/DX (Revision B), Super Visual Football: European Sega Cup (Rev A), Time Scanner (TS 2.0, Magnet System) and Xain'd Sleena (SC 3.0, Magnet System)
- Renamed (dynduke) to (dyndukea), (dyndukea) to (dynduke), (ladybgb2) to (ladybugb2), (sidebs2j) to (sidebs2ja), (srallyca) to (srallycdx) and (tnzso) to (tnzsoa)
. Make -console start console LUA plugin
. PLUGINS: Updated hiscore.dat
. Double-check key state before UI autorepeat, this fixed keyboard/gamepad game list selection jump every two games (emu\uiinput.cpp).
. Added an associative LRU cache with map-like behaviour to util\coretmpl.h. Use LRU cache in ui\selmenu.cpp so icons don't all need to be reloaded on scroll.
. Set default character for absent glyphs in uismall.bdf.
. Encapsulate many BDF and BDC handling details (emu\rendfont.cpp). Make file I/O 64-bit clean, check for allocation errors. More solid BDF parser with error messages and trace logging. Fixed heap smash when building bitmaps for BDF fonts. Extended BDC format to support high planes and default character. Render default character if glyph not found for BDF/BDC.
. Make bitmaps movable, allowing them to be used in vectors and emplaced easily.
. Another attempt at sorting File Manager entries
. Removed the magic bypass in emu\dimemory.cpp
. XML refactoring: Moved stuff to namespace util::xml. Scope down some enums. Split config load/save delegate types. Make config load take const so it can't mangle data.
. UWP (Universal Windows Platform): Added temporary signing key for MSBUILD support (uwp\mame_TemporaryKey.pfx)
. HLSL: Make hlsl\phosphor.fx persistence independent of frame rate
. MULTI-LANGUAGE: Update Catalan translation to 361t, 133u
. Overhaul of emu\devcb.cpp
. Allow stringing multiple callbacks together recursively. Chained callbacks will be read or written in sequence, and each can be configured with its own type and mask/shift/XOR parameters.
. Chained input callbacks cannot have overlapping masks (there's no such thing as a free multiplex). Chained output callbacks have no such restriction.
. Removed the constant parameter for the LOGGER callback type: It makes no sense for output, was always zero in existing usage, and is now unnecessary with callback chaining.
. Changed LOGGER behavior for writes to log the user-defined message only if the output as masked is nonzero. With callback chaining, this can be used to monitor when individual bits become active.
. Constant read callbacks can no longer have MCFG_DEVCB_XOR or MCFG_DEVCB_INVERT specified (makes no sense in this context).
. Added a MEMBANK callback type to allow output bits to be used for bank-switching.
. Added ASSERTLINE and CLEARLINE callback types that raise or lower an interrupt line if the selected bit of the written value is active. These are intended for where periodic or ready-pulse signals from devices are used to trigger IRQs that the CPU program will independently acknowledge.
. Added MCFG_DEVCB_BIT as shorthand for masking and shifting out an individual bit for a callback.
. Removed DEVCB_LINE_DISPATCH_. Where we're going, we don't need line dispatcher devices.
. Note: The incompatibility of compilers with regard to post-C90 printf string formats is shockingly bad. There seems to be no easy way to format a 64-bit value and please both gcc and clang, let alone MSVC.
. Fixed for -romident misattributing device ROMs to alphabetically first driver using them (mame\media_ident.cpp)
. Replaced a few debug asserts with friendlier error messages (makes validation less dangerous in debug builds) (emu\addrmap.cpp)
. Disable incremental linking for VS debug builds (scripts\genie.lua)
. Created DYNAMIC_API macros for dynamic bind helper classes. Updated name of DYNAMIC_API macros.
. Enable building projects that are separate of MAME but use same core and lives in separate git tree
. Detect if SOURCES file do not exist
. Don't crash on late binding if no object is actually needed (util\delegate.h)
. Added 'o' variants to memory debugging commands to request decrypted opcodes space
. I8086/I80186/I80286 CPUs: Updated disassembly if IP or CS are changed in the debugger. Also update IP & CS when PC or CURPC changes (currently using a simple algorithm that may need to be improved). Added HALT to debugger state, so you can break out of a hlt instruction. Don't change CS if new PC/CURPC is within the current segment on i86/i186. Fixed i286 PC/CURPC in protected mode.
. Lighten combo box list so that it's easier to read (debugger\debugimgui.cpp)
. Sort directory entries in mount dialog, as zippath_readdir() does not guarantee entries are in any particular order (debugger\debugimgui.cpp).
. Fixed uninitialised memory read as debugger command history and clean up a little
"Theory is when you know everthing but nothing works. Practice is when everything works but no one knows why.
In our lab, theory and practice are combined: nothing works and no one knows why."