| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
| |
some no longer necessary bits in the scheduler.
|
| | |
|
| |
|
|
| |
Mid-timeslice saves are supported in theory. Added cleaner mechanism for quick exiting needed upon restore or hard reset/exit.
|
| |
|
|
| |
and make device_timer callbacks match the native form to eliminate trampolines.
|
| | |
|
| |
|
|
| |
class. Eventually we should replace all timer_allocs with persistent_timers embedded in the consumer.
|
| |
|
|
| |
timers (adjust_absolute). Also fix templates for form 5 and 6 callbacks.
|
| | |
|
| |
|
|
| |
flag live if the timeslice suspend reason is in play.
|
| |
|
|
| |
start/expire are set for persistent timers if not inserted.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
the save buffer only for transient timers. Now saving quantum state as well. Switched to using an array for that.
|
| |
|
|
| |
handling hard/soft resets and exits. Added hard_stop() to scheduler to force it to exit ASAP.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
implementation. Still a couple of functions missing.
|
| |
|
|
| |
usage. Cleaned up several core pieces to leverage this.
|
| |
|
|
| |
to use subseconds abstractly where possible. Builds, and many games work, but some are failing, so there be dragons here.
|
| | |
|
| | |
|
| |
|
|
| |
logic into the execute interface. Added minimum duration parameter to the timeslice function. Switched to using delegates to call the various execute paths.
|
| |
|
|
| |
timer. Switched back to a permanent tail timer to dodge nullptr checks. Moved timer list management out of helper class and back into the core logic now that we're back to a single list. Reduced some unecessary friending.
|
| |
|
|
| |
data, and postsave to restore it, rather than saving each timer. Add a device_persistent_timer to accept device parameters and keep those details out of schedule.cpp. Device timers now using parameter 2 to store the ID, rather than the ID being special.
|
| |
|
|
| |
that were caught by this. Updated all interfaces and core systems to use new timer classes.
|
| |
|
|
| |
timers. Update sound manager to use native callback form. Update screen to use persistent timers.
|
| | |
|
| |
|
|
| |
callback types. timer_callback is a class containing a timer_expired_delegate plus a user-supplied pointer, and accounting information for registration. timer_instance is a single active timer in the scheduler. persistent_timer is what you get back from timer_alloc() now, and has methods for dynamic changes. transient_timer_factory is what you use to create transient timers. Devices now own a transient_timer_factory for transient device timers. persistent_timers can be emedded and initialized directly.
|
| |
|
|
| |
parameters to u64. Change first parameter of device timers to be emu_timer const. Updated all device timers to follow suit.
|
| |
|
|
| |
order. Created new timer_expired_delegate class which is based on a new native timer expired function signature, and which can convert the old function signature automatically via a trampoline. Added several other function signatures which can now be used directly as timer callbacks.
|
| |
|
|
| |
emu_timer_cb for all timers internally. Split out timer-related classes into their own header timer.h, which is included before device.h. Devices now own their own emu_timer_cb for device timers.
|
| |
|
|
| |
to enregistration to help differentiate in non-device cases.
|
| |
|
|
| |
this will be addressed once we have flexible callback signatures. A few more synchronize conversions.
|
| | |
|
| |
|
|
| |
timer_set instances and moved timer_set to private (since it's still used by synchronize). Added timer_alloc template to device_t for common case of allocating a device callback bound to the device. Added interface_timer_alloc template to device_interface as well. Extended emu_timer_cb to allow enregistering directly on the scheduler or on a device_interface.
|
| |
|
|
| |
used it. Created timer_expired_registered_delegate for registering timer callbacks. Updated the callbacks in dcs.cpp to use them as a testbed.
|
| |
|
|
| |
several situations where timers would be inserted/removed unnecessarily. Moved basetime_relative class into the device scheduler.
|
| |
|
|
| |
relative times on all timers. More heavily document the inner scheduler loop. Cache several variables locally. Split cycle eating logic out.
|
| |
|
|
| |
compare in the inner loop.
|
| |
|
|
| |
needless extra loops in core scheduler.
|
| |
|
|
| |
during core scheduling. Seems to be ~4% on firetrap as an example.
|
| |
|
|
| |
happen. Small performance uplift from removing code in the inner scheduling loop.
|
| |
|
|
|
|
|
|
|
|
| |
* Removed inline assembly for operations compilers handle well.
* Added ARM and AArch64 implementation for a few operations.
* Added unsigned integer add with carry out operations.
-cpu/drccache.cpp: Detect whether RWX pages are supported.
-dynax.cpp: Improved a few hanafuda DIP switch descriptions.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The things that were previously called device iterators are not
iterators in the C++ sense of the word. This is confusing for
newcomers. These have been renamed to be device enumerators.
Several Lua methods and properties that previously returned tables now
return lightweight wrappers for the underlying objects. This means
creating them is a lot faster, but you can't modify them, and the
performance characteristics of different operations varies.
The render manager's target list uses 1-based indexing to be more like
idiomatic Lua.
It's now possible to create a device enumerator on any device, and then
get subdevices (or sibling devices) using a relative tag.
Much more render/layout functionality has been exposed to Lua. Layout
scripts now have access to the layout file and can directly set the
state of an item with no bindings, or register callbacks to obtain
state. Some things that were previously methods are now read-only
properties.
Layout files are no longer required to supply a "name". This was
problematic because the same layout file could be loaded for multiple
instances of the same device, and each instance of the layout file
should use the correct inputs (and in the future outputs) for the device
instance it's associated with.
This should also fix video output with MSVC builds by avoiding delegates
that return things that don't fit in a register.
|
| | |
|