Previous 199869 Revisions Next

r41454 Thursday 29th October, 2015 at 17:10:14 UTC by David Haywood
call it harmony/melody, that more accurately represents what we're emulating, dpc+ seems to be a software implementation on the ARM of the Harmony (nw)
[hash]a2600.xml
[scripts/src]bus.lua
[src/devices/bus/vcs]dpcplus.c dpcplus.h harmony_melody.c* harmony_melody.h* vcs_slot.c vcs_slot.h
[src/mame/drivers]a2600.c

trunk/hash/a2600.xml
r249965r249966
1795517955      </part>
1795617956   </software>
1795717957
17958   <!-- This was released by the author, also available via Atariage, are both versions the same? needs DPC+ emulation -->
17958   <!-- This was released by the author, also available via Atariage, are both versions the same? needs HARMONY/MELODY emulation -->
1795917959   <software name="stayfr2" supported="no">
1796017960      <description>Stay Frosty 2 (NTSC)</description>
1796117961      <year>2013</year>
1796217962      <publisher>Spiceware</publisher>
1796317963      <sharedfeat name="compatibility" value="NTSC" />
1796417964      <part name="cart" interface="a2600_cart">
17965         <feature name="slot" value="a26_dpcplus" />
17965         <feature name="slot" value="a26_harmony" />
1796617966         <dataarea name="rom" size="0x8000">
1796717967            <rom name="SF2_20131217_RC8_NTSC.bin" size="0x8000" crc="4eb739ab" sha1="5eceaf8e90bd9a002f4935f082df7b25716dceb0" offset="0" />
1796817968         </dataarea>
r249965r249966
1797517975      <publisher>Spiceware</publisher>
1797617976      <sharedfeat name="compatibility" value="NTSC" />
1797717977      <part name="cart" interface="a2600_cart">
17978         <feature name="slot" value="a26_dpcplus" />
17978         <feature name="slot" value="a26_harmony" />
1797917979         <dataarea name="rom" size="0x8000">
1798017980            <rom name="SF2_demo_NTSC.bin" size="0x8000" crc="fd850bd6" sha1="bd8166da7777c66e6bb3ab0c77563193d8289f5f" offset="0" />
1798117981         </dataarea>
r249965r249966
1798917989      <publisher>Spiceware</publisher>
1799017990      <sharedfeat name="compatibility" value="PAL" />
1799117991      <part name="cart" interface="a2600_cart">
17992         <feature name="slot" value="a26_dpcplus" />
17992         <feature name="slot" value="a26_harmony" />
1799317993         <dataarea name="rom" size="0x8000">
1799417994            <rom name="SF2_20131217_RC8_PAL.bin" size="0x8000" crc="7b495dc3" sha1="1625ef74b0a48c2968fad832ab8e2edc8187a53f" offset="0" />
1799517995         </dataarea>
r249965r249966
1800218002      <publisher>Spiceware</publisher>
1800318003      <sharedfeat name="compatibility" value="PAL" />
1800418004      <part name="cart" interface="a2600_cart">
18005         <feature name="slot" value="a26_dpcplus" />
18005         <feature name="slot" value="a26_harmony" />
1800618006         <dataarea name="rom" size="0x8000">
1800718007            <rom name="SF2_demo_PAL.bin" size="0x8000" crc="b47582f3" sha1="73625429e73f1b354e0cbe6a360d79590032de2b" offset="0" />
1800818008         </dataarea>
r249965r249966
1801518015    <publisher>Spiceware</publisher>
1801618016    <sharedfeat name="compatibility" value="NTSC" />
1801718017    <part name="cart" interface="a2600_cart">
18018      <feature name="slot" value="a26_dpcplus" />
18018      <feature name="slot" value="a26_harmony" />
1801918019      <dataarea name="rom" size="0x8000">
1802018020        <rom name="spacerocks20121129_NTSC.bin" size="0x8000" crc="c5d8eb83" sha1="bf3af5c76bb4dded5cb9c9b232c369250ad20ac4" offset="0" />
1802118021      </dataarea>
r249965r249966
1802818028    <publisher>Spiceware</publisher>
1802918029    <sharedfeat name="compatibility" value="PAL" />
1803018030    <part name="cart" interface="a2600_cart">
18031      <feature name="slot" value="a26_dpcplus" />
18031      <feature name="slot" value="a26_harmony" />
1803218032      <dataarea name="rom" size="0x8000">
1803318033        <rom name="spacerocks20121129_PAL.bin" size="0x8000" crc="133cb923" sha1="0511a35ee435227fbb5665e8488590eb993256f7" offset="0" />
1803418034      </dataarea>
1803518035    </part>
18036  </software>
18036  </software>
1803718037
18038  <software name="frantic" supported="no">
18039    <description>Frantic (20140305, NTSC)</description>
18040    <year>2014</year>
18041    <publisher>Spiceware</publisher>
18042    <sharedfeat name="compatibility" value="NTSC" />
18043    <part name="cart" interface="a2600_cart">
18044      <feature name="slot" value="a26_harmony" />
18045      <dataarea name="rom" size="0x8000">
18046        <rom name="frantic20140305.bin" size="0x8000" crc="04d0f558" sha1="ee2a004a50861c5fdfbdabfa5ed4bf825333ec43" offset="0" />
18047      </dataarea>
18048    </part>
18049  </software>
18050
18051  <software name="harmbios" supported="no">  <!-- I think these are the bios roms if you're using it as a multi-game cart? -->
18052    <description>Harmony Bios Updater</description>
18053    <year>2014</year>
18054    <publisher>Harmony</publisher>
18055    <sharedfeat name="compatibility" value="NTSC" />
18056    <part name="cart" interface="a2600_cart">
18057      <feature name="slot" value="a26_harmony" />
18058      <dataarea name="rom" size="0x8000">
18059        <rom name="bios_updater_NTSC.cu" size="0x8000" crc="03153eb2" sha1="cd9ee1d820737b3887ebe5fc6fe96a2a043ab009" offset="0" />
18060      </dataarea>
18061      <dataarea name="bios" size="0x21400">
18062        <rom name="hbios_106_NTSC_official_beta.bin" size="0x21400" crc="1e1d237b" sha1="8fd74e0119bce43a89bcc4998b750bc6884971da" offset="0" />
18063        <rom name="hbios_106_NTSC_beta_2.bin"        size="0x21400" crc="807b86bd" sha1="633960295c30e7430b3ce58f6244495f4b708e9d" offset="0" />
18064        <rom name="hbios_106_NTSC.bin"               size="0x21400" crc="48664301" sha1="aaa5e839f307734306c2a9ccbe38482579c70391" offset="0" />
18065
18066        <rom name="hbios_105_NTSC.bin"  size="0x19400" crc="c0b8aae9" sha1="68b10153695da505756eb7dc7cc4a7e93fe68860" offset="0" />
18067        <rom name="hbios_105_PAL50.bin" size="0x19400" crc="fb942c80" sha1="81bba9d9c245d23cc4b9503180ebe2d67bf1e117" offset="0" />
18068        <rom name="hbios_105_PAL60.bin" size="0x19400" crc="b59ebe6d" sha1="873830286c66935fd23e3ea7c192e6573e056cbd" offset="0" />
18069
18070        <rom name="eeloader_104e_NTSC.bin"  size="0x36f8" crc="ad04a8d9" sha1="c83d724299875cd5ea8d6be05db12d688ce8eff1" offset="0" />
18071        <rom name="eeloader_104e_PAL50.bin" size="0x36f8" crc="4868ba51" sha1="e6a65523824ecf4f2a5145e2c5118cfb4bee059d" offset="0" />
18072        <rom name="eeloader_104e_PAL60.bin" size="0x36f8" crc="58845532" sha1="255b5c9f4f2f7322c20d2619126cd150a1b8f71c" offset="0" />
18073
18074      </dataarea>
18075
18076    </part>
18077  </software>
18078
1803818079</softwarelist>
1803918080
1804018081
trunk/scripts/src/bus.lua
r249965r249966
11611161      MAME_DIR .. "src/devices/bus/vcs/compumat.h",
11621162      MAME_DIR .. "src/devices/bus/vcs/dpc.c",
11631163      MAME_DIR .. "src/devices/bus/vcs/dpc.h",
1164      MAME_DIR .. "src/devices/bus/vcs/dpcplus.c",
1165      MAME_DIR .. "src/devices/bus/vcs/dpcplus.h",
1164      MAME_DIR .. "src/devices/bus/vcs/harmony_melody.c",
1165      MAME_DIR .. "src/devices/bus/vcs/harmony_melody.h",
11661166      MAME_DIR .. "src/devices/bus/vcs/scharger.c",
11671167      MAME_DIR .. "src/devices/bus/vcs/scharger.h",
11681168   }
trunk/src/devices/bus/vcs/dpcplus.c
r249965r249966
1// license:BSD-3-Clause
2// copyright-holders:David Haywood
3/***************************************************************************
4
5Atari 2600 cart with DPC+
6
7the DPC+ adds an ARM CPU, including video improvements plus an extra synthesizer.
8
9Some info on the DPC+ hardware can be found on Darrell Spice Jr's guides:
10http://atariage.com/forums/blog/148/entry-11811-dpcarm-part-6-dpc-cartridge-layout/
11http://atariage.com/forums/blog/148/entry-11883-dpcarm-part-7-6507arm-exchange-of-information/
12http://atariage.com/forums/blog/148/entry-11903-dpcarm-part-8-multiple-functions/
13http://atariage.com/forums/blog/148/entry-11935-dpcarm-part-9-functional-menu/
14http://atariage.com/forums/blog/148/entry-11964-dpcarm-part-10-score-timer-display/
15http://atariage.com/forums/blog/148/entry-11988-dpcarm-part-12-gamepad-support/
16
17map:
18   Bankswitching uses addresses $FFF6-$FFFB
19
20   * ARM RAM mapped at $40000000 in this area
21   $0000-$0BFF: DPC+ driver (not accessible by 2600 itself) (copied to $40000000 - $40000bff on startup by ARM)
22   $0C00-$1BFF: Bank 0 (each bank can map to 0x1000 - 0x1fff in 6507 space, like other carts)
23   $1C00-$2BFF: Bank 1
24   $2C00-$3BFF: Bank 2
25   $3C00-$4BFF: Bank 3
26   $4C00-$5BFF: Bank 4
27   $5C00-$6BFF: Bank 5 (default bank is bank 5)
28   $6C00-$7BFF: Display Data (indirect access) (copied to $40000C00 - $40001bff on startup by ARM)
29   $7C00-$7FFF: Synth Frequency Data (not accessible by 2600 itself) (copied to $40001C00 - $40001fff on startup by ARM)
30
31***************************************************************************/
32
33
34#include "emu.h"
35#include "dpcplus.h"
36
37
38
39
40
41// cart device
42
43const device_type A26_ROM_DPCPLUS = &device_creator<a26_rom_dpcplus_device>;
44
45
46a26_rom_dpcplus_device::a26_rom_dpcplus_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
47                  : a26_rom_f8_device(mconfig, A26_ROM_DPCPLUS, "Atari 2600 ROM Cart DPC+", tag, owner, clock, "a2600_dpcplus", __FILE__)
48{
49}
50
51//-------------------------------------------------
52//  mapper specific start/reset
53//-------------------------------------------------
54
55void a26_rom_dpcplus_device::device_start()
56{
57   save_item(NAME(m_base_bank));
58}
59
60void a26_rom_dpcplus_device::device_reset()
61{
62   m_base_bank = 5;
63}
64
65
66READ8_MEMBER(a26_rom_dpcplus_device::read8_r)
67{
68   return m_rom[offset + (m_base_bank * 0x1000)];
69}
70
71
72READ32_MEMBER(a26_rom_dpcplus_device::armrom_r)
73{
74   UINT32 ret = (m_rom[offset * 4 + 3] << 24) |
75                  (m_rom[offset * 4 + 2] << 16) |
76               (m_rom[offset * 4 + 1] << 8) |
77                (m_rom[offset * 4 + 0] << 0);
78   return ret;
79}
80
81WRITE32_MEMBER(a26_rom_dpcplus_device::armrom_w)
82{
83
84}
85
86READ32_MEMBER(a26_rom_dpcplus_device::arm_E01FC088_r)
87{
88   return 0xffffffff;
89}
90
91static ADDRESS_MAP_START( dpcplus_arm7_map, AS_PROGRAM, 32, a26_rom_dpcplus_device )
92   // todo: implement all this correctly
93   AM_RANGE(0x00000000, 0x00007fff) AM_READWRITE(armrom_r,armrom_w) // flash, 32k
94   AM_RANGE(0x40000000, 0x40001fff) AM_RAM // sram, 8k
95
96   AM_RANGE(0xE01FC088, 0xE01FC08b) AM_READ(arm_E01FC088_r)
97ADDRESS_MAP_END
98
99static MACHINE_CONFIG_FRAGMENT( a26_dpcplus )
100   MCFG_CPU_ADD("arm", ARM7, 70000000)
101   MCFG_CPU_PROGRAM_MAP(dpcplus_arm7_map)
102MACHINE_CONFIG_END
103
104machine_config_constructor a26_rom_dpcplus_device::device_mconfig_additions() const
105{
106   return MACHINE_CONFIG_NAME( a26_dpcplus );
107}
108
109void a26_rom_dpcplus_device::check_bankswitch(offs_t offset)
110{
111   switch (offset)
112   {
113   case 0x0FF6: m_base_bank = 0; break;
114   case 0x0FF7: m_base_bank = 1; break;
115   case 0x0FF8: m_base_bank = 2; break;
116   case 0x0FF9: m_base_bank = 3; break;
117   case 0x0FFa: m_base_bank = 4; break;
118   case 0x0FFb: m_base_bank = 5; break;
119   default: break;
120   }
121}
122
123READ8_MEMBER(a26_rom_dpcplus_device::read_rom)
124{
125   UINT8 retvalue = read8_r(space, offset + 0xc00); // banks start at 0xc00
126
127   check_bankswitch(offset);
128
129   return retvalue;
130}
131
132WRITE8_MEMBER(a26_rom_dpcplus_device::write_bank)
133{
134   check_bankswitch(offset);
135//   a26_rom_f8_device::write_bank(space, offset, data);
136}
trunk/src/devices/bus/vcs/dpcplus.h
r249965r249966
1// license:BSD-3-Clause
2// copyright-holders:David Haywood
3#ifndef __VCS_DPCPLUS_H
4#define __VCS_DPCPLUS_H
5
6#include "rom.h"
7#include "cpu/arm7/arm7.h"
8
9
10// ======================> a26_rom_dpcplus_device
11
12class a26_rom_dpcplus_device : public a26_rom_f8_device
13{
14public:
15   // construction/destruction
16   a26_rom_dpcplus_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
17
18   // device-level overrides
19   virtual void device_start();
20   virtual machine_config_constructor device_mconfig_additions() const;
21   virtual void device_reset();
22
23   // reading and writing
24   virtual DECLARE_READ8_MEMBER(read_rom);
25   virtual DECLARE_WRITE8_MEMBER(write_bank);
26
27   DECLARE_READ32_MEMBER(armrom_r);
28   DECLARE_WRITE32_MEMBER(armrom_w);
29   
30   DECLARE_READ8_MEMBER(read8_r);
31
32   DECLARE_READ32_MEMBER(arm_E01FC088_r);
33
34   void check_bankswitch(offs_t offset);
35
36protected:
37};
38
39
40// device type definition
41extern const device_type A26_ROM_DPCPLUS;
42
43#endif
trunk/src/devices/bus/vcs/harmony_melody.c
r0r249966
1// license:BSD-3-Clause
2// copyright-holders:David Haywood
3/***************************************************************************
4
5Harmony / Melody cart for the A2600
6
7The Harmony cart is a 'modern' A2600 cartridge, used for homebrew etc. It has
8an SD slot and can be connected to a PC, roms can be transfered to it with
9software on the PC side.  It uses an ARM7TDMI-S LPC2103 @ 70 Mhz to emulate
10the mapper behavior of other cartridges.  It has an SD card slot for storing
11game data.
12
13The Melody version of the cartridge has been used for several recent A2600
14commercial releases as well as some reproductions due to it's ability to be
15programmed as any other cartridge type.  This lacks the SD slot?
16
17The 'DPC+' games by SpiceWare run on a Harmony / Melody cart, DPC+ seems to
18be a virtual 'software mapper' programmed on the ARM rather than a real mapper.
19
20
21There is also a 'Harmony Encore' cartridge which adds support for some of the
22games the original couldn't handle due to them having larger ROMs and more
23complex banking schemes (Stella's Stocking etc.)
24
25some Harmony cart details can be found at
26http://atariage.com/forums/topic/156500-latest-harmony-cart-software/
27
28
29DPC+ notes
30----------
31
32Some info on the Harmony / Melody when configured as DPC+ hardware can be found on Darrell Spice Jr's guides:
33http://atariage.com/forums/blog/148/entry-11811-dpcarm-part-6-dpc-cartridge-layout/
34http://atariage.com/forums/blog/148/entry-11883-dpcarm-part-7-6507arm-exchange-of-information/
35http://atariage.com/forums/blog/148/entry-11903-dpcarm-part-8-multiple-functions/
36http://atariage.com/forums/blog/148/entry-11935-dpcarm-part-9-functional-menu/
37http://atariage.com/forums/blog/148/entry-11964-dpcarm-part-10-score-timer-display/
38http://atariage.com/forums/blog/148/entry-11988-dpcarm-part-12-gamepad-support/
39
40map:
41   Bankswitching uses addresses $FFF6-$FFFB
42
43   * ARM RAM mapped at $40000000 in this area
44   $0000-$0BFF: HARMONY/MELODY driver (not accessible by 2600 itself) (copied to $40000000 - $40000bff on startup by ARM)
45   $0C00-$1BFF: Bank 0 (each bank can map to 0x1000 - 0x1fff in 6507 space, like other carts)
46   $1C00-$2BFF: Bank 1
47   $2C00-$3BFF: Bank 2
48   $3C00-$4BFF: Bank 3
49   $4C00-$5BFF: Bank 4
50   $5C00-$6BFF: Bank 5 (default bank is bank 5)
51   $6C00-$7BFF: Display Data (indirect access) (copied to $40000C00 - $40001bff on startup by ARM)
52   $7C00-$7FFF: Synth Frequency Data (not accessible by 2600 itself) (copied to $40001C00 - $40001fff on startup by ARM)
53
54***************************************************************************/
55
56
57#include "emu.h"
58#include "harmony_melody.h"
59
60
61
62
63
64// cart device
65
66const device_type A26_ROM_HARMONY = &device_creator<a26_rom_harmony_device>;
67
68
69a26_rom_harmony_device::a26_rom_harmony_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
70                  : a26_rom_f8_device(mconfig, A26_ROM_HARMONY, "Atari 2600 ROM Cart HARMONY/MELODY", tag, owner, clock, "a2600_harmony", __FILE__)
71{
72}
73
74//-------------------------------------------------
75//  mapper specific start/reset
76//-------------------------------------------------
77
78void a26_rom_harmony_device::device_start()
79{
80   save_item(NAME(m_base_bank));
81}
82
83void a26_rom_harmony_device::device_reset()
84{
85   m_base_bank = 5;
86}
87
88
89READ8_MEMBER(a26_rom_harmony_device::read8_r)
90{
91   return m_rom[offset + (m_base_bank * 0x1000)];
92}
93
94
95READ32_MEMBER(a26_rom_harmony_device::armrom_r)
96{
97   UINT32 ret = (m_rom[offset * 4 + 3] << 24) |
98                  (m_rom[offset * 4 + 2] << 16) |
99               (m_rom[offset * 4 + 1] << 8) |
100                (m_rom[offset * 4 + 0] << 0);
101   return ret;
102}
103
104WRITE32_MEMBER(a26_rom_harmony_device::armrom_w)
105{
106
107}
108
109READ32_MEMBER(a26_rom_harmony_device::arm_E01FC088_r)
110{
111   return 0xffffffff;
112}
113
114static ADDRESS_MAP_START( harmony_arm7_map, AS_PROGRAM, 32, a26_rom_harmony_device )
115   // todo: implement all this correctly
116   AM_RANGE(0x00000000, 0x00007fff) AM_READWRITE(armrom_r,armrom_w) // flash, 32k
117   AM_RANGE(0x40000000, 0x40001fff) AM_RAM // sram, 8k
118
119   AM_RANGE(0xE01FC088, 0xE01FC08b) AM_READ(arm_E01FC088_r)
120ADDRESS_MAP_END
121
122static MACHINE_CONFIG_FRAGMENT( a26_harmony )
123   MCFG_CPU_ADD("arm", ARM7, 70000000)
124   MCFG_CPU_PROGRAM_MAP(harmony_arm7_map)
125MACHINE_CONFIG_END
126
127machine_config_constructor a26_rom_harmony_device::device_mconfig_additions() const
128{
129   return MACHINE_CONFIG_NAME( a26_harmony );
130}
131
132// actually if the ARM code is doing this and providing every opcode to the main CPU based
133// on bus activity then we shouldn't be doing this here.
134void a26_rom_harmony_device::check_bankswitch(offs_t offset)
135{
136   switch (offset)
137   {
138   case 0x0FF6: m_base_bank = 0; break;
139   case 0x0FF7: m_base_bank = 1; break;
140   case 0x0FF8: m_base_bank = 2; break;
141   case 0x0FF9: m_base_bank = 3; break;
142   case 0x0FFa: m_base_bank = 4; break;
143   case 0x0FFb: m_base_bank = 5; break;
144   default: break;
145   }
146}
147
148READ8_MEMBER(a26_rom_harmony_device::read_rom)
149{
150   UINT8 retvalue = read8_r(space, offset + 0xc00); // banks start at 0xc00
151
152   check_bankswitch(offset);
153
154   return retvalue;
155}
156
157WRITE8_MEMBER(a26_rom_harmony_device::write_bank)
158{
159   check_bankswitch(offset);
160//   a26_rom_f8_device::write_bank(space, offset, data);
161}
trunk/src/devices/bus/vcs/harmony_melody.h
r0r249966
1// license:BSD-3-Clause
2// copyright-holders:David Haywood
3#ifndef __VCS_HARMONY_H
4#define __VCS_HARMONY_H
5
6#include "rom.h"
7#include "cpu/arm7/arm7.h"
8
9
10// ======================> a26_rom_harmony_device
11
12class a26_rom_harmony_device : public a26_rom_f8_device
13{
14public:
15   // construction/destruction
16   a26_rom_harmony_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
17
18   // device-level overrides
19   virtual void device_start();
20   virtual machine_config_constructor device_mconfig_additions() const;
21   virtual void device_reset();
22
23   // reading and writing
24   virtual DECLARE_READ8_MEMBER(read_rom);
25   virtual DECLARE_WRITE8_MEMBER(write_bank);
26
27   DECLARE_READ32_MEMBER(armrom_r);
28   DECLARE_WRITE32_MEMBER(armrom_w);
29   
30   DECLARE_READ8_MEMBER(read8_r);
31
32   DECLARE_READ32_MEMBER(arm_E01FC088_r);
33
34   void check_bankswitch(offs_t offset);
35
36protected:
37};
38
39
40// device type definition
41extern const device_type A26_ROM_HARMONY;
42
43#endif
trunk/src/devices/bus/vcs/vcs_slot.c
r249965r249966
157157   { A26_8IN1, "a26_8in1" },
158158   { A26_32IN1, "a26_32in1" },
159159   { A26_X07, "a26_x07" },
160   { A26_DPCPLUS, "a26_dpcplus" },
160   { A26_HARMONY, "a26_harmony" },
161161};
162162
163163static int vcs_get_pcb_id(const char *slot)
trunk/src/devices/bus/vcs/vcs_slot.h
r249965r249966
3636   A26_SS,
3737   A26_CM,
3838   A26_X07,
39   A26_DPCPLUS,
39   A26_HARMONY,
4040};
4141
4242
trunk/src/mame/drivers/a2600.c
r249965r249966
1818#include "bus/vcs/vcs_slot.h"
1919#include "bus/vcs/rom.h"
2020#include "bus/vcs/dpc.h"
21#include "bus/vcs/dpcplus.h"
21#include "bus/vcs/harmony_melody.h"
2222#include "bus/vcs/scharger.h"
2323#include "bus/vcs/compumat.h"
2424#include "bus/vcs_ctrl/ctrl.h"
r249965r249966
391391         m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cart));
392392         m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0000, 0x0fff, read8_delegate(FUNC(a2600_state::cart_over_all_r), this), write8_delegate(FUNC(a2600_state::cart_over_all_w), this));
393393         break;
394      case A26_DPCPLUS:
394      case A26_HARMONY:
395395         m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x1000, 0x1fff, read8_delegate(FUNC(vcs_cart_slot_device::read_rom),(vcs_cart_slot_device*)m_cart), write8_delegate(FUNC(vcs_cart_slot_device::write_bank),(vcs_cart_slot_device*)m_cart));
396396         break;
397397   }
r249965r249966
528528   SLOT_INTERFACE_INTERNAL("a26_8in1",  A26_ROM_8IN1)
529529   SLOT_INTERFACE_INTERNAL("a26_32in1", A26_ROM_32IN1)
530530   SLOT_INTERFACE_INTERNAL("a26_x07",    A26_ROM_X07)
531   SLOT_INTERFACE_INTERNAL("a26_dpcplus",   A26_ROM_DPCPLUS)
531   SLOT_INTERFACE_INTERNAL("a26_harmony",   A26_ROM_HARMONY)
532532SLOT_INTERFACE_END
533533
534534static MACHINE_CONFIG_FRAGMENT(a2600_cartslot)


Previous 199869 Revisions Next


© 1997-2024 The MAME Team