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
* 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.
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]
-----------------------------------
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
emu/schedule.cpp: Fixed a few more pessimising assumptions. Gains a few
percent in Ketsui and SNES SuperFX.
util/endianness.h: Added some more operations on endian-swizzlers.
Changed a few more drivers to use them.
sun2.cpp: Fixed uninitialised variable that could cause corrupt video.
Fixed some issues with Visual Studio project generation after the
changes to Windows resource creation.
----------------------------
Borderline (Tranquillizer Gun conversion) [anonymous]
New working clones
------------------
Beta Force [anonymous]
- astinvad.cpp, rollerg.cpp, shootout.cpp: used finders, derived classes and other minor cleanups
Optimised the scheduler's handling of unscheduled timers - gives a 50%
performance improvement in some timer-heavy drivers.
Added better endianness swizzling helpers.
Got rid of some of the OSD input modules' dependence on concrete input
classes from emu.
* Moved protection simulation to devices, and got more games to boot.
* Corrected lamp output mapping for most games.
* Correctly identified more games, and removed bad dumps.
* Organised sets better, and cleaned up some of the implementation.
* Got rid of the special-casing for the "mess" subtarget name.
* Got rid of the MESS-specific Windows resources, emuator info source
and man page.
* Added subtarget name to the internal name and original name in Windows
resources.
-ui: Put the system-specific items on the input settings menu together,
and fixed the crosshair visibility settings.
Added menus for controlling toggle inputs, and showing recognised input
devices and control state. Moved input menu options off main menu to a
submenu, as there are a lot of them now.
Moved menu heading drawing into base class, added headings to more
menus, and made headings more consistent with the menu items used to
reach them. Also made terminology more consistent.
Changed the default names for buttons and hat switches/D-pads to use
1-based numbering. DirectInput still returns 0-based button numbers for
some devices.
Removed local copy of MinGW xaudio2.h as it’s now included in the MSYS2
package. Also fixed building the DirectSound sound output module with
the SDL OSD on Windows - the Windows headers are sensitive to include
order.
Started adding documentation for menus, to hopefully help people find
menus they remember seeing but can't recall how to access.
For translators, this makes terminology more consistent. In particular:
* "Settings" is preferred over "configuration" in a number of places, as
the latter can be construed as referring specifically to settings
stored in .cfg files in the cfg_directory folder. Also, references to
saving machine configuration could be interpreted as relating to the
settings on the "Machine Configuration" menu.
* The controls on host input devices (e.g. keys, buttons, joystick axes)
are referred to as "controls", while emulated inputs are referred to
as "inputs".
* The menus for assigning host controls to emulated inputs are called
"input assignments" menus to distinguish them from other input
settings menus.
* Combinations of controls that can be assigned to emulated inputs are
referred to as "combinations" rather than "sequences".
* The potentially confusing term "ROM set" has been removed altogether.
Use "short name" to refer to a device or system's identifier.
* "System" is used in almost places to refer to a complete, runnable
system rather than "Machine".
* "Driver" is now only used to refer to source files where systems or
devices are defined - it is no longer used to refer to individual
systems.
* A few more menus have message context for the messages. This makes it
a bit easier to guess where the messages are used. It also means you
can use different translations in different places if necessary (e.g.
if the same English text should be translated differently as an item
in one menu and as a heading in another).
- Every file in src/mame/{includes,drivers,audio,machine} with the
exception of konamiic.txt has to appear in one and only one of the
projects of arcade.lua or mess.lua (ignoring mameshared)
- Files in mameshared must exist in mame.lua
* cpu/dsp56156: Fixed ANDI, fixed BFCLR errata, fixed DEC24 not affecting flags.
* cpu/dsp56156: Added proper devcb_write16 for Port C output.
* plygonet.cpp: Fixed banking and tightened up VRAM access.
* plygonet.cpp: Account for endianness in tilemap accesses.
* plygonet.cpp: Switched to logmacro, merged into one file, and general code cleanup.
New working machines
-----------------------------------
Micromint SB180 [Miodrag Milanovic]
-z180: implemented ASCI serial communication [Miodrag Milanovic]
-tim011: hookup serial keyboard [Miodrag Milanovic]
-20pacgal: Add support for terminal
* Make netlist/plib noexcept issue workaround trigger for clang 8 or
Apple clang 11.0.0.
* Disable lifetime DSE optimisation for GCC 10.2 (this may be an issue
in GNU libstdc++ rather than GCC itself - using compiler version as a
proxy for standard library version is bad, but it's the path of least
resistance for now).
Updated Space Invaders C.V. and Space Invaders Part II input definitions
based on schematics and manuals.
Got Space Invaders specific stuff out of the Midway 8080 B/W base class.
Got some of the game-specific stuff out of the _8080bw_state class.
It's still a bit of a mess because sound hardware is implemented in the
driver classes so some games pull in a more derived class than they
really should just for sound handlers.
Got rid of the duplicate joystick inputs in rollingc.
Fixed cocktail mode input and DIP switches in a few games.
-----------------------------------------
Tinker Bell [Darksoft, Team Europe, R. Belmont]
segam1.cpp: removed and games merged into the new segasm1.cpp. [R. Belmont]