- New games: Shiny Golds and 'Soreike! Anpanman Popcorn Factory (Rev B)'
- New Non-Working games: Zoofari
- New clones: 2 On 2 Open Ice Challenge (rev 1.2A), Dynablaster / Bomber Man (bootleg, set 3), Flashgal (set 1, Kyugo logo), Gals Panic (MCU Protected, set 2), Griffon (Olympia bootleg of Phoenix), Karnov (Japan, bootleg with NEC D8748HD), NBA Play By Play (ver AAB), OutRun 2 Special Tours (GDX-0014), Penguin Brothers (Japan, bootleg), Phoenix (IDI bootleg), Pot O' Gold (U.S. Games, v580F), Radical Radial (Japan), Raiden II (Germany), San Francisco Rush (boot rom L 1.06A), San Francisco Rush: The Rock (Wavenet, boot rom L 1.38, GUTS Aug 6 1997 / MAIN Aug 5 1997), San Francisco Rush: The Rock (Wavenet, boot rom L 1.38, GUTS Aug 19 1997 / MAIN Aug 19 1997), Shanghai III (US, prototype), Skins Game Tournament Edition, Street Fighter II: The World Warrior (World 910129), Super Crowns Golf (World), Time Traveler (set 2) and Wangan Midnight Maximum Tune 2 (Export) (GDX-0016)
- New AGEMAME games: Alchemist (01J02046, Venezuela), Bachelorette Party (BHG1248, US), Boot Scootin' (GHG1008-03, US), Cash Cat (0100557V, NSW/ACT), Cash Cat (0100676V, NSW/ACT), Desert Bloom (0300111V, NSW/ACT), Dolphin Treasure - Cash Express (AHG1519, US), Dolphin Treasure - Cash Express (AHG1607, US), Dream Weaver (0200586V, NSW/ACT), Fast Fortune (0100651V, NSW/ACT), Jumpin' Joey (0100383V, NSW/ACT), King Galah (0100536V, NSW/ACT), Loco Loot (0100473V, NSW/ACT), Lucky Clover (0300109V, NSW/ACT), Magic Mask (AHG1549, US), Magic Touch (0300455V, NSW/ACT), Mammoth Money (0100425V, NSW/ACT), Mine, Mine, Mine (0400115V, NSW/ACT), Money Mouse (0300469V, NSW/ACT), Mountain Money (0100289V, NSW/ACT), Orchid Mist (0100849V, NSW/ACT), Oscar (0100348V, NSW/ACT), Penguin Pays - Penguin Pucks (EHG1257, US), Penguin Pays (0100113V, NSW/ACT), Penguin Pirate (0100674V, NSW/ACT), Penguin Pirate (0200578V, NSW/ACT), Queen of the Nile - Cash Express (AHG1525, US), Queen of the Nile - Cash Express (AHG1609, US), Queen of the Nile (0101139V, NSW/ACT), Queen of the Nile (0101707V, Brazil), Queen of the Nile (04J00784, Venezuela), Reel Power (0100400V, NSW/ACT), Rushin Rooster (0100534V, NSW/ACT), Silver Wolf (0100673V, NSW/ACT), Snow Cat (0100405V, NSW/ACT), Super Bucks III (0100711V, NSW/ACT), Sweethearts II (0200465V, NSW/ACT), Thor (0200319V, NSW/ACT), Thunder Heart (0200333V, NSW/ACT), Thunder Heart (0200334V, NSW/ACT), Tropical Delight (0100269V, NSW/ACT), Unicorn Dreaming (0100813V, NSW/ACT), Wicked Winnings (0100553V, NSW/ACT), Wild Angels (0100337V, NSW/ACT) and Yukon Gold (03J00191, NSW/ACT)
- New PinMAME games: Arizona, Cowboy Eight Ball, Disco Dancing, Force, Harley Davidson (L-2), Haunted Hotel, Hustler, King Kong, Space Ship (Pinball), Time Machine (LTD, 2 players), Time Machine (LTD, 4 players), Trick Shooter, Viking King, White Force and Zephy (alternate set)
- New drivers: stargame.cpp
- New devices: ad557, ie15_cpu, ie15_device, ie15_keyboard, ie15_terminal, sega32_pcb_upd7725 and tms1025
- ARM7 CPU: Repair broken ARM (arm7\arm7ops.cpp)
- I386 CPU
. Fixed enum range check (cpu\i386\i386ops.hxx and pentops.hxx)
. Save additional CPU flags (cpu\i386\i386.cpp)
- Dynamic Re-Compiling
. Fixed MAME crashed running scud with -bench 90 (cpu\drccache.cpp) (ID 06492)
. Fixed regression on OS X
- MIPS CPUs
. Retry fixing FPU register aliasing (mips\mips3.cpp and mips3drc.cpp)
. Make sure branch delay slot instruction is not virtual instruction before trying to generate code to add it to the block checksum (mips\mips3drc.cpp).
. Initial support for VR5500 and TX4925 CPUs
- T11 CPU
. Emulated MFPT instruction
. MOV, CLR and SXT read memory before writing to it (Page B-8 of User's Manual)
- TMS32031 CPU: Removed direct update handler
- Z180 CPU
. Correct DMA MMOD bit
. Count of 0 means 0x10000, as with other DMA controllers.
. Fixed scheduling so burst mode DMA is always serviced immediately with no CPU ops interleaved.
- AY-3-8910 sound
. Added a write handler for the case of bc1=a0 and bc2=a1. Added guide to bus control signals.
. Overrided device method to support changing clock frequencies in the AY8910. Added virtual keyword to declaration.
- TMS5110 sound: Updated some comments
- uPD7725 sound
. Fixed disassembly
. Added preliminary IRQ support. Handle the LSB-first load from SI properly, for when SI gets hooked up in the future.
. Added siack and soack registers and their requisite jumps, not used yet. Fixed missing si register and flags registers savestate registration.
. Fixed an off-by-one error when loading uPD96050 roms for SNES games (bus\snes\upd.cpp)
. Fixed LSB-first bit ordering for SO reg, not used yet. Use accessors to access the SR p0 and p1 bits, rather than masking.
. Corrected which registers are actually reset by /RESET and fixed/updated IRQ system, should behave more properly now.
- 6821 PIA: Incremental C++-ification of 6821pia.cpp.1: Changed some 'int' ==> 'bool' where appropriate. 2. Changed the various control byte macros to static functions [Nathan Woods].
- Discrete Netlist
. Slightly improved event timing if state changes. Also introduce a push_force call to reschedule already pending events if the state will not change.
. Clean up net_t interface and increase readability
. Improved readability. Added more C++11 noexcept and swap semantics. Also fixed Clang-5 warnings and VS2015 compile.
. Added a heap priority queue to the netlist source. This is currently not used since performance drops by about 40%. The typical use case would be circuits a lot more complex than those we currently emulate where the 2*log(n) advantage really applies.
. Fixed netlist stats collection. Code refactoring: Small improvement for 7493. Converted 9316 from subdevice to delegate. Converted 74107 from subdevice style to delegate. Also refactored inconsistencies in other parts of the code.
. Netlist refactoring: Align timed_queue closer to std::priority_queue. Use uint8_t in extended clock for better memory usage. Minor changes to nl_breakout.cpp.
. Fixed some Cppcheck and Clang warnings. Fixed -Winconsistent-missing-destructor-override warnings. Made some constructors of template classes and classes with virtual .. = 0 methods protected.
. Fixed openmp compile (solver\nld_solver.cpp)
. Added tag command names in debug messages (machine\wd_fdc.cpp)
. Inform disk image of step operation so it can cache information (floppy_stp_w)
. Added missing operator* to multiply an attotime by a double (machine\fdc_pll.cpp)
- MC6845 CRT: Generate blink state in a way more likely to represent hardware and removed kludged-in MC6845 accessor.
- Nintendo Custom
. Improved PAL clone timings (video\ppu2c0x.cpp)
. Refactored clock definitions (includes other drivers using the N2A03) (cpu\m6502\n2a03.h)
- ROC10937 video: Fixed CID: 138793 "Logically dead code"
- SAA5050 video: Fixed romsize
- VGA video: Save expanded attribute registers (video\pc_vga.cpp). Updated CRTC usage comments. Added palette configuration to save state. Fixed broken port reads on state load. VGA card now saves vga.dac to the state, as the MAME palette is clobbered periodically with data from here. Changed the type of vga.dac.colour to a flat uint8_t array seeing as save_item isn't struct-friendly. Fixes Liero. Saved more VGA flags, including vga.miscellaneous_output, which despite the vague name is needed for reading from the ports.
- Z80 SIO
. Added I8274 type macros and derived class + logging
. Changed (MESS) isbc.cpp to use z80sio.cpp i8274 device driver instead of z80dart.cpp
. Variant support for i8274/upd7201 and a refactored interrupt support and cleanup Z80-SIO
- aerofgt.cpp, f1gp.cpp, fromance.cpp, ojankohs.cpp, pipedrm.cpp, rpunch.cpp, tail2nos.cpp, welltris.cpp: Added skeleton device for Video System C7-01 GGA
- ambush.cpp: Driver state cleanups
- amusco.cpp: Generate blink state in a way more likely to represent hardware and removed kludged-in MC6845 accessor
. Added short delay between RDP full sync and DP interrupt (machine\n64.cpp and video\n64.cpp). Since the RDP is not currently scheduled for its own timeslices, this will allow the RSP interrupt from graphics tasks to arrive at the main CPU first. In some instances, the RSP timeslice would end after the RDP had been sent the full sync command, but before the RSP could finish its task. No issues were manifest if both RSP and RDP interrupts arrive at the same time, but it is still expected that the RSP interrupt should arrive first.
. Let debugger disassembly windows track RSP PC
. Flush RSP drc cache when SP DMA changes IMEM (machine\n64.cpp)
. Make element selection in vector load/store DRC C functions consistent with other implementations (cpu\rsp\rspcp2d.cpp).
. Fixed a minor issue with RDP disassembly listing for Load Block (video\n64.cpp).
- atlantis.cpp and iteagle.cpp: Perform IDE reset during PCI device reset (machine\pci-ide.cpp)
- atlantis.cpp and midzeus.cpp: Better texture lookup (video\zeus2.cpp)
- atlantis.cpp, midzeus.cpp, seattle.cpp and vegas.cpp: Added serial input (machine\midwayic.cpp)
- bagman.cpp: Use 4-way joysticks in all games except Squash (Itisa)
- blockade.cpp: Rewrote driver
. Redumped Ollie King (GDX-0007)
. Some information on usb commands for AN2131SC. AN2131SC is used as a USB to serial converter, one of the 2 serial ports can be setup as MIDI.
- ddenlovr.cpp and dynax.cpp: Device type corrections
- deco32.cpp: Comment out popmessage
- dkong.cpp: Major latch8 and discrete device cleanup: Eliminate the AM_LATCH8_XXX address map macros. The normal DEVREAD/DEVWRITE ought to be good enough. Eliminate the "offset" specifications from latch8_device. This was used mostly to funnel outputs to discrete_device, which now has a templated write_line handler. (Inputs can use MCFG_DEVCB_RSHIFT instead.). Organize latch8_device's callbacks as arrays of devcb_readline/devcb_writeline, helping simplifying code greatly. Change latch8_device::bit[0-7]_(q_)?r to be proper line read handlers. This requires two extra READ8 handlers in audio/dkong.cpp, but memory-mapping for the MCS-48 T0 and T1 lines is totally artificial anyway. Comment out an assert that now tends to fail due to buggy AM_MIRROR behavior.
- docastle.cpp: Read inputs through TMS1025. Added input callbacks and read handler to TMS1024/TMS1025. Clean up code a little. Added MS pin to TMS1024, added write to port 0.
- dooyong.cpp: Fixed regression (spriteram8 -> spriteram16)
. Cleaned up clock definitions (KONAMI_SOUND_CLOCK -> 14.31818 MHz)
. Moved clone Lady Bug (bootleg on Galaxian hardware) from galaxold.cpp to galaxian.cpp drivers
. Various updates. Changed 4-way joysticks to correct 8-way to Reikai Doushi and Battlecry according to manual. Added button descriptions.
. Added DSW layouts to Reikai Doushi and Battlecry & a note about their numbering according to the manual.
- marineb.cpp: Corrected the main crystal to 12MHz as seen in PCB photos
- merit.cpp: PSG type is AY-3-8912
. Added documentation for differing Model 1 coprocessor chips
. Added roms 315-5571.bin and 315-5572.bin to the Model 1 CPU Board
. Added dumped internal TGP rom 315-5573.bin to Virtua Racing and clone Virtua Formula
- model1.cpp and model2.cpp: Massive MB86233 disassembler overhaul
. Dumped and documented 837-14438 hopper controller board, used in Kick '4' Cash and few other SWP games. Added to prev FPGA config PROM dump as well.
. Redumped Noukone Puzzle Takoron (Japan) (GDL-0042) and clone Virtua Fighter 4 (Rev B) (GDS-0012B)
. Dumped 'Ferrari F355 Challenge (deluxe, no link)' Export and Japan BIOS
. Dumped 'House of the Dead 2' Japan BIOS
. Measured NAOMI's MIE MCU speed
- peplus.cpp: Fixed CID: 138606 "Logical vs. bitwise operator"
- polyplay.cpp: Hook up the SIO
- raiden2.cpp: Added tile_scroll_w safety fence
- rpunch.cpp: Fixed a bug where AM_SELECT applied to narrow-width handlers with a submaximal number of subunits would select the wrong address bits or none at all (This allows rpunch_gga_w to be WRITE8 as intended). Added more stringent appropriateness checking of unit masks for narrow-width handlers.
- seicross.cpp: Added XTAL
- sg1000a.cpp: PSG is SN76489AN, just like the console.
- vp101.cpp: Added framebuffer, some inputs, ATA, NVRAM and protection cheat. Implemented ATA DMA.
- wildpkr.cpp: Work out several device hookups. The use of a DS2401 "ID" in tabpkr is inferred from the code. The data supplied for it is totally artificial and the chip may have been stripped from the PCB pictured on citylan.it. Much still needs to be learned about the hardware of these games. The emulation doesn't display even error codes yet.
- AGEMAME: New aristmk5.cpp sets, layouts and documentation
- Air Rescue: Added Air Rescue's uPD7725 DSP and load its roms. Disabled for now, since the uPD7725 CPU core will need some features added before this can work.
- Alpha One: Adjusted screen size
- Area 51: Site 4: Documented an earlier BIOS version. Doesn't seem compatible with the HDs available.
- Assault, Bouncing Balls, Dangerous Dungeons, Dark Tower, Kid no Hore Hore Daisakusen, Klax, Mad Donna, Pushman, Super Duck, Super Toffy, Toffy and Trog: Use 4-way joysticks. No manual or flyer showing controls for Super Duck is available, but gameplay does not seem to accept diagonal input at any time. Dangerous Dungeons, despite being a conversion of Double Dragon, has a manual that notes that 4-way joysticks should be used. It seems reasonable to assume that the other non-Technos games should do the same, with the exception of Thunder Strike.
- Code One Dispatch: Added timekeeper dump for clone (ver B)
- Continental Circus: Fixed subtle color pen bug in Mexico GP stage
- Fever Soccer: Added coin hopper output (prize hopper doesn't quite work)
- Got-cha Mini Game Festival: Hooked up lamp outputs and added clickable artwork
- Hanaroku: Added NVRAM and hopper
- Hyperdrive: Fixed FPU register aliasing (mips\mips3.cpp and mips3drc.cpp). This fixed 3D graphic objects in Hyperdrive (ID 06512).
- Rushing Heroes: Redumped sound rom
- Last Bank: Added coin counters
- Mario Kart Arcade GP and Mario Kart Arcade GP 2: Added security PIC dumps and fixed rom load
- N-Sub: Simulate the gradient in N-Sub. Figured out how the starfield and gradient get enabled on VIC Dual hardware. Don't exactly know how they work yet, so I added a simulation of the gradient for N-Sub.
- Pasha Pasha 2: Hook up lamp outputs and clickable artwork
. Dumped/redumped the PROM for some of the bootlegs. Also started documenting the differences.
. Added MACHINE_IMPERFECT_SOUND to the games known to substitute the melody generator with a piggyback PCB. There might be more.
- PinMAME: Added program ROMs and corrected title for Volley. Redumped Columbia.
- Poizone: Fixed 'Setting 2' dipswitch
. Get some meat back onto the bones: Decode color PROMs. Full memory map for main and audio CPU derived from schematics. Added both dipswitches. Hook up interrupt generation logic. Decode character and sprite layout and draw character tilemap. Raw screen parameters (to be verified). Hook up inputs, renamed audio cpu to sub cpu and hook up flip screen.
. Added a AY-3-8910 write handler for the case of bc1=a0 and bc2=a1. Fixed audio hookup in Popper (BC1 is hooked up to A0 on the host and BC2 is hooked up to A1).
- Rock Climber: Fixed MACHINE_CONFIG (rockclim base off mooncrst)
- Sea Bass Fishing: Fixed game shows only black screen (video\stvvdp2.cpp) (ID 04454). Note: Sea Bass explicitly wants a monitor mode bit to be 0 when screen is disabled from bios to game transition.
- Space Warp: Added Hunchback (Galaxian hardware) color prom
- Teenage Mutant Ninja Turtles - Turtles in Time: Fixed missing 3Player & 4P inputs in clone (4 Players ver EAA)
- Time Attacker: Update notes
- Tsukande Toru Chicchi: Added clock XTAL definition for the Z80 CPU, divisor is guessed.
- Trog: Use different inputs for clone Trog (prototype, rev 4.00 07/27/90)
- Ultimate Mortal Kombat 3: Redumped UMK3 U2-U5 sound ROMs, all match current dumps. Removed BAD_DUMP tag and raised MACHINE_IMPERFECT_SOUND for umk3 sets, see MT00751.
- Input port: Some reports of garbage in console with DInput controllers. Changed to snprintf with assert since apparently snprintf fixes the reported problem.
- Dipswitch fixes in ertictac.cpp
- Fixed rom names in blockade.cpp, itech8.cpp, konamigx.cpp, neopcb.cpp and suprgolf.cpp
- Description changes of CoMOTION, Dynablaster / Bomber Man (bootleg, set 1), Dynablaster / Bomber Man (bootleg, set 2), Dyno Bop (V1.1), Gals Panic (MCU Protected, set 1), Griffon (Videotron bootleg of Phoenix), Moon Base Zeta (set 1), Moon Base Zeta (set 2), NBA Play By Play (ver JAA), Radical Radial (US), San Francisco Rush (boot rom L 1.0), San Francisco Rush: The Rock (boot rom L 1.0, GUTS Oct 6 1997 / MAIN Oct 16 1997), Scramble (Karateco, French bootleg), Sweethearts II (01J01986, Venezuela), Time Traveler (set 1) and Volley
- Renamed (cashcat) to (cashcatnz), (chariotc) to (chariotcv), (chariotca) to (chariotc), (cowboy) to (cowboy2), (dolphntrce) to (dolphntrcea), (dstbloom) to (dstblooma), (kgbirdmk5) to (kgbirda5), (locoloot) to (locoloota), (magimask) to (magimaskb), (magtcha5) to (magtcha5a), (minemine) to (minemineu), (qnile) to (qnileb), (qnilea) to (qnilec), (qnileb) to (qnilea), (qnilec) to (qnile), (raiden2g) to (raiden2eg), (retrsama) to (retrsamb), (retrsamb) to (retrsama), (suprgolf) to (suprgolfj), (swhr2) to (swhr2a) amd (trpdlght) to (trpdlghtu)
. SOFTWARE LIST
. Very minor cleanups; accessing options.software_name() once and better std::string usage (clifront.cpp and mameopts.cpp)
. Eliminates the need for emu_options::update_cached_options() by providing a hook for when option values change. This is a preliminary fix to the issue identified in PR#2065 (https://github.com/mamedev/mame/pull/2075).
. More softlist related refactoring: We now only parse the command line (with core_options::parse_command_line()) once. Options that are set up during slot and image setup go through a 'value_specifier' function. Eliminated the command line postprocessing.
. Fixed image mounting from command-line in systems with a software list and an ini file, but there's plenty of time for testing (ID 06107).
. Fixed regression when loading multipart softlists. Pernod found a regression introduced in the 0.183 softlist refactoring whereby multi-part softlist items would not distribute to multiple slots. The problem was that the old code was relying on the image slots being loaded into the core. This is not the way the new system works, so I've added a hook into software_list_device::find_mountable_image() that allows the new approach to work.
. Fixed an issue where device options (e.g. -cart) were reported as unknown when they actually worked. This change also changes around how command line arguments are passed around; specifically I changed argc/argv to be std::vector<:string>. Note this is not passed around 'const', the reason being that the command line processing will now "eat" the vector.
. Fixed regression pertaining to specification of empty strings as slot names e.g. - 'next -scsibus:1 "" -listdevices'
. Cleanup of slot code. Added device_slot_interface::has_selectable_options() to calculate whether a particular slot has selectable options.
. device_image_interface cleanups: Replaced comparisons of software_entry() or part_entry() with nullptr with loaded_through_softlist() predicate. Eliminated the superfluous m_software_info_ptr member. The software_entry() accessor is still provided, but now rarely used. Eliminated two of the three arguments to load_software_part. Removed some unnecessary auto-typing in ui/inifile.cpp.
. Self-registering devices
. Make device_creator a variable template and get rid of the ampersands
. Removed screen.h and speaker.h from emu.h and added where necessary
. Centralised instantiations of screen and speaker finder templates
. Added/standardised #include guards in many hearers
. Removed many redundant #includes
. Order #includesr to help catch headers that can't be #included alone
. Note: This changes #include order to be prefix, unit header if applicable then other stuff roughly in order from most dependent to least dependent library. This helps catch headers that don't #include things that they use.
. MAME now walks all devices when generating -lx output irrespective of whether they're actually instantiated anywhere or not.
. -lx is at least 30% faster than previous implementation.
. Note: Only possible drawback is that filtering drivers no longer filters devices. Fix for libc++ build (emu\device.h). Fixed Clang build by supplying constructor for device_registrar (emu\device.h).
. Image instance name refactoring and bug fixing: update_names no longer takes arguments; the device type can be obtained easily, and the custom instance names are now overrides. Devices might not need to explicitly call update_names in the future. Fixed the frontend crash/assert failure resulting from instance names not being generated properly.
. Filter devices when a driver pattern is supplied to -listxml
. Make device_image_interface::update_names a private method called automatically at config_complete time
. Cleaning up duplicate device shortnames. Added basic device validation. Fixed uninitialised members in some devices using constructor delegation.
. Updated GLM to tip of stable branch (0.9.8.5 pre-release), fixes build with MacPorts Clang.
. Refactored HTTP handling to be easier to extend and use
. Added emu_file::write, enables the use of sockets and pipes from LUA without needing a third party library (mame\luaengine.cpp).
. Cheat engine: Added load_cheatfiles to frontend\mame\mame.cpp/h, emu/main.h and emu\machine.cpp
. Fixed crash on excessive command-line options, clean up some tabulation and removed long-dead option.
. Possibly uninitialized class member fix (ui\datmenu.cpp and ui.cpp)
. Added a new addrmap.cpp validation intended to catch AM_REGION declarations not tied to anything meaningful
. Fixed null pointer bug when -verifyroms is used without a driver spec
. Substantially speed up -verifyroms, hack other verbs temporarily while device data is being refactored.
. Greatly improved performance of -romident on multiple files (mame\clifront.cpp and media_ident.cpp). This hashes all the files upfront, then does the expensive driver/software scan only once. It also walks all devices so it can identify ROMs for slot devices that aren't inserted by default.
. Include devices in -listxml with * or no argument
. Preliminary attempt to fix regression caused by poor understanding of get_default_card_software() (mame\mameopts.cpp)
. Converted screen_device VBLANK callback to devcb_write_line: WRITE_LINE callback has same functionality, except that screen is not an argument. Renamed screen_eof_xxx to screen_vblank_xxx in many drivers. No changes to externally registered vblank delegates or screen update methods.
. PLUGINS: Updated hiscore.dat
. Uncovered what might be a core bug: AM_SELECT does not work properly with masked handlers.
. Memory unit masking and address mirroring fixes: Fixed a bug which effectively treated AM_MIRROR as AM_SELECT when applied to a single-address range mirrored into a contiguous block. The automatic expansion of zero address masks now only applies to those stemming from (default) configuration, not from optimization (This allows the assertion in latch8_device to be reinstated). Fixed a bug where AM_SELECT applied to narrow-width handlers with a submaximal number of subunits would select the wrong address bits or none at all (This allows rpunch_gga_w to be WRITE8 as intended). Added more stringent appropriateness checking of unit masks for narrow-width handlers.
- SDLMAME: Fixed SDL build on Win32 and ZEXALL build
. Removed tag() argument from logerror() calls (cpu\i86\i86.cpp, i186.cpp, i286.cpp, Z80 and imagedev\floppy.cpp)
. Fixed Clang 5.0 warning in util\palette.cpp. Maximum of unsigned X and 0 is always X.
. Fixed GCC warning in sound\samples.h and GCC link error in emu/driver.h
. Fixed MSVC build (include "screen.h" and "emu.h")
. Changed 'const char *' ==> 'const std::string &'
. Refactor debugger_access
. Fixed debug build by removing vestiges of -dummywrite (emu\video.cpp)
. C++-ification of debugger code (misc std::string/std::vector adoption mainly)
. Fixed debug commands in drivers and devices
. Print octal addresses in the trace if CPU is octal (debug\debugcpu.cpp)
. Added missing disable_side_effect in find_pc_backwards (debug\dvdisasm.cpp)
"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."