From b97f2fdd6ef9e1e3d9e988cb8d5036eb9b80e5ca Mon Sep 17 00:00:00 2001 From: sin365 <353374337@qq.com> Date: Tue, 4 Mar 2025 14:53:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=92=A4=E9=94=80=20=E5=87=8F=E5=B0=91timer=20?= =?UTF-8?q?gc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Assets/Plugins/UMAME/emu/EmuTimer.cs | 14 +++--- .../UMAME/mame/konami68000/Konami68000.cs | 5 +- .../Assets/Plugins/UMAME/mame/m72/Audio.cs | 25 ++++++---- .../Assets/Plugins/UMAME/mame/m92/M92.cs | 20 +++++--- .../Assets/Plugins/UMAME/mame/m92/Video.cs | 15 +++--- .../Assets/Plugins/UMAME/mame/taito/Opwolf.cs | 5 +- .../Plugins/UMAME/mame/taitob/Taitob.cs | 50 +++++++++++-------- 7 files changed, 79 insertions(+), 55 deletions(-) diff --git a/MAME.Unity/Assets/Plugins/UMAME/emu/EmuTimer.cs b/MAME.Unity/Assets/Plugins/UMAME/emu/EmuTimer.cs index 4f323ce..040f01d 100644 --- a/MAME.Unity/Assets/Plugins/UMAME/emu/EmuTimer.cs +++ b/MAME.Unity/Assets/Plugins/UMAME/emu/EmuTimer.cs @@ -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) diff --git a/MAME.Unity/Assets/Plugins/UMAME/mame/konami68000/Konami68000.cs b/MAME.Unity/Assets/Plugins/UMAME/mame/konami68000/Konami68000.cs index 55416c9..434edcc 100644 --- a/MAME.Unity/Assets/Plugins/UMAME/mame/konami68000/Konami68000.cs +++ b/MAME.Unity/Assets/Plugins/UMAME/mame/konami68000/Konami68000.cs @@ -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() { diff --git a/MAME.Unity/Assets/Plugins/UMAME/mame/m72/Audio.cs b/MAME.Unity/Assets/Plugins/UMAME/mame/m72/Audio.cs index b8532e0..d7c54ec 100644 --- a/MAME.Unity/Assets/Plugins/UMAME/mame/m72/Audio.cs +++ b/MAME.Unity/Assets/Plugins/UMAME/mame/m72/Audio.cs @@ -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) { diff --git a/MAME.Unity/Assets/Plugins/UMAME/mame/m92/M92.cs b/MAME.Unity/Assets/Plugins/UMAME/mame/m92/M92.cs index f22aa23..a769078 100644 --- a/MAME.Unity/Assets/Plugins/UMAME/mame/m92/M92.cs +++ b/MAME.Unity/Assets/Plugins/UMAME/mame/m92/M92.cs @@ -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() diff --git a/MAME.Unity/Assets/Plugins/UMAME/mame/m92/Video.cs b/MAME.Unity/Assets/Plugins/UMAME/mame/m92/Video.cs index 4524023..cfe8003 100644 --- a/MAME.Unity/Assets/Plugins/UMAME/mame/m92/Video.cs +++ b/MAME.Unity/Assets/Plugins/UMAME/mame/m92/Video.cs @@ -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) diff --git a/MAME.Unity/Assets/Plugins/UMAME/mame/taito/Opwolf.cs b/MAME.Unity/Assets/Plugins/UMAME/mame/taito/Opwolf.cs index e11d78f..a942342 100644 --- a/MAME.Unity/Assets/Plugins/UMAME/mame/taito/Opwolf.cs +++ b/MAME.Unity/Assets/Plugins/UMAME/mame/taito/Opwolf.cs @@ -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) diff --git a/MAME.Unity/Assets/Plugins/UMAME/mame/taitob/Taitob.cs b/MAME.Unity/Assets/Plugins/UMAME/mame/taitob/Taitob.cs index 9b6cf04..f6abe31 100644 --- a/MAME.Unity/Assets/Plugins/UMAME/mame/taitob/Taitob.cs +++ b/MAME.Unity/Assets/Plugins/UMAME/mame/taitob/Taitob.cs @@ -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)