summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/skyfox.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/skyfox.cpp')
-rw-r--r--src/mame/drivers/skyfox.cpp21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/mame/drivers/skyfox.cpp b/src/mame/drivers/skyfox.cpp
index 9914d127034..27e9099ac1a 100644
--- a/src/mame/drivers/skyfox.cpp
+++ b/src/mame/drivers/skyfox.cpp
@@ -12,7 +12,11 @@ Sound: YM2203C x 2
Other: 2 HM6116LP-3 (one on each board)
1 KM6264L-15 (on bottom board)
-To Do: The background rendering is entirely guesswork
+TODO:
+- The background rendering is entirely guesswork;
+- DMA trigger happens at vpos 24 with legacy video parameters,
+ needs H/VSync PCB calculations, also notice that 62.65 Hz comes from the
+ bootleg and may be different for original;
2008-07
Verified Dip locations and recommended settings with manual
@@ -35,6 +39,7 @@ Verified Dip locations and recommended settings with manual
WRITE8_MEMBER(skyfox_state::output_w)
{
+ // TODO: untangle
switch (offset)
{
case 0:
@@ -44,9 +49,6 @@ WRITE8_MEMBER(skyfox_state::output_w)
case 1:
m_soundlatch->write(data);
break;
-
- default:
- break;
}
}
@@ -56,11 +58,14 @@ void skyfox_state::skyfox_map(address_map &map)
map(0xc000, 0xcfff).ram();
map(0xd000, 0xd3ff).ram().share("spriteram");
map(0xd400, 0xd4ff).ram().share("bgram"); // For background stars
+ // TODO: verify if A11 is unconnected
map(0xd500, 0xdfff).ram();
map(0xe000, 0xe000).portr("INPUTS");
map(0xe001, 0xe001).portr("DSW0");
map(0xe002, 0xe002).portr("DSW1");
- map(0xe008, 0xe00f).w(FUNC(skyfox_state::output_w));
+ map(0xe008, 0xe009).w(FUNC(skyfox_state::output_w));
+// map(0xe00a, 0xe00e) // POST only?
+ map(0xe00f, 0xe00f).nopw(); // DMA trigger
map(0xf001, 0xf001).portr("DSW2");
}
@@ -203,8 +208,6 @@ GFXDECODE_END
***************************************************************************/
-/* Scroll the background on every vblank (guess). */
-
void skyfox_state::machine_start()
{
save_item(NAME(m_bg_ctrl));
@@ -220,12 +223,14 @@ void skyfox_state::skyfox(machine_config &config)
/* basic machine hardware */
Z80(config, m_maincpu, XTAL(8'000'000)/2); /* Verified at 4MHz */
m_maincpu->set_addrmap(AS_PROGRAM, &skyfox_state::skyfox_map);
-
+ // IM0, never enables ei opcode
+
Z80(config, m_audiocpu, XTAL(14'318'181)/8); /* Verified at 1.789772MHz */
m_audiocpu->set_addrmap(AS_PROGRAM, &skyfox_state::skyfox_sound_map);
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
+ // TODO: legacy screen configuration with no vblank irq
m_screen->set_refresh_hz(62.65);
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */);
m_screen->set_size(512, 256);