| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
| |
address value. (#15251)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Added a helper for the common operation of replacing all options,
setting default, and setting whether the slot is fixed (reduced
boilerplate in slot devices a bit).
* Fixed a bug where slot options copied the supplied name but also
required the string to remain valid for their lifetime.
* Use std::string_view for strings that should never be null.
* Reduced some duplication.
-dynax/ddenlovr.cpp: Allow a mahjong panel to be connected for all
hanafuda games with slotted control panels. This is how the games were
operated most of the time, and all mahjong controls are displayed in
input tests. Also cleaned up some DIP switch settings.
-emu/inpttype.h: Got rid of IPT_GAMBLE_SERVICE.
-bus/bk/parallel.h: Fixed a bug where the supplied options and default
weren't actually used.
-emu/debug/debugcmd.cpp: Use C++ file stream for dumping address maps.
-frontend/mame/clifront.cpp: Use osd_printf_info output for
interactive verbs.
-jaleco/ms32.cpp: Simplified mahjong panel column permutation.
-capcom/cps1bl_5205.cpp, mattel/juicebox.cpp, sun/sun2.cpp,
sun/sun3.cpp: Cleaned up logging.
-emu/xtal.cpp: Reduced temporary objects and duplicated code.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cpu/sharc/sharcdrc.cpp: Exploit data memory layout to bypass the memory
system for both 32-bit and 16-bit SRAM accesses.
cpu/sharc/sharcdrc.cpp: Exploit the way the SHARC toolchain lays out
executable code and data in SRAM to greatly reduce unnecessary cache
flushes.
cpu/sharc/sharcdrc.cpp: Implemented Rn = NOT Rx (used by Sega Model 2B
games).
cpu/sharc/sharcdrc.cpp: Align 32-bit program memory accesses with the
most significant bit of the bus (corresponds to interpreter change in
0f368c268c1eabc176af8e5cdf780b5d60e8d9a0 from GitHub #13770).
emu/debug/points.cpp: Fixed hang when a watchpoint is hit on a 64-bit
wide address space with word addressing.
sega/model2.cpp: Enabled SHARC recompiler for Model 2B (can be disabled
again before release if too many things are broken).
|
| |
|
|
| |
state (#14898)
|
| | |
|
| |
|
|
|
|
|
|
| |
core: Better support for external mmus
Note: I didn't expect to push that one right now, it's missing
documentation among other things, but since some people seems to be
interested to work on that driver I don't want to hold them.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
Gokou, Return of Sel Jan II and Mahjong Dai Touyouken.
-emu/debug/debugvw.cpp: Don't persist fallback expressions.
|
| |
|
|
|
| |
* emu/debug/express.cpp: Reduced unnecessary duplication.
* misc/crystal.cpp: Tidied a little.
|
| | |
|
| |
|
|
|
|
|
| |
important (fixes MT09228), also slight optimisations.
-debug/debugcmd.cpp: Made the code for symlist marginally less dreadful.
|
| |
|
| |
When executed with no parameters, symlist was displaying the symbol tables for the first CPU and the debugger built-in globals. Defaulting to the first CPU like that didn't make sense. It now displays the symbol tables for the VISIBLE cpu and the debugger built-in globals.
|
| | |
|
| |
|
|
| |
nullptr access
|
| |
|
|
|
|
|
| |
Address issue #6655 (symlist command usability), add a bit of plumbing for future extensibility.
symlist with no arguments displays all global *and* :maincpu symbols, with clear header text for each list. At the bottom, prints helper text to make user aware of the cpu form
To allow for adding new kinds of symbols in the future, this adds an enum field to symbol table for its 'type', for prettier printing from symlist. Symlist now traverses symbol table chain completely.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* Also moved Mahjong P to P and Payout to 4. This fixes the conflict
between Mahjong I and Payout.
* misc/gms.cpp: Added missing Key Out, Payout and hopper inputs for
Super 555 and improved input names.
* misc/gms.cpp: Use poker input types for Baile 2005.
* dynax/ddenlovr.cpp, dynax/dynax.cpp, dynax/royalmah.cpp: Removed
Payout assignments as they match the new default anyway.
* docs: Bumped version since various features not in 0.277 are
documented now.
|
| |
|
|
|
| |
Memory window address field: If address string evaluation fails, we'd fall back to the last-known-working string. This works great if the failure is due to the user changing the string. But if the user changes the source, that also can cause failures (different symbol table used for evaluation), and this fallback does not help.
The fix is to add a second fallback: Use "0" as the address string when all else fails.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
* Fixed behaviour of exceptions in delay slots, and fixed recompiler not
updating ILC and P for some exceptions.
* Implemented privilege error exception on setting L in user mode for
interpreter.
-emu/debug, osd/modules/debugger: Added an option to show
exceptionpoints in breakpoints windows.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changed "Exception Points" to "Exceptionpoints" in the debugger
documentation and help. This better matches "Watchpoints" and
"Registerpoints". Also, it's very confusing that you see the help topic
listing showing "Exception Points" but typing "help Exception Points"
doesn't actually work.
cpu/e132xs: Fixed a flags issue in the recompiler.
misc/dgpix.cpp: Demoted The X-Files to not working with unemulated
protection.
skeleton/turnierdart.cpp: The srcclean on this file was missed.
|
| |
|
|
|
|
|
|
|
|
| |
instructions whose execution time is normally indefinite. When this happens, a special message may be printed to the debug console stating the location of the last actual instruction executed before the wait (if there was one).
Note that since the callback ignores the current value of the program counter, this special type of debugger break cannot be entered through breakpoints or instruction stepping commands. The callback also leaves no effect on PC history tracking or trace logs.
* cpu/hd61700, cpu/tms32031: Add standard IRQ callback
* cpu/m68000gen.py: Change name of invoked executable to bin/python3
* cpu/m6809: Eliminate PC "massaging" for SYNC and similar instructions
|
| | |
|
| |
|
|
|
| |
(#12679)
debugger/win/debugwininfo.cpp: Don't restrict maximum window sizes.
|
| |
|
|
|
|
|
|
|
|
| |
* sony_news.xml: Added proper compatibility flags for different
generations.
* cpu/pic16x8x: This is very much a derivative work.
* cpu/tms32025.cpp: Allow stack push/pop to be inlined.
* tecmo/bombjack.cpp: Avoid needing to remove and replace devices in
machine configuration.
* Various other cleanup.
|
| | |
|
| |
|
|
|
|
| |
One iterator was being compared with another from the wrong container.
I observed this by chance when I hit an assert in a debug MSVC build
with checked iterators enabled. This bug could cause dereferencing of a
past-the-end iterator in expressions ending with an operator.
|
| |
|
|
|
|
|
| |
printf/logerror. (#12124)
* Use %s to read NUL-terminated strings from emulated memory. Precision sets maximum length.
* Also added left-justification option for numeric and string formats.
* Made documentation more consistent and removed duplication.
|
| |
|
|
|
|
|
|
|
| |
[Patrick Mackinlay]
Also simplified implementation by better leveraging util/strformat.h.
This is from pull request #12124, to get some testing for the
fundamental change before freeze.
|
| |
|
|
| |
util::crc32_creator
|
| |
|
|
| |
Belmont]
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
| |
- Add names of physical and logical spaces now that one space can map to another
- Correct usage of address space masks
|
| |
|
|
|
|
|
|
|
| |
- 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.
|
| | |
|
| |
|
|
| |
of memory when jumping around large address spaces
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
util/bitmap.cpp, util/palette.cpp: Marked lots of things constexpr.
Bitmaps don't throw exceptions on allocation failure, they just become
invalid. Almost nothing in MAME actually checks for this.
emu/profiler.cpp: Abort if the profile stack overflows rather than
throwing an exception. This is a developer feature and if it overflows,
the code is broken. Calling a noreturn noexcept function generates less
code than throwing an exception, which adds up.
util/strformat.cpp: Traded away some unnecessary flexibility for more
compact code. The stream objects must derive from std::basic_ostream
now - they can't just be any old objects with the expected operators.
|
| |
|
|
| |
* dvmemory.cpp: Fix oversight in recent refactoring (uninitialized variable)
|
| |
|
|
| |
divtlb: Wrap the constants
|
| |
|
|
|
|
|
|
|
|
|
| |
- Make CPUs pass interrupt return PC as a second argument to standard_irq_callback
- Add interrupt return PC to "Stopped at interrupt" message produced by debugger 'gint' command
- Add messages to trace logs whenever interrupts are accepted
- Attempt to step over interrupt routines for applicable debugger commands
- Eliminate standard_irq_callback_member wrapper method
- Update many CPU cores to invoke standard_irq_callback at the start of or during interrupt processing, rather than at the end or when the input line changes
- Remove IRQ callbacks for some input lines that never cause interrupts
- mb88xx, mcs48: Add IRQ callbacks for internal interrupts
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Compile Lua as C++. When Lua is compiled as C, it uses setjmp/longjmp
for error handling, resulting in failure to unwind intermediate stack
frames. Trying to ensure no objects with non-trivial destructors are in
scope when raising a Lua error is error-prone. In particular,
converting an exception to a Lua error becomes convoluted, and raising a
Lua error from a constructor is effectively impossible.
Updated Lua to 5.4.4 - this includes a brand-new garbage collector
implementation with better performance. The main thing removed is the
deprecated bitlib.
Updated sol2 to version 3.3.0 - this adds support for Lua 5.4 and fixes
a number of issues, including not correctly handling errors when Lua is
built as C++.
Updated LuaFileSystem to version 1.8.0 - this adds support for symbolic
links on Windows, as well as Lua 5.4 compatibility.
Updated LuaSQLite3 to version 0.9.5 - this fixes issues in
multi-threaded environments, as well as Lua 5.4 compatibility.
Fixed double-free after attempting to construct a debugger expression
from Lua with an invalid string, and exposed expression error to Lua in
a better way.
Added warning level print function to Lua.
Fixed saving cheats with shift operators in expressions, although this
code isn't actually used as there's no cheat editor.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
osd: Supply OSD object to modules on initialisation. Encapsulated some
event handling in the OSD objects rather than leaving it in free
functions. Put various stuff in namespaces.
osd/modules/input: Enabled dinput, xinput and winhybrid modules for
Windows SDL builds, and enabled background input for dinput and xinput
(and by extension winhybrid) modules. Also fixed some COM and X11
resource leaks.
osd/modules/input/input_sdl.cpp: Flipped SDL mouse button order to match
Windows, and exposed vertical and horizontal scroll as Z and rZ axes.
Moved SDL UI event handling out of input devices into OSD object.
osd/modules/input_rawinput.cpp: Changed lightgun Z axis token so it's
correctly identified as a relative axis (it maps to the scroll wheel
equivalent).
osd: Added an option to choose the network provider module. Mostly
useful if you build with both TUN/TAP and pcap support included, or if
you want to disable emulated networking completely.
emu/input.cpp: Use a better strategy for assembling input code names
that uses fewer temporary strings and doesn't require use of the
non-Unicode-aware space trimming function (fixes MT08552).
osd/modules/input_dinput.cpp: Improved polling logic.
osd: Made various parts of the input code less dependent on concrete emu
objects, and reduced inappropriately passing around the machine object.
Made input modules less dependent on OSD implementation. Encapsulated
some stuff and got rid of some vestigial newui and SDL1 support code.
Cleaned up some interfaces. Moved OSD options classes to their own
files.
Prepare to remove main.h from emu.h - it's mostly used to get the
application name, which the vast majority of emulated devices don't need
to do.
|
| | |
|
| |
|
|
| |
unless logical address width exceeds page size
|