0.183
- New games: Dodge Man, Flash Boy (DECO Cassette), Galaxy Games StarPak 3, Omega and Sega Sonic Cosmo Fighter
- New Working games: Donkey Kong 3 (bootleg on Ambush hardware) and Gallop Racer 2
- New Non-Working games: The King of Fighters XII (v1.00), KOF Sky Stage (v1.00J), Mega Card (Ver.0210, encrypted), Star Horse 2001 (satellite, Rev B) and Tsukande Toru Chicchi
- New clones: Dungeons & Dragons: Shadow over Mystara (Japan 960223), Gals Panic S2 (Europe), Gamshara (World, 10021 Ver.A), Head Panic (ver. 0702, 02/07/1999), The King of Fighters '99 - Millennium Battle (Korean release), Missile Attack, Momoko 120% (bootleg), Mouse Trap (version 2), The Pit Boss (2214-07, U5-0A), Puzznic (US), Red Hawk (Greece), Speak & Help, Street Fighter EX2 (USA 980312), T.T. Defender, Virtua Bowling (Hong Kong, V101HJS), Virtual On 2: Oratorio Tangram (Revision A), VS Block Breaker (Europe) and Zen Nippon Pro-Wrestling Featuring Virtua (T 971123 V1.000)
- New AGEMAME games: Dolphin Treasure - Cash Express (AHG1606, US), Dragon's Eye (0100521V, NSW/ACT), Golden Pyramids (0100878V, Victoria), K.G. Bird (0200024V, NSW/ACT), Margarita Magic (EHG1558, US), Panther Magic (0100716V, NSW/ACT), Penguin Pirate II (0100869V, Victoria), Pet Shop (0100731V, NSW/ACT), Phantom Pays (0500005V, NSW/ACT), Q.T. Bird (0500009V, NSW/ACT), Toucan Tango (0100782V, NSW/ACT), Winning Post (RHG0418-04, US) and Wizard Ways (0200396V, NSW/ACT)
- New PinMAME games: Amazon Hunt III (rev. 1, French), Arena (French), Arena (German), Bad Girls (French), Bad Girls (German), Big House (French), Big House (German), Bone Busters Inc. (German), Bounty Hunter (German), Diamond Lady (French), Diamond Lady (German), Excalibur, Excalibur (German), Genesis (French), Genesis (German), Gold Wings (French), Gold Wings (German), Hollywood Heat (French), Hollywood Heat (German), Hot Shots (French), Hot Shots (German), Mars - God of War (Prototype), Monte Carlo (Pinball, French), Monte Carlo (Pinball, German), Monte Carlo (Pinball, rev. 2), Raven (German), Robo-War (French), Rock (German), Rock Encore (German), Rollergames (AD-2) Prototype, Rollergames (LF-2) French, Rollergames (LF-3) French, Spring Break (French), Spring Break (German), Tag-Team Wrestling (German), TX-Sector (French), TX-Sector (German), Victory (Pinball, French) and Victory (Pinball, German)
- New drivers: galgames.cpp and konmedal.cpp
- New devices: cesblit, dac08, dac0832, galgames_slot, pic16c56, starpak_cart, tmp87ph40an and ymz284
- ARM7 CPU
. ARMv5 addition. Added support for the second BLX form for ARMv5, and fix behavior of second BLX form in THUMB.
. Further fixes for ARM
- Dynamic Re-Compiling: Fixed long-standing copy/paste error (cpu\drcbec.cpp)
- M6805 CPU
. Added skeleton M6805 CMOS devices
. Added M146805 and M68HC05 to unidasm
. Made opcode tables configurable in m6805_base_device, provided tables for HMOS, CMOS and HC families.
. Implemented MUL instruction, made unimplemented STOP and WAIT raise fatal error.
. Added skeleton MC68HC05C4 with RAM and ROM in correct locations in memory map
. Fixed disassembly of BIT opcodes. Don't burn cycles on disabled interrupts. Added partially implemented MC68HC05C8 and MC68HC705C8A. Implemented 'HC05 digital I/O, timer/capture/compare and COP watchdogs. Probably still some bugs in 'HC05 peripherals.
. Implemented M68HC05 edge-sensitive external interrupts in MC68HC05
. Clean up bih/bil handling
- M68705 CPU
. Dumped MC68705R3 for clone Bouncing Balls (Adult). Hook up protection MCU in clone Bouncing Balls (Adult), added to parent set as BAD_DUMP. Note: Uses a similar scheme to Pushman, but doesn't use port D on the MCU, and uses the same endianness for MCU reads/writes (Pushman swaps the bytes on writes). As an aside, Bouncing Balls has at least partial nudity in it as seen in attract mode, although less than clone Bouncing Balls (Adult).
. Confirmed MC68705R3 bootstrap program matches Bouncing Balls (Adult) M68705R3
. Fixed problem with edge case in 68705 timer overflow interrupt. This fixed the missing enemies in the second stage of Xain'd Sleena (ID 06499).
- PIC16C5x CPU
. Fixes for writes with the status register as destination: Write all bits except TO and PD, thus enabling e.g. bcf, bsf or clrf to change the flags. rlf and rrf must update the flags after the store to work correctly on this register.
. Small update, correct savestates.
. Added PIC1650 and PIC1655 devices. Removed unused MCFG_PIC16C5x_T0_CB callbacks.
. Added RTCC pin (not called T0, plus it was implemented in reverse). Made RTCC (aka T0CKI) pin an inputline handler. Added alias for RTCC pin (Note: In the mid-90s RTCC was renamed to T0CKI).
. Fixed RTCC clocking in sleep mode and potentially clocking it too fast
. Added basic support for the old GI PIC1650 and PIC1655
- SH-4 CPU: Fixed FMOV* opcodes. Note: Half of FPU was not correct. Fixed formatting.
- T11 CPU: HALT opcode jumps to fixed restart address with PSW=0340
- uPD7807/7810 CPUs: Replaced fake I/O space with callbacks
- C352 sound
. Implemented volume ramping behavior and confirmed with recording of real hardware (Tekken 3)
. Rewroted mulaw algorithm. This is not quite perfect yet but is closer to recordings and sounds a bit clearer (example: Time Crisis).
. Use word swap macro for C352 sound rom in Armadillo Racing and Prime Goal EX. Reverted Time Crisis byteswapped C352 rom in 0.177.
- ES8712 sound
. Working sound and music in Last Bank
. Added busy status read and notes on device
. Added a reset line callback for the ES-8712. This will be used to reset the MSM5205/MSM6585 when the implementation is rewritten to use those devices. For now, it's used for IRQ generation in vmetal, whose program seems to use a separate gate to prevent unwanted IRQs when the device is reset (gcpinbal appears to do the same with a rather subtle difference). Removed the probably bogus and already unused auto-repeat feature from the ES-8712 device. All known games that loop samples do so by status polling or IRQs.
- SAA1099 sound: Use the correct LFSR polynomial for the SAA1099 noise generation and added some notes about an unemulated undocumented feature of the noise clock.
- ATAPI/SCSI: Added Play Audio MSF (0x47) command, used by Another CD Player and Astrocounter of Crescents (machine\t10mmc.cpp)
- 6522 VIA
. Updated LOG messages to latest cut and added some new
. Fixed 50/50 duty cycle for T2 and O2 driven CB1 shift IN & OUT on CB2
. Added stop of device_timer when going from internaly to externaly clocked shift modes. Fixed so shift out and in flank is not controlled by pcr in accordance with datasheet. Added missing final and leading flanks when shifting out and in respectivelly.
- Discrete Netlist
. Added infix notation parsing to the function parser
. Netlist refactoring
. Refactored netlist pmf code
. Small optimization for diode calculations
. Minor refactoring across the board
. Removed virtual from some destructors and make them protected
. Various cleanups
. Small performance improvement
. Fixed some inconsistencies
. More C++ refactoring. Fixed netlist code generation. Fixed compile on some unknown compiler(netlist\plib\pstring.cpp) and Visual Studio (plib\pfunction.cpp). Cleanup of includes.
. Fixed warning about non existing memory space when netlist is used as an additional cpu.
. Fixed bug which caused (MESS) Hazeltine 1500 to crash
. Reduced overhead to load data (roms) in netlist significantly. The previous solution involved a significant amount of redundant replication of information and objects. Now, a rom name specified as SOMEROM(x21, "romlabel") will automatically be loaded from region "netlisttag:romlabel". Examples are (MESS) Hazeltine 1500 and Stunt Cycle [TTL].
. Fixed a hidden bug in the GMRES solver and more optimization
. Logging enhancement: For netlist device debugging one can now use #define LOG(...) log().info(__VA_ARGS__) to use debugging and the known #define LOG(...) do {} while (0) do disable debugging on device level. To avoid bitrot one could as well use #define LOG(...) log().info.log(__VA_ARGS__) and #define LOG(...) log().info.log(__VA_ARGS__). The later disables debugging. If the compiler can assume that there are no side effects from e.g. using foo(a/b), 'LOG("abc {1:04x}", foo(a/b));' should be completely optimized away. Log channels available are info, verbose, warning, error and fatal. Don't use debug, it is enabled only on specific debug builds. Use would be e.g. LOG("abc {1:04x}", 2); The format specifier in the string are enclosed in "{}". "{2}" is the second parameter after the format string. Types are determined automatically. "{3:04x}" would format a number as a hexadecimal with 4 leading zeros.
. Rewroted mat_cr_t to include data as well. Fixed some bitrot in other parts. Simplified solver creation.
. Separated include file usage for netlist. Device implementations (all cpp files in netlist/devices) now should only include nl_base.h. Netlist implementation sources should only include "net_lib.h". Refactored netlist.h and netlist.cpp to avoid namespace congestion in netlist.h. Fixed VC2015 build.
. Fixed crashes on terminals without nets (i.e. connected to a rail). Reviewed "FIXMEs" and corrected some minor ones. Made m_cur_analog protected. Fixed pmf delegates to work with MSVC. More optimizations to the solver code. Started work on a better signal pipeline in nlwav. Only generate documentation for entities which are documented.
. Some documentation work. Set default models for devices missing them. Fixed standalone makefile to work in mingw environment. Doxygen work. Added constexpr and noexcept. Fixed 9322.
. It is now possible to have multiple handlers per device for updates. This will make device implementation more flexible and faster. A nice side-effect is that there was some minor (<5%) performance increase already. Each input is now assigned a notification handler. Currently this is update, but going forward this may be a custom handler. In addition: Fixed MEMPOOL on OSX. Removed dead code. Avoid bit-rot. Added delegate support for emscripten and arm processors. Added delegate support for VS 2015 x64.
. Explicitly #include C++ headers for features use
. Make sure netlist includes are not found directly on include path. Instead, they have to be prefixed by "netlist/". Removed unneeded link librariers for nltool and nlwav along the way.
. Make windows builds of nltool and nlwav understand unicode. nltool and nlwav now use wmain, i.e. UNICODE main on windows. Reorder include order to comply with best practices.
. Added state saving and loading to nltool. Save states are needed for regression tests going forward.
. Added standalone VC2015 build file in lib\netlist\build. This was the last platform without standalone compile. Sure needs more attention, grateful for any help.
. Moved inline constructors from header to cpp. Moved from cstring to std::copy and friends.
. Optimized 7493 device. Gives some 5 to 10% improvement to Pong. 7493 also is an example on how to use multiple handlers on a device makes design easier.
. Reworked Netlist truthtables: Moved 9312 and 74279 to TTL macro library. Renamed TTL_9312_* to DM9312. This is more appropriate. Fixed a number of warnings from latest Ubuntu Clang-5.0.
. Added 74164 (8bit parallel output serial shift register). Added BCD display netlist for (MESS) Prodigy chess computer.
- Floppy: Propagate CRC error flags (CRC_ERROR_IN_ID_FIELD and CRC_ERROR_IN_DATA_FIELD; formats\dsk_dsk.cpp)
- HuC626x video
. Fixed YUV colors, added palette offset and HuC6261-A mixing, fixes (MESS) NEC PC-FX boot screen graphics & colors.
. HuC6272 "King" clean-ups and identify SCSI registers
. Added stub HuC6271 device for (MESS) Rainbow
. Added full pad inputs, some register hookups in HuC6272 "King" and fixed few bit mistakes. Added SCSI interface to "King" device.
- MC6845 CRT
. Scroll fix for (MESS) Osborne-1 (Nuevo Video)
. Fixed scanout. The device should not try to scan-out more lines than has been programmed into the 'visible' register.
- MC8123 encryption: Make code a bit more readable
- Namco Custom: Register internal Namco C148 stuff to save state
- TMS9927 video: Modded TMS9927 to allow for driver-specific overscan areas. Aligned (MESS) STIC video and TMS9927 graphics properly. Changed (MESS) intvkbd to use generic TMS9927 support.
- 5clown.cpp, bzone.cpp, gekisou and qix.cpp: Correctly assign service buttons (ID 06470)
- aerofgt.cpp: Cleaned up audiocpu rom loading, avoided some tag lookups, thus minor speed up.
- aleck64.cpp
. Added PIN64 logger class (video\pin64.cpp). Treat commands as blocks, 50% file size savings for PIN64 captures.
. Make N64 RDP use uint64_t types for commands
- ambush.cpp
. Rewrote driver. Use tilemap system to draw background/foreground characters and use generic gfx_8x8x2_planar layout.
. Added mario and dkong3 bootlegs running on extended hardware (color PROMs for those haven't been dumped, using the PROMs from the original currently)
. Updated and correct dipswitches. Documented tile attribute RAM and sprite RAM layout bits.
. Use screen raw parameters. Added connector layout. Updated TODO list and ROM filenames.
- aristmk5.cpp
. Moved the GAME definitions for the known bad dumps to their own section for easier reference if somebody wants to track those specific versions down for redumping. Tidy comments. Added region info.
. Rearranged controls to be more playable and added PORT_NAMEs
- asteroid.cpp, bwidow.cpp, firetrk.cpp, starwars.cpp, tempest.cpp and Gekisou: De-hardcode "Diagnostic Step" input
- capbowl.cpp: Identified DAC type
- cubo.cpp: Make Akiko independent from driver state
- dec0.cpp
. Added I8751 MCU rom dump to Bad Dudes vs. Dragonninja
. Replaced MCU simulation for clone Dragonninja (Japan) with hacked version of baddudes dump. Added note about likely bit error in new MCU dump.
. Latch cleanup. 'LS374 senses positive edge, others are educted guesses.
. New and improved PCB README for the DEC0 based games
- freekick.cpp
. Added Omega (Nihon System 1986). Note: Omega code/gfx looks to be based on Gigas Mark II, given the "MarkII" graphic in the gfx roms and Gigas Mark II style continue numbers etc. PCB is marked "K.K NS6102-A" and seems to be somewhere between Gigas hardware and Free Kick hardware (3x dipswitch arrays). Supposedly an extremely limited release with ~10 PCBs produced.
. Added comments about Gigas Mark II. Note: Gigas Mark II is a romswap/upgrade to Gigas and uses the same MC8123 (317-5002). The original, MC8123-protected version of Gigas Mark II is undumped, we only have the bootleg.
- galgames.cpp
. More complete Galaxy Games emulation
. Created devices for the Galaxy Games carts (EEPROM + Flash + PIC) and the slot(s)
. Removed code patches and emulated the PIC communication and bank switching
. Converted the blitter to a device (cesblit.cpp)
. Moved the Galaxy Games from tmaster.cpp to their own driver galgames.cpp
. Provided the PIC code for all four StarPak cartridges
- gcpinbal.cpp
. Added HCT157 for ADPCM interface
. Added interface for 93C46 EEPROM
. Modernization and sound improvements: Break up the bogus IOC structure and use 8-bit handlers where appropriate. This fixes a music playback glitch due to the old handler's failure to take byte mirroring into account. Improved OKI M6295 sounds by using correct bit for banking.
. Load more music by sending interrupt when ES-8712 finishes playing sample. Updated machine flags to better reflect current emulation status.
- hng64.cpp: Added preliminary TLCS-870 disassembler
- konamim2.cpp: Added terminal. Some fixes allowing M2 console version to show "Please Wait".
- marineb.cpp
. Fixed sprite colors in Battle Cruiser M-12
. Changed PSGs to AY8912 in Battle Cruiser M-12 and Wanted. Added note on PCB.
- namcond1.cpp: Enabled preliminary ROZ effects in YGV608 core. Needs testing and references, they are certainly off for e.g. Galaga Arrange Challenge stages.
- namcos22.cpp
. Added per-game speaker configurations. Source: Game manuals and sound test messages.
. Added 'bodysonic' speaker to Air Combat 22. The name comes from test mode, manual scan is not clear enough to show the name of this speaker.
- naomi.cpp
. Minor NAOMI 2 specifics
. Redumped Crackin' DJ Part 2
. NAOMI docs update: Added 2 Naomi cartridge S/N-s, document Atomiswave game exe Build time stamps shown in Test Mode, correct few game years and sort game list as per build dates.
- nbmj9195.cpp: Fixed dipswitches for jituroku (ID 05559), mjanbari (ID 05577) and pachiten
- pgm2.cpp: Improvements. Fixed address map and added some notes.
- polyplay.cpp: Added light organ and optional layout. Traced the lines on the board to figure out how the lightorgan worked. A zero cross detector triggers NMI on the cpu, which then operates the light organ.
- pong.cpp: Clean up #includes
- segas16b.cpp: Improved inputs for Excite League and Super League
- Amiga
. Converted the Amiga keyboards to a bus interface with slot devices
. Moved audio related registers into Paula device. The device is now independent from the Amiga state class.
. Make Akiko independent from driver state
- Aquarium
. Correct OKI M6295 clock with actual resonator
. Replaced PCB layout with with a more informational version. List out major chips on the PCB including customs.
- Arkanoid: Added detailed memory map and proper mirroring of various memory mapped areas. Documented and mapped the joystick ports which, while present and fully functional on the pcb, are unused by the game code.
- Arrow Bingo
. Fixed clocks to be more accurate, hooked principal inputs to make the game playable, added technical notes and cleaned-up a bit the driver.
. Added a new input requested by the code. Added more technical notes about the program.
- Bouncing Balls
. Dumped MC68705U3 for clone Bouncing Balls (Adult)
. Hook up protection MCU in clone Bouncing Balls (Adult), added MCU to parent set as BAD_DUMP. Note: Uses a similar scheme to Pushman, but doesn't use port D on the MCU, and uses the same endianness for MCU reads/writes (Pushman swaps the bytes on writes). As an aside, Bouncing Balls has at least partial nudity in it as seen in attract mode, although less than clone Bouncing Balls (Adult). Also Bouncing Balls is the most criminal under-utilisation of a MC68705R3 ever. It uses none of the features the R family has over the P family (second interrupt, port D, ADC, wider port C), and it barely has any program code in it at all. It's barely a "protection" program either, as it has no hidden state variables, and no internal tables. It really does just produce a 16-bit response by doing a trivial manipulation on a 16-bit input. ElSemi's simulation was almost perfect.
- Canvas Croquis: Added flip screen
- Combat School: Mark Combat School trackball and Boot Camp clones as MACHINE_NOT_WORKING
- Double Crown: Simplify code by adding 8255 PPI and PSG type is YMZ284
- Funky Ball: Added basic inputs
- Galaxian: Fixed 'Bonus Life' settings in clone Galaxian (Midway set 2) (ID 06503)
- Gallop Racer 2: Redumped bankedroms - Game now playable
- Hoops '96: Work around for Dunk Dream '95 sound routing issue
- Kung-Fu Taikun: Added MACHINE_NODEVICE_MICROPHONE
- Kyuukyoku no Othello: Added DIP SW2 and identify dipswitches and locations
- Last Bank
. Added working sound and music. Allow sound CPU to reset the ES-8712 and M6295.
. Filled in dipswitches. Added NVRAM, remaped/renameed inputs and added RTC notes.
- Mephisto: Adding devices based on schematics
- Missile Command: Made clones Missile Combat (Videotron bootleg, set 1), Missile Combat (Videotron bootleg, set 2) and Missile Combat (Sidam bootleg) boot. They still need inputs and sound (AY8912).
- PinMAME: Fixed year info in Ator (ID 06485)
- Pole Position II
. Corrected DIP switches and locations for clones Gran Premio F1 (Italian bootleg of Pole Position II) and Gran Premio F1 (Spanish bootleg of Pole Position II)
. Use modern DEVCB features to make extra 4-bit input ports unnecessary
- Power Card: Dumped the CY7C291A from inside of the custom CPU. Added technical notes.
- Puzznic: Confirmed all sets uses same MCU, correct MCU clock as per PCB photo
- Space Cruiser: Added "P1/2 Continue" button. Note: The game has a dedicated button to continue the game if all lives are lost. The player has to enter a coin and press the "Continue" button.
- Super Real Mahjong Part 3: Added dipswitch settings for clone Real Mahjong Gold Yumehai / Super Real Mahjong GOLD part.2 [BET] (Japan) (ID 05599)
- Thayer's Quest: Fixed keyboard scanning and keyboard
- Varia Metal and Witch
. Added busy status read to ES8712 sound and notes on device. Misc. ES-related code cleanups.
. Added a reset line callback for the ES8712. This will be used to reset the MSM5205/MSM6585 when the implementation is rewritten to use those devices. For now, it's used for IRQ generation in vmetal, whose program seems to use a separate gate to prevent unwanted IRQs when the device is reset (gcpinbal appears to do the same with a rather subtle difference). Removed the probably bogus and already unused auto-repeat feature from the ES8712 device. All known games that loop samples do so by status polling or IRQs.
. Varia Metal sound improvements: Implemented IRQ used to loop ES8712 music (much like gcpinbal). All extant samples should be playable now. Reduced unreasonably high OKIM6295 volume. Removed MACHINE_IMPERFECT_SOUND flag.
- Xain'd Sleena: Fixed problem with edge case in 68705 timer overflow interrupt. This fixed the missing enemies in the second stage of Xain'd Sleena (ID 06499).
- Yam! Yam!?: Use own program map, added note about undumped PROM and removed unneeded variable
- Zig Zag: Install handlers and banks using address map rather than hacking them in with DRIVER_INIT
- Dipswitch fixes in aristmk5.cpp, avt.cpp, funkball.cpp, lastbank.cpp, nbmj9195.cpp, polepos.cpp, shanghai.cpp and srmp2.cpp
- Fixed rom names in aquarium.cpp, asuka.cpp, freekick.cpp, galgames.cpp, midwunit.cpp and suprnova.cpp
- Description changes of The Chariot Challenge (04J00714, Venezuela), Excalibur (French), Gallop Racer 2 (Export), Gamshara (Japan, 10021 Ver.A), The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (Korean board, set 1), The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (Korean board, set 2), The King of Fighters '99 - Millennium Battle (Korean release, non-encrypted program), Omega (bootleg?) and Print Club 2 2000 Summer (J 000509 V1.000)
- Renamed (excalibr) to (excalibrf), (galpans2) to (galpans2j), (gamshara) to (gamsharaj), (kof99k) to (kof99ka), (omega) to (omegab), (petshop) to (petshopa), (pitboss) to (pitboss04), (pitbossa) to (pitboss03), (pitbossa1) to (pitboss03a), (pitbossb) to (pitbossps), (pitbossc) to (pitbossm4), (vblokbrk) to (vblokbrka), (wamazon) to (wamazona) and (wamazona) to (wamazon)
- MAME
. 3rdparty
. Updated BGFX, BX, Catch, GENie, GLM, libjpeg, LUA, Sol2 and zlib. BX is now static library.
. PortAudio: Fixed issues on 32-bit builds and clamp latency. Minimal const-correctness.
. Use std::sort instead of qsort in listdevices (mame\clifront.cpp)
. Make devcb objects more consistently available for further configuration
. Arcade build restructuring: Created EFO, Promat, Terminal and Wing projects to help reduce the weight of libmisc. Eliminated Veltmeijer Automaten project (only two games by this company are in MAME, and one actually on Excellent System hardware).
. Cheat engine: Fixed crash on loading invalid cheats, MAME now logs an error and continues (ID 06477).
. Hashing util: Fixed Hashing helper classes (util\hashing.h)
. PLUGINS
. hiscore.dat: Use videoram share for Missile Command scores so madsel isn't disturbed. Don't permit hiscore parse scripts to modify the shared environment or save any persistent data. Print_verbose unimplemented stuff.
. Fixed unable to load DAT file using multiple paths (plugins\data\load_dat.lua) (ID 06500)
. Sync with upstream (util/client_http.hpp)
. Make object finder arrays meet more Container/Sequence requirements (allows range-based for and many algorithms to work) (emu\devfind.h)
. Added RGB unit testing (video\rgbutil.cpp).
. LIST command format changes: Changes to output produced to better deal with maximum limits of certain items. Fixed issue with -LISTROMS output not displaying hapyfsh2 rom sizes correctly.
. SOFTWARE LIST
. Allow softlist software parts to use different interfaces: imgcntrl: Don't assume first software part, find part with correct interface. swlist: Check all software parts for matching interface when populating list of software lists. softlist_dev: Check all software parts when finding approx matches.
. Revert 'Make "requirement" field in softlists actually work (MAME 0.182; MT 6464)'
- Compiling
. Fixed building using system utf8proc
. Fixed CHD build
. Converted m_p_chargen into a required_region and associated cleanups.
. Removed device_config_complete from numerous devices that don't really need it
. Make emu\emucore.h a bit more readable
. Removed emu.h from headers. Per Vas' request. If the compile fails for you (i'm thinking OSX and Windows native debuggers here in particular), add '#include "emu.h"' as first include of the cpp files that fail. Due to our use of precompilation and forced inclusion, emu.h must be included as the very first non-comment thing we do if we want to be sure MSVC compiles are identical to GCC/Clang ones. Doing it directly instead of through an include increases the correctness probability by a magnitude.
. Removed #undef min/max, we already have NOMINMAX now in scripts.
. Cleanup headers of not used friend classes
. Use size_t for sizes and algorithm for algorithms. Fixed up some files that were getting linked into multiple libraries. Add missing virtual method to sh2 peripheral class. Put shortname in driver struct for locality. Made LRU cache use shared pointers for safety.
- Debugger: Make debugger fall back from binary to default base on 0b prefix. This makes expressions like 0B12 parse as hex in hex memory spaces. Where there's ambiguity (e.g 0B01) binary takes precedence.