summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/spg2xx_io.cpp
Commit message (Collapse)AuthorAgeFilesLines
* emu/devcb.h: Eliminated the need to call resolve() on callbacks. (#11333) Vas Crabb2023-06-171-28/+6
| | | | | | | | | | | | Read callbacks now need a default return value supplied at construction. Replaced isnull() with isunset() which tells you if the callback wasn't configured rather than whether it isn't safe to call. Enabled validation of device callbacks (it seems it was disabled at some point, probably accidentally). Device callbacks and object finders now implement the same interface for resolution.
* - Removed device_timer, device_timer_id, et al in favor of direct callback ↵ MooglyGuy2022-06-041-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | members. (#9788) Primarily, this removes device_t::device_timer, device_t::timer_set, device_t::synchronize, device_t::timer_expired, and device_timer_id. Use of device_timer often resulted in unnecessary trampolining in addition to switch/case overhead on a driver/device level, and additional logic to manage delegated vs. ID-based timers on a core level. In the worst cases, devices were performing a switch/case with only one valid case. device_scheduler::timer_set is marked deprecated as the only remaining direct uses are via the Lua engine and a few drivers that need refactoring anyway. The remaining uses occur via device_scheduler::synchronize. As a middle ground between the extremely short timer_alloc() and the extremely long machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(widget_device::contoso_tick), this)), a helper function in device_t has been added which can be invoked with the following syntax: timer_alloc(FUNC(widget_device::contoso_tick), this) - Additional changes/cleanups performed along the way: - Converted to use logmacro: * src/devices/bus/ieee488/hp9895.cpp * src/devices/bus/ieee488/remote488.cpp * src/devices/bus/isa/hdc.cpp * src/devices/bus/isa/omti8621.cpp * src/devices/bus/isa/sc499.cpp * src/devices/bus/vip/vp550.cpp * src/devices/cpu/i86/i186.cpp * src/devices/cpu/lc8670/lc8670.cpp * src/devices/machine/68230pit.cpp * src/devices/machine/corvushd.cpp * src/devices/machine/ds1994.cpp * src/devices/machine/ticket.cpp * src/mame/audio/pinsnd88.cpp * src/mame/drivers/notetaker.cpp * src/mame/machine/asic65.cpp * src/mame/machine/rmnimbus.cpp * src/mame/machine/victor9k_fdc.cpp * src/mame/video/uv201.cpp - Made usage of m_member prefix consistent: * src/devices/bus/isa/hdc.cpp * src/devices/bus/isa/omti8621.cpp * src/devices/bus/vme/vme_fccpu20.cpp * src/devices/machine/ds1386.cpp * src/devices/machine/i7220.cpp - Spacing consistency pass: * src/devices/bus/isa/hdc.cpp * src/devices/bus/isa/omti8621.cpp * src/devices/bus/thomson/nanoresau.cpp * src/devices/bus/ti99/internal/992board.cpp * src/devices/bus/ti99/internal/genkbd.cpp * src/devices/bus/ti99/internal/joyport/handset.cpp * src/devices/bus/vme/vme_fccpu20.cpp * src/devices/cpu/i86/i186.cpp * src/devices/cpu/lc8670/lc8670.cpp * src/devices/machine/68230pit.cpp * src/devices/machine/cop452.cpp * src/devices/machine/corvushd.cpp * src/devices/machine/hp_dc100_tape.cpp * src/devices/machine/hp_taco.cpp * src/devices/machine/meters.cpp * src/devices/machine/microtch.cpp * src/devices/machine/phi.cpp * src/devices/video/ef9365.cpp * src/devices/video/v9938.cpp * src/mame/drivers/alphaskop41xx.cpp * src/mame/drivers/myb3k.cpp * src/mame/drivers/notetaker.cpp * src/mame/drivers/wpc_an.cpp * src/mame/machine/midikbd.cpp * src/mame/machine/rmnimbus.cpp * src/mame/machine/wpc_lamp.cpp * src/mame/machine/wpc_out.cpp - Removed string-based ioport lookups: * src/devices/bus/ti99/internal/joyport/handset.cpp * src/devices/bus/ti99/internal/joyport/mecmouse.cpp * src/devices/bus/vme/vme_hcpu30.cpp * src/mame/machine/k7659kb.cpp * src/mame/machine/ti85.cpp - Adjustments to grammar/wording in comments * src/devices/bus/sms_ctrl/lphaser.cpp * src/devices/bus/sms_ctrl/sports.cpp * src/devices/bus/snes/event.cpp * src/devices/bus/snes/sa1.cpp * src/devices/bus/thomson/nanoresau.cpp * src/devices/bus/z88/z88.cpp * src/devices/machine/ds1386.cpp * src/devices/machine/vic_pl192.cpp - Favored BIT() macro for single-bit checks * src/devices/bus/ti99/internal/992board.cpp * src/devices/bus/ti99/joyport/handset.cpp * src/mame/drivers/notetaker.cpp * src/mame/machine/wpc_lamp.cpp * src/mame/machine/wpc_out.cpp - Removed C89-style variable declarations when noticed * src/devices/bus/isa/hdc.cpp * src/devices/bus/sms_ctrl/lphaser.cpp * src/devices/bus/ti99/joyport/mecmouse.cpp * src/devices/machine/acorn_vidc.cpp * src/devices/sound/ymz280b.cpp * src/devices/video/vic4567.cpp - Removed FUNCNAME to avoid compiler-specific #define checks in devices * src/devices/bus/vme/vme_fccpu20.cpp * src/devices/bus/vme/vme_hcpu30.cpp * src/devices/machine/68230pit.cpp * src/devices/machine/mc14411.cpp * src/mame/drivers/myb3k.cpp - Removed unecessary member prefixes/suffixes * src/devices/video/ef9340_1.cpp * src/mame/drivers/fuukifg2.cpp * src/mame/drivers/fuukifg3.cpp * src/mame/drivers/intv.cpp * src/mame/drivers/simpsons.cpp * src/mame/drivers/socrates.cpp * src/mame/drivers/special_gambl.cpp * src/mame/drivers/sprint4.cpp * src/mame/drivers/ti990_10.cpp * src/mame/drivers/tubep.cpp * src/mame/drivers/vectrex.cpp * src/mame/drivers/wpc_an.cpp * src/mame/drivers/wpc_dot.cpp * src/mame/drivers/wpc_flip1.cpp * src/mame/drivers/wpc_flip2.cpp * src/mame/machine/z80ne.cpp * src/mame/video/rollerg.cpp - Switched to lower-case hex constants * src/devices/video/ef9365.cpp * src/mame/machine/rmnimbus.cpp - Re-ordered driver overrides and function members * src/mame/drivers/boxer.cpp * src/mame/drivers/eurocom2.cpp * src/mame/drivers/exidy.cpp * src/mame/drivers/gpworld.cpp * src/mame/drivers/h19.cpp * src/mame/drivers/ibmpcjr.cpp * src/mame/drivers/mekd5.cpp * src/mame/drivers/mgolf.cpp * src/mame/drivers/myb3k.cpp * src/mame/drivers/nightmare.cpp * src/mame/drivers/notetaker.cpp * src/mame/drivers/ptcsol.cpp * src/mame/drivers/pwrview.cpp * src/mame/drivers/rabbit.cpp * src/mame/drivers/sitcom.cpp * src/mame/drivers/socrates.cpp * src/mame/drivers/sprint4.cpp * src/mame/drivers/techno.cpp * src/mame/drivers/thayers.cpp * src/mame/drivers/ti990_10.cpp * src/mame/drivers/ti990_4.cpp * src/mame/drivers/tv912.cpp * src/mame/drivers/tv990.cpp * src/mame/drivers/uchroma68.cpp * src/mame/drivers/vk100.cpp * src/mame/drivers/votrhv.cpp * src/mame/drivers/wicat.cpp * src/mame/drivers/wpc_an.cpp * src/mame/includes/abc80.h * src/mame/includes/asterix.h * src/mame/includes/fuukifg2.h * src/mame/includes/fuukifg3.h * src/mame/includes/gunbustr.h * src/mame/includes/intv.h * src/mame/includes/namcona1.h * src/mame/includes/newbrain.h * src/mame/includes/poly.h * src/mame/includes/prof80.h * src/mame/includes/rollerg.h * src/mame/includes/s11.h * src/mame/includes/segahang.h * src/mame/includes/simpsons.h * src/mame/includes/spacefb.h * src/mame/includes/tandy2k.h * src/mame/includes/trucocl.h * src/mame/includes/tubebp.h * src/mame/includes/vidbrain.h * src/mame/includes/wolfpack.h * src/mame/includes/wpc_dot.h - Made capitalization consistent on class members * src/devices/machine/meters.cpp * src/mame/drivers/namcona1.cpp * src/mame/drivers/notetaker.cpp -src/devices/bus/isa/hdc.cpp: * Removed fixed-size std::vector in favor of std::unique_ptr -src/devices/bus/isa/s3virge.cpp: * Moved unusually large (for a header) functions into .cpp from header -src/devices/bus/vip/vp550.cpp * Switched to required_device_array to simplify code paths -src/devices/machine/arm_iomd.cpp * Added initializers to constructor * Favored std::size over fixed static sizes -src/devices/machine/ds1386.cpp * Moved register #defines into header enums -src/devices/machine/mc68901.cpp * Removed unnecessary parameters and emu_timer::enable calls -src/devices/machine/mccs1850.cpp * Removed inline overuse -src/devices/machine/meters.cpp * Removed unused members -src/devices/machine/mos6526.cpp * Removed inline overuse -src/devices/machine/nsc810.cpp * Converted to arrays rather than individually-numbered members -src/devices/machine/pxa255.cpp * Simplified DMA transfer code -src/devices/machine/saa1043.cpp * Removed extraneous members in favor of resolve_all_safe -src/devices/machine/vic_pl192.cpp * Shifted constructors, start-up, and maps to be at the top of the source file -src/devices/machine/z8536.cpp * Removed stray uses of device_timer_id -src/devices/sound/cdp1869.cpp * Removed inline overuse -src/devices/sound/mos7360.cpp * Converted to arrays rather than individually-numbered members -src/emu/device.cpp * Removed ID-based timer_alloc * Removed timer_set * Removed synchronize * Removed timer_expired * Added shorthand timer_alloc to avoid lengthy machine().scheduler().timer_alloc() calls -src/emu/schedule.cpp * Removed now-unused m_id and m_device members -src/mame/audio/alesis.cpp * Added initializers to constructor -src/mame/drivers/alto2.cpp * Removed custom-named driver init in favor of driver_init override * Removed octal constant in favor of more standard hex -src/mame/drivers/astinvad.cpp * Fixed 'kamizake' typo -src/mame/drivers/tm990189.cpp * Removed unnecessary machine reset override -src/mame/drivers/unichamp.cpp * Removed custom-named driver init in favor of driver_init override -src/mame/drivers/votrhv.cpp * Fixed ROM_LOAD macros and region() usage in memory maps -src/mame/machine/victor9k_fdc.cpp * Made bracing style consistent across the file -src/mame/video/gime.cpp * Removed unnecessary void specifiers in function prototypes
* Made SPG2xx I/O IRQ checking a bit more lean; improved ADC behavior. (#8138) ↵ MooglyGuy2021-06-041-221/+118
| | | | [Ryan Holtz]
* new working machines (plug and play) (#8100) David Haywood2021-06-011-1/+9
| | | | | | | | | | | | | | | | | | | | | | | * new working machines ------ Star Wars - Original Trilogy (JAKKS Pacific TV Game, prototype) [anonymous] Dreamworks Movie Night (JAKKS Pacific TV Game, Oct 18 2006, prototype) [anonymous] X-Men - Mutant Reign (JAKKS Pacific TV Game, prototype) [anonymous] new working clones ------ Star Wars - Revenge of the Sith (JAKKS Pacific TV Game, Game-Key Ready, prototype) [anonymous] Dreamworks Movie Night (JAKKS Pacific TV Game, Apr 24 2006, test program) [anonymous] new working software list entries ------ jakks_gamekey_sw.xml : Turret Defense & Yoda's Escape (prototype) [anonymous] Imperial Gunner & Escape From Cloud City (Dec 22 2005, prototype) [anonymous] Catamaran Strike & Coruscant Fire Patrol (Jun 2 2005, prototype) [anonymous] * note about ADC issue, possible fix * move jak_capb plunger to analog channel 3
* Eliminate ARRAY_LENGTH template in favor of C++17's std::size AJR2021-02-141-7/+7
| | | | | | | | | | * osdcomm.h: Move definition of EQUIVALENT_ARRAY to coretmpl.h * sharc.cpp, gt64xxx.cpp, ym2413.cpp, gb_lcd.cpp, snes_ppu.cpp: Use STRUCT_MEMBER for save state registration * gio/newport.cpp, megadrive/svp.cpp, nes_ctrl/bcbattle.cpp, arm7.cpp, tms9995.cpp, pckeybrd.cpp, sa1110.cpp, sa1111.cpp, jangou_blitter.cpp, vic4567.cpp: Use std::fill(_n) instead of memset * emucore.h: Remove obsolete typedef
* Fix most implicit fallthrough warnings from clang Vas Crabb2020-11-171-1/+1
|
* -spg2xx_io: Put side-effect guards around potentially volatile reads. Ryan Holtz2020-08-071-36/+47
|
* -vsmile: Fixed inputs. [Ryan Holtz] Ryan Holtz2020-07-121-6/+2
|
* srcclean and cleanup (nw) Vas Crabb2020-06-211-3/+3
|
* devices/machine, sound and video: removed read and write macros (nw) Ivan Vangelista2020-06-171-6/+6
|
* a few tweaks relating to recent SPG ADC work (nw) (#6826) David Haywood2020-06-131-5/+23
| | | | | | | | | * give fordrace some controls (nw) * move some adc reads to the correct channels (nw) * stop jak_capb from crashing, plunger no longer works with new code however (nw) * hook up battery states (nw)
* -spg2xx_io: Better ADC behavior when reading converted data. [Ryan Holtz] Ryan Holtz2020-06-111-2/+3
|
* -spg2xx: Fix up ADC support. fordrace now polls all six ADC channels. [Ryan ↵ Ryan Holtz2020-06-111-3/+10
| | | | Holtz]
* -spg2xx: Revised ADC behavior. Does not currently work properly. Checking in ↵ Ryan Holtz2020-06-111-16/+103
| | | | so that others can debug. nw
* srcclean and manual adjustments (nw) Vas Crabb2020-02-231-4/+4
|
* spg2xx: Added rudimentary SPI support. [Ryan Holtz] mooglyguy2020-02-191-21/+246
|
* (nw) spg2xx: fixed 6 compilation errors Robbbert2020-02-191-1/+1
|
* -i2cmem: Added 24C04 device type. [Ryan Holtz] MooglyGuy2020-02-191-194/+260
| | | | | | | | -spg2xx_io: Converted from magic register indices to enumerated values. Added SPI logging. [Ryan Holtz] -spg2xx_jakks: Split into separate game-key, plain, and touch drivers. [Ryan Holtz] -jak_batm: Hooked up I2C EEPROM to enable saving. [Ryan Holtz]
* New working machines MooglyGuy2020-02-171-0/+20
| | | | | | | | | -------------------- Dream Life Superstar (Version 0.3, Mar 16 2007) [Sean Riddle, David Haywood, Ryan Holtz] -spg2xx_io: Added watchdog timer support. [Ryan Holtz] -spg2xx: Removed nodrc flag from tvsprt10 now that the DRC supports JVS/JVC, nw
* (nw) whole lot less of { *this } Vas Crabb2020-02-051-3/+2
|
* Plug and Play work (#6221) David Haywood2020-01-291-26/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * new WORKING machines ---- Interactive TV Games 49-in-1 (PAL) [TeamEurope, David Haywood] new NOT WORKING machines ---- Reactor MD (PAL) [TeamEurope, David Haywood] the SunPlus part of the Reactor boots and runs, the MD part I haven't attempted to emulate, the main menu seems to run in an added / unsupported video mode when I took a brief look. As such, it gets marked as not working, as the SunPlus part is only meant to boot once you select it from the MD based main menu. * change name (nw) * (nw) * (nw) * new WORKING machine --- Teenage Mutant Ninja Turtles - Pocket Dream Console (France) [TeamEurope, David Haywood] * (nw) * (nw) * (nw) * added the Buzztime system ROM [Sean Riddle]
* spg2xx_io.cpp: disable logging by default (nw) Vas Crabb2019-12-221-1/+1
|
* -spg2xx: Fixed a subtle interrupt bug causing Clickstart to not boot. [Ryan ↵ mooglyguy2019-12-221-8/+54
| | | | Holtz]
* Sunplus Plug & Play work (cleanup + fixes + notes based on wrlshunt code ↵ David Haywood2019-12-041-6/+6
| | | | | | | | | | | | | | | | | | analysis) (#6010) * misc sunplus work (nw) * unbreak a few things, remove some test code (nw) * mask shift values, maybe correct based on code study (nw) * refactor (nw) * notes based on code study (nw) * force a different codepath in wrlshunt, static screen, but differnet, no crash, need to see if it's valid (nw) * test (nw)
* Plug & Play work (Tv GoGo, Poker inputs etc.) (#5898) David Haywood2019-11-131-50/+54
| | | | | | | | | | | | | | | | | | | | | | * vii.cpp: tvgogo, return value written on a port so that it boots (nw) also for spg2xx_io, add machine().describe_context() to more of the logging calls to make it more informative for debugging. * workaround so poker boots without debugger trick (nw) * uart read notes (nw) * not ideal, but force poker UART reads for now (nw) * improve input (nw) * clickable artwork fixes (nw) * comment (nw) * srcclean (nw) * tidy (nw)
* promoted to WORKING (pvmil - SunPlus) (#5818) David Haywood2019-10-281-6/+22
| | | | | | * pvmil - map inputs, promote to working * put SunPlus RNG on a timer, so that the pvmil questions are actually in a random order (nw)
* srcclean, fix up apple2_flop_clcracked.xml (nw) Vas Crabb2019-04-211-2/+2
|
* spg110: tweaks for jak_capb, improves rendering, identifies several things ↵ David Haywood2019-03-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#4816) * spg110: jak_capb misc guesses (nw) * misc priority stuff (nw) * tweaks (nw) * more tweaks (nw) * small spg2xx refactor (nw) * some spg2xx refactoring (nw) * (nw) * tidy (nw) * these have all been moved out into modules (nw) * sprite work in progress (nw) * (nw) * spg110: shift some stuff around and split into files here too * (nw) * (nw) * (nw) * sprite improvements
* (nw) Clean up the mess on master Vas Crabb2019-03-261-0/+1313
| | | | | | | | | | | | | This effectively reverts b380514764cf857469bae61c11143a19f79a74c5 and c24473ddff715ecec2e258a6eb38960cf8c8e98e, restoring the state at 598cd5227223c3b04ca31f0dbc1981256d9ea3ff. Before pushing, please check that what you're about to push is sane. Check your local commit log and ensure there isn't anything out-of-place before pushing to mainline. When things like this happen, it wastes everyone's time. I really don't need this in a week when real work™ is busting my balls and I'm behind where I want to be with preparing for MAME release.
* Revert "conflict resolution (nw)" andreasnaive2019-03-251-1313/+0
| | | | | This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing changes made to 009cba4fb8102102168ef32870892438327f3705.
* added some inputs to classic arcade pinball (nw) DavidHaywood2019-03-251-2/+45
|
* irq callbacks (nw) DavidHaywood2019-03-251-6/+17
|
* refactors etc. (nw) DavidHaywood2019-03-251-21/+10
|
* refactoring checkpoint (nw) DavidHaywood2019-03-251-0/+1270