mirror of
https://github.com/holub/mame
synced 2025-06-09 22:33:00 +03:00
(MAME)New game added
----------------- Breakout [Couriersud, DICE Team]
This commit is contained in:
parent
5f7587dd9e
commit
e482d3f40e
@ -370,7 +370,8 @@ void netlist_mame_device_t::device_clock_changed()
|
||||
//printf("device_clock_changed\n");
|
||||
m_div = netlist_time::from_hz(clock()).as_raw();
|
||||
//m_rem = 0;
|
||||
NL_VERBOSE_OUT(("Setting clock %" I64FMT "d and divisor %d\n", clockfreq, m_div));
|
||||
//NL_VERBOSE_OUT(("Setting clock %" I64FMT "d and divisor %d\n", clock(), m_div));
|
||||
NL_VERBOSE_OUT(("Setting clock %d and divisor %d\n", clock(), m_div));
|
||||
//printf("Setting clock %d and divisor %d\n", clock(), m_div);
|
||||
}
|
||||
|
||||
|
@ -9,6 +9,51 @@
|
||||
#define R_OFF (1.0 / netlist().gmin())
|
||||
#define R_ON 0.01
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
// SWITCH
|
||||
// ----------------------------------------------------------------------------------------
|
||||
|
||||
NETLIB_START(switch1)
|
||||
{
|
||||
register_sub(m_R, "R");
|
||||
|
||||
register_param("POS", m_POS, 0);
|
||||
|
||||
register_subalias("1", m_R.m_P);
|
||||
register_subalias("2", m_R.m_N);
|
||||
}
|
||||
|
||||
NETLIB_RESET(switch1)
|
||||
{
|
||||
m_R.do_reset();
|
||||
|
||||
m_R.set_R(R_OFF);
|
||||
}
|
||||
|
||||
NETLIB_UPDATE(switch1)
|
||||
{
|
||||
if (m_POS.Value() == 0)
|
||||
{
|
||||
m_R.set_R(R_OFF);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_R.set_R(R_ON);
|
||||
}
|
||||
|
||||
m_R.update_dev();
|
||||
}
|
||||
|
||||
NETLIB_UPDATE_PARAM(switch1)
|
||||
{
|
||||
update();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------------------
|
||||
// SWITCH2
|
||||
// ----------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
NETLIB_START(switch2)
|
||||
{
|
||||
register_sub(m_R[0], "R1");
|
||||
|
@ -17,6 +17,9 @@
|
||||
// Macros
|
||||
// ----------------------------------------------------------------------------------------
|
||||
|
||||
#define SWITCH(_name) \
|
||||
NET_REGISTER_DEV(switch1, _name)
|
||||
|
||||
#define SWITCH2(_name) \
|
||||
NET_REGISTER_DEV(switch2, _name)
|
||||
|
||||
@ -24,6 +27,12 @@
|
||||
// Devices ...
|
||||
// ----------------------------------------------------------------------------------------
|
||||
|
||||
NETLIB_DEVICE_WITH_PARAMS(switch1,
|
||||
NETLIB_NAME(R_base) m_R;
|
||||
|
||||
netlist_param_int_t m_POS;
|
||||
);
|
||||
|
||||
NETLIB_DEVICE_WITH_PARAMS(switch2,
|
||||
NETLIB_NAME(R_base) m_R[2];
|
||||
|
||||
@ -32,5 +41,4 @@ NETLIB_DEVICE_WITH_PARAMS(switch2,
|
||||
|
||||
|
||||
|
||||
|
||||
#endif /* NLD_SWITCHES_H_ */
|
||||
|
@ -89,6 +89,7 @@ void nl_initialize_factory(netlist_factory_t &factory)
|
||||
ENTRY(mainclock, MAINCLOCK, "FREQ")
|
||||
ENTRY(solver, SOLVER, "FREQ")
|
||||
ENTRY(gnd, GND, "-")
|
||||
ENTRY(switch1, SWITCH, "-")
|
||||
ENTRY(switch2, SWITCH2, "-")
|
||||
ENTRY(nicRSFF, NETDEV_RSFF, "+S,R")
|
||||
ENTRY(nicDelay, NETDEV_DELAY, "-")
|
||||
|
@ -5,7 +5,8 @@
|
||||
|
||||
#include "nld_74175.h"
|
||||
|
||||
static const netlist_time delay[2] = { NLTIME_FROM_NS(40), NLTIME_FROM_NS(25) };
|
||||
static const netlist_time delay[2] = { NLTIME_FROM_NS(25), NLTIME_FROM_NS(25) };
|
||||
static const netlist_time delay_clear[2] = { NLTIME_FROM_NS(40), NLTIME_FROM_NS(25) };
|
||||
|
||||
NETLIB_UPDATE(74175)
|
||||
{
|
||||
@ -13,8 +14,8 @@ NETLIB_UPDATE(74175)
|
||||
{
|
||||
for (int i=0; i<4; i++)
|
||||
{
|
||||
OUTLOGIC(m_Q[i], 0, delay[0]);
|
||||
OUTLOGIC(m_QQ[i], 1, delay[1]);
|
||||
OUTLOGIC(m_Q[i], 0, delay_clear[0]);
|
||||
OUTLOGIC(m_QQ[i], 1, delay_clear[1]);
|
||||
}
|
||||
}
|
||||
else if (!m_last && INPLOGIC(m_CLK))
|
||||
@ -23,7 +24,7 @@ NETLIB_UPDATE(74175)
|
||||
{
|
||||
UINT8 d = INPLOGIC(m_D[i]);
|
||||
OUTLOGIC(m_Q[i], d, delay[d]);
|
||||
OUTLOGIC(m_QQ[i], !d, delay[!d]);
|
||||
OUTLOGIC(m_QQ[i], d ^ 1, delay[d ^ 1]);
|
||||
}
|
||||
}
|
||||
m_last = INPLOGIC(m_CLK);
|
||||
|
@ -12,13 +12,13 @@ NETLIB_START(7432_dip)
|
||||
register_sub(m_3, "3");
|
||||
register_sub(m_4, "4");
|
||||
|
||||
register_subalias("1", m_1.m_Q[0]);
|
||||
register_subalias("2", m_1.m_i[0]);
|
||||
register_subalias("3", m_1.m_i[1]);
|
||||
register_subalias("3", m_1.m_Q[0]);
|
||||
register_subalias("1", m_1.m_i[0]);
|
||||
register_subalias("2", m_1.m_i[1]);
|
||||
|
||||
register_subalias("4", m_2.m_Q[0]);
|
||||
register_subalias("5", m_2.m_i[0]);
|
||||
register_subalias("6", m_2.m_i[1]);
|
||||
register_subalias("6", m_2.m_Q[0]);
|
||||
register_subalias("4", m_2.m_i[0]);
|
||||
register_subalias("5", m_2.m_i[1]);
|
||||
|
||||
register_subalias("9", m_3.m_i[0]);
|
||||
register_subalias("10", m_3.m_i[1]);
|
||||
|
@ -6,12 +6,12 @@
|
||||
* DM7432: Quad 2-Input OR Gates
|
||||
*
|
||||
* +--------------+
|
||||
* Y1 |1 ++ 14| VCC
|
||||
* A1 |2 13| B4
|
||||
* B1 |3 12| A4
|
||||
* Y2 |4 7432 11| Y4
|
||||
* A2 |5 10| B3
|
||||
* B2 |6 9| A3
|
||||
* A1 |1 ++ 14| VCC
|
||||
* B1 |2 13| B4
|
||||
* Y1 |3 12| A4
|
||||
* A2 |4 7432 11| Y4
|
||||
* B2 |5 10| B3
|
||||
* Y2 |6 9| A3
|
||||
* GND |7 8| Y3
|
||||
* +--------------+
|
||||
* ___
|
||||
|
@ -72,7 +72,7 @@ public:
|
||||
ATTR_COLD void help(int cur, nl_util::pstring_list list,
|
||||
UINT64 state, UINT64 ignore, UINT16 val, UINT8 timing_index[m_NO])
|
||||
{
|
||||
pstring elem = list[cur];
|
||||
pstring elem = list[cur].trim();
|
||||
int start = 0;
|
||||
int end = 0;
|
||||
int ign = 0;
|
||||
@ -93,6 +93,8 @@ public:
|
||||
end = 1;
|
||||
ign = 1;
|
||||
}
|
||||
else
|
||||
nl_assert_always(false, "unknown input value (not 0, 1, or X)");
|
||||
for (int i = start; i <= end; i++)
|
||||
{
|
||||
const UINT64 nstate = state | (i << cur);
|
||||
@ -133,21 +135,24 @@ public:
|
||||
{
|
||||
nl_util::pstring_list io = nl_util::split(ttline,"|");
|
||||
// checks
|
||||
nl_assert(io.count() == 3);
|
||||
nl_assert_always(io.count() == 3, "io.count mismatch");
|
||||
nl_util::pstring_list inout = nl_util::split(io[0], ",");
|
||||
nl_assert(inout.count() == m_num_bits);
|
||||
nl_assert_always(inout.count() == m_num_bits, "number of bits not matching");
|
||||
nl_util::pstring_list out = nl_util::split(io[1], ",");
|
||||
nl_assert(out.count() == m_NO);
|
||||
nl_assert_always(out.count() == m_NO, "output count not matching");
|
||||
nl_util::pstring_list times = nl_util::split(io[2], ",");
|
||||
nl_assert(times.count() == m_NO);
|
||||
nl_assert_always(times.count() == m_NO, "timing count not matching");
|
||||
|
||||
UINT16 val = 0;
|
||||
UINT8 tindex[m_NO];
|
||||
for (int j=0; j<m_NO; j++)
|
||||
{
|
||||
if (out[j].equals("1"))
|
||||
pstring outs = out[j].trim();
|
||||
if (outs.equals("1"))
|
||||
val = val | (1 << j);
|
||||
netlist_time t = netlist_time::from_nsec(times[j].as_long());
|
||||
else
|
||||
nl_assert_always(outs.equals("0"), "Unknown value (not 0 or 1");
|
||||
netlist_time t = netlist_time::from_nsec(times[j].trim().as_long());
|
||||
int k=0;
|
||||
while (m_ttp->m_timing_nt[k] != netlist_time::zero && m_ttp->m_timing_nt[k] != t)
|
||||
k++;
|
||||
|
@ -182,6 +182,8 @@ ATTR_COLD void netlist_base_t::start()
|
||||
{
|
||||
/* find the main clock and solver ... */
|
||||
|
||||
NL_VERBOSE_OUT(("Searching for mainclock and solver ...\n"));
|
||||
|
||||
m_mainclock = get_single_device<NETLIB_NAME(mainclock)>("mainclock");
|
||||
m_solver = get_single_device<NETLIB_NAME(solver)>("solver");
|
||||
m_gnd = get_single_device<NETLIB_NAME(gnd)>("gnd");
|
||||
|
@ -95,7 +95,6 @@ public:
|
||||
|
||||
#define CHIP_555_Astable(_name, _pdesc) \
|
||||
CHIP(# _name, NE555) \
|
||||
NET_C(_name.6, _name.2) \
|
||||
RES(_name ## _R1, (_pdesc)->r1) \
|
||||
RES(_name ## _R2, (_pdesc)->r2) \
|
||||
CAP(_name ## _C, (_pdesc)->c) \
|
||||
@ -103,6 +102,7 @@ public:
|
||||
NET_C(_name.7, _name ## _R2.1) \
|
||||
NET_C(_name.6, _name ## _R2.2) \
|
||||
NET_C(_name.6, _name ## _C.1) \
|
||||
NET_C(_name.2, _name ## _C.1) \
|
||||
NET_C(_name ## _R1.2, V5) \
|
||||
NET_CSTR(# _name "_C.2", "GND") \
|
||||
NET_C(_name.8, V5) \
|
||||
|
@ -711,9 +711,6 @@ void netlist_setup_t::start_devices()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
NL_VERBOSE_OUT(("Searching for mainclock and solver ...\n"));
|
||||
|
||||
netlist().start();
|
||||
}
|
||||
|
||||
|
@ -359,10 +359,6 @@ ROM_END
|
||||
|
||||
/* // 100% TTL - NO ROMS
|
||||
|
||||
ROM_START( breakout )
|
||||
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_END
|
||||
|
||||
ROM_START( goal4 )
|
||||
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_END
|
||||
@ -431,7 +427,6 @@ GAME(1974, tank, 0, atarikee, 0, driver_device, 0, ROT0, "Ata
|
||||
//GAME(1974, quack, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Qwak!/Quack [TTL]", GAME_IS_SKELETON)
|
||||
|
||||
// 100% TLL
|
||||
//GAME(1976, breakout, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Breakout [TTL]",GAME_IS_SKELETON)
|
||||
//GAME(1974, coupedem, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Coupe De Monde [TTL]",GAME_IS_SKELETON)
|
||||
//GAME(1975, goal4, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Goal 4/World Cup/Coupe De Monde [TTL]",GAME_IS_SKELETON)
|
||||
//GAME(1973, gotchaat, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Gotcha [TTL]",GAME_IS_SKELETON) //?
|
||||
|
@ -143,14 +143,26 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CHIP("S3", DIPSWITCH, &dipswitch3_desc)
|
||||
CHIP("S4", DIPSWITCH, &dipswitch4_desc)
|
||||
#endif
|
||||
|
||||
// DIPSWITCH - Free game
|
||||
SWITCH(S1_1)
|
||||
SWITCH(S1_2)
|
||||
SWITCH(S1_3)
|
||||
SWITCH(S1_4)
|
||||
|
||||
SWITCH(S2) // Cocktail
|
||||
SWITCH(S3) // 2 Plays / 25c
|
||||
SWITCH2(S4) // Three Balls / 5 Balls
|
||||
|
||||
SOLVER(Solver, 48000)
|
||||
PARAM(Solver.ACCURACY, 1e-7) // works and is sufficient
|
||||
PARAM(Solver.ACCURACY, 1e-8) // less accuracy and diode will not work
|
||||
//CHIP("CLOCK", CLOCK_14_318_MHZ)
|
||||
MAINCLOCK(Y1, 14318000.0)
|
||||
|
||||
ANALOG_INPUT(V5, 5)
|
||||
#define VCC "V5", Q
|
||||
#define GND "GND", Q
|
||||
ALIAS(VCC, V5)
|
||||
//#define VCC "V5", Q
|
||||
#define GNDD "GND", Q
|
||||
|
||||
//CHIP("Y1", CLOCK_14_318_MHZ) //Y1
|
||||
|
||||
@ -290,9 +302,11 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CHIP_INPUT_ACTIVE_LOW(COIN1)
|
||||
|
||||
//CHIP("COIN2", COIN_INPUT)
|
||||
CHIP_INPUT_ACTIVE_LOW(COIN2)
|
||||
|
||||
//CHIP("START", START_INPUT)
|
||||
CHIP_INPUT_ACTIVE_HIGH(START)
|
||||
CHIP_INPUT_ACTIVE_LOW(START1)
|
||||
CHIP_INPUT_ACTIVE_HIGH(START2)
|
||||
|
||||
//CHIP("SERVE", BUTTONS1_INPUT)
|
||||
CHIP_INPUT_ACTIVE_LOW(SERVE) // Active low?
|
||||
@ -516,22 +530,22 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION(P, "F6", 1)
|
||||
CONNECTION(P, "F6", 10)
|
||||
CONNECTION(P, "F6", 9)
|
||||
CONNECTION(GND, "F6", 14)
|
||||
CONNECTION(GNDD, "F6", 14)
|
||||
CONNECTION("F7", 13, "J9", 2)
|
||||
CONNECTION(VSYNC, "J9", 1)
|
||||
CONNECTION("A7", 9, "J9", 13)
|
||||
CONNECTION("J9", 12, "F6", 4)
|
||||
CONNECTION("J9", 12, "A7", 11)
|
||||
CONNECTION(GND, "A7", 12)
|
||||
CONNECTION(GNDD, "A7", 12)
|
||||
CONNECTION(ATTRACT_n, "A7", 13)
|
||||
CONNECTION("J9", 12, "A8", 11)
|
||||
CONNECTION(GND, "A8", 12)
|
||||
CONNECTION(GNDD, "A8", 12)
|
||||
CONNECTION(ATTRACT_n, "A8", 13)
|
||||
CONNECTION(VB_HIT_n, "A7", 5)
|
||||
CONNECTION(GND, "A7", 4)
|
||||
CONNECTION(GNDD, "A7", 4)
|
||||
CONNECTION(ATTRACT_n, "A7", 3)
|
||||
CONNECTION(BP_HIT_n, "A8", 5)
|
||||
CONNECTION(GND, "A8", 4)
|
||||
CONNECTION(GNDD, "A8", 4)
|
||||
CONNECTION(ATTRACT_n, "A8", 3)
|
||||
CONNECTION("A8", 6, "B9", 13)
|
||||
CONNECTION(P_HIT_SOUND, "B9", 12)
|
||||
@ -540,6 +554,7 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION("A7", 6, "B9", 4)
|
||||
CONNECTION(VB_HIT_SOUND, "B9", 5)
|
||||
|
||||
#if 0
|
||||
CONNECTION(GND, "S1", 1)
|
||||
CONNECTION(P, "S1", 2)
|
||||
CONNECTION(GND, "S1", 4)
|
||||
@ -548,25 +563,53 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION(P, "S1", 11)
|
||||
CONNECTION(GND, "S1", 9)
|
||||
CONNECTION(P, "S1", 10)
|
||||
#endif
|
||||
NET_C(S1_1.1, GND)
|
||||
NET_C(S1_2.1, GND)
|
||||
NET_C(S1_3.1, GND)
|
||||
NET_C(S1_4.1, GND)
|
||||
|
||||
RES(R7, RES_K(2.7))
|
||||
RES(R8, RES_K(2.7))
|
||||
RES(R9, RES_K(2.7))
|
||||
RES(R10, RES_K(2.7))
|
||||
|
||||
NET_C(R7.1, V5)
|
||||
NET_C(R8.1, V5)
|
||||
NET_C(R9.1, V5)
|
||||
NET_C(R10.1, V5)
|
||||
|
||||
NET_C(S1_1.2, R7.2)
|
||||
NET_C(S1_2.2, R8.2)
|
||||
NET_C(S1_3.2, R9.2)
|
||||
NET_C(S1_4.2, R10.2)
|
||||
|
||||
//Free Game Selector
|
||||
CONNECTION(I1, "K7", 2)
|
||||
CONNECTION("S1", 15, "K7", 1)
|
||||
//CONNECTION("S1", 15, "K7", 1)
|
||||
CONNECTION("S1_1", 2, "K7", 1)
|
||||
CONNECTION(J1, "K7", 12)
|
||||
CONNECTION("S1", 14, "K7", 13)
|
||||
//CONNECTION("S1", 14, "K7", 13)
|
||||
CONNECTION("S1_2", 2, "K7", 13)
|
||||
CONNECTION(K1, "K7", 5)
|
||||
CONNECTION("S1", 6, "K7", 4)
|
||||
//CONNECTION("S1", 6, "K7", 4)
|
||||
CONNECTION("S1_3", 2, "K7", 4)
|
||||
CONNECTION(L1, "K7", 9)
|
||||
CONNECTION("S1", 7, "K7", 10)
|
||||
//CONNECTION("S1", 7, "K7", 10)
|
||||
CONNECTION("S1_4", 2, "K7", 10)
|
||||
|
||||
CONNECTION(I2, "L7", 2)
|
||||
CONNECTION("S1", 15, "L7", 1)
|
||||
//CONNECTION("S1", 15, "L7", 1)
|
||||
CONNECTION("S1_1", 2, "L7", 1)
|
||||
CONNECTION(J2, "L7", 12)
|
||||
CONNECTION("S1", 14, "L7", 13)
|
||||
//CONNECTION("S1", 14, "L7", 13)
|
||||
CONNECTION("S1_2", 2, "L7", 13)
|
||||
CONNECTION(K2, "L7", 5)
|
||||
CONNECTION("S1", 6, "L7", 4)
|
||||
//CONNECTION("S1", 6, "L7", 4)
|
||||
CONNECTION("S1_3", 2, "L7", 4)
|
||||
CONNECTION(L2, "L7", 9)
|
||||
CONNECTION("S1", 7, "L7", 10)
|
||||
//CONNECTION("S1", 7, "L7", 10)
|
||||
CONNECTION("S1_4", 2, "L7", 10)
|
||||
|
||||
|
||||
CONNECTION("K7", 3, "J7", 13)
|
||||
@ -599,12 +642,12 @@ CIRCUIT_LAYOUT( breakout )
|
||||
|
||||
CONNECTION(P, "K9", 8)
|
||||
CONNECTION("J8", 9, "K9", 9)
|
||||
CONNECTION(GND, "K9", 11)
|
||||
CONNECTION(GNDD, "K9", 11)
|
||||
CONNECTION(HSYNC_n, "K9", 10)
|
||||
|
||||
CONNECTION(P, "K9", 1)
|
||||
CONNECTION("J8", 4, "K9", 12)
|
||||
CONNECTION(GND, "K9", 4)
|
||||
CONNECTION(GNDD, "K9", 4)
|
||||
CONNECTION(HSYNC_n, "K9", 13)
|
||||
|
||||
CONNECTION("K9", 6, "L9", 12)
|
||||
@ -617,25 +660,25 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION(V4_d, "N7", 2)
|
||||
CONNECTION("N8", 6, "N7", 1)
|
||||
//
|
||||
CONNECTION(GND, "M2", 13)
|
||||
CONNECTION(GNDD, "M2", 13)
|
||||
CONNECTION(V1_d, "M2", 10)
|
||||
CONNECTION(V2_d, "M2", 8)
|
||||
CONNECTION(V4_d, "M2", 3)
|
||||
CONNECTION(V8_d, "M2", 1)
|
||||
CONNECTION(GND, "M2", 11)
|
||||
CONNECTION(GNDD, "M2", 11)
|
||||
CONNECTION(P2_CONDITIONAL, "M2", 7)
|
||||
CONNECTION(GND, "M2", 4)
|
||||
CONNECTION(GND, "M2", 16)
|
||||
CONNECTION(GNDD, "M2", 4)
|
||||
CONNECTION(GNDD, "M2", 16)
|
||||
|
||||
CONNECTION("M2", 14, "N2", 13)
|
||||
CONNECTION(V16_d, "N2", 10)
|
||||
CONNECTION(V32_d, "N2", 8)
|
||||
CONNECTION(V64_d, "N2", 3)
|
||||
CONNECTION(V128_d, "N2", 1)
|
||||
CONNECTION(GND, "N2", 11)
|
||||
CONNECTION(GNDD, "N2", 11)
|
||||
CONNECTION(P2_CONDITIONAL, "N2", 7)
|
||||
CONNECTION(GND, "N2", 4)
|
||||
CONNECTION(GND, "N2", 16)
|
||||
CONNECTION(GNDD, "N2", 4)
|
||||
CONNECTION(GNDD, "N2", 16)
|
||||
|
||||
CONNECTION("M2", 6, "M3", 2)
|
||||
CONNECTION(P2_CONDITIONAL, "M3", 1)
|
||||
@ -697,9 +740,9 @@ CIRCUIT_LAYOUT( breakout )
|
||||
|
||||
CONNECTION(P, "L1", 1)
|
||||
CONNECTION(P, "L1", 3)
|
||||
CONNECTION(GND, "L1", 4)
|
||||
CONNECTION(GNDD, "L1", 4)
|
||||
CONNECTION(P, "L1", 5)
|
||||
CONNECTION(GND, "L1", 6)
|
||||
CONNECTION(GNDD, "L1", 6)
|
||||
CONNECTION(VERT_TRIG_n, "L1", 9)
|
||||
CONNECTION(P, "L1", 10)
|
||||
CONNECTION(DICECLOCK, "L1", 2)
|
||||
@ -725,10 +768,10 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION(VSYNC_n, "H1", 9)
|
||||
|
||||
CONNECTION(P, "M1", 1)
|
||||
CONNECTION(GND, "M1", 3)
|
||||
CONNECTION(GND, "M1", 4)
|
||||
CONNECTION(GNDD, "M1", 3)
|
||||
CONNECTION(GNDD, "M1", 4)
|
||||
CONNECTION(P, "M1", 5)
|
||||
CONNECTION(GND, "M1", 6)
|
||||
CONNECTION(GNDD, "M1", 6)
|
||||
CONNECTION(VERT_TRIG_n, "M1", 9)
|
||||
CONNECTION(DICECLOCK, "M1", 2)
|
||||
CONNECTION("L1", 15, "M1", 7)
|
||||
@ -778,7 +821,7 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION(C1, "L5", 5)
|
||||
CONNECTION(G1, "L5", 6)
|
||||
CONNECTION(K1, "L5", 7)
|
||||
CONNECTION(GND, "L5", 9)
|
||||
CONNECTION(GNDD, "L5", 9)
|
||||
CONNECTION(H32_n, "L5", 10)
|
||||
CONNECTION(V16, "L5", 11)
|
||||
CONNECTION(V64, "L5", 12)
|
||||
@ -787,11 +830,11 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION(D2, "K5", 1)
|
||||
CONNECTION(H02, "K5", 2)
|
||||
CONNECTION(L2, "K5", 3)
|
||||
CONNECTION(GND, "K5", 4)
|
||||
CONNECTION(GNDD, "K5", 4)
|
||||
CONNECTION(D1, "K5", 5)
|
||||
CONNECTION(H01, "K5", 6)
|
||||
CONNECTION(L1, "K5", 7)
|
||||
CONNECTION(GND, "K5", 9)
|
||||
CONNECTION(GNDD, "K5", 9)
|
||||
CONNECTION(H32_n, "K5", 10)
|
||||
CONNECTION(V16, "K5", 11)
|
||||
CONNECTION(V64, "K5", 12)
|
||||
@ -806,13 +849,13 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION(H32, "J5", 5)
|
||||
|
||||
CONNECTION("J5", 13, "H5", 1)
|
||||
CONNECTION(GND, "H5", 2)
|
||||
CONNECTION(GND, "H5", 3)
|
||||
CONNECTION(GNDD, "H5", 2)
|
||||
CONNECTION(GNDD, "H5", 3)
|
||||
CONNECTION("J5", 14, "H5", 4)
|
||||
CONNECTION(GND, "H5", 5)
|
||||
CONNECTION(GND, "H5", 6)
|
||||
CONNECTION(GNDD, "H5", 5)
|
||||
CONNECTION(GNDD, "H5", 6)
|
||||
CONNECTION("J5", 10, "H5", 7)
|
||||
CONNECTION(GND, "H5", 9)
|
||||
CONNECTION(GNDD, "H5", 9)
|
||||
|
||||
CONNECTION(V4, "K4", 12)
|
||||
CONNECTION(V8, "K4", 13)
|
||||
@ -828,12 +871,12 @@ CIRCUIT_LAYOUT( breakout )
|
||||
|
||||
CONNECTION("J5", 12 , "J4", 1)
|
||||
CONNECTION("J5", 11, "J4", 2)
|
||||
CONNECTION(GND, "J4", 3)
|
||||
CONNECTION(GND, "J4", 4)
|
||||
CONNECTION(GNDD, "J4", 3)
|
||||
CONNECTION(GNDD, "J4", 4)
|
||||
CONNECTION("J5", 15, "J4", 5)
|
||||
CONNECTION("J5", 9, "J4", 6)
|
||||
CONNECTION(GND, "J4", 7)
|
||||
CONNECTION(GND, "J4", 9)
|
||||
CONNECTION(GNDD, "J4", 7)
|
||||
CONNECTION(GNDD, "J4", 9)
|
||||
CONNECTION("L4", 6, "J4", 10)
|
||||
CONNECTION(H8, "J4", 11)
|
||||
CONNECTION(V4, "J4", 12)
|
||||
@ -872,10 +915,16 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION("M8", 6, "H4", 5)
|
||||
CONNECTION("F2", 8, "H4", 4)
|
||||
|
||||
#if 0
|
||||
CONNECTION(PAD_EN_n, "PAD_EN_BUF", 1)
|
||||
|
||||
CONNECTION("PAD_EN_BUF", 2, "C9", 4)
|
||||
CONNECTION("PAD_EN_BUF", 2, "C9", 2)
|
||||
#else
|
||||
CONNECTION(PAD_EN_n, "C9", 4)
|
||||
CONNECTION(PAD_EN_n, "C9", 2)
|
||||
#endif
|
||||
|
||||
CONNECTION(BTB_HIT_n, "C5", 3)
|
||||
CONNECTION(P, "F5", 10)
|
||||
CONNECTION(P, "F5", 12)
|
||||
@ -929,15 +978,23 @@ CIRCUIT_LAYOUT( breakout )
|
||||
|
||||
//SCORE
|
||||
CONNECTION(SCI_n, "D3", 4)
|
||||
CONNECTION(GND, "D3", 2)
|
||||
CONNECTION(GND, "D3", 3)
|
||||
CONNECTION(GND, "D3", 1)
|
||||
CONNECTION(GNDD, "D3", 2)
|
||||
CONNECTION(GNDD, "D3", 3)
|
||||
CONNECTION(GNDD, "D3", 1)
|
||||
|
||||
//PLAYER2_CONDITIONAL
|
||||
CONNECTION(PLAYER_2, "H7", 10)
|
||||
CONNECTION(GND, "S2", 1)
|
||||
#if 0
|
||||
CONNECTION(GNDD, "S2", 1)
|
||||
CONNECTION(P, "S2", 2)
|
||||
CONNECTION("S2", 3, "H7", 9)
|
||||
#else
|
||||
NET_C(S2.2, GND)
|
||||
NET_C(S2.1, H7.9)
|
||||
RES(R18, RES_K(1))
|
||||
NET_C(R18.2, V5)
|
||||
NET_C(R18.1, S2.1)
|
||||
#endif
|
||||
|
||||
//A-L 1 and 2
|
||||
CONNECTION(SET_BRICKS_n, "B3", 2)
|
||||
@ -1008,7 +1065,7 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION(START_GAME, "N9", 14)
|
||||
CONNECTION(H8_n, "N9", 1)
|
||||
CONNECTION(H16_n, "N9", 10)
|
||||
CONNECTION(GND, "N9", 9)
|
||||
CONNECTION(GNDD, "N9", 9)
|
||||
|
||||
CONNECTION("N9", 13, "N7", 13)
|
||||
CONNECTION(SCLOCK, "N7", 12)
|
||||
@ -1028,7 +1085,7 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION(CX0, "C7", 3)
|
||||
CONNECTION(CX1, "C7", 4)
|
||||
CONNECTION(X2, "C7", 5)
|
||||
CONNECTION(GND, "C7", 6)
|
||||
CONNECTION(GNDD, "C7", 6)
|
||||
CONNECTION("D8", 8, "C7", 9)
|
||||
CONNECTION("C7", 15, "C8", 7)
|
||||
CONNECTION("C7", 11, "C8", 10)
|
||||
@ -1050,7 +1107,7 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION(Y0, "B7", 3)
|
||||
CONNECTION(Y1, "B7", 4)
|
||||
CONNECTION(Y2, "B7", 5)
|
||||
CONNECTION(GND, "B7", 6)
|
||||
CONNECTION(GNDD, "B7", 6)
|
||||
CONNECTION("D8", 8, "B7", 9)
|
||||
CONNECTION(DICECLOCK, "B7", 2)
|
||||
CONNECTION("B7", 15, "B8", 7)
|
||||
@ -1081,12 +1138,14 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION(P, "F1", 1)
|
||||
CONNECTION(P, "F1", 7)
|
||||
CONNECTION(P, "F1", 10)
|
||||
CONNECTION(GND, "F1", 3)
|
||||
CONNECTION(GNDD, "F1", 3)
|
||||
CONNECTION(P, "F1", 4)
|
||||
CONNECTION(GND, "F1", 5)
|
||||
CONNECTION(GND, "F1", 6)
|
||||
CONNECTION(GNDD, "F1", 5)
|
||||
CONNECTION(GNDD, "F1", 6)
|
||||
CONNECTION("E1", 6, "F1", 9)
|
||||
CONNECTION("Y1", 1, "F1", 2)
|
||||
|
||||
//CONNECTION("Y1", 1, "F1", 2)
|
||||
NET_C(Y1.Q, F1.2)
|
||||
|
||||
// RH and LH Sides
|
||||
CONNECTION(V128, "N4", 1)
|
||||
@ -1139,16 +1198,25 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION("H8", 9, "J9", 9)
|
||||
CONNECTION(V16_d, "J8", 14)
|
||||
CONNECTION("J8", 13, "J9", 10)
|
||||
|
||||
#if 0
|
||||
CONNECTION(P, "S3", 1)
|
||||
CONNECTION(V4_d, "S3", 2)
|
||||
CONNECTION("S3", 3, "J9", 11)
|
||||
#else
|
||||
CONNECTION(V4_d, "S3", 1)
|
||||
CONNECTION("S3", 2, "J9", 11)
|
||||
RES(R15, RES_K(1))
|
||||
NET_C(R15.1, V5)
|
||||
NET_C(R15.2, S3.2)
|
||||
#endif
|
||||
|
||||
CONNECTION("J9", 8, "L9", 5)
|
||||
CONNECTION("J9", 6, "L9", 4)
|
||||
|
||||
//COIN2 circuit
|
||||
//CONNECTION("COIN2", 1, "F9", 1)
|
||||
CONNECTION(GND, "F9", 1) //TODO: coin2 not implemented
|
||||
CONNECTION("COIN2", 1, "F9", 1)
|
||||
//CONNECTION(GNDD, "F9", 1) //TODO: coin2 not implemented
|
||||
|
||||
CONNECTION(CSW2, "F9", 3)
|
||||
CONNECTION(CSW2, "H9", 10)
|
||||
@ -1175,7 +1243,8 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION("E9", 8, "H1", 2)
|
||||
|
||||
//Start2 Input
|
||||
CONNECTION("START", 2, "E9", 11)
|
||||
//CONNECTION("START", 2, "E9", 11)
|
||||
CONNECTION("START2", 1, "E9", 11)
|
||||
CONNECTION("E9", 10, "E8", 12)
|
||||
CONNECTION(P, "E8", 10)
|
||||
CONNECTION(V64I, "E8", 11)
|
||||
@ -1188,7 +1257,8 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION("E7", 13, "E8", 13)
|
||||
|
||||
//Start1 Input
|
||||
CONNECTION("START", 1, "E9", 3)
|
||||
//CONNECTION("START", 1, "E9", 3)
|
||||
CONNECTION("START1", 1, "E9", 3)
|
||||
CONNECTION("E9", 4, "E8", 2)
|
||||
CONNECTION(P, "E8", 4)
|
||||
CONNECTION(V64_d, "E8", 3)
|
||||
@ -1419,9 +1489,9 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION(START_GAME1_n, "F4", 13)
|
||||
|
||||
CONNECTION("F4", 6, "F3", 5)
|
||||
CONNECTION(GND, "F3", 4)
|
||||
CONNECTION(GNDD, "F3", 4)
|
||||
CONNECTION("F4", 8, "F3", 11)
|
||||
CONNECTION(GND, "F3", 12)
|
||||
CONNECTION(GNDD, "F3", 12)
|
||||
|
||||
CONNECTION(P, "F3", 3)
|
||||
CONNECTION(P, "F3", 13)
|
||||
@ -1484,9 +1554,10 @@ CIRCUIT_LAYOUT( breakout )
|
||||
|
||||
CONNECTION(START_GAME1_n, "B4", 1)
|
||||
CONNECTION(BALL_A, "A4", 2)
|
||||
CONNECTION(BALL_B, "S4", 1)
|
||||
CONNECTION(BALL_C, "S4", 2)
|
||||
CONNECTION("S4", 3, "A4", 1)
|
||||
CONNECTION(BALL_B, "S4", 1) // Three balls
|
||||
CONNECTION(BALL_C, "S4", 2) // Five balls
|
||||
//CONNECTION("S4", 3, "A4", 1)
|
||||
NET_C(S4.Q, A4.1)
|
||||
CONNECTION("A4", 3, "C37", 1)
|
||||
|
||||
CONNECTION(SERVE_WAIT_n, "A4", 5)
|
||||
@ -1505,6 +1576,7 @@ CIRCUIT_LAYOUT( breakout )
|
||||
CONNECTION(PSYNC, "B9", 1)
|
||||
CONNECTION(VSYNC_n, "B9", 2)
|
||||
|
||||
#if 0
|
||||
//CONNECTION("VIDEO", 1, "E2", 11)
|
||||
CONNECTION("VIDEO", 2, PLAYFIELD)
|
||||
CONNECTION("VIDEO", 3, BSYNC)
|
||||
@ -1514,14 +1586,61 @@ CIRCUIT_LAYOUT( breakout )
|
||||
|
||||
CONNECTION("VIDEO", Video::HBLANK_PIN, HSYNC)
|
||||
CONNECTION("VIDEO", Video::VBLANK_PIN, "E3", 10)
|
||||
#else
|
||||
RES(R41, RES_K(3.9))
|
||||
//RES(R42, RES_K(3.9))
|
||||
RES(R42, RES_K(3.9))
|
||||
RES(R43, RES_K(3.9))
|
||||
RES(R51, RES_K(3.9))
|
||||
RES(R52, RES_K(3.9))
|
||||
DIODE(CR6, "1N914")
|
||||
|
||||
NET_C(CR6.A, R41.1, R42.1, R43.1, R51.1, R52.1)
|
||||
CONNECTION("R51", 2, PLAYFIELD)
|
||||
CONNECTION("R43", 2, BSYNC)
|
||||
CONNECTION("R52", 2, SCORE)
|
||||
NET_C(R41.2, B9.3)
|
||||
NET_C(R42.2, V5)
|
||||
|
||||
NET_C(E2.11, CR6.K)
|
||||
|
||||
ALIAS(videomix, R41.1)
|
||||
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
// Audio Summing
|
||||
CONNECTION("AUDIO", 1, "B9", 11)
|
||||
CONNECTION("AUDIO", 2, "B9", 8)
|
||||
CONNECTION("AUDIO", 3, FREE_GAME_TONE)
|
||||
CONNECTION("AUDIO", 4, "B9", 6)
|
||||
#else
|
||||
RES(R36, RES_K(47))
|
||||
RES(R37, RES_K(47))
|
||||
RES(R38, RES_K(47))
|
||||
RES(R39, RES_K(47))
|
||||
CONNECTION("R36", 2, "B9", 11)
|
||||
CONNECTION("R38", 2, "B9", 8)
|
||||
CONNECTION("R39", 2, FREE_GAME_TONE)
|
||||
CONNECTION("R37", 2, "B9", 6)
|
||||
NET_C(R36.1, R37.1, R38.1, R39.1)
|
||||
ALIAS(sound, R36.1)
|
||||
|
||||
#endif
|
||||
|
||||
/* Not connected pins */
|
||||
|
||||
NET_C(ttlhigh, B4.3, B4.4, B4.5, B4.6)
|
||||
NET_C(ttlhigh, N6.3, N6.4, N6.5, N6.6)
|
||||
NET_C(ttlhigh, M6.3, M6.4, M6.5, M6.6)
|
||||
NET_C(ttlhigh, L6.3, L6.4, L6.5, L6.6)
|
||||
|
||||
NET_C(ttlhigh, H6.3, H6.4, H6.5, H6.6)
|
||||
NET_C(ttlhigh, K6.3, K6.4, K6.5, K6.6)
|
||||
NET_C(ttlhigh, J6.3, J6.4, J6.5, J6.6)
|
||||
|
||||
NET_C(ttlhigh, E1.9, E1.11)
|
||||
NET_C(ttlhigh, E2.1, E2.2)
|
||||
|
||||
#ifdef DEBUG
|
||||
// RAM access
|
||||
|
@ -50,16 +50,6 @@ TODO: please see netlist include files
|
||||
#define VBSTART (V_TOTAL)
|
||||
#define VBEND (16)
|
||||
|
||||
#if 0
|
||||
fixedfreq_interface fixedfreq_mode_pongX2 = {
|
||||
MASTER_CLOCK * 2,
|
||||
(H_TOTAL-67) * 2, (H_TOTAL-40) * 2, (H_TOTAL-8) * 2, (H_TOTAL) * 2,
|
||||
V_TOTAL-22,V_TOTAL-19,V_TOTAL-16,V_TOTAL,
|
||||
1, /* non-interlaced */
|
||||
0.31
|
||||
};
|
||||
#endif
|
||||
|
||||
enum input_changed_enum
|
||||
{
|
||||
IC_PADDLE1,
|
||||
@ -70,30 +60,19 @@ enum input_changed_enum
|
||||
IC_VR2
|
||||
};
|
||||
|
||||
#if 0
|
||||
#include "nl_pongd.inc"
|
||||
|
||||
#undef SRST
|
||||
#undef VCC
|
||||
#undef GND
|
||||
|
||||
#include "nl_pong.inc"
|
||||
#endif
|
||||
|
||||
NETLIST_EXTERNAL(pongdoubles);
|
||||
NETLIST_EXTERNAL(pong_fast);
|
||||
NETLIST_EXTERNAL(breakout);
|
||||
|
||||
class pong_state : public driver_device
|
||||
class ttl_mono_state : public driver_device
|
||||
{
|
||||
public:
|
||||
pong_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
ttl_mono_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_video(*this, "fixfreq"),
|
||||
|
||||
m_dac(*this, "dac"), /* just to have a sound device */
|
||||
m_sw1a(*this, "maincpu:sw1a"),
|
||||
m_sw1b(*this, "maincpu:sw1b")
|
||||
m_dac(*this, "dac") /* just to have a sound device */
|
||||
{
|
||||
}
|
||||
|
||||
@ -102,14 +81,6 @@ public:
|
||||
required_device<fixedfreq_device> m_video;
|
||||
required_device<dac_device> m_dac; /* just to have a sound device */
|
||||
|
||||
// sub devices
|
||||
required_device<netlist_mame_logic_input_t> m_sw1a;
|
||||
required_device<netlist_mame_logic_input_t> m_sw1b;
|
||||
|
||||
//UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
|
||||
|
||||
DECLARE_INPUT_CHANGED_MEMBER(input_changed);
|
||||
|
||||
NETDEV_ANALOG_CALLBACK_MEMBER(sound_cb)
|
||||
{
|
||||
//printf("snd %f\n", newval);
|
||||
@ -120,10 +91,56 @@ public:
|
||||
protected:
|
||||
|
||||
// driver_device overrides
|
||||
virtual void machine_start();
|
||||
virtual void machine_reset();
|
||||
virtual void machine_start() { };
|
||||
virtual void machine_reset() { };
|
||||
|
||||
virtual void video_start();
|
||||
virtual void video_start() { };
|
||||
|
||||
private:
|
||||
|
||||
};
|
||||
|
||||
class pong_state : public ttl_mono_state
|
||||
{
|
||||
public:
|
||||
pong_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: ttl_mono_state(mconfig, type, tag),
|
||||
m_sw1a(*this, "maincpu:sw1a"),
|
||||
m_sw1b(*this, "maincpu:sw1b")
|
||||
{
|
||||
}
|
||||
|
||||
// sub devices
|
||||
required_device<netlist_mame_logic_input_t> m_sw1a;
|
||||
required_device<netlist_mame_logic_input_t> m_sw1b;
|
||||
|
||||
DECLARE_INPUT_CHANGED_MEMBER(input_changed);
|
||||
|
||||
protected:
|
||||
|
||||
// driver_device overrides
|
||||
virtual void machine_start() { };
|
||||
virtual void machine_reset() { };
|
||||
virtual void video_start() { };
|
||||
|
||||
private:
|
||||
|
||||
};
|
||||
|
||||
class breakout_state : public ttl_mono_state
|
||||
{
|
||||
public:
|
||||
breakout_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: ttl_mono_state(mconfig, type, tag)
|
||||
{
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
// driver_device overrides
|
||||
virtual void machine_start() { };
|
||||
virtual void machine_reset() { };
|
||||
virtual void video_start() { };
|
||||
|
||||
private:
|
||||
|
||||
@ -135,20 +152,6 @@ static NETLIST_START(pong)
|
||||
|
||||
NETLIST_END()
|
||||
|
||||
void pong_state::machine_start()
|
||||
{
|
||||
}
|
||||
|
||||
void pong_state::machine_reset()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void pong_state::video_start()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
INPUT_CHANGED_MEMBER(pong_state::input_changed)
|
||||
{
|
||||
int numpad = (FPTR) (param);
|
||||
@ -216,6 +219,34 @@ static INPUT_PORTS_START( pongd )
|
||||
#endif
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( breakout )
|
||||
#if 0
|
||||
PORT_START( "PADDLE0" ) /* fake input port for player 1 paddle */
|
||||
PORT_BIT( 0xff, 0x00, IPT_PADDLE ) PORT_SENSITIVITY(2) PORT_KEYDELTA(100) PORT_CENTERDELTA(0) NETLIST_ANALOG_PORT_CHANGED("maincpu", "pot0")
|
||||
|
||||
PORT_START( "PADDLE1" ) /* fake input port for player 2 paddle */
|
||||
PORT_BIT( 0xff, 0x00, IPT_PADDLE ) PORT_SENSITIVITY(2) PORT_KEYDELTA(100) PORT_CENTERDELTA(0) PORT_PLAYER(2) NETLIST_ANALOG_PORT_CHANGED("maincpu", "pot1")
|
||||
#endif
|
||||
PORT_START("IN0") /* fake as well */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) NETLIST_LOGIC_PORT_CHANGED("maincpu", "coinsw1")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) NETLIST_LOGIC_PORT_CHANGED("maincpu", "coinsw2")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) NETLIST_LOGIC_PORT_CHANGED("maincpu", "startsw1")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 ) NETLIST_LOGIC_PORT_CHANGED("maincpu", "startsw2")
|
||||
|
||||
#if 0
|
||||
PORT_DIPNAME( 0x06, 0x00, "Game Won" ) PORT_DIPLOCATION("SW1A:1,SW1B:1") PORT_CHANGED_MEMBER(DEVICE_SELF, pong_state, input_changed, IC_SWITCH)
|
||||
PORT_DIPSETTING( 0x00, "11" )
|
||||
PORT_DIPSETTING( 0x06, "15" )
|
||||
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_NAME("Antenna") NETLIST_LOGIC_PORT_CHANGED("maincpu", "antenna")
|
||||
|
||||
PORT_START("VR1")
|
||||
PORT_ADJUSTER( 50, "VR1 - 50k, Paddle 1 adjustment" ) NETLIST_ANALOG_PORT_CHANGED("maincpu", "vr0")
|
||||
PORT_START("VR2")
|
||||
PORT_ADJUSTER( 50, "VR2 - 50k, Paddle 2 adjustment" ) NETLIST_ANALOG_PORT_CHANGED("maincpu", "vr1")
|
||||
#endif
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( pong, pong_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -251,6 +282,46 @@ static MACHINE_CONFIG_START( pong, pong_state )
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( breakout, breakout_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_DEVICE_ADD("maincpu", NETLIST_CPU, NETLIST_CLOCK)
|
||||
MCFG_NETLIST_SETUP(breakout)
|
||||
#if 0
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "vr0", "ic_b9_R.R")
|
||||
MCFG_NETLIST_ANALOG_MULT_OFFSET(1.0 / 100.0 * RES_K(50), RES_K(56) )
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "vr1", "ic_a9_R.R")
|
||||
MCFG_NETLIST_ANALOG_MULT_OFFSET(1.0 / 100.0 * RES_K(50), RES_K(56) )
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "pot0", "ic_b9_POT.DIAL")
|
||||
MCFG_NETLIST_ANALOG_INPUT("maincpu", "pot1", "ic_a9_POT.DIAL")
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw1a", "sw1a.POS", 0, 0x01)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "sw1b", "sw1b.POS", 0, 0x01)
|
||||
#endif
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "coinsw1", "COIN1_SW.POS", 0, 0x01)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "coinsw2", "COIN2_SW.POS", 0, 0x01)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "startsw1", "START1_SW.POS", 0, 0x01)
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "startsw2", "START2_SW.POS", 0, 0x01)
|
||||
#if 0
|
||||
MCFG_NETLIST_LOGIC_INPUT("maincpu", "antenna", "antenna.IN", 0, 0x01)
|
||||
#endif
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "snd0", "sound", breakout_state, sound_cb, "")
|
||||
MCFG_NETLIST_ANALOG_OUTPUT("maincpu", "vid0", "videomix", fixedfreq_device, update_vid, "fixfreq")
|
||||
|
||||
/* video hardware */
|
||||
MCFG_FIXFREQ_ADD("fixfreq", "screen")
|
||||
MCFG_FIXFREQ_MONITOR_CLOCK(MASTER_CLOCK)
|
||||
MCFG_FIXFREQ_HORZ_PARAMS(H_TOTAL-67,H_TOTAL-40,H_TOTAL-8,H_TOTAL)
|
||||
MCFG_FIXFREQ_VERT_PARAMS(V_TOTAL-22,V_TOTAL-19,V_TOTAL-12,V_TOTAL)
|
||||
MCFG_FIXFREQ_FIELDCOUNT(1)
|
||||
MCFG_FIXFREQ_SYNC_THRESHOLD(1.0)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
MCFG_SOUND_ADD("dac", DAC, 48000)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( pongf, pong )
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -312,6 +383,10 @@ ROM_START( pong ) /* dummy to satisfy game entry*/
|
||||
ROM_LOAD( "pong.netlist", 0x000000, 0x00457f, CRC(72d5e4fe) SHA1(7bb15828223c34915c5e2869dd7917532a4bb7b4) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( breakout )
|
||||
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_END
|
||||
|
||||
ROM_START( pongf ) /* dummy to satisfy game entry*/
|
||||
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
|
||||
ROM_END
|
||||
@ -323,3 +398,4 @@ ROM_END
|
||||
GAME( 1972, pong, 0, pong, pong, driver_device, 0, ROT0, "Atari", "Pong (Rev E) external [TTL]", GAME_SUPPORTS_SAVE)
|
||||
GAME( 1972, pongf, 0, pongf, pong, driver_device, 0, ROT0, "Atari", "Pong (Rev E) [TTL]", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1974, pongd, 0, pongd, pongd, driver_device, 0, ROT0, "Atari", "Pong Doubles [TTL]", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1976, breakout, 0, breakout, breakout, driver_device, 0, ROT90, "Atari", "Breakout [TTL]", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING)
|
||||
|
@ -12926,8 +12926,8 @@ tank // (c) 1974 Atari
|
||||
// Atari 100% TTL
|
||||
pong // (c) 1972 Atari
|
||||
pongd // (c) 1975 Atari
|
||||
pongf // (c) 1972 Atari - no subcycles
|
||||
//breakout
|
||||
pongf // (c) 1972 Atari
|
||||
breakout // (c) 1976 Atari
|
||||
//coupedem
|
||||
//goal4
|
||||
//gotchaat
|
||||
|
Loading…
Reference in New Issue
Block a user