mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
Calomega.cpp general improvements... [Roberto Fresca, Grull Osgo]
- Added support for extended graphics. - Fixed cardbacks for 906-III games. - Fixed Nudge Bingo graphics. - Fixed rotten/bad bits from the program ROM with educated guess to make Cal Omega - Game 7.9 (Arcade Poker) playable. - Fixed inputs on Cal Omega - Game 7.6 (Arcade Poker). Now it's playable. - Created proper inputs from the scratch for Cal Omega - Game 12.5 (Bingo), and promoted to WORKING. - Fixed docs / technical notes. Machines promoted to working ---------------------------- Cal Omega - Game 7.9 (Arcade Poker). [Roberto Fresca, Grull Osgo] Cal Omega - Game 12.5 (Bingo). [Roberto Fresca, Grull Osgo]
This commit is contained in:
parent
e65c6f8697
commit
5ee8cf62dc
@ -1,15 +1,15 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders: Roberto Fresca
|
||||
// copyright-holders: Roberto Fresca, Grull Osgo
|
||||
/**********************************************************************************
|
||||
|
||||
.-----------------------------------------------.
|
||||
| |
|
||||
| CAL OMEGA / CEI / UCMC |
|
||||
| SYSTEMS 903 / 904 / 905 / 906-III |
|
||||
| |
|
||||
| Driver by Roberto Fresca. |
|
||||
| |
|
||||
'-----------------------------------------------'
|
||||
.-----------------------------------------.
|
||||
| |
|
||||
| CAL OMEGA / CEI / UCMC |
|
||||
| SYSTEMS 903 / 904 / 905 / 906-III |
|
||||
| |
|
||||
| Driver by Roberto Fresca. |
|
||||
| |
|
||||
'-----------------------------------------'
|
||||
|
||||
|
||||
--- Technical Notes ---
|
||||
@ -131,7 +131,7 @@
|
||||
***********************************************************************************
|
||||
|
||||
|
||||
++++ System 903/904/906-III official list of games (not complete) ++++
|
||||
++++ System 903/904/905/906-III official list of games (not complete) ++++
|
||||
|
||||
-----+--------------------------+---------+---------+----------+---------+----------+---------+---------------+------+------+-------
|
||||
VER | NAME | SYSTEM | PROGRAM | CHAR GEN | CG P/N | CLR PROM | CP P/N | GAME TYPE | DUMP | STAT | ADDED
|
||||
@ -209,7 +209,7 @@
|
||||
* 23.6 | Hotline | 905 | OCT/84 | HLCG | 6300160 | HLCLR | 6600110 | Amusement | Yes | OK | Yes
|
||||
23.7 | AWP Blackjack | ? | | POKER | 6300010 | POKCLR | 6600020 | Gaming | No | | No
|
||||
23.9 | G.Draw Poker (discard) | 904 | JAN/85 | POKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | Yes | OK | Yes
|
||||
24.0 | Gaming Draw Poker (hold) | 904 | MAY/85 | POKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | Yes | OK | Yes
|
||||
24.0 | Gaming Draw Poker (hold) | 903/904 | MAY/85 | POKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | Yes | OK | Yes
|
||||
24.2 | Export Poker | ? | | GPKCG | 6300010 | POKCLR | 6600020 | Gaming | No | | No
|
||||
24.3 | Gaming Blackjack | ? | | GPKCG | 6300010 | POKCLR | 6600020 | Nevada Gaming | No | | No
|
||||
24.5 | Wild Double-Up | ? | | JKPKCG | 6300100 | WLDCLR | 6600010 | Amusement | No | | No
|
||||
@ -442,6 +442,18 @@
|
||||
DRIVER UPDATES
|
||||
--------------
|
||||
|
||||
[2021-04-26]
|
||||
|
||||
General improvements...
|
||||
- Added support for extended graphics.
|
||||
- Fixed cardbacks for 906-III games.
|
||||
- Fixed Nudge Bingo graphics.
|
||||
- Fixed rotten/bad bits from the program ROM with educated guess
|
||||
to make Cal Omega - Game 7.9 (Arcade Poker) playable.
|
||||
- Fixed inputs on Cal Omega - Game 7.6 (Arcade Poker). Now it's playable.
|
||||
- Created proper inputs from the scratch for Cal Omega - Game 12.5 (Bingo), and promoted to WORKING.
|
||||
- Fixed docs / technical notes.
|
||||
|
||||
|
||||
[2021-04-24]
|
||||
|
||||
@ -449,14 +461,10 @@
|
||||
- The PIAs set for each MACHINE_CONFIG were made independent.
|
||||
- All the PIAs lines were adapted according to the needs of each platform.
|
||||
- All the interrupts were set/placed as indicated in the schematics (903/905).
|
||||
- A global hopper was added, currently assigned to platform 906-III,
|
||||
but it can be used by other platforms.
|
||||
- Worked proper inputs for system 903: Cal Omega - Game 15.7 (Double-Draw Poker).
|
||||
The game was promoted to WORKING.
|
||||
- Worked proper inputs for system 905: Cal Omega - Game 15.9 (Wild Double-Up).
|
||||
The game was promoted to WORKING.
|
||||
- Worked proper inputs for system 905: Cal Omega - Game 17.2 (Double Double Poker).
|
||||
The game was promoted to WORKING.
|
||||
- A global hopper was added, currently assigned to platform 906-III, but it can be used by other platforms.
|
||||
- Worked proper inputs for system 903: Cal Omega - Game 15.7 (Double-Draw Poker). The game was promoted to WORKING.
|
||||
- Worked proper inputs for system 905: Cal Omega - Game 15.9 (Wild Double-Up). The game was promoted to WORKING.
|
||||
- Worked proper inputs for system 905: Cal Omega - Game 17.2 (Double Double Poker). The game was promoted to WORKING.
|
||||
|
||||
|
||||
[2021-04-21]
|
||||
@ -475,7 +483,7 @@
|
||||
- Switched to Rockwell R65C02 CPU.
|
||||
- Added missing 906-III inputs, timers, clocks and connections.
|
||||
- Renamed Game 51.08 to CEI 51.08 (CEI 906-III Poker).
|
||||
The game is promoted to WORKING.
|
||||
The game is promoted to WORKING.
|
||||
- Added Casino 21 UCMC/IWC (ver 30.08). The game is working.
|
||||
- Added Poker UCMC/IWC (ver 162.03). The game is working.
|
||||
- Added Poker UCMC/IWC (ver 162.03 20-6-91). The game is working.
|
||||
@ -721,18 +729,18 @@ uint8_t calomega_state::s903_mux_port_r()
|
||||
|
||||
void calomega_state::s903_mux_w(uint8_t data)
|
||||
{
|
||||
// bit 7 - bit 6 -bit 5 -bit 4 -> Mux. Scan Lines
|
||||
m_s903_mux_data = data ^ 0xf0; // inverted
|
||||
// bit 7 - bit 6 -bit 5 -bit 4 -> Mux. Scan Lines
|
||||
m_s903_mux_data = data ^ 0xf0; // inverted
|
||||
|
||||
// bit 0 - bit 1 -> Hopper
|
||||
// bit 0 - bit 1 -> Hopper
|
||||
m_hopper->motor_w(BIT(~data, 0) && BIT(~data, 1));
|
||||
|
||||
// bit2 - bit3 -> No connected
|
||||
// bit2 - bit3 -> No connected
|
||||
}
|
||||
|
||||
uint8_t calomega_state::s905_mux_port_r()
|
||||
{
|
||||
switch( m_s905_mux_data & 0x0f ) // bits 0-3
|
||||
switch( m_s905_mux_data & 0x0f ) // bits 0-3
|
||||
{
|
||||
case 0x01: return m_in0_0->read();
|
||||
case 0x02: return m_in0_1->read();
|
||||
@ -746,15 +754,15 @@ uint8_t calomega_state::s905_mux_port_r()
|
||||
void calomega_state::s905_mux_w(uint8_t data)
|
||||
{
|
||||
// Lower nibble
|
||||
m_s905_mux_data = data ^ 0x0f; // inverted
|
||||
m_s905_mux_data = data ^ 0x0f; // inverted
|
||||
|
||||
/* Upper nibble
|
||||
PIA_1_PB_4 - N.C.
|
||||
PIA_1_PB_5 - Hopper1.
|
||||
PIA_1_PB_6 - Hopper2.
|
||||
PIA_1_PB_4 - Hopper1.
|
||||
PIA_1_PB_5 - Hopper2.
|
||||
PIA_1_PB_6 - Not Connected.
|
||||
PIA_1_PB_7 - Lockout.
|
||||
*/
|
||||
m_hopper->motor_w(BIT(~data, 5) && BIT(~data, 6));
|
||||
m_hopper->motor_w(BIT(~data, 4) && BIT(~data, 5));
|
||||
m_lockout = BIT(data, 7);
|
||||
}
|
||||
|
||||
@ -763,27 +771,27 @@ void calomega_state::s905_mux_w(uint8_t data)
|
||||
|
||||
uint8_t calomega_state::pia0_bin_r()
|
||||
{
|
||||
//logerror("PIA0: Port B in\n");
|
||||
//logerror("PIA0: Port B in\n");
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
void calomega_state::pia0_aout_w(uint8_t data)
|
||||
{
|
||||
//logerror("PIA0: Port A out: %02X\n", data);
|
||||
//logerror("PIA0: Port A out: %02X\n", data);
|
||||
}
|
||||
|
||||
void calomega_state::pia0_bout_w(uint8_t data)
|
||||
{
|
||||
// Meters???...M1-M5
|
||||
// Meters???...M1-M5
|
||||
m_diverter = BIT(data, 3);
|
||||
m_lockout = BIT(data, 5);
|
||||
m_hopper->motor_w(BIT(~data, 6) && BIT(~data, 7));
|
||||
// if(m_hopper) popmessage("HOPPER : %x", data);
|
||||
// if(m_hopper) popmessage("HOPPER : %x", data);
|
||||
}
|
||||
|
||||
uint8_t calomega_state::pia1_ain_r()
|
||||
{
|
||||
//popmessage("hopper out: %x", m_in0_1->read() & 0x80);
|
||||
//popmessage("hopper out: %x", m_in0_1->read() & 0x80);
|
||||
switch( m_s905_mux_data & 0x03 ) // bits 0-3
|
||||
{
|
||||
case 0x00: return m_in0_0->read();
|
||||
@ -797,14 +805,14 @@ uint8_t calomega_state::pia1_ain_r()
|
||||
|
||||
uint8_t calomega_state::pia1_bin_r()
|
||||
{
|
||||
// logerror("PIA1: Port B in\n");
|
||||
// logerror("PIA1: Port B in\n");
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
void calomega_state::pia1_aout_w(uint8_t data)
|
||||
{
|
||||
m_s905_mux_data = data >> 6;
|
||||
// logerror("PIA1: Port A out (906-III mux): %02X\n", m_s905_mux_data);
|
||||
// logerror("PIA1: Port A out (906-III mux): %02X\n", m_s905_mux_data);
|
||||
}
|
||||
|
||||
void calomega_state::pia1_bout_w(uint8_t data)
|
||||
@ -831,7 +839,7 @@ void calomega_state::pia1_bout_w(uint8_t data)
|
||||
m_lamps[6] = BIT(~data, 6); // L7 (unknown)
|
||||
m_lamps[7] = BIT(~data, 7); // L8 (unknown)
|
||||
|
||||
// logerror("PIA1: Port B out: %02X\n", data);
|
||||
// logerror("PIA1: Port B out: %02X\n", data);
|
||||
}
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER( calomega_state::timer_0 )
|
||||
@ -839,14 +847,14 @@ TIMER_DEVICE_CALLBACK_MEMBER( calomega_state::timer_0 )
|
||||
m_timer = !m_timer;
|
||||
m_pia[0]->ca1_w(m_timer);
|
||||
m_pia[0]->read(1); //CRA
|
||||
// logerror("Timer_0 event : state=%d\n", m_timer);
|
||||
// logerror("Timer_0 event : state=%d\n", m_timer);
|
||||
}
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER( calomega_state::timer_1 )
|
||||
{
|
||||
m_timer = !m_timer;
|
||||
m_pia[1]->cb1_w(m_timer);
|
||||
// logerror("Timer_1 event (TIMER) : state=%d\n", m_timer);
|
||||
// logerror("Timer_1 event (TIMER) : state=%d\n", m_timer);
|
||||
}
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER( calomega_state::timer_2 )
|
||||
@ -854,12 +862,12 @@ TIMER_DEVICE_CALLBACK_MEMBER( calomega_state::timer_2 )
|
||||
m_timer =! m_timer;
|
||||
m_pia[1]->ca1_w(m_timer);
|
||||
m_pia[1]->read(1); // CRA
|
||||
// logerror("Timer_2 event : state=%d\n", m_timer);
|
||||
// logerror("Timer_2 event : state=%d\n", m_timer);
|
||||
}
|
||||
|
||||
READ_LINE_MEMBER(calomega_state::timer_r)
|
||||
{
|
||||
// logerror("timer_1 read : state=%d\n", m_timer);
|
||||
// logerror("timer_1 read : state=%d\n", m_timer);
|
||||
return m_timer;
|
||||
}
|
||||
|
||||
@ -869,8 +877,8 @@ WRITE_LINE_MEMBER(calomega_state::vblank0_w)
|
||||
m_pia[0]->read(0);
|
||||
m_pia[0]->read(0);
|
||||
m_pia[1]->cb1_w(state);
|
||||
// m_pia[1]->read(3); // CRB
|
||||
// logerror("V_BLANK_0 event : state=%d\n", m_vblank);
|
||||
// m_pia[1]->read(3); // CRB
|
||||
// logerror("V_BLANK_0 event : state=%d\n", m_vblank);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(calomega_state::vblank1_w)
|
||||
@ -878,29 +886,29 @@ WRITE_LINE_MEMBER(calomega_state::vblank1_w)
|
||||
m_vblank = state;
|
||||
m_pia[0]->read(2);
|
||||
m_pia[0]->cb1_w(state);
|
||||
// logerror("V_BLANK_1 event (sale ): state=%d\n", m_vblank);
|
||||
// logerror("V_BLANK_1 event (sale ): state=%d\n", m_vblank);
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(calomega_state::vblank2_w)
|
||||
{
|
||||
m_vblank = state;
|
||||
m_pia[1]->read(0);
|
||||
m_pia[1]->read(0);
|
||||
m_pia[1]->read(0);
|
||||
m_pia[1]->cb1_w(state);
|
||||
// logerror("V_BLANK_2 event : state=%d\n", m_vblank);
|
||||
// logerror("V_BLANK_2 event : state=%d\n", m_vblank);
|
||||
}
|
||||
|
||||
READ_LINE_MEMBER(calomega_state::vblank_r)
|
||||
{
|
||||
// logerror("V_BLANK read : state=%d\n", m_vblank);
|
||||
// logerror("V_BLANK read : state=%d\n", m_vblank);
|
||||
return m_vblank;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(calomega_state::pia1_cb2_w)
|
||||
{
|
||||
// Output to L9
|
||||
// Output to L9
|
||||
m_lamps[8] = ~state; // L9 (Door?)
|
||||
// logerror("PIA1: CB2: %02X\n", state);
|
||||
// logerror("PIA1: CB2: %02X\n", state);
|
||||
}
|
||||
|
||||
// Dummy callbacks
|
||||
@ -946,7 +954,7 @@ WRITE_LINE_MEMBER(calomega_state::dummy_pia_line_w)
|
||||
*/
|
||||
void calomega_state::lamps_903a_w(uint8_t data)
|
||||
{
|
||||
// First 5 bits of PIA0 port B
|
||||
// First 5 bits of PIA0 port B
|
||||
m_lamps[0] = BIT(~data, 0); // L1 (Hold 1)
|
||||
m_lamps[1] = BIT(~data, 1); // L2 (Hold 2)
|
||||
m_lamps[2] = BIT(~data, 2); // L3 (Hold 3)
|
||||
@ -956,7 +964,7 @@ void calomega_state::lamps_903a_w(uint8_t data)
|
||||
|
||||
void calomega_state::lamps_903b_w(uint8_t data)
|
||||
{
|
||||
// First 4 bits of PIA1 port A
|
||||
// First 4 bits of PIA1 port A
|
||||
m_lamps[5] = BIT(~data, 0); // L6 (Cancel)
|
||||
m_lamps[6] = BIT(~data, 1); // L7 (Bet)
|
||||
m_lamps[7] = BIT(~data, 2); // L8 (Take)
|
||||
@ -965,7 +973,7 @@ void calomega_state::lamps_903b_w(uint8_t data)
|
||||
|
||||
void calomega_state::lamps_905_w(uint8_t data)
|
||||
{
|
||||
// Whole 8 bits of PIA0 port B
|
||||
// Whole 8 bits of PIA0 port B
|
||||
m_lamps[0] = BIT(~data, 0); // L1 (Hold 1)
|
||||
m_lamps[1] = BIT(~data, 1); // L2 (Hold 2)
|
||||
m_lamps[2] = BIT(~data, 2); // L3 (Hold 3)
|
||||
@ -1923,17 +1931,16 @@ static INPUT_PORTS_START( comg076 )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_NAME("Discard 3")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Discard 4")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Discard 5")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_LOW ) PORT_NAME("Small")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN0-3")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Clear Credits") PORT_CODE(KEYCODE_8)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_BET )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_HIGH ) PORT_NAME("Big")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_LOW ) PORT_NAME("Small")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
@ -2025,6 +2032,137 @@ static INPUT_PORTS_START( comg076 )
|
||||
PORT_DIPSETTING( 0x00, "50Hz." )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( comg125 ) // nudge bingo
|
||||
PORT_START("IN0-0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Nudge 1 Up") PORT_CODE(KEYCODE_A)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Nudge 2 Up") PORT_CODE(KEYCODE_S)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Nudge 3 Up") PORT_CODE(KEYCODE_D)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Nudge 4 Up") PORT_CODE(KEYCODE_F)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Nudge 5 Up") PORT_CODE(KEYCODE_G)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) // connected to SW2-5
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN0-1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_NAME("Replay / Credits") PORT_IMPULSE(2)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Test / Diagnostics")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) // connected to SW2-5
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN0-2")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Nudge 1 Down") PORT_CODE(KEYCODE_Z)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Nudge 2 Down") PORT_CODE(KEYCODE_X)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Nudge 3 Down") PORT_CODE(KEYCODE_C)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Nudge 4 Down") PORT_CODE(KEYCODE_V)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Nudge 5 Down") PORT_CODE(KEYCODE_B)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) // connected to SW2-5
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN0-3")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Clear Credits") PORT_CODE(KEYCODE_8)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_NAME("Play (Bet)")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) // connected to SW2-5
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
/* SW1-5 should be wired to PIA0 portA, bit 6.
|
||||
SW1-6 should be wired to H-POL.
|
||||
SW1-7 should be wired to V-POL.
|
||||
*/
|
||||
PORT_START("SW1") // settings (PIA1), SW2 in schematics
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) // L6
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) // L7
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) // L8
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) // L9
|
||||
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:1")
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:2")
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:3")
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW2:4")
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
PORT_START("SW2") // baud (serial 6850-4024), SW1 in schematics...
|
||||
PORT_DIPNAME( 0x3f, 0x08, "Baud Rate" ) PORT_DIPLOCATION("SW1:1,2,3,4,5,6")
|
||||
PORT_DIPSETTING( 0x01, "300" )
|
||||
PORT_DIPSETTING( 0x02, "600" )
|
||||
PORT_DIPSETTING( 0x04, "1200" )
|
||||
PORT_DIPSETTING( 0x08, "2400" )
|
||||
PORT_DIPSETTING( 0x10, "4800" )
|
||||
PORT_DIPSETTING( 0x20, "9600" )
|
||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:7")
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW1:8")
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
PORT_START("SW3") // unknown (ay8912), SW3 in schematics
|
||||
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:1")
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:2")
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:3")
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:4")
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:5")
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:6")
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:7")
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW3:8")
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
PORT_START("FRQ") // settings (PIA0)
|
||||
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, "Frequency" ) PORT_DIPLOCATION("FRQ:1")
|
||||
PORT_DIPSETTING( 0x80, "60Hz." )
|
||||
PORT_DIPSETTING( 0x00, "50Hz." )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( comg128 )
|
||||
PORT_START("IN0-0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) // credits
|
||||
@ -2691,8 +2829,7 @@ static INPUT_PORTS_START( stand906 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN0-1")
|
||||
//PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_IMPULSE(10) PORT_NAME("Coin Out")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r)
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_H) PORT_NAME("Hopper Weight") PORT_TOGGLE
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_DOOR ) PORT_NAME("Door") PORT_TOGGLE
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_9) PORT_NAME("Menu")
|
||||
@ -2789,7 +2926,7 @@ static INPUT_PORTS_START( cas21iwc )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN0-1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_IMPULSE(2) PORT_NAME("Coin Out (Fichas Salida)")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_H) PORT_NAME("Hopper Height (Peso Tolva)") PORT_TOGGLE
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_DOOR ) PORT_NAME("Door (Puerta)") PORT_TOGGLE
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_9) PORT_NAME("Menu")
|
||||
@ -2885,7 +3022,7 @@ static INPUT_PORTS_START( pokeriwc )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN0-1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_IMPULSE(2) PORT_NAME("Coin Out (Fichas Salida)")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_H) PORT_NAME("Hopper Weight (Peso Tolva)") PORT_TOGGLE
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_DOOR ) PORT_NAME("Door (Puerta Abierta)") PORT_TOGGLE
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_CODE(KEYCODE_9) PORT_NAME("Menu")
|
||||
@ -3353,7 +3490,7 @@ void calomega_state::sys906(machine_config &config)
|
||||
sys903(config);
|
||||
|
||||
// basic machine hardware
|
||||
R65C02(config.replace(), m_maincpu, CPU_CLOCK); // confirmed
|
||||
R65C02(config.replace(), m_maincpu, CPU_CLOCK); // confirmed
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &calomega_state::sys906_map);
|
||||
|
||||
screen_device &screen(SCREEN(config.replace(), "screen", SCREEN_TYPE_RASTER));
|
||||
@ -3386,8 +3523,8 @@ void calomega_state::sys906(machine_config &config)
|
||||
m_gfxdecode->set_info(gfx_sys906);
|
||||
|
||||
// sound hardware
|
||||
ay8912_device &ay8912(AY8912(config.replace(), "ay8912", SND_CLOCK)); // confirmed
|
||||
ay8912.port_a_read_callback().set_ioport("SW2"); // from schematics
|
||||
ay8912_device &ay8912(AY8912(config.replace(), "ay8912", SND_CLOCK)); // confirmed
|
||||
ay8912.port_a_read_callback().set_ioport("SW2"); // from schematics
|
||||
ay8912.add_route(ALL_OUTPUTS, "mono", 0.75);
|
||||
|
||||
TIMER(config.replace(), "timer_0").configure_periodic(FUNC(calomega_state::timer_2), attotime::from_hz(380*2)); // (time*2) - Each timer pulse -> half period
|
||||
@ -3446,13 +3583,14 @@ ROM_START( comg076 ) // Cal Omega v7.6 (Arcade Poker)
|
||||
ROM_END
|
||||
|
||||
ROM_START( comg079 ) // Cal Omega v7.9 (Arcade Poker)
|
||||
/* The original code jumps to $2e64 where there's an inexistent mnemonic 0x32! (kill).
|
||||
Also writes to $axxx (inexistent) and $08fx-$09xx (supposed to be $0880-$0881).
|
||||
Found damaged bits on this program ROM. Fix details on init().
|
||||
*/
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD( "07-91.u5", 0x1800, 0x0800, CRC(da415c27) SHA1(be42f1d36579ff8fafd6df4e30a64a6141a7a2ae) )
|
||||
ROM_LOAD( "07-92.u6", 0x2000, 0x0800, CRC(31211ed3) SHA1(799bc4ca77ee01a4d45320263e4cc2d066ec26e5) )
|
||||
|
||||
/* code jumps to $2e64 where there's an inexistent mnemonic 0x32! (kill).
|
||||
also writes to $axxx (inexistent) and $08fx-$09xx (supposed to be $0880-$0881).
|
||||
*/
|
||||
ROM_LOAD( "07-93.u7", 0x2800, 0x0800, BAD_DUMP CRC(52c84b9c) SHA1(569d6384b9084a11fe84e291f1c165bc0df3ab49) )
|
||||
ROM_LOAD( "07-94.u8", 0x3000, 0x0800, CRC(ed0e7d4a) SHA1(72f512ca2da573e4571ca6f164fb055daa26dd3c) )
|
||||
ROM_LOAD( "07-95.u9", 0x3800, 0x0800, CRC(3acc8f49) SHA1(1a193cc292f79da869caddd11478d6ad55466d7b) )
|
||||
@ -4478,47 +4616,147 @@ void calomega_state::init_cas21iwc()
|
||||
{
|
||||
uint8_t *PRGROM = memregion( "maincpu" )->base();
|
||||
|
||||
PRGROM[0xB603] = 0xff; // Checksum flag. No changes for now.
|
||||
PRGROM[0xB603] = 0xff; // Checksum flag. No changes for now.
|
||||
}
|
||||
|
||||
void calomega_state::init_pokeriwc()
|
||||
{
|
||||
uint8_t *PRGROM = memregion( "maincpu" )->base();
|
||||
|
||||
PRGROM[0x8000] = 0xa2; // Checksum flag. No changes for now.
|
||||
PRGROM[0x8000] = 0xa2; // Checksum flag. No changes for now.
|
||||
}
|
||||
|
||||
void calomega_state::init_comg079()
|
||||
{
|
||||
uint8_t *PRGROM = memregion( "maincpu" )->base();
|
||||
|
||||
PRGROM[0x2ad2] = 0x00; // checksum flag (0xe0)
|
||||
PRGROM[0x2CD1] = 0x33;
|
||||
PRGROM[0x2CD3] = 0x5A;
|
||||
PRGROM[0x2CD5] = 0x76;
|
||||
PRGROM[0x2CD9] = 0x13;
|
||||
PRGROM[0x2CDB] = 0x30;
|
||||
PRGROM[0x2CDD] = 0x06;
|
||||
PRGROM[0x2D01] = 0x10;
|
||||
PRGROM[0x2D06] = 0x36;
|
||||
PRGROM[0x2D07] = 0x20;
|
||||
PRGROM[0x2D08] = 0x7D;
|
||||
PRGROM[0x2D09] = 0x3D;
|
||||
PRGROM[0x2D0A] = 0x60;
|
||||
PRGROM[0x2D30] = 0x26;
|
||||
PRGROM[0x2D31] = 0x00;
|
||||
PRGROM[0x2D33] = 0x00;
|
||||
PRGROM[0x2D35] = 0x25;
|
||||
PRGROM[0x2D36] = 0x00;
|
||||
PRGROM[0x2D37] = 0x4C;
|
||||
PRGROM[0x2D39] = 0x34;
|
||||
PRGROM[0x2D3B] = 0x00;
|
||||
PRGROM[0x2D3C] = 0x38;
|
||||
PRGROM[0x2D3E] = 0x40;
|
||||
PRGROM[0x2D3F] = 0x48;
|
||||
PRGROM[0x2D41] = 0x01;
|
||||
PRGROM[0x2D44] = 0x48;
|
||||
PRGROM[0x2D46] = 0x02;
|
||||
PRGROM[0x2D48] = 0x0F;
|
||||
PRGROM[0x2D4A] = 0x0B;
|
||||
PRGROM[0x2D4C] = 0x02;
|
||||
PRGROM[0x2D4F] = 0x01;
|
||||
PRGROM[0x2D50] = 0x68;
|
||||
PRGROM[0x2D52] = 0x00;
|
||||
PRGROM[0x2D53] = 0x4C;
|
||||
PRGROM[0x2D54] = 0x3A;
|
||||
PRGROM[0x2D55] = 0x2D;
|
||||
PRGROM[0x2D56] = 0x68;
|
||||
PRGROM[0x2D57] = 0x68;
|
||||
PRGROM[0x2D58] = 0x60;
|
||||
PRGROM[0x2D5A] = 0x00;
|
||||
PRGROM[0x2D5C] = 0x06;
|
||||
PRGROM[0x2D5E] = 0x01;
|
||||
PRGROM[0x2D60] = 0x02;
|
||||
PRGROM[0x2D62] = 0x02;
|
||||
PRGROM[0x2D63] = 0x20;
|
||||
PRGROM[0x2D64] = 0x3A;
|
||||
PRGROM[0x2D65] = 0x2D;
|
||||
PRGROM[0x2D66] = 0x60;
|
||||
PRGROM[0x2D68] = 0x00;
|
||||
PRGROM[0x2D6A] = 0x08;
|
||||
PRGROM[0x2D6C] = 0x01;
|
||||
PRGROM[0x2D6E] = 0x02;
|
||||
PRGROM[0x2D79] = 0x0A;
|
||||
PRGROM[0x2D7B] = 0x06;
|
||||
PRGROM[0x2D80] = 0x78;
|
||||
PRGROM[0x2D81] = 0x2D;
|
||||
PRGROM[0x2D82] = 0x09;
|
||||
PRGROM[0x2D84] = 0x60;
|
||||
PRGROM[0x2D86] = 0x00;
|
||||
PRGROM[0x2D87] = 0xBE;
|
||||
PRGROM[0x2D88] = 0x97;
|
||||
PRGROM[0x2D89] = 0x2D;
|
||||
PRGROM[0x2D8C] = 0x97;
|
||||
PRGROM[0x2D8F] = 0x9D;
|
||||
PRGROM[0x2D90] = 0x00;
|
||||
PRGROM[0x2D98] = 0x04;
|
||||
PRGROM[0x2D9C] = 0x00;
|
||||
PRGROM[0x2DAC] = 0x04;
|
||||
PRGROM[0x2DB0] = 0x04;
|
||||
PRGROM[0x2DB4] = 0x00;
|
||||
PRGROM[0x2DB6] = 0x0F;
|
||||
PRGROM[0x2DB8] = 0x04;
|
||||
PRGROM[0x2DBC] = 0x04;
|
||||
PRGROM[0x2DD1] = 0x20;
|
||||
PRGROM[0x2DD3] = 0x00;
|
||||
PRGROM[0x2DD5] = 0x00;
|
||||
PRGROM[0x2DD6] = 0x10;
|
||||
PRGROM[0x2DD7] = 0x99;
|
||||
PRGROM[0x2DD9] = 0x11;
|
||||
PRGROM[0x2DDB] = 0x00;
|
||||
PRGROM[0x2DDD] = 0x99;
|
||||
PRGROM[0x2DDE] = 0x00;
|
||||
PRGROM[0x2DE3] = 0x8A;
|
||||
PRGROM[0x2DE5] = 0x00;
|
||||
PRGROM[0x2DE6] = 0x99;
|
||||
PRGROM[0x2DE7] = 0x00;
|
||||
PRGROM[0x2DE8] = 0x14;
|
||||
PRGROM[0x2DE9] = 0x99;
|
||||
PRGROM[0x2DEA] = 0x00;
|
||||
PRGROM[0x2DEB] = 0x15;
|
||||
PRGROM[0x2DED] = 0x00;
|
||||
PRGROM[0x2DEE] = 0x16;
|
||||
PRGROM[0x2DEF] = 0x99;
|
||||
PRGROM[0x2E01] = 0x90;
|
||||
PRGROM[0x2E03] = 0x45;
|
||||
PRGROM[0x2E05] = 0x49;
|
||||
PRGROM[0x2E06] = 0x01;
|
||||
PRGROM[0x2E07] = 0x4A;
|
||||
PRGROM[0x2E09] = 0x90;
|
||||
PRGROM[0x2E0B] = 0x91;
|
||||
PRGROM[0x2E0D] = 0x92;
|
||||
PRGROM[0x2E0F] = 0x93;
|
||||
PRGROM[0x2E30] = 0xE0;
|
||||
PRGROM[0x2E31] = 0x12;
|
||||
PRGROM[0x2E32] = 0x90;
|
||||
PRGROM[0x2E34] = 0xAD;
|
||||
PRGROM[0x2E35] = 0xC4;
|
||||
PRGROM[0x2E36] = 0x08;
|
||||
PRGROM[0x2E37] = 0x29;
|
||||
PRGROM[0x2E38] = 0x80;
|
||||
PRGROM[0x2E39] = 0xD0;
|
||||
PRGROM[0x2E3A] = 0x13;
|
||||
PRGROM[0x2E3B] = 0xA0;
|
||||
PRGROM[0x2E3C] = 0x00;
|
||||
PRGROM[0x2E3E] = 0x04;
|
||||
PRGROM[0x2E67] = 0x2E;
|
||||
PRGROM[0x2E68] = 0x8D;
|
||||
PRGROM[0x2E69] = 0x08;
|
||||
PRGROM[0x2E6A] = 0x00;
|
||||
PRGROM[0x2E6E] = 0x8D;
|
||||
PRGROM[0x2E6F] = 0x09;
|
||||
}
|
||||
|
||||
void calomega_state::init_any()
|
||||
{
|
||||
uint8_t *PRGROM = memregion( "maincpu" )->base();
|
||||
|
||||
PRGROM[0x2e30] = 0xe0; //fix bad dump
|
||||
PRGROM[0x2e31] = 0x12;
|
||||
PRGROM[0x2e32] = 0x90;
|
||||
PRGROM[0x2e33] = 0xf2;
|
||||
PRGROM[0x2e34] = 0xad;
|
||||
PRGROM[0x2e35] = 0xc4;
|
||||
PRGROM[0x2e36] = 0x08;
|
||||
PRGROM[0x2e37] = 0x29;
|
||||
PRGROM[0x2e38] = 0x80;
|
||||
PRGROM[0x2e39] = 0xd0;
|
||||
PRGROM[0x2e3a] = 0x13;
|
||||
PRGROM[0x2e3b] = 0xa0;
|
||||
PRGROM[0x2e3c] = 0x00;
|
||||
PRGROM[0x2e3d] = 0xa2;
|
||||
PRGROM[0x2e3e] = 0x04;
|
||||
PRGROM[0x2e3f] = 0xb9;
|
||||
PRGROM[0x2e40] = 0x61;
|
||||
|
||||
PRGROM[0x2dd6] = 0x10;
|
||||
PRGROM[0x2dd7] = 0x99;
|
||||
PRGROM[0x2dd8] = 0x60;
|
||||
PRGROM[0x2dd9] = 0x11;
|
||||
PRGROM[0x2ddd] = 0x99;
|
||||
|
||||
|
||||
|
||||
|
||||
PRGROM[0x0000] = 0x00;
|
||||
}
|
||||
|
||||
|
||||
@ -4529,19 +4767,19 @@ void calomega_state::init_any()
|
||||
// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */
|
||||
GAME( 1981, comg074, 0, sys903, comg074, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 7.4 (Gaming Poker, W.Export)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1981, comg076, 0, sys903, comg076, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 7.6 (Arcade Poker)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1981, comg079, 0, sys903, comg076, calomega_state, init_any , ROT0, "Cal Omega Inc.", "Cal Omega - Game 7.9 (Arcade Poker)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* bad dump */
|
||||
GAME( 1981, comg080, 0, sys903, arcadebj, calomega_state, init_comg080, ROT0, "Cal Omega Inc.", "Cal Omega - Game 8.0 (Arcade Black Jack)", MACHINE_SUPPORTS_SAVE ) /* bad dump */
|
||||
GAME( 1981, comg079, 0, sys903, comg076, calomega_state, init_comg079, ROT0, "Cal Omega Inc.", "Cal Omega - Game 7.9 (Arcade Poker)", MACHINE_SUPPORTS_SAVE ) // bad dump
|
||||
GAME( 1981, comg080, 0, sys903, arcadebj, calomega_state, init_comg080, ROT0, "Cal Omega Inc.", "Cal Omega - Game 8.0 (Arcade Black Jack)", MACHINE_SUPPORTS_SAVE ) // bad dump
|
||||
GAME( 1981, comg094, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 9.4 (Keno)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1982, comg107, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 10.7c (Big Game)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1982, comg123, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.3 (Ticket Poker)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* bad dump */
|
||||
GAME( 1982, comg125, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.5 (Bingo)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1982, comg123, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.3 (Ticket Poker)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // bad dump
|
||||
GAME( 1982, comg125, 0, sys903, comg125, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.5 (Bingo)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1982, comg127, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.7 (Keno)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1982, comg128, 0, sys903, comg128, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.8 (Arcade Game)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1982, comg134, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 13.4 (Nudge Bingo)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1982, comg145, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 14.5 (Pixels)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1983, comg157, 0, sys903, comg157, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 15.7 (Double-Draw Poker)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1983, comg159, 0, sys905, comg159, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 15.9 (Wild Double-Up)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1983, comg164, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 16.4 (Keno)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* incomplete dump */
|
||||
GAME( 1983, comg164, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 16.4 (Keno)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // incomplete dump
|
||||
GAME( 1983, comg168, 0, sys903, stand903, calomega_state, init_sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 16.8 (Keno)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1983, comg172, 0, sys905, comg172, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 17.2 (Double Double Poker)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, comg175, 0, sys903, gdrwpkrd, calomega_state, init_sys903, ROT0, "Cal Omega / Casino Electronics Inc.", "Cal Omega - Game 17.51 (Gaming Draw Poker)", MACHINE_SUPPORTS_SAVE )
|
||||
@ -4550,11 +4788,11 @@ GAME( 1982, comg181, 0, sys903, stand903, calomega_state, init_sys903,
|
||||
GAME( 1983, comg183, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.3 (Pixels)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1983, comg185, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.5 (Pixels)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1983, comg186, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.6 (Pixels)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1983, comg187, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.7 (Amusement Poker)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* bad dump */
|
||||
GAME( 1983, comg187, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.7 (Amusement Poker)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // bad dump
|
||||
GAME( 1984, comg204, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 20.4 (Super Blackjack)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, comg208, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 20.8 (Winner's Choice)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, comg227, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 22.7 (Amusement Poker, d/d)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1984, comg230, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 23.0 (FC Bingo (4-card))", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* bad dump */
|
||||
GAME( 1984, comg230, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 23.0 (FC Bingo (4-card))", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // bad dump
|
||||
GAME( 1984, comg236, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 23.6 (Hotline)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, comg239, 0, sys903, gdrwpkrd, calomega_state, init_sys903, ROT0, "Cal Omega / Casino Electronics Inc.", "Cal Omega - Game 23.9 (Gaming Draw Poker)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1985, comg240, 0, sys903, gdrwpkrh, calomega_state, init_sys903, ROT0, "Cal Omega / Casino Electronics Inc.", "Cal Omega - Game 24.0 (Gaming Draw Poker, hold)", MACHINE_SUPPORTS_SAVE )
|
||||
@ -4567,7 +4805,7 @@ GAME( 198?, comg903d, 0, sys903, stand903, calomega_state, init_sys903,
|
||||
GAME( 198?, comg905d, 0, sys905, stand905, calomega_state, init_sys905, ROT0, "Cal Omega Inc.", "Cal Omega - System 905 Diag.PROM", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
//************* 906-III games **************
|
||||
GAME( 198?, comg5108, 0, sys906, stand906, calomega_state, init_comg5108, ROT0, "Casino Electronics Inc.", "CEI 51.08 (CEI 906-III Poker)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 198?, comg5108, 0, sys906, stand906, calomega_state, init_comg5108, ROT0, "Casino Electronics Inc.", "CEI 51.08 (CEI 906-III Poker)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
//****** Unofficial 903/904/905 3rd part games *******
|
||||
GAME( 1982, elgrande, 0, s903mod, elgrande, calomega_state, init_s903mod, ROT0, "Enter-Tech, Ltd. / Tuni Electro Service", "El Grande - 5 Card Draw (New)", MACHINE_SUPPORTS_SAVE )
|
||||
@ -4578,6 +4816,6 @@ GAME( 1988, ssipkr30, ssipkr24, s903mod, ssipkr, calomega_state, init_s903mo
|
||||
GAME( 1990, ssipkr40, ssipkr24, s903mod, ssipkr, calomega_state, init_s903mod, ROT0, "SSI", "SSI Poker (v4.0)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
//****** Unofficial 906-III family 3rd part games *******
|
||||
GAME( 1990, cas21iwc, 0, sys906, cas21iwc, calomega_state, init_cas21iwc, ROT0, "UCMC/IWC", "Casino 21 UCMC/IWC (ver 30.08)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, pokeriwc, 0, sys906, pokeriwc, calomega_state, init_pokeriwc, ROT0, "UCMC/IWC", "Poker UCMC/IWC (ver 162.03)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, pokiwc162, pokeriwc, sys906, pokeriwc, calomega_state, init_pokeriwc, ROT0, "UCMC/IWC", "Poker UCMC/IWC (ver 162.03 20-6-91)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1990, cas21iwc, 0, sys906, cas21iwc, calomega_state, init_cas21iwc, ROT0, "UCMC/IWC", "Casino 21 UCMC/IWC (ver 30.08)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, pokeriwc, 0, sys906, pokeriwc, calomega_state, init_pokeriwc, ROT0, "UCMC/IWC", "Poker UCMC/IWC (ver 162.03)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1991, pokiwc162, pokeriwc, sys906, pokeriwc, calomega_state, init_pokeriwc, ROT0, "UCMC/IWC", "Poker UCMC/IWC (ver 162.03 20-6-91)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -1,5 +1,5 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders: Roberto Fresca
|
||||
// copyright-holders: Roberto Fresca, Grull Osgo
|
||||
|
||||
#ifndef MAME_INCLUDES_CALOMEGA_H
|
||||
#define MAME_INCLUDES_CALOMEGA_H
|
||||
@ -47,6 +47,7 @@ public:
|
||||
}
|
||||
|
||||
void init_sys903();
|
||||
void init_comg079();
|
||||
void init_comg080();
|
||||
void init_s903mod();
|
||||
void init_sys905();
|
||||
|
@ -1,16 +1,17 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Roberto Fresca
|
||||
// copyright-holders: Roberto Fresca
|
||||
/***********************************************
|
||||
|
||||
+-------------------------------------+
|
||||
| |
|
||||
| CAL OMEGA - SYSTEMS 903/904/905/906 |
|
||||
| |
|
||||
| Driver by Roberto Fresca. |
|
||||
| |
|
||||
+-------------------------------------+
|
||||
.-----------------------------------------.
|
||||
| |
|
||||
| CAL OMEGA / CEI / UCMC |
|
||||
| SYSTEMS 903 / 904 / 905 / 906-III |
|
||||
| |
|
||||
| Driver by Roberto Fresca. |
|
||||
| |
|
||||
'-----------------------------------------'
|
||||
|
||||
* Video Hardware *
|
||||
* Video Hardware *
|
||||
|
||||
************************************************/
|
||||
|
||||
@ -37,12 +38,13 @@ TILE_GET_INFO_MEMBER(calomega_state::get_bg_tile_info)
|
||||
7654 3210
|
||||
--xx xx-- tiles color.
|
||||
---- --x- tiles bank.
|
||||
xx-- ---x seems unused. */
|
||||
x--- ---x extended tiles addressing.
|
||||
-x-- ---- seems unused. */
|
||||
|
||||
int attr = m_colorram[tile_index];
|
||||
int code = m_videoram[tile_index];
|
||||
int bank = (attr & 0x02) >> 1; /* bit 1 switch the gfx banks */
|
||||
int color = (attr & 0x3c) >> 2; /* bits 2-3-4-5 for color */
|
||||
int code = ((attr & 1) << 8) | m_videoram[tile_index]; // bit 0 extends the the tiles addressing
|
||||
int bank = (attr & 0x02) >> 1; // bit 1 switch the gfx banks
|
||||
int color = (attr & 0x3c) >> 2; // bits 2-3-4-5 for color
|
||||
|
||||
tileinfo.set(bank, code, color, 0);
|
||||
}
|
||||
@ -73,14 +75,14 @@ void calomega_state::calomega_palette(palette_device &palette) const
|
||||
colors with it clear are attenuated by the background color pots)
|
||||
*/
|
||||
|
||||
// TODO: hook pots up as PORT_ADJUSTERs instead of hard coding them here
|
||||
// TODO: hook pots up as PORT_ADJUSTERs instead of hard coding them here
|
||||
|
||||
// let's make the BG a little darker than FG blue
|
||||
// let's make the BG a little darker than FG blue
|
||||
constexpr int r_pot = 0x00;
|
||||
constexpr int g_pot = 0x00;
|
||||
constexpr int b_pot = 0xc0;
|
||||
|
||||
// 00000BGR
|
||||
// 00000BGR
|
||||
uint8_t const *const color_prom = memregion("proms")->base();
|
||||
if (!color_prom)
|
||||
return;
|
||||
@ -91,13 +93,13 @@ void calomega_state::calomega_palette(palette_device &palette) const
|
||||
|
||||
int const fg = BIT(nibble, 3);
|
||||
|
||||
// red component
|
||||
// red component
|
||||
int const r = BIT(nibble, 0) * (fg ? 0xff : r_pot);
|
||||
|
||||
// green component
|
||||
// green component
|
||||
int const g = BIT(nibble, 1) * (fg ? 0xff : g_pot);
|
||||
|
||||
// blue component
|
||||
// blue component
|
||||
int const b = BIT(nibble, 2) * (fg ? 0xff : b_pot);
|
||||
|
||||
palette.set_pen_color(i, rgb_t(r, g, b));
|
||||
|
Loading…
Reference in New Issue
Block a user