| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
| |
display tag of device that logged message
|
| | |
|
| | |
|
| |
|
|
| |
Galibert]
|
| |
|
|
|
|
| |
License self-service. Mostly adding attribution where I made significant
contributions. In a few cases files I previously missed were
default-attributed to Nicola.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Explicit regions in address maps (AM_REGION) are now looked up relative to the
device rather than as siblings when in an internal address map (similar to
devices and shared pointers) Besides being more orthogonal than before, this
allows internal ROMs of MCUs and similar devices to be hooked up in a nicer
and more foolproof way. Updated the m37710 and m5074x (m6502 derivative)
to take advantage of this.
Divided the M37702/M37710 into specific models, with each model having its own
internal address map containing the correct amounts of internal RAM and ROM.
M37702 MCUs found on various Namco PCBs are now all unique devices and have
their respective internal ROMs loaded as device ROMs.
(nw)
Also did some spring (fall) cleaning in addrmap.c/memory.c/dimemory.c
m_devbase (the base device used for tagmap lookup when late-binding handlers and
finding memory regions and shares) is now a reference rather than a pointer,
since we know what it is when the address_map_entry is constructed and it
doesn't change (it depends solely on whether it's an entry in an MCFG-provided
address map or an internal one) And for the same reason, there's now only one
m_devbase per address_map_entry rather than individual copies for
read/write/setoffset/sharedptr.
Removed mysterious unused address_map_entry member "m_region_string", along
with a silly assert probably left over from when Aaron was replacing AM_BASE
with AM_SHARE years ago.
Added a comment noting that "make sure all devices exist" in
device_memory_interface::interface_validity_check() actually does nothing,
like the proverbial goggles. The reason there's just a comment and not a fix
is I haven't figured out how to fix it yet
(is it possible to extract the original device tag that was given to a
proto-delegate? Sorry, the template hell in devdelegate.h and
lib/util/delegate.h makes me want to run screaming like a little girl)
|
| | |
|
| |
|
|
|
|
|
|
| |
Moved delegates into /src/lib/util to enable usage of delegates in other project parts
Moved mame_printf_* calls into /src/osd/osdcore.c and renamed them to osd_printf_*
Changed mess.mak to display compilation of ymmu100.ppm nicely
|
| |
|
|
|
|
|
|
|
|
|
| |
Added macros to facilitate declaring gfxdecode info arrays as members
of a device class.
AM_SHAREs in a device's internal address map or its default address map are
now tagmapped as children of that device rather than siblings (analogous
to how handlers in internal/default address maps are scoped).
Converted the Namco C45 to device_gfx_interface.
|
| | |
|
| | |
|
| |
|
| |
OG: please check things in H8 core, thing in timer16 can caused some issues in past
|
| | |
|
| |
|
|
|
| |
Some minor enhancements to dynamic_array, including clearing to specific values
and expanding and clearing newly allocated values.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
--out of whatsnew.txt--
You can't click to enable/disable breakpoints yet, and the number of rows
doesn't resize yet, but that stuff will come.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pcatmem(p|d|i). [Andrew Gardner]
Fixes left-click selection bug in the memory window. [Andrew Gardner]
Explanation:
------------
Call trackmem to start tracking which PC writes to which address in memory and
pcatmem(p|d|i) to query a memory region for which PC wrote to it. Users of
the QT debugger can also right click on a memory address in the memory window
to make a popup message appear with the results - right-clicking also
automatically copies the resultant PC onto the clipboard. (I'll attach an
image of this behavior in a follow-up mail).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
program counter has visited in the dasm windows.
Run "help trackpc" in the debugger to see the options. [Andrew Gardner]
Out of whatsnew:
This isn't enabled by default because of how sloooow it is to disassemble each
opcode when you want to compute its crc32. That can be sped up with lookup
tables and the like.
There's a good chance I should pull the 'clear tracks' argument into its own
command, but it functions as-is.
This can be added to the windows debugger with a simple change to the
osd display code.
|
| | |
|
| |
|
|
|
|
|
| |
Fixed "ignore" command reporting incorrect invalid CPUs.
Fixed crazy code responsible for opcodes' crc32s in the comments system
(what was I thinking back then?). [Andrew Gardner]
|
| | |
|
| |
|
|
|
|
| |
- Added support for registerpoints.
- Added 'exit' as a synonym for 'quit'.
|
| |
|
|
|
| |
substitution when the trace is run.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
- Save and load window locations.
- Preliminary work on "run and hide" and "hard reset"
(don't crash on one of my copmilers but do on another - more work to do!)
- Fixed color when cursor is the same as PC in debug view.
- Closing the main window now shuts down the machine (same as quit)
- Help now wraps to the log window size.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
device_memory_interface::space() assert against NULL and
return a reference, and pushed references throughout all
address space usage in the system. Added a has_space()
method to check for those rare case when it is ambiguous.
[Aaron Giles]
Also reinstated the generic space and added fatal error
handlers if anyone tries to actually read/write from it.
|
| |
|
|
|
|
|
| |
read/write handlers to take an address_space & instead
of an address_space *. Also update pretty much all other
functions to take a reference where appropriate.
[Aaron Giles]
|
| | |
|
| |
|
|
|
|
| |
operations into methods on it. Converted the less-popular cases over
in drivers that used them, leaving the bank management APIs global
for now.
|
| |
|
|
| |
whatsnew)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and paths consistently for devices, I/O ports, memory
regions, memory banks, and memory shares. [Aaron Giles]
NOTE: there are likely regressions lurking here, mostly
due to devices not being properly found. I have temporarily
added more logging to -verbose to help understand what's
going on. Please let me know ASAP if anything that is being
actively worked on got broken.
As before, the driver device is the root device and all
other devices are owned by it. Previously all devices
were kept in a single master list, and the hierarchy was
purely logical. With this change, each device owns its
own list of subdevices, and the hierarchy is explicitly
manifest. This means when a device is removed, all of its
subdevices are automatically removed as well.
A side effect of this is that walking the device list is
no longer simple. To address this, a new set of iterator
classes is provided, which walks the device tree in a depth
first manner. There is a general device_iterator class for
walking all devices, plus templates for a device_type_iterator
and a device_interface_iterator which are used to build
iterators for identifying only devices of a given type or
with a given interface. Typedefs for commonly-used cases
(e.g., screen_device_iterator, memory_interface_iterator)
are provided. Iterators can also provide counts, and can
perform indexed lookups.
All device name lookups are now done relative to another
device. The maching_config and running_machine classes now
have a root_device() method to get the root of the hierarchy.
The existing machine->device("name") is now equivalent to
machine->root_device().subdevice("name").
A proper and normalized device path structure is now
supported. Device names that start with a colon are
treated as absolute paths from the root device. Device
names can also use a caret (^) to refer to the owning
device. Querying the device's tag() returns the device's
full path from the root. A new method basetag() returns
just the final tag.
The new pathing system is built on top of the
device_t::subtag() method, so anyone using that will
automatically support the new pathing rules. Each device
has its own internal map to cache successful lookups so
that subsequent lookups should be very fast.
Updated every place I could find that referenced devices,
memory regions, I/O ports, memory banks and memory shares
to leverage subtag/subdevice (or siblingtag/siblingdevice
which are built on top).
Removed the device_list class, as it doesn't apply any
more. Moved some of its methods into running_machine
instead.
Simplified the device callback system since the new
pathing can describe all of the special-case devices that
were previously handled manually.
Changed the core output function callbacks to be delegates.
Completely rewrote the validity checking mechanism. The
validity checker is now a proper C++ class, and temporarily
takes over the error and warning outputs. All errors and
warnings are collected during a session, and then output in
a consistent manner, with an explicit driver and source file
listed for each one, as well as additional device and/or
I/O port contexts where appropriate. Validity checkers
should no longer explicitly output this information, just
the error, assuming that the context is provided.
Rewrote the software_list_device as a modern device, getting
rid of the software_list_config abstraction and simplifying
things.
Changed the way FLAC compiles so that it works like other
external libraries, and also compiles successfully for MSVC
builds.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
A3) in the i386 and NEC disassemblers. The argument (the memory
address) was being displayed as a signed number, which doesn't make
any sense. [Alex Jackson]
Fixed a tiny bug with the debugger hex dump command: the printable
characters in ASCII range from 32 to 12*6*, not 127. [Alex Jackson]
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- non-device timer callbacks
- machine state changing callbacks
- configuration callbacks
- per-screen VBLANK callbacks
- DRC backend callbacks
For the timer case only, I added wrappers for the old-style functions.
Over time, drivers should switch to device timers instead, reducing the
number of timers that are directly allocated through the scheduler.
|