This commit is contained in:
Angelo Salese 2019-07-27 17:09:41 +02:00
parent 62e74625d2
commit 5dab28fb3c
2 changed files with 91 additions and 74 deletions

View File

@ -1157,6 +1157,11 @@ void segas24_state::hotrod_cpu1_map(address_map &map)
hotrod_common_map(map);
}
void segas24_state::dcclubj_cpu1_map(address_map &map)
{
rombd_cpu1_map(map);
roughrac_common_map(map);
}
/*************************************
*
@ -1188,6 +1193,12 @@ void segas24_state::hotrod_cpu2_map(address_map &map)
hotrod_common_map(map);
}
void segas24_state::dcclubj_cpu2_map(address_map &map)
{
rombd_cpu2_map(map);
roughrac_common_map(map);
}
void segas24_state::decrypted_opcodes_map(address_map &map)
{
map(0x00000, 0xfffff).bankr("fd1094_decrypted_opcodes");
@ -1566,81 +1577,23 @@ static INPUT_PORTS_START( qsww )
PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
INPUT_PORTS_END
static INPUT_PORTS_START( dcclub ) /* In the Japan set missing angle input */
PORT_INCLUDE( system24_generic )
PORT_MODIFY("P1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
PORT_DIPNAME( 0x0100, 0x0100, "DSWA" )
PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_MODIFY("DSW")
PORT_DIPNAME( 0x01, 0x01, "Start Credit" ) PORT_DIPLOCATION("SW2:1")
PORT_DIPSETTING( 0x01, "1" )
PORT_DIPSETTING( 0x00, "2" )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:2")
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:3")
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, "Timing Meter" ) PORT_DIPLOCATION("SW2:4")
PORT_DIPSETTING( 0x08, DEF_STR( Normal ) )
PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
PORT_DIPNAME( 0x10, 0x10, "Initial Balls" ) PORT_DIPLOCATION("SW2:5")
PORT_DIPSETTING( 0x00, "1" )
PORT_DIPSETTING( 0x10, "2" )
PORT_DIPNAME( 0x20, 0x20, "Balls Limit" ) PORT_DIPLOCATION("SW2:6")
PORT_DIPSETTING( 0x00, "3" )
PORT_DIPSETTING( 0x20, "4" )
PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:7,8")
PORT_DIPSETTING( 0x80, DEF_STR( Easy ) )
PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) )
PORT_DIPSETTING( 0x40, DEF_STR( Hard ) )
PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
PORT_START("PADDLE")
PORT_BIT( 0xff, 0x00, IPT_PADDLE ) PORT_MINMAX(0x00,0xbf) PORT_SENSITIVITY(64) PORT_KEYDELTA(64) PORT_PLAYER(1)
INPUT_PORTS_END
static INPUT_PORTS_START( sgmast )
PORT_INCLUDE( system24_generic )
PORT_MODIFY("P1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1) PORT_NAME("P1 Angle Left")
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Club")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1) PORT_NAME("P1 Angle Right")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Stance")
/* For select the power shot rotate the stick from up-left (max power) to up (minimum power) and relese */
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_CUSTOM )
PORT_MODIFY("P2")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("PADDLE")
PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_MINMAX(0x00,0xbf) PORT_SENSITIVITY(16) PORT_KEYDELTA(16) PORT_PLAYER(1) PORT_NAME("P1 Swing")
PORT_MODIFY("DSW")
PORT_DIPNAME( 0x01, 0x01, "Start Credit" ) PORT_DIPLOCATION("SW2:1")
@ -1667,9 +1620,14 @@ static INPUT_PORTS_START( sgmast )
PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) // 136% 100% 100%
INPUT_PORTS_END
// Japanese version has an analog "angle" device in place of the two dedicated buttons
static INPUT_PORTS_START( sgmastj )
PORT_INCLUDE( sgmast )
PORT_MODIFY("P1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_MODIFY("DSW")
//"SW2:1" not divert from "sgmast"
//"SW2:2" not divert from "sgmast"
@ -1681,12 +1639,49 @@ static INPUT_PORTS_START( sgmastj )
//"SW2:8" not divert from "sgmast"
PORT_START("DIAL1")
PORT_BIT( 0xfff, 0x000, IPT_DIAL ) PORT_MINMAX(0x000,0xfff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_RESET PORT_PLAYER(2)
PORT_BIT( 0xfff, 0x000, IPT_DIAL ) PORT_MINMAX(0x000,0xfff) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_RESET PORT_PLAYER(1) PORT_NAME("P1 Angle")
PORT_START("DIAL2")
PORT_BIT( 0xfff, 0x000, IPT_UNUSED )
INPUT_PORTS_END
static INPUT_PORTS_START( dcclub_dips )
PORT_MODIFY("DSW")
PORT_DIPNAME( 0x01, 0x01, "Start Credit" ) PORT_DIPLOCATION("SW2:1")
PORT_DIPSETTING( 0x01, "1" )
PORT_DIPSETTING( 0x00, "2" )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW2:2")
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:3")
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, "Timing Meter" ) PORT_DIPLOCATION("SW2:4")
PORT_DIPSETTING( 0x08, DEF_STR( Normal ) )
PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
PORT_DIPNAME( 0x10, 0x10, "Initial Balls" ) PORT_DIPLOCATION("SW2:5")
PORT_DIPSETTING( 0x00, "1" )
PORT_DIPSETTING( 0x10, "2" )
PORT_DIPNAME( 0x20, 0x20, "Balls Limit" ) PORT_DIPLOCATION("SW2:6")
PORT_DIPSETTING( 0x00, "3" )
PORT_DIPSETTING( 0x20, "4" )
PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:7,8")
PORT_DIPSETTING( 0x80, DEF_STR( Easy ) )
PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) )
PORT_DIPSETTING( 0x40, DEF_STR( Hard ) )
PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
INPUT_PORTS_END
static INPUT_PORTS_START( dcclub )
PORT_INCLUDE( sgmast )
PORT_INCLUDE( dcclub_dips )
INPUT_PORTS_END
static INPUT_PORTS_START( dcclubj )
PORT_INCLUDE( sgmastj )
PORT_INCLUDE( dcclub_dips )
INPUT_PORTS_END
static INPUT_PORTS_START( quizmeku )
PORT_INCLUDE( system24_generic )
@ -2050,6 +2045,17 @@ void segas24_state::dcclub(machine_config &config)
io.in_pc_callback().set(FUNC(segas24_state::dcclub_p3_r));
}
void segas24_state::dcclubj(machine_config &config)
{
dcclub(config);
m_maincpu->set_addrmap(AS_PROGRAM, &segas24_state::dcclubj_cpu1_map);
m_subcpu->set_addrmap(AS_PROGRAM, &segas24_state::dcclubj_cpu2_map);
upd4701_device &upd4701(UPD4701A(config, "upd4701"));
upd4701.set_portx_tag("DIAL1");
upd4701.set_porty_tag("DIAL2");
}
void segas24_state::system24_floppy_dcclub(machine_config &config)
{
system24_floppy_fd1094(config);
@ -2058,6 +2064,13 @@ void segas24_state::system24_floppy_dcclub(machine_config &config)
io.in_pc_callback().set(FUNC(segas24_state::dcclub_p3_r));
}
void segas24_state::sgmastj(machine_config &config)
{
system24_floppy_fd_upd(config);
sega_315_5296_device &io(*subdevice<sega_315_5296_device>("io"));
io.in_pa_callback().set(FUNC(segas24_state::dcclub_p1_r));
io.in_pc_callback().set(FUNC(segas24_state::dcclub_p3_r));
}
/*************************************
*
@ -2559,9 +2572,9 @@ void segas24_state::init_roughrac()
/* 04 */GAME( 1989, crkdown, 0, system24_floppy_fd1094, crkdown, segas24_state, init_crkdown, ROT0, "Sega", "Crack Down (World, Floppy Based, FD1094 317-0058-04c)", MACHINE_IMPERFECT_GRAPHICS ) // clipping probs / solid layer probs? (radar display)
/* 04 */GAME( 1989, crkdownu, crkdown, system24_floppy_fd1094, crkdown, segas24_state, init_crkdown, ROT0, "Sega", "Crack Down (US, Floppy Based, FD1094 317-0058-04d)", MACHINE_IMPERFECT_GRAPHICS ) // clipping probs / solid layer probs? (radar display)
/* 04 */GAME( 1989, crkdownj, crkdown, system24_floppy_fd1094, crkdown, segas24_state, init_crkdown, ROT0, "Sega", "Crack Down (Japan, Floppy Based, FD1094 317-0058-04b Rev A)", MACHINE_IMPERFECT_GRAPHICS ) // clipping probs / solid layer probs? (radar display)
/* 05 */GAME( 1989, sgmast, 0, system24_floppy_fd1094, sgmast, segas24_state, init_sgmast, ROT0, "Sega", "Super Masters Golf (World?, Floppy Based, FD1094 317-0058-05d?)", 0 )
/* 05 */GAME( 1989, sgmastc, sgmast, system24_floppy_fd1094, sgmast, segas24_state, init_sgmast, ROT0, "Sega", "Jumbo Ozaki Super Masters Golf (World, Floppy Based, FD1094 317-0058-05c)", MACHINE_IMPERFECT_GRAPHICS ) // some gfx offset / colour probs?
/* 05 */GAME( 1989, sgmastj, sgmast, system24_floppy_fd_upd, sgmastj, segas24_state, init_sgmast, ROT0, "Sega", "Jumbo Ozaki Super Masters Golf (Japan, Floppy Based, FD1094 317-0058-05b)", MACHINE_IMPERFECT_GRAPHICS ) // some gfx offset / colour probs?
/* 05 */GAME( 1989, sgmast, 0, system24_floppy_dcclub, sgmast, segas24_state, init_sgmast, ROT0, "Sega", "Super Masters Golf (World?, Floppy Based, FD1094 317-0058-05d?)", 0 )
/* 05 */GAME( 1989, sgmastc, sgmast, system24_floppy_dcclub, sgmast, segas24_state, init_sgmast, ROT0, "Sega", "Jumbo Ozaki Super Masters Golf (World, Floppy Based, FD1094 317-0058-05c)", MACHINE_IMPERFECT_GRAPHICS ) // some gfx offset / colour probs?
/* 05 */GAME( 1989, sgmastj, sgmast, sgmastj, sgmastj, segas24_state, init_sgmast, ROT0, "Sega", "Jumbo Ozaki Super Masters Golf (Japan, Floppy Based, FD1094 317-0058-05b)", MACHINE_IMPERFECT_GRAPHICS ) // some gfx offset / colour probs?
/* 06 */GAME( 1990, roughrac, 0, system24_floppy_fd_upd, roughrac, segas24_state, init_roughrac, ROT0, "Sega", "Rough Racer (Japan, Floppy Based, FD1094 317-0058-06b)", 0 )
/* 07 */GAME( 1990, bnzabros, 0, system24_floppy_rom, bnzabros, segas24_state, init_bnzabros, ROT0, "Sega", "Bonanza Bros (US, Floppy DS3-5000-07d? Based)", 0 )
/* 07 */GAME( 1990, bnzabrosj, bnzabros, system24_floppy_rom, bnzabros, segas24_state, init_bnzabros, ROT0, "Sega", "Bonanza Bros (Japan, Floppy DS3-5000-07b Based)", 0 )
@ -2571,7 +2584,7 @@ void segas24_state::init_roughrac()
// YEAR NAME PARENT MACHINE INPUT CLASS INIT MONITOR COMPANY FULLNAME FLAGS
/* ROM Based */
GAME( 1991, dcclub, 0, dcclub, dcclub, segas24_state, init_dcclub, ROT0, "Sega", "Dynamic Country Club (World, ROM Based)", 0 )
GAME( 1991, dcclubj, dcclub, dcclub, dcclub, segas24_state, init_dcclub, ROT0, "Sega", "Dynamic Country Club (Japan, ROM Based)", 0 )
GAME( 1991, dcclubj, dcclub, dcclubj, dcclubj, segas24_state, init_dcclub, ROT0, "Sega", "Dynamic Country Club (Japan, ROM Based)", 0 )
GAME( 1991, qrouka, 0, system24_rom, qrouka, segas24_state, init_qrouka, ROT0, "Sega", "Quiz Rouka Ni Tattenasai (Japan, ROM Based)", 0 )
GAME( 1992, quizmeku, 0, system24_rom, quizmeku, segas24_state, init_quizmeku, ROT0, "Sega", "Quiz Mekurumeku Story (Japan, ROM Based)", 0 ) /* Released in 05.1993 */
GAME( 1992, mahmajn, 0, mahmajn, mahmajn, segas24_state, init_mahmajn, ROT0, "Sega", "Tokoro San no MahMahjan (Japan, ROM Based)", 0 )

View File

@ -60,7 +60,9 @@ public:
void init_sgmast();
void dcclub(machine_config &config);
void dcclubj(machine_config &config);
void mahmajn(machine_config &config);
void sgmastj(machine_config &config);
void system24_floppy(machine_config &config);
void system24_floppy_dcclub(machine_config &config);
void system24_floppy_fd1094(machine_config &config);
@ -195,6 +197,8 @@ private:
void roughrac_common_map(address_map &map);
void roughrac_cpu1_map(address_map &map);
void roughrac_cpu2_map(address_map &map);
void dcclubj_cpu1_map(address_map &map);
void dcclubj_cpu2_map(address_map &map);
};
#endif // MAME_INCLUDES_SEGAS24_H