Commit Graph

4129 Commits

Author SHA1 Message Date
Vas Crabb
871837b123 More quality of life features for new source layout:
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.
2022-06-29 01:29:04 +10:00
Miodrag Milanović
1442ceeb5a
Prevent src/devices from inadvertently including headers from src/mame. (#9996) 2022-06-28 19:04:31 +10:00
Vas Crabb
513e30cbbb Added make opions for filter file, adjusted source path display.
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.
2022-06-28 16:33:06 +10:00
Vas Crabb
77525a0d0f Converted nl subtarget to use a filter rather than a script and driver list. 2022-06-28 01:47:00 +10:00
Vas Crabb
ab6237da82 Eliminated cross dependencies between driver projects.
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
2022-06-27 18:06:20 +10:00
Vas Crabb
06a3054900 Reduced project cross-dependencies, slightly improved renaming script. 2022-06-27 17:06:39 +10:00
Vas Crabb
38fed2ff78 bus/nubus: Got rid of CRTC hacks in Macintosh Display Card emulation.
* 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.
2022-06-25 10:27:36 +10:00
Vas Crabb
af97d42dd3 bus/nubus: More Mac video card improvements.
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.
2022-06-24 07:05:48 +10:00
AJR
e50b51fe78 pc_kbd: Add emulation of Cherry G80-1500 keyboard, minus smartcard reader 2022-06-23 08:24:58 -04:00
Vas Crabb
449f65cfc4 bus/nubus: More improvements to SuperMac Spectrum video cards.
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]
2022-06-23 07:05:46 +10:00
Nigel Barnes
1ebcd7cfd5 bus/archimedes/podule: Added Hard Disk podules (not working).
- Acorn AKD52 Hard Disc Podule
- Computerware Hard Disk Podule
- Morley Electronics Hard Disc Podule
- Watford Electronics Archimedes Hard Disk Podule
2022-06-22 21:40:55 +01:00
Ivan Vangelista
89d81a5b51 New machines marked as NOT_WORKING
----------------------------------
unknown Zilec game on Blue Print hardware [Andy Walker (of AW Electronics) , Dr. Alan Meades , Hammy, Porchy]
2022-06-21 18:25:47 +02:00
Ivan Vangelista
e6477ba68c New working software list additions
-----------------------------------
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
2022-06-20 17:02:12 +02:00
Vas Crabb
60179d8c95 Acknowledge presence of circular dependencies to keep GNU ld happy on Linux. 2022-06-17 23:51:57 +10:00
AJR
3a66b9211f mc68hc11z1, cfp1080s: Separate source file for MCU; add numerous logging stubs 2022-06-16 20:35:41 -04:00
Vas Crabb
94c22aaf78 More scheduler optimisation, Visual Studio build fixes, and cleanup.
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.
2022-06-17 05:36:24 +10:00
Ivan Vangelista
662747fb22 Clones promoted to working
----------------------------
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
2022-06-16 17:12:19 +02:00
Vas Crabb
1964365f34 Optimisation, and baby steps towards untangling stuff:
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.
2022-06-16 03:32:46 +10:00
David Haywood
468ba897f6
MPU4 refactoring, reverse engineering, notes etc. (#9893)
* 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.
2022-06-15 16:35:16 +10:00
Vas Crabb
d8854e4e55 Updated scripts to support SOURCES= builds after the reorganisation happens. 2022-06-15 05:07:09 +10:00
Olivier Galibert
e76d23fc73 saa7191: Move to devices/machine too 2022-06-14 12:07:55 +02:00
Olivier Galibert
58650bd681 at, cammu: kick upstairs too 2022-06-14 12:07:55 +02:00
Vas Crabb
540426ea91 Various cleanups:
* vsystem.cpp: Modernised code a little.
* upscope.cpp: Put code in anonymous namespace.
* Reduced redundancy in more fruit machine layouts.
2022-06-14 17:24:46 +10:00
Ivan Vangelista
e1d00b62ba New machines marked as NOT_WORKING
----------------------------------
Magic Touch [Ivan Vangelista]
2022-06-13 22:56:46 +02:00
Olivier Galibert
ec1cdc738c archimedes_keyb: also kick upstairs in devices/machine 2022-06-13 19:14:39 +02:00
Olivier Galibert
0ed8bbcab7 fm_scsi: kick upstairs in devices/machine 2022-06-13 19:14:39 +02:00
Curt Coder
2cce99c452 New machines marked as NOT_WORKING
----------------------------------
Luxor X37 (prototype) [Dataindustrier AB DIAB Intressegrupp, Curt Coder]

New NOT_WORKING software list additions
---------------------------------------
x37_flop: ABCenix, cremount [Dataindustrier AB DIAB Intressegrupp, Curt Coder]
2022-06-13 15:20:58 +03:00
Vas Crabb
74fe6e9d5c -Got rid of some legacy MESS support glue.
* 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.
2022-06-13 16:53:23 +10:00
Vas Crabb
f47f9c3db3
ui, docs: Added menus to fill a couple of gaps, improved consistency. (#9915)
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).
2022-06-11 21:47:19 +10:00
hap
5214d7f31c mess.lua: place hh_ collection drivers and their subclasses together 2022-06-11 11:22:23 +02:00
hap
f37ea30bfc rename headonb.cpp to efg8080.cpp 2022-06-10 20:25:59 +02:00
arbee
7534ecd5f6 New machines added as MACHINE_NOT_WORKING
-----------------------------------------
M3001 [Darksoft, Team Europe, R. Belmont]
M4001 [Darksoft, Team Europe, R. Belmont]
2022-06-10 11:22:47 -04:00
hap
63e595ae36 pong: remove obsolete external version 2022-06-10 15:27:19 +02:00
Robbbert
6e1ea31cc3 Fixed MESS build. 2022-06-10 00:39:17 +10:00
Olivier Galibert
df182a28b9 Cleanup of the source files lists for src/mame:
- 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
2022-06-09 15:02:29 +02:00
MooglyGuy
c046ba26c0
cpu/dps56156, plygonet.cpp: DSP56156 fixes and plygonet.cpp cleanup: (#9894) [Ryan Holtz]
* 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.
2022-06-09 03:26:49 +10:00
Olivier Galibert
4fdaa5733a How did the CI manage to compile already? 2022-06-08 18:50:21 +02:00
Olivier Galibert
673dc793b1 Remove header file that doesn't exist anymore from tiny.lua and ci.lua 2022-06-08 18:44:34 +02:00
hap
35df8085b7 segas16sb: move isgsm driver to its own file 2022-06-06 13:46:52 +02:00
Miodrag Milanovic
da0cf02007 New working clones
------------------
RC2014 Micro [Miodrag Milanovic]
SC203 - Modular Z180 Computer [Miodrag Milanovic]
SC105 - Modular Backplane (RC2014) [Miodrag Milanovic]
SC112 - Modular Backplane (RC2014) [Miodrag Milanovic]
SC116 - Modular Backplane (RC2014) [Miodrag Milanovic]
SC133 - Modular Backplane (RC2014) [Miodrag Milanovic]
2022-06-06 13:37:08 +02:00
Miodrag Milanović
b26c4ed848
Z180 ASCI (#9762)
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
2022-06-06 10:48:41 +02:00
arbee
536755e380 apple2: support for the Excel-9 6809 card, which runs Flex09. [Rob Justice, R. Belmont] 2022-06-05 22:27:26 -04:00
ClawGrip
472a7150ed
New NOT_WORKING machine (#9862)
* New NOT_WORKING machine
-----------------------------------
Frenzy Express [Museo del Recreativo]
2022-06-05 17:39:05 -04:00
Vas Crabb
ea1e51636c Adjust toolchain versions for triggering workarounds:
* 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).
2022-06-06 04:00:02 +10:00
Vas Crabb
62c35fe3ce
8080bw.cpp, mw8080bw.cpp: Some cleanup/untangling: (#9884)
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.
2022-06-05 23:37:21 +10:00
Nigel Barnes
e0b3f53210 bus/bbc/userport: Added SD Card, and SD Turbo interfaces (not working). 2022-06-05 12:06:40 +01:00
Nigel Barnes
3a49ac4301 bus/bbc/modem: Added Master Extra User Port device. 2022-06-05 12:06:40 +01:00
Nigel Barnes
2094666305 New working software list additions
-----------------------------------
electron_cart: ElkSD Plus 1 [Ramtop, Nigel Barnes]
bbcm_cart: Master SD [Ramptop, Nigel Barnes]
2022-06-05 12:06:40 +01:00
Nigel Barnes
b788307114 bus/electron: Added the ElkSD64 and ElkSD128 Electron SD interfaces. 2022-06-05 12:06:40 +01:00
arbee
ce212a5e9a New machines added as MACHINE_NOT_WORKING
-----------------------------------------
Tinker Bell [Darksoft, Team Europe, R. Belmont]

segam1.cpp: removed and games merged into the new segasm1.cpp. [R. Belmont]
2022-06-04 21:19:44 -04:00