mirror of
https://github.com/holub/mame
synced 2025-06-07 13:23:50 +03:00
Corona.cpp driver...
- Fixed colors to Le Grandchamps. - Cleaned up the driver. - Added technical notes.
This commit is contained in:
parent
e7fe528179
commit
8dc4a313fa
@ -6,7 +6,7 @@
|
||||
1980-81-82, Corona Co, LTD.
|
||||
|
||||
Driver written by Roberto Fresca.
|
||||
Based on roul driver from Roberto Zandona' & Angelo Salese.
|
||||
Blitter based on roul driver from Roberto Zandona' & Angelo Salese.
|
||||
|
||||
|
||||
Games running in this hardware:
|
||||
@ -14,6 +14,7 @@
|
||||
* Winners Circle (81, 28*28 PCB), 1981, Corona Co, LTD.
|
||||
* Winners Circle (81, 18*22 PCB), 1981, Corona Co, LTD.
|
||||
* Winners Circle (82), 1982, Corona Co, LTD.
|
||||
* Le Grandchamps, 198?, Isermatic France S.A.
|
||||
* Ruleta RE-800 (earlier), 1991, Entretenimientos GEMINIS & GENATRON.
|
||||
* Ruleta RE-800 (v1.0), 1991, Entretenimientos GEMINIS & GENATRON.
|
||||
* Ruleta RE-800 (v3.0), 1992, Entretenimientos GEMINIS & GENATRON.
|
||||
@ -23,13 +24,16 @@
|
||||
|
||||
Special thanks to Rob Ragon for his invaluable cooperation.
|
||||
|
||||
|
||||
**************************************************************************
|
||||
|
||||
Game Notes:
|
||||
----------
|
||||
|
||||
Winners Circle.
|
||||
4-players horse racing game.
|
||||
* Winners Circle.
|
||||
1980-81-82 Corona Co.LTD.
|
||||
|
||||
Four players 7-horses racing game.
|
||||
|
||||
Very rare game, due to massive conversions to any kind of roulette games.
|
||||
|
||||
@ -37,6 +41,15 @@
|
||||
games history, he will say that every started with the Winners Circle.
|
||||
|
||||
|
||||
* Le Grandchamps.
|
||||
Isermatic France S.A.
|
||||
|
||||
Four players 6-horses racing game, similar to Winner Circle
|
||||
(note that this one has 6 horses instead of 7).
|
||||
|
||||
It has four independent coin slots of 10-francs each.
|
||||
|
||||
|
||||
**************************************************************************
|
||||
|
||||
Hardware Notes:
|
||||
@ -287,6 +300,7 @@
|
||||
| - |28| - |
|
||||
'-----------------------+--+---------------------------'
|
||||
|
||||
|
||||
**************************************************************************
|
||||
|
||||
TODO:
|
||||
@ -315,12 +329,12 @@
|
||||
|
||||
namespace {
|
||||
|
||||
#define WC81_MAIN_XTAL XTAL(24'000'000) /* Main crystal for Winners Circle 28*28 pins PCB's */
|
||||
#define WC82_MAIN_XTAL XTAL(18'432'000) /* Main crystal for Winners Circle 18*22 pins PCB's */
|
||||
#define RE_MAIN_XTAL XTAL(16'000'000) /* Main for roulette boards */
|
||||
#define VIDEO_XTAL XTAL(20'000'000) /* Video circuitry crystal (all) */
|
||||
#define AY_CLK1 1000000 /* AY-3-8912 clock for WC81 (28*28 PCB), measured */
|
||||
#define AY_CLK2 2000000 /* AY-3-8910 clock for 81b & 82 (18*22 PCB), guessed */
|
||||
#define WC81_MAIN_XTAL XTAL(24'000'000) // Main crystal for Winners Circle 28*28 pins PCB's
|
||||
#define WC82_MAIN_XTAL XTAL(18'432'000) // Main crystal for Winners Circle 18*22 pins PCB's
|
||||
#define RE_MAIN_XTAL XTAL(16'000'000) // Main for roulette boards
|
||||
#define VIDEO_XTAL XTAL(20'000'000) // Video circuitry crystal (all)
|
||||
#define AY_CLK1 1000000 // AY-3-8912 clock for WC81 (28*28 PCB), measured
|
||||
#define AY_CLK2 2000000 // AY-3-8910 clock for 81b & 82 (18*22 PCB), guessed
|
||||
#define VIDEOBUF_SIZE 512*512
|
||||
|
||||
|
||||
@ -448,14 +462,13 @@ void corona_state::blitter_aux_w(uint8_t data)
|
||||
|
||||
uint8_t corona_state::blitter_status_r()
|
||||
{
|
||||
/* code checks bit 6 and/or bit 7 */
|
||||
//return machine().rand() & 0xc0;
|
||||
/*
|
||||
x--- ---- blitter busy
|
||||
-x-- ---- vblank
|
||||
*/
|
||||
// Code checks bit 6 and/or bit 7
|
||||
//
|
||||
// x--- ---- blitter busy
|
||||
// -x-- ---- vblank
|
||||
|
||||
return 0x80 | ((m_screen->vblank() & 1) << 6);
|
||||
// return machine().rand() & 0xc0;
|
||||
}
|
||||
|
||||
void corona_state::blitter_execute(int x, int y, int color, int width, int flag)
|
||||
@ -463,10 +476,10 @@ void corona_state::blitter_execute(int x, int y, int color, int width, int flag)
|
||||
int const xdir = (flag & 0x10) ? -1 : 1;
|
||||
int const ydir = (!(flag & 0x20)) ? -1 : 1;
|
||||
|
||||
if(width == 0) //ignored
|
||||
if(width == 0) // ignored
|
||||
return;
|
||||
|
||||
if((flag & 0xc0) == 0) /* square shape / layer clearance */
|
||||
if((flag & 0xc0) == 0) // square shape / layer clearance
|
||||
{
|
||||
if(x != 128 || y != 128 || width != 8)
|
||||
printf("%02x %02x %02x %02x %02x\n", x, y, color, width, flag);
|
||||
@ -475,9 +488,9 @@ void corona_state::blitter_execute(int x, int y, int color, int width, int flag)
|
||||
for(int xp = 0; xp < 0x100; xp++)
|
||||
m_videobuf[(yp & 0x1ff) * 512 + (xp & 0x1ff)] = color;
|
||||
}
|
||||
else /* line shape */
|
||||
else // line shape
|
||||
{
|
||||
//printf("%02x %02x %02x %02x %02x\n",x,y,color,width,flag);
|
||||
// printf("%02x %02x %02x %02x %02x\n", x, y, color, width, flag);
|
||||
|
||||
for(int i = 0; i < width; i++)
|
||||
{
|
||||
@ -575,10 +588,10 @@ void corona_state::mux_port_w(uint8_t data)
|
||||
Data is written inverted.
|
||||
|
||||
*/
|
||||
m_input_selector = (data ^ 0xff) & 0x3f; /* Input Selector, */
|
||||
m_input_selector = (data ^ 0xff) & 0x3f; // Input Selector
|
||||
|
||||
machine().bookkeeping().coin_counter_w(0, (data ^ 0xff) & 0x40); /* Credits In (mechanical meters) */
|
||||
machine().bookkeeping().coin_counter_w(1, (data ^ 0xff) & 0x80); /* Credits Out (mechanical meters) */
|
||||
machine().bookkeeping().coin_counter_w(0, (data ^ 0xff) & 0x40); // Credits In (mechanical meters)
|
||||
machine().bookkeeping().coin_counter_w(1, (data ^ 0xff) & 0x80); // Credits Out (mechanical meters)
|
||||
|
||||
// logerror("muxsel: %02x \n", m_input_selector);
|
||||
}
|
||||
@ -596,9 +609,9 @@ void corona_state::wc_meters_w(uint8_t data)
|
||||
Data is written inverted.
|
||||
|
||||
*/
|
||||
machine().bookkeeping().coin_counter_w(0, (data ^ 0xff) & 0x01); /* Credits In */
|
||||
machine().bookkeeping().coin_counter_w(1, (data ^ 0xff) & 0x02); /* Credits In (through Coin 3) */
|
||||
machine().bookkeeping().coin_counter_w(2, (data ^ 0xff) & 0x04); /* Credits Out */
|
||||
machine().bookkeeping().coin_counter_w(0, (data ^ 0xff) & 0x01); // Credits In
|
||||
machine().bookkeeping().coin_counter_w(1, (data ^ 0xff) & 0x02); // Credits In (through Coin 3)
|
||||
machine().bookkeeping().coin_counter_w(2, (data ^ 0xff) & 0x04); // Credits Out
|
||||
|
||||
// popmessage("meters: %02x", (data ^ 0xff));
|
||||
}
|
||||
@ -649,17 +662,17 @@ void corona_state::winner81_cpu_io_map(address_map &map)
|
||||
map(0x75, 0x75).r(FUNC(corona_state::blitter_status_r));
|
||||
map(0x76, 0x76).w(FUNC(corona_state::blitter_aux_w));
|
||||
|
||||
map(0xd8, 0xd8).nopw(); /* dunno, but is writing 0's very often */
|
||||
map(0xd8, 0xd8).nopw(); // dunno, but is writing 0's very often
|
||||
map(0xdf, 0xdf).w(FUNC(corona_state::sound_latch_w));
|
||||
|
||||
map(0xe8, 0xe8).portr("IN0"); /* credits for players A, B, C, D */
|
||||
map(0xe8, 0xe8).portr("IN0"); // credits for players A, B, C, D
|
||||
map(0xe9, 0xe9).portr("IN3");
|
||||
map(0xea, 0xea).portr("IN1"); /* left & right for all players */
|
||||
map(0xeb, 0xeb).portr("IN2"); /* bet for all players */
|
||||
map(0xea, 0xea).portr("IN1"); // left & right for all players
|
||||
map(0xeb, 0xeb).portr("IN2"); // bet for all players
|
||||
map(0xec, 0xec).portr("IN4");
|
||||
map(0xed, 0xed).portr("DSW1"); /* DIP switches bank 1 */
|
||||
map(0xed, 0xed).portr("DSW1"); // DIP switches bank #1
|
||||
map(0xee, 0xee).portr("DSW2");
|
||||
map(0xef, 0xef).w(FUNC(corona_state::wc_meters_w)); /* meters: coin1 = bit0, coin2 = bit1, coinout = bit2 */
|
||||
map(0xef, 0xef).w(FUNC(corona_state::wc_meters_w)); // meters: coin1 = bit0, coin2 = bit1, coinout = bit2
|
||||
}
|
||||
|
||||
void corona_state::winner81_sound_map(address_map &map)
|
||||
@ -710,14 +723,14 @@ void corona_state::winner82_cpu_io_map(address_map &map)
|
||||
map(0xf4, 0xf4).w(FUNC(corona_state::blitter_unk_w));
|
||||
map(0xf5, 0xf5).r(FUNC(corona_state::blitter_status_r));
|
||||
|
||||
map(0xf8, 0xf8).portr("DSW1"); /* coinage DIP SW */
|
||||
map(0xf9, 0xf9).portr("IN0"); /* controls for players A & B */
|
||||
map(0xfa, 0xfa).portr("IN1"); /* credits for players A, B, C, D */
|
||||
map(0xfb, 0xfb).portr("IN3"); /* single credits for players A, B, C, D, + fix bits 3, 4, 5, 6 in meters */
|
||||
map(0xf8, 0xf8).portr("DSW1"); // coinage DIP SW
|
||||
map(0xf9, 0xf9).portr("IN0"); // controls for players A & B
|
||||
map(0xfa, 0xfa).portr("IN1"); // credits for players A, B, C, D
|
||||
map(0xfb, 0xfb).portr("IN3"); // single credits for players A, B, C, D, + fix bits 3, 4, 5, 6 in meters
|
||||
map(0xfc, 0xfc).w(FUNC(corona_state::wc_meters_w));
|
||||
map(0xfd, 0xfd).portr("IN2"); /* controls for players C & D */
|
||||
map(0xfd, 0xfd).portr("IN2"); // controls for players C & D
|
||||
map(0xfe, 0xfe).w(FUNC(corona_state::sound_latch_w));
|
||||
map(0xff, 0xff).portr("DSW2"); /* no idea */
|
||||
map(0xff, 0xff).portr("DSW2"); // no idea
|
||||
}
|
||||
|
||||
void corona_state::winner82_sound_map(address_map &map)
|
||||
@ -731,7 +744,7 @@ void corona_state::winner82_sound_cpu_io_map(address_map &map)
|
||||
map.global_mask(0xff);
|
||||
map(0x00, 0x00).r(FUNC(corona_state::sound_latch_r));
|
||||
map(0x00, 0x01).w("aysnd", FUNC(ay8910_device::address_data_w));
|
||||
map(0x02, 0x03).nopw(); /* socket for another ay, inited but never played */
|
||||
map(0x02, 0x03).nopw(); // socket for another ay-8910, initialized but never played
|
||||
}
|
||||
|
||||
/* Ruleta RE-800
|
||||
@ -740,14 +753,14 @@ void corona_state::winner82_sound_cpu_io_map(address_map &map)
|
||||
Status: F5
|
||||
Ball: FF
|
||||
|
||||
F4 W (FF/00)
|
||||
F8 R DIP switches? (polled just at game start)
|
||||
F9 R DIP switches? (polled after reset, and when insert credits)
|
||||
F4 -W (FF/00)
|
||||
F8 R- DIP switches? (polled just at game start)
|
||||
F9 R- DIP switches? (polled after reset, and when insert credits)
|
||||
|
||||
FC W mux selector & meters
|
||||
FD R muxed port
|
||||
FC -W mux selector & meters
|
||||
FD R- muxed port
|
||||
|
||||
FE W snd_latch... writes 02 on events, 07 when ball.
|
||||
FE -W snd_latch... writes 02 on events, 07 when ball.
|
||||
|
||||
Port:
|
||||
0 - credits
|
||||
@ -765,7 +778,7 @@ void corona_state::re800_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x3fff).rom();
|
||||
map(0x4000, 0x47ff).ram();
|
||||
map(0x8000, 0x87ff).ram().share("nvram"); //801a comm?
|
||||
map(0x8000, 0x87ff).ram().share("nvram"); // 801a comm?
|
||||
}
|
||||
|
||||
void corona_state::re800_cpu_io_map(address_map &map)
|
||||
@ -805,13 +818,13 @@ void corona_state::re800_sound_cpu_io_map(address_map &map)
|
||||
Status: F5
|
||||
Ball: F9
|
||||
|
||||
F8 R DIP switches?
|
||||
FA R DIP switches?
|
||||
F8 R- DIP switches?
|
||||
FA R- DIP switches?
|
||||
|
||||
FC W mux selector & meters
|
||||
FD R muxed port
|
||||
FC -W mux selector & meters
|
||||
FD R- muxed port
|
||||
|
||||
FE W snd_latch...
|
||||
FE -W snd_latch...
|
||||
|
||||
Port:
|
||||
0 - bet
|
||||
@ -879,20 +892,20 @@ static INPUT_PORTS_START( winner81 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_7) PORT_NAME("Player 3 - Coin 2")
|
||||
|
||||
PORT_START("IN1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("Player 2 - Right") /* B right */
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("Player 1 - Right") /* A right */
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L) PORT_NAME("Player 4 - Right") /* D right */
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) PORT_NAME("Player 3 - Right") /* C right */
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Player 2 - Left") /* B left */
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LEFT) PORT_NAME("Player 1 - Left") /* A left */
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J) PORT_NAME("Player 4 - Left") /* D left */
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) PORT_NAME("Player 3 - Left") /* C left */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("Player 2 - Right") // B right
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("Player 1 - Right") // A right
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L) PORT_NAME("Player 4 - Right") // D right
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) PORT_NAME("Player 3 - Right") // C right
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Player 2 - Left") // B left
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LEFT) PORT_NAME("Player 1 - Left") // A left
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J) PORT_NAME("Player 4 - Left") // D left
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) PORT_NAME("Player 3 - Left") // C left
|
||||
|
||||
PORT_START("IN2")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Player 2 - Bet") /* B bet */
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LCONTROL) PORT_NAME("Player 1 - Bet") /* A bet */
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K) PORT_NAME("Player 4 - Bet") /* D bet */
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S) PORT_NAME("Player 3 - Bet") /* C bet */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Player 2 - Bet") // B bet
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LCONTROL) PORT_NAME("Player 1 - Bet") // A bet
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K) PORT_NAME("Player 4 - Bet") // D bet
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S) PORT_NAME("Player 3 - Bet") // C bet
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_T) PORT_NAME("IN2-5")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Y) PORT_NAME("IN2-6")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U) PORT_NAME("IN2-7")
|
||||
@ -903,10 +916,10 @@ static INPUT_PORTS_START( winner81 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F) PORT_NAME("IN3-2")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G) PORT_NAME("IN3-3")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H) PORT_NAME("IN3-4")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W) PORT_NAME("Player 2 - Credits Out") /* B manual credits out */
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q) PORT_NAME("Player 1 - Credits Out") /* A manual credits out */
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R) PORT_NAME("Player 4 - Credits Out") /* D manual credits out */
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E) PORT_NAME("Player 3 - Credits Out") /* C manual credits out */
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W) PORT_NAME("Player 2 - Credits Out") // B manual credits out
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q) PORT_NAME("Player 1 - Credits Out") // A manual credits out
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R) PORT_NAME("Player 4 - Credits Out") // D manual credits out
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E) PORT_NAME("Player 3 - Credits Out") // C manual credits out
|
||||
|
||||
PORT_START("IN4")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) PORT_NAME("IN4-1")
|
||||
@ -972,45 +985,45 @@ INPUT_PORTS_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( winner82 )
|
||||
PORT_START("IN0") /* players A & B controls */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LCONTROL) PORT_NAME("Player A - Bet/Triple") /* A: bet/triple */
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q) PORT_NAME("Player A - Credits Out") /* A: credits out */
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LEFT) PORT_NAME("Player A - Cursor Left") /* A: cursor left */
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("Player A - Cursor Right") /* A: cursor right */
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Player B - Bet/Triple") /* B: bet/triple */
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W) PORT_NAME("Player B - Credits Out") /* B: credits out */
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Player B - Cursor Left") /* B: cursor left */
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("Player B - Cursor Right") /* B: cursor right */
|
||||
PORT_START("IN0") // players A & B controls
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LCONTROL) PORT_NAME("Player A - Bet/Triple") // A: bet/triple
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q) PORT_NAME("Player A - Credits Out") // A: credits out
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_LEFT) PORT_NAME("Player A - Cursor Left") // A: cursor left
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_RIGHT) PORT_NAME("Player A - Cursor Right") // A: cursor right
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Player B - Bet/Triple") // B: bet/triple
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W) PORT_NAME("Player B - Credits Out") // B: credits out
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Player B - Cursor Left") // B: cursor left
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("Player B - Cursor Right") // B: cursor right
|
||||
|
||||
PORT_START("IN1") /* credits */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_6) PORT_NAME("Player B - Coin 2") /* 10 credits / pulse */
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_5) PORT_NAME("Player A - Coin 2") /* 10 credits / pulse */
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_8) PORT_NAME("Player D - Coin 2") /* 10 credits / pulse */
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_7) PORT_NAME("Player C - Coin 2") /* 10 credits / pulse */
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_2) PORT_NAME("Player B - Coin 1") /* 1 credit / pulse */
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_1) PORT_NAME("Player A - Coin 1") /* 1 credit / pulse */
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_4) PORT_NAME("Player D - Coin 1") /* 1 credit / pulse */
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_3) PORT_NAME("Player C - Coin 1") /* 1 credit / pulse */
|
||||
PORT_START("IN1") //credits
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_6) PORT_NAME("Player B - Coin 2") // 10 credits / pulse
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_5) PORT_NAME("Player A - Coin 2") // 10 credits / pulse
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_8) PORT_NAME("Player D - Coin 2") // 10 credits / pulse
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_7) PORT_NAME("Player C - Coin 2") // 10 credits / pulse
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_2) PORT_NAME("Player B - Coin 1") // 1 credit / pulse
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_1) PORT_NAME("Player A - Coin 1") // 1 credit / pulse
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_4) PORT_NAME("Player D - Coin 1") // 1 credit / pulse
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_3) PORT_NAME("Player C - Coin 1") // 1 credit / pulse
|
||||
|
||||
PORT_START("IN2") /* players C & D controls */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K) PORT_NAME("Player C - Bet/Triple") /* C: bet/triple */
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E) PORT_NAME("Player C - Credits Out") /* C: credits out */
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L) PORT_NAME("Player C - Cursor Right") /* C: cursor right */
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J) PORT_NAME("Player C - Cursor Left") /* C: cursor left */
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S) PORT_NAME("Player D - Bet/Triple") /* D: bet/triple */
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R) PORT_NAME("Player D - Credits Out") /* D: credits out */
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) PORT_NAME("Player D - Cursor Right") /* D: cursor right */
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) PORT_NAME("Player D - Cursor Left") /* D: cursor left */
|
||||
PORT_START("IN2") // players C & D controls
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K) PORT_NAME("Player C - Bet/Triple") // C: bet/triple
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E) PORT_NAME("Player C - Credits Out") // C: credits out
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L) PORT_NAME("Player C - Cursor Right") // C: cursor right
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J) PORT_NAME("Player C - Cursor Left") // C: cursor left
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S) PORT_NAME("Player D - Bet/Triple") // D: bet/triple
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R) PORT_NAME("Player D - Credits Out") // D: credits out
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) PORT_NAME("Player D - Cursor Right") // D: cursor right
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) PORT_NAME("Player D - Cursor Left") // D: cursor left
|
||||
|
||||
PORT_START("IN3")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X) PORT_NAME("Player B - Coin 3") /* always 1 credit, lockable through DIP switch */
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) PORT_NAME("Player A - Coin 3") /* always 1 credit, lockable through DIP switch */
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V) PORT_NAME("Player D - Coin 3") /* always 1 credit, lockable through DIP switch */
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C) PORT_NAME("Player C - Coin 3") /* always 1 credit, lockable through DIP switch */
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B) PORT_NAME("IN3-5") /* bit 3 in meters */
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N) PORT_NAME("IN3-6") /* bit 4 in meters */
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M) PORT_NAME("IN3-7") /* bit 5 in meters */
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O) PORT_NAME("IN3-8") /* bit 6 in meters */
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X) PORT_NAME("Player B - Coin 3") // always 1 credit, lockable through DIP switch
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) PORT_NAME("Player A - Coin 3") // always 1 credit, lockable through DIP switch
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V) PORT_NAME("Player D - Coin 3") // always 1 credit, lockable through DIP switch
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C) PORT_NAME("Player C - Coin 3") // always 1 credit, lockable through DIP switch
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B) PORT_NAME("IN3-5") // bit 3 in meters
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N) PORT_NAME("IN3-6") // bit 4 in meters
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M) PORT_NAME("IN3-7") // bit 5 in meters
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O) PORT_NAME("IN3-8") // bit 6 in meters
|
||||
|
||||
PORT_START("IN4")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("IN4-1")
|
||||
@ -1076,7 +1089,7 @@ INPUT_PORTS_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( re800 )
|
||||
/* Multiplexed from just one single port */
|
||||
// Multiplexed from just one single port
|
||||
PORT_START("IN0-1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_1) PORT_NAME("Player 1 - Credits")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) PORT_NAME("Player 1 - Credits Clear")
|
||||
@ -1169,14 +1182,14 @@ static INPUT_PORTS_START( re800 )
|
||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x00, "Credits Lock" ) /* lock the credits in/out */
|
||||
PORT_DIPNAME( 0x80, 0x00, "Credits Lock" ) // lock the credits in/out
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( re800v3 )
|
||||
/* Multiplexed from just one single port */
|
||||
// Multiplexed from just one single port
|
||||
PORT_START("IN0-1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_1) PORT_NAME("Player 1 - Credits In")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) PORT_NAME("Player 1 - Credits Out / Fin (end)")
|
||||
@ -1269,7 +1282,7 @@ static INPUT_PORTS_START( re800v3 )
|
||||
PORT_DIPNAME( 0x40, 0x40, "Bookkeeping Mode" )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x00, "Credits Lock" ) /* lock the credits in/out */
|
||||
PORT_DIPNAME( 0x80, 0x00, "Credits Lock" ) // lock the credits in/out
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
@ -1284,7 +1297,7 @@ static INPUT_PORTS_START( luckyrlt )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_UP) PORT_NAME("Player 1 - Up")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) PORT_NAME("Player 1 - Credits Out")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_1) PORT_NAME("Player 1 - Credits In")
|
||||
PORT_DIPNAME( 0x80, 0x00, "Player 1 Credits Lock" ) /* lock the credits in/out */ PORT_DIPLOCATION("DSW1:2")
|
||||
PORT_DIPNAME( 0x80, 0x00, "Player 1 Credits Lock" ) PORT_DIPLOCATION("DSW1:2") // lock the credits in/out
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
|
||||
@ -1296,7 +1309,7 @@ static INPUT_PORTS_START( luckyrlt )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Player 2 - Up")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X) PORT_NAME("Player 2 - Credits Out")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_2) PORT_NAME("Player 2 - Credits In")
|
||||
PORT_DIPNAME( 0x80, 0x00, "Player 2 Credits Lock" ) /* lock the credits in/out */ PORT_DIPLOCATION("DSW1:3")
|
||||
PORT_DIPNAME( 0x80, 0x00, "Player 2 Credits Lock" ) PORT_DIPLOCATION("DSW1:3") // lock the credits in/out
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
|
||||
@ -1308,7 +1321,7 @@ static INPUT_PORTS_START( luckyrlt )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W) PORT_NAME("Player 3 - Up")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C) PORT_NAME("Player 3 - Credits Out")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_3) PORT_NAME("Player 3 - Credits In")
|
||||
PORT_DIPNAME( 0x80, 0x00, "Player 3 Credits Lock" ) /* lock the credits in/out */ PORT_DIPLOCATION("DSW1:4")
|
||||
PORT_DIPNAME( 0x80, 0x00, "Player 3 Credits Lock" ) PORT_DIPLOCATION("DSW1:4") // lock the credits in/out
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
|
||||
@ -1320,7 +1333,7 @@ static INPUT_PORTS_START( luckyrlt )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_T) PORT_NAME("Player 4 - Up")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V) PORT_NAME("Player 4 - Credits Out")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_4) PORT_NAME("Player 4 - Credits In")
|
||||
PORT_DIPNAME( 0x80, 0x00, "Player 4 Credits Lock" ) /* lock the credits in/out */ PORT_DIPLOCATION("DSW1:5")
|
||||
PORT_DIPNAME( 0x80, 0x00, "Player 4 Credits Lock" ) PORT_DIPLOCATION("DSW1:5") // lock the credits in/out
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
|
||||
@ -1332,7 +1345,7 @@ static INPUT_PORTS_START( luckyrlt )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I) PORT_NAME("Player 5 - Up")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B) PORT_NAME("Player 5 - Credits Out")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_5) PORT_NAME("Player 5 - Credits In")
|
||||
PORT_DIPNAME( 0x80, 0x00, "Player 5 Credits Lock" ) /* lock the credits in/out */ PORT_DIPLOCATION("DSW1:6")
|
||||
PORT_DIPNAME( 0x80, 0x00, "Player 5 Credits Lock" ) PORT_DIPLOCATION("DSW1:6") // lock the credits in/out
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
|
||||
@ -1344,7 +1357,7 @@ static INPUT_PORTS_START( luckyrlt )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_HOME) PORT_NAME("Player 6 - Up")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N) PORT_NAME("Player 6 - Credits Out")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_6) PORT_NAME("Player 6 - Credits In")
|
||||
PORT_DIPNAME( 0x80, 0x00, "Player 6 Credits Lock" ) /* lock the credits in/out */ PORT_DIPLOCATION("DSW1:7")
|
||||
PORT_DIPNAME( 0x80, 0x00, "Player 6 Credits Lock" ) PORT_DIPLOCATION("DSW1:7") // lock the credits in/out
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
|
||||
@ -1369,13 +1382,13 @@ static INPUT_PORTS_START( luckyrlt )
|
||||
PORT_DIPSETTING( 0x0a, "18.7" )
|
||||
PORT_DIPSETTING( 0x0c, "21.9" )
|
||||
PORT_DIPSETTING( 0x0e, "25.1" )
|
||||
PORT_DIPNAME( 0x10, 0x10, "Reset" ) PORT_DIPLOCATION("DSW2:5") /* don't know how it works */
|
||||
PORT_DIPNAME( 0x10, 0x10, "Reset" ) PORT_DIPLOCATION("DSW2:5") // don't know how it works
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x20, "Pago Doble (Double Pay)" ) PORT_DIPLOCATION("DSW2:6")
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x40, "Pago x5 (Pay x5)" ) PORT_DIPLOCATION("DSW2:7") /* only in PLUS 1990 model */
|
||||
PORT_DIPNAME( 0x40, 0x40, "Pago x5 (Pay x5)" ) PORT_DIPLOCATION("DSW2:7") // only in PLUS 1990 model
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
@ -1387,22 +1400,22 @@ INPUT_PORTS_END
|
||||
|
||||
void corona_state::winner81(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
Z80(config, m_maincpu, WC81_MAIN_XTAL/8); /* measured */
|
||||
// basic machine hardware
|
||||
Z80(config, m_maincpu, WC81_MAIN_XTAL/8); // measured
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &corona_state::winner81_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &corona_state::winner81_cpu_io_map);
|
||||
|
||||
Z80(config, m_soundcpu, WC81_MAIN_XTAL/10); /* measured */
|
||||
Z80(config, m_soundcpu, WC81_MAIN_XTAL/10); // measured
|
||||
m_soundcpu->set_addrmap(AS_PROGRAM, &corona_state::winner81_sound_map);
|
||||
m_soundcpu->set_addrmap(AS_IO, &corona_state::winner81_sound_cpu_io_map);
|
||||
m_soundcpu->set_periodic_int(FUNC(corona_state::nmi_line_pulse), attotime::from_hz(244)); /* 244 Hz (1MHz/16/16/16) */
|
||||
m_soundcpu->set_periodic_int(FUNC(corona_state::nmi_line_pulse), attotime::from_hz(244)); // 244 Hz (1MHz/16/16/16)
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
/* video hardware */
|
||||
// video hardware
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); //not accurate
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
|
||||
m_screen->set_size(32*8, 32*8);
|
||||
m_screen->set_visarea(0*8, 32*8-1, 1*8, 31*8-1);
|
||||
m_screen->set_screen_update(FUNC(corona_state::screen_update_winner));
|
||||
@ -1415,27 +1428,27 @@ void corona_state::winner81(machine_config &config)
|
||||
|
||||
GENERIC_LATCH_8(config, m_soundlatch);
|
||||
|
||||
AY8912(config, "aysnd", AY_CLK1).add_route(ALL_OUTPUTS, "mono", 1.0); /* measured */
|
||||
AY8912(config, "aysnd", AY_CLK1).add_route(ALL_OUTPUTS, "mono", 1.0); // measured
|
||||
}
|
||||
|
||||
|
||||
void corona_state::winner82(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
Z80(config, m_maincpu, WC82_MAIN_XTAL/8); /* measured */
|
||||
// basic machine hardware
|
||||
Z80(config, m_maincpu, WC82_MAIN_XTAL/8); // measured
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &corona_state::winner82_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &corona_state::winner82_cpu_io_map);
|
||||
|
||||
Z80(config, m_soundcpu, WC82_MAIN_XTAL/8); /* measured */
|
||||
m_soundcpu->set_addrmap(AS_PROGRAM, &corona_state::winner82_sound_map); /* IM1 instead of NMI */
|
||||
Z80(config, m_soundcpu, WC82_MAIN_XTAL/8); // measured
|
||||
m_soundcpu->set_addrmap(AS_PROGRAM, &corona_state::winner82_sound_map); // IM1 instead of NMI
|
||||
m_soundcpu->set_addrmap(AS_IO, &corona_state::winner82_sound_cpu_io_map);
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
/* video hardware */
|
||||
// video hardware
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); //not accurate
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
|
||||
m_screen->set_size(32*8, 32*8);
|
||||
m_screen->set_visarea(0*8, 32*8-1, 1*8, 31*8-1);
|
||||
m_screen->set_screen_update(FUNC(corona_state::screen_update_winner));
|
||||
@ -1448,28 +1461,28 @@ void corona_state::winner82(machine_config &config)
|
||||
|
||||
GENERIC_LATCH_8(config, m_soundlatch);
|
||||
|
||||
AY8910(config, "aysnd", AY_CLK2).add_route(ALL_OUTPUTS, "mono", 1.0); /* measured */
|
||||
AY8910(config, "aysnd", AY_CLK2).add_route(ALL_OUTPUTS, "mono", 1.0); // measured
|
||||
}
|
||||
|
||||
|
||||
void corona_state::re800(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
Z80(config, m_maincpu, RE_MAIN_XTAL/8); /* measured 2MHz */
|
||||
// basic machine hardware
|
||||
Z80(config, m_maincpu, RE_MAIN_XTAL/8); // measured 2MHz
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &corona_state::re800_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &corona_state::re800_cpu_io_map);
|
||||
|
||||
Z80(config, m_soundcpu, RE_MAIN_XTAL/8); /* measured 2MHz */
|
||||
Z80(config, m_soundcpu, RE_MAIN_XTAL/8); // measured 2MHz
|
||||
m_soundcpu->set_addrmap(AS_PROGRAM, &corona_state::re800_sound_map);
|
||||
m_soundcpu->set_addrmap(AS_IO, &corona_state::re800_sound_cpu_io_map);
|
||||
m_soundcpu->set_periodic_int(FUNC(corona_state::nmi_line_pulse), attotime::from_hz(244)); /* 244 Hz (1MHz/16/16/16) */
|
||||
m_soundcpu->set_periodic_int(FUNC(corona_state::nmi_line_pulse), attotime::from_hz(244)); // 244 Hz (1MHz/16/16/16)
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
/* video hardware */
|
||||
// video hardware
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); //not accurate
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
|
||||
m_screen->set_size(32*8, 32*8);
|
||||
m_screen->set_visarea(0*8, 32*8-1, 1*8, 32*8-1);
|
||||
m_screen->set_screen_update(FUNC(corona_state::screen_update_winner));
|
||||
@ -1488,21 +1501,21 @@ void corona_state::re800(machine_config &config)
|
||||
|
||||
void corona_state::rcirulet(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
Z80(config, m_maincpu, RE_MAIN_XTAL/8); /* measured 2MHz */
|
||||
// basic machine hardware
|
||||
Z80(config, m_maincpu, RE_MAIN_XTAL/8); // measured 2MHz
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &corona_state::re800_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &corona_state::re800_cpu_io_map);
|
||||
|
||||
Z80(config, m_soundcpu, RE_MAIN_XTAL/8); /* measured 2MHz */
|
||||
m_soundcpu->set_addrmap(AS_PROGRAM, &corona_state::winner82_sound_map); /* IM1 instead of NMI */
|
||||
Z80(config, m_soundcpu, RE_MAIN_XTAL/8); // measured 2MHz
|
||||
m_soundcpu->set_addrmap(AS_PROGRAM, &corona_state::winner82_sound_map); // IM1 instead of NMI
|
||||
m_soundcpu->set_addrmap(AS_IO, &corona_state::winner82_sound_cpu_io_map);
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
/* video hardware */
|
||||
// video hardware
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); //not accurate
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
|
||||
m_screen->set_size(32*8, 32*8);
|
||||
m_screen->set_visarea(0*8, 32*8-1, 1*8, 32*8-1);
|
||||
m_screen->set_screen_update(FUNC(corona_state::screen_update_winner));
|
||||
@ -1521,19 +1534,19 @@ void corona_state::rcirulet(machine_config &config)
|
||||
|
||||
void corona_state::luckyrlt(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
Z80(config, m_maincpu, RE_MAIN_XTAL/8); /* measured 2MHz */
|
||||
// basic machine hardware
|
||||
Z80(config, m_maincpu, RE_MAIN_XTAL/8); // measured 2MHz
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &corona_state::luckyrlt_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &corona_state::luckyrlt_cpu_io_map);
|
||||
|
||||
Z80(config, m_soundcpu, RE_MAIN_XTAL/8); /* measured 2MHz */
|
||||
Z80(config, m_soundcpu, RE_MAIN_XTAL/8); // measured 2MHz
|
||||
m_soundcpu->set_addrmap(AS_PROGRAM, &corona_state::luckyrlt_sound_map);
|
||||
m_soundcpu->set_addrmap(AS_IO, &corona_state::luckyrlt_sound_cpu_io_map);
|
||||
m_soundcpu->set_periodic_int(FUNC(corona_state::nmi_line_pulse), attotime::from_hz(244)); /* 244 Hz (1MHz/16/16/16) */
|
||||
m_soundcpu->set_periodic_int(FUNC(corona_state::nmi_line_pulse), attotime::from_hz(244)); // 244 Hz (1MHz/16/16/16)
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
/* video hardware */
|
||||
// video hardware
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); //not accurate
|
||||
@ -1559,6 +1572,7 @@ void corona_state::luckyrlt(machine_config &config)
|
||||
/***************************************************
|
||||
|
||||
Winners Circle
|
||||
Four players 7-horses racing game.
|
||||
1980-81-82 Corona Co.LTD.
|
||||
|
||||
PCB silkscreened CRN-MK-1000
|
||||
@ -1580,7 +1594,7 @@ void corona_state::luckyrlt(machine_config &config)
|
||||
***************************************************/
|
||||
|
||||
ROM_START(winner81)
|
||||
ROM_REGION( 0x10000, "maincpu", 0 ) /* from the 28*28 pins PCB */
|
||||
ROM_REGION( 0x10000, "maincpu", 0 ) // from the 28*28 pins PCB
|
||||
ROM_LOAD("1_2732_c61e.bin", 0x0000, 0x1000, CRC(841cdbd1) SHA1(87caeec0a80460c72408ceae28480fe2f3ba3052) )
|
||||
ROM_LOAD("2_2732_eafa.bin", 0x1000, 0x1000, CRC(216f71d2) SHA1(913454bc78487c099c854e35d594454077266590) )
|
||||
ROM_LOAD("3_2732_121e.bin", 0x2000, 0x1000, CRC(b5849762) SHA1(f62ea11ae5834dd84081d8716798c2ac0b879a35) )
|
||||
@ -1596,10 +1610,10 @@ ROM_END
|
||||
|
||||
|
||||
ROM_START(winner81b)
|
||||
ROM_REGION( 0x10000, "maincpu", 0 ) /* from the 18*22 pins PCB, more close to winner82 */
|
||||
ROM_REGION( 0x10000, "maincpu", 0 ) // from the 18*22 pins PCB, more close to winner82
|
||||
ROM_LOAD("winner_27128_a145.bin", 0x0000, 0x4000, CRC(a9737c8f) SHA1(d1e3b3979d3ef1aa2d8c32d5d56c30165c949e50) )
|
||||
|
||||
ROM_REGION( 0x10000, "soundcpu", 0 ) /* IM1 instead of NMI. Identical halves */
|
||||
ROM_REGION( 0x10000, "soundcpu", 0 ) // IM1 instead of NMI. Identical halves
|
||||
ROM_LOAD("son_2732_8ccc.bin", 0x0000, 0x1000, CRC(c944a4ae) SHA1(989ec9f39a7761aa73d08ca39b081cb2c4c75a7c) )
|
||||
|
||||
ROM_REGION( 0x0020, "proms", 0 )
|
||||
@ -1608,13 +1622,13 @@ ROM_END
|
||||
|
||||
|
||||
ROM_START(winner82)
|
||||
ROM_REGION( 0x10000, "maincpu", 0 ) /* 18*22 pins PCB?? */
|
||||
ROM_REGION( 0x10000, "maincpu", 0 ) // 18*22 pins PCB??
|
||||
ROM_LOAD("p1.32.bin", 0x0000, 0x1000, CRC(5eb58841) SHA1(160ba8a19b0926aab6f47497e625449d35efea2a) )
|
||||
ROM_LOAD("p2.32.bin", 0x1000, 0x1000, CRC(52567aeb) SHA1(b4723aff00a18f3cb9ee5c3071ed671f920458cf) )
|
||||
ROM_LOAD("p3.32.bin", 0x2000, 0x1000, CRC(1ae24244) SHA1(a10fba097b18607b1bc10d8720a020c1e01e75c3) )
|
||||
ROM_LOAD("p4.32.bin", 0x3000, 0x1000, CRC(15631824) SHA1(24d5607b186dc880609dd076012d0bc29d7581ba) )
|
||||
|
||||
ROM_REGION( 0x10000, "soundcpu", 0 ) /* IM1 instead of NMI. Identical halves */
|
||||
ROM_REGION( 0x10000, "soundcpu", 0 ) // IM1 instead of NMI. Identical halves
|
||||
ROM_LOAD("son_2732_8ccc.bin", 0x0000, 0x1000, CRC(c944a4ae) SHA1(989ec9f39a7761aa73d08ca39b081cb2c4c75a7c) )
|
||||
|
||||
ROM_REGION( 0x0020, "proms", 0 )
|
||||
@ -1622,8 +1636,16 @@ ROM_START(winner82)
|
||||
ROM_END
|
||||
|
||||
|
||||
/*
|
||||
Le Grandchamps.
|
||||
Isermatic France S.A.
|
||||
|
||||
Four players 6-horses racing game.
|
||||
It has four independent coin slots of 10-francs each.
|
||||
|
||||
*/
|
||||
ROM_START(legrandc)
|
||||
ROM_REGION( 0x10000, "maincpu", 0 ) /* 18*22 pins PCB?? */
|
||||
ROM_REGION( 0x10000, "maincpu", 0 ) // 18*22 pins PCB??
|
||||
ROM_LOAD("t10.bin", 0x0000, 0x0800, CRC(3b8f9293) SHA1(8af15b15f91568c8d8ba4910bac5fa63a05eab6a) )
|
||||
ROM_LOAD("t1.bin", 0x0800, 0x0800, CRC(99a8876b) SHA1(eaea6a6daf97f7baa021f6f4f8df4b9c220410b0) )
|
||||
ROM_LOAD("t2.bin", 0x1000, 0x0800, CRC(a4658a30) SHA1(a655b12a1669e73963c2861f91d0a8bfa7df8b1f) )
|
||||
@ -1631,11 +1653,11 @@ ROM_START(legrandc)
|
||||
ROM_LOAD("t4.bin", 0x2000, 0x0800, CRC(8a558bef) SHA1(9f8560864a60fa4c34ffb4c4b16f05bb4170cb42) )
|
||||
ROM_LOAD("t5.bin", 0x2800, 0x0800, CRC(8172f711) SHA1(9504ba3f931719489541e876a109da52175250a4) )
|
||||
|
||||
ROM_REGION( 0x10000, "soundcpu", 0 ) /* IM1 instead of NMI. Identical halves */
|
||||
ROM_REGION( 0x10000, "soundcpu", 0 ) // IM1 instead of NMI. Identical halves
|
||||
ROM_LOAD("t7.bin", 0x0000, 0x0800, CRC(aaaaa37a) SHA1(60daf9bf8f1e25da0e55e2d652a3a232f0717e9b) )
|
||||
|
||||
ROM_REGION( 0x0020, "proms", 0 )
|
||||
ROM_LOAD( "corona_82s123.bin", 0x0000, 0x0020, BAD_DUMP CRC(051e5edc) SHA1(2305c056fa1fc21432189af12afb7d54c6569484) ) // not dumped, taken from parent
|
||||
ROM_LOAD( "legrandc_prom.bin", 0x0000, 0x0020, CRC(388e9052) SHA1(0472fb7ba8f24d98afa5d2a14c2304c501f0eef6) )
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -1655,7 +1677,7 @@ ROM_END
|
||||
***************************************************/
|
||||
|
||||
ROM_START(re800ea)
|
||||
ROM_REGION( 0x10000, "maincpu", 0 ) /* seems Genatron RE800, early revision */
|
||||
ROM_REGION( 0x10000, "maincpu", 0 ) // seems Genatron RE800, early revision
|
||||
ROM_LOAD("ruleta1.128", 0x0000, 0x4000, CRC(e5931763) SHA1(35d47276275e691ae5f4f85bc54992381672df1a) )
|
||||
|
||||
ROM_REGION( 0x10000, "soundcpu", 0 )
|
||||
@ -1713,14 +1735,14 @@ ROM_START(rcirulet)
|
||||
ROM_LOAD("rc1.256", 0x4000, 0x4000, CRC(be25f548) SHA1(f59ef5d6d047299ff77f28b24517ba6d0a3afc90) )
|
||||
ROM_CONTINUE( 0x0000, 0x4000)
|
||||
|
||||
ROM_REGION( 0x10000, "soundcpu", 0 ) /* IM1 instead of NMI */
|
||||
ROM_REGION( 0x10000, "soundcpu", 0 ) // IM1 instead of NMI
|
||||
ROM_LOAD("rcson.16", 0x0000, 0x0800, CRC(9ba72a6d) SHA1(0d06ee4952255a93a7f097dd84c5937b01367836) )
|
||||
ROM_RELOAD( 0x0800, 0x0800 )
|
||||
|
||||
ROM_REGION( 0x0020, "proms", 0 ) /* color PROM */
|
||||
ROM_REGION( 0x0020, "proms", 0 ) // color PROM
|
||||
ROM_LOAD( "rci_82s123_ic19_1b92.bin", 0x0000, 0x0020, CRC(051e5edc) SHA1(2305c056fa1fc21432189af12afb7d54c6569484) )
|
||||
|
||||
ROM_REGION( 0x0020, "proms2", 0 ) /* unknown from video */
|
||||
ROM_REGION( 0x0020, "proms2", 0 ) // unknown from video
|
||||
ROM_LOAD( "rci_82s123_ic04_1f95.bin", 0x0000, 0x0020, CRC(3a6684b3) SHA1(c9461565a78f1024c6bd4088e4555f1a8020013b) )
|
||||
ROM_END
|
||||
|
||||
@ -1754,10 +1776,10 @@ ROM_END
|
||||
******************************************/
|
||||
|
||||
// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT
|
||||
GAME( 1982, winner82, 0, winner82, winner82, corona_state, empty_init, ROT0, "Corona Co, LTD.", "Winners Circle (82)", 0 )
|
||||
GAME( 1981, winner81, winner82, winner81, winner81, corona_state, empty_init, ROT0, "Corona Co, LTD.", "Winners Circle (81, 28*28 PCB)", MACHINE_IMPERFECT_SOUND )
|
||||
GAME( 1981, winner81b, winner82, winner82, winner82, corona_state, empty_init, ROT0, "Corona Co, LTD.", "Winners Circle (81, 18*22 PCB)", 0 )
|
||||
GAME( 1982, winner82, 0, winner82, winner82, corona_state, empty_init, ROT0, "Corona Co, LTD.", "Winners Circle (82)", 0 )
|
||||
GAME( 198?, legrandc, winner82, winner82, winner82, corona_state, empty_init, ROT0, "Isermatic France S.A.", "Le Grandchamps", MACHINE_IMPERFECT_COLORS )
|
||||
GAME( 198?, legrandc, 0, winner82, winner82, corona_state, empty_init, ROT0, "Isermatic France S.A.", "Le Grandchamps", 0 )
|
||||
GAMEL( 1991, re800ea, re800v1, re800, re800, corona_state, empty_init, ROT90, "Entretenimientos GEMINIS", "Ruleta RE-800 (earlier, no attract)", 0, layout_re800 )
|
||||
GAMEL( 1991, re800v1, 0, re800, re800, corona_state, empty_init, ROT90, "Entretenimientos GEMINIS", "Ruleta RE-800 (v1.0)", 0, layout_re800 )
|
||||
GAMEL( 1991, re800v3, 0, re800, re800v3, corona_state, empty_init, ROT90, "Entretenimientos GEMINIS", "Ruleta RE-800 (v3.0)", MACHINE_IMPERFECT_COLORS, layout_re800 )
|
||||
|
Loading…
Reference in New Issue
Block a user