Commit Graph

13294 Commits

Author SHA1 Message Date
AJR
e41f07fb53 act5a: Move to separate driver; identify what 9316 ROMs do; add keys and DSW definitions (nw) 2018-08-08 17:25:50 -04:00
mooglyguy
0f028a8bd2 -mac: MACHINE_CONFIG removal, nw 2018-08-04 23:03:13 +02:00
Olivier Galibert
d6d228f5f1 I did say it would be dreafully stupid (nw) 2018-08-03 12:40:50 +02:00
Olivier Galibert
639c9b85fc memory: Allow simplified versions of handlers [O. Galibert]
A standard memory handler has as a prototype (where uX = u8, u16, u32 or u64):
  uX device::read(address_space &space, offs_t offset, uX mem_mask);
  void device::write(address_space &space, offs_t offset, uX data, uX mem_mask);

We now allow simplified versions which are:
  uX device::read(offs_t offset, uX mem_mask);
  void device::write(offs_t offset, uX data, uX mem_mask);

  uX device::read(offs_t offset);
  void device::write(offs_t offset, uX data);

  uX device::read();
  void device::write(uX data);

Use them at will.  Also consider
(DECLARE_)(READ|WRITE)(8|16|32|64)_MEMBER on the way out, use the
explicit prototypes.

Same for lambdas in the memory map, the parameters are now optional
following the same combinations.
2018-08-02 21:08:47 +02:00
Vas Crabb
cdb956fd34 (nw) apparently msys glibstdc++ doesn't have that std::abs overload... 2018-08-02 23:42:19 +10:00
Vas Crabb
6ea9ff9042 (nw) Further layout work:
* Allow <orientation> and <color> to work on group references
* Fix some corner cases where group bounds could be miscalculated
* Fix a corner case where MAME could incorrectly refuse to instantiate groups
* Add more checks to complay.py
* Document more of the layout format
2018-08-02 23:11:17 +10:00
mooglyguy
b5ff656e9a -c1541, c1571, c2031, c1551, rastersp: Removed MCFG and MACHINE_CONFIG usage. [Ryan Holtz]
-model3: Some basic MACHINE_CONFIG cleanup, nw

-pla: Added PLS100 device, nw
2018-08-01 04:45:25 +02:00
Vas Crabb
781d943b36 (nw) more layout documentation 2018-07-31 21:40:20 +10:00
Vas Crabb
8999ac2c15 (nw) add warning comment to dangerous API
I'm not sure this API is a great idea - see inline comment on 796abaf7f3

I realise it seems intuitive, but it breaks with a use-after-free (not even a
validity error) if you replace/remove the target device.  Implementing it in a
way that isn't fragile and doesn't hurt the performance of -romident,
-validate and -listxml seems impossible.  If it causes developer confusing and
things start breaking, back to literal tags we go for this case.
2018-07-31 16:12:22 +10:00
AJR
279d066e1b devfind.h: Fix the build by removing calls that don't exist when DeviceClass happens to be an interface (nw) 2018-07-31 00:12:07 -04:00
mooglyguy
0f21c3fc3a -8042kbdc, mb89352, mc6854: Removed legacy devcb accessors. [Ryan Holtz] 2018-07-31 04:56:22 +02:00
Olivier Galibert
796abaf7f3 devfind: Allow set_tag() with a reference or a pointer to a device [O. Galibert] 2018-07-30 23:40:54 +02:00
Vas Crabb
0ce07a8a1e (nw) more render work:
* Clean up some corner cases in layouts with repeating blocks
* Make complay.py validate many more elements and attributes
* Make complay.py easier to use for just validating a layout
* Remove redundant view from Sega VMU layout
* Make buttons visually respond to input in whousetc.lay
* Add view with LED displays as well as terminal for aim65_40 and use repeats
* Clean up some outdated "game" terminology in clifront.cpp
* Initiaise a couple of members in tap/tun network module
* Start documenting layout format
2018-07-31 04:18:28 +10:00
smf-
c70d3cf470 don't try to update m_totalcycles on devices with a zero clock, as it will crash. (nw) 2018-07-29 16:02:01 +01:00
smf-
c41cf669b8 Revert part of 20b5f5d0e6 2018-07-29 16:02:00 +01:00
smf-
3a732c9b1c Fix setting sample rate back to zero & crash for synchronous streams when rate is zero. This fixes all reported bugs. (nw) 2018-07-29 13:47:56 +01:00
Olivier Galibert
64afd77e7c Revert part of 20b5f5d0e6
This is damn sensitive code, and generates differences all over the
place we don't really explain.  The changes should be justified by
themselves and tested in collaboration with Tafoid to ensure the
differences are not a problem.
2018-07-29 13:07:56 +02:00
Vas Crabb
9164b0c5bd ignore SVG dimensions, like we always did (nw) 2018-07-28 15:04:40 +10:00
smf-
20b5f5d0e6 vgmplay: start all clocks at zero and reset all sound chips on a song change [smf] 2018-07-27 23:31:57 +01:00
Olivier Galibert
f9b28ee6f5 Prevent aggressive incompetence (nw) 2018-07-27 22:34:45 +02:00
Vas Crabb
2968620098 make rectangle work better with constexpr, change many things to use designated getters/setters (nw) 2018-07-28 02:27:53 +10:00
AJR
a1c3a96a83 Mask address expressions in debug disasm view 2018-07-26 22:12:55 -04:00
AJR
8de41654fa debugcpu.cpp: Move scripting functions down into console (nw) 2018-07-26 14:41:14 -04:00
AJR
6024c958b9 debug/express.cpp: Use std::deque for token stack (nw) 2018-07-26 14:40:44 -04:00
Vas Crabb
9db24aa2e9 Better support for screen orientation/geometry:
* Eliminates the need for the horizontal/vertical/LCD/SVG layout files
* Screens can now have orientation and physical aspect ratio specified
* RASTER/VECTOR defaults to 4:3, LCD/SVG defaults to square pixels at config time
* System orientation is applied on top of screen orientation

Automatically generated single-screen views and orientation flags in XML
output now work correctly for systems with multiple screens in different
geometries/orientations, e.g. housemnq, rocnms, stepstag, or netmerc.

The "core rotation options" only interact with system orientation.
Allowing multi-screen systems to work well with one monitor per emulated
screen is a complex topic.  System orientation also affects the GFX
viewer while screen orientation doesn't.  The orientation displayed in
the system selection menu is from the system orientation.

Let me know if I've broken any systems or use cases.

Also, add save state support for std::array/C array nested to any depth.
2018-07-26 23:11:02 +10:00
Patrick Mackinlay
890ae60839 nscsi_cd: support media changes (nw)
Together, these changes enable softlist CD-ROM media changes for InterPro, and presumably other nscsi_cd systems. Haven't looked into how other CD-ROM devices work, but the romload fix should apply equally to them too.
* nscsi_cd: detect and respond to media changes
* romload: fix disk entry processing
2018-07-23 20:42:08 +07:00
Vas Crabb
c0ab1c5aa4 (nw) srcclean and some cleanup:
* Make more #include guards follow standard format - using MAME_ as the prefix makes it easy to see which ones come from our code in a preprocessor dump, and having both src/devices/machine/foo.h and src/mame/machine/foo.h causes issues anyway
* Get #include "emu.h" out of headers - it should only be the first thing in a complilation unit or we get differences in behaviour with PCH on/off
* Add out-of-line destructors to some devices - it forces the compiler to instantiate the vtable in a certain location and avoids some non-deterministic compiler behaviours
2018-07-22 20:41:57 +10:00
Vas Crabb
6669489679 allow repeating elements and groups - useful if you need e.g. a lot of numbered labels, but it limits complay.py's ability to check for invalid references as it can't evaluate expressions (nw) 2018-07-22 09:52:50 +10:00
Vas Crabb
035a37c914 remember to unwind if environment changes (nw) 2018-07-22 06:19:26 +10:00
Vas Crabb
dce955c68d rendlay: allow user variables and repetition in layouts, also add a few more predefined variables 2018-07-22 03:22:31 +10:00
mooglyguy
eed782f1e3 ps2sony: Some basic VU1 support, major file reshuffling, nw 2018-07-21 10:07:00 +02:00
AJR
445c94120b pc9801.cpp: Eliminate bogus XTALs (nw) 2018-07-21 00:39:21 -04:00
Vas Crabb
f432c4475a render: improve behaviour in general for systems with two screens (sorry about occasional extra warning messages, it's unavoidable) 2018-07-20 02:38:09 +10:00
Vas Crabb
f18c7cd65f Allow per-device internal layouts and remove some more MCFG_ macros.
Input and screen tags are now resolved relative to a layout's owner
device.

Easy way to demonstrate is with: mame64 intlc440 -tty ie15

Previously you'd only get the IE15 terminal's layout and you'd be unable
to use the INTELLEC 4/40 front panel.  Now you'll get the choice of
layouts from both the system and the terminal device in video options.
2018-07-16 16:26:01 +10:00
Olivier Galibert
177731f5dc Fix some watchpoints (nw) 2018-07-13 15:20:08 +02:00
Vas Crabb
1ee5c62a21 cleanup (nw) 2018-07-12 11:14:59 +10:00
Olivier Galibert
d5d82fa30a Watchpoint fixes (segfaults, wpclear not clearing) (nw) 2018-07-09 23:39:29 +02:00
Vas Crabb
82c6d7dbc5 Allow layouts to specify screen tags rather than indices - makes order of instantiation irrelevant in Model 1 etc. 2018-07-10 04:26:57 +10:00
Vas Crabb
25ee3f9c3f I give in, GCC is screwed (nw) 2018-07-09 19:20:17 +10:00
AJR
a7758702e2 v550: Add main XTAL and derived clocks (nw) 2018-07-08 13:21:16 -04:00
Vas Crabb
ee2cfba202 Hand the delegate mask down the line (nw) 2018-07-08 21:51:17 +10:00
Vas Crabb
1122abfcee if this doesn't work around GCC 8, file a bug with GNU (nw) 2018-07-08 15:19:03 +10:00
smf-
ab0a608f99 and again (nw) 2018-07-07 23:13:58 +01:00
smf-
fe52b5ddfc where did that come from (nw) 2018-07-07 23:11:04 +01:00
smf-
e0dd06bbf4 remove typename which MSVC wanted, will try to find another way (nw) 2018-07-07 23:07:15 +01:00
AJR
dc43087ee5 devcb.h: Looks like GCC does require typename (nw) 2018-07-07 17:48:57 -04:00
AJR
c8f77c0d3d devcb.h: Further attempted GCC build fixing (nw) 2018-07-07 17:46:52 -04:00
AJR
2b802ba442 devcb.h: Attempted fix for GCC build (nw) 2018-07-07 17:36:51 -04:00
smf-
faac6a63e7 Fixes for building with Microsoft Visual Studio 2015. (nw) 2018-07-07 21:46:01 +01:00
Vas Crabb
28ffb7fb98 stupid helper (nw) 2018-07-08 00:48:57 +10:00
smf-
b747b711bb fix building with clang 6.0.1 (nw) 2018-07-07 11:28:01 +01:00
Vas Crabb
27d0cb90ff (nw) well that was dumb - fix crashing ATA devices, slightly modernise some code 2018-07-07 09:37:57 +10:00
Vas Crabb
c3fb11c2c9 devcb3
There are multiple issues with the current device callbacks:
* They always dispatch through a pointer-to-member
* Chained callbacks are a linked list so the branch unit can't predict the early
* There's a runtime decision made on the left/right shift direction
* There are runtime NULL checks on various objects
* Binding a lambda isn't practical
* Arbitrary transformations are not supported
* When chaining callbacks it isn't clear what the MCFG_DEVCB_ modifiers apply to
* It isn't possible to just append to a callback in derived configuration
* The macros need a magic, hidden local called devcb
* Moving code that uses the magic locals around is error-prone
* Writing the MCFG_ macros to make a device usable is a pain
* You can't discover applicable MCFG_ macros with intellisense
* Macros are not scoped
* Using an inappropriate macro isn't detected at compile time
* Lots of other things

This changeset overcomes the biggest obstacle to remving MCFG_ macros
altogether.  Essentially, to allow a devcb to be configured, call
.bind() and expose the result (a bind target for the callback).  Bind
target methods starting with "set" repace the current callbacks; methods
starting with "append" append to them.  You can't reconfigure a callback
after resolving it.  There's no need to use a macro matching the
handler signatures - use FUNC for everything.  Current device is implied
if no tag/finder is supplied (no need for explicit this).

Lambdas are supported, and the memory space and offset are optional.
These kinds of things work:
* .read_cb().set([this] () { return something; });
* .read_cb().set([this] (offs_t offset) { return ~offset; });
* .write_cb().set([this] (offs_t offset, u8 data) { m_array[offset] = data; });
* .write_cb().set([this] (int state) { some_var = state; });

Arbitrary transforms are allowed, and they can modify offset/mask for example:
* .read_cb().set(FUNC(my_state::handler)).transform([] (u8 data) { return bitswap<4>(data, 1, 3, 0, 2); });
* .read_cb().set(m_dev, FUNC(some_device::member)).transform([] (offs_t &offset, u8 data) { offset ^= 3; return data; });

It's possible to stack arbitrary transforms, at the cost of compile
time (the whole transform stack gets inlined at compile time).  Shifts
count as an arbitrary transform, but mask/exor does not.

Order of mask/shift/exor now matters.  Modifications are applied in the
specified order.  These are NOT EQUIVALENT:
* .read_cb().set(FUNC(my_state::handler)).mask(0x06).lshift(2);
* .read_cb().set(FUNC(my_state::handler)).lshift(2).mask(0x06);

The bit helper no longer reverses its behaviour for read callbacks, and
I/O ports are no longer aware of the field mask.  Binding a read
callback to no-op is not supported - specify a constant.  The GND and
VCC aliases have been removed intentionally - they're TTL-centric, and
were already being abused.

Other quirks have been preserved, including write logger only logging
when the data is non-zero (quite unhelpful in many of the cases where
it's used).  Legacy syntax is still supported for simple cases, but will
be phased out.  New devices should not have MCFG_ macros.

I don't think I've missed any fundamental issues, but if I've broken
something, let me know.
2018-07-07 02:40:29 +10:00
Vas Crabb
d4e6275690 misc cleanup and stuff to make macro removal easier (nw) 2018-07-05 23:05:45 +10:00
mooglyguy
9d509bd29c Fix divtlb crash, nw 2018-07-05 13:14:18 +02:00
Olivier Galibert
5725df5542 *DUH* (nw) 2018-07-04 16:44:43 +02:00
Olivier Galibert
5d04fdd06a Ensure split accesses are always done in increasing addresses order (nw) 2018-07-04 10:07:40 +02:00
Olivier Galibert
71d4e521d8 Various watchpoint fixes (nw) 2018-07-01 22:03:51 +02:00
Olivier Galibert
b184ebfd9d Brown paper bag time (nw) 2018-06-30 10:59:11 +02:00
AJR
7c18a71442 A better way to make friends (nw) 2018-06-29 18:29:37 -04:00
Olivier Galibert
39c514fada Fix msvc (?) problem (nw) 2018-06-29 23:19:13 +02:00
Olivier Galibert
b511b8ff39 Oops (nw) 2018-06-29 22:54:21 +02:00
Olivier Galibert
a704ed7b1b emumem: Backend modernization [O. Galibert] 2018-06-29 20:04:28 +02:00
mooglyguy
eb5a8a3dc8 -ps2sony: Fleshing out the skeleton driver. [Ryan Holtz]
* Added ps2timer device to encapsulate Playstation 2 timers.
  * Temporarily hacked R5900 core to always have scratchpad RAM mapped at 0x70000000.
  * Added reference counting to divtlb so that it does not unmap pages that are still shared with other entries.
  * Added a considerable amount of logging to ps2sony.cpp.

-mips3: Added basic Emotion Engine support. [Ryan Holtz]
  * Added S bit to TLB mapping.

  * Added support for VSUB, VIADD, VSQI, VISWR, VOR, LQ, SQ, MFSA, MTSA, MFHI1, MFLO1, MULT1, DIV1, DIVU1, PEXTLW, PADDUW, PMFHI,
  PMFLO, PCPYLD, PCPYUD, SQC2, LQC2 opcodes. [Ryan Holtz]
2018-06-28 18:24:16 +02:00
Vas Crabb
8aa76c1011 Merge tag 'mame0199'
MAME 0.199
2018-06-27 11:54:12 +10:00
AJR
fefcae883f x68000: Compute refresh rates from CRTC parameters and known XTAL values 2018-06-25 20:59:31 -04:00
Vas Crabb
3a1182bdd4 damn PCH (nw) 2018-06-25 14:36:10 +10:00
Vas Crabb
fdc9f38a8e consider double epsilon when comapring crystal values 2018-06-25 14:35:04 +10:00
AJR
b3afc83bde Allow passing std::unique_ptr<TYPE> directly to save_pointer and remove now-superfluous .get() in many drivers/devices (nw) 2018-06-24 09:08:33 -04:00
AJR
297b99c0fa Move ROM loading macros to romentry.h and remove romload.h from emu.h (nw) 2018-06-24 09:05:55 -04:00
Patrick Mackinlay
87e96248f1 debugger: make save/load support virtual memory (nw) (#3683)
This makes these commands useful and consistent with dump in a virtual memory environment. One minor issue is what to do with save for an unmapped memory address: the approach taken here is to write the space.unmap() value, which seems the least harmful. On load, unmapped addresses are not written to, meaning that save/load with a constant address map work as expected.
2018-06-23 17:52:01 +02:00
Patrick Mackinlay
a714997f43 debugger: add command for go_exception (#3682) 2018-06-23 17:41:01 +02:00
hap
0275673dba efdt: XTAL label 14.318 is obviously a common 4*NTSC XTAL (nw) 2018-06-16 15:58:39 +02:00
Vas Crabb
521bf0b88c make it possible to set screen update functions without macros without syntax that looks absolutely terrible - examples will come with devcb3 (nw) 2018-06-16 22:32:22 +10:00
hap
1959691bf6 fidel6502: thanks to Berger's schematics, correct fpres RAM and IRQ and assume same irq on similar boards (nw) 2018-06-16 14:09:11 +02:00
AJR
a69902b460 Remove emupal.h from emu.h (nw) 2018-06-13 14:56:22 -04:00
Vas Crabb
40fb13e6e7 lift some stuff needed by devcb3 out of address map entry (nw) 2018-06-13 13:25:15 +10:00
AJR
54a6f1e9e4 devcb: Despite the variable name, this string is not a tag here (nw) 2018-06-07 21:43:27 -04:00
mooglyguy
b66e57a15c Removed nearly all custom MCFG macros from eepromser, migrated more of policetr to newer syntax, nw 2018-06-07 21:49:11 +02:00
Vas Crabb
93eaa6a494 as if millions of this pointers suddenly cried out in terror, and were suddenly silenced
* streamline templates in addrmap.h
* get rid of overloads on read/write member names - this will become even more important in the near future
2018-06-08 01:29:39 +10:00
Vas Crabb
befb02ba66 Next-gen config: make address map config not look like arse 2018-06-06 23:39:57 +10:00
AJR
1c9092981c diexec.cpp: Better fix for indentation (nw) 2018-06-03 21:00:57 -04:00
AJR
269b06a99b diexec.cpp: Fix formatting and validation mistake (nw) 2018-06-03 19:17:20 -04:00
Ted Green
18edbdcc71 Update dcs audio to get sf2049 closer to working. 2018-06-03 15:34:02 -06:00
mooglyguy
daa92575c4 Point conceded; it is not, at this point, sensible to make m_vblank_interrupt_screen a finder. Indeed, the need for it should be removed from diexec entirely. nw 2018-06-03 21:13:50 +02:00
mooglyguy
df821c674d No. 2018-06-03 19:54:49 +02:00
AJR
7bca70d6fc Back out diexec changes from commit 2cdb153103 (nw) 2018-06-03 13:36:12 -04:00
RobertoFresca
b33e3db5c7 New working machines
--------------------
El Fin Del Tiempo [Esther Barranco, ARPA, Juegos 2.0, Recreativas.org, Roberto Fresca, The Dumping Union]
2018-06-02 09:06:35 -03:00
Vas Crabb
fd41b35c2a (nw) allow BIOS declaration before first ROM region 2018-06-02 03:33:25 +10:00
cracyc
dabbd32a62 osdnet: don't call it close (nw) 2018-06-01 08:41:30 -05:00
cracyc
71046c63c2 osdnet: prevent segfault at stop and when selecting device from menu (nw) 2018-06-01 08:14:05 -05:00
Vas Crabb
ff9123d8ef fixup, improve validation (nw) 2018-06-01 21:50:19 +10:00
mooglyguy
2cdb153103 svis_snd cleanups, nw 2018-06-01 11:41:52 +02:00
Vas Crabb
d96189dfc9 C++14 has one of these in the standard library (nw) 2018-06-01 13:07:01 +10:00
Vas Crabb
062027276e addrmap.h: reduce code duplication and add support for device finders in more places in memory maps 2018-06-01 11:35:02 +10:00
Vas Crabb
44243dcac8 devfind: add asserts to detect being resolved multiple times (nw) 2018-05-31 12:46:34 +10:00
Vas Crabb
550017a2d0 devfind: add asserts to detect tag being set after object resolution (nw) 2018-05-31 12:44:50 +10:00
Vas Crabb
5be75c4a63 Move the +1 to the proper place in the ROM BIOS macros - that's been
confusing people for far too long.  Yes, this is a change in behaviour.

Add a valdiation check for ROMs with BIOS flag set that are
unselectable, fix the things it uncovers.

(nw) Fix other random stuff.
2018-05-29 23:57:09 +10:00
MetalliC
7d77ee4407 motogonki: few more, correct CPU clock, document hidden test mode (nw) 2018-05-27 00:32:55 +03:00
Vas Crabb
c15531dddc srcclean (nw) 2018-05-27 04:48:13 +10:00
Nigel Barnes
c94bfc2f40 acrnsys1: Add XTAL and correct year (nw) 2018-05-25 11:54:37 +01:00
Vas Crabb
5e856f77f6 voodoo: deal with needing to be able to configure screen/CPU or set them at start in a safer way
devfind: revert previous change - if finders aren't set in stone after device_resolve_objects it's going to lead to all kinds of hard-to-diagnose bugs (I'll add more checks for this some time after release)

(nw) also clean up rotting tabulation
2018-05-23 17:25:17 +10:00
AJR
adb6044c4f romload.cpp: Eliminate extraneous machine argument (nw) 2018-05-22 19:58:18 -04:00
Olivier Galibert
fdf0c866e2 Uncrappify voodoo pci devices transfert. Fix some paths on midwayic. (nw) 2018-05-22 22:48:16 +02:00
AJR
1fe4b36065 Fix error in debug build with SMS card options (nw) 2018-05-21 03:01:39 -04:00
AJR
49f354d544 Kludge some absolute tag lookups in the core that can't really be helped (nw) 2018-05-21 01:10:27 -04:00
AJR
7c273f213a Remove some machine().device usage from the core (nw) 2018-05-20 18:39:57 -04:00
AJR
09ab222658 Try to fix the build once again (nw) 2018-05-20 15:19:13 -04:00
AJR
182028ea82 Well, that was a bad typo (nw) 2018-05-20 15:16:18 -04:00
AJR
09ed257925 machine().device(tag) is now deprecated (nw) 2018-05-20 14:24:49 -04:00
wilbertpol
2beba4ce73 Replace set_led_value and set_lamp_value with output_finders. [Wilbe… (#3592)
* Replace set_led_value and set_lamp_value with output_finders.  [Wilbert Pol]

* segaufo: keep the 2 bit lamp outputs
2018-05-20 13:27:20 -04:00
AJR
0ba652e723 diexec: Interrupt API changes (nw)
- PULSE_LINE is no longer a value. Existing uses have been changed to pulse_input_line with attotime::zero as the second argument.
- Formerly only INPUT_LINE_NMI and INPUT_LINE_RESET were allowed with PULSE_LINE. INPUT_LINE_NMI no longer receives special handling; instead, CPU devices must specify which of their input lines are edge-triggered and thus may be used with zero-width pulses by overriding the execute_input_edge_triggered predicate. INPUT_LINE_RESET is still special-cased, however.
- execute_default_irq_vector now allows a different default vector to be specified for each input line. This added flexibility may or may not prove useful.
2018-05-18 13:40:29 -04:00
Vas Crabb
11fa3800f3 prune upfront - makes the other stuff cheaper (nw) 2018-05-18 21:00:54 +10:00
Vas Crabb
74ca2733d0 try this for size - emu.h no net change (nw) 2018-05-18 20:45:39 +10:00
Curt Coder
4d3566cfa7 WARNING emu.h recompile!
debugger: Show save state items in alphabetical order in the debugger view. [Curt Coder]
2018-05-18 13:09:00 +03:00
Vas Crabb
166638ce80 Revert "- Removed MACHINE/SOUND/VIDEO _START/_RESET macros. This has the side effect of making machine-config overrides of these much"
This reverts commit c83e2a853d.

Revert "fix compile. (nw)"

This reverts commit a259ba3e36.

GCC is being bad and allowing invalid C++ that other compilers reject.
2018-05-16 21:56:39 +10:00
MooglyGuy
c83e2a853d - Removed MACHINE/SOUND/VIDEO _START/_RESET macros. This has the side effect of making machine-config overrides of these much
uglier, but this is intended to discourage ongoing use, and will be gradually eliminated.
2018-05-16 11:58:08 +02:00
AJR
4308e2a0c7 sound.cpp: Turn this check into an assert now that the caller should prevent this (nw) 2018-05-15 20:28:54 -04:00
AJR
4f13ab7d12 sound.cpp: Perform the sanity check from a0137c10da in a better place (nw, seems to fix assert error) 2018-05-15 19:28:00 -04:00
Olivier Galibert
a0137c10da sound: If stream->update() is done going back in time (originating from
different devices at a different execution point), don't try to generate
a negative number of samples [O. Galibert]

Not sure why that never happened before.  Oh well.
2018-05-15 19:28:34 +02:00
Vas Crabb
2332572800 More cleanup/streamlining of machine configuration and macros:
* Get rid of implicit prefix for GFX decode names and prefix them all
* Get rid of special macro for adding GFXDECODE in favour of constructor
* Make empty GFX decode a static member of interface
* Allow palette to be specified to GFXDECODE as a device finder
* Removed diserial.h from emu.h as it's used relatively infrequently

Also fix darkseal and vaportra propely.  The palette device
automatically attaches itself to a share with matching tag.  The correct
solution here is to rename one or the other out of the way, since it was
never attached to a share before.
2018-05-15 05:43:28 +10:00
AJR
f3d19e977c Make debugger dump command work with unaligned addresses 2018-05-14 08:08:01 -04:00
Olivier Galibert
b9cc6cc893 Fix NATIVE_MASK, should unbreak all non-zero-address-shift CPUs (nw) 2018-05-13 21:49:40 +02:00
Robbbert
4f0431e85a (nw) Fixed spelling mistakes 2018-05-14 00:15:07 +10:00
MooglyGuy
5cc2319a2e Removed DRIVER_INIT-related macros, made driver init entry in GAME/COMP/CONS explicit. (#3565)
* -Removed DRIVER_INIT macros in favor of explicitly-named member functions, nw

* -Removed DRIVER_INIT_related macros. Made init_ prefix on driver initializers explicit. Renamed init_0 to empty_init. Fixed up GAME/COMP/CONS macro spacing. [Ryan Holtz]

* Missed some files, nw

* Fix compile, (nw)
2018-05-13 22:22:22 +09:00
Sven Schnelle
e6b55ad7a6 Add topcat asic (#3558)
* add topcat template

HP topcat was an ASIC used on HP900/300 graphics cards.

Signed-off-by: Sven Schnelle <svens@stackframe.org>

* hook up topcat asic to HP98544

Signed-off-by: Sven Schnelle <svens@stackframe.org>

* topcat: add basic configuration macros for fb planes, height and width

Signed-off-by: Sven Schnelle <svens@stackframe.org>

* hp98544: move logic to topcat video driver

Preparation to support multi plane graphic cards
like the HP98543/98545/98547.

Signed-off-by: Sven Schnelle <svens@stackframe.org>

* xtal: add 35.904MHz XTAL
2018-05-11 17:17:55 -04:00
cam900
4768a27590 topspeed.cpp : Minor cleanups, Add arrays for reduce duplicates (#3454)
* topspeed.cpp : Minor cleanups, Add arrays for reduce duplicates

* topspeed.cpp : Fix compile

* romload.h : Add macro for when 64 bit ROM data bus case
2018-05-12 02:06:06 +10:00
AJR
cb1c49df0b Make "Keypad ," and "Keypad =" standard keys 2018-05-11 10:31:01 -04:00
Olivier Galibert
74301434ae debug: Simplify now obsolete and buggy memory access code [O. Galibert] 2018-05-11 18:23:04 +09:00
Olivier Galibert
4c24f25845 emumem: Rename direct_read_handler to memory_access_cache. Parametrize the template on more information (data width, endianness) to make it possible to turn it into an handler cache eventually, and not just a memory block cache. Make it capable of large and unaligned accesses. [O. Galibert] 2018-05-11 18:23:04 +09:00
Vas Crabb
6c11b3ce01 dsp16: fix condition mask in disassembler (nw)
(nw) remove more MCFG macros and make speaker config more explicit
2018-05-09 19:26:44 +10:00
Vas Crabb
ecfa838fb5 forgot to git add one line again (nw) 2018-05-08 07:52:32 +10:00
Vas Crabb
4ef4464aec Add support for custom device constructors when replacing devices.
Current syntax: MCFG_DEVICE_REPLACE(tag_or_finder, TYPE, ...)

Next-generation syntax: TYPE(config.replace(), tag_or_finder, ...)

(nw) Kill off some more low-value macros that aren't needed any more,
and get rid of the token-pasting voodoo and casts in the discrete sound
macros.
2018-05-08 07:35:22 +10:00
AJR
93ae59e653 dipalette: Fix faulty assertion that was breaking nes_vt.cpp in debug builds (nw) 2018-05-06 09:29:48 -04:00
Vas Crabb
138b60e6c6 (nw) misc follow-up
Fix MT06964

Fix µPD7759 class hierarchy, and reset callback before resolving it
(fixed assert in Sega C2)

Remove some more low-value device add indirection macros, default some
more clocks

Make cards inherit clock from slot by default
2018-05-06 19:19:48 +10:00
Vas Crabb
4ea3cd0bc1 Streamline machine configuration macros - everyone's a device edition.
Start replacing special device macros with additional constructors,
starting with ISA, INTELLEC 4 and RS-232 buses.

Allow an object finder to take on the target of another object finder.

(For a combination of the previous two things in action, see either the
INTELLEC 4 driver, or the Apple 2 PC Exporter card.  Also check out
looping over a device finder array to instantiate devices in some
places.  Lots of things no longer need to pass tags around.)

Start supplying default clocks for things that have a standard clock or
have all clocks internal.

Eliminate the separate DEV versions of the DEVCB_ macros.  Previously,
the plain versions were a shortcut for DEVICE_SELF as the target.  You
can now supply a string tag (relative to current device being
configured), an object finder (takes on the base and relative tag), or
a reference to a device/interface (only do this if you know the device
won't be replaced out from under it, but that's a safe assumption for
your subdevices).  In almost all cases, you can get the effect you want
by supplying *this as the target.

Eliminate sound and CPU versions of macros.  They serve no useful
purpose, provide no extra checks, make error messages longer, add
indirection, and mislead newbies into thinking there's a difference.

Remove a lot of now-unnecessary ":" prefixes binding things relative to
machine root.

Clean up some miscellaneous rot.

Examples of new functionality in use in (some more subtle than others):
* src/mame/drivers/intellec4.cpp
* src/mame/drivers/tranz330.cpp
* src/mame/drivers/osboren1.cpp
* src/mame/drivers/zorba.cpp
* src/mame/devices/smioc.cpp
* src/devices/bus/a2bus/pc_xporter.cpp
* src/devices/bus/isa/isa.h
* src/devices/bus/isa/isa.h
* src/devices/bus/intellec4/intellec4.h
2018-05-06 00:51:27 +10:00
Vas Crabb
32a73f450d Make MCFG_DEVICE_ADD and callable device types more flexible:
* Allows defaulted clocks (see subtle example with vboy)
* Allows additional constructors (see RS232 port in tranz330)
* Allows use of device finder in place of tag in MCFG_DEVICE_ADD
* Requires out-of-line destructor for devices using incomplete types
* Requires XTAL or explicit u32 for clocks for devices with private types

Devices must still define the standard constructor.  When writing
additional constructors, be aware that the constructor runs before
device_add_mconfig in the context of the existing device, not the new
device.  See osborne1, zorba, tranz330, and vboy for examples of this in
use.  Compilation is a bit slower, but this is temporary while
refactoring is in progress.

Eliminated the need for MCFG_SOUND_ROUTE_EX.

Removed macros from slot option configuration - they just obfuscated
code and slowed it down with needless dynamic casts, but didn't actually
simplify it.
2018-05-04 03:01:32 +10:00
Ivan Vangelista
7d3b4eec89 debughlp.cpp: replaced references to 'decrypted opcodes' with 'opcodes', as suggested (nw) 2018-05-02 19:09:33 +02:00
Vas Crabb
8795d80808 Allow devcb to be bound to a device/mixin or the target of a device
finder.  This works outside machine configuration context so the
workarounds in ATA HLE and MSX slots are no longer necessary.  It also
allows reduction in tag repetition in machine configuration (see
converted osborne1.cpp, zorba.cpp or the more extreme tranz330.cpp).

Allow reimagined device instantiation to take a device finder based on
current device being configured to reduce repetition (see tranz330.cpp).
2018-05-02 14:43:01 +10:00
arbee
dd58d907b6 GCC 8 again (nw) 2018-05-01 22:12:25 -04:00
Vas Crabb
384bf0e510 Route sound relative to current device.
Also, look Ma - no magic prologue!

Slot card additions run in the context of the slot itself, which isn't
entirely intuitive.  Slot configuration needs a bunch of other cleanup
anyway.
2018-05-01 21:35:58 +10:00
Vas Crabb
6487cd2e95 Get rid of the assert replacement. It prevents you from using assert in
a destructor for a literal type due to the implicit nothrow.  It's just
not worth the trouble it's causing.

In file included from ../../../../../src/emu/emu.h:83:
../../../../../src/emu/mconfig.h:70:5: error: '~token' has a non-throwing exception specification but can still throw [-Werror,-Wexceptions]
                               assert(m_device == m_host.m_current_device);
                               ^
In file included from ../../../../../src/emu/emu.h:29:
../../../../../src/emu/emucore.h:230:48: note: expanded from macro 'assert'
 #define assert(x)               do { if (!(x)) throw emu_fatalerror("assert: %s:%d: %s", __FILE__, __LINE__, #x); } while (0)
                                              ^
In file included from ../../../../../src/emu/emu.h:83:
../../../../../src/emu/mconfig.h:66:3: note: destructor has a implicit non-throwing exception specification
               ~token()
               ^
1 error generated.
2018-05-01 04:21:20 +10:00
Vas Crabb
2047471723 Bind devcb relative to current device. This is probably going to break
plenty of things with late bind errors.  Sorry.

Remaining things to switch over include sound routes and things with
custom delegates.
2018-05-01 04:19:51 +10:00
Vas Crabb
b60c852f11 Set finder tag relative to current device being configured rather than
the finder's owner.  This meand you no longer need to care about the
your relationship to the object being configured and a lot of ^ and :
can disappear.  There's a bit reduction in string pasting in macros from
this.

Yes, I have to make this apply to devcb etc. as well, but that's a job
for another day.

There's probably at least one thing broken by this where optional
objects are involved.  Most things can be solved by just getting rid of
the now-problematic ^ and : prefixes.
2018-04-30 23:32:41 +10:00
AJR
1185fb25f3 devcb updates (nw)
- Write callbacks can now be configured as `OUTPUT("item_name")`. This behaves equivalently to a zero-dimensional `output_finder`, while eliminating the need to instantiate and resolve this in driver classes separately from the callback itself.
- The width of a callback's default mask now properly depends on its type (as was half-implemented before), instead of always being reset to 0xffffffffffffffff when actually configured. This allows MCFG_DEVCB_INVERT to work with line write callbacks as one might logically expect.
2018-04-29 19:48:38 -04:00
Vas Crabb
f2568bb918 Make devopt menu localisable.
Make machine_config aware of device being configured so owner doesn't need to be passed everywhere.
2018-04-28 16:34:09 +10:00
Vas Crabb
47d93680d9 duh (nw) 2018-04-28 00:37:54 +10:00
Vas Crabb
57fd28d36a Sarayan made me do it.
Concrete device types now have a call operator that instantiates a
device.

This change means you *must* use DECLARE_DEVICE_TYPE to declare the
public interface of your device, even if it's device_t.  If you want
to use private implementation classes, use DEFINE_DEVICE_TYPE_PRIVATE
and instantiate the object finders.
2018-04-28 00:01:30 +10:00
Vas Crabb
ac79c90607 srcclean (nw) 2018-04-22 09:24:13 +10:00
Olivier Galibert
9ac8320ccc addrmap: Remove the now-unused macros [Vas Crabb, Robbbert] 2018-04-21 16:42:27 +02:00
Ivan Vangelista
7b9bc3a46a debughlp.cpp: document dumpo command (nw) 2018-04-20 18:20:24 +02:00
Olivier Galibert
d7f5f63ce8 maps: Finish mame/audio and the lone dummy (nw) 2018-04-20 11:26:34 +02:00
AJR
a00279961a Remove set_digit_value and deprecate set_lamp_value and set_led_value for the same reasons (nw) 2018-04-13 16:01:52 -04:00
AJR
3d3785864e emupal.h: Remove underscores from template parameter names (nw) 2018-04-13 14:13:55 -04:00
smf-
1a27a251f8 remove safe_pc() and safe_pcbase() (nw) 2018-04-13 16:41:37 +01:00
cracyc
88bcdb4a50 pc9801_86: add clocks (nw) 2018-04-13 09:48:53 -05:00
AJR
daec5f3639 Relax constraints on address mirroring/global mask combinations. Mirror bits are now allowed to fall outside the driver-specified global mask, though memory map validation requires that they cover the entire masked-out portions of the address space if any do.
This change is intended to expedite debugging of software written for the TMPZ84C015 or similar Z80-based controllers which use 8-bit I/O addressing for the on-chip peripherals but may use either 8-bit or 16-bit addressing externally.
2018-04-11 10:04:31 -04:00
AJR
c92693983d diexec: Note flaw in INPUT_LINE_RESET implementation (nw) 2018-04-08 19:06:55 -04:00
smf-
8ebd748b1b Fix fencepost in memory_manager::region_containing, which caused regions to be registered for state saving. [smf] 2018-04-07 08:55:53 +01:00
Olivier Galibert
12b5454a27 Now that was a subtle one... (nw) 2018-04-05 15:58:14 +02:00
smf-
5336bb02b6 Standardise on IPT_CUSTOM for hooking up custom code in PORT_BIT, leaving IPT_SPECIAL for the UI. [smf] 2018-04-03 11:58:48 +01:00
GavinAndrews
06a09d3821 Added suspend and resume debugger commands (#3411) 2018-04-02 12:23:38 -04:00
Vas Crabb
2c340f490e move some not-directly-emulation-related helpers to lib/util, further extricate emu.h from tools (nw) 2018-04-01 19:10:26 +10:00
Vas Crabb
e019bf481f cleaner handling of layout parsing errors (nw) 2018-03-29 15:29:08 +11:00
Vas Crabb
a074296288 fix scheduling session events from debugger (nw) 2018-03-29 01:42:37 +11:00
Vas Crabb
010155a3c5 Reshuffle some stuff:
* Move around the debugger hooks to get a small but measurable performance increase
* Remove emucore from external tools
* Improve performance of DSP16 interpreter a little by generating six variants of execution loop
2018-03-28 05:25:15 +11:00
Julian Sikorski
9a154947d1 Added possibility of building using system pugixml 2018-03-27 10:19:22 +11:00
Vas Crabb
fdf806a5ac check for error before reporting it (nw) 2018-03-26 20:22:52 +11:00
Vas Crabb
503be5cbdb Allow machine configuration to specify BIOS easily, move default BIOS selection into device configuration complete 2018-03-26 19:53:18 +11:00
AJR
35f5bbb08e cdc721: Start adding devices and handlers (nw) 2018-03-25 08:40:18 -04:00
Vas Crabb
2e40673d6d Merge branch 'master' of https://github.com/mamedev/mame 2018-03-25 04:51:28 +11:00
Vas Crabb
d4dcc2470d don't sleepcode - for some reason this only upset GCC, not clang (nw) 2018-03-25 04:49:17 +11:00
hap
7c29cd0019 dirom.cpp: add missing license header (nw) 2018-03-24 18:45:06 +01:00
Vas Crabb
1c3684787c get rid of dioutput - it's only used in one place, and it upset GCC on Linux debug builds for some reason 2018-03-25 04:31:07 +11:00
Vas Crabb
08dde5eb0a srcclean and regenerate localisations (nw) 2018-03-25 02:03:24 +11:00
Vas Crabb
8142f24c43 don't pass so many naked pointers around (nw) 2018-03-25 01:44:45 +11:00
cam900
6924f3cdc1 gstream : Add precalculated RGB Palette for X2222 drawing gfxs, Cleanup duplicates (#3370)
* gstream : Convert bitmap into bitmap_ind16, Cleanup duplicates

* gstream.cpp : Fix compile

* gstream.cpp : Revert "convert bitmap into ind16", Add precalculated rgb data for X2222 draw gfxs

* gstream.cpp : Build fixes

* gstream.cpp : More build fixes

* gstream.cpp : Remove unneeded arguments of drawgfx_transpen_x2222
2018-03-24 08:39:17 -04:00
AJR
dbe56e3113 Include option and file names in fatal error message for failure to load image 2018-03-22 17:38:01 -04:00
AJR
9eb8c177bb vgmplay: Disable POKEY and QSound devices if not required 2018-03-22 17:14:28 -04:00
AJR
358e6b23be Eliminate vestigial member that was behind machine().first_screen() (nw) 2018-03-21 14:16:30 -04:00
Ariane Fugmann
c32176f2bb M1COMM, M2COMM, S32COMM: Updates to simulation (#3369)
* M1COMM: update simulation based on real firmware (nw)

- read partial frames correctly now
- added VSYNC packets (framesync currently disabled as this can cause
MAME to freeze and we have no way to tell if the socket is still open)

* M2COMM: update simulation (nw)

- read partial frames correctly now
- added VSYNC packets (framesync currently disabled as this can cause
MAME to freeze and we have no way to tell if the socket is still open)

* M1COMM, M2COMM: add config option to sync frames over network (nw)

* M2COMM: another update to the simulation.

- added relay mode (used by stcc)
- added "connection loss"

* M1COMM: update to simulation (nw)

- better sync
- detect lost connection

* M2COMM: use osd_file rather than emu_file for better control (nw)

* M2COMM: handle connection loss in a a more elegant way (nw)

* M1COMM: use osd_file rather than emu_file for better control (nw)

* S32COMM: updated simulation (nw)

- handle connection loss
- use osd_file rather than emu_file for better control
2018-03-21 13:34:39 -04:00
smf-
0883f01e66 validity check: test all 32 results from count_leading_zeros() & count_leading_ones() [smf] 2018-03-21 16:49:27 +00:00
Vas Crabb
ffd19cda0f Restrict ROM labels to a filesystem- and shell-safe subset of printable
ASCII.

This has not been done unilaterally - I have the support of @galibert,
@Tafoid, and @rb6502 to do something about the current free-for-all.

The trouble with the ROM label field in MAME is that it serves multiple
competing purposes: it's supposed to identify the device in the original
system, and also act as a filename when searching for media image files
to load.  It also has to appear in listings of needed/missing files
(e.g. in cases where the image _isn't_ found).

To identify the original device, the ROM label field in MAME often
contains text derived from some combination of one or more of the text
on a label if present, the silkscreen on an IC package, the location on
the circuit board, and the device designation.  There's no standard for
the order in which these appear and how they're separated.  Some people
add arbitrary filename extensions and other annotations.

There are practical limitations on what can appear in the string, given
it's used as a filename:
* Path/name length limits.
* Restrictions on characters that can appear in a filename.
* Practicality of using the filename in a command-line environment.
* Ambiguity when describing a filename.

Filesystems themselves typically restrict characters in filenames:
* Windows defines MAX_PATH as 260 characters - longer paths are
  difficult to use with Win32 APIs and don't work properly in Windows
  Explorer
* Most filesystems don't allow ^@ or the path separator in names.
* Windows doesn't allow C0 control characters or <>:"/\|?* characters in
  filenames.
* Filesystems may have collation, e.g. FAT16 is case-folding, NTFS and
  HFS+ are case-preserving but case-insensitive, while EXT and XFS are
  case-sensitive.
* Filesystems may perform Unicode normalisation, e.g. NTFS forces NFC,
  HFS+ forces NFD, while ZFS stores filenames as supplied at creation,
  but may be configured to apply normalisation when testing equality.

Shells use various ASCII characters for special purposes:
* C0 control characters for line editing and control (e.g. ^C to cancel
  a line, ^V for control charecter escape, ^R for history search).
* The "'\ chracaters for quoting/escaping.
* The ><| characters for redirection.
* The *?[] characters for pattern matching.
* The ${}~ characters for variable substitution/sequence expansion.
* The ! or ^ characters for history substitution.
* The ()` characters for controlling subshells.
* The %& characters for job control.
* The ; character as a command separator.
* The # character for comments.

There's also the issue of whether users across a range of locales will
be able to type/display characters.  We still don't have good support
for Unicode console output on Windows (std::wcout doesn't seem to work
properly), many users don't install C/J/K fonts, and many users aren't
comfortable entering text in unfamiliar languages.  This means we're
limited to printable ASCII for practical purposes.

The practical limitations mean the subset of "safe" characters is
limited to ASCII digits, either uppercase or lowercase English Latin
(but not both due to collation behaving differently across systems), and
the +,-.=_ punctuation chracters.  We've decided on lowercase, digits,
and safe punctuation.  In addition to this, spaces are allowed, as they
can be quoted/escaped easily enough if no other special characters are
used.

There have been some arguments that allowing uppercase is "more
accurate", but in practical terms it doesn't add much value.  A string
in a C++ program can't represent layout, relative size of text, colour
and shape of the label, text font, graphics, and many other details.  It
also does nothing to address labels with text outside the English Latin
alphabet (e.g. labels with Chinese ideographs).  Besides missing
information, the lack of hard and fast rules means you need to intuit
what a label string in MAME is trying to represent.  There is simply no
substitute for photographs.  There wasn't even any consistency in case
within individual machine sets.  For example, several games in
vigilant.cpp had inconsistent case for "ic" vs "IC" in designation
suffixes, and ibm6850.cpp had inconsistent case for filename extensions
withing a set.  There were sets that used uppercase for text from the
label but not from the part number/PCB location, and vice versa.  It was
a huge mess.

There's some merit to the idea of allowing a wider variety of characters
in the label strings in the source, and mapping to a more restricted set
when searching for files.  However it creates more issues than it
solves.  It would require a change to the XML output to provide both the
label and filename, and a corresponding change to external ROM
management tools.  It would be impractical to do for software lists,
because it would require ROM management tools to implement the exact
same mapping algorithm as MAME.

But that aside, actually doing useful mapping would be impractical.
What would you do with C/J/K ideographs, like the chip labelled
東方不敗 (Dongfang Bubai)?  There's no intuitive way to do the mapping
wtihout incluing something like Unihan data, which would add a lot of
bloat.  Even the, without a language hint the Romanisation would be less
than ideal in many cases (using Chinese reading for Japanese text and
vice versa).  There's still the messy issue of filesystem collation to
deal with.

We do allow full Unicode in comments in the source.  If you want to
provide a more detailed description of a ROM label, that's the place for
it.  You've got more characters available, and the possibility of using
mulitple lines.  There are too many other competing requirements on the
label field in the ROM definitions.
2018-03-18 06:34:43 +11:00
AJR
b6d5d656c7 New machines marked as NOT_WORKING
----------------------------------
CIT-101 [Doug Crawford]
2018-03-15 17:56:27 -04:00
Vas Crabb
0bf88bda8f Cycle-accurate DSP16 core (disabled in QSound for performance reasons) 2018-03-15 19:02:43 +11:00
Olivier Galibert
efacbf5f4c Some corners of C/C++ are just a pain (nw) 2018-03-14 20:48:30 +01:00
Olivier Galibert
a13478f416 addrmap: Fix subtle bug with nonsubtle effects, also ensure initialization (nw) 2018-03-14 19:56:26 +01:00
Olivier Galibert
115bb9936c Address maps macros removal, pass 1 [O. Galibert] 2018-03-14 14:07:14 +01:00
Olivier Galibert
f155992daa Rename some memory stuff (nw) 2018-03-14 14:05:49 +01:00
AJR
25b40bae22 Fix masking of offset expressions in debug view of address-shifted spaces (nw) 2018-03-12 15:47:46 -04:00
AJR
69ea9be761 trs80.cpp: Derive almost all clocks from actual XTALs, including screen raw parameters
- UART modernization (nw)
2018-03-12 10:37:25 -04:00
Vas Crabb
af31f4b3de better handling for arbitrary numbers of screens (nw) 2018-03-12 17:31:40 +11:00
AJR
58491dec69 Better fix for find command (nw) 2018-03-12 00:15:03 -04:00
AJR
a4f5e6a842 Fix debugger find command for address-shifted spaces 2018-03-12 00:07:33 -04:00
AJR
41a6e6222e Fix watchpoint view for address-shifted spaces 2018-03-11 23:52:59 -04:00
mooglyguy
67627369dd Address performance concerns with previous change to screen.h/.cpp, nw 2018-03-11 21:26:31 +01:00
AJR
2f13e9b319 Fix output of wplist debug command for address-shifted spaces 2018-03-11 15:36:20 -04:00
AJR
7f934429fa Fix extent of debug view of address-shifted memory spaces 2018-03-11 15:23:35 -04:00
Ted Green
10bca50668 rgbsse: Fix scaling functions for negative values. Fixes graphical anomalies in warfa. 2018-03-11 12:36:59 -06:00
Ryan Holtz
9a777099a5 Remove first_screen(), nw 2018-03-11 14:56:54 +01:00
Ryan Holtz
81a35fb46e Remove all uses of first_screen() from core files, nw 2018-03-11 11:17:16 +01:00
mooglyguy
06c75d0a08 Remove commented code, nw 2018-03-10 20:01:15 +01:00
mooglyguy
25c4b8d777 Remove first_screen() accessor from machine_config now that it is not used, nw 2018-03-10 20:01:15 +01:00
Nigel Barnes
35a3cc25ea xtal: Added 80_MHz_XTAL for ARM710 (nw) 2018-03-06 16:17:20 +00:00
AJR
4a3622950d Fix tilemap device (nw) 2018-03-06 00:57:03 -05:00
Vas Crabb
7f78b5975a get rid of the last set_indexed_value in drivers/devices - this ends up a bit ugly to maintain backwards compatibility with layouts/web UI (nw) 2018-03-05 17:51:26 +11:00
AJR
7ede8f952d Unbreak MCFG_PALETTE_INDIRECT_ENTRIES (nw) 2018-03-04 13:59:25 -05:00
wilbertpol
3b923d59cc destaticify initializations (nw) (#3289)
* destaticify initializations (nw)

* fix this->set_screen (nw)
2018-03-04 04:18:08 +11:00
Vas Crabb
6569affe94 deprecate first_screen - there's been plenty of warning
also more string hash reduction (nw)
2018-03-04 03:37:30 +11:00
Vas Crabb
205a65e3a8 fix end()/cend() on output_finder (nw) 2018-03-04 01:26:08 +11:00
Vas Crabb
e068541f5e start getting brutal on output.h (nw) 2018-03-02 00:14:28 +11:00
R. Belmont
5ffc8a79a4
Merge pull request #3266 from JoakimLarsson/diablo_1
WIP: Diablo printer CPU
2018-02-28 14:03:10 -05:00
Vas Crabb
910d2267ca Start squeezing out the poor-performing parts of the output_manager:
* Turn deprecated declataion warnings on by default and make them non-fatal
* Make output_finder iterable in algorithms and range-based for loops
* Replace a lot of set_something with output_finder
2018-02-28 21:19:37 +11:00
Vas Crabb
8dad4881f6 srcclean (nw) 2018-02-25 01:34:04 +11:00
Olivier Galibert
c5345b9ea8 Grammar police (nw) 2018-02-24 14:09:46 +01:00
joakim
35a7f3e628 WIP: Diablo printer CPU 2018-02-24 02:32:36 +01:00
Vas Crabb
836c43f630 untangle ladybug and redclash state classes 2018-02-24 01:00:58 +11:00
smf-
494e9b4c81 Debugger: fix f10 step over of instructions with a branch delay slot [smf] 2018-02-21 16:02:37 +00:00
AJR
f8dec81588 devcb: Really fix mistake (nw) 2018-02-20 19:46:27 -05:00
AJR
819199e179 devcb: Fix mistake (nw) 2018-02-20 19:44:46 -05:00
AJR
9545f58030 devcb: Fix validation problem with chained callbacks (nw) 2018-02-20 19:30:29 -05:00
AJR
12cf6b64eb Register device callbacks and add some basic validation for them 2018-02-20 14:13:20 -05:00
Vas Crabb
8b1bc128e5 backport lots of cleanup from WIP branch (nw) 2018-02-19 20:34:33 +11:00
AJR
c12f2ee58d Set up heavily mirrored memory ranges with subunit masks (e.g. orunners) much more efficiently 2018-02-15 22:04:17 -05:00
ajrhacker
5386ad7284 Generalized support for byte-smeared accesses (nw) (#3207)
The new cswidth address map constructor method overrides the masking normally performed on narrow-width accesses. This entailed a lot of reconfiguration to make the shifting and masking of subunits independent operations. There is unlikely to have any significant performance impact on drivers that don't frequently reconfigure their memory handlers.
2018-02-15 06:43:57 +01:00
Vas Crabb
f4df51e522 (nw) screw you macros and the horse you rode in on
There's no voodoo involved in derived machine configurations and
fragments any more.  The macros were just obfuscating things at this
point.
2018-02-14 23:46:17 +11:00
Olivier Galibert
5f215ff7d4 Fixes (nw) 2018-02-13 10:55:23 +01:00
Olivier Galibert
bc909f20e8 emumem: Fix extra-large device map (nw) 2018-02-12 15:04:41 +01:00
Olivier Galibert
c521964316 API change: Memory maps are now methods of the owner class [O. Galibert]
Also, a lot more freedom happened, that's going to be more visible
soon.
2018-02-12 10:04:52 +01:00
Julian Sikorski
8cc758355d Enable use of system-wide asio, glm and rapidjson (#3172)
* Fixed building using system utf8proc

* Fixed building using system portaudio

* Allow using system-wide asio headers (1.11.0 or higher required).

* Allow using system-wide glm headers

* Allow using system-wide rapidjson headers
2018-02-08 16:06:25 -05:00
Olivier Galibert
870695380c Head, meet desk (nw) 2018-02-07 16:53:06 +01:00
Olivier Galibert
2b13112e7a Renju fix, that one was a nightmare (nw) 2018-02-07 11:52:39 +01:00
AJR
a3f0273748 Fix ASCII dump output for big-endian spaces 2018-02-07 00:34:57 -05:00
Firehawke
b2e11d00e0 More docs work: escapes, debugger update (nw) (#3168)
* Missed a couple escape sequences. (nw)

* A little more escaping, acronym fixes, fix oddity in symlist (nw)

* Update debugger internal help to match docs (nw)

* Lowercasing for CPU in command parameters, fix casing on ASCII. (nw)
2018-02-05 20:27:02 +11:00
AJR
3f135a40b7 Flip screen API cleanup (nw)
- Make the global flipping functions of driver_device protected so as not to be accessible from within subdevices
- Eliminate the flip_screen_set_no_update kludge
2018-02-03 21:02:18 -05:00
AJR
fe500377ad address_map: Internal maps must now be constructed last to have priority (nw)
This fixes sound in mpatrol.
2018-02-01 20:06:15 -05:00
Olivier Galibert
127cd08d4d API change: Memory maps are now "last entry wins" [O. Galibert]
This allows for the much more natural "import another map and patch
it" structure, or "cover a whole region then punch holes in it".  Our
previous first-entry-wins rule was always a surprise to newcomers, and
oldcomers too.
2018-01-31 22:03:00 +01:00
Olivier Galibert
648e2a536a *DUH*, also fix MT6857 (nw) 2018-01-28 14:15:28 +01:00
Vas Crabb
4e8bb7c7e5 srcclean and regenerate localisations (nw) 2018-01-28 14:25:52 +11:00
hap
add0c3b9e7 search-replace .0_?Hz_XTAL to _?Hz_XTAL (nw) 2018-01-26 15:37:44 +01:00
AJR
0182f6150c A farewell to machine_config_constructor (nw) 2018-01-26 03:45:44 -05:00
Vas Crabb
1c92473f25 let's be dimensionally correct 2018-01-26 18:02:29 +11:00
Vas Crabb
a9a9c45871 less reliant on PCH, more constexpr, allow 16_MHz_XTAL without decimal point (nw) 2018-01-26 17:43:44 +11:00
hap
8a9124a885 xtal: add x_yHz_XTAL list you can copy-paste from (nw) 2018-01-25 16:09:12 +01:00
David Haywood
c3709b0558 various reorganization of radica and vtech stuff (#3108)
* various reorganization of radica and vtech stuff

* missed this (nw)

* correct file (nw)

* newlines and stuff (nw)

* less c_str (nw)

* worse (IMHO) filenames (nw)

* format got messed up (nw)

* some bits for golden tee (nw)

* get us renderng something in rad_gtg (nw)

* some basic inputs (nw)

* further improvements to the Golden Tee Home Edition (radica eu3a14)

added Radica Sensible Soccer [Sean Riddle]

* tilebase handling (nw)

* golden tee home video improvements (nw)
2018-01-24 22:00:14 -05:00
Vas Crabb
fcdefcd4a4 bad Sarayan (nw) 2018-01-25 10:28:46 +11:00
Vas Crabb
7168abee36 do you user-defined literal? also some more notes on the digital scale (nw) 2018-01-24 00:51:23 +11:00
Olivier Galibert
30add0e064 Fuck, I missed the last commit (nw) 2018-01-23 14:02:27 +01:00
Olivier Galibert
03ba80e0ef xtal.h is dead, long live to xtal.cpp [O. Galibert] 2018-01-23 10:25:25 +01:00
AJR
9283710bf8 Add VT3xx XTALS (and fix one misread value) (nw) 2018-01-19 11:23:00 -05:00