撤销 减少timer gc

This commit is contained in:
sin365 2025-03-04 14:53:10 +08:00
parent 025dc5d413
commit b97f2fdd6e
7 changed files with 79 additions and 55 deletions

View File

@ -26,7 +26,6 @@ namespace MAME.Core
public Atime start;
public Atime expire;
}
public static emu_timer TempTimerData;
public class emu_timer2
{
public int index;
@ -464,16 +463,17 @@ namespace MAME.Core
public static void timer_pulse_internal(Atime period, TIME_ACT action)
{
//emu_timer timer = timer_alloc_common(action, false);
timer_alloc_common(ref EmuTimer.TempTimerData, action, false);
timer_adjust_periodic(EmuTimer.TempTimerData, period, period);
emu_timer timer = null;
timer_alloc_common(ref timer, action, false);
timer_adjust_periodic(timer, period, period);
}
public static void timer_set_internal(TIME_ACT action)
{
//emu_timer timer = timer_alloc_common(action, true);
timer_alloc_common(ref EmuTimer.TempTimerData, action, true);
timer_adjust_periodic(EmuTimer.TempTimerData, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
emu_timer timer = null;
timer_alloc_common(ref timer,action, true);
timer_adjust_periodic(timer, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
}
public static void timer_list_insert(emu_timer timer1)
{
int i;
@ -615,7 +615,7 @@ namespace MAME.Core
}
}
}
public static emu_timer timer_alloc_common(ref emu_timer timer, TIME_ACT action, bool temp)
public static emu_timer timer_alloc_common(ref emu_timer timer,TIME_ACT action, bool temp)
{
Atime time = get_current_time();
if (timer == null)

View File

@ -815,8 +815,9 @@ namespace MAME.Core
{
Cpuint.cpunum_set_input_line(1, (int)LineState.INPUT_LINE_NMI, LineState.CLEAR_LINE);
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common( EmuTimer.TIME_ACT.Konami68000_nmi_callback, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.Konami68000_nmi_callback, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, new Atime(0, (long)50e12), Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, EmuTimer.TIME_ACT.Konami68000_nmi_callback, true);
EmuTimer.timer_adjust_periodic(timer, new Atime(0, (long)50e12), Attotime.ATTOTIME_NEVER);
}
public static ushort punkshot_kludge_r()
{

View File

@ -46,17 +46,19 @@
{
Cpuint.lvec.Add(new vec(1, EmuTimer.get_current_time()));
setvector_param = 1;
EmuTimer.emu_timer timer = null;
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
EmuTimer.timer_alloc_common(ref timer, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(timer, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
}
else
{
Cpuint.lvec.Add(new vec(2, EmuTimer.get_current_time()));
setvector_param = 2;
EmuTimer.emu_timer timer = null;
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
EmuTimer.timer_alloc_common(ref timer, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(timer, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
}
}
public static void m72_sound_command_w(int offset, ushort data)
@ -67,8 +69,9 @@
Cpuint.lvec.Add(new vec(3, EmuTimer.get_current_time()));
setvector_param = 3;
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(timer, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
}
}
public static void m72_sound_command_byte_w(int offset, byte data)
@ -77,16 +80,18 @@
Cpuint.lvec.Add(new vec(3, EmuTimer.get_current_time()));
setvector_param = 3;
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(timer, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
}
public static void m72_sound_irq_ack_w(int offset, byte data)
{
Cpuint.lvec.Add(new vec(4, EmuTimer.get_current_time()));
setvector_param = 4;
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(timer, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
}
public static void m72_set_sample_start(int start)
{

View File

@ -515,8 +515,9 @@ namespace MAME.Core
Cpuint.lvec.Add(new vec(3, EmuTimer.get_current_time()));
setvector_param = 3;
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(timer, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
Sound.soundlatch_w((ushort)(data & 0xff));
}
public static ushort m92_sound_status_r()
@ -532,8 +533,9 @@ namespace MAME.Core
Cpuint.lvec.Add(new vec(4, EmuTimer.get_current_time()));
setvector_param = 4;
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(timer, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
}
public static void m92_sound_status_w(ushort data)
{
@ -547,16 +549,18 @@ namespace MAME.Core
Cpuint.lvec.Add(new vec(1, EmuTimer.get_current_time()));
setvector_param = 1;
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(timer, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
}
else
{
Cpuint.lvec.Add(new vec(2, EmuTimer.get_current_time()));
setvector_param = 2;
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(timer, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
}
}
public static void m92_sprite_interrupt()

View File

@ -46,8 +46,9 @@ namespace MAME.Core
Generic.buffer_spriteram16_w();
m92_sprite_buffer_busy = 0;
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(EmuTimer.TIME_ACT.M92_spritebuffer_callback, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.M92_spritebuffer_callback, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, Attotime.attotime_mul(new Atime(0, (long)(1e18 / 26666000)), 0x400), Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, EmuTimer.TIME_ACT.M92_spritebuffer_callback, true);
EmuTimer.timer_adjust_periodic(timer, Attotime.attotime_mul(new Atime(0, (long)(1e18 / 26666000)), 0x400), Attotime.ATTOTIME_NEVER);
}
}
public static void m92_spritecontrol_w2(int offset, byte data)
@ -69,8 +70,9 @@ namespace MAME.Core
Generic.buffer_spriteram16_w();
m92_sprite_buffer_busy = 0;
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(EmuTimer.TIME_ACT.M92_spritebuffer_callback, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.M92_spritebuffer_callback, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, Attotime.attotime_mul(new Atime(0, (long)(1e18 / 26666000)), 0x400), Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, EmuTimer.TIME_ACT.M92_spritebuffer_callback, true);
EmuTimer.timer_adjust_periodic(timer, Attotime.attotime_mul(new Atime(0, (long)(1e18 / 26666000)), 0x400), Attotime.ATTOTIME_NEVER);
}
}
public static void m92_spritecontrol_w(int offset, ushort data)
@ -92,8 +94,9 @@ namespace MAME.Core
Generic.buffer_spriteram16_w();
m92_sprite_buffer_busy = 0;
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(EmuTimer.TIME_ACT.M92_spritebuffer_callback, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.M92_spritebuffer_callback, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, Attotime.attotime_mul(new Atime(0, (long)(1e18 / 26666000)), 0x400), Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, EmuTimer.TIME_ACT.M92_spritebuffer_callback, true);
EmuTimer.timer_adjust_periodic(timer, Attotime.attotime_mul(new Atime(0, (long)(1e18 / 26666000)), 0x400), Attotime.ATTOTIME_NEVER);
}
}
public static void m92_videocontrol_w(byte data)

View File

@ -982,8 +982,9 @@ namespace MAME.Core
{
current_cmd = 0xf5;
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(EmuTimer.TIME_ACT.Taito_opwolf_timer_callback, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.Taito_opwolf_timer_callback, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, new Atime(0, (long)(80000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, EmuTimer.TIME_ACT.Taito_opwolf_timer_callback, true);
EmuTimer.timer_adjust_periodic(timer, new Atime(0, (long)(80000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
}
cchip_last_7a = cchip_ram[0x7a];
if (cchip_ram[0x7f] == 0xa)

View File

@ -187,8 +187,9 @@ namespace MAME.Core
public static void rastansaga2_interrupt()
{
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(TIME_ACT.Taitob_rsaga2_interrupt2, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, TIME_ACT.Taitob_rsaga2_interrupt2, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, new Atime(0, (long)(5000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, TIME_ACT.Taitob_rsaga2_interrupt2, true);
EmuTimer.timer_adjust_periodic(timer, new Atime(0, (long)(5000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
Cpuint.cpunum_set_input_line(0, 4, LineState.HOLD_LINE);
}
public static void crimec_interrupt3()
@ -198,8 +199,9 @@ namespace MAME.Core
public static void crimec_interrupt()
{
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(TIME_ACT.Taitob_crimec_interrupt3, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, TIME_ACT.Taitob_crimec_interrupt3, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, new Atime(0, (long)(5000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, TIME_ACT.Taitob_crimec_interrupt3, true);
EmuTimer.timer_adjust_periodic(timer, new Atime(0, (long)(5000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
Cpuint.cpunum_set_input_line(0, 5, LineState.HOLD_LINE);
}
public static void hitice_interrupt6()
@ -209,8 +211,9 @@ namespace MAME.Core
public static void hitice_interrupt()
{
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(TIME_ACT.Taitob_hitice_interrupt6, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, TIME_ACT.Taitob_hitice_interrupt6, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, new Atime(0, (long)(5000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, TIME_ACT.Taitob_hitice_interrupt6, true);
EmuTimer.timer_adjust_periodic(timer, new Atime(0, (long)(5000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
Cpuint.cpunum_set_input_line(0, 4, LineState.HOLD_LINE);
}
public static void rambo3_interrupt1()
@ -220,8 +223,9 @@ namespace MAME.Core
public static void rambo3_interrupt()
{
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(TIME_ACT.Taitob_rambo3_interrupt1, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, TIME_ACT.Taitob_rambo3_interrupt1, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, new Atime(0, (long)(5000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, TIME_ACT.Taitob_rambo3_interrupt1, true);
EmuTimer.timer_adjust_periodic(timer, new Atime(0, (long)(5000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
Cpuint.cpunum_set_input_line(0, 6, LineState.HOLD_LINE);
}
public static void pbobble_interrupt5()
@ -231,8 +235,9 @@ namespace MAME.Core
public static void pbobble_interrupt()
{
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(TIME_ACT.Taitob_pbobble_interrupt5, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, TIME_ACT.Taitob_pbobble_interrupt5, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, new Atime(0, (long)(5000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, TIME_ACT.Taitob_pbobble_interrupt5, true);
EmuTimer.timer_adjust_periodic(timer, new Atime(0, (long)(5000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
Cpuint.cpunum_set_input_line(0, 3, LineState.HOLD_LINE);
}
public static void viofight_interrupt1()
@ -242,8 +247,9 @@ namespace MAME.Core
public static void viofight_interrupt()
{
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(TIME_ACT.Taitob_viofight_interrupt1, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, TIME_ACT.Taitob_viofight_interrupt1, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, new Atime(0, (long)(5000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, TIME_ACT.Taitob_viofight_interrupt1, true);
EmuTimer.timer_adjust_periodic(timer, new Atime(0, (long)(5000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
Cpuint.cpunum_set_input_line(0, 4, LineState.HOLD_LINE);
}
public static void masterw_interrupt4()
@ -253,8 +259,9 @@ namespace MAME.Core
public static void masterw_interrupt()
{
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(TIME_ACT.Taitob_masterw_interrupt4, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, TIME_ACT.Taitob_masterw_interrupt4, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, new Atime(0, (long)(5000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, TIME_ACT.Taitob_masterw_interrupt4, true);
EmuTimer.timer_adjust_periodic(timer, new Atime(0, (long)(5000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
Cpuint.cpunum_set_input_line(0, 5, LineState.HOLD_LINE);
}
public static void silentd_interrupt4()
@ -264,8 +271,9 @@ namespace MAME.Core
public static void silentd_interrupt()
{
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(TIME_ACT.Taitob_silentd_interrupt4, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, TIME_ACT.Taitob_silentd_interrupt4, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, new Atime(0, (long)(5000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, TIME_ACT.Taitob_silentd_interrupt4, true);
EmuTimer.timer_adjust_periodic(timer, new Atime(0, (long)(5000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
Cpuint.cpunum_set_input_line(0, 6, LineState.HOLD_LINE);
}
public static void selfeena_interrupt4()
@ -275,8 +283,9 @@ namespace MAME.Core
public static void selfeena_interrupt()
{
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(TIME_ACT.Taitob_selfeena_interrupt4, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, TIME_ACT.Taitob_selfeena_interrupt4, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, new Atime(0, (long)(5000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, TIME_ACT.Taitob_selfeena_interrupt4, true);
EmuTimer.timer_adjust_periodic(timer, new Atime(0, (long)(5000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
Cpuint.cpunum_set_input_line(0, 6, LineState.HOLD_LINE);
}
public static void sbm_interrupt5()
@ -286,8 +295,9 @@ namespace MAME.Core
public static void sbm_interrupt()
{
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(TIME_ACT.Taitob_sbm_interrupt5, true);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, TIME_ACT.Taitob_sbm_interrupt5, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, new Atime(0, (long)(10000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
EmuTimer.emu_timer timer = null;
EmuTimer.timer_alloc_common(ref timer, TIME_ACT.Taitob_sbm_interrupt5, true);
EmuTimer.timer_adjust_periodic(timer, new Atime(0, (long)(10000 * Cpuexec.cpu[0].attoseconds_per_cycle)), Attotime.ATTOTIME_NEVER);
Cpuint.cpunum_set_input_line(0, 4, LineState.HOLD_LINE);
}
public static void mb87078_gain_changed(int channel, int percent)