From e022ccd040333ddb6c49c5fcd0d3fca3781b8672 Mon Sep 17 00:00:00 2001 From: Ryan Holtz Date: Tue, 18 Aug 2020 09:37:07 +0200 Subject: -tank: Assorted fixes and changes. For some reason, GNE (H4.6) never goes low at the start of the game. --- src/lib/netlist/devices/nld_74165.cpp | 2 +- src/mame/drivers/atarittl.cpp | 14 +++---- src/mame/machine/nl_tank.cpp | 71 +++++++++++++++++++---------------- 3 files changed, 46 insertions(+), 41 deletions(-) diff --git a/src/lib/netlist/devices/nld_74165.cpp b/src/lib/netlist/devices/nld_74165.cpp index c38c82731c4..9b29a7beaf2 100644 --- a/src/lib/netlist/devices/nld_74165.cpp +++ b/src/lib/netlist/devices/nld_74165.cpp @@ -75,7 +75,7 @@ namespace netlist m_last_CLK = m_CLK(); m_QH.push(qh, NLTIME_FROM_NS(20)); // FIXME: Timing - m_QHQ.push(1 - qh, NLTIME_FROM_NS(20)); // FIXME: Timing + m_QHQ.push(qh ? 0 : 1, NLTIME_FROM_NS(20)); // FIXME: Timing } } diff --git a/src/mame/drivers/atarittl.cpp b/src/mame/drivers/atarittl.cpp index 73f720f082a..ca7f4346f98 100644 --- a/src/mame/drivers/atarittl.cpp +++ b/src/mame/drivers/atarittl.cpp @@ -241,23 +241,21 @@ void tank_state::tank(machine_config &config) NETLIST_LOGIC_INPUT(config, "maincpu:p2rdown", "P2_RIGHT_DOWN.POS", 0); NETLIST_LOGIC_INPUT(config, "maincpu:p1fire", "P1_FIRE.POS", 0); NETLIST_LOGIC_INPUT(config, "maincpu:p2fire", "P2_FIRE.POS", 0); - NETLIST_LOGIC_INPUT(config, "maincpu:coin1", "COIN1.POS", 0); - NETLIST_LOGIC_INPUT(config, "maincpu:coin2", "COIN2.POS", 0); + NETLIST_LOGIC_INPUT(config, "maincpu:coin1", "COIN1.POS", 0); + NETLIST_LOGIC_INPUT(config, "maincpu:coin2", "COIN2.POS", 0); /* video hardware */ SCREEN(config, "screen", SCREEN_TYPE_RASTER); FIXFREQ(config, m_video).set_screen("screen"); m_video->set_monitor_clock(TANK_VIDCLOCK); // Length of active video, end of front-porch, end of sync signal, end of back porch - // TODO: The total hblank period is 128, the total hsync period is 32, unknown how to convert this to porches. - // TODo: The total vblank period is 80, the total vsync period is 8, unknown how to convert this to porches. - m_video->set_horz_params(776, 776, 808, 904); - m_video->set_vert_params(432, 432, 440, 520); + m_video->set_horz_params(776, 776, 808, 904); + m_video->set_vert_params(512, 512, 520, 520); m_video->set_fieldcount(2); m_video->set_threshold(1.0); - m_video->set_vsync_threshold(0.368); + m_video->set_vsync_threshold(0.3); m_video->set_gain(0.47); - //m_video->set_horz_scale(1); + m_video->set_horz_scale(3); } void gtrak10_state::gtrak10(machine_config &config) diff --git a/src/mame/machine/nl_tank.cpp b/src/mame/machine/nl_tank.cpp index c02f940f596..cf82f52ccf8 100644 --- a/src/mame/machine/nl_tank.cpp +++ b/src/mame/machine/nl_tank.cpp @@ -30,10 +30,15 @@ NETLIST_END() NETLIST_START(tank) - SOLVER(Solver, 48000) + SOLVER(Solver, 16000) + PARAM(Solver.ACCURACY, 5e-4) + PARAM(Solver.DYNAMIC_TS, 1) + PARAM(Solver.DYNAMIC_LTE, 1e-2) + PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 1e-7) ANALOG_INPUT(V5, 5) ANALOG_INPUT(V12, 12) + //ANALOG_INPUT(VM12, GND) ALIAS(VCC, V5) ALIAS(P, V5) @@ -80,13 +85,13 @@ NETLIST_START(tank) RES(R41, RES_K(4.7)) RES(R42, 100) RES(R43, 100) - RES(R48A, 560) + //RES(R48A, 560) RES(R48B, RES_K(4.7)) RES(R49B, RES_K(4.7)) RES(R50B, RES_K(4.7)) RES(R51B, RES_K(4.7)) RES(R52B, 100) - RES(R53A, RES_K(330)) + RES(R53A, RES_K(220)) RES(R53B, 100) RES(R54A, RES_K(680)) RES(R54B, 100) @@ -102,7 +107,7 @@ NETLIST_START(tank) RES(R60B, 100) RES(R61, 100) RES(R62, 100) - RES(R63A, RES_K(2.2)) + RES(R63A, RES_M(2.2)) RES(R63B, 100) RES(R64A, RES_K(180)) //RES(R64M2, RES_K(4.7)) @@ -224,8 +229,6 @@ NETLIST_START(tank) SWITCH2(COIN1) SWITCH2(COIN2) - SWITCH2(COINAGE1) - SWITCH2(COINAGE2) DIODE(CR1, "1N914") DIODE(CR2, "1N914") @@ -258,7 +261,7 @@ NETLIST_START(tank) QBJT_EB(Q34, "2N3644") TTL_7404_DIP(IC_H3) - TTL_7404_DIP(IC_B6) + TTL_7400_DIP(IC_B6) TTL_7402_DIP(IC_D6) TTL_74107_DIP(IC_E6) TTL_7474_DIP(IC_J6) @@ -365,22 +368,18 @@ NETLIST_START(tank) NET_C(COIN2.2, COIN2_NO) NET_C(GND, COIN1.Q, COIN2.Q) - NET_C(IC_B6.11, IC_B6.12) - NET_C(IC_B6.13, IC_B6.10) - NET_C(IC_B6.5, IC_B6.2) - NET_C(IC_B6.1, IC_B6.6) - ALIAS(COIN1_NO, IC_B6.11) - ALIAS(COIN1_NC, IC_B6.13) - ALIAS(COIN2_NO, IC_B6.5) - ALIAS(COIN2_NC, IC_B6.1) + ALIAS(COIN1_NO, IC_B6.5) + ALIAS(COIN1_NC, IC_B6.1) + ALIAS(COIN2_NO, IC_B6.9) + ALIAS(COIN2_NC, IC_B6.13) - NET_C(IC_B6.6, IC_D6.8) - NET_C(IC_B6.10, IC_D6.9) - NET_C(IC_B6.12, IC_N6.5) - NET_C(IC_B6.2, IC_N6.6) + NET_C(IC_B6.2, IC_B6.6, IC_D6.9) + NET_C(IC_B6.4, IC_B6.3, IC_N6.5) + NET_C(IC_B6.12, IC_B6.8, IC_D6.8) + NET_C(IC_B6.10, IC_B6.11, IC_N6.6) NET_C(IC_D6.10, IC_D6.11) - NET_C(ATTRACT, IC_D6.12) + NET_C(ATTRACTQ, IC_D6.12) NET_C(IC_D6.13, IC_J6.12, IC_J6.13, IC_J6.1) NET_C(IC_J6.9, IC_J6.2) @@ -392,23 +391,21 @@ NETLIST_START(tank) NET_C(IC_E6.3, IC_N6.3) NET_C(IC_N6.4, IC_N6.2) - NET_C(IC_N6.1, COINAGE1.2) - NET_C(GND, COINAGE1.1, R48A.1) - NET_C(R48A.2, COINAGE1.Q, IC_D6.3) + NET_C(GND, IC_D6.3) NET_C(COINQ, IC_D6.2) ALIAS(START, IC_D6.1) // Game Timer / Attract NET_C(V5, PLAYTIME.2, PLAYTIME.3) - NET_C(COINAGE2.1, PLAYTIME.1, R54A.1) - NET_C(COINAGE2.Q, R53A.1) + NET_C(PLAYTIME.1, R54A.1, R53A.1) NET_C(R54A.2, IC_H6.6, IC_H6.7, R53A.2, R60A.1, C25.1) NET_C(R60A.2, Q2.B) - NET_C(GND, COINAGE2.2, C25.2, Q3.E, Q4.E, C24.2) + NET_C(GND, C25.2, Q3.E, Q4.E, C24.2) NET_C(IC_H6.5, C24.1, R59A.1) - NET_C(R59A.2, Q2.E, R56A.2, R63A.1, Q3.C, Q4.B) + NET_C(R59A.2, R63A.1, Q2.E) NET_C(V5, R56A.1, R55A.1) + NET_C(R56A.2, Q3.C, Q4.B) NET_C(R63A.2, R55A.2, Q4.C, IC_H3.5) ALIAS(GNE, IC_H3.6) NET_C(IC_H6.4, ATTRACTQ) @@ -911,9 +908,9 @@ NETLIST_START(tank) NET_C(P1D4S, IC_F8.5) NET_C(P2D4S, IC_F8.6) NET_C(P1T2, IC_F8.14) - NET_C(P1T2, IC_F8.13) + NET_C(P2T2, IC_F8.13) NET_C(P1T3, IC_F8.11) - NET_C(P1T3, IC_F8.10) + NET_C(P2T3, IC_F8.10) NET_C(P1T4, IC_H8.13) NET_C(P2T4, IC_H8.1) @@ -1037,7 +1034,8 @@ NETLIST_START(tank) TTL_7406_DIP(IC_M10) TTL_7406_DIP(IC_N13) NET_C(VCC, IC_M10.14, IC_N13.14) - NET_C(GND, IC_M10.7, IC_N13.7, R19.2, R20.2, R21.2, R22.2, R23.2, R24.2, R25.2, R26.2) + NET_C(GND, IC_M10.7) + NET_C(GND, IC_N13.7, R19.2, R20.2, R21.2, R22.2, R23.2, R24.2, R25.2, R26.2) NET_C(IC_R10.16, R19.1, IC_M10.9) NET_C(IC_R10.17, R20.1, IC_M10.5) NET_C(IC_R10.18, R21.1, IC_M10.11) @@ -1108,10 +1106,20 @@ NETLIST_START(tank) NET_C(GND, C2.2) NET_C(R5V.2, R34V.2, R6V.2, R3V.2, R4V.2, CR1.A, RVID.1) NET_C(CR1.K, COMP_SYNC) + //RES(RPROBE, 220) + //NET_C(RPROBE.2, RVID.1) + //ALIAS(VIDEO_PROBE, RPROBE.1) RES(RVID, RES_K(10)) NET_C(RVID.2, GND) ALIAS(VIDEO_OUT, RVID.1) + // Video Probe + //NET_C(PFLDQ, VIDEO_PROBE) + //TTL_7404_GATE(PROBE_BUF1) + //TTL_7404_GATE(PROBE_BUF2) + //NET_C(VCC, PROBE_BUF1.VCC, PROBE_BUF2.VCC) + //NET_C(GND, PROBE_BUF1.GND, PROBE_BUF2.GND) + // Playfield & Score Load NET_C(V_INFO, IC_H13.1) NET_C(V32, IC_H13.2) @@ -1912,13 +1920,12 @@ NETLIST_START(tank) NET_C(GND, IC_M13.3) NET_C(GND, IC_L11.13, IC_L11.14) NET_C(VCC, IC_L11.15) - NET_C(VCC, IC_N4.1, IC_N4.3) + NET_C(GND, IC_N4.1, IC_N4.3) NET_C(GND, IC_A6.11, IC_A6.13) NET_C(GND, IC_N6.11, IC_N6.12) NET_C(GND, IC_J7.5, IC_J7.6) NET_C(GND, IC_F13.1, IC_F13.2) NET_C(VCC, IC_J11.9, IC_J11.11, IC_J11.13) - NET_C(VCC, IC_B6.9, IC_B6.3) NET_C(VCC, IC_J3.9) NET_C(VCC, IC_N13.1, IC_N13.13) NETLIST_END() \ No newline at end of file -- cgit v1.2.3