mirror of
https://github.com/holub/mame
synced 2025-04-25 17:56:43 +03:00
Mundial/Mondial (Italian/French): Implemented the program banking
properly. Now you can choose the program through a DIP switch. [Roberto Fresca]
This commit is contained in:
parent
5174c3de11
commit
f30351f946
@ -985,6 +985,13 @@
|
||||
- Added technical notes.
|
||||
|
||||
|
||||
[2014-02-23]
|
||||
|
||||
- Added a new Videotron set with cards selector.
|
||||
- Mundial/Mondial (Italian/French): Implemented the program banking
|
||||
properly. Now you can choose the program through a DIP switch.
|
||||
|
||||
|
||||
TODO:
|
||||
|
||||
- Missing PIA connections.
|
||||
@ -1066,7 +1073,6 @@ public:
|
||||
DECLARE_DRIVER_INIT(vkdlswwr);
|
||||
DECLARE_DRIVER_INIT(vkdlswwv);
|
||||
DECLARE_DRIVER_INIT(bchancep);
|
||||
DECLARE_DRIVER_INIT(mondial);
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
TILE_GET_INFO_MEMBER(wcrdxtnd_get_bg_tile_info);
|
||||
virtual void video_start();
|
||||
@ -1074,6 +1080,8 @@ public:
|
||||
DECLARE_PALETTE_INIT(witchcrd);
|
||||
DECLARE_VIDEO_START(wcrdxtnd);
|
||||
DECLARE_PALETTE_INIT(wcrdxtnd);
|
||||
DECLARE_MACHINE_START(mondial);
|
||||
DECLARE_MACHINE_RESET(mondial);
|
||||
UINT32 screen_update_goldnpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
required_device<cpu_device> m_maincpu;
|
||||
optional_device<discrete_device> m_discrete;
|
||||
@ -3399,6 +3407,9 @@ static INPUT_PORTS_START( mondial )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
/* the following one is connected to DIP switches and is meant
|
||||
for switch between different programs stored in different
|
||||
halves of the program ROM */
|
||||
PORT_START("SELDSW")
|
||||
PORT_DIPNAME( 0x01, 0x00, "Game Selector" )
|
||||
PORT_DIPSETTING( 0x00, "Game 1 (Italian" )
|
||||
@ -3684,6 +3695,24 @@ static const ay8910_interface ay8910_config =
|
||||
};
|
||||
|
||||
|
||||
/******************************************
|
||||
* Machine Start & Reset *
|
||||
******************************************/
|
||||
|
||||
MACHINE_START_MEMBER(goldnpkr_state, mondial)
|
||||
{
|
||||
UINT8 *ROM = memregion("maincpu")->base();
|
||||
membank("bank1")->configure_entries(0, 2, &ROM[0], 0x4000);
|
||||
}
|
||||
|
||||
MACHINE_RESET_MEMBER(goldnpkr_state, mondial)
|
||||
{
|
||||
UINT8 seldsw = (ioport("SELDSW")->read() );
|
||||
popmessage("ROM Bank: %02X", seldsw);
|
||||
|
||||
membank("bank1")->set_entry(seldsw);
|
||||
}
|
||||
|
||||
/*********************************************
|
||||
* Machine Drivers *
|
||||
*********************************************/
|
||||
@ -3879,7 +3908,7 @@ static MACHINE_CONFIG_DERIVED( genie, goldnpkr_base )
|
||||
MCFG_PIA_WRITEPA_HANDLER(WRITE8(goldnpkr_state, mux_port_w))
|
||||
|
||||
/* video hardware */
|
||||
MCFG_PALETTE_INIT_OVERRIDE(goldnpkr_state,witchcrd)
|
||||
MCFG_PALETTE_INIT_OVERRIDE(goldnpkr_state, witchcrd)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
@ -3895,6 +3924,9 @@ static MACHINE_CONFIG_DERIVED( mondial, goldnpkr_base )
|
||||
MCFG_CPU_MODIFY("maincpu")
|
||||
MCFG_CPU_PROGRAM_MAP(mondial_map)
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(goldnpkr_state, mondial)
|
||||
MCFG_MACHINE_RESET_OVERRIDE(goldnpkr_state, mondial)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
MCFG_SOUND_ADD("discrete", DISCRETE, 0)
|
||||
@ -9693,8 +9725,8 @@ ROM_END
|
||||
*/
|
||||
|
||||
ROM_START( pokermon )
|
||||
ROM_REGION( 0x18000, "maincpu", 0 ) /* using 1st bank program */
|
||||
ROM_LOAD( "mbv_bi.bin", 0x10000, 0x8000, CRC(da00e08a) SHA1(98e52915178e29ab3ae674e6b895da14626d3dd8) )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 ) /* 2 programs, selectable via DIP switch */
|
||||
ROM_LOAD( "mbv_bi.bin", 0x0000, 0x8000, CRC(da00e08a) SHA1(98e52915178e29ab3ae674e6b895da14626d3dd8) )
|
||||
|
||||
ROM_REGION( 0x18000, "gfx", 0 )
|
||||
ROM_LOAD( "1m.bin", 0x00000, 0x4000, CRC(1b9e73ef) SHA1(fc9b67ab4c233a7e8ec8dc799732884f74166db0) )
|
||||
@ -10133,22 +10165,6 @@ DRIVER_INIT_MEMBER(goldnpkr_state, bchancep)
|
||||
}
|
||||
|
||||
|
||||
DRIVER_INIT_MEMBER(goldnpkr_state, mondial)
|
||||
{
|
||||
/* Program banking..... */
|
||||
|
||||
UINT8 *ROM = memregion("maincpu")->base();
|
||||
membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x4000);
|
||||
|
||||
membank("bank1")->set_entry(0); // for now, fixed in italian.
|
||||
|
||||
// UINT8 seldsw = (ioport("SELDSW")->read() );
|
||||
// popmessage("ROM Bank: %02X", seldsw);
|
||||
// membank("bank1")->set_entry(seldsw);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*********************************************
|
||||
* Game Drivers *
|
||||
*********************************************/
|
||||
@ -10286,4 +10302,4 @@ GAME( 198?, pokerdub, 0, pottnpkr, goldnpkr, driver_device, 0,
|
||||
GAME( 198?, pokerduc, 0, goldnpkr, goldnpkr, goldnpkr_state, icp1db, ROT0, "<unknown>", "unknown encrypted poker game", GAME_NOT_WORKING ) // encrypted.
|
||||
|
||||
GAMEL( 198?, bchancep, 0, bchancep, goldnpkr, goldnpkr_state, bchancep, ROT0, "<unknown>", "Bonne Chance! (Golden Poker prequel hardware)", GAME_NOT_WORKING, layout_goldnpkr )
|
||||
GAME( 1987, pokermon, 0, mondial, mondial, goldnpkr_state, mondial, ROT0, "<unknown>", "Mundial/Mondial (Italian/French)", 0 )
|
||||
GAME( 1987, pokermon, 0, mondial, mondial, driver_device, 0, ROT0, "<unknown>", "Mundial/Mondial (Italian/French)", 0 )
|
||||
|
Loading…
Reference in New Issue
Block a user