mirror of
https://github.com/holub/mame
synced 2025-04-19 23:12:11 +03:00
misc/vamphalf.cpp: Add screen raw parameters
* xtal.cpp: Add value for later use
This commit is contained in:
parent
f94677ec4b
commit
872afd9ee5
@ -399,6 +399,7 @@ const double XTAL::known_xtals[] = {
|
||||
28'224'000, // 28.224_MHz_XTAL Roland JD-800
|
||||
28'322'000, // 28.322_MHz_XTAL Saitek RISC 2500, Mephisto Montreux
|
||||
28'375'160, // 28.37516_MHz_XTAL Amiga PAL systems
|
||||
28'432'000, // 28.432_MHz_XTAL Fuuki FG-3J MAIN-J PCB
|
||||
28'475'000, // 28.475_MHz_XTAL CoCo 3 PAL
|
||||
28'480'000, // 28.48_MHz_XTAL Chromatics CGC-7900
|
||||
28'636'000, // 28.636_MHz_XTAL Super Kaneko Nova System
|
||||
|
@ -56,6 +56,7 @@ TODO:
|
||||
- boonggab: simulate photo sensors with a "stroke strength"
|
||||
- boonggab: what are sensors bit used for? are they used in the japanese version?
|
||||
- wyvernsg: fails a protection check after ~1 hour of play?
|
||||
- are CRTC parameters software-configurable?
|
||||
|
||||
*********************************************************************/
|
||||
|
||||
@ -154,6 +155,13 @@ public:
|
||||
void common_map(address_map &map) ATTR_COLD;
|
||||
void common_32bit_map(address_map &map) ATTR_COLD;
|
||||
|
||||
static constexpr u16 HTOTAL = 448;
|
||||
static constexpr u16 HBEND = 31;
|
||||
static constexpr u16 HBSTART = 351;
|
||||
static constexpr u16 VTOTAL = 264;
|
||||
static constexpr u16 VBEND = 16;
|
||||
static constexpr u16 VBSTART = 252;
|
||||
|
||||
protected:
|
||||
virtual void video_start() override ATTR_COLD;
|
||||
|
||||
@ -1161,7 +1169,7 @@ GFXDECODE_END
|
||||
|
||||
void vamphalf_state::common(machine_config &config)
|
||||
{
|
||||
E116T(config, m_maincpu, 50000000); /* 50 MHz */
|
||||
E116T(config, m_maincpu, 50_MHz_XTAL); // 50 MHz
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &vamphalf_state::common_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(vamphalf_state::irq1_line_hold));
|
||||
|
||||
@ -1172,11 +1180,7 @@ void vamphalf_state::common(machine_config &config)
|
||||
|
||||
/* video hardware */
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
// 28MHz
|
||||
screen.set_refresh_hz(59);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(512, 256);
|
||||
screen.set_visarea(31, 350, 16, 251);
|
||||
screen.set_raw(28_MHz_XTAL / 4, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART);
|
||||
screen.set_screen_update(FUNC(vamphalf_state::screen_update_common));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
@ -1189,9 +1193,9 @@ void vamphalf_state::sound_ym_oki(machine_config &config)
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
YM2151(config, "ymsnd", XTAL(28'000'000)/8).add_route(0, "lspeaker", 1.0).add_route(1, "rspeaker", 1.0); /* 3.5MHz */
|
||||
YM2151(config, "ymsnd", 28_MHz_XTAL / 8).add_route(0, "lspeaker", 1.0).add_route(1, "rspeaker", 1.0); // 3.5MHz
|
||||
|
||||
okim6295_device &oki1(OKIM6295(config, "oki1", XTAL(28'000'000)/16 , okim6295_device::PIN7_HIGH)); /* 1.75MHz */
|
||||
okim6295_device &oki1(OKIM6295(config, "oki1", 28_MHz_XTAL / 16 , okim6295_device::PIN7_HIGH)); // 1.75MHz
|
||||
oki1.add_route(ALL_OUTPUTS, "lspeaker", 1.0);
|
||||
oki1.add_route(ALL_OUTPUTS, "rspeaker", 1.0);
|
||||
}
|
||||
@ -1207,9 +1211,9 @@ void vamphalf_state::sound_suplup(machine_config &config)
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
YM2151(config, "ymsnd", XTAL(14'318'181)/4).add_route(0, "lspeaker", 1.0).add_route(1, "rspeaker", 1.0); /* 3.579545 MHz */
|
||||
YM2151(config, "ymsnd", 14.318181_MHz_XTAL / 4).add_route(0, "lspeaker", 1.0).add_route(1, "rspeaker", 1.0); // 3.579545 MHz
|
||||
|
||||
okim6295_device &oki1(OKIM6295(config, "oki1", XTAL(14'318'181)/8, okim6295_device::PIN7_HIGH)); /* 1.75MHz */
|
||||
okim6295_device &oki1(OKIM6295(config, "oki1", 14.318181_MHz_XTAL / 8, okim6295_device::PIN7_HIGH)); // 1.75MHz
|
||||
oki1.add_route(ALL_OUTPUTS, "lspeaker", 1.0);
|
||||
oki1.add_route(ALL_OUTPUTS, "rspeaker", 1.0);
|
||||
}
|
||||
@ -1224,7 +1228,7 @@ void vamphalf_state::sound_qs1000(machine_config &config)
|
||||
m_soundlatch->data_pending_callback().set("qs1000", FUNC(qs1000_device::set_irq));
|
||||
m_soundlatch->set_separate_acknowledge(true);
|
||||
|
||||
qs1000_device &qs1000(QS1000(config, "qs1000", XTAL(24'000'000)));
|
||||
qs1000_device &qs1000(QS1000(config, "qs1000", 24_MHz_XTAL));
|
||||
qs1000.set_external_rom(true);
|
||||
qs1000.p1_in().set("soundlatch", FUNC(generic_latch_8_device::read));
|
||||
qs1000.p3_out().set(FUNC(vamphalf_state::qs1000_p3_w));
|
||||
@ -1243,7 +1247,7 @@ void vamphalf_state::vamphalf(machine_config &config)
|
||||
void vamphalf_qdsp_state::misncrft(machine_config &config)
|
||||
{
|
||||
common(config);
|
||||
GMS30C2116(config.replace(), m_maincpu, XTAL(50'000'000)); /* 50 MHz */
|
||||
GMS30C2116(config.replace(), m_maincpu, 50_MHz_XTAL); // 50 MHz
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &vamphalf_qdsp_state::common_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &vamphalf_qdsp_state::misncrft_io);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(vamphalf_state::irq1_line_hold));
|
||||
@ -1273,6 +1277,7 @@ void vamphalf_state::suplup(machine_config &config)
|
||||
m_maincpu->set_addrmap(AS_IO, &vamphalf_state::suplup_io);
|
||||
|
||||
// 14.31818MHz instead 28MHz
|
||||
subdevice<screen_device>("screen")->set_raw(14.318181_MHz_XTAL / 2, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART);
|
||||
sound_suplup(config);
|
||||
}
|
||||
|
||||
@ -1311,7 +1316,7 @@ void vamphalf_state::worldadv(machine_config &config)
|
||||
void vamphalf_state::mrdig(machine_config &config)
|
||||
{
|
||||
common(config);
|
||||
GMS30C2116(config.replace(), m_maincpu, XTAL(50'000'000)); /* 50 MHz */
|
||||
GMS30C2116(config.replace(), m_maincpu, 50_MHz_XTAL); // 50 MHz
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &vamphalf_state::common_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &vamphalf_state::mrdig_io);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(vamphalf_state::irq1_line_hold));
|
||||
@ -1322,7 +1327,7 @@ void vamphalf_state::mrdig(machine_config &config)
|
||||
void vamphalf_qdsp_state::wyvernwg(machine_config &config)
|
||||
{
|
||||
common(config);
|
||||
E132T(config.replace(), m_maincpu, XTAL(50'000'000)); /* 50 MHz */
|
||||
E132T(config.replace(), m_maincpu, 50_MHz_XTAL); // 50 MHz
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &vamphalf_qdsp_state::common_32bit_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &vamphalf_qdsp_state::wyvernwg_io);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(vamphalf_state::irq1_line_hold));
|
||||
@ -1333,7 +1338,7 @@ void vamphalf_qdsp_state::wyvernwg(machine_config &config)
|
||||
void vamphalf_nvram_state::finalgdr(machine_config &config)
|
||||
{
|
||||
common(config);
|
||||
E132T(config.replace(), m_maincpu, XTAL(50'000'000)); /* 50 MHz */
|
||||
E132T(config.replace(), m_maincpu, 50_MHz_XTAL); // 50 MHz
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &vamphalf_nvram_state::common_32bit_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &vamphalf_nvram_state::finalgdr_io);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(vamphalf_state::irq1_line_hold));
|
||||
@ -1346,7 +1351,7 @@ void vamphalf_nvram_state::finalgdr(machine_config &config)
|
||||
void vamphalf_nvram_state::mrkickera(machine_config &config)
|
||||
{
|
||||
common(config);
|
||||
E132T(config.replace(), m_maincpu, XTAL(50'000'000)); /* 50 MHz */
|
||||
E132T(config.replace(), m_maincpu, 50_MHz_XTAL); // 50 MHz
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &vamphalf_nvram_state::common_32bit_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &vamphalf_nvram_state::mrkickera_io);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(vamphalf_state::irq1_line_hold));
|
||||
@ -1358,7 +1363,7 @@ void vamphalf_nvram_state::mrkickera(machine_config &config)
|
||||
|
||||
void vamphalf_state::aoh(machine_config &config)
|
||||
{
|
||||
E132XN(config, m_maincpu, XTAL(20'000'000) * 4); /* 4x internal multiplier */
|
||||
E132XN(config, m_maincpu, 20_MHz_XTAL * 4); // 4x internal multiplier
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &vamphalf_state::aoh_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &vamphalf_state::aoh_io);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(vamphalf_state::irq1_line_hold));
|
||||
@ -1367,11 +1372,7 @@ void vamphalf_state::aoh(machine_config &config)
|
||||
|
||||
/* video hardware */
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
|
||||
// 32MHz
|
||||
screen.set_refresh_hz(59.185);
|
||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
screen.set_size(512, 512);
|
||||
screen.set_visarea(64, 511-64, 16, 255-16);
|
||||
screen.set_raw(32_MHz_XTAL / 4, 512, 64, 448, 264, 16, 240);
|
||||
screen.set_screen_update(FUNC(vamphalf_state::screen_update_aoh));
|
||||
screen.set_palette(m_palette);
|
||||
|
||||
@ -1382,13 +1383,13 @@ void vamphalf_state::aoh(machine_config &config)
|
||||
SPEAKER(config, "lspeaker").front_left();
|
||||
SPEAKER(config, "rspeaker").front_right();
|
||||
|
||||
YM2151(config, "ymsnd", XTAL(3'579'545)).add_route(0, "lspeaker", 1.0).add_route(1, "rspeaker", 1.0);
|
||||
YM2151(config, "ymsnd", 3.579545_MHz_XTAL).add_route(0, "lspeaker", 1.0).add_route(1, "rspeaker", 1.0);
|
||||
|
||||
okim6295_device &oki1(OKIM6295(config, "oki1", XTAL(32'000'000)/8, okim6295_device::PIN7_HIGH)); /* 4MHz */
|
||||
okim6295_device &oki1(OKIM6295(config, "oki1", 32_MHz_XTAL / 8, okim6295_device::PIN7_HIGH)); // 4MHz
|
||||
oki1.add_route(ALL_OUTPUTS, "lspeaker", 1.0);
|
||||
oki1.add_route(ALL_OUTPUTS, "rspeaker", 1.0);
|
||||
|
||||
okim6295_device &oki2(OKIM6295(config, "oki2", XTAL(32'000'000)/32, okim6295_device::PIN7_HIGH)); /* 1MHz */
|
||||
okim6295_device &oki2(OKIM6295(config, "oki2", 32_MHz_XTAL / 32, okim6295_device::PIN7_HIGH)); // 1MHz
|
||||
oki2.set_addrmap(0, &vamphalf_state::banked_oki_map);
|
||||
oki2.add_route(ALL_OUTPUTS, "lspeaker", 1.0);
|
||||
oki2.add_route(ALL_OUTPUTS, "rspeaker", 1.0);
|
||||
@ -1405,12 +1406,13 @@ void vamphalf_state::boonggab(machine_config &config)
|
||||
void vamphalf_qdsp_state::yorijori(machine_config &config)
|
||||
{
|
||||
common(config);
|
||||
E132T(config.replace(), m_maincpu, XTAL(50'000'000)); /* 50 MHz */
|
||||
E132T(config.replace(), m_maincpu, 50_MHz_XTAL); // 50 MHz
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &vamphalf_qdsp_state::yorijori_32bit_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &vamphalf_qdsp_state::yorijori_io);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(vamphalf_state::irq2_line_hold));
|
||||
|
||||
// 27MHz instead 28MHz
|
||||
subdevice<screen_device>("screen")->set_raw(27_MHz_XTAL / 4, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART);
|
||||
sound_qs1000(config);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user