summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/vrender0.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Ran srcclean across the source. Vas Crabb2026-03-221-2/+2
|
* -cpu/sharc: More recompiler improvements: Vas Crabb2026-03-081-1/+1
| | | | | | | | | | | | | | | | | | | | * Implemented fixed point CLIP and add/subtract with carry for recompiler. * Cleaned up and de-duplicated code for setting ASTAT flags on fixed point ALU operationf for recompiler, and fixed AC flag for subract operations. * Optimised generated code for fixed point dual add subtrat, PASS and COMP for recompiler. * Reduced unnecessary ASTAT flag copies for recompiler and added more glue that will be needed for supporting saturating arithmetic. * Cleaned up fixed point COMP code for interpreter. -machine/microtch.cpp: Added the host interface microcontroller to make it easier to look at the program (disabled for now, will be emulated in the future). -video/vrender0.cpp: The inline qualifier implies internal linkage for free functions in C++ - there's no need for static.
* machine/vrender0.cpp: Add DMA address direction, Updates (#15065) cam9002026-03-071-50/+80
| | | | | | | | | | | | | | | * machine/vrender0.cpp: Add DMA address direction, Updates - Use struct for timer for reduce duplicates - Add struct name for DMA registers for reduce duplicates - Add notes for DMA control register - Use BIT helper for single bit values - Replace printf to logerror - Use static function for DMA address increment calculation * machine/vrender0.cpp: Add DMA register format notes * machine/vrender0.h: Moved note into machine/vrender0.cpp * machine/vrender0.cpp: Make DMA comment shorter
* Cleaned up code in VRender0-related drivers and devices: (#14453) cam9002025-12-241-115/+111
| | | | | | | | | * Suppress side effects for debugger reads. * Use snake_case names, use abbreviated integer types, use lowercase hexadecimal digits. * Improved logging. * sound/vrender0.cpp: Update per-channel cache when texture memory pointer is changed. * video/vrender0.cpp: Use templates and function pointer arrays for draw functions. * video/vrender0.cpp: Use device_memory_interface for external memory. * video/vrender0.cpp: Minor fixes in single color fill function.
* Various small improvements: Vas Crabb2025-09-051-3/+3
| | | | | | | | | | | | | | | | | | | | misc/crystal.cpp: Added lamp outputs used by Office Yeoin Cheonha and Urachacha Mudaeri, and fixed button order/names for Urachacha Mudaeri. cpu/uml.cpp: Added a couple of simplification rules. ADDC's inputs are commutative, and TEST with an immediate zero operand effectively ignores the other operand. namco/namcos23.cpp: Treat spinny things as a dial rather than half a mouse. cpu/arm7: Removed the recompiler that had never been completed. cpu/drcumlsh.h: Removed helpers for generating the unimplemented JMPH instrcution. Trying to use it would cause a compile error. docs: Documented the most common DRC UML integer arithmetic and logical instructions.
* machine/vrender0.cpp: Updates and cleanups (#14116) cam9002025-09-041-18/+19
|
* New sound infrastructure. Olivier Galibert2025-04-271-6/+4
| | | | | | | | | | | | | | | | | Should be added soon: - mute - speaker/microphone resampling To be added a little later: - compression - reverb Needs to be added by someone else: - coreaudio - direct - portaudio - xaudio2 - js
* emu/devcb.h: Eliminated the need to call resolve() on callbacks. (#11333) Vas Crabb2023-06-171-2/+0
| | | | | | | | | | | | 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.
* emu/device.h: Removed device (READ|WRITE)_LINE_MEMBER in favor of explicit ↵ MooglyGuy2023-06-011-2/+2
| | | | function signatures. (#11283) [Ryan Holtz]
* video/vrender0.cpp: More accurate VRender0 pipeline inner workings (#11057) Angelo Salese2023-04-271-3/+5
| | | - Fixes donghaer split screen;
* misc/crystal.cpp: Removed hacks: (#11054) David Haywood2023-04-011-36/+0
| | | | | * cpu/se3208: Removed hack to ignore misaligned memory accesses. * machine/vrender0.cpp: Removed idle skip hack (it causes stability issues). * misc/crystal.cpp: Added default NVRAM contents for wulybuly with valid coinage settings.
* - Removed device_timer, device_timer_id, et al in favor of direct callback ↵ MooglyGuy2022-06-041-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Remove void *ptr parameter from emu_timer, timer_device and all related ↵ AJR2022-01-261-7/+9
| | | | callbacks
* Miscellaneous clean-up. Vas Crabb2020-10-291-6/+5
| | | | | * Replaced several uses of auto_alloc. * Removed a trampoline in bus/isa/xtide.cpp.
* devices/machine, sound and video: removed read and write macros (nw) Ivan Vangelista2020-06-171-26/+26
|
* se3208: Use callbacks for interrupt acknowledgment (nw) AJR2020-04-221-1/+1
|
* (nw) whole lot less of { *this } Vas Crabb2020-02-051-7/+6
|
* Revert "Revert "VRender0 Sound Engine Fixes, Improves (#6112)"" (#6135) cam9002020-01-051-5/+25
| | | | | | | | | | | | | | | | | * sound/vrender0.cpp : Use struct for Each channels, Use address map for sound interface, Fix wave address calculation, Volume, Use shorter/correct type values, Add notes reference : https://web.archive.org/web/20040628133240/http://www.mesdigital.com/support/downfile/vr0510q_datasheet_v1.31.pdf * sound/vrender0.cpp : Add notes * sound/vrender0.cpp : More notes * sound/vrender0.cpp : Use address map for Wave memory, Fix Channel starting behavior (Fix start position) * vrender0.cpp : Reduce duplicates * vrender0.cpp : Partially implement envelopes, interrupts, Move dynamic sample rate change behavior into device_clock_changed, Use operation clock related sample rate, Add notes * sound/vrender0.cpp : Revert "Revert "VRender0 Sound Engine Fixes, Improves (#6112)"", Revert "Move dynamic sample rate change behavior into device_clock_changed", Reduce unused
* Revert "VRender0 Sound Engine Fixes, Improves (#6112)" R. Belmont2020-01-051-25/+5
| | | | This reverts commit b90eb659e8c96f50a036344020b9d1314beb55b0.
* VRender0 Sound Engine Fixes, Improves (#6112) cam9002020-01-041-5/+25
| | | | | | | | | | | | | | | * sound/vrender0.cpp : Use struct for Each channels, Use address map for sound interface, Fix wave address calculation, Volume, Use shorter/correct type values, Add notes reference : https://web.archive.org/web/20040628133240/http://www.mesdigital.com/support/downfile/vr0510q_datasheet_v1.31.pdf * sound/vrender0.cpp : Add notes * sound/vrender0.cpp : More notes * sound/vrender0.cpp : Use address map for Wave memory, Fix Channel starting behavior (Fix start position) * vrender0.cpp : Reduce duplicates * vrender0.cpp : Partially implement envelopes, interrupts, Move dynamic sample rate change behavior into device_clock_changed, Use operation clock related sample rate, Add notes
* (nw) misc stuff: Vas Crabb2019-10-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | * screen: validate crystal values used for set_raw * driver: get rid of sound start/reset overrides in machine configuration * vrender0.cpp, nexus3d.cpp: corrected pixel clock crystal value * mw8080bw.cpp: turned several audio subsystems into devices * bus/sat_ctrl: don't start subdevices in device_start - the machine does it for you * mb14241.cpp: simplify handlers * fgoal.cpp: updated for simplified handlers * devfind, screen: repair some doxy comments that had rotted with refactoring * doxygen: disable warnings for undocumented things - it's most of our codebase * snowbros.cpp: restore an output level setting lost in MCFG removal There's an outstanding validation error from the HP98543 DIO video card not using a valid crystal value. Someone needs to find a picture of the card and confirm or deny the existence of the 39.504MHz crystal. The various start/reset overrides are bugs waiting to happen. It's not immediately obvious that the ones run earlier can end up being called multiple times if subsequent ones throw missing dependencies exceptions. They're a relic of when everything from the old C-style drivers was thrown into classes all jumbled together.
* srcclean (nw) Vas Crabb2019-09-221-10/+10
|
* Various improvements over Vrender0 based systems [Angelo Salese] (#5580) Angelo Salese2019-09-021-19/+179
| | | | | | | * Made some experimental work with menghong based HW, allowing crzyddz2 to boot and improving menghong colors; * Internalize video and audio components inside the SoC; * Wrote a preliminary UART subdevice; * Made external video clock to be settable by the host driver;
* new WORKING machine angelosa2019-08-251-1/+1
| | | | | | | | | | | | ======================= Urachacha Mudaeri [Brizzo, Angelo Salese, The Dumping Union] new NOT_WORKING machine ======================= Wully Bully [Brizzo, Angelo Salese, The Dumping Union] Maldaliza [Brizzo, Angelo Salese, The Dumping Union] crospuzl.cpp: Improve flash loading [Angelo Salese]
* srcclean (nw) Vas Crabb2019-08-251-23/+23
| | | | I'm assuming atronic.cpp was supposed to be Windows-1252 with Euro currency symbol encoding. Everyone please use UTF-8 for source files.
* Major refactoring of VRender0 SoC device [Angelo Salese] (#5527) Angelo Salese2019-08-241-0/+576
* Improved encapsulation between video and machine SoC periperals; * Split up HWs in individual files where they don't belong to Crystal System HW, makes future development easier; * Untangled reads/writes to draw/display bankswitches from screen_update, now they can be unthrottled safely; * Added CRTC screen raw parameters; * Add DMA hold feature and clear irq on mask writes, specific for P's Attack; * Improved Cross Puzzle flash loading, currently failing at POST for a SPU error; nexus3d.cpp: add some preliminary work, currently does some VRender3d pipeline fill with a debug trick [Angelo Salese] (out of whatsnew) Some stuff definitely needs fine graining, like removing the few lines that are still necessary to configure the VRender0 from driver files, which I'm gonna do in my next feature branch.