| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
emu/diimage.h: Removed fread overloads that allocate memory for output.
util/core_file.cpp: Changed output size of load to size_t.
|
| |
|
|
|
|
|
| |
m6800: zerofill more class variables,
misc: change "Bios" to "BIOS"
|
|
|
|
| |
function signatures. (#11283) [Ryan Holtz]
|
|
|
|
|
| |
* Converted various logging patterns to use logmacro.h consistently.
* Removed redefinitions of LOG_GENERAL.
* Use LOGMASKED in more places.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
| |
- 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.
|
| |
|
| |
|
|
|
| |
* bus/nes: Corrected pirate SMB3 IRQ counter.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
- 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.
|
|
|
|
| |
- 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.
|
|
|
|
|
|
|
| |
- 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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
New NOT_WORKING software list additions (nes.xml)
---------------------------------------
Skull & Crossbones (Korea) [MLX]
|
| |
|
| |
|
| |
|
|
|
|
| |
- 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.
|
|
|
|
|
|
| |
New working software list additions (nes.xml)
-----------------------------------
76 in 1 Y2K [superretrogamer2741]
Super HiK 42 in 1 (K-42001) [Consolethinks]
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
| |
- Fixed TXSROM's repeated setting of nametable pages.
- NES-QJ, PAL-ZZ boards can only change outer banking bits when RAM enabled.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
| |
- 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]
|
|
|
|
|
|
|
| |
- 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).
|
| |
|
|
|
|
|
| |
New working software list additions (nes.xml)
-----------------------------------
Gàishì 190 in 1 [Consolethinks]
|
| |
|
|
|
|
|
| |
Software list items promoted to working (nes.xml)
---------------------------------------
7 in 1
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
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.
|
|
|
|
|
|
| |
- 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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]
|
| |
|
| |
|
|
|
|
|
| |
* 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.
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.
|