new not working clone

-------------------------------------
Arizona 10 (v1.1) [f205v]

Simplified rabbitpk decryption [O. Galibert]
This commit is contained in:
Ivan Vangelista 2018-11-05 20:48:22 +01:00
parent 6e54409399
commit b53ae0d412
4 changed files with 138 additions and 84 deletions

View File

@ -28,6 +28,7 @@
sigmapkr | parent | Sigma Poker.
sigma2k | parent | Sigma Poker 2000.
piccolop | parent | Piccolo Poker 100.
arizna10 | clone | Arizona Poker 1.1? (with PIC)
*********************************************************************************
@ -77,7 +78,7 @@
From Novomatic web site:
"1990 - American Poker II kommt auf den Markt und wird als
'The Legend' in die Geschichte des Gl?cksspiels eingehen."
'The Legend' in die Geschichte des Glücksspiels eingehen."
"1990 - American Poker II comes on the market and is known as
'The Legend' in the history of gaming."
@ -85,7 +86,7 @@
----
Sigma Poker:
This poker game was also sold as "upgrade kit" for American Poker II taiwanese boards.
This poker game was also sold as "upgrade kit" for American Poker II Taiwanese boards.
The game has a lot of improvements. New graphics, sounds, bonus, and a totally new
'double-up' feature. Very addictive, in fact.
@ -104,7 +105,7 @@
1) Turn ON the Supervisor Key (0).
2) Press HOLD5 3 times to enter into page 4 (setup) of the supervisor menu.
3) Press HOLD3 to navegate between options, and highlight "Clear All Informations"
3) Press HOLD3 to navigate between options, and highlight "Clear All Informations"
4) Keep pressed HOLD1 for more than 3 seconds.
5) Turn OFF the Supervisor Key (0).
@ -248,7 +249,7 @@
Resistor Network
----------------
The following diagram is related to taiwanese and argentine PCBs.
The following diagram is related to Taiwanese and Argentine PCBs.
82S147AN
+---------+
@ -463,7 +464,7 @@ void ampoker2_state::machine_start()
*/
WRITE8_MEMBER(ampoker2_state::ampoker2_port30_w)
WRITE8_MEMBER(ampoker2_state::port30_w)
/*-------------------------------------------------
PORT_30 C000H ;OUTPUT PORT 30H
---------------------------------------------------
@ -477,7 +478,7 @@ WRITE8_MEMBER(ampoker2_state::ampoker2_port30_w)
}
WRITE8_MEMBER(ampoker2_state::ampoker2_port31_w)
WRITE8_MEMBER(ampoker2_state::port31_w)
/*-------------------------------------------------
PORT_31 C001H ;OUTPUT PORT 31H
---------------------------------------------------
@ -495,7 +496,7 @@ WRITE8_MEMBER(ampoker2_state::ampoker2_port31_w)
}
WRITE8_MEMBER(ampoker2_state::ampoker2_port32_w)
WRITE8_MEMBER(ampoker2_state::port32_w)
/*-------------------------------------------------
PORT_32 C002H ;OUTPUT PORT 32H
---------------------------------------------------
@ -510,7 +511,7 @@ WRITE8_MEMBER(ampoker2_state::ampoker2_port32_w)
}
WRITE8_MEMBER(ampoker2_state::ampoker2_port33_w)
WRITE8_MEMBER(ampoker2_state::port33_w)
/*-------------------------------------------------
PORT_33 C003H ;OUTPUT PORT 33H
---------------------------------------------------
@ -524,7 +525,7 @@ WRITE8_MEMBER(ampoker2_state::ampoker2_port33_w)
}
WRITE8_MEMBER(ampoker2_state::ampoker2_port34_w)
WRITE8_MEMBER(ampoker2_state::port34_w)
/*-------------------------------------------------
PORT_34 C004H ;OUTPUT PORT 34H
---------------------------------------------------
@ -539,7 +540,7 @@ WRITE8_MEMBER(ampoker2_state::ampoker2_port34_w)
}
WRITE8_MEMBER(ampoker2_state::ampoker2_port35_w)
WRITE8_MEMBER(ampoker2_state::port35_w)
/*-------------------------------------------------
PORT_35 C005H ;OUTPUT PORT 35H
---------------------------------------------------
@ -553,7 +554,7 @@ WRITE8_MEMBER(ampoker2_state::ampoker2_port35_w)
}
WRITE8_MEMBER(ampoker2_state::ampoker2_port36_w)
WRITE8_MEMBER(ampoker2_state::port36_w)
/*-------------------------------------------------
PORT_36 C006H ;OUTPUT PORT 36H
---------------------------------------------------
@ -571,7 +572,7 @@ WRITE8_MEMBER(ampoker2_state::ampoker2_port36_w)
}
WRITE8_MEMBER(ampoker2_state::ampoker2_watchdog_reset_w)
WRITE8_MEMBER(ampoker2_state::watchdog_reset_w)
/*-------------------------------------------------
PORT_37 C007H ;OUTPUT PORT 37H
---------------------------------------------------
@ -596,14 +597,14 @@ WRITE8_MEMBER(ampoker2_state::ampoker2_watchdog_reset_w)
* Memory map information *
*************************/
void ampoker2_state::ampoker2_map(address_map &map)
void ampoker2_state::program_map(address_map &map)
{
map(0x0000, 0xbfff).rom();
map(0xc000, 0xcfff).ram().share("nvram");
map(0xe000, 0xefff).ram().w(FUNC(ampoker2_state::ampoker2_videoram_w)).share("videoram");
map(0xe000, 0xefff).ram().w(FUNC(ampoker2_state::videoram_w)).share("videoram");
}
void ampoker2_state::ampoker2_io_map(address_map &map)
void ampoker2_state::io_map(address_map &map)
{
map.global_mask(0xff);
map(0x08, 0x0f).nopw(); /* inexistent in the real hardware */
@ -616,14 +617,14 @@ void ampoker2_state::ampoker2_io_map(address_map &map)
map(0x16, 0x16).portr("IN6");
map(0x17, 0x17).portr("IN7");
// AM_RANGE(0x21, 0x21) AM_WRITENOP /* undocumented, write 0x1a after each reset */
map(0x30, 0x30).w(FUNC(ampoker2_state::ampoker2_port30_w)); /* see write handlers */
map(0x31, 0x31).w(FUNC(ampoker2_state::ampoker2_port31_w)); /* see write handlers */
map(0x32, 0x32).w(FUNC(ampoker2_state::ampoker2_port32_w)); /* see write handlers */
map(0x33, 0x33).w(FUNC(ampoker2_state::ampoker2_port33_w)); /* see write handlers */
map(0x34, 0x34).w(FUNC(ampoker2_state::ampoker2_port34_w)); /* see write handlers */
map(0x35, 0x35).w(FUNC(ampoker2_state::ampoker2_port35_w)); /* see write handlers */
map(0x36, 0x36).w(FUNC(ampoker2_state::ampoker2_port36_w)); /* see write handlers */
map(0x37, 0x37).w(FUNC(ampoker2_state::ampoker2_watchdog_reset_w));
map(0x30, 0x30).w(FUNC(ampoker2_state::port30_w)); /* see write handlers */
map(0x31, 0x31).w(FUNC(ampoker2_state::port31_w)); /* see write handlers */
map(0x32, 0x32).w(FUNC(ampoker2_state::port32_w)); /* see write handlers */
map(0x33, 0x33).w(FUNC(ampoker2_state::port33_w)); /* see write handlers */
map(0x34, 0x34).w(FUNC(ampoker2_state::port34_w)); /* see write handlers */
map(0x35, 0x35).w(FUNC(ampoker2_state::port35_w)); /* see write handlers */
map(0x36, 0x36).w(FUNC(ampoker2_state::port36_w)); /* see write handlers */
map(0x37, 0x37).w(FUNC(ampoker2_state::watchdog_reset_w));
map(0x38, 0x39).w("aysnd", FUNC(ay8910_device::address_data_w));
map(0x3A, 0x3A).r("aysnd", FUNC(ay8910_device::data_r));
}
@ -1150,8 +1151,8 @@ MACHINE_CONFIG_START(ampoker2_state::ampoker2)
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/2) /* 3 MHz */
MCFG_DEVICE_PROGRAM_MAP(ampoker2_map)
MCFG_DEVICE_IO_MAP(ampoker2_io_map)
MCFG_DEVICE_PROGRAM_MAP(program_map)
MCFG_DEVICE_IO_MAP(io_map)
MCFG_DEVICE_PERIODIC_INT_DRIVER(ampoker2_state, nmi_line_pulse, 1536)
WATCHDOG_TIMER(config, m_watchdog).set_time(attotime::from_msec(200)); /* 200 ms, measured */
@ -1166,7 +1167,7 @@ MACHINE_CONFIG_START(ampoker2_state::ampoker2)
*/
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(20*8, 56*8-1, 2*8, 32*8-1)
MCFG_SCREEN_UPDATE_DRIVER(ampoker2_state, screen_update_ampoker2)
MCFG_SCREEN_UPDATE_DRIVER(ampoker2_state, screen_update)
MCFG_SCREEN_PALETTE("palette")
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_ampoker2)
@ -1355,7 +1356,7 @@ ROM_END
/*
Piccolo Poker (Admiral, licenced by Novomatic).
Piccolo Poker (Admiral, licensed by Novomatic).
Seems a interesting American Poker II variant.
Roms have swapped halves.
@ -1378,26 +1379,82 @@ ROM_START( piccolop )
ROM_END
/*
Arizona 10. This one has way more Italian text than rabbitpk. Also has Arizona in the graphics ROM, instead of Rabbit.
PCB is marked: "029 lc" on component side ("LC" is the Italian for "Lato Componenti" which translates to "Components Side")
PCB is marked: "029 ls" and "PKR 92" on solder side ("LS" is the Italian for "Lato Saldature" which translates to "Solders Side")
PCB is labeled: "8/98rb013" on component side
Devices
1x TMPZ84C00AP-6 u1 8-bit Microprocessor - main
1x KC89C72 u11 Programmable Sound Generator - sound
1x PIC16F84-04/P on small piggyback at u6 8bit CMOS Microcontroller (internal ROM not dumped)
1x TDA2003 u16 Audio Amplifier - sound
1x oscillator 6.000MHz oz1
ROMs
1x NM27C256 2 dumped
1x M27C512 1 dumped
1x AM27S29APC u48 dumped
RAMs
1x MB8416A-15L u39,u40
1x LC3517B-15 u7
PLDs
2x PALCE16V8H-25-PC/4 u8,u41 read protected
1x GAL22V10D-25LP on small piggyback at u6 read protected
Others
1x 28x2 JAMMA edge connector
1x 10 legs connector (CN1)
1x trimmer (volume)(P1)
1x 8 DIP switches bank (DIP)
1x battery 3.6V (BAT1)
*/
ROM_START( arizna10 )
ROM_REGION( 0x10000, "maincpu", 0 ) // on small piggyback at u6
ROM_LOAD( "1.u6", 0x0000, 0x10000, CRC(f34efd2b) SHA1(2d42aaf5980c5ca3687b37f7c8411482eaf4751d) )
ROM_REGION( 0x8000, "gfx1", 0 )
ROM_LOAD( "2.u47", 0x0000, 0x8000, CRC(eb71182a) SHA1(e138a6fdf9f11df5bd992f3ecf0e8c52abde4106) ) // 1ST AND 2ND HALF IDENTICAL
ROM_REGION( 0x880, "pic", 0 ) // on small piggyback at u6
ROM_LOAD( "pic16f84_code.u6", 0x000, 0x800, NO_DUMP )
ROM_LOAD( "pic16f84_data.u6", 0x800, 0x080, NO_DUMP )
ROM_REGION( 0x200, "proms", 0 )
ROM_LOAD( "am27s29apc.u48", 0x0000, 0x0200, CRC(c4b59342) SHA1(df52b41c9aa99ddc8ae94ac55978f2e80ca4cba9) )
ROM_REGION( 0x700, "plds", ROMREGION_ERASEFF )
ROM_LOAD( "palce16v8h.u8", 0x000, 0x117, NO_DUMP )
ROM_LOAD( "palce16v8h.u41", 0x200, 0x117, NO_DUMP )
ROM_LOAD( "gal22v10d.u6", 0x400, 0x2e5, NO_DUMP ) // on small piggyback at u6
ROM_END
/*************************
* Driver Init *
*************************/
void ampoker2_state::init_rabbitpk()
{
uint8_t *rom = memregion("maincpu")->base();
uint8_t *ROM = memregion("maincpu")->base();
int size = memregion("maincpu")->bytes();
uint8_t dec_base[32] =
for (int i = 0x0000; i < size; i++)
{
0x00, 0x43, 0x45, 0x06, 0xc3, 0x80, 0x86, 0xc5,
0x84, 0xc7, 0xc1, 0x82, 0x47, 0x04, 0x02, 0x41,
0x86, 0xc5, 0xc3, 0x80, 0x45, 0x06, 0x00, 0x43,
0x02, 0x41, 0x47, 0x04, 0xc1, 0x82, 0x84, 0xc7
};
uint8_t x = ROM[i];
for (int i = 0; i < size; i++)
{
rom[i] = bitswap<8>(rom[i], 1, 2, 5, 4, 3, 0, 7, 6) ^ dec_base[(i >> 2) & 0x1f];
if(i & 0x04) x ^= 0xc4;
if(i & 0x08) x ^= 0x45;
if(i & 0x10) x ^= 0xc6;
if(i & 0x20) x ^= 0x03;
if(i & 0x40) x ^= 0x83;
ROM[i] = bitswap<8>(x, 1, 2, 5, 4, 3, 0, 7, 6);
}
}
@ -1410,7 +1467,7 @@ void ampoker2_state::init_piccolop()
1383: 80 add a,b
1384: 00 nop ------\
1385: 00 nop | Obvious patch...
1386: 00 nop | Dunno if was made originarily.
1386: 00 nop | Dunno if was made originally.
1387: 00 nop ------/
1388: 3E 08 ld a,$08
138A: D3 37 out ($37),a ; Sets bit3 to keep happy the watchdog reset.
@ -1448,17 +1505,18 @@ void ampoker2_state::init_piccolop()
* Game Drivers *
*************************/
// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS LAYOUT
GAMEL( 1990, ampoker2, 0, ampoker2, ampoker2, ampoker2_state, empty_init, ROT0, "Novomatic", "American Poker II", MACHINE_SUPPORTS_SAVE, layout_ampoker2 )
GAMEL( 1990, ampkr2b1, ampoker2, ampoker2, ampoker2, ampoker2_state, empty_init, ROT0, "bootleg", "American Poker II (bootleg, set 1)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 )
GAMEL( 1990, ampkr2b2, ampoker2, ampoker2, ampoker2, ampoker2_state, empty_init, ROT0, "bootleg", "American Poker II (bootleg, set 2)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 )
GAMEL( 1994, ampkr2b3, ampoker2, ampoker2, ampoker2, ampoker2_state, empty_init, ROT0, "bootleg", "American Poker II (bootleg, set 3)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 )
GAMEL( 1994, ampkr2b4, ampoker2, ampoker2, ampoker2, ampoker2_state, empty_init, ROT0, "bootleg", "American Poker II (bootleg, set 4)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 )
GAMEL( 1994, ampkr228, ampoker2, ampoker2, ampoker2, ampoker2_state, empty_init, ROT0, "bootleg?", "American Poker II (iamp2 v28)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 )
GAMEL( 1995, ampkr95, ampoker2, ampoker2, ampkr95, ampoker2_state, empty_init, ROT0, "bootleg", "American Poker 95", MACHINE_SUPPORTS_SAVE, layout_ampoker2 )
GAMEL( 1990, pkrdewin, ampoker2, ampoker2, ampoker2, ampoker2_state, empty_init, ROT0, "bootleg", "Poker De Win", MACHINE_SUPPORTS_SAVE, layout_ampoker2 )
GAMEL( 1990, videomat, ampoker2, ampoker2, ampoker2, ampoker2_state, empty_init, ROT0, "bootleg", "Videomat (Polish bootleg)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 )
GAMEL( 1990, rabbitpk, ampoker2, ampoker2, ampoker2, ampoker2_state, init_rabbitpk, ROT0, "bootleg", "Rabbit Poker (Arizona Poker v1.1?)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 )
GAMEL( 1995, sigmapkr, 0, ampoker2, sigmapkr, ampoker2_state, empty_init, ROT0, "Sigma Inc.", "Sigma Poker", MACHINE_SUPPORTS_SAVE, layout_sigmapkr )
GAMEL( 1998, sigma2k, 0, sigma2k, sigma2k, ampoker2_state, empty_init, ROT0, "Sigma Inc.", "Sigma Poker 2000", MACHINE_SUPPORTS_SAVE, layout_sigmapkr )
GAME( 1991, piccolop, ampoker2, ampoker2, piccolop, ampoker2_state, init_piccolop, ROT0, "Admiral/Novomatic", "Piccolo Poker 100", MACHINE_SUPPORTS_SAVE )
// YEAR NAME PARENT MACHINE INPUT CLASS INIT ROT COMPANY FULLNAME FLAGS LAYOUT
GAMEL( 1990, ampoker2, 0, ampoker2, ampoker2, ampoker2_state, empty_init, ROT0, "Novomatic", "American Poker II", MACHINE_SUPPORTS_SAVE, layout_ampoker2 )
GAMEL( 1990, ampkr2b1, ampoker2, ampoker2, ampoker2, ampoker2_state, empty_init, ROT0, "bootleg", "American Poker II (bootleg, set 1)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 )
GAMEL( 1990, ampkr2b2, ampoker2, ampoker2, ampoker2, ampoker2_state, empty_init, ROT0, "bootleg", "American Poker II (bootleg, set 2)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 )
GAMEL( 1994, ampkr2b3, ampoker2, ampoker2, ampoker2, ampoker2_state, empty_init, ROT0, "bootleg", "American Poker II (bootleg, set 3)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 )
GAMEL( 1994, ampkr2b4, ampoker2, ampoker2, ampoker2, ampoker2_state, empty_init, ROT0, "bootleg", "American Poker II (bootleg, set 4)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 )
GAMEL( 1994, ampkr228, ampoker2, ampoker2, ampoker2, ampoker2_state, empty_init, ROT0, "bootleg?", "American Poker II (iamp2 v28)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 )
GAMEL( 1995, ampkr95, ampoker2, ampoker2, ampkr95, ampoker2_state, empty_init, ROT0, "bootleg", "American Poker 95", MACHINE_SUPPORTS_SAVE, layout_ampoker2 )
GAMEL( 1990, pkrdewin, ampoker2, ampoker2, ampoker2, ampoker2_state, empty_init, ROT0, "bootleg", "Poker De Win", MACHINE_SUPPORTS_SAVE, layout_ampoker2 )
GAMEL( 1990, videomat, ampoker2, ampoker2, ampoker2, ampoker2_state, empty_init, ROT0, "bootleg", "Videomat (Polish bootleg)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 )
GAMEL( 1990, rabbitpk, ampoker2, ampoker2, ampoker2, ampoker2_state, init_rabbitpk, ROT0, "bootleg", "Rabbit Poker (Arizona Poker v1.1?)", MACHINE_SUPPORTS_SAVE, layout_ampoker2 )
GAMEL( 1995, sigmapkr, 0, ampoker2, sigmapkr, ampoker2_state, empty_init, ROT0, "Sigma Inc.", "Sigma Poker", MACHINE_SUPPORTS_SAVE, layout_sigmapkr )
GAMEL( 1998, sigma2k, 0, sigma2k, sigma2k, ampoker2_state, empty_init, ROT0, "Sigma Inc.", "Sigma Poker 2000", MACHINE_SUPPORTS_SAVE, layout_sigmapkr )
GAME( 1991, piccolop, ampoker2, ampoker2, piccolop, ampoker2_state, init_piccolop, ROT0, "Admiral/Novomatic", "Piccolo Poker 100", MACHINE_SUPPORTS_SAVE )
GAMEL( 1995, arizna10, ampoker2, ampoker2, ampoker2, ampoker2_state, init_rabbitpk, ROT0, "bootleg (Ri.Bi)", "Arizona 10 (v1.1)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE, layout_ampoker2 ) // undumped PIC for protection?

View File

@ -19,15 +19,15 @@ public:
void sigma2k(machine_config &config);
void ampoker2(machine_config &config);
DECLARE_WRITE8_MEMBER(ampoker2_port30_w);
DECLARE_WRITE8_MEMBER(ampoker2_port31_w);
DECLARE_WRITE8_MEMBER(ampoker2_port32_w);
DECLARE_WRITE8_MEMBER(ampoker2_port33_w);
DECLARE_WRITE8_MEMBER(ampoker2_port34_w);
DECLARE_WRITE8_MEMBER(ampoker2_port35_w);
DECLARE_WRITE8_MEMBER(ampoker2_port36_w);
DECLARE_WRITE8_MEMBER(ampoker2_watchdog_reset_w);
DECLARE_WRITE8_MEMBER(ampoker2_videoram_w);
DECLARE_WRITE8_MEMBER(port30_w);
DECLARE_WRITE8_MEMBER(port31_w);
DECLARE_WRITE8_MEMBER(port32_w);
DECLARE_WRITE8_MEMBER(port33_w);
DECLARE_WRITE8_MEMBER(port34_w);
DECLARE_WRITE8_MEMBER(port35_w);
DECLARE_WRITE8_MEMBER(port36_w);
DECLARE_WRITE8_MEMBER(watchdog_reset_w);
DECLARE_WRITE8_MEMBER(videoram_w);
void init_rabbitpk();
void init_piccolop();
TILE_GET_INFO_MEMBER(get_bg_tile_info);
@ -40,12 +40,12 @@ protected:
virtual void machine_start() override;
private:
void ampoker2_io_map(address_map &map);
void ampoker2_map(address_map &map);
void io_map(address_map &map);
void program_map(address_map &map);
required_shared_ptr<uint8_t> m_videoram;
tilemap_t *m_bg_tilemap;
uint32_t screen_update_ampoker2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<watchdog_timer_device> m_watchdog;

View File

@ -1209,6 +1209,7 @@ ampkr2b3 // 1994 bootleg
ampkr2b4 // 1994 bootleg
ampkr95 // 1995 bootleg
ampoker2 // (c) 1990 Novomatic
arizna10 // 1995 bootleg
piccolop // (c) 1991 Admiral - Novomatic
pkrdewin // 1990 bootleg
rabbitpk // 1990 bootleg

View File

@ -28,6 +28,7 @@
rabbitpk | clone | Rabbit Poker / Arizona Poker 1.1? (with PIC)
sigmapkr | parent | Sigma Poker.
sigma2k | parent | Sigma Poker 2000.
arizna10 | clone | Arizona Poker 1.1? (with PIC)
*********************************************************************************
@ -80,7 +81,6 @@ PALETTE_INIT_MEMBER(ampoker2_state, ampoker2)
76543210
RRRGGGBB
*/
int i;
static const int resistances_rg[3] = { 1000, 470, 220 };
static const int resistances_b [2] = { 470, 220 };
double weights_r[3], weights_g[3], weights_b[2];
@ -91,42 +91,38 @@ PALETTE_INIT_MEMBER(ampoker2_state, ampoker2)
2, resistances_b, weights_b, 0, 0);
for (i = 0; i < palette.entries(); i++)
for (int i = 0; i < palette.entries(); i++)
{
int bit0, bit1, bit2, r, g, b;
/* blue component */
bit0 = (color_prom[i] >> 0) & 0x01;
bit1 = (color_prom[i] >> 1) & 0x01;
b = combine_2_weights(weights_b, bit0, bit1);
int bit0 = (color_prom[i] >> 0) & 0x01;
int bit1 = (color_prom[i] >> 1) & 0x01;
int b = combine_2_weights(weights_b, bit0, bit1);
/* green component */
bit0 = (color_prom[i] >> 2) & 0x01;
bit1 = (color_prom[i] >> 3) & 0x01;
bit2 = (color_prom[i] >> 4) & 0x01;
g = combine_3_weights(weights_g, bit0, bit1, bit2);
int bit2 = (color_prom[i] >> 4) & 0x01;
int g = combine_3_weights(weights_g, bit0, bit1, bit2);
/* red component */
bit0 = (color_prom[i] >> 5) & 0x01;
bit1 = (color_prom[i] >> 6) & 0x01;
bit2 = (color_prom[i] >> 7) & 0x01;
r = combine_3_weights(weights_r, bit0, bit1, bit2);
int r = combine_3_weights(weights_r, bit0, bit1, bit2);
palette.set_pen_color(i,rgb_t(r,g,b));
}
}
WRITE8_MEMBER(ampoker2_state::ampoker2_videoram_w)
WRITE8_MEMBER(ampoker2_state::videoram_w)
{
uint8_t *videoram = m_videoram;
videoram[offset] = data;
m_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset / 2);
}
TILE_GET_INFO_MEMBER(ampoker2_state::get_bg_tile_info)
{
uint8_t *videoram = m_videoram;
int offs = tile_index * 2;
int attr = videoram[offs + 1];
int code = videoram[offs];
int attr = m_videoram[offs + 1];
int code = m_videoram[offs];
int color = attr;
code = code + (256 * (color & 0x03)); /* code = color.bit1 + color.bit0 + code */
color = color >> 1; /* color = color - bit0 (bit1..bit7) */
@ -136,10 +132,9 @@ TILE_GET_INFO_MEMBER(ampoker2_state::get_bg_tile_info)
TILE_GET_INFO_MEMBER(ampoker2_state::s2k_get_bg_tile_info)
{
uint8_t *videoram = m_videoram;
int offs = tile_index * 2;
int attr = videoram[offs + 1];
int code = videoram[offs];
int attr = m_videoram[offs + 1];
int code = m_videoram[offs];
int color = attr;
code = code + (256 * (color & 0x0f)); /* the game uses 2 extra bits */
color = color >> 1;
@ -159,7 +154,7 @@ VIDEO_START_MEMBER(ampoker2_state,sigma2k)
8, 8, 64, 32);
}
uint32_t ampoker2_state::screen_update_ampoker2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
uint32_t ampoker2_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
return 0;