Commit Graph

13294 Commits

Author SHA1 Message Date
AJR
50f045ba74 Eliminate the default address map member of address_space_config (nw)
Since all device address maps are now class methods defined in ordinary C++, default RAM maps can be provided more simply with an explicit has_configured_map check in an internal map definition.

A number of default address maps that probably weren't meant to be overridden have also been changed to ordinary internal maps.
2019-02-17 11:50:17 -05:00
cam900
7967b9e3d5 Remove MCFG_DEVICE_DISASSEMBLE_OVERRIDE usage
coco12.cpp, coco3.cpp Minor MCFG removals
dgn_beta.cpp, palm.cpp : Remove MCFGs
2019-02-17 23:14:03 +11:00
AJR
314f411b13 Eliminate qsort usage in debugger (nw) 2019-02-16 21:27:06 -05:00
hap
5ac6046197 video: don't use iter count (nw) 2019-02-15 02:58:20 +01:00
hap
33383cdaa7 video: stop frameskipping constantly on screenless systems with frameskip=0 (nw) 2019-02-15 01:45:39 +01:00
Celelibi
35b13ffab2 Video throttling: Additive oversleeping
Signed-off-by: Celelibi <celelibi@gmail.com>
2019-02-15 10:17:38 +11:00
Ivan Vangelista
088c214cf7 misc MCFG and MACHINE_CONFIG macro removal (nw) 2019-02-13 19:16:32 +01:00
Robbbert
590431adc9 (nw) Changed "Fatal error: Fatal error: blah" to "Fatal error: blah". 2019-02-13 20:05:45 +11:00
AJR
71c134c887 sys80: Add 50 Hz version with different timings
(nw) Note that "NTSC" and "PAL" would be misnomers for systems with monochrome video output and idiosyncratic line rates.

The 50 Hz timings have also been applied to the HT-1080Z (available documentation for which seems not particularly reliable).
2019-02-12 15:30:51 +11:00
hap
26c85d7e25 chess*: refactor irq timers (nw) 2019-02-11 18:34:59 +01:00
Ivan Vangelista
502197b9c8 screen.h: adddedconstructor for monochrom screens and removed MCFG_SCREEN_ADD_MONOCHROME and MCFG_SCREEN_COLOR (nw)
misc MACHINE_CONFIG removal (nw)
started work on voltage_regulator_device macros removal (nw)
2019-02-11 18:18:45 +01:00
AJR
b8d642c4b6 nb_rtpd: Raw parameters for screen (nw) 2019-02-10 09:35:41 -05:00
Vas Crabb
422d365332 get rid of some copy/pasted macros for different numbers of arguments (nw) 2019-02-09 21:28:39 +11:00
AJR
6ebdef9e12 lisa: Add XTAL definitions (nw)
- Remove "kbcop" device. The COP-based keyboard seems to be mostly undocumented and not actually dumped. (Bitsavers has documentation for a 8748 keyboard.)
2019-02-08 19:59:32 -05:00
Peter Ferrie
e769e76ce4 enable sub-second snapshot timers (nw) (#4493)
* enable sub-second snapshot timers (nw)

* switch to attotime, accept doubles

* support LLVM extension in MSVC

make vsllvm

using extension from here:

https://marketplace.visualstudio.com/items?itemName=LLVMExtensions.llvm-toolchain
2019-02-04 13:05:46 -05:00
AJR
5e969d8d97 New machines marked as NOT_WORKING
----------------------------------
ADM-31 Data Display Terminal [Bitsavers]
2019-02-02 18:04:08 -05:00
AJR
af1574c883 aaa: Add keyboard and RS232 ports; fill in many other things (nw) 2019-02-02 00:11:44 -05:00
Ivan Vangelista
b166ec2cff emu\softlist_dev: removed MCFG macros (nw)
also removed MCFG_DEVICE_REMOVE, MCFG_QUANTUM_TIME and MCFG_QUANTUM_PERFECT_CPU (nw)
2019-01-30 17:51:36 +01:00
Vas Crabb
76323eb770 srcclean and cleanup (nw) 2019-01-27 14:22:20 +11:00
AJR
26167fcc26 xtal.cpp: Might as well define this one now (nw) 2019-01-26 17:34:04 -05:00
AJR
41ccd92488 mac128.cpp: Define XTAL (nw) 2019-01-26 17:01:26 -05:00
AJR
85b82460f4 Add more PC video XTALs (nw) 2019-01-25 12:15:28 -05:00
AJR
e47a6d31b3 Used for EGA, too (nw) 2019-01-24 22:29:17 -05:00
AJR
208fe4e4fa Add definition for one rather well-known XTAL (nw) 2019-01-24 22:22:49 -05:00
AJR
709559b754 concept: Add master oscillator and some derivved clocks; hook up slot interrupts (nw) 2019-01-22 20:46:52 -05:00
AJR
a6f64287a3 Add object finder for address spaces
(nw) The constructor and set_tag methods for required_address_space and optional_address_space work slightly differently from other finders in that they take the address space number as an extra argument. There is also an option to request a space having a specific data width, and validation checks this as well as the space number. There is also no (required|optional)_address_space_array, but that shouldn't really be necessary since devices shouldn't need large numbers of these finders.
2019-01-22 11:39:32 -05:00
Vas Crabb
e22568da38 one shouldn't assume page zero looks like a std::string (nw) 2019-01-20 01:44:08 +11:00
Vas Crabb
e147e5ae97 restore functionality of the "Add to Favorites" item on the main in-emulation menu 2019-01-19 19:37:12 +11:00
Vas Crabb
9198c2bd58 More UI stuff:
* Split up the different parts of ICO loading in the menus (locating files, scaling, drawing, etc.)
* Added icon support to software selection menu
* Added support for more ICO file variants, including PNG-in-ICO (new DIB parser is overkill for ICO but I can factor it out for BMP loading at some point)
* Added favourites filter for software menus - includes software that's favourited on any system, so GBC includes DMG favourties and vice versa
* Eliminated unnecessary member variables and O(n) walks in software selection menu
* Made the menus' cached texture structures a bit more efficient
2019-01-19 17:34:43 +11:00
AJR
80c45399b4 New machines marked as NOT_WORKING
----------------------------------
ADM 23 Smart Terminal [Bitsavers]
2019-01-18 20:03:19 -05:00
AJR
d2b2b497de Assert in field_set_name if no field is configured (nw)
This should help catch instances where PORT_NAME is accidentally substituted for PORT_START (a frequent mistake of mine).
2019-01-13 11:26:50 -05:00
Vas Crabb
3d84943f72 Make search not suck as badly (use algorithm derived from Jaro-Winkler similarity to match search strings, match on more useful stuff) 2019-01-14 00:44:46 +11:00
AJR
66de2ce663 sbus/cgthree: Screen raw parameters (nw) 2019-01-12 17:39:58 -05:00
Vas Crabb
fc59d08474 get rid of the rest of the digfx MCFG as well (nw) 2019-01-07 03:36:29 +11:00
tedgreen99
5f1ddffdc5 Always call send_complete_cb, even if no adapter is present (nw) (#4477) 2019-01-06 14:00:13 +01:00
Vas Crabb
74bfa27912 remove some MCFG macros that were barely used any more (nw) 2019-01-06 22:11:30 +11:00
AJR
fc82839871 diserial: Make is_receiver_register_full and is_transmit_register_empty const and inline (nw) 2019-01-04 17:17:30 -05:00
Olivier Galibert
2894c038d8 wd33x9c: Checkpoint commit for co-debugging 2019-01-03 18:29:54 +01:00
Vas Crabb
8ef80b186b (nw) So we're back to MSVC blowing up on non-trivial templates. Lovely.
Someone needs to get MS QA to put some non-trivial modern C++
compliation tests in the acceptance tests for their C++ compiler.  Maybe
MAME could even be a candidate.  Well, that might be a plan if MS still
had any QA.  At least this makes some lines shorter (at the cost of
needing more lines).
2018-12-30 17:34:49 +11:00
Vas Crabb
c241943e67 seems to get bind errors in some cases without this (nw) 2018-12-29 08:36:03 +11:00
Vas Crabb
f1f0591f43 Start cleaning up palette configuration:
* Basically, initialisers go in the constructor arguments, and things for setting format go in set_format.
* Initialisation patterns can be specified with an enum discriminator or with a FUNC and optionally a tag.
* Formats can be specified with an enum discriminator or a size and function pointer.
* You must always supply the number of entries when setting the format.
* When initislising with a paletter initialisation member, you can specify the entries and indirecte entries together.
* The palette_device now has a standard constructor, so use .set_entries if you are specifying entry count with no format/initialisation.
* Also killed an overload on delegates that wasn't being useful.
2018-12-29 05:53:50 +11:00
AJR
65bfb2654f diserial: Actually check parity of received bytes in modes other than PARITY_NONE; fix transmission of parity bit in PARITY_EVEN mode
i8251: Flag parity and framing errors in status register
2018-12-28 13:21:17 -05:00
AJR
9ef985027d xtal.cpp: PAL SMS schematics suggest Sega did intend this to be an exact multiple (nw) 2018-12-27 22:41:43 -05:00
AJR
cdf1993d1e Eliminate custom_port_read and use ioport finders instead (nw) 2018-12-26 18:26:37 -05:00
ClawGrip
c3d91f47ab New WORKING clone (#4408)
* Rename "galaxygn" -> "galaxygno". Add a newer Galaxy Gunners set as "galaxygn" (nw)
Add a new xtal 7.9955MHz, found on the Galaxy Gunners sound board (nw)

* New WORKING clone

-----------------------
Galaxy Gunners (set 1) [David Torres, ClawGrip, Recreativas.org]

Also documented the CPUs to be 8088 (main) and V20 (sound) and corrected the sound clock (7.9955 instead of 8MHz).

Out of whatsnew: It sounds good to me, but I left MACHINE_IMPERFECT_SOUND on. I'll record the real sounds from the PCB on a few days to compare.

* Add note about ROM type (nw)

* Typo (nw)

* Rename the Galaxy Gunners sets as "Galaxy Gunners (1990 copyright)" and "Galaxy Gunners (1989 copyright)" (nw)

* Change the new set as "galaxygnh" (nw)

* Rename the new set as "Galaxy Gunners (1990 year hack)" (nw)

Also, leave the original set as parent.
2018-12-21 08:03:59 -05:00
Olivier Galibert
a9e6f19320 emumem: remove m_baseptr, may fix the save state issues [O. Galibert] 2018-12-20 20:25:33 +01:00
mooglyguy
b865623fdf -arcadia, binbug, cd2650, cvs, dm7000, dolphunk, galaxia, hp48, instruct, konamim2, laserbat, phunsy, pipbug, quasar,
quizshow, ravens, subhuntr, taitopjc, tx0, vc4000, zac_1, zac_2: Removed MACHINE_CONFIG. [Ryan Holtz]

-bus/arcadia/slot, bus/vc4000/slot, tx0, ppc, s2650, saturn: Removed MCFG macros. [Ryan Holtz]
2018-12-15 10:39:27 +01:00
mooglyguy
bf0cfcf13d -keyboard/a1200, changela, goldnpkr, m68705prg, mexico86, pipeline, pitnrun, qix, quizpun2, stfight, tigeroad: Removed MACHINE_CONFIG. [Ryan Holtz]
-m68705, m68hc05: Removed MCFG. [Ryan Holtz]

-qix: First-pass cleanup. [Ryan Holtz]

-core: Fixed spelling of "nonexistent". [Ryan Holtz]
2018-12-14 23:45:04 +01:00
Vas Crabb
113f98accc clean up and improve option descriptions 2018-12-13 11:04:05 +11:00
Scott Stone
cd3b77121f dec8.cpp: Fix regression with ghostb, srdarwin (nw)
Some misc text changes to certain trigger usage info (nw)
2018-12-09 20:46:36 -05:00
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