mirror of
https://github.com/holub/mame
synced 2025-04-24 09:20:02 +03:00
Bonne Chance!: Added proper palette. Now the game seems to get accurate colors.
Also added some descriptive notes and instructions for the service mode. [Roberto Fresca]
This commit is contained in:
parent
df619ae8a2
commit
6474a63c62
@ -332,6 +332,12 @@
|
||||
titled 'BONNE CHANCE!'. Turning the 4th DIP switch ON, the game switch to English,
|
||||
and the title changes to 'GOOD LUCK!' (as the above mentioned games).
|
||||
|
||||
To enter the test mode, press SERVICE (key 9). You can see an input-test matrix
|
||||
to test all the valid inputs. Pressing BET (key M) and START (Key 1) simultaneou-
|
||||
sly, you can find the book-keeping screen. Pressing once again both BET + START,
|
||||
a little RAM test will start. As soon as it ends, will exit the mode and will be
|
||||
back to the game....
|
||||
|
||||
|
||||
*******************************************************************************
|
||||
|
||||
@ -412,12 +418,12 @@
|
||||
- Added Bonne Chance!. A French/English poker game prototype of
|
||||
the well known 'Golden Poker' and 'Jack Potten Poker'.
|
||||
- Worked complete inputs from the scratch. Promoted to working.
|
||||
- Added proper palette. Now the game seems to get accurate colors.
|
||||
- Added some notes.
|
||||
|
||||
|
||||
TODO:
|
||||
|
||||
- Palette for Bonne Chance!.
|
||||
- Simplify the gfx banks to avoid a custom palette.
|
||||
- Document the correct pinout.
|
||||
- Analyze the PLD. Try to reconstruct the original equations.
|
||||
@ -455,15 +461,16 @@ public:
|
||||
TILE_GET_INFO_MEMBER(get_magicfly_tile_info);
|
||||
TILE_GET_INFO_MEMBER(get_7mezzo_tile_info);
|
||||
virtual void video_start();
|
||||
virtual void palette_init();
|
||||
DECLARE_PALETTE_INIT(magicfly);
|
||||
DECLARE_PALETTE_INIT(bchance);
|
||||
DECLARE_VIDEO_START(7mezzo);
|
||||
UINT32 screen_update_magicfly(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
};
|
||||
|
||||
|
||||
/*************************
|
||||
* Video Hardware *
|
||||
*************************/
|
||||
/*********************************************
|
||||
* Video Hardware *
|
||||
*********************************************/
|
||||
|
||||
|
||||
WRITE8_MEMBER(magicfly_state::magicfly_videoram_w)
|
||||
@ -478,6 +485,7 @@ WRITE8_MEMBER(magicfly_state::magicfly_colorram_w)
|
||||
m_bg_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
|
||||
TILE_GET_INFO_MEMBER(magicfly_state::get_magicfly_tile_info)
|
||||
{
|
||||
/* - bits -
|
||||
@ -508,6 +516,7 @@ void magicfly_state::video_start()
|
||||
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(magicfly_state::get_magicfly_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 29);
|
||||
}
|
||||
|
||||
|
||||
TILE_GET_INFO_MEMBER(magicfly_state::get_7mezzo_tile_info)
|
||||
{
|
||||
/* - bits -
|
||||
@ -538,13 +547,15 @@ VIDEO_START_MEMBER(magicfly_state,7mezzo)
|
||||
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(magicfly_state::get_7mezzo_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 29);
|
||||
}
|
||||
|
||||
|
||||
UINT32 magicfly_state::screen_update_magicfly(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void magicfly_state::palette_init()
|
||||
|
||||
PALETTE_INIT_MEMBER(magicfly_state, magicfly)
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -571,10 +582,40 @@ void magicfly_state::palette_init()
|
||||
}
|
||||
}
|
||||
|
||||
PALETTE_INIT_MEMBER(magicfly_state, bchance)
|
||||
{
|
||||
int i;
|
||||
|
||||
/******************************
|
||||
* R/W Handlers *
|
||||
******************************/
|
||||
for (i = 0x00; i < 0x10; i += 0x10)
|
||||
{
|
||||
/* 1st gfx bank */
|
||||
palette_set_color(machine(), i + 0, MAKE_RGB(0x00, 0x00, 0x00));
|
||||
palette_set_color(machine(), i + 2, MAKE_RGB(0x00, 0x00, 0x00));
|
||||
palette_set_color(machine(), i + 4, MAKE_RGB(0x00, 0x00, 0x00));
|
||||
palette_set_color(machine(), i + 6, MAKE_RGB(0x00, 0x00, 0x00));
|
||||
palette_set_color(machine(), i + 8, MAKE_RGB(0x00, 0x00, 0x00));
|
||||
palette_set_color(machine(), i + 10, MAKE_RGB(0x00, 0x00, 0x00));
|
||||
palette_set_color(machine(), i + 12, MAKE_RGB(0x00, 0x00, 0x00));
|
||||
palette_set_color(machine(), i + 14, MAKE_RGB(0x00, 0x00, 0x00));
|
||||
|
||||
palette_set_color(machine(), i + 1, MAKE_RGB(0x00, 0x00, 0x00));
|
||||
palette_set_color(machine(), i + 3, MAKE_RGB(0xff, 0x00, 0x00));
|
||||
palette_set_color(machine(), i + 5, MAKE_RGB(0x00, 0xff, 0x00));
|
||||
palette_set_color(machine(), i + 7, MAKE_RGB(0xff, 0xff, 0x00));
|
||||
palette_set_color(machine(), i + 9, MAKE_RGB(0x00, 0x00, 0xff));
|
||||
palette_set_color(machine(), i + 11, MAKE_RGB(0xff, 0x00, 0xff));
|
||||
palette_set_color(machine(), i + 13, MAKE_RGB(0x00, 0xff, 0xff));
|
||||
palette_set_color(machine(), i + 15, MAKE_RGB(0xff, 0xff, 0xff));
|
||||
}
|
||||
|
||||
palette_set_color(machine(), 0x08 , MAKE_RGB(0xff, 0xff, 0xff)); // white for the cards back logo background.
|
||||
palette_set_color(machine(), 0x12 , MAKE_RGB(0x00, 0x00, 0x00)); // black for the cards corners (should be transparent)
|
||||
}
|
||||
|
||||
|
||||
/**************************************************
|
||||
* R/W Handlers *
|
||||
**************************************************/
|
||||
|
||||
|
||||
READ8_MEMBER(magicfly_state::mux_port_r)
|
||||
@ -611,9 +652,9 @@ WRITE8_MEMBER(magicfly_state::mux_port_w)
|
||||
}
|
||||
|
||||
|
||||
/*************************
|
||||
* Memory map information *
|
||||
*************************/
|
||||
/*********************************************
|
||||
* Memory map information *
|
||||
*********************************************/
|
||||
|
||||
static ADDRESS_MAP_START( magicfly_map, AS_PROGRAM, 8, magicfly_state )
|
||||
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram") /* MK48Z02B NVRAM */
|
||||
@ -627,9 +668,9 @@ static ADDRESS_MAP_START( magicfly_map, AS_PROGRAM, 8, magicfly_state )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
/*************************
|
||||
* Input ports *
|
||||
*************************/
|
||||
/*********************************************
|
||||
* Input ports *
|
||||
*********************************************/
|
||||
|
||||
static INPUT_PORTS_START( magicfly )
|
||||
/* Multiplexed 4 x 5 bits.
|
||||
@ -769,6 +810,8 @@ static INPUT_PORTS_START( bchance )
|
||||
R2 0 0 0 0 0
|
||||
R3 0 0 0 0 0
|
||||
R4 0 0 0 0 0
|
||||
|
||||
R4C1 + R4C5 to exit...
|
||||
*/
|
||||
PORT_START("IN0-0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) // input test R1C1 (coin 1)
|
||||
@ -801,12 +844,12 @@ static INPUT_PORTS_START( bchance )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN0-3")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) // input test R4C1 (start/deal)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) // input test R4C2 (cancel)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) // input test R4C3 (service/test)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) // input test R4C4 (d-up)
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start") // input test R4C1 (start/deal)
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_CANCEL ) // input test R4C2 (cancel)
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) // input test R4C3 (service/test)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) // input test R4C4 (d-up)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) // input test R4C5 (bet)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) // input test R4C5 (bet)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
@ -831,9 +874,9 @@ static INPUT_PORTS_START( bchance )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
/*************************
|
||||
* Graphics Layouts *
|
||||
*************************/
|
||||
/*********************************************
|
||||
* Graphics Layouts *
|
||||
*********************************************/
|
||||
|
||||
static const gfx_layout tilelayout =
|
||||
{
|
||||
@ -858,9 +901,9 @@ static const gfx_layout charlayout =
|
||||
};
|
||||
|
||||
|
||||
/******************************
|
||||
* Graphics Decode Information *
|
||||
******************************/
|
||||
/**************************************************
|
||||
* Graphics Decode Information *
|
||||
**************************************************/
|
||||
|
||||
static GFXDECODE_START( magicfly )
|
||||
GFXDECODE_ENTRY( "gfxbnk1", 0, tilelayout, 16, 1 )
|
||||
@ -868,9 +911,9 @@ static GFXDECODE_START( magicfly )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
/************************
|
||||
* CRTC Interface *
|
||||
************************/
|
||||
/********************************************
|
||||
* CRTC Interface *
|
||||
********************************************/
|
||||
|
||||
static MC6845_INTERFACE( mc6845_intf )
|
||||
{
|
||||
@ -888,9 +931,9 @@ static MC6845_INTERFACE( mc6845_intf )
|
||||
};
|
||||
|
||||
|
||||
/*************************
|
||||
* Machine Drivers *
|
||||
*************************/
|
||||
/*********************************************
|
||||
* Machine Drivers *
|
||||
*********************************************/
|
||||
|
||||
static MACHINE_CONFIG_START( magicfly, magicfly_state )
|
||||
|
||||
@ -911,7 +954,7 @@ static MACHINE_CONFIG_START( magicfly, magicfly_state )
|
||||
|
||||
MCFG_GFXDECODE(magicfly)
|
||||
MCFG_PALETTE_LENGTH(32)
|
||||
|
||||
MCFG_PALETTE_INIT_OVERRIDE(magicfly_state, magicfly)
|
||||
|
||||
MCFG_MC6845_ADD("crtc", MC6845, MASTER_CLOCK/16, mc6845_intf) /* guess */
|
||||
|
||||
@ -919,11 +962,11 @@ static MACHINE_CONFIG_START( magicfly, magicfly_state )
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
MCFG_DAC_ADD("dac")
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( 7mezzo, magicfly )
|
||||
|
||||
/* basic machine hardware */
|
||||
static MACHINE_CONFIG_DERIVED( 7mezzo, magicfly )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_VIDEO_START_OVERRIDE(magicfly_state,7mezzo)
|
||||
@ -931,9 +974,17 @@ static MACHINE_CONFIG_DERIVED( 7mezzo, magicfly )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
/*************************
|
||||
* Rom Load *
|
||||
*************************/
|
||||
static MACHINE_CONFIG_DERIVED( bchance, magicfly )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_PALETTE_INIT_OVERRIDE(magicfly_state, bchance)
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
/*********************************************
|
||||
* Rom Load *
|
||||
*********************************************/
|
||||
|
||||
ROM_START( magicfly )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
@ -945,7 +996,6 @@ ROM_START( magicfly )
|
||||
ROM_LOAD( "magicfly0.bin", 0x4000, 0x2000, CRC(44e3c9d6) SHA1(677d25360d261bf2400f399b8015eeb529ad405e) )
|
||||
|
||||
ROM_REGION( 0x0800, "gfxbnk0", 0 )
|
||||
// ROM_FILL( 0x0000, 0x1000, 0 ) /* filling the R-G bitplanes */
|
||||
ROM_COPY( "gfx", 0x1800, 0x0000, 0x0800 ) /* chars */
|
||||
|
||||
ROM_REGION( 0x1800, "gfxbnk1", 0 )
|
||||
@ -968,7 +1018,6 @@ ROM_START( 7mezzo )
|
||||
ROM_LOAD( "ns0.bin", 0x4000, 0x2000, CRC(e04fb210) SHA1(81e764e296fe387daf8ca67064d5eba2a4fc3c26) ) /* Renamed as ns0.bin regarding pcb location and content */
|
||||
|
||||
ROM_REGION( 0x0800, "gfxbnk0", 0 )
|
||||
// ROM_FILL( 0x0000, 0x1000, 0 ) /* filling the R-G bitplanes */
|
||||
ROM_COPY( "gfx", 0x1800, 0x0000, 0x0800 ) /* chars */
|
||||
|
||||
ROM_REGION( 0x1800, "gfxbnk1", 0 )
|
||||
@ -984,13 +1033,12 @@ ROM_START( bchance )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD( "v-pk-4gag.bin", 0xc000, 0x4000, CRC(7c2dd908) SHA1(97b1390fb4c8c838a0d5b78d6904d597a9abe27f) )
|
||||
|
||||
ROM_REGION( 0x6000, "gfx", 0 )
|
||||
ROM_LOAD( "n-pk-2.bin", 0x0000, 0x2000, BAD_DUMP CRC(462c3dd7) SHA1(fb30d6147e0d607b3fb631d8bdca35e98eccfd2d) ) // from an exhaustive analysis of 25 different bad dumps
|
||||
ROM_REGION( 0x6000, "gfx", 0 ) /* ROM n-pk-2.bin was created from an exhaustive analysis of 25 different bad dumps */
|
||||
ROM_LOAD( "n-pk-2.bin", 0x0000, 0x2000, BAD_DUMP CRC(462c3dd7) SHA1(fb30d6147e0d607b3fb631d8bdca35e98eccfd2d) )
|
||||
ROM_LOAD( "n-pk-1.bin", 0x2000, 0x2000, CRC(e35cebd6) SHA1(b0dd86fd4c06f98e486b04e09808985bfa4f0e9c) )
|
||||
ROM_LOAD( "n-pk-0.bin", 0x4000, 0x2000, CRC(3c64edc4) SHA1(97b677b7c4999b502ab4b4f70c33b40050843796) )
|
||||
|
||||
ROM_REGION( 0x0800, "gfxbnk0", 0 )
|
||||
// ROM_FILL( 0x0000, 0x1000, 0 ) /* filling the R-G bitplanes */
|
||||
ROM_COPY( "gfx", 0x1800, 0x0000, 0x0800 ) /* chars */
|
||||
|
||||
ROM_REGION( 0x1800, "gfxbnk1", 0 )
|
||||
@ -999,15 +1047,15 @@ ROM_START( bchance )
|
||||
ROM_COPY( "gfx", 0x5800, 0x1000, 0x0800 ) /* 3bpp tiles, bitplane 3 */
|
||||
|
||||
ROM_REGION( 0x0200, "plds", 0 )
|
||||
ROM_LOAD( "gal16v8-bchance.bin", 0x0000, 0x0104, NO_DUMP ) // protected.
|
||||
ROM_LOAD( "gal16v8-bchance.bin", 0x0000, 0x0104, NO_DUMP ) /* protected */
|
||||
ROM_END
|
||||
|
||||
|
||||
/*************************
|
||||
* Game Drivers *
|
||||
*************************/
|
||||
/*********************************************
|
||||
* Game Drivers *
|
||||
*********************************************/
|
||||
|
||||
/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS... */
|
||||
GAME( 198?, magicfly, 0, magicfly, magicfly, driver_device, 0, ROT0, "P&A Games", "Magic Fly", 0 )
|
||||
GAME( 198?, 7mezzo, 0, 7mezzo, 7mezzo, driver_device, 0, ROT0, "<unknown>", "7 e Mezzo", 0 )
|
||||
GAME( 198?, bchance, 0, magicfly, bchance, driver_device, 0, ROT0, "<unknown>", "Bonne Chance! (French/English)", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_GRAPHICS )
|
||||
GAME( 198?, bchance, 0, bchance, bchance, driver_device, 0, ROT0, "<unknown>", "Bonne Chance! (French/English)", GAME_IMPERFECT_GRAPHICS )
|
||||
|
Loading…
Reference in New Issue
Block a user