* cloned the mcs51 core as axc51, stripped it back, will allow monon work to continue without making a mess of the original mcs51 core.
* remove some redundant bits
* replace SFR table with AXC51 / AX208 one, removing some other functionality which is not the same on this series
* remove some other bits that are redundant now we're not trying to support other mcs51 models in the axc core
- vaportra.cpp: consolidated driver in one file, minor cleanups
- few drivers and devices: removed some custom GFX decodes in favor of the ones provided in emu/video/generic.cpp
- Switched to shorter type names.
- Tightened up spacing in function declarations and definitions.
- Removed some now-unnecessary trampoline functions.
- Hooked up Rx and Tx clocks for MIDI port 1; MIDI in/out now works.
apple2_flop_clcracked.xml: Turned some comments that are apparently
supposed to be usage notes into info elements.
konami/mogura.cpp: Made PROM-to-palette mapping more obvious using
bitswap.
* atari/a2600.cpp: Remove device lookups.
* a2600.xml: Fix description for challenge and add usage note.
* a2600.cpp: Simplified vcs_cart_slot_device. Let cartridges install themselves.
* bus/vcs/rom.cpp: Reorganized code so each class's code is together.
* bus/vcs/vcs_slot.cpp: Moved pcb enum from .h to .cpp file
* Param now holds a value and a destination, so that we write the
value that existed at send time, rather than whatever's in PORTA
when receipt occurs. Fixes 45° vectors in Thrust and Moon Lander (and presumably others).
- some drivers: minor spelling fixes (becuase -> because, Fujistu -> Fujitsu)
- lwings.cpp: more label updates / comments for the avengers set [Brian Troha]
apple/maciivx.cpp, apple/maclc3.cpp: Fixed unnecessary absolute tags.
video/fixfreq.cpp: Make the code look more like the other MAME code:
* Indent initialiser lists by one level.
* Indent parameters by two levels when they need to be wrapped.
* Don't use const on parameters passed by value (not part of signature).
* Changed C-style casts to function-syntax casts (reduces parentheses).
Ran srcclean on capcom/lwings.cpp and video/fixfreq.cpp.
This problem was identified because the file system didn't properly show up when the 'c64' driver was run, and this seems to be the correct fix. The part of this that confuses me is that if this defect was preventing the CBMDOS fs from showing up under c64, why don't the CoCo file systems have the same problem? Both fs_coco_rsdos.cpp and fs_coco_os9.cpp specify (seemingly incorrectly) SSDD.
* tvgames/xavix.cpp: Corrected gcslottv system name.
* ekara_japan_g.xml: Corrected more titles based on box art.
* gcslottv.xml: Indicate long vowels with overbars in transliterations.
* fairlight/cmi01a.cpp: Nearly complete rewrite of CMI-01A "Channel Card" emulation.
* machine/6840ptm.cpp: Fixed a number of bugs in the 6840 PTM emulation.
new Software List items
----------------------
ekara_japan_m:mc0005 Kids Song Mini Volume 1 (Japan) (MC0005-KSM) [TeamEurope]
ekara_japan_m:mc0007 Artist Mini Volume 5 (SMAP, KinKi Kids) (Japan) (MC0007-ATM) [TeamEurope]
ekara_japan_s:sc0015 Detective Conan Volume 2 (Japan) (SC0015-DCS) [TeamEurope]
ekara_japan_s:sc0007 Detective Conan Volume 1 (Japan) (SC0007-DCS) [TeamEurope]
ekara_japan_g:gc0018 TV Pop Volume 7 (Japan) (GC0018-TPJ) [TeamEurope]
ekara_japan_g:gc0011 TV Pop Volume 4 (Japan) (GC0011-TPJ) [TeamEurope]
Improved metadata for many eKara cartridges. [kmg, Vas Crabb, David Haywood]
The keyboard and mouse device mapping options did nothing at all, mostly
because of lack of support for separating inputs from multiple devices.
The joystick options were useless when you have two of the same kind of
controller, and you can achieve the same thing with controller
configuration files.
* Don't put full path to target resources in generated version resource
file.
* apple/sonora.cpp: Only #include "emu.h" as first thing in .cpp file to
avoid PCH issues.
* taito/rbisland.cpp: Cleaned up a few details.
* mpu4: set YM XTAL to match PCB
* fix some Dutch reel / input setups so that sets boot
* move a couple of sets
* disable coinlock logic for now, the code is clearly not suitable for all cases, probably needs to be per machine
* remove an identical clone set, game clearly boots as 'Atlantis' not Triple Dice'
* fix a few more reel setups
* allow m4madhse to boot based on AJR's research
* m4matdr appears to be a 6 reel setup, this pushes it past the reel check to another error
* crt-geom-deluxe: Increased number of taps for halation and increased maximum width.
* crt-geom*: Moved repeated crt-geom/crt-geom-deluxe functions into their own file.
* crt-geom and crt-geom-deluxe: added support for sRGB output gamma ramp and made it the default.
Adds support for using /W//REQ as the RX DMA pin, as well as the /DTR//REQ pin as the TX DMA pin, allowing software that uses both directions simultaneously to function.
- added support parameter FORCE_TRISTATE_LOGIC on mk28000
- add system device SYS_PULSE to generate pulse based on input changes
parameters are delay, pulse width, input polarity and output polarity
- add USE_SPEED_HACKS define to gtrak10 to enable the use of the above
Brings gtrak10 from 18% to 120%.
- Improved interlaced video support in fixfreq.cpp
Added two interlace modes: progressive and interlaced which can
be selected in machine configuration.
- more clang format work
- rename link to connection
- introduced typed aliases. This information may be used later to
rewrite netlists.
- added a three terminal base device
This will allow the analog code to be more easily comparable to
literature about MNA (Modal node analysis).
BJT code is now a lot better readable.
- fix doxygen consistency
- added an example for a cmos inverter based on NMOS/PMOS fets.
- TRUTHTABLE_START was renamed to TRUTH_TABLE
- truth tables are now enclosed in braces
- netlists are now enclosed in braces
- TRUTHTABLE_END() and NETLIST_END() removed from files
- Fixed static solver script
- Add file path to includes in nltool
* current mpu4 work + sorting (including progress to make m4andybt display correctly with existing layout)
* do the invert in the layout instead for 7segs
* fixes led extender strobes, allows output to be inverted
Implemented more CRTC registers, getting to the point where System 6.0.8
and System 7.0.1 will show video on NTSC and PAL displays with
approximately correct interrupt timings. Also implemented 1:2:1
convolutions (this blurs the image vertically - in real life it reduces
interlace flicker).
Screen update in interlaced modes isn't right yet - it updates every
line on every frame, and there's a vertical offset caused by the initial
half-line.
- Use 16-bit pointer for sprite RAM storage (despite some systems only having 8-bit CPUs)
- Rename device and move to src/devices
- Clean up variable naming in associated drivers
- neobattl: Add DIP switch locations
- krzybowl: Reduce clocks to match known XTAL value
----------------------------------
Puzz Ball (Japan, PZB1 Ver.A) [buffi]
unknown Namco System 10 medal game (unknown code) [buffi]
New clones marked as NOT_WORKING
--------------------------------
Varth: Operation Thunderstorm (bootleg, set 3) [Jorge Silva]
Include device tag in memory view save item registration names. Without
this, instantiating two of the same device (or two devices with
identically named memory views) causes a fatal error on start.
Fixed -aviwrite/-mngwrite with -snapview native more than two screens.
Previously it would attempt to use the same file name for all screens
but the first.
Improved naming of snapshots, especially when using -snapview native
with -aviwrite/-mngwrite (see GitHub #10005). The automatically
included screen number should come before the extension if supplied.
Also, assume that users actually know what they’re doing if they include
a dot in a snapshot filename pattern.
* Added the ability to override the lamp current checks (will fix Lamp Drive errors) - Connect4 no longer requires a lamping hack.
* Replaced data logger with serial loopback for systems that expect this.
* new Software List entries
-----
nes_vt_cart.xml:
Color Screen Game World - 10 Types of Crazy Games / Wonders 163-in-1 [TeamEurope]
* new WORKING machine
----
unknown VT02 based 25-in-1 handheld [jordigahan, ClawGrip, Sean Riddle]
* new NOT WORKING machines
------
TV Pump Active [ClawGrip, Sean Riddle]
unknown VTxx based GameBoy style handheld (2019 PCB) [jordigahan, ClawGrip, Sean Riddle]
unknown VTxx based GameBoy style handheld (2020 PCB) [jordigahan, ClawGrip, Sean Riddle]
NubSup Mini Game Fan [taizou, TeamEurope]
Q5 500 in 1 Handheld [taizou, TeamEurope]
MeGaTrix (Spain) [jordigahan, ClawGrip, Sean Riddle]
* allows more games to light all their lamps
* fixed(?) large extender hookup so that all lamps light, eg. m4andybt
* gave m4andybt better inputs (is mostly playable now, but some 7segs in the display still aren't hooked up)
* move some sets to mpu4mod2 and mpu4mod4yam based on sound chip use
Added support for wildcards in .flt filter files. You'll need to quote
them to avoid /* being parsed as a comment initiator, like "seta/*.cpp"
on a line including the quotes.
Added an XSLT filter for listing system driver sources, like
mame -lx | xsltproc scripts/xslt/list-system-sources.xslt
Converted the ci subtarget (which isn't really used much) into a .flt
rather than .lua and .lst files.
Added SOURCEFILTER option to specify a driver filter file in your make
options, e.g. like make SUBTARGET=custom SOURCEFILTER=mydrivers.flt (or
put it in your useroptions.mak if you'll be using it a lot). It
functions more-or-less like SOURCES on steroids.
Changed the way system/device source file paths are displayed to suit
the new source layout better. INI file loading hasn't changed, that
still just uses the base file name.
Added overlooked trigger to src/bus.lua to include NES controller bus if
the NES zapper sensor is needed.
Driver projects now use globs to search for files. There's less effort
editing the Lua files when things are moved around. Remember it won't
automatically pick up a change, so if you add/remove/change files, you
should touch makefile to get it to find the change.
Driver projects no longer get the top-level MAME directory as an include
path. This means you need to think about how you structure things and
not introduce nasty circular dependencies.
Subtarget projects can now be generated entirely from .flt files without
the need for separate Lua scripts and .lst files. This has been done
for the arcade, mess and virtual targets. It effectively works like a
SOURCES= build on a large scale. This means you need to organise things
so the dependency genrators can find them.
There's an issue with the mess subtarget right now. For some reason,
decmate2.cpp isn't picking up the dependency on the PDP8 CPU core for
the HD6120 device. I'll debug it later
* Add implementation of thunderl protection, implemented using a PALCE16V8.
* Corrected address range for protection write handler.
* Added recreated PAL image based on analysis.
* Fixed audio by setting a precise value for the tone pot, also removed unnecessary amplifier section resistor.
* Added impulses to coin inputs to stop j_ewnd giving credits every frame.
* Turned the audio level down a bit.
New machines marked as not working
--------------------------
Cash Nudger? (SRU) (5p Stake, £2 Jackpot)
New clones marked as not working
--------------------------
Each Way Nudger (JPM) (SRU) (revision 23C, 5p Stake, £1 Jackpot)
Each Way Shuffle (bootleg?) (SRU) (10p Stake, £3 Jackpot)
* Implemented VRAM size selection.
* Added readback for most registers that are implemented.
* Made CRTC calculations more sensible.
* Added version strings from ROMs to device descriptions.
* Improved logging and made it more configurable.
- m72.cpp: corrected labels for Hammering Harry M81 set [Brian Troha]
- model2.cpp: verified ROM EPR numbers for Manx TT Deluxe [Brian Troha]
- supduck.cpp: documented alternate title [Brian Troha]
- zn.cpp: proper labels for v1.10I NBA JAM Extreme [Brian Troha]
* Changed name of cards for slot selection to "mdc48" and "mdc824" as
they're unrelated to the later 8*24 GC card.
* Also cleaned up code substantially and got rid of artificial
differences between Display Card 4*8 and 8*24.
* Moved lists of NuBus and SE/30 PDS cards to a common place.
* Got some class declarations out of headers to reduce recompiles.
* Remove DIP switch locations from edge connectors/split-pads in pacman.
* Added DIP switch locations to mspacman.
* Remove duplicated inputs from mspacpls and mspachmp.
* Marked Rack Test as PORT_TOGGLE.
* Changed fake DIP switches to machine configuration settings.
New working machine
------------------
Radica / Takara / SSD Company LTD Play TV Jr. Construction [Sean Riddle, David Haywood, Peter Wilhelmsen, Kamaal Brown]
* Use the plugin data folder for storing the cache. The history folder
may be read-only or shared with different configurations.
* Don't create the cache database or surrounding folder if there's
nothing to store in it.
* Actually use prepared queries multiple times rather than always
destroying them after a single use.
* Added proper error checking for most database operations.
* Improved query performance by avoiding outer joins and table scans.
-bus/nubus: Made the Macintosh Display Cards map the blue channel to
white with monochrome monitors. Also added logging for PLL
configuration to help debug how CRTC and RAMDAC clocks work in the
future.
Started implementing the Macintosh Display Card CRTC. It gives correct
resolutions, although refresh rates are incorrect. Added machine
configuration settings allowing several monitors to be selected.
Implemented the Macintosh Display Card's packed RGB mode. The
base/stride in RGB mode make more sense with this implemented.
Cleaned up the code for the SuperMac Spectrum cards, and fixed the
garbage at the bottom of the screen on the Spectrum/8.
Put a layout with views for common monitor aspect ratios in a place
where cards can use it. This is especially useful for the NuBus cards
that can support portrait monitors.
Factored CRTC and shift register out of Spectrum/8 and added to Spectrum
PDQ. Fixes video mode selection and resolution for Spectrum PDQ.
Implemented vertical interrupt position, stride, line offset and clock
source registers for Spectrum PDQ. Added a hack to work around line end
control not being understood. Also added save state support.
Slightly modernised the Macintosh Display Card (JMFB) device code.
Initialised some driver state class members that were causing System 7
to fail to see files. [Ivan Vangelista]
* netlist: fix bug, prepare for future changes and improve readability
- fix a bug where a net processing error may trigger a nullptr access
- applied some clang-tidy recommendations
- add no_return to plib::terminate
- properly encapsulate dynamic_cast usage
- more review of noexcept
- added a clang-format file. Over time, all source files will be
processed with clang-format
- Used clang format on a number of files
- Rewrote 74174
- all device constructors now use a struct to pass data on
to base classes. Neither netlist state nor the name are intended
to be used in a constructor. After the base class was
constructed, they can be accessed by state() and name().
- The device construction macros can now be removed. Changes to
the core will not need to be reflected in constructors.
- Change truth table macros so that going forward NETLIST_END and
TRUTH_TABLE_END can be replaced by a closing curly brace. netlists can
than use curly braces enclosed blocks.
- more clang-format
- removed some macros completely
- all derived classes from base_device_t now don't use macros
any longer.
- as a result, delegator_t was removed. This class was only used
to support macros :-(
-----------------------------------
a2600.xml: Asteroids (PAL, rev. 06) [Guru]
Clones promoted to working
----------------------------
Super Treasure Island (Italy, v1.6) [Ivan Vangelista]
- tankbust.cpp: used finders, logmacro and other small cleanups
* Made the Spectrum/8 firmware selectable as a card BIOS option.
* Added a palette device for the Spectrum/8 so it can be seen in the
graphics viewer.
* Initialise enough members of the Spectrum PDQ device class to not hang
a debug build.
* Got the code of the Spectrum/8 and Spectrum PDQ more in line with each
other.
* Implemented sync pulse width registers and moved sync to be logically
at the end of the line/frame.
* Fixed vertical offset in 480i mode and made vertical blanking
interrupt fire at field frequency.
* bus/nubus: Started emulating SuperMac Spectrum/8 CRTC.
* bus/nubus: Respect Apple 4•8 screen base register.
* cpu/m68000: Fixed disassembly of bit field extract instructions.
* Also cleaned up data plugin a little.
* moved manufacturer / system specifics into subclasses (eg. some bwb configs) [David Haywood]
* identified correct reel setups for many sets, allowing them to boot further [David Haywood]
* added some default input configurations for games needing stake keys and percent keys so that they boot by default [David Haywood]
* moved some sets around based on the machine type [David Haywood]
* adjusted AY hookup to keep 'Four More' happy [AJR]