mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
atari/atari400.cpp: initial split up of different driver state classes (#10442)
* atari400.cpp: initial split up of different state machines * atari400.cpp: Fix clang error: misleading indentation; statement is not part of the previous 'if' [-Werror,-Wmisleading-indentation] * atari400.cpp: virtualize machine_start/machine_reset * atari400.cpp: isolate m_ext_bank in a130xe_state * atari400.cpp: bulk replace pokey raw tags into m_pokey maxaflex.cpp: remove shadowed m_pokey, declared in atari_common_state; * atari400.cpp: fix a800xl / a130xe self test ROM enabling, fixes Acid800 XL MMU test * a800.xml: Update Q/A * atari400.cpp: split a600xl and a1200xl to own state * atari400.cpp: virtualize PIA portb * atari400.cpp: use memory_view at 0xd800-0xffff * atari400.cpp: various a400 and a800 refactoring changes: - reduce memory maps and configs to bare minimum; - reduce default RAM options for them and add preliminary options; - isolate I/O map; - make sure it unmap_value_high() because otherwise they will crash on non-48K setups; * atari400.cpp: inherit hw_iomap for a800xl and onward * atari400.cpp: lower kernel view bound to 0xc000 for a800xl and later machines * atari400.cpp: remove all _low_r/low_w handlers and replaced with views, fix xegs default boot order (BASIC then game ROM via select key), address code review * atari400.cpp: fix CI clang failure * atari400.cpp: fix a1200xl_state calls * atari400.cpp: hookup option jumpers to a1200xl * atari400.cpp, gtia.cpp: misc connection notes * a800.xml: minor bombjake notes * atari400.cpp: reduce selftest views * atari400.cpp: better inherit PIA portb mechanics * atari400.cpp: remove obsolete a600xl_mem fns * atari400.cpp: emulate extended RAM quirk for a130xe, convert m_ext_bank to address_map_bank_device Co-authored-by: AJR <ajrhacker@users.noreply.github.com>
This commit is contained in:
parent
220a2cc8f6
commit
1876f2c792
6 changed files with 565 additions and 571 deletions
|
@ -542,12 +542,13 @@ Align test never completes, burn-in test requires a test disk and writing to flo
|
|||
</part>
|
||||
</software>
|
||||
|
||||
<software name="alfclrcv" supported="no">
|
||||
<software name="alfclrcv" supported="partial">
|
||||
<description>Alf in the Color Caves</description>
|
||||
<year>1984</year>
|
||||
<publisher>Spinnaker</publisher>
|
||||
<notes><![CDATA[
|
||||
Doesn't complete first animation after selecting the left tunnel, [ANTIC] timing?
|
||||
a800: Doesn't complete first animation after selecting left tunnel during gameplay, [cart] handling (override right slot map?)
|
||||
Draws with solid orange at bottom of screen after selecting left tunnel, should be black [ANTIC]
|
||||
]]></notes>
|
||||
<info name="developer" value="Joyce Hakansson Associates, Inc" />
|
||||
<info name="serial" value="ALF-AT" />
|
||||
|
@ -1250,6 +1251,7 @@ a certain time, and this isn't currently emulated.
|
|||
</part>
|
||||
</software>
|
||||
|
||||
<!-- An actual "Bomb Jack" version known to exist in .xex format, requiring 320KB RAM (!) -->
|
||||
<software name="bombjake" supported="no">
|
||||
<description>Bomb Jake</description>
|
||||
<year>2009</year>
|
||||
|
@ -1259,6 +1261,7 @@ Loading screen is very off, [ANTIC] timing sensitive (downclock maincpu to 50% t
|
|||
Title screen has more timing glitches
|
||||
Starting a game randomly crashes
|
||||
Cuts off top portion of screen
|
||||
Hi-score table gets garbled after first attract cycle
|
||||
]]></notes>
|
||||
<info name="usage" value="Use PAL system for BGM during gameplay, NTSC has SFX only. Doesn't work in plain a400/a800" />
|
||||
<sharedfeat name="compatibility" value="XL/XE"/>
|
||||
|
@ -2194,7 +2197,8 @@ Glitchy title screen the first time around (fixes after one playthrough)
|
|||
<year>1999</year>
|
||||
<publisher>Video 61 / GMG</publisher>
|
||||
<notes><![CDATA[
|
||||
Cannot start a game (requires mouse?)
|
||||
Invisible mouse pointer on title screen, uses [GTIA] PRIOR multicolor + [ANTIC] missile DMA not enabled while sprite DMA is
|
||||
Very glitchy on gameplay, sprite eventually disappears, timing?
|
||||
Doesn't survive a soft reset
|
||||
]]></notes>
|
||||
<part name="cart" interface="a8bit_cart">
|
||||
|
@ -4896,13 +4900,11 @@ Doesn't draw game over "the end" screen properly, [ANTIC] vertical scroll?
|
|||
</part>
|
||||
</software>
|
||||
|
||||
<software name="satan" supported="no">
|
||||
<software name="satan">
|
||||
<description>Satan's Hollow (Unreleased)</description>
|
||||
<year>1982</year>
|
||||
<publisher>CBS Software</publisher>
|
||||
<notes><![CDATA[
|
||||
Cannot start a game, cfr. kpatrol (have to hold trigger pressed at boot then release to start) [GTIA] latch trigger
|
||||
]]></notes>
|
||||
<info name="usage" value="Supports Booster-Grip Joystick Adaptor" />
|
||||
<part name="cart" interface="a8bit_cart">
|
||||
<feature name="slot" value="a800_16k" />
|
||||
<dataarea name="rom" size="16384">
|
||||
|
|
|
@ -409,6 +409,7 @@ Runs too fast
|
|||
<description>Jumpman</description>
|
||||
<year>1983</year>
|
||||
<publisher>Epyx</publisher>
|
||||
<info name="usage" value="Hold OPTION key during boot to disable BASIC, requires 32K RAM as minimum" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="92176">
|
||||
<rom name="jumpman.atr" size="92176" crc="290a9e56" sha1="96c411a65cfd0b45ac68603021793701d27244b9"/>
|
||||
|
@ -427,6 +428,7 @@ Runs too fast
|
|||
]]></notes>
|
||||
<info name="serial" value="64712" />
|
||||
|
||||
<info name="usage" value="Hold OPTION key during boot to disable BASIC" />
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="92160">
|
||||
<rom name="elektraglide.xfd" size="92160" crc="96185b1c" sha1="fb9825a432b83a2a7e623a2f617d0fa11de08158"/>
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -55,7 +55,7 @@ void bartop52_state::a5200_mem(address_map &map)
|
|||
map(0x4000, 0xbfff).rom();
|
||||
map(0xc000, 0xc0ff).rw(m_gtia, FUNC(gtia_device::read), FUNC(gtia_device::write));
|
||||
map(0xd400, 0xd5ff).rw(m_antic, FUNC(antic_device::read), FUNC(antic_device::write));
|
||||
map(0xe800, 0xe8ff).rw("pokey", FUNC(pokey_device::read), FUNC(pokey_device::write));
|
||||
map(0xe800, 0xe8ff).rw(m_pokey, FUNC(pokey_device::read), FUNC(pokey_device::write));
|
||||
map(0xf800, 0xffff).rom();
|
||||
}
|
||||
|
||||
|
|
|
@ -319,8 +319,10 @@ void gtia_device::button_interrupt(int button_count)
|
|||
/* button registers for xl/xe */
|
||||
if (button_count == 2)
|
||||
{
|
||||
m_r.but[2] = 1; /* not used on xl/xe */
|
||||
m_r.but[3] = 0; /* 1 if external cartridge is inserted */
|
||||
// TRIG2: unused on xl/xe (1), xegs keyboard (1) connected (0) disconnected
|
||||
m_r.but[2] = 1;
|
||||
// TRIG3: RD5 external cart readback (1) present (0) disabled thru bankswitch or absent
|
||||
m_r.but[3] = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -40,7 +40,6 @@ public:
|
|||
maxaflex_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: atari_common_state(mconfig, type, tag)
|
||||
, m_mcu(*this, "mcu")
|
||||
, m_pokey(*this, "pokey")
|
||||
, m_speaker(*this, "speaker")
|
||||
, m_region_maincpu(*this, "maincpu")
|
||||
, m_dsw(*this, "dsw")
|
||||
|
@ -80,7 +79,6 @@ private:
|
|||
uint8_t m_portc_out;
|
||||
|
||||
required_device<m68705p3_device> m_mcu;
|
||||
required_device<pokey_device> m_pokey;
|
||||
required_device<speaker_sound_device> m_speaker;
|
||||
required_region_ptr<uint8_t> m_region_maincpu;
|
||||
required_ioport m_dsw;
|
||||
|
@ -211,7 +209,7 @@ void maxaflex_state::a600xl_mem(address_map &map)
|
|||
map(0xc000, 0xcfff).rom(); /* OS */
|
||||
map(0xd000, 0xd0ff).rw(m_gtia, FUNC(gtia_device::read), FUNC(gtia_device::write));
|
||||
map(0xd100, 0xd1ff).noprw();
|
||||
map(0xd200, 0xd2ff).rw("pokey", FUNC(pokey_device::read), FUNC(pokey_device::write));
|
||||
map(0xd200, 0xd2ff).rw(m_pokey, FUNC(pokey_device::read), FUNC(pokey_device::write));
|
||||
map(0xd300, 0xd3ff).rw("pia", FUNC(pia6821_device::read_alt), FUNC(pia6821_device::write_alt));
|
||||
map(0xd400, 0xd4ff).rw(m_antic, FUNC(antic_device::read), FUNC(antic_device::write));
|
||||
map(0xd500, 0xd7ff).noprw();
|
||||
|
|
Loading…
Reference in a new issue