Commit Graph

13294 Commits

Author SHA1 Message Date
Olivier Galibert
8f534764f9 mu100: Add missing roms, also some wip [Guru, O. Galibert] 2018-12-06 15:02:17 +01:00
Olivier Galibert
76575e6cdd watchpoint: prevent recursive multiple installs [O. Galibert] 2018-12-06 14:58:26 +01:00
Sergey Svishchev
619a9ab92e hp95lx: new NOT_WORKING machine -- Hewlett-Packard 95LX palmtop 2018-12-02 23:47:29 +03:00
AJR
6d1d3a9f8c New machines marked as NOT_WORKING
----------------------------------
Fortune 32:16 [Bitsavers]
2018-12-01 15:50:03 -05:00
fenugrec
63dd1ba82f New driver : HP 3478A Digital Multimeter (#4342)
* Added new driver: HP 3478A Multimeter

WIP, machine not working, skeleton, highly incomplete. Compiles, that's
about all.

* hp3478a: implement ROM banking

code runs "properly" at least to the CAL RAM check (fails, RAM not
implemented)

* hp3478a: some IO work

Interpret CS lines for external accesses (GPIB, CAL RAM, DIP switches).
Also, remove MCFG_ stuff
Also, use logmacro.h stuff

* hp3478a: partial emulation of LCD

The main CPU has a serial link to the LCD module. This WIP splits
commands and data mostly successfully (still some bogus shifting which
would be fairly easy to ignore). None of the commands are implemented
yet, and no actual display is generated yet.

Includes unrelated tweak : only change bank when the A12 line changes.

* hp3478a: added LCD rendering !

code shamelessly stolen from tranz330 and roc10937 drivers.
Not clickable yet.

* hp3478a: implement CAL NVRAM

Finally. IO mapping has provisions for the DIP switches as well as i8291
GPIB interface registers.

* hp3478a: improve LCD rendering

Remove some artifacts: with the LCD "not selected", some data is sent on IWA (probably
to purge a shift register ?) but was parsed with the last m_lcdiwa
state. Reset this everytime PWO is deselected.

Also parse decimal point, comma and "all segments".

* hp3478a: implement keypad

* hp3478a: CAL switch to write-protect NVRAM

* hp3478a: implement DIP switches

* hp3478a: fix self-test reset freeze (missing WDT)

There is an external WDT counter that is periodically reset by the CPU
in normal operation. When forcing a reset from the front panel, this
counter is allowed to overflow (20th bit, clocked at Xtal / 15), giving
a reset time of about 1.3s.
2018-11-29 21:44:49 +11:00
Vas Crabb
b4207e7b35 Merge tag 'mame0204'
MAME 0.204
2018-11-28 17:09:19 +11:00
AJR
b4e395e74e dimemory: Reimplement aa0d17757d9e5857bb99887841133045cc530655 correctly; reading past the end of a std::vector is not a good thing to do (nw) 2018-11-28 02:55:46 +11:00
AJR
6b39fdbc84 Revert "diemory: Still should be validating all configured address spaces, whether or not they have external maps (nw)"
At least on my build, MAME thinks maps are being configured for nonexistent AS_DATA spaces when they clearly aren't. This may be due to some subtle bug with device delegates.

This reverts commit aa0d17757d9e5857bb99887841133045cc530655.
2018-11-28 02:55:45 +11:00
AJR
868cfc5289 diemory: Still should be validating all configured address spaces, whether or not they have external maps (nw) 2018-11-28 02:55:45 +11:00
AJR
775ffe871a dimemory: Make validity checker warn about configured maps for nonexistent spaces (nw) 2018-11-28 02:55:45 +11:00
Vas Crabb
74b0a51c10 (nw) more adjustments:
* MU100 isn't really working
* clone relationship is for different versions of the same thing, not different parts of a system
* indentation should follow structure
2018-11-26 19:44:54 +11:00
AJR
a840132995 New machines marked as NOT_WORKING
----------------------------------
Epic 14E [Al Kossow]
2018-11-24 23:03:19 -05:00
Vas Crabb
f99c502820 srcclean and fixup (nw) 2018-11-25 11:49:51 +11:00
hap
45d6edf081 screen: don't assert on update_partial with scanline<0, plenty drivers do update_partial(vpos-1) (nw) 2018-11-24 13:21:12 +01:00
AJR
5cafaea691 ts1: Add XTAL definition; configure more appropriate devices for this hardware (nw) 2018-11-23 22:57:25 -05:00
Sven Schnelle
8ac744ebcf hp9122: add layout (nw) 2018-11-23 13:37:47 +01:00
Patrick Mackinlay
c2ffeb4ad6 dinetwork: avoid crashing (nw) 2018-11-20 12:35:08 +07:00
Sven Schnelle
f6efe2921f add HP98550 high-res color graphic card
Used in the high end HP9000/300 machines. Provides a resolution
of 1280x1024 @ 8bpp. It also provides two overlay planes and one
phantom plane. Each plane contains two window movers that are used
for copying characters and tiles on the screen. It also has a RUG
for line/vector drawing. The current state implements everything
that is required to have a working HP Visual user environment in
MAME.

Working:

- window mover
- pixel replacement rules
- window replacement rules
- f0 tripple replacement rule (copy src or keep destination depending on pattern register)
- VRAM bit access mode
- solid line drawing

Not implemented yet:

- drawing circles
- linetype vector/circles
- rectangles
- filling areas
- tripple replacement rules other than f0
2018-11-18 23:18:36 +01:00
mooglyguy
bff500d677 -screen.cpp: Added a devcb for easier hooking of the scanline timer. [Ryan Holtz]
-zerozone, zexall, zr107, zrt80, zt8802, zwackery, zx: Removed MACHINE_CONFIG_START/_END. [Ryan Holtz]
2018-11-17 22:32:55 +01:00
Sven Schnelle
dce71bdec1 debugger: add %c to logerror
This is useful for catching putchar() like functions and printing
the written value to error.log.

On hp9k_3xx, i'm using this with the HP 300 test software, to log
test error messages that get printed on screen to error.log, so i
have the message directly after the debug messages from my driver.

Example:

wpset 0xfffe36be,80,w,1,{ logerror "%c", wpdata; g }
2018-11-17 19:09:39 +01:00
hap
f4f390a538 attotime::from_ticks: on 0hz return attotime::never instead of crashing (nw) 2018-11-11 18:01:41 +01:00
AJR
d0e28392dc ncd17c: Add screen raw parameters; improve documentation (nw) 2018-11-10 22:21:23 -05:00
ajrhacker
7396442f24
Merge pull request #4264 from hp9k/go_privilege
debugger: add 'gp' command
2018-11-10 15:50:03 -05:00
hap
ba8aba7ba3 attotime from_hz(double): simpler calculation if more than 1Hz (nw) 2018-11-07 22:45:16 +01:00
AJR
64e4d5eaba attotime: as_hz optimization (nw) 2018-11-07 16:19:37 -05:00
hap
8c0dbe366c attotime: redo fix from_hz(XTAL) recent regression, sorry for hitting emu.h again (nw) 2018-11-07 22:00:34 +01:00
hap
e61f8e8509 attotime: fix from_hz(XTAL) recent regression (nw) 2018-11-07 19:41:30 +01:00
Sven Schnelle
12f43029dc debugger: add 'gp' command
gp 'go privilege' starts execution until the privilege mode
changes. This can be used to break on task switches. I.e on m68k,
one could do:

gp { ~sr & 0x2000 && crp_aptr == 0x1234567 }

which would execute until the privilege mode changes to user mode and
the CPU root pointer is 0x1234567.

for cpu code, all that is needed to make this work is calling
debugger_privilege_hook() when the execution level changes.
2018-11-06 15:44:52 +01:00
hap
60c4816861 attotime: simpler from_hz (nw) 2018-11-06 13:39:13 +01:00
AJR
f07fab41d6 Replace ATTOSECONDS_TO_HZ with as_hz where appropriate (nw) 2018-11-05 16:05:51 -05:00
AJR
b599c91785 attotime: Add as_hz (nw) 2018-11-05 13:47:52 -05:00
mooglyguy
13247311f6 Renamed flipendian -> swapendian, as I spent minutes trying to find the functions to tell to another person who spent minutes trying to find the functions, and we refer to such functions as swapping just about everywhere else in the codebase, nw 2018-11-05 19:11:18 +01:00
AJR
8c8924db50 mbee.cpp: Move XTAL definition to xtal.cpp (nw) 2018-11-05 10:56:22 -05:00
mooglyguy
6c2328e286 luaengine: Added pixel(x,y) function. [Ryan Holtz] 2018-11-04 16:19:49 +01:00
hap
ecf0c22f7d disound: added getters for input/output gain (nw) 2018-11-04 16:01:42 +01:00
hap
bccaa9fa81 m37710: added basic support for up-down count on timers in event counter mode (nw)
NOTE1: namcos22 propcycl always pedals backwards now, will resolve in next commit.
NOTE2: diexec.h MAX_INPUT_LINES had to be increased, even without this commit m37710 was already more than 32 input lines.
2018-11-03 19:22:28 +01:00
AJR
5f2e1268dc 911_vdt: Screen raw parameters (nw) 2018-11-03 14:01:12 -04:00
S.Z
cbd7b12f60
Remove emu.h from textbuf (nw) 2018-11-03 08:34:50 +01:00
S.Z
7f1a4e590b
Remove emu.h from emucore (nw) 2018-11-03 08:31:55 +01:00
S.Z
62285a49c8
Remove emu.h from attotime (nw) 2018-11-03 08:29:33 +01:00
yz70s
4e0a7632f4 Put #include emu.h as the first preprocessor directive in various files to support precompiled headers in visual studio (nw) 2018-11-02 08:50:09 +01:00
Vas Crabb
e4862a24a3 misc cleanup (nw) 2018-10-28 00:44:20 +11:00
Nigel Barnes
e4f1635973 bbcb: Added ReCo6502 co-processor. 2018-10-26 17:42:36 +01:00
AJR
969175269d Invalidate memory access caches when removing watchpoints to prevent crashes on subsequent accesses to the same memory areas 2018-10-23 09:04:25 -04:00
AJR
1d9505e2d9 New machines marked as NOT_WORKING
----------------------------------
ITT 1700 [Al Kossow]
2018-10-13 23:37:20 -04:00
Ryan Schmidt
d49d8aa5e0 Use boolean not bool for libjpeg functions
Fixes build failure.
2018-10-11 22:53:46 +11:00
R. Belmont
e1a5fb74ae
Merge pull request #4118 from kiall/linux-xinput-fix
Fix compile error on Linux with NO_USE_XINPUT=0
2018-10-11 07:50:02 -04:00
Kiall Mac Innes
57692561cd Fix compile error on Linux with NO_USE_XINPUT=0
In file included from /usr/include/X11/extensions/XInput.h:53:0,
                     from ../../../../../src/osd/modules/input/input_x11.cpp:18:
    ../../../../../src/emu/save.h:95:32: error: expected unqualified-id before numeric constant
       static constexpr std::size_t COUNT = 1U;
                                    ^
    ../../../../../src/emu/save.h:102:32: error: expected unqualified-id before numeric constant
       static constexpr std::size_t COUNT = N * array_unwrap<T>::COUNT;
                                    ^
    ../../../../../src/emu/save.h:109:32: error: expected unqualified-id before numeric constant
       static constexpr std::size_t COUNT = N * array_unwrap<T>::COUNT;
                                    ^
    ../../../../../src/emu/save.h: In member function ‘void save_manager::save_item(device_t*, const char*, const char*, int, ItemType&, const char*)’:
    ../../../../../src/emu/save.h:154:142: error: expected unqualified-id before numeric constant
       save_memory(device, module, tag, index, valname, array_unwrap<ItemType>::ptr(value), array_unwrap<ItemType>::SIZE, array_unwrap<ItemType>::COUNT);
                                                                                                                                                  ^
    ../../../../../src/emu/save.h: In member function ‘void save_manager::save_pointer(device_t*, const char*, const char*, int, ItemType*, const char*, u32)’:
    ../../../../../src/emu/save.h:163:145: error: expected unqualified-id before numeric constant
       save_memory(device, module, tag, index, valname, array_unwrap<ItemType>::ptr(value[0]), array_unwrap<ItemType>::SIZE, array_unwrap<ItemType>::COUNT * count);
                                                                                                                                                     ^
    ../../../../../src/emu/save.h: In member function ‘void save_manager::save_pointer(device_t*, const char*, const char*, int, std::unique_ptr<_Tp []>&, const char*, u32)’:
    ../../../../../src/emu/save.h:172:145: error: expected unqualified-id before numeric constant
       save_memory(device, module, tag, index, valname, array_unwrap<ItemType>::ptr(value[0]), array_unwrap<ItemType>::SIZE, array_unwrap<ItemType>::COUNT * count);
2018-10-11 11:44:22 +01:00
R. Belmont
aa990898fb
Merge pull request #4107 from hp9k/topcat_irq
topcat: remove MCFG, implement irq, fix some minor issues (nw)
2018-10-10 13:42:34 -04:00
R. Belmont
50b026e57f
Merge pull request #4105 from hp9k/msm53821_fixes
rtc: add leap year support (nw)
2018-10-10 13:41:31 -04:00
Sven Schnelle
3e04e969af topcat: remove MCFG, implement irq, fix some minor issues (nw) 2018-10-10 19:19:16 +02:00
Sven Schnelle
7b48d52e94 rtc: add leap year support (nw)
msm53821:

- add standard register support
- use std::array
- fix several counter to behave like a real MSM53821
2018-10-10 14:21:30 +02:00
hap
db00f29891 video.h: get rid of LCD_FRAMES_PER_SECOND (nw) 2018-10-10 09:42:52 +02:00
R. Belmont
7b42e2f799
Merge pull request #4030 from tlindner/fix_connonical_options
Fix canonical command line option.
2018-10-07 11:38:09 -04:00
hap
4d2407128c speaker: added rear_center (nw) 2018-10-05 13:28:31 +02:00
hap
62b6a49768 namcos22: redo video params (nw) 2018-10-05 13:08:48 +02:00
mooglyguy
f5dfaff417 debugcpu: Fixed watchpoints for CPUs with a negative address shift. [Ryan Holtz] 2018-09-30 19:46:17 +02:00
AJR
63483b060e New machines marked as NOT_WORKING
----------------------------------
Falco 5220 [Al Kossow]
2018-09-27 11:16:01 -04:00
tim lindner
127bce35cf Fix connonical command line option. 2018-09-25 22:33:06 -07:00
AJR
f65e1c2a32 hazl1420: Add interrupts and hook up DIP switches through I/O expanders (nw) 2018-09-24 15:39:44 -04:00
AJR
70697c12a8 Fix debugger memory view editing for address-shifted spaces 2018-09-24 15:14:16 -04:00
AJR
dd0b82a670 Fix debugger memory view editing for address-shifted spaces 2018-09-24 14:39:20 -04:00
Vas Crabb
250c06a4d7 srcclean (nw) 2018-09-23 12:22:35 +10:00
David Haywood
ccded2bf8b Namco System 21 and other related refactors (#4013)
* namco checkpoint (including cam900 submission)

* move code into device (nw)

* start splitting DSP support code into devices (nw)

* fix crash (nw)

* prepare for further splitting (nw)

* move code for C67 based DSP PCB into it's own device (nw)

* survive F3 resets without crashing or breaking the 3D (nw)

* less magic numbers (nw)

* optional -> required
don't use fake bootstrap on older type, suspend CPU instead

* restore CPU yield hack for solvalou (nw)

* (nw)

* give galaxian3 some DSPs (nw)

* address hap's concern with a different workaround since MAME is awkward (nw)

* split namco21 driver into 3 drivers as the different configurations really are entirely different boardsets with similar components, not a real 'system'
emulated entire PCB set for driveyes ( http://www.tvspels-nostalgi.com/Bilder/PCB/Namco/driverseye_cage_inside.jpg ) although how the PCBs communicate is not yet known (C139 maybe, which might also be an MCU)

* remove empty file (nw)

* actually thinking about it, this is cleaner (nw)

* mark cybsledj as World instead, there's nothing about this set other than the CY1 code to indicate that it's a Japanese set, and I don't think the Namco codes represent region, just release order.

* newline (nw)

* newline (nw)
2018-09-21 15:01:12 -04:00
AJR
fb0d3803aa esprit.cpp: Updates (nw)
- Derive clocks from actual XTALs
- Raw screen parameters
- Character width is 9, not 8
- Separate configurations (different enough now)
- Remove MCFG configuration macros
- Add and map various devices, particularly for esprit3
- Note undumped (though probably unused) R6531 mask ROM
2018-09-21 11:44:19 -04:00
Vas Crabb
2993e850bb (nw) fix lots of inadverently mutable static pointers 2018-09-20 11:42:37 +10:00
Vas Crabb
7014716003 (nw) hey GLIBC maintainers - how about you use reserved _NAMES like you're supposed to for your macros, and stop #defining random words? it makes writing portable code hard. 2018-09-20 00:02:31 +10:00
Vas Crabb
b5758f5273 Re-write serial mouse support:
* Separate Microsoft 2-button mouse and Logitech 3-button Microsoft-compatible mouse
* Add Microsoft wheel mouse
* Make Mouse Systems mouse behave more realistically
* Add Mouse Systems "rotatable" mouse
* Simplify code and eliminate timers

(nw) X/Y translation and buttons works for all devices.  The wheel on
the wheel mouse seems to be transmitting the right data, and CuteMouse
detects the wheel as being present, but no software seems to support it
properly.  Software supporting the Mouse Systems "rotatable" mouse is
very rare - typically people just set the DIP switches on their M-1 for
"non-rotatable" mode.  A standard mouse driver will see the "rotatable"
mouse moving two mickeys for each count, and move eratically on
rotation.  The "rotable" mouse is poorly tested due to lack of software.

(nw) MAME doesn't have a proper input type for a mouse wheel, and it
doesn't seem to be possible to map the host mouse wheel to an axis when
configuring inputs.  The default mapping ends up assigining the wheel or
rotation to one of the translation axes, which is very unhelpful.
2018-09-19 20:00:56 +10:00
Vas Crabb
96c1be1325 Generate layouts for dual-screen machines rather than loading
dualhsxs.lay - this ensures aspect ratio is correct for non-4:3 screens.

(nw) Also restore internal layouts for multi-screen Game & Watch
systems.
2018-09-18 23:36:00 +10:00
AJR
c33edfd060 ampex210p: Add XTAL values, video RAM, etc. (nw) 2018-09-17 04:06:17 -04:00
AJR
79e605fde6 imds2: Clock corrections and cleanups (nw) 2018-09-13 03:23:41 -04:00
AJR
c19998753b octopus: Configurable clock for the SCN2674 (nw) 2018-09-11 20:57:38 -04:00
Patrick Mackinlay
8919ce5645 interpro: notworking -> networking (#3815)
* interpro: notworking -> networking

These changes combine to make InterPro networking work on Windows with the TAP-Windows6 driver.
* osdnet: add a receive delay (1 frame) after transmit to avoid a time-travel problem
* taptun: pad short Ethernet frames and append FCS (Windows-only until Linux taptun behaviour is verified)
* clipper: fix bugs in carry flag handling, prefer sign bit for tests
* i82586: fix transmit bug, handle reset

* networking: delayed transmit/receive

A second attempt to fix networking on InterPro systems, by introducing somewhat realistic delays into network transmit and receive paths. This version works by adding functions to device_network_interface which enable a device to be informed when the transmit or receive completes. The delay is only crudely approximated based on the specified bandwidth and the number of bytes being transmitted, but it should be good enough in practice. Existing drivers should not be impacted by these changes; overriding the new functions (and no longer overriding recv_cb) is necessary to obtain the new behaviour.

Changes from the previous commit:
* i82586: improve interrupt handling, implement delayed transmit/receive behaviour
* dinetwork: add transmit/receive delay timers, handlers and logic
* osdnet: remove receive delay, add the ability to start the receive timer
2018-09-04 19:26:58 +10:00
smf-
c133d80173 memory: Fix unmapped values with subunits [smf] 2018-08-31 17:48:44 +01:00
Vas Crabb
6cdb89bf44 Merge tag 'mame0201'
MAME 0.201

Conflicts:
	src/emu/render.h
	src/mame/drivers/mastboyo.cpp
	src/mame/drivers/opwolf.cpp
	src/osd/modules/render/drawbgfx.h
2018-08-30 04:03:59 +10:00
Olivier Galibert
badc06d1f5 Fix main fallout (nw) 2018-08-26 23:03:06 +02:00
Vas Crabb
c87777a015 fixup (nw) 2018-08-27 01:30:08 +10:00
mooglyguy
141e1d0a64 Remove debug prints, nw 2018-08-26 16:46:30 +02:00
mooglyguy
8105b73548 -bgfx: Improved rendering with artwork by 5-10x or more. [Ryan Holtz] 2018-08-27 00:32:15 +10:00
mooglyguy
cd3cbf5603 -bgfx: Improved rendering with artwork by 5-10x or more. [Ryan Holtz] 2018-08-26 16:26:52 +02:00
smf-
d629034f52 added devcb workround to allow mitsumi keyboard to build with visual studio (nw) 2018-08-26 23:23:25 +10:00
Olivier Galibert
dd64cdceee emumem: Fix ioports/membanks in internal maps [O. Galibert]
PS: That may break things, we'll see.
2018-08-26 10:36:30 +02:00
smf-
03adeab064 added devcb workround to allow mitsumi keyboard to build with visual studio (nw) 2018-08-26 08:53:19 +01:00
Vas Crabb
e1ffc337ff srcclean and manual fixup (nw) 2018-08-26 13:50:14 +10:00
AJR
ac355d1559 Apply logical address mask properly in debug disassembly view
Associated core changes (nw)
- Move definition of address_space_config from dimemory.cpp to emumem.cpp (declaration was already in emumem.h)
- Add getters for more members of address_space_config with future privatization in mind (nw)
2018-08-24 22:20:54 -04:00
mooglyguy
f10c6be54f ds1315, ds1386, ds2404, ds75160a, ds75161a, eeprom, eepromser, eeprompar: Removed MCFG, nw 2018-08-23 18:34:21 +02:00
AJR
56ee4e784c screen.h: Fix have_screen_update(), which was broken and returned false under any valid configuration, and rename the function has_screen_update(). This fixes regressions in granny and other drivers using custom update functions with CDP1861, CDP1864 and TMS992x VDPs.
tms9928a: Eliminate the clock validity check, which has fulfilled its purpose (nw)
2018-08-22 18:23:12 -04:00
smf-
2ed5eafa69 Optimise start up by delaying the state save sort and check for duplicates until all the devices have been started. This has the most visible effect on vgmplay because it registers over thirty thousand state save entries. [smf] 2018-08-22 17:21:03 +01:00
AJR
154276d260 New machines marked as NOT_WORKING
----------------------------------
WY-100 [Al Kossow]
Z-29 [Al Kossow]
2018-08-21 23:00:49 -04:00
AJR
b3e306b985 divideo: Fetch screen to be potentially configured during device_config_complete (nw)
- Allow device finder to be used as an argument for set_screen (nw)

screen: Calculate physical aspect ratio whenever required, not in device_config_complete, since the renderer caches the result anyway (nw)

cdp1861, cdp1864: Eliminate the "magic reference" constructors, doing their work in device_config_complete instead (nw)
2018-08-21 09:04:09 -04:00
AJR
67cc4b9c44 Fix scrolling glitch in memory view when address expression is applied 2018-08-12 16:35:51 -04:00
AJR
708d928214 Don't apply logical address masks to physical addresses in debug memory accesses (nw) 2018-08-12 10:02:23 -04:00
AJR
a459faa90f Emulate V33/V53 expanded addressing mode, including BRKXA and RETXA instructions
Mask address expressions correctly in debug memory view when using physical addresses beyond logical limits
2018-08-12 02:11:58 -04:00
AJR
a632b01217 xtal.cpp: Definition to be used later (nw) 2018-08-11 19:51:14 -04:00
AJR
7e592bc3de Revert "Send LF with CR when using natuaral keyboard on systems with a line feed key"
This reverts commit 409c0663bc.
2018-08-11 11:20:58 -04:00
AJR
9949ec3747 rt1715: Clock correction (nw) 2018-08-11 01:48:54 -04:00
AJR
f5321e1b23 Misc. fixes for recent commits (nw) 2018-08-10 13:44:24 -04:00
AJR
409c0663bc Send LF with CR when using natuaral keyboard on systems with a line feed key 2018-08-10 11:48:56 -04:00
Olivier Galibert
e78ca34bac memory,devcb: Put capabilities at parity [O. Galibert] 2018-08-10 09:47:03 +02:00
smf-
2c31275f79 sound_stream::sample_rate() was broken since adding support for setting a zero rate, nothing appears to rely on it (nw) 2018-08-09 20:34:19 +01:00
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