| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
-tools/imgtool/modules/vzdos.cpp: Fixed function returning floperr_t
value as imgtoolerr_t.
-devices: Fixed a bunch more #include guards that don't match file
paths.
|
|
|
|
|
|
| |
evaluate turning it off for MAME. [R. Belmont]
cpu/es5510: Removed hack that never could possibly have worked, comparing a uint8_t to a 24-bit constant. [R. Belmont]
|
|
|
|
| |
(#12822)
|
| |
|
| |
|
|
|
|
|
| |
------------------------------
Strobe [hap, Sean Riddle]
|
|
|
|
| |
[Ryan Holtz]
|
|
|
|
|
| |
* Converted various logging patterns to use logmacro.h consistently.
* Removed redefinitions of LOG_GENERAL.
* Use LOGMASKED in more places.
|
| |
|
|
|
|
|
|
| |
util::sext and other bit utility functions
* cpu/sharc: Be a bit more paranoid about extreme values of bit6 and len6 (non-DRC)
|
|
|
|
| |
still require it
|
| |
|
|
|
|
|
|
|
|
| |
- Remove the hotspot read tracker. This was never robustly implemented, but changes to the memory system made it much less useful, and the "speedup opportunities" which it aimed to determine are not very important from a current emulation standpoint.
- Remove the CURSP/GENSP state symbol and the generic sp() getter. Stacking semantics vary too much between CPU architectures for this to be of much use. (A "SP" symbol has been added to a few CPU cores whose stack pointers were otherwise not being registered.)
- Remove the cached pointer to device_state_interface and the state() fast accessor from device_t. Most users of device_state_interface either already had a pointer to the specific CPU device type or needed to check first for the presence of the interface.
- Change the PC memory write tracker to use pcbase(), which works even when the instruction callback is masked out, instead of peeking at the PC history index.
- Remove some obsolete watchpoint-related definitions from machine.h.
|
|
|
|
|
|
|
| |
some hardware features
Implement (partially) RAM clear function
Fix host control register; host access OK flag is inverted (0 is active)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Remove corestr.h from emu.h; update a few source files to not use it at all
- Change strtrimspace, strtrimrightspace and core_filename_extract_* to be pure functions taking a std::string_view by value and returning the same type
- Change strmakeupper and strmakelower to be pure functions taking a std::string_view and constructing a std::string
- Remove the string-modifying version of zippath_parent
- Change tag-based lookup functions in device_t to take std::string_view instead of const std::string & or const char *
- Remove the subdevice tag cache from device_t (since device finders are now recommended) and replace it with a map covering directly owned subdevices only
- Move the working directory setup method out of device_image_interface (only the UI seems to actually use the full version of this)
- Change output_manager to use std::string_view for output name arguments
- Change core_options to accept std::string_view for most name and value arguments (return values are still C strings for now)
- Change miscellaneous other functions to accept std::string_view arguments
- Remove a few string accessor macros from romload.h
- Remove many unnecessary c_str() calls from logging/error messages
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
"information" overrides. This also covers several time-related functions in attotime, running_machine and emu_timer. (nw)
m6805: Calculate min_cycles and max_cycles once at device_start time (Nw)
attotime: Add as_khz and as_mhz (nw)
|
|
|
|
| |
now-superfluous .get() in many drivers/devices (nw)
|
|
|
|
|
|
| |
* Move around the debugger hooks to get a small but measurable performance increase
* Remove emucore from external tools
* Improve performance of DSP16 interpreter a little by generating six variants of execution loop
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* es5510.* Updates :
Add notes
Fix dram read/write
Convert gpr, instr, dram into std::unique_ptr
Add save states
Minor cleanup
taito_en.* Updates :
Add notes
Move imperfect_features() into es5510.h
Verify ESP Input clock/output channels(from GunBuster Schematics, same in other PCBs?)
Add m_bankmask instead runtime tag lookups
* es5510.h : Add notes
* es5510.h : Fix compile
* es5510.h : Compile fixes
* esqpump.cpp : Split ES5506 case of interface, Add imperfect_features Because it has not perfectly emulated
esqasr.cpp, esqkt.cpp : Add esqpump for es5510 interface
taito_en.h : Restore imperfect_features Because sound emulation has still not perfect
* es5510.h : Moved imperfect_feature into esqpump.h from this, Add notes
* Revert "Moved imperfect_feature into esqpump.h from this", Because the current ES5510 core still has emulation issue
* esqpump.cpp : Cleanup unused m_otis/m_otto, Convert e[0x4000] into std::unique_ptr if used
* Fix compile
* esqkt.cpp : Fix company tags
|
| |
|
| |
|
|
|
|
| |
7.2.0) (nw)
|
|
|
|
|
|
|
|
| |
Disassemblers are now independant classes. Not only the code is
cleaner, but unidasm has access to all the cpu cores again. The
interface to the disassembly method has changed from byte buffers to
objects that give a result to read methods. This also adds support
for lfsr and/or paged PCs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are a couple of issues here:
* Firstly, the determining factor for whether I64 or ll is needed as the
size qualifier doesn't depend entirely on whether you're using MSVC or
not, it depends on the the C runtime library. The msys64 C runtime
apes the Microsoft runtime and requires I64 as well, so a lot of files
where LLFORMAT had been copy/pasted wouldn't work right if you
depeneded on it anyway.
* Secondly, one of the major benefits of util::string_format,
util::stream_format and logerror in their current forms is that you
don't need size specifiers for integers at all (unless you're using
them to truncate a value, but in that case you're better off casting
the argument for clarity). If you do use them, logerror and friends
will accept both Microsoft- and SUS-style independently of the C
runtime.
So please everyone, don't go gratuitously throwing these around, and if
you must use them (e.g. for osd_printf_* functions), make sure your
conditionals are actually correct. Also, conisder using
util::string_format to do the formatting into a temporary string and
just feeding that to the output function so you can avoid the mess.
|
|
|
|
| |
to avoid nested templates everywhere (nw)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
significant change, so please pay attention.
The core changes are:
* Short name, full name and source file are no longer members of device_t, they are part of the device type
* MACHINE_COFIG_START no longer needs a driver class
* MACHINE_CONFIG_DERIVED_CLASS is no longer necessary
* Specify the state class you want in the GAME/COMP/CONS line
* The compiler will work out the base class where the driver init member is declared
* There is one static device type object per driver rather than one per machine configuration
Use DECLARE_DEVICE_TYPE or DECLARE_DEVICE_TYPE_NS to declare device type.
* DECLARE_DEVICE_TYPE forward-declares teh device type and class, and declares extern object finders.
* DECLARE_DEVICE_TYPE_NS is for devices classes in namespaces - it doesn't forward-declare the device type.
Use DEFINE_DEVICE_TYPE or DEFINE_DEVICE_TYPE_NS to define device types.
* These macros declare storage for the static data, and instantiate the device type and device finder templates.
The rest of the changes are mostly just moving stuff out of headers that shouldn't be there, renaming stuff for consistency, and scoping stuff down where appropriate.
Things I've actually messed with substantially:
* More descriptive names for a lot of devices
* Untangled the fantasy sound from the driver state, which necessitates breaking up sound/flip writes
* Changed DECO BSMT2000 ready callback into a device delegate
* Untangled Microprose 3D noise from driver state
* Used object finders for CoCo multipak, KC85 D002, and Irem sound subdevices
* Started to get TI-99 stuff out of the TI-990 directory and arrange bus devices properly
* Started to break out common parts of Samsung ARM SoC devices
* Turned some of FM, SID, SCSP DSP, EPIC12 and Voodoo cores into something resmbling C++
* Tried to make Z180 table allocation/setup a bit safer
* Converted generic keyboard/terminal to not use WRITE8 - space/offset aren't relevant
* Dynamically allocate generic terminal buffer so derived devices (e.g. teleprinter) can specify size
* Imporved encapsulation of Z80DART channels
* Refactored the SPC7110 bit table generator loop to make it more readable
* Added wrappers for SNES PPU operations so members can be made protected
* Factored out some boilerplate for YM chips with PSG
* toaplan2 gfx
* stic/intv resolution
* Video System video
* Out Run/Y-board sprite alignment
* GIC video hookup
* Amstrad CPC ROM box members
* IQ151 ROM cart region
* MSX cart IRQ callback resolution time
* SMS passthrough control devices starting subslots
I've smoke-tested several drivers, but I've probably missed something. Things I've missed will likely blow up spectacularly with failure to bind errors and the like. Let me know if there's more subtle breakage (could have happened in FM or Voodoo).
And can everyone please, please try to keep stuff clean. In particular, please stop polluting the global namespace. Keep things out of headers that don't need to be there, and use things that can be scoped down rather than macros.
It feels like an uphill battle trying to get this stuff under control while more of it's added.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Make device_creator a variable template and get rid of the ampersands
* Remove screen.h and speaker.h from emu.h and add where necessary
* Centralise instantiations of screen and speaker finder templates
* Add/standardise #include guards in many hearers
* Remove many redundant #includes
* Order #includesr to help catch headers that can't be #included alone
(nw) This changes #include order to be prefix, unit header if applicable
then other stuff roughly in order from most dependent to least dependent
library. This helps catch headers that don't #include things that they
use.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Per Vas' request. If the compile fails for you (i'm thinking osx and
windows native debuggers here in particular), add '#include "emu.h"'
as first include of the cpp files that fail.
Due to our use of precompilation and forced inclusion, emu.h must be
included as the very first non-comment thing we do if we want to be
sure msvc compiles are identical to gcc/clang ones. Doing it directly
instead of through an include increases the correctness probability by
a magnitude.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* New abbreviated types are in osd and util namespaces, and also in global namespace for things that #include "emu.h"
* Get rid of import of cstdint types to global namespace (C99 does this anyway)
* Remove the cstdint types from everything in emu
* Get rid of U64/S64 macros
* Fix a bug in dps16 caused by incorrect use of macro
* Fix debugcon not checking for "do " prefix case-insensitively
* Fix a lot of messed up tabulation
* More constexpr
* Fix up many __names
|
|
|
|
|
| |
Use standard uint64_t, uint32_t, uint16_t or uint8_t instead of UINT64, UINT32, UINT16 or UINT8
also use standard int64_t, int32_t, int16_t or int8_t instead of INT64, INT32, INT16 or INT8
|
|
|
|
| |
everything in the debugger, which allows interruptible cpu's to work properly. [smf]
|
|
|
|
|
|
| |
everything in the debugger, which allows interruptible cpu's to work properly. [smf]"
This reverts commit 1a186c8a3a16a7ce99d7df2dd217a7552b696c92.
|
|
|
|
| |
everything in the debugger, which allows interruptible cpu's to work properly. [smf]
|
|
|
|
| |
confusion (nw)
|
| |
|
|
|
|
|
|
|
| |
SHA-1: 1f90ceab075c4869298e963bf0a14a0aac2f1caa
* tags are now strings (nw)
fix start project for custom builds in Visual Studio (nw)
|
|
|
|
| |
fix start project for custom builds in Visual Studio (nw)
|
| |
|
| |
|
| |
|
| |
|
|
|