Previous 199869 Revisions Next

r34042 Wednesday 24th December, 2014 at 07:20:34 UTC by Miodrag Milanović
(MESS)gamate - multi cartridge support [Peter Trauner]
[src/mess/drivers]gamate.c

trunk/src/mess/drivers/gamate.c
r242553r242554
22 PeT mess@utanet.at 2007, 2014
33 Peter Wilhelmsen peter.wilhelmsen@gmail.com
44 Morten Shearman Kirkegaard morten+gamate@afdelingp.dk
5 Juan Félix Mateos vectrex@hackermesh.org
56******************************************************************************/
67
78#include "emu.h"
r242553r242554
2728   DECLARE_READ8_MEMBER(protection_r);
2829   DECLARE_READ8_MEMBER(gamate_cart_protection_r);
2930   DECLARE_WRITE8_MEMBER(gamate_cart_protection_w);
31   DECLARE_WRITE8_MEMBER(cart_bankswitchmulti_w);
3032   DECLARE_WRITE8_MEMBER(cart_bankswitch_w);
3133   DECLARE_READ8_MEMBER(gamate_video_r);
3234   DECLARE_READ8_MEMBER(gamate_pad_r);
r242553r242554
134136  }
135137}
136138
139WRITE8_MEMBER( gamate_state::cart_bankswitchmulti_w )
140{
141   membank("bankmulti")->set_base(m_cart->get_rom_base()+0x4000*data);
142}
143
137144WRITE8_MEMBER( gamate_state::cart_bankswitch_w )
138145{
139146   membank("bank")->set_base(m_cart->get_rom_base()+0x4000*data);
r242553r242554
181188  AM_RANGE(0x5000, 0x5007) AM_READWRITE(gamate_video_r, gamate_video_w)
182189  AM_RANGE(0x5a00, 0x5a00) AM_READ(protection_r)
183190
184  AM_RANGE(0x6000, 0x9fff) AM_ROM
191  AM_RANGE(0x6000, 0x9fff) AM_READ_BANK("bankmulti")
185192  AM_RANGE(0xa000, 0xdfff) AM_READ_BANK("bank")
186193
187194   AM_RANGE(0x6000, 0x6002) AM_READWRITE(gamate_cart_protection_r, gamate_cart_protection_w)
188195//   AM_RANGE(0x6000, 0xdfff) AM_READWRITE(gamate_cart_r, gamate_cart_w)
196   AM_RANGE(0x8000, 0x8000) AM_WRITE(cart_bankswitchmulti_w)
189197   AM_RANGE(0xc000, 0xc000) AM_WRITE(cart_bankswitch_w)
190198
191199  AM_RANGE(0xf000, 0xffff) AM_ROM AM_SHARE("bios")
r242553r242554
290298void gamate_state::machine_start()
291299{
292300   if (m_cart->exists()) {
293      m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000, 0x9fff, read8_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
294301//      m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000, 0x6000, READ8_DELEGATE(gamate_state, gamate_cart_protection_r));
295      membank("bank")->set_base(m_cart->get_rom_base()+0x4000);
302      membank("bankmulti")->set_base(m_cart->get_rom_base());
303      membank("bank")->set_base(m_cart->get_rom_base()+0x4000); // bankswitched games in reality no offset
296304   }
297305   m_bios[0xdf1]=0xea; m_bios[0xdf2]=0xea; // $47 protection readback
298306   card_protection.address=0x6005-0x6001;


Previous 199869 Revisions Next


© 1997-2024 The MAME Team