| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
means of setting the minimum useful scheduling quantum, and clamping
all quanta to that value.
Changed interleave/boost handling to use scheduling quanta instead
of timers.
Added machine parameter to cpu_boost_interleave.
Updated cpuexec to compute the "perfect" interleave value taking into
account the minimum number of cycles per instruction specified by the
CPU core. Updated Z80 core to indicate that the minimum cpi is 2. Fixed
incorrect minimum cpi in the 68020+ cores.
Simplified a bit of logic in cpuexec_timeslice.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fine and basic searching/playback/skipping is functional. Still a bit
glitchy.
Firefox improvements:
- removed need for deprecat.h
- memory map is complete from schematics
- gutted laserdisc hacks in favor of actual laserdisc implementation
- fixed all CPU and sound clocks
Removed old laserdsc.c implementation.
Added generic timer devices, which simply allocate a timer but don't
prime it. This is the preferred method for allocating timers, and may
eventually be the only mechanism for doing so in the future.
|
|
|
|
|
|
|
|
| |
Subject: Machine -> machine
This is a big patch adding running_machine* parameters and using
"machine" where available.
|
|
|
|
|
| |
Renames duration to start_delay in timer_adjust_periodic() as well
Moves MDRV_ macros into proper header files
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Converted Centipede, as an example.
To define a scanline timer, use something like this:
MDRV_TIMER_ADD("32V", SCANLINE, generate_interrupt)
MDRV_TIMER_SCANLINE("main", 0, 16)
The first number is the first scanline the timer will fire on, the 2nd number is the increment.
So in this case, the timer will fire on 0, 16, 32, ..., 224, 240, then wrap around
because the screen is defined as 256 lines high.
The current scanline is passed to the callback in its 'param' argument
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Where applicable, added a parallel set of timer functions that take a device_config instead of emu_timer:
void timer_device_adjust_oneshot(const device_config *timer, attotime duration, INT32 param);
void timer_device_adjust_periodic(const device_config *timer, attotime duration, INT32 param, attotime period);
void timer_device_reset(const device_config *timer, attotime duration);
int timer_device_enable(const device_config *timer, int enable);
int timer_device_enabled(const device_config *timer);
int timer_device_get_param(const device_config *timer);
void *timer_device_get_param_ptr(const device_config *timer);
attotime timer_device_timeelapsed(const device_config *timer);
attotime timer_device_timeleft(const device_config *timer);
attotime timer_device_starttime(const device_config *timer);
attotime timer_device_firetime(const device_config *timer);
- Added MACHINE_CONFIG macros:
MDRV_TIMER_ADD(_tag, _type, _callback) /* type can only be PERIODIC right now (can scanline based later, or even NE555) */
MDRV_TIMER_REMOVE(_tag)
MDRV_TIMER_MODIFY(_tag)
MDRV_TIMER_TYPE(_type)
MDRV_TIMER_CALLBACK(_callback)
MDRV_TIMER_DURATION(_duration)
MDRV_TIMER_PERIOD(_period)
MDRV_TIMER_PARAM(_param)
MDRV_TIMER_PTR(_ptr)
- Modified Space Encounters to create two timers and use those:
MDRV_TIMER_ADD("STROBE_ON", PERIODIC, spcenctr_strobe_timer_callback)
MDRV_TIMER_PARAM(TRUE) /* indicates strobe ON */
MDRV_TIMER_PERIOD(UINT64_ATTOTIME_IN_HZ(SPCENCTR_STROBE_FREQ))
MDRV_TIMER_ADD("STROBE_OFF", PERIODIC, spcenctr_strobe_timer_callback)
MDRV_TIMER_PARAM(FALSE) /* indicates strobe OFF */
MDRV_TIMER_DURATION(UINT64_ATTOTIME_IN_HZ(SPCENCTR_STROBE_FREQ * 100 / SPCENCTR_DUTY_CYCLE))
MDRV_TIMER_PERIOD(UINT64_ATTOTIME_IN_HZ(SPCENCTR_STROBE_FREQ))
|
|
|
|
|
|
|
|
|
|
| |
suffixed with _func. Did this throughout the core and
drivers I was familiar with.
Fixed gcc compiler error with recent render.c changes.
gcc does not like explicit (int) casts on float or
double functions. This is fracking annoying and stupid,
but there you have it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
constructors to tokenized lists. For the most part
this is a non-invasive change, except for those drivers
using MDRV_WATCHDOG_TIME_INIT. In order to allow for
tokenization of attotimes, a set of new macros is
provided called UINT64_ATTOTIME_IN_x() which follows the
same pattern as ATTOTIME_IN_x() but packs the attotime
down into a single 64-bit value for easier tokenization.
Separated MDRV_DEVICE_CONFIG_DATA into 32-bit and 64-bit
versions. Added floating-point versions with configurable
resolutions.
Fixed several errors in the machine drivers which were
caught by the additional checks now done in the machine
config detokenization code.
Converted speakers into devices. Machine->config no
longer houses an array of speakers; instead they are
iterated through using the new macros (defined in sound.h)
speaker_output_first() and speaker_output_next(). Updated
all relevant code to do this.
Improved game info display with multiple screens. Fixed
bug which caused all screens to display equally.
Added typedefs for all the machine config callback
functions at the top of driver.h.
|
|
|
|
|
| |
Updated all call sites.
Fixed recent build breaks.
|
|
|
|
|
|
| |
- removed years from copyright notices
- removed redundant (c) from copyright notices
- updated "the MAME Team" to be "Nicola Salmoria and the MAME Team"
|
| |
|
|
|