减少timer gc

This commit is contained in:
sin365 2025-03-04 12:58:42 +08:00
parent 722d82ee61
commit 025dc5d413
7 changed files with 55 additions and 79 deletions

View File

@ -26,6 +26,7 @@ namespace MAME.Core
public Atime start;
public Atime expire;
}
public static emu_timer TempTimerData;
public class emu_timer2
{
public int index;
@ -463,17 +464,16 @@ namespace MAME.Core
public static void timer_pulse_internal(Atime period, TIME_ACT action)
{
//emu_timer timer = timer_alloc_common(action, false);
emu_timer timer = null;
timer_alloc_common(ref timer, action, false);
timer_adjust_periodic(timer, period, period);
timer_alloc_common(ref EmuTimer.TempTimerData, action, false);
timer_adjust_periodic(EmuTimer.TempTimerData, period, period);
}
public static void timer_set_internal(TIME_ACT action)
{
//emu_timer timer = timer_alloc_common(action, true);
emu_timer timer = null;
timer_alloc_common(ref timer,action, true);
timer_adjust_periodic(timer, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
timer_alloc_common(ref EmuTimer.TempTimerData, action, true);
timer_adjust_periodic(EmuTimer.TempTimerData, 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,9 +815,8 @@ 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.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);
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);
}
public static ushort punkshot_kludge_r()
{

View File

@ -46,19 +46,17 @@
{
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 timer, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(timer, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, 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 timer, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(timer, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
}
}
public static void m72_sound_command_w(int offset, ushort data)
@ -69,9 +67,8 @@
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.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);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
}
}
public static void m72_sound_command_byte_w(int offset, byte data)
@ -80,18 +77,16 @@
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.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);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, 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.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);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
}
public static void m72_set_sample_start(int start)
{

View File

@ -515,9 +515,8 @@ 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.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);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
Sound.soundlatch_w((ushort)(data & 0xff));
}
public static ushort m92_sound_status_r()
@ -533,9 +532,8 @@ 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.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);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
}
public static void m92_sound_status_w(ushort data)
{
@ -549,18 +547,16 @@ 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.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);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, 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.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);
EmuTimer.timer_alloc_common(ref EmuTimer.TempTimerData, EmuTimer.TIME_ACT.setvector, true);
EmuTimer.timer_adjust_periodic(EmuTimer.TempTimerData, Attotime.ATTOTIME_ZERO, Attotime.ATTOTIME_NEVER);
}
}
public static void m92_sprite_interrupt()

View File

@ -46,9 +46,8 @@ 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.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);
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);
}
}
public static void m92_spritecontrol_w2(int offset, byte data)
@ -70,9 +69,8 @@ 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.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);
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);
}
}
public static void m92_spritecontrol_w(int offset, ushort data)
@ -94,9 +92,8 @@ 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.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);
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);
}
}
public static void m92_videocontrol_w(byte data)

View File

@ -982,9 +982,8 @@ namespace MAME.Core
{
current_cmd = 0xf5;
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(EmuTimer.TIME_ACT.Taito_opwolf_timer_callback, true);
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);
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);
}
cchip_last_7a = cchip_ram[0x7a];
if (cchip_ram[0x7f] == 0xa)

View File

@ -187,9 +187,8 @@ namespace MAME.Core
public static void rastansaga2_interrupt()
{
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(TIME_ACT.Taitob_rsaga2_interrupt2, true);
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);
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);
Cpuint.cpunum_set_input_line(0, 4, LineState.HOLD_LINE);
}
public static void crimec_interrupt3()
@ -199,9 +198,8 @@ namespace MAME.Core
public static void crimec_interrupt()
{
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(TIME_ACT.Taitob_crimec_interrupt3, true);
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);
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);
Cpuint.cpunum_set_input_line(0, 5, LineState.HOLD_LINE);
}
public static void hitice_interrupt6()
@ -211,9 +209,8 @@ namespace MAME.Core
public static void hitice_interrupt()
{
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(TIME_ACT.Taitob_hitice_interrupt6, true);
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);
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);
Cpuint.cpunum_set_input_line(0, 4, LineState.HOLD_LINE);
}
public static void rambo3_interrupt1()
@ -223,9 +220,8 @@ namespace MAME.Core
public static void rambo3_interrupt()
{
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(TIME_ACT.Taitob_rambo3_interrupt1, true);
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);
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);
Cpuint.cpunum_set_input_line(0, 6, LineState.HOLD_LINE);
}
public static void pbobble_interrupt5()
@ -235,9 +231,8 @@ namespace MAME.Core
public static void pbobble_interrupt()
{
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(TIME_ACT.Taitob_pbobble_interrupt5, true);
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);
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);
Cpuint.cpunum_set_input_line(0, 3, LineState.HOLD_LINE);
}
public static void viofight_interrupt1()
@ -247,9 +242,8 @@ namespace MAME.Core
public static void viofight_interrupt()
{
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(TIME_ACT.Taitob_viofight_interrupt1, true);
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);
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);
Cpuint.cpunum_set_input_line(0, 4, LineState.HOLD_LINE);
}
public static void masterw_interrupt4()
@ -259,9 +253,8 @@ namespace MAME.Core
public static void masterw_interrupt()
{
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(TIME_ACT.Taitob_masterw_interrupt4, true);
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);
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);
Cpuint.cpunum_set_input_line(0, 5, LineState.HOLD_LINE);
}
public static void silentd_interrupt4()
@ -271,9 +264,8 @@ namespace MAME.Core
public static void silentd_interrupt()
{
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(TIME_ACT.Taitob_silentd_interrupt4, true);
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);
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);
Cpuint.cpunum_set_input_line(0, 6, LineState.HOLD_LINE);
}
public static void selfeena_interrupt4()
@ -283,9 +275,8 @@ namespace MAME.Core
public static void selfeena_interrupt()
{
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(TIME_ACT.Taitob_selfeena_interrupt4, true);
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);
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);
Cpuint.cpunum_set_input_line(0, 6, LineState.HOLD_LINE);
}
public static void sbm_interrupt5()
@ -295,9 +286,8 @@ namespace MAME.Core
public static void sbm_interrupt()
{
//EmuTimer.emu_timer timer = EmuTimer.timer_alloc_common(TIME_ACT.Taitob_sbm_interrupt5, true);
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);
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);
Cpuint.cpunum_set_input_line(0, 4, LineState.HOLD_LINE);
}
public static void mb87078_gain_changed(int channel, int percent)