Previous 199869 Revisions Next

r36401 Friday 13th March, 2015 at 03:51:27 UTC by Robbbert
(MESS) gamate : reinstated etabeta's no-cart fix. (nw)
[src/mess/drivers]gamate.c

trunk/src/mess/drivers/gamate.c
r244912r244913
7878   emu_timer *timer1;
7979   emu_timer *timer2;
8080   UINT8 bank_multi;
81   UINT8 *m_cart_ptr;
8182};
8283
8384WRITE8_MEMBER( gamate_state::gamate_cart_protection_w )
r244912r244913
9192      card_protection.bit_shifter++;
9293      if (card_protection.bit_shifter>=8)
9394      {
94         card_protection.cartridge_byte=m_cart->get_rom_base()[card_protection.address++];
95         card_protection.cartridge_byte=m_cart_ptr[card_protection.address++];
9596         card_protection.bit_shifter=0;
9697      }
9798      break;
r244912r244913
103104   UINT8 ret=1;
104105   if (card_protection.bit_shifter==7 && card_protection.unprotected)
105106   {
106      ret=m_cart->get_rom_base()[bank_multi*0x4000];
107      ret=m_cart_ptr[bank_multi*0x4000];
107108   }
108109   else
109110   {
r244912r244913
135136// writes 0x20
136137   card_protection.address=0x6005-0x6001;
137138   card_protection.bit_shifter=0;
138   card_protection.cartridge_byte=m_cart->get_rom_base()[card_protection.address++];//m_cart_rom[card_protection.address++];
139   card_protection.cartridge_byte=m_cart_ptr[card_protection.address++]; //m_cart_rom[card_protection.address++];
139140   card_protection.failed=false;
140141   card_protection.unprotected=false;
141142}
r244912r244913
183184WRITE8_MEMBER( gamate_state::cart_bankswitchmulti_w )
184185{
185186   bank_multi=data;
186   membank("bankmulti")->set_base(m_cart->get_rom_base()+0x4000*data+1);
187   membank("bankmulti")->set_base(m_cart_ptr+0x4000*data+1);
187188}
188189
189190WRITE8_MEMBER( gamate_state::cart_bankswitch_w )
190191{
191   membank("bank")->set_base(m_cart->get_rom_base()+0x4000*data);
192   membank("bank")->set_base(m_cart_ptr+0x4000*data);
192193}
193194
194195READ8_MEMBER( gamate_state::gamate_video_r )
r244912r244913
314315
315316void gamate_state::machine_start()
316317{
318   m_cart_ptr = memregion("maincpu")->base() + 0x6000;
317319   if (m_cart->exists())
318320   {
319321//      m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000, 0x6000, READ8_DELEGATE(gamate_state, gamate_cart_protection_r));
322      m_cart_ptr = m_cart->get_rom_base();
320323      membank("bankmulti")->set_base(m_cart->get_rom_base()+1);
321324      membank("bank")->set_base(m_cart->get_rom_base()+0x4000); // bankswitched games in reality no offset
322325   }


Previous 199869 Revisions Next


© 1997-2024 The MAME Team