summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/nes (follow)
Commit message (Collapse)AuthorAgeFilesLines
* util/ioprocs.cpp: Added wrappers for common patterns. (#11608) Vas Crabb2024-02-252-4/+2
| | | | | emu/diimage.h: Removed fread overloads that allocate memory for output. util/core_file.cpp: Changed output size of load to size_t.
* a7800/a78_slot.cpp, nes/nes_unif.hxx: Use multibyte.h helpers AJR2024-01-071-20/+21
|
* turbo,zaxxon: set 8255 tristate to 0, hap2023-06-161-2/+2
| | | | | m6800: zerofill more class variables, misc: change "Bios" to "BIOS"
* emu/device.h: Removed device (READ|WRITE)_LINE_MEMBER in favor of explicit ↵ MooglyGuy2023-06-012-2/+2
| | | | function signatures. (#11283) [Ryan Holtz]
* Cleaned up logging across the codebase (GitHub #10183). (#11250) [Ryan Holtz] MooglyGuy2023-05-2354-852/+823
| | | | | * Converted various logging patterns to use logmacro.h consistently. * Removed redefinitions of LOG_GENERAL. * Use LOGMASKED in more places.
* Restored ability of for image devices to report specific error messages. Vas Crabb2023-04-0810-39/+38
| | | | | | | | | | | | | | Restores ability to give specific/detailed messages removed in 6f7e4141ea14acaaf9cb973c66788fabb3457023 while pandering to obsession with single return value. Moved responsibility for displaying the error message in the UI to the caller rather than device_image_interface, and made device_image_interface always log the error along with the full path and error condition content. Gave several image devices more detailed error messages. Added some FIXME comments for apparent bugs.
* Fixed various bugs: Vas Crabb2023-04-068-51/+41
| | | | | | | | | | | | | | | bus/nubus/nubus_image.cpp: Fixed failure to allocate memory for the image (regressed in b8c338858a101d14308c64c87b0f714db4f05326). bus/nes/karastudio.cpp, bus/nes/sunsoft_dcs.cpp: Fixed stack smash when loading loose software. Addressed some Lua engine fallout from running things in coroutines: * Don't crash accessing dead Lua thread state from callbacks. * Allow returning values via yielding functions. * Don't run address space tap and layout view callbacks in coroutines to save overhead. * Better logging of errors from callbacks.
* Small fixes and cleanup: Vas Crabb2023-04-041-3/+3
| | | | | | | | | * emu/devfind.h: Allow range-based for loops on memory share finders. * emu/emucore.h: Choose correct emu_fatalerror constructor when format string is an rvalue. * osborne/osborne1.cpp: Allocate main RAM as a flat share, and use a view to switch in atttribute RAM. * Reduced scope of some variables and edited some copy/pasted comments.
* API change for device_image_interface AJR2023-03-3010-36/+35
| | | | | | | | | - Remove the seterror method for recording error messages and conditions. Condition codes have been made return values for call_load, call_create and various related callbacks. Error messages (which many devices weren't generating) are now displayed through osd_printf_error. - Eliminate the image_init_result and image_verify_result pass/fail enumeration types. Update many functions that were returning these enumerations or simply bools to return std::error_condition instead. In some cases, this type is now passed down from internal parsing/loading functions which were already returning it. In various other cases, the former default UNSPECIFIED has been used as a catchall for I/O errors; anticipated future refactorings should make these error returns more specific. - Expand the image_error categories to include INVALIDLENGTH, NOSOFTWARE and BADSOFTWARE. The first is largely self-explanatory. The second is generated by the core to indicate failure to find software items in lists. The third is provided for devices to indicate semantic errors in software list entries. - Change the return type of floppy_image_device::identify to a pair so the potential error condition can be passed along to the UI without storing it in a member variable. - Move device_image_interface::message down into snapshot_image_device and change its implementation to use string_format instead of printf. - Correct a typo in the shortname of the generic snapshot device.
* Replaced most simple uses of sprintf with type-safe equivalents. (#10948) Erik2023-03-101-4/+6
|
* Reduced usage of sprintf. (#10892) Erik2023-02-201-10/+4
|
* nintendo/nes_arcade_bl.cpp: Added emulation for NES side of hardware. (#10548) 0kmg2022-11-201-1/+1
| | | * bus/nes: Corrected pirate SMB3 IRQ counter.
* bus/nes/bandai.cpp: fixed MT08445 Ivan Vangelista2022-10-271-1/+1
|
* bus: Get rid of some dubious tag manipulation. Vas Crabb2022-08-205-30/+17
| | | | | | | | | | | | | | | | | | | | The implementation details of how the cartridges allocate storage for memory really shouldn't be part of the interface. Having tags in the headers encourages people to depend on these implementation details. This gets rid of it in most of the headers. A few particularly leaky abstractions (bbc/rom, electron/cart, gba, generic, jakks_gamekey, m5) depend on this, so it can't be removed in those cases without further refactoring to encapsulate the slot devices better. This doesn't change behaviour, it just mechanically removes stuff from the headers and uses device_t::subtag rather than string manipulation on tags. Most of the cartridge devices shouldn't have rom_alloc member functions at all - the region created by the software list loader can be used directly when loading from the software list, and the slot can allocate a region with the same tag when loading loose software. This avoids creating an extra region and copying the data when loading from the software list. See vboy for an example that doesn't allocate a superfluous region.
* bus/nes: Updated emulation of TXC 01-22000-400 PCBs. (#10219) 0kmg2022-08-132-16/+69
|
* - Removed device_timer, device_timer_id, et al in favor of direct callback ↵ MooglyGuy2022-06-0448-445/+356
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* bus/nes: Various minor cleanups. (#9641) 0kmg2022-05-1347-337/+121
| | | | | * MMC1: Made mirroring bits overridable for derivative boards. Also removed code for rumored MMC1C variant. * Moved various boards' hardwired mirroring from pcb_reset() to the software list. * Removed redundant banking of VRAM for non-banking boards and redundant variable setting.
* bus/nes: Updated code and dump for mc_mario. (#9686) 0kmg2022-05-056-119/+20
| | | | - Switched mc_mario to use BMC-GOLD-7IN1 board and removed emulation for variant BMC-MARIOPARTY-7IN1. Replaced its CHR ROM with bank swapped dump. - BMC-GOLD-7IN1: Fixed crash when carts with no WRAM are loaded.
* bus/nes: Updates for Camerica/Codemasters boards. (#9647) 0kmg2022-04-3010-76/+98
| | | | - BF9096: Added alternate paging required by certain dumps. Fixes menu items that didn't load or were crisscrossed. - Golden Five: Corrected reset/game lock behavior according to reverse engineered hardware info.
* bus/nes: Updated Jaleco boards. (#9628) 0kmg2022-04-284-342/+182
| | | | | | | - JF-13: fixed simultaneous samples playing at boot of Moero Pro Yakyuu. - JF-16, discrete 74x161: set hardware-valid one-screen mirroring mode at reset. - JF-17/19: Streamlined by putting common details in base class. Fixed latches which switch banks on low to high transition. Demoted moejudo since it's not playable. - SS88006 boards: Also streamlined everything into common base class. Parameterized common code patterns. Added WRAM enable bits. - nes.xml: Corrected ROM sizes of undumped uPD775xC chips.
* bus/nes: Minor fixes and simplifications for several bootlegs. (#9618) 0kmg2022-04-242-70/+60
|
* srcclean in preparation for 0.243 Vas Crabb2022-04-242-5/+5
|
* bus/nes: Corrected NOCASH_NOCHR homebrew board emulation. (#9611) 0kmg2022-04-234-27/+49
|
* nes/bus: Minor cleanups for Taito boards. (#9607) 0kmg2022-04-234-114/+84
| | | | | | | | * nes/bus: Minor cleanups for Taito boards. - Fixed address masks for TC0190FMC and X1-005, reflecting hardware pin connections. - Fixed off-by-one in TC0190FMC+PAL IRQ due to using two's complement instead of one's complement. * Fixed khstad88's release date.
* bus/nes: Work on Tengen boards. (#9594) 0kmg2022-04-217-147/+97
| | | | | New NOT_WORKING software list additions (nes.xml) --------------------------------------- Skull & Crossbones (Korea) [MLX]
* nes: Various minor cleanups. (#9593) 0kmg2022-04-219-35/+21
|
* bus/nes: Minor simplification to TQROM + update support status. (#9576) 0kmg2022-04-214-28/+12
|
* bus/nes: Simplified Sunsoft-4 boards. (#9550) 0kmg2022-04-213-98/+48
|
* bus/nes: Updated Irem boards. (#9596) 0kmg2022-04-192-82/+74
| | | | - Fixed various minutiae with banking modes, bus conflicts, masks based on pin counts. - Made H3001 a subclass of G101. It's mostly functionally the same with an added IRQ.
* bus/nes: Improved support for BMC-64IN1NR boards. (#9586) 0kmg2022-04-172-44/+33
| | | | | | New working software list additions (nes.xml) ----------------------------------- 76 in 1 Y2K [superretrogamer2741] Super HiK 42 in 1 (K-42001) [Consolethinks]
* bus/nes: Fixed emulation for Chinese Fire Emblem translations. (#9575) 0kmg2022-04-172-26/+25
| | | | | | | | | | | Software list items promoted to working (nes.xml) --------------------------------------- Shènghuǒ Huīzhāng - Suǒfēiyà Fùsū (China) Shènghuǒ Huīzhāng - Suǒfēiyà Fùsū (China, alt) Shènghuǒ Huīzhāng - Suǒfēiyà Fùsū (China, fixed?) Shènghuǒ Huīzhāng Wàizhuàn (China) Shènghuǒ Huīzhāng II Dài (China) Shènghuǒ Huīzhāng II Dài (China, alt) Zhēntián Shí Yǒngshì (China)
* bus/nes: Minor cleanups for some MMC3 boards. (#9579) 0kmg2022-04-176-70/+47
| | | | - Fixed TXSROM's repeated setting of nametable pages. - NES-QJ, PAL-ZZ boards can only change outer banking bits when RAM enabled.
* nes.xml: Removed bad dump mc_s8kfa. (#9571) 0kmg2022-04-152-2/+0
|
* bus/nes: Added support for Chinese translations of Genghis Khan, Square's ↵ 0kmg2022-04-147-91/+67
| | | | | | | | | | | | | | | | Tom Sawyer, and Tenchi wo Kurau II. (#9569) Software list items promoted to working (nes.xml) --------------------------------------- Dàtáng Fēngyún VI Dài (China) Chéngjísīhán (China) Fēngsè Huànxiǎng (China) Tāngmǔ Lìxiǎn Jì (China) Tenchi wo Kurau II - Shokatsu Koumei Den (China) Tenchi wo Kurau II - Shokatsu Koumei Den (China, alt) Tūnshí Tiāndì II (China) Tūnshí Tiāndì II (China, alt) Tūnshí Tiāndì II (China, alt 2) Tūnshí Tiāndì III (China)
* bus/nes: Added support for KL-06 and 831128C boards. (#9552) 0kmg2022-04-138-32/+263
| | | | | | | | - Made VRC4 base class extendable for CHR banking, as was done to PRG banking. New working software list additions (nes.xml) ----------------------------------- 1993 New 860 in 1 Over-Valued Golden Version Games [Consolethinks] 1995 New Series Super 2 in 1 (Asia) [anonymous]
* bus/nes: Updated Taito X1-017 boards. (#9535) 0kmg2022-04-133-65/+95
| | | | | | | - Replaced bad program ROMs with dumps with proper page order. - Updated banking to work with proper dumps. - Fixed CHR banking from possibly ignoring first writes. - Added special latching bytes to internal X1-017 RAM. - Added IRQ support (no games exist that use it).
* bus/nes: Added support for Sachen's Zhōngguó Dàhēng cartridge. (#9540) 0kmg2022-04-096-4/+106
|
* bus/nes: Added support for multicart board DS-9-27. (#9525) 0kmg2022-04-066-2/+124
| | | | | New working software list additions (nes.xml) ----------------------------------- Gàishì 190 in 1 [Consolethinks]
* bus/nes: Minor cleanups and simplifications for several Kaiser boards. (#9523) 0kmg2022-04-063-123/+91
|
* bus/nes: Minor cleanup of BMC_12IN1 board. (#9520) 0kmg2022-04-052-32/+22
| | | | | Software list items promoted to working (nes.xml) --------------------------------------- 7 in 1
* bus/nes: Remove redundant start and reset device overrides. (#9516) 0kmg2022-04-0540-822/+0
|
* bus/nes: Correct and consolidate Golden Game multicart emulation. (#9511) 0kmg2022-04-046-139/+18
| | | | | | | | | | | New working software list additions (nes.xml) ----------------------------------- 1500 in 1 [MLX] Golden Game: 210 in 1 [kmg] Software list items promoted to working (nes.xml) --------------------------------------- Golden Game: 150 in 1 [kmg] Golden Game: 260 in 1 [kmg]
* nes: Various minor fixes, more cleanups with bit functions. (#9488) 0kmg2022-04-0219-204/+113
| | | | | | | | * nes: Various minor fixes, more cleanups with bit functions. bus/nes/benshieng.cpp: Streamline banking; no need to store variables in this device. bus/nes/hes.cpp: Only support multicarts. Related singleton carts reassigned to relevant board types. bus/nes_ctrl/hori.cpp: Amend some minutiae involving strobing and excessive controller reading. hash/nes.xml: Removed a few more baddump flags.
* bus/nes: Game Genie cleanup time. (#9502) 0kmg2022-04-024-147/+128
| | | | | | - Trimmed overdumped PRG ROM to 4K. - Removed nonexistent CHR ROM, replaced with emulation of on-board logic. - Removed hack from NES slot code that directly set the CPU program counter. - Corrected reset behavior.
* Revert initialisation of device members in headers. Vas Crabb2022-04-037-42/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | This is problematic in several ways: * Initialising things at construction that aren't needed until after start slows down -romident, -validate, -listxml, etc. Slot cards can be a particular drain on -listxml and -validate as they're instantiated for every compatible slot. It's more pronounced for array members, too. * Splitting member initialisation between declaration in headers and constructors in source files means you have to look at two places to check for the initial value, and you always need to check the constructor even if an initialiser is present in the header because the constructor initaliser list takes precedence. (This isn't as much of an issue for driver classes because the constructor is most often inlined at declaration, so it isn't far from the member declarations.) * Initialisers in headers for frequently-used devices increases the frequency of recompiling dependent devices/drivers as they're exposed to any changes in initialisers. * Initialisers in frequently-used headers increase build times because there's more for the compiler to parse/cache. (This affects makedep.py as well for single-driver builds, but that's a single pass.) It's not a lot individually, but it adds up given the size of MAME, which keeps increasing. We've already had one contributor banned from GitHub actions for resource usage, we don't want to waste compiler time unnecessarily.
* bus/nes: Added support for K-3071, S-009, and TH2348 boards. (#9498) 0kmg2022-04-016-10/+238
| | | | | | | New working software list additions (nes.xml) ----------------------------------- Chāozhí Gāo K Jīnkǎ 110 in 1 [Consolethinks] 8 in 1 (0801) [Consolethinks] Golden 8 in 1 [Consolethinks]
* init vars for coverity (bus/l-w) Robbbert2022-04-027-42/+42
|
* bus/nes: Removed useless open bus comments. (#9471) 0kmg2022-03-279-15/+15
|
* bus/nes: Simplifications using bit utility functions. (#9444) 0kmg2022-03-2323-192/+140
| | | | | * bus/nes: Simplifications using bit utility functions. * Corrected UNL-KOF97 board's address decoding. * Cleaned up Gouder board further and added missing mirroring bit. Fixes BG graphics.
* bus/nes: Improved support for some Waixing pirate Chinese translations. (#9358) 0kmg2022-03-2010-306/+121
| | | | | | | | | | | | | | * bus/nes: Improved support for some Waixing pirate Chinese translations. Software list items promoted to working (nes.xml) --------------------------------------- Qīlóngzhū (China) Sàiyǎrén Mièjué Jìhuà (China) Sānguózhì III (China) Sānguózhì (Asia, decrypted SmyNES) Shénhuà Jiàn Yún III (China) * bootleg.cpp: Properly acknowledge IRQs in bootleg Dragon Ninja. nes_slot.cpp: Removed hold_line_irq() helper function once and for all.