Previous 199869 Revisions Next

r31915 Friday 5th September, 2014 at 11:09:41 UTC by O. Galibert
raidendx banking (nw)
[src/mame/drivers]raiden2.c

trunk/src/mame/drivers/raiden2.c
r31914r31915
744744
745745      // raidendx only
746746   case 0x7e05:
747      space.write_dword(0x470, (space.read_dword(cop_regs[4]) & 0x30) << 6);
748      // Actually, wherever the bank selection actually is
749      // And probably 8 bytes too, but they zero all the rest
747      space.write_byte(0x470, space.read_byte(cop_regs[4]));
750748      break;
751749
752750   case 0xa100:
r31914r31915
10101008{
10111009   COMBINE_DATA(&cop_bank);
10121010
1013   if(ACCESSING_BITS_8_15) {
1014      int new_bank = 4 | ((cop_bank >> 10) & 3);
1015      if(new_bank != fg_bank) {
1016         fg_bank = new_bank;
1017         foreground_layer->mark_all_dirty();
1018      }
1011   int new_bank = 4 | ((cop_bank >> 4) & 3);
1012   if(new_bank != fg_bank) {
1013      fg_bank = new_bank;
1014      foreground_layer->mark_all_dirty();
1015   }
10191016
1020      /* probably bit 3 is from 6c9 */
1021      /* TODO: this doesn't work! */
1022      membank("mainbank")->set_entry(8 | (cop_bank & 0x7000) >> 12);
1023   }
1017   /* mainbank2 coming from 6c9 ? */
1018   int bb = cop_bank >> 12;
1019   membank("mainbank1")->set_entry(bb + 16);
1020   membank("mainbank2")->set_entry(3);
10241021}
10251022
10261023
r31914r31915
12571254   common_reset();
12581255   sprcpt_init();
12591256
1260   membank("mainbank")->set_entry(1);
1257   membank("mainbank1")->set_entry(2);
1258   membank("mainbank2")->set_entry(3);
12611259
12621260   prg_bank = 0;
12631261   //cop_init();
r31914r31915
12681266   common_reset();
12691267   sprcpt_init();
12701268
1271   membank("mainbank")->set_entry(8);
1269   membank("mainbank1")->set_entry(16);
1270   membank("mainbank2")->set_entry(3);
12721271
12731272   prg_bank = 0x08;
12741273
r31914r31915
12821281   mid_bank = 1;
12831282   sprcpt_init();
12841283
1285   membank("mainbank")->set_entry(1);
1284   membank("mainbank1")->set_entry(2);
1285   membank("mainbank2")->set_entry(3);
12861286
12871287   prg_bank = 0;
12881288   //cop_init();
r31914r31915
12941294   fg_bank = 2;
12951295   mid_bank = 1;
12961296   sprcpt_init();
1297
1298   //membank("mainbank")->set_entry(1);
1299
1300   //cop_init();
13011297}
13021298
13031299READ16_MEMBER(raiden2_state::raiden2_sound_comms_r)
r31914r31915
13131309WRITE16_MEMBER(raiden2_state::raiden2_bank_w)
13141310{
13151311   if(ACCESSING_BITS_8_15) {
1312      int bb = (~data >> 15) & 1;
13161313      logerror("select bank %d %04x\n", (data >> 15) & 1, data);
1317      membank("mainbank")->set_entry(!((data >> 15) & 1));
1314      membank("mainbank1")->set_entry(bb*2);
1315      membank("mainbank2")->set_entry(bb*2+1);
13181316      prg_bank = ((data >> 15) & 1);
13191317   }
13201318}
r31914r31915
15981596   AM_RANGE(0x10000, 0x1efff) AM_RAM
15991597   AM_RANGE(0x1f000, 0x1ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
16001598
1601   AM_RANGE(0x20000, 0x3ffff) AM_ROMBANK("mainbank")
1599   AM_RANGE(0x20000, 0x2ffff) AM_ROMBANK("mainbank1")
1600   AM_RANGE(0x30000, 0x3ffff) AM_ROMBANK("mainbank2")
16021601   AM_RANGE(0x40000, 0xfffff) AM_ROM AM_REGION("mainprg", 0x40000)
16031602ADDRESS_MAP_END
16041603
r31914r31915
16361635   AM_RANGE(0x0f000, 0x0ffff) AM_RAM AM_SHARE("sprites")
16371636   AM_RANGE(0x10000, 0x1ffff) AM_RAM
16381637
1639   AM_RANGE(0x20000, 0x3ffff) AM_ROMBANK("mainbank")
1638   AM_RANGE(0x20000, 0x2ffff) AM_ROMBANK("mainbank1")
1639   AM_RANGE(0x30000, 0x3ffff) AM_ROMBANK("mainbank2")
16401640   AM_RANGE(0x40000, 0xfffff) AM_ROM AM_REGION("mainprg", 0x40000)
16411641ADDRESS_MAP_END
16421642
r31914r31915
33063306
33073307DRIVER_INIT_MEMBER(raiden2_state,raiden2)
33083308{
3309   membank("mainbank")->configure_entries(0, 2, memregion("mainprg")->base(), 0x20000);
3309   membank("mainbank1")->configure_entries(0, 4, memregion("mainprg")->base(), 0x10000);
3310   membank("mainbank2")->configure_entries(0, 4, memregion("mainprg")->base(), 0x10000);
33103311   raiden2_decrypt_sprites(machine());
33113312}
33123313
33133314DRIVER_INIT_MEMBER(raiden2_state,raidendx)
33143315{
3315   membank("mainbank")->configure_entries(0, 0x10, memregion("mainprg")->base(), 0x20000);
3316   membank("mainbank1")->configure_entries(0, 0x20, memregion("mainprg")->base(), 0x10000);
3317   membank("mainbank2")->configure_entries(0, 0x20, memregion("mainprg")->base(), 0x10000);
33163318   raiden2_decrypt_sprites(machine());
33173319}
33183320
33193321DRIVER_INIT_MEMBER(raiden2_state,xsedae)
33203322{
33213323   /* doesn't have banking */
3322   //membank("mainbank")->configure_entries(0, 2, memregion("mainprg")->base(), 0x20000);
33233324}
33243325
33253326DRIVER_INIT_MEMBER(raiden2_state,zeroteam)
33263327{
3327   membank("mainbank")->configure_entries(0, 2, memregion("mainprg")->base(), 0x20000);
3328   membank("mainbank1")->configure_entries(0, 4, memregion("mainprg")->base(), 0x10000);
3329   membank("mainbank2")->configure_entries(0, 4, memregion("mainprg")->base(), 0x10000);
33283330   zeroteam_decrypt_sprites(machine());
33293331}
33303332

Previous 199869 Revisions Next


© 1997-2024 The MAME Team