mirror of
https://github.com/holub/mame
synced 2025-04-24 09:20:02 +03:00
hh_tms1k: cnfball and fxmcr165 WIP
This commit is contained in:
parent
a521d9a3cf
commit
30b4c5e4c0
@ -3403,8 +3403,7 @@ static INPUT_PORTS_START( mwcbaseb )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("P1 1")
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static const INT16 mwcbaseb_speaker_levels[] = { 0, 16384, -16384, 0, -16384, 0, -32768, -16384 };
|
||||
static const INT16 mwcbaseb_speaker_levels[] = { 0, 0x3fff, -0x4000, 0, -0x4000, 0, -0x8000, -0x4000 };
|
||||
|
||||
static MACHINE_CONFIG_START( mwcbaseb, mwcbaseb_state )
|
||||
|
||||
|
@ -22,8 +22,8 @@
|
||||
@MP0905B TMS0970 1977, Parker Brothers Codename Sector
|
||||
*MP0057 TMS1000 1978, APH Student Speech+ (same ROM contents as TSI Speech+?)
|
||||
*MP0158 TMS1000 1979, Entex Soccer
|
||||
*MP0168 TMS1000? 1979, Conic Basketball
|
||||
*MP0170 TMS1000? 1979, E.R.S. Football
|
||||
*MP0168 TMS1000 1979, Conic Basketball
|
||||
@MP0170 TMS1000 1979, Conic Football
|
||||
@MP0914 TMS1000 1979, Entex Baseball 1
|
||||
@MP0923 TMS1000 1979, Entex Baseball 2
|
||||
@MP1030 TMS1100 1980, APF Mathemagician
|
||||
@ -36,11 +36,11 @@
|
||||
*MP1219 TMS1100 1980, U.S. Games Super Sports 4
|
||||
@MP1221 TMS1100 1980, Entex Raise The Devil
|
||||
*MP1296 TMS1100? 1982, Entex Black Knight
|
||||
*MP1312 TMS1100 198?, Tandy/RadioShack Science Fair Microcomputer Trainer
|
||||
@MP1312 TMS1100 1985, Gakken FX-Micom R-165/Tandy Radio Shack Science Fair Microcomputer Trainer
|
||||
*MP1359 TMS1100? 1985, Capsela CRC2000
|
||||
@MP1525 TMS1170 1980, Coleco Head to Head Baseball
|
||||
*MP1604 ? 1981, Hanzawa Twinvader III/Tandy Cosmic Fire Away 3000 (? note: VFD-capable)
|
||||
@MP2105 TMS1370 1979, Gakken Poker
|
||||
@MP2105 TMS1370 1979, Gakken/Entex Poker
|
||||
*MP2139 TMS1370? 1982, Gakken Galaxy Invader 1000
|
||||
@MP2726 TMS1040 1979, Tomy Break Up
|
||||
*MP2788 TMS1040? 1980, Bandai Flight Time (? note: VFD-capable)
|
||||
@ -87,13 +87,13 @@
|
||||
@MP7334 TMS1400 1981, Coleco Total Control 4
|
||||
@MP7351 TMS1400 1982, Parker Brothers Master Merlin
|
||||
@MP7551 TMS1670 1980, Entex Color Football 4 (6009)
|
||||
@MPF553 TMS1670 1980, Gakken Jackpot: Gin Rummy & Black Jack (note: assume F to be a misprint)
|
||||
@MPF553 TMS1670 1980, Gakken/Entex Jackpot: Gin Rummy & Black Jack (note: assume F to be a misprint)
|
||||
*MP7573 TMS1670? 1981, Entex Select-a-Game cartridge: Football 4 (? note: 40-pin, VFD-capable)
|
||||
|
||||
inconsistent:
|
||||
|
||||
*TMC1007 TMS1000 1976, TSI Speech+ (S14002-A)
|
||||
@CD7282SL TMS1100 1981, Tandy/RadioShack Tandy-12 (serial is similar to TI Speak & Spell series?)
|
||||
@CD7282SL TMS1100 1981, Tandy Radio Shack Tandy-12 (serial is similar to TI Speak & Spell series?)
|
||||
*M95041 ? 1983, Tsukuda Game Pachinko (? note: 40-pin, VFD-capable)
|
||||
|
||||
(* denotes not yet emulated by MAME, @ denotes it's in this driver)
|
||||
@ -120,6 +120,7 @@
|
||||
#include "astro.lh"
|
||||
#include "bankshot.lh"
|
||||
#include "bigtrak.lh"
|
||||
#include "cnfball.lh"
|
||||
#include "cnfball2.lh"
|
||||
#include "cnsector.lh"
|
||||
#include "comp4.lh"
|
||||
@ -131,6 +132,7 @@
|
||||
#include "efootb4.lh"
|
||||
#include "einvader.lh" // test-layout(but still playable)
|
||||
#include "elecdet.lh"
|
||||
#include "fxmcr165.lh"
|
||||
#include "gjackpot.lh"
|
||||
#include "gpoker.lh"
|
||||
#include "h2hbaseb.lh"
|
||||
@ -609,44 +611,44 @@ READ8_MEMBER(amaztron_state::read_k)
|
||||
|
||||
static INPUT_PORTS_START( amaztron )
|
||||
PORT_START("IN.0") // R0
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 1")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 6")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 11")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 16")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 21")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 1")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 6")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 11")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 16")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 21")
|
||||
|
||||
PORT_START("IN.1") // R1
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 2")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 7")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 12")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 17")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 22")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 2")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 7")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 12")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 17")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 22")
|
||||
|
||||
PORT_START("IN.2") // R2
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 3")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 8")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 13")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 18")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 23")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 3")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 8")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 13")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 18")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 23")
|
||||
|
||||
PORT_START("IN.3") // R3
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 4")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 9")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 14")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 19")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 24")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 4")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 9")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 14")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 19")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 24")
|
||||
|
||||
PORT_START("IN.4") // R4
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 5")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 10")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 15")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 20")
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Square 25")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 5")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 10")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 15")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 20")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("Square 25")
|
||||
|
||||
PORT_START("IN.5") // R5
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_SELECT) PORT_NAME("Game Select")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_START) PORT_NAME("Game Start")
|
||||
PORT_BIT(0x1c, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_NAME("Game Select")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START ) PORT_NAME("Game Start")
|
||||
PORT_BIT( 0x1c, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( amaztron, amaztron_state )
|
||||
@ -900,7 +902,7 @@ READ8_MEMBER(cqback_state::read_k)
|
||||
|
||||
static INPUT_PORTS_START( cqback )
|
||||
PORT_START("IN.0") // K1
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_NAME("P1 Left/Right")
|
||||
PORT_BIT( 0x01, 0x01, IPT_SPECIAL ) PORT_CONDITION("FAKE", 0x03, NOTEQUALS, 0x00) // left/right
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_16WAY
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Kick/Pass")
|
||||
@ -919,6 +921,10 @@ static INPUT_PORTS_START( cqback )
|
||||
PORT_CONFNAME( 0x01, 0x00, "Factory Test" )
|
||||
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_CONFSETTING( 0x01, DEF_STR( On ) ) // TP1-TP2
|
||||
|
||||
PORT_START("FAKE") // fake port for left/right combination
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( cqback, cqback_state )
|
||||
@ -1024,7 +1030,7 @@ static INPUT_PORTS_START( h2hfootb )
|
||||
PORT_CONFSETTING( 0x02, "2" )
|
||||
|
||||
PORT_START("IN.3") // K8
|
||||
PORT_BIT( 0x001, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_NAME("P1 Left/Right")
|
||||
PORT_BIT( 0x001, 0x001, IPT_SPECIAL ) PORT_CONDITION("FAKE", 0x03, NOTEQUALS, 0x00) // left/right
|
||||
PORT_BIT( 0x002, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_16WAY
|
||||
PORT_BIT( 0x004, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY
|
||||
PORT_BIT( 0x008, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Kick/Pass")
|
||||
@ -1033,6 +1039,10 @@ static INPUT_PORTS_START( h2hfootb )
|
||||
PORT_BIT( 0x040, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_COCKTAIL PORT_16WAY
|
||||
PORT_BIT( 0x080, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL PORT_16WAY
|
||||
PORT_BIT( 0x100, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL PORT_16WAY
|
||||
|
||||
PORT_START("FAKE") // fake port for left/right combination
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( h2hfootb, h2hfootb_state )
|
||||
@ -1352,6 +1362,131 @@ MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Conic Electronic Football (1)
|
||||
* TMS1000 MP0170 (die label MP0170)
|
||||
* DS8874N, 3*9 LED array, 7 7seg LEDs, 1-bit sound
|
||||
|
||||
This is a clone of Mattel Football. Apparently Mattel has tried to keep imports
|
||||
of infringing games from going through customs. Conic (Hong Kong) answered
|
||||
by distributing the game under subsidiary brands - see list below.
|
||||
|
||||
known releases:
|
||||
- Hong Kong: Conic Electronic Football
|
||||
- USA(1): Football, ERS(Electronic Readout Systems)
|
||||
- USA(2): Football, ELECsonic
|
||||
- USA(3): Football, no brand!
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
class cnfball_state : public hh_tms1k_state
|
||||
{
|
||||
public:
|
||||
cnfball_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: hh_tms1k_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void prepare_display();
|
||||
DECLARE_WRITE16_MEMBER(write_r);
|
||||
DECLARE_WRITE16_MEMBER(write_o);
|
||||
DECLARE_READ8_MEMBER(read_k);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
void cnfball_state::prepare_display()
|
||||
{
|
||||
// declare 7segs, middle ones have DP
|
||||
set_display_segmask(0xc3, 0x7f);
|
||||
set_display_segmask(0x38, 0xff);
|
||||
|
||||
display_matrix(8+3, 10, m_o | (m_r << 6 & 0x700), m_grid);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(cnfball_state::write_r)
|
||||
{
|
||||
// R5,R8: N/C
|
||||
// R6,R7: speaker out
|
||||
m_speaker->level_w(data >> 6 & 3);
|
||||
|
||||
// R9,R10: input mux
|
||||
m_inp_mux = data >> 9 & 3;
|
||||
|
||||
// R0: DS8874N CP: clock pulse edge-triggered
|
||||
// note: DS8874N CP goes back to K8 too, game relies on it
|
||||
if ((data ^ m_r) & 1)
|
||||
m_grid = m_grid << 1 & 0x1ff;
|
||||
|
||||
// R1: DS8874N _DATA: reset shift register
|
||||
if (~data & 2)
|
||||
m_grid = 1;
|
||||
|
||||
// R2-R4: led data
|
||||
m_r = data;
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(cnfball_state::write_o)
|
||||
{
|
||||
// O0-O7: digit segments
|
||||
m_o = data;
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
READ8_MEMBER(cnfball_state::read_k)
|
||||
{
|
||||
// K: multiplexed inputs, K8 also tied to DS8874N CP(R0)
|
||||
return read_inputs(2) | (m_r << 3 & 8);
|
||||
}
|
||||
|
||||
|
||||
// config
|
||||
|
||||
static INPUT_PORTS_START( cnfball )
|
||||
PORT_START("IN.0") // R9
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_16WAY
|
||||
PORT_BIT( 0x04, 0x04, IPT_SPECIAL ) PORT_CONDITION("FAKE", 0x03, NOTEQUALS, 0x00) // left/right
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN.1") // R10
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Kick")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Score")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Status")
|
||||
PORT_CONFNAME( 0x08, 0x08, "Players" )
|
||||
PORT_CONFSETTING( 0x08, "1" )
|
||||
PORT_CONFSETTING( 0x00, "2" )
|
||||
|
||||
PORT_START("FAKE") // fake port for left/right combination
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY
|
||||
INPUT_PORTS_END
|
||||
|
||||
static const INT16 cnfball_speaker_levels[] = { 0, 0x7fff, -0x8000, 0 };
|
||||
|
||||
static MACHINE_CONFIG_START( cnfball, cnfball_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", TMS1000, 400000) // approximation - RC osc. R=39K, C=47pf
|
||||
MCFG_TMS1XXX_READ_K_CB(READ8(cnfball_state, read_k))
|
||||
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(cnfball_state, write_r))
|
||||
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(cnfball_state, write_o))
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
|
||||
MCFG_DEFAULT_LAYOUT(layout_cnfball)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
|
||||
MCFG_SPEAKER_LEVELS(4, cnfball_speaker_levels)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Conic Electronic Football II
|
||||
@ -2671,6 +2806,144 @@ MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Gakken FX-Micom R-165
|
||||
* TMS1100 MCU, label MP1312, die label MP1312A
|
||||
* 1 7seg led, 6 other leds, 1-bit sound
|
||||
|
||||
This is a simple educational home computer. Refer to the extensive manual
|
||||
for more information. It was distributed later in the USA by Tandy Radio Shack,
|
||||
under their Science Fair series. Another 25 years later, Gakken re-released
|
||||
the R-165 as GMC-4, obviously on modern hardware, but fully compatible.
|
||||
|
||||
known releases:
|
||||
- Japan: FX-Micom R-165
|
||||
- USA: Science Fair Microcomputer Trainer, published by Tandy Radio Shack
|
||||
Of note is the complete redesign of the case, adding more adjustable wiring
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
class fxmcr165_state : public hh_tms1k_state
|
||||
{
|
||||
public:
|
||||
fxmcr165_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: hh_tms1k_state(mconfig, type, tag)
|
||||
{ }
|
||||
|
||||
void prepare_display();
|
||||
DECLARE_WRITE16_MEMBER(write_r);
|
||||
DECLARE_WRITE16_MEMBER(write_o);
|
||||
DECLARE_READ8_MEMBER(read_k);
|
||||
};
|
||||
|
||||
// handlers
|
||||
|
||||
void fxmcr165_state::prepare_display()
|
||||
{
|
||||
// 7seg digit from O0-O6
|
||||
m_display_segmask[0] = 0x7f;
|
||||
m_display_state[0] = BITSWAP8(m_o,7,2,6,5,4,3,1,0) & 0x7f;
|
||||
|
||||
// leds from R4-R10
|
||||
m_display_state[1] = m_r >> 4 & 0x7f;
|
||||
set_display_size(7, 2);
|
||||
display_update();
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(fxmcr165_state::write_r)
|
||||
{
|
||||
// R0-R3: input mux low
|
||||
m_inp_mux = (m_inp_mux & 0x10) | (data & 0xf);
|
||||
|
||||
// R7: speaker out
|
||||
m_speaker->level_w(data >> 7 & 1);
|
||||
|
||||
// R4-R10: led data (direct)
|
||||
m_r = data;
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(fxmcr165_state::write_o)
|
||||
{
|
||||
// O7: input mux high
|
||||
m_inp_mux = (m_inp_mux & 0xf) | (data >> 3 & 0x10);
|
||||
|
||||
// O0-O6: digit segments (direct)
|
||||
m_o = data;
|
||||
prepare_display();
|
||||
}
|
||||
|
||||
READ8_MEMBER(fxmcr165_state::read_k)
|
||||
{
|
||||
// K: multiplexed inputs
|
||||
return read_inputs(5);
|
||||
}
|
||||
|
||||
|
||||
// config
|
||||
|
||||
/* physical button layout and labels is like this:
|
||||
|
||||
[C] [D] [E] [F] [ADR SET]
|
||||
[8] [9] [A] [B] [INCR]
|
||||
[4] [5] [6] [7] [RUN]
|
||||
[0] [1] [2] [3] [RESET]
|
||||
*/
|
||||
|
||||
static INPUT_PORTS_START( fxmcr165 )
|
||||
PORT_START("IN.0") // R0
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("0")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("8")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("C")
|
||||
|
||||
PORT_START("IN.1") // R1
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("5")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("D")
|
||||
|
||||
PORT_START("IN.2") // R2
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("A")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("E")
|
||||
|
||||
PORT_START("IN.3") // R3
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("7")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("B")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("F")
|
||||
|
||||
PORT_START("IN.4") // O7
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("Reset")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("Run")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("Increment")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("Address Set")
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( fxmcr165, fxmcr165_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", TMS1100, XTAL_400kHz)
|
||||
MCFG_TMS1XXX_READ_K_CB(READ8(fxmcr165_state, read_k))
|
||||
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(fxmcr165_state, write_r))
|
||||
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(fxmcr165_state, write_o))
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
|
||||
MCFG_DEFAULT_LAYOUT(layout_fxmcr165)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Ideal Electronic Detective
|
||||
@ -2776,7 +3049,6 @@ static INPUT_PORTS_START( elecdet )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Off") PORT_CHANGED_MEMBER(DEVICE_SELF, hh_tms1k_state, power_button, (void *)false)
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static const INT16 elecdet_speaker_levels[4] = { 0, 0x3fff, 0x3fff, 0x7fff };
|
||||
|
||||
static MACHINE_CONFIG_START( elecdet, elecdet_state )
|
||||
@ -2877,34 +3149,34 @@ READ8_MEMBER(starwbc_state::read_k)
|
||||
|
||||
static INPUT_PORTS_START( starwbc )
|
||||
PORT_START("IN.0") // R0
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_NAME("Basic Game")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_NAME("Intermediate Game")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_NAME("Advanced Game")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_NAME("Player Number")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_NAME("Basic Game")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_2) PORT_NAME("Intermediate Game")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_3) PORT_NAME("Advanced Game")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_NAME("Player Number")
|
||||
|
||||
PORT_START("IN.1") // R1
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_NAME("Start Turn")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_NAME("End Turn")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("Start Turn")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_NAME("End Turn")
|
||||
|
||||
PORT_START("IN.2") // R3
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_NAME("Magna Scan") // only used in adv. game
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_NAME("Enemy Scan") // only used in adv. game
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("Screen Up")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("Magna Scan") // only used in adv. game
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("Enemy Scan") // only used in adv. game
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("Screen Up")
|
||||
|
||||
PORT_START("IN.3") // R5
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_NAME("Evasive Maneuvers")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_M) PORT_NAME("Move")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_NAME("Fire")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_B) PORT_NAME("Battle Stations")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("Evasive Maneuvers")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) PORT_NAME("Move")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("Fire")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("Battle Stations")
|
||||
|
||||
PORT_START("IN.4") // R7
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_LEFT) PORT_NAME("Left")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_UP) PORT_NAME("Up")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DOWN) PORT_NAME("Down")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("Right")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_LEFT) PORT_NAME("Left")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_UP) PORT_NAME("Up")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_DOWN) PORT_NAME("Down")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("Right")
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( starwbc, starwbc_state )
|
||||
@ -3949,31 +4221,30 @@ READ8_MEMBER(merlin_state::read_k)
|
||||
|
||||
static INPUT_PORTS_START( merlin )
|
||||
PORT_START("IN.0") // O0
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME("Button 0")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("Button 1")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("Button 3")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Button 2")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME("Button 0")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("Button 1")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("Button 3")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Button 2")
|
||||
|
||||
PORT_START("IN.1") // O1
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Button 4")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Button 5")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("Button 7")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("Button 6")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Button 4")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Button 5")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("Button 7")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("Button 6")
|
||||
|
||||
PORT_START("IN.2") // O2
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Button 8")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Button 9")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_G) PORT_NAME("Same Game")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_MINUS) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("Button 10")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Button 8")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Button 9")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) PORT_NAME("Same Game")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("Button 10")
|
||||
|
||||
PORT_START("IN.3") // O3
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_NAME("Comp Turn")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_H) PORT_NAME("Hit Me")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("New Game")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("Comp Turn")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_H) PORT_NAME("Hit Me")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("New Game")
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static const INT16 merlin_speaker_levels[8] = { 0, 0x7fff/3, 0x7fff/3, 0x7fff/3*2, 0x7fff/3, 0x7fff/3*2, 0x7fff/3*2, 0x7fff };
|
||||
|
||||
static MACHINE_CONFIG_START( merlin, merlin_state )
|
||||
@ -4037,7 +4308,7 @@ static INPUT_PORTS_START( mmerlin )
|
||||
PORT_INCLUDE( merlin )
|
||||
|
||||
PORT_MODIFY("IN.3")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("Score") // instead of Hit Me
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("Score") // instead of Hit Me
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( mmerlin, mmerlin_state )
|
||||
@ -4153,7 +4424,6 @@ static INPUT_PORTS_START( stopthief )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Off") PORT_CHANGED_MEMBER(DEVICE_SELF, hh_tms1k_state, power_button, (void *)false)
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static const INT16 stopthief_speaker_levels[7] = { 0, 0x7fff/6, 0x7fff/5, 0x7fff/4, 0x7fff/3, 0x7fff/2, 0x7fff };
|
||||
|
||||
static MACHINE_CONFIG_START( stopthief, stopthief_state )
|
||||
@ -4460,30 +4730,33 @@ READ8_MEMBER(lostreas_state::read_k)
|
||||
|
||||
static INPUT_PORTS_START( lostreas )
|
||||
PORT_START("IN.0") // O0
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4")
|
||||
|
||||
PORT_START("IN.1") // O1
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("5")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("7")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("8")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("5")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("7")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("8")
|
||||
|
||||
PORT_START("IN.2") // O2
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DEL) PORT_NAME("Clear")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_U) PORT_NAME("Air/Up")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_V) PORT_NAME("$ Value")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_DEL) PORT_NAME("Clear")
|
||||
PORT_BIT( 0x04, 0x04, IPT_SPECIAL ) PORT_CONDITION("FAKE", 0x03, NOTEQUALS, 0x00) // air/up
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("$ Value")
|
||||
|
||||
PORT_START("IN.3") // O3
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("E-W (silver)")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_NAME("N-S (silver)")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_NAME("E-W (gold)")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_NAME("N-S (gold)")
|
||||
INPUT_PORTS_END
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("E-W (silver)")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("N-S (silver)")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("E-W (gold)")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("N-S (gold)")
|
||||
|
||||
PORT_START("FAKE") // Air/Up buttons share the same position on the matrix
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("Air")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("Up")
|
||||
INPUT_PORTS_END
|
||||
|
||||
static const INT16 lostreas_speaker_levels[16] =
|
||||
{
|
||||
@ -5081,6 +5354,17 @@ ROM_START( tc4 )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( cnfball )
|
||||
ROM_REGION( 0x0400, "maincpu", 0 )
|
||||
ROM_LOAD( "mp0170", 0x0000, 0x0400, CRC(50e8a44f) SHA1(fea6ae03c4ef329d825f8688e6854df15023d47e) )
|
||||
|
||||
ROM_REGION( 867, "maincpu:mpla", 0 )
|
||||
ROM_LOAD( "tms1000_common2_micro.pla", 0, 867, CRC(d33da3cf) SHA1(13c4ebbca227818db75e6db0d45b66ba5e207776) )
|
||||
ROM_REGION( 365, "maincpu:opla", 0 )
|
||||
ROM_LOAD( "tms1000_cnfball_output.pla", 0, 365, CRC(0af52f64) SHA1(b4cf450e4d895eddb67448aa69e4f18a5a84e033) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( cnfball2 )
|
||||
ROM_REGION( 0x0800, "maincpu", 0 )
|
||||
ROM_LOAD( "mp1181", 0x0000, 0x0800, CRC(4553a840) SHA1(2e1132c9bc51641f77ba7f2430b5a3b2766b3a3d) )
|
||||
@ -5191,6 +5475,17 @@ ROM_START( gjackpot )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( fxmcr165 )
|
||||
ROM_REGION( 0x0800, "maincpu", 0 )
|
||||
ROM_LOAD( "mp1312", 0x0000, 0x0800, CRC(6efc8bcc) SHA1(ced8a02b472a3178073691d3dccc0f19f57428fd) )
|
||||
|
||||
ROM_REGION( 867, "maincpu:mpla", 0 )
|
||||
ROM_LOAD( "tms1100_common1_micro.pla", 0, 867, CRC(62445fc9) SHA1(d6297f2a4bc7a870b76cc498d19dbb0ce7d69fec) )
|
||||
ROM_REGION( 365, "maincpu:opla", 0 )
|
||||
ROM_LOAD( "tms1100_fxmcr165_output.pla", 0, 365, CRC(ce656866) SHA1(40e1614f5afcc7572fda596e1be453d54e95af0c) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( elecdet )
|
||||
ROM_REGION( 0x1000, "maincpu", 0 )
|
||||
ROM_LOAD( "mp6100a", 0x0000, 0x1000, CRC(6f396bb8) SHA1(1f104d4ca9bee0d4572be4779b7551dfe20c4f04) )
|
||||
@ -5440,6 +5735,7 @@ CONS( 1980, h2hfootb, 0, 0, h2hfootb, h2hfootb, driver_device, 0, "Col
|
||||
CONS( 1980, h2hbaseb, 0, 0, h2hbaseb, h2hbaseb, driver_device, 0, "Coleco", "Head to Head Baseball", MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1981, tc4, 0, 0, tc4, tc4, driver_device, 0, "Coleco", "Total Control 4", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
CONS( 1979, cnfball, 0, 0, cnfball, cnfball, driver_device, 0, "Conic", "Electronic Football (Conic)", MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1979, cnfball2, 0, 0, cnfball2, cnfball2, driver_device, 0, "Conic", "Electronic Football II (Conic)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
CONS( 1979, ebball, 0, 0, ebball, ebball, driver_device, 0, "Entex", "Electronic Baseball (Entex)", MACHINE_SUPPORTS_SAVE )
|
||||
@ -5452,6 +5748,7 @@ CONS( 1980, raisedvl, 0, 0, raisedvl, raisedvl, driver_device, 0, "Ent
|
||||
|
||||
CONS( 1979, gpoker, 0, 0, gpoker, gpoker, driver_device, 0, "Gakken", "Poker (Gakken, 1979 version)", MACHINE_SUPPORTS_SAVE )
|
||||
CONS( 1980, gjackpot, 0, 0, gjackpot, gjackpot, driver_device, 0, "Gakken", "Jackpot: Gin Rummy & Black Jack", MACHINE_SUPPORTS_SAVE )
|
||||
COMP( 1983, fxmcr165, 0, 0, fxmcr165, fxmcr165, driver_device, 0, "Gakken", "FX-Micom R-165", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
CONS( 1979, elecdet, 0, 0, elecdet, elecdet, driver_device, 0, "Ideal", "Electronic Detective", MACHINE_SUPPORTS_SAVE ) // ***
|
||||
|
||||
|
@ -310,8 +310,7 @@ static INPUT_PORTS_START( ufombs )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static const INT16 ufombs_speaker_levels[] = { 0, 32767, -32768, 0 };
|
||||
static const INT16 ufombs_speaker_levels[] = { 0, 0x7fff, -0x8000, 0 };
|
||||
|
||||
static MACHINE_CONFIG_START( ufombs, ufombs_state )
|
||||
|
||||
@ -444,14 +443,17 @@ static INPUT_PORTS_START( ssfball )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) // multiplexed, handled in input_b_r
|
||||
|
||||
PORT_START("IN.3") // port A
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_NAME("Ball-carrier Left/Right")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY PORT_NAME("Ball-carrier Up")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_16WAY PORT_NAME("Ball-carrier Down")
|
||||
PORT_BIT( 0x01, 0x01, IPT_SPECIAL ) PORT_CONDITION("FAKE", 0x03, NOTEQUALS, 0x00) // left/right
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_16WAY
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Pass")
|
||||
|
||||
PORT_START("FAKE") // fake port for left/right combination
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static const INT16 ssfball_speaker_levels[] = { 0, 32767, -32768, 0 };
|
||||
static const INT16 ssfball_speaker_levels[] = { 0, 0x7fff, -0x8000, 0 };
|
||||
|
||||
static MACHINE_CONFIG_START( ssfball, ssfball_state )
|
||||
|
||||
@ -828,8 +830,7 @@ static INPUT_PORTS_START( splasfgt )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static const INT16 splasfgt_speaker_levels[] = { 0, 32767, -32768, 0 };
|
||||
static const INT16 splasfgt_speaker_levels[] = { 0, 0x7fff, -0x8000, 0 };
|
||||
|
||||
static MACHINE_CONFIG_START( splasfgt, splasfgt_state )
|
||||
|
||||
@ -1022,34 +1023,34 @@ READ8_MEMBER(tactix_state::input_r)
|
||||
|
||||
static INPUT_PORTS_START( tactix )
|
||||
PORT_START("IN.0") // C0 port A
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_NAME("Button 1")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_NAME("Button 5")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_NAME("Button 9")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Z) PORT_NAME("Button 13")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_NAME("Button 1")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("Button 5")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("Button 9")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("Button 13")
|
||||
|
||||
PORT_START("IN.1") // C1 port A
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_NAME("Button 2")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_NAME("Button 6")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("Button 10")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_X) PORT_NAME("Button 14")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_2) PORT_NAME("Button 2")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("Button 6")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("Button 10")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) PORT_NAME("Button 14")
|
||||
|
||||
PORT_START("IN.2") // C2 port A
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_NAME("Button 3")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_NAME("Button 7")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_D) PORT_NAME("Button 11")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_NAME("Button 15")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_3) PORT_NAME("Button 3")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("Button 7")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("Button 11")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("Button 15")
|
||||
|
||||
PORT_START("IN.3") // C3 port A
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_NAME("Button 4")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("Button 8")
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_NAME("Button 12")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_V) PORT_NAME("Button 16")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_4) PORT_NAME("Button 4")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("Button 8")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("Button 12")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("Button 16")
|
||||
|
||||
PORT_START("IN.4") // E0 port A
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_NAME("New Game")
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Comp Turn")
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("New Game")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("Comp Turn")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( tactix, tactix_state )
|
||||
@ -1247,7 +1248,7 @@ static INPUT_PORTS_START( efball )
|
||||
PORT_START("IN.1") // port B
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_16WAY
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_NAME("P1 Left/Right")
|
||||
PORT_BIT( 0x04, 0x04, IPT_SPECIAL ) PORT_CONDITION("FAKE", 0x03, NOTEQUALS, 0x00) // left/right
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Pass")
|
||||
|
||||
PORT_START("IN.2") // port C
|
||||
@ -1255,6 +1256,10 @@ static INPUT_PORTS_START( efball )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_COCKTAIL PORT_16WAY
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Kick Return")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P1 Kick")
|
||||
|
||||
PORT_START("FAKE") // fake port for left/right combination
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY
|
||||
INPUT_PORTS_END
|
||||
|
||||
static MACHINE_CONFIG_START( efball, efball_state )
|
||||
|
@ -50,8 +50,8 @@ public:
|
||||
int m_display_maxy; // display matrix number of rows
|
||||
int m_display_maxx; // display matrix number of columns (max 31 for now)
|
||||
|
||||
UINT32 m_grid; // VFD current row data
|
||||
UINT32 m_plate; // VFD current column data
|
||||
UINT32 m_grid; // VFD/LED current row data
|
||||
UINT32 m_plate; // VFD/LED current column data
|
||||
|
||||
UINT32 m_display_state[0x20]; // display matrix rows data (last bit is used for always-on)
|
||||
UINT16 m_display_segmask[0x20]; // if not 0, display matrix row is a digit, mask indicates connected segments
|
||||
|
68
src/mame/layout/cnfball.lay
Normal file
68
src/mame/layout/cnfball.lay
Normal file
@ -0,0 +1,68 @@
|
||||
<?xml version="1.0"?>
|
||||
<mamelayout version="2">
|
||||
|
||||
<!-- define elements -->
|
||||
|
||||
<element name="digit" defstate="0">
|
||||
<led7seg><color red="1.0" green="0.25" blue="0.26" /></led7seg>
|
||||
</element>
|
||||
<element name="seg" defstate="0">
|
||||
<rect state="0"><color red="0.13" green="0.0325" blue="0.0338" /></rect>
|
||||
<rect state="1"><color red="1.0" green="0.25" blue="0.26" /></rect>
|
||||
</element>
|
||||
|
||||
|
||||
<!-- build screen -->
|
||||
|
||||
<view name="Internal Layout">
|
||||
<bounds left="0" right="100" top="0" bottom="50" />
|
||||
|
||||
<bezel name="digit7" element="digit"><bounds x="10" y="0" width="10" height="15" /></bezel>
|
||||
<bezel name="digit6" element="digit"><bounds x="20" y="0" width="10" height="15" /></bezel>
|
||||
|
||||
<bezel name="digit5" element="digit"><bounds x="40" y="0" width="10" height="15" /></bezel>
|
||||
<bezel name="digit4" element="digit"><bounds x="50" y="0" width="10" height="15" /></bezel>
|
||||
<bezel name="digit3" element="digit"><bounds x="60" y="0" width="10" height="15" /></bezel>
|
||||
|
||||
<bezel name="digit1" element="digit"><bounds x="80" y="0" width="10" height="15" /></bezel>
|
||||
<bezel name="digit0" element="digit"><bounds x="90" y="0" width="10" height="15" /></bezel>
|
||||
|
||||
<bezel name="8.10" element="seg"><bounds x="0" y="20" width="5" height="1" /></bezel>
|
||||
<bezel name="8.9" element="seg"><bounds x="0" y="25" width="5" height="1" /></bezel>
|
||||
<bezel name="8.8" element="seg"><bounds x="0" y="30" width="5" height="1" /></bezel>
|
||||
|
||||
<bezel name="7.10" element="seg"><bounds x="10" y="20" width="5" height="1" /></bezel>
|
||||
<bezel name="7.9" element="seg"><bounds x="10" y="25" width="5" height="1" /></bezel>
|
||||
<bezel name="7.8" element="seg"><bounds x="10" y="30" width="5" height="1" /></bezel>
|
||||
|
||||
<bezel name="6.10" element="seg"><bounds x="20" y="20" width="5" height="1" /></bezel>
|
||||
<bezel name="6.9" element="seg"><bounds x="20" y="25" width="5" height="1" /></bezel>
|
||||
<bezel name="6.8" element="seg"><bounds x="20" y="30" width="5" height="1" /></bezel>
|
||||
|
||||
<bezel name="5.10" element="seg"><bounds x="30" y="20" width="5" height="1" /></bezel>
|
||||
<bezel name="5.9" element="seg"><bounds x="30" y="25" width="5" height="1" /></bezel>
|
||||
<bezel name="5.8" element="seg"><bounds x="30" y="30" width="5" height="1" /></bezel>
|
||||
|
||||
<bezel name="4.10" element="seg"><bounds x="40" y="20" width="5" height="1" /></bezel>
|
||||
<bezel name="4.9" element="seg"><bounds x="40" y="25" width="5" height="1" /></bezel>
|
||||
<bezel name="4.8" element="seg"><bounds x="40" y="30" width="5" height="1" /></bezel>
|
||||
|
||||
<bezel name="3.10" element="seg"><bounds x="50" y="20" width="5" height="1" /></bezel>
|
||||
<bezel name="3.9" element="seg"><bounds x="50" y="25" width="5" height="1" /></bezel>
|
||||
<bezel name="3.8" element="seg"><bounds x="50" y="30" width="5" height="1" /></bezel>
|
||||
|
||||
<bezel name="2.10" element="seg"><bounds x="60" y="20" width="5" height="1" /></bezel>
|
||||
<bezel name="2.9" element="seg"><bounds x="60" y="25" width="5" height="1" /></bezel>
|
||||
<bezel name="2.8" element="seg"><bounds x="60" y="30" width="5" height="1" /></bezel>
|
||||
|
||||
<bezel name="1.10" element="seg"><bounds x="70" y="20" width="5" height="1" /></bezel>
|
||||
<bezel name="1.9" element="seg"><bounds x="70" y="25" width="5" height="1" /></bezel>
|
||||
<bezel name="1.8" element="seg"><bounds x="70" y="30" width="5" height="1" /></bezel>
|
||||
|
||||
<bezel name="0.10" element="seg"><bounds x="80" y="20" width="5" height="1" /></bezel>
|
||||
<bezel name="0.9" element="seg"><bounds x="80" y="25" width="5" height="1" /></bezel>
|
||||
<bezel name="0.8" element="seg"><bounds x="80" y="30" width="5" height="1" /></bezel>
|
||||
|
||||
|
||||
</view>
|
||||
</mamelayout>
|
57
src/mame/layout/fxmcr165.lay
Normal file
57
src/mame/layout/fxmcr165.lay
Normal file
@ -0,0 +1,57 @@
|
||||
<?xml version="1.0"?>
|
||||
<mamelayout version="2">
|
||||
|
||||
<!-- define elements -->
|
||||
|
||||
<element name="digit" defstate="0">
|
||||
<led7seg><color red="1.0" green="0.20" blue="0.22" /></led7seg>
|
||||
</element>
|
||||
<element name="led" defstate="0">
|
||||
<disk state="0"><color red="0.15" green="0.03" blue="0.04" /></disk>
|
||||
<disk state="1"><color red="1.0" green="0.20" blue="0.22" /></disk>
|
||||
</element>
|
||||
|
||||
<element name="text_0"><text string="0"><color red="0.8" green="0.8" blue="0.8" /></text></element>
|
||||
<element name="text_1"><text string="1"><color red="0.8" green="0.8" blue="0.8" /></text></element>
|
||||
<element name="text_2"><text string="2"><color red="0.8" green="0.8" blue="0.8" /></text></element>
|
||||
<element name="text_3"><text string="3"><color red="0.8" green="0.8" blue="0.8" /></text></element>
|
||||
<element name="text_4"><text string="4"><color red="0.8" green="0.8" blue="0.8" /></text></element>
|
||||
<element name="text_5"><text string="5"><color red="0.8" green="0.8" blue="0.8" /></text></element>
|
||||
<element name="text_6"><text string="6"><color red="0.8" green="0.8" blue="0.8" /></text></element>
|
||||
<element name="text_8"><text string="8"><color red="0.8" green="0.8" blue="0.8" /></text></element>
|
||||
|
||||
|
||||
<!-- build screen -->
|
||||
|
||||
<view name="Internal Layout">
|
||||
<bounds left="0" right="29" top="0" bottom="11" />
|
||||
|
||||
<bezel element="text_4"><bounds x="0.5" y="0.5" width="2" height="1" /></bezel>
|
||||
<bezel element="text_2"><bounds x="3.5" y="0.5" width="2" height="1" /></bezel>
|
||||
<bezel element="text_1"><bounds x="6.5" y="0.5" width="2" height="1" /></bezel>
|
||||
<bezel element="text_8"><bounds x="9.5" y="0.5" width="2" height="1" /></bezel>
|
||||
<bezel element="text_4"><bounds x="12.5" y="0.5" width="2" height="1" /></bezel>
|
||||
<bezel element="text_2"><bounds x="15.5" y="0.5" width="2" height="1" /></bezel>
|
||||
<bezel element="text_1"><bounds x="18.5" y="0.5" width="2" height="1" /></bezel>
|
||||
|
||||
<bezel element="text_6"><bounds x="0.5" y="3.5" width="2" height="1" /></bezel>
|
||||
<bezel element="text_5"><bounds x="3.5" y="3.5" width="2" height="1" /></bezel>
|
||||
<bezel element="text_4"><bounds x="6.5" y="3.5" width="2" height="1" /></bezel>
|
||||
<bezel element="text_3"><bounds x="9.5" y="3.5" width="2" height="1" /></bezel>
|
||||
<bezel element="text_2"><bounds x="12.5" y="3.5" width="2" height="1" /></bezel>
|
||||
<bezel element="text_1"><bounds x="15.5" y="3.5" width="2" height="1" /></bezel>
|
||||
<bezel element="text_0"><bounds x="18.5" y="3.5" width="2" height="1" /></bezel>
|
||||
|
||||
<bezel name="1.6" element="led"><bounds x="1" y="2" width="1" height="1" /></bezel>
|
||||
<bezel name="1.5" element="led"><bounds x="4" y="2" width="1" height="1" /></bezel>
|
||||
<bezel name="1.4" element="led"><bounds x="7" y="2" width="1" height="1" /></bezel>
|
||||
<bezel name="1.3" element="led"><bounds x="10" y="2" width="1" height="1" /></bezel>
|
||||
<bezel name="1.2" element="led"><bounds x="13" y="2" width="1" height="1" /></bezel>
|
||||
<bezel name="1.1" element="led"><bounds x="16" y="2" width="1" height="1" /></bezel>
|
||||
<bezel name="1.0" element="led"><bounds x="19" y="2" width="1" height="1" /></bezel>
|
||||
|
||||
<bezel name="digit0" element="digit"><bounds x="23" y="2" width="5" height="7.5" /></bezel>
|
||||
|
||||
|
||||
</view>
|
||||
</mamelayout>
|
@ -13687,6 +13687,7 @@ amaztron // Coleco
|
||||
astro // Kosmos
|
||||
bankshot // Parker Bros
|
||||
bigtrak // Milton Bradley
|
||||
cnfball // Conic
|
||||
cnfball2 // Conic
|
||||
cnsector // Parker Bros
|
||||
comp4 // Milton Bradley
|
||||
@ -13698,6 +13699,7 @@ ebball3 // Entex
|
||||
efootb4 // Entex
|
||||
einvader // Entex
|
||||
elecdet // Ideal
|
||||
fxmcr165 // Gakken
|
||||
gjackpot // Gakken
|
||||
gpoker // Gakken
|
||||
h2hbaseb // Coleco
|
||||
|
Loading…
Reference in New Issue
Block a user