Previous 199869 Revisions Next

r32661 Saturday 11th October, 2014 at 17:05:57 UTC by David Haywood
r2dx_v33 - simplify banking, add save support, add note about undumped New Zero Team revision, add game license info from title screen (nw)
[src/mame/drivers]r2dx_v33.c

trunk/src/mame/drivers/r2dx_v33.c
r32660r32661
3939
4040*/
4141
42/* Rom structure notes
43
44 Raiden 2 New/DX (hardware can bank upper/lower half of rom to switch fixed areas)
45
46 000000-02ffff : 0xff fill, inaccessible by hardware
47 030000-0fffff : 'Fixed' ROM data for Raiden 2
48 100000-1fffff : Banked ROM data for Raiden 2 (16x 0x10000 banks)
49
50 200000-22ffff : 0xff fill, inaccessible by hardware
51 230000-2fffff : 'Fixed' ROM data for Raiden DX
52 300000-3fffff : Banked ROM data for Raiden DX (16x 0x10000 banks)
53
54 New Zero Team /Zero
55
56 000000-01ffff : 0xff fill, inaccessible by hardware?
57 020000-0fffff : Fixed ROM data for Zero Team
58 (no banking)
59
60*/
61
4262#include "emu.h"
4363#include "cpu/nec/nec.h"
4464#include "cpu/z80/z80.h"
r32660r32661
110130   UINT32 screen_update_rdx_v33(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
111131   INTERRUPT_GEN_MEMBER(rdx_v33_interrupt);
112132   void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect,int pri);
133
134protected:
135   virtual void machine_start();
113136};
114137
138void r2dx_v33_state::machine_start()
139{
140   raiden2_state::machine_start();
141
142   save_item(NAME(m_r2dxbank));
143   save_item(NAME(m_r2dxgameselect));
144   save_item(NAME(m_r2dx_angle));
145   save_item(NAME(r2dx_i_dx));
146   save_item(NAME(r2dx_i_dy));
147   save_item(NAME(r2dx_i_angle));
148   save_item(NAME(r2dx_i_sdist));
149}
150
115151WRITE16_MEMBER(r2dx_v33_state::tile_bank_w)
116152{
117153   if(ACCESSING_BITS_0_7) {
r32660r32661
139175void r2dx_v33_state::r2dx_setbanking(void)
140176{
141177   membank("bank1")->set_entry(m_r2dxgameselect*0x20 + m_r2dxbank + 16);
142   membank("bank2")->set_entry(m_r2dxgameselect*0x20 + 3);
143178   membank("bank3")->set_entry(m_r2dxgameselect);
144179}
145180
r32660r32661
251286
252287WRITE16_MEMBER(r2dx_v33_state::r2dx_rom_bank_w)
253288{
254   printf("rom bank %04x %04x\n", data, mem_mask);
289   //printf("rom bank %04x %04x\n", data, mem_mask);
255290   m_r2dxbank = data & 0xf;
256291   r2dx_setbanking();
257292
r32660r32661
400435   AM_RANGE(0x1f000, 0x1ffff) AM_RAM //_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
401436
402437   AM_RANGE(0x20000, 0x2ffff) AM_ROM AM_ROMBANK("bank1") AM_WRITENOP
403   AM_RANGE(0x30000, 0x3ffff) AM_ROM AM_ROMBANK("bank2") AM_WRITENOP
404   AM_RANGE(0x40000, 0xfffff) AM_ROM AM_ROMBANK("bank3") AM_WRITENOP
438   AM_RANGE(0x30000, 0xfffff) AM_ROM AM_ROMBANK("bank3") AM_WRITENOP
405439ADDRESS_MAP_END
406440
407441
r32660r32661
813847   cur_spri = spri;
814848
815849   membank("bank1")->configure_entries(0, 0x40, memregion("mainprg")->base(), 0x10000);
816   membank("bank2")->configure_entries(0, 0x40, memregion("mainprg")->base(), 0x10000);
817850
818   membank("bank3")->configure_entry(0, memregion("mainprg")->base()+0x040000); // 0x40000 - 0xfffff bank for Raiden 2
819   membank("bank3")->configure_entry(1, memregion("mainprg")->base()+0x240000); // 0x40000 - 0xfffff bank for Raiden DX
851   membank("bank3")->configure_entry(0, memregion("mainprg")->base()+0x030000); // 0x30000 - 0xfffff bank for Raiden 2
852   membank("bank3")->configure_entry(1, memregion("mainprg")->base()+0x230000); // 0x30000 - 0xfffff bank for Raiden DX
820853
821854
822855   raiden2_decrypt_sprites(machine());
823856
824857//  sensible defaults if booting as R2
825   membank("bank1")->set_entry(2);
826   membank("bank2")->set_entry(3);
858   membank("bank1")->set_entry(0);
827859   membank("bank3")->set_entry(0);
828860
829861
830862   membank("okibank")->configure_entries(0, 4, memregion("oki")->base(), 0x40000);
831863   membank("okibank")->set_entry(0);
832   //  sensible defaults if booting as RDX - we set now set this later..
833   //   membank("bank1")->set_entry(0x20+16);
834   //   membank("bank2")->set_entry(0x20+3);
835   //   membank("bank3")->set_entry(1);
836864
837
838
839
840865}
841866
842867DRIVER_INIT_MEMBER(r2dx_v33_state,nzerotea)
r32660r32661
10531078
10541079// newer PCB, with V33 CPU and COPD3 protection, but weak sound hardware. - was marked as Raiden DX New in the rom dump, but boots as Raiden 2 New version, the rom contains both
10551080// is there a switching method? for now I've split it into 2 sets with different EEPROM, the game checks that on startup and runs different code depending on what it finds
1056GAME( 1996, r2dx_v33,    0,          rdx_v33,  rdx_v33, r2dx_v33_state,  rdx_v33,   ROT270, "Seibu Kaihatsu", "Raiden II New / Raiden DX (newer V33 PCB) (Raiden DX EEPROM)", 0)
1057GAME( 1996, r2dx_v33_r2, r2dx_v33,   rdx_v33,  rdx_v33, r2dx_v33_state,  rdx_v33,   ROT270, "Seibu Kaihatsu", "Raiden II New / Raiden DX (newer V33 PCB) (Raiden II EEPROM)", 0)
1081GAME( 1996, r2dx_v33,    0,          rdx_v33,  rdx_v33, r2dx_v33_state,  rdx_v33,   ROT270, "Seibu Kaihatsu", "Raiden II New / Raiden DX (newer V33 PCB) (Raiden DX EEPROM)", GAME_SUPPORTS_SAVE)
1082GAME( 1996, r2dx_v33_r2, r2dx_v33,   rdx_v33,  rdx_v33, r2dx_v33_state,  rdx_v33,   ROT270, "Seibu Kaihatsu", "Raiden II New / Raiden DX (newer V33 PCB) (Raiden II EEPROM)", GAME_SUPPORTS_SAVE)
10581083
10591084// 'V33 system type_b' - uses V33 CPU, COPX-D3 external protection rom, but still has the proper sound system, DSW for settings
1060GAME( 1997, nzeroteam, zeroteam,  nzerotea, nzerotea, r2dx_v33_state, nzerotea,  ROT0,   "Seibu Kaihatsu", "New Zero Team", 0)
1085GAME( 1997, nzeroteam, zeroteam,  nzerotea, nzerotea, r2dx_v33_state, nzerotea,  ROT0,   "Seibu Kaihatsu (Haoyunlai Trading Company license)", "New Zero Team (V33 SYSTEM TYPE_B hardware)", GAME_SUPPORTS_SAVE) // license text translated from title screen
10611086
1087// 'V33 SYSTEM TYPE_C' - uses V33 CPU, basically the same board as TYPE_C VER2
1088// there is a version of New Zero Team on "V33 SYSTEM TYPE_C" board with EEPROM rather than dipswitches like Zero Team 2000
1089
10621090// 'V33 SYSTEM TYPE_C VER2' - uses V33 CPU, COPX-D3 external protection rom, but still has the proper sound system, unencrypted sprites, EEPROM for settings.  PCB also seen without 'VER2', looks the same
1063GAME( 2000, zerotm2k,  zeroteam,  zerotm2k, zerotm2k, r2dx_v33_state, zerotm2k,  ROT0,   "Seibu Kaihatsu", "Zero Team 2000", 0)
1091GAME( 2000, zerotm2k,  zeroteam,  zerotm2k, zerotm2k, r2dx_v33_state, zerotm2k,  ROT0,   "Seibu Kaihatsu", "Zero Team 2000", GAME_SUPPORTS_SAVE)
1092
1093// there is also a 'Raiden 2 2000' on unknown hardware.

Previous 199869 Revisions Next


© 1997-2024 The MAME Team