trunk/src/mame/drivers/r2dx_v33.c
| r32179 | r32180 | |
| 72 | 72 | // 0x80 - coin counter 2? |
| 73 | 73 | |
| 74 | 74 | // 0x04 is active in Raiden DX mode, it could be part of the rom bank (which half of the rom to use) or the FG tile bank (or both?) |
| 75 | // the bit gets set if it reads RAIDENDX from the EEPROM |
| 75 | 76 | tx_bank = (data & 0x04) >> 2; |
| 76 | 77 | text_layer->mark_all_dirty(); |
| 77 | 78 | |
| 79 | if (data & 4) // todo: almost certainly wrong |
| 80 | { |
| 81 | // sensible defaults if booting as RDX |
| 82 | membank("bank1")->set_entry(0x20+16); |
| 83 | membank("bank2")->set_entry(0x20+3); |
| 84 | membank("bank3")->set_entry(1); |
| 85 | } |
| 86 | else |
| 87 | { |
| 88 | membank("bank1")->set_entry(2); |
| 89 | membank("bank2")->set_entry(3); |
| 90 | membank("bank3")->set_entry(0); |
| 91 | } |
| 92 | |
| 93 | |
| 78 | 94 | if (data&0x07) printf("eeprom_w extra bits used %04x\n",data & 7); |
| 79 | 95 | } |
| 80 | 96 | else |
| r32179 | r32180 | |
| 153 | 169 | |
| 154 | 170 | WRITE16_MEMBER(r2dx_v33_state::mcu_table2_w) |
| 155 | 171 | { |
| 172 | // printf("mcu_table2_w %04x %04x\n", data, mem_mask); |
| 173 | |
| 156 | 174 | mcu_data[offset+4] = data; |
| 157 | 175 | |
| 158 | 176 | //popmessage("%04x %04x %04x %04x | %04x %04x %04x %04x",mcu_data[0/2],mcu_data[2/2],mcu_data[4/2],mcu_data[6/2],mcu_data[8/2],mcu_data[0xa/2],mcu_data[0xc/2],mcu_data[0xe/2]); |
| r32179 | r32180 | |
| 163 | 181 | AM_RANGE(0x00000, 0x003ff) AM_RAM // vectors copied here |
| 164 | 182 | |
| 165 | 183 | // AM_RANGE(0x00400, 0x00407) AM_WRITE(mcu_table_w) |
| 166 | | // AM_RANGE(0x00420, 0x00429) AM_WRITE(mcu_table2_w) |
| 184 | AM_RANGE(0x00420, 0x00429) AM_WRITE(mcu_table2_w) |
| 167 | 185 | |
| 168 | 186 | /* results from cop? */ |
| 169 | 187 | AM_RANGE(0x00430, 0x00431) AM_READ(rdx_v33_unknown_r) |
| r32179 | r32180 | |
| 575 | 593 | raiden2_decrypt_sprites(machine()); |
| 576 | 594 | |
| 577 | 595 | // sensible defaults if booting as R2 |
| 578 | | // membank("bank1")->set_entry(2); |
| 579 | | // membank("bank2")->set_entry(3); |
| 580 | | // membank("bank3")->set_entry(0); |
| 596 | membank("bank1")->set_entry(2); |
| 597 | membank("bank2")->set_entry(3); |
| 598 | membank("bank3")->set_entry(0); |
| 581 | 599 | |
| 582 | | // sensible defaults if booting as RDX |
| 583 | | membank("bank1")->set_entry(0x20+16); |
| 584 | | membank("bank2")->set_entry(0x20+3); |
| 585 | | membank("bank3")->set_entry(1); |
| 600 | // sensible defaults if booting as RDX - we set now set this later.. |
| 601 | // membank("bank1")->set_entry(0x20+16); |
| 602 | // membank("bank2")->set_entry(0x20+3); |
| 603 | // membank("bank3")->set_entry(1); |
| 586 | 604 | |
| 587 | 605 | |
| 588 | 606 | } |
| r32179 | r32180 | |
| 643 | 661 | 8 OFF = Normal Screen, ON = FLIP Screen |
| 644 | 662 | |
| 645 | 663 | OTHER : Controls are 8-way + 3 Buttons |
| 646 | | Amtel 93C46 EEPROM (SOIC8) |
| 664 | Atmel 93C46 EEPROM (SOIC8) |
| 647 | 665 | PALCE16V8 (x1, near BG ROM, SOIC20) |
| 648 | 666 | SEIBU SEI360 SB06-1937 (160 pin PQFP) |
| 649 | 667 | SEIBI SIE150 (100 pin PQFP, Note SIE, not a typo) |
| r32179 | r32180 | |
| 698 | 716 | ROM_LOAD32_WORD( "obj1.724", 0x000000, 0x400000, CRC(7d218985) SHA1(777241a533defcbea3d7e735f309478d260bad52) ) |
| 699 | 717 | ROM_LOAD32_WORD( "obj2.725", 0x000002, 0x400000, CRC(b09434d9) SHA1(da75252b7693ab791fece4c10b8a4910edb76c88) ) |
| 700 | 718 | |
| 719 | // temp, load these for now, they decrypt 100% |
| 720 | ROM_LOAD32_WORD( "obj1", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) /* Shared with original Raiden 2 */ |
| 721 | ROM_LOAD32_WORD( "obj2", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) /* Shared with original Raiden 2 */ |
| 722 | ROM_LOAD32_WORD( "dx_obj3.4k", 0x400000, 0x200000, CRC(ba381227) SHA1(dfc4d659aca1722a981fa56a31afabe66f444d5d) ) |
| 723 | ROM_LOAD32_WORD( "dx_obj4.6k", 0x400002, 0x200000, CRC(65e50d19) SHA1(c46147b4132abce7314b46bf419ce4773e024b05) ) |
| 724 | |
| 725 | |
| 701 | 726 | ROM_REGION( 0x100000, "oki", 0 ) /* ADPCM samples */ |
| 702 | 727 | ROM_LOAD( "pcm.099", 0x00000, 0x100000, CRC(97ca2907) SHA1(bfe8189300cf72089d0beaeab8b1a0a1a4f0a5b6) ) |
| 703 | 728 | |
| r32179 | r32180 | |
| 705 | 730 | ROM_LOAD( "copx_d3.357", 0x00000, 0x20000, CRC(fa2cf3ad) SHA1(13eee40704d3333874b6e3da9ee7d969c6dc662a) ) |
| 706 | 731 | |
| 707 | 732 | ROM_REGION16_BE( 0x80, "eeprom", 0 ) |
| 708 | | ROM_LOAD16_WORD( "raidenii_eeprom-r2dx_v33.bin", 0x0000, 0x0080, CRC(ba454777) SHA1(101c5364e8664d17bfb1e759515d135a2673d67e) ) // for booting as Raiden 2 |
| 709 | 733 | ROM_LOAD16_WORD( "raidendx_eeprom-r2dx_v33.bin", 0x0000, 0x0080, CRC(0b34c0ca) SHA1(20612d5a1d819d3997ea47e8de7a194ec61b537d) ) // for booting as Raiden DX |
| 710 | 734 | ROM_END |
| 711 | 735 | |
| 736 | ROM_START( r2dx_v33_r2 ) |
| 737 | ROM_REGION( 0x400000, "mainprg", 0 ) /* v33 main cpu */ |
| 738 | ROM_LOAD("prg.223", 0x000000, 0x400000, CRC(b3dbcf98) SHA1(30d6ec2090531c8c579dff74c4898889902d7d87) ) |
| 739 | |
| 740 | ROM_REGION( 0x400000, "maincpu", ROMREGION_ERASEFF ) /* v33 main cpu */ |
| 741 | |
| 742 | // ROM_REGION( 0x20000, "cpu1", ROMREGION_ERASE00 ) /* 64k code for sound Z80 */ |
| 743 | /* nothing? no z80*/ |
| 744 | |
| 745 | ROM_REGION( 0x040000, "gfx1", 0 ) /* chars */ |
| 746 | ROM_LOAD( "fix.613", 0x000000, 0x040000, CRC(3da27e39) SHA1(3d446990bf36dd0a3f8fadb68b15bed54904c8b5) ) |
| 747 | |
| 748 | ROM_REGION( 0x400000, "gfx2", 0 ) /* background gfx */ |
| 749 | ROM_LOAD( "bg.612", 0x000000, 0x400000, CRC(162c61e9) SHA1(bd0a6a29804b84196ba6bf3402e9f30a25da9269) ) |
| 750 | |
| 751 | ROM_REGION( 0x800000, "gfx3", 0 ) /* sprite gfx (encrypted) */ // roughly 1/4 of the rom does not decrypt properly with the R2 keys? |
| 752 | ROM_LOAD32_WORD( "obj1.724", 0x000000, 0x400000, CRC(7d218985) SHA1(777241a533defcbea3d7e735f309478d260bad52) ) |
| 753 | ROM_LOAD32_WORD( "obj2.725", 0x000002, 0x400000, CRC(b09434d9) SHA1(da75252b7693ab791fece4c10b8a4910edb76c88) ) |
| 754 | |
| 755 | // temp, load these for now, they decrypt 100% |
| 756 | ROM_LOAD32_WORD( "obj1", 0x000000, 0x200000, CRC(ff08ef0b) SHA1(a1858430e8171ca8bab785457ef60e151b5e5cf1) ) /* Shared with original Raiden 2 */ |
| 757 | ROM_LOAD32_WORD( "obj2", 0x000002, 0x200000, CRC(638eb771) SHA1(9774cc070e71668d7d1d20795502dccd21ca557b) ) /* Shared with original Raiden 2 */ |
| 758 | ROM_LOAD32_WORD( "dx_obj3.4k", 0x400000, 0x200000, CRC(ba381227) SHA1(dfc4d659aca1722a981fa56a31afabe66f444d5d) ) |
| 759 | ROM_LOAD32_WORD( "dx_obj4.6k", 0x400002, 0x200000, CRC(65e50d19) SHA1(c46147b4132abce7314b46bf419ce4773e024b05) ) |
| 760 | |
| 761 | |
| 762 | ROM_REGION( 0x100000, "oki", 0 ) /* ADPCM samples */ |
| 763 | ROM_LOAD( "pcm.099", 0x00000, 0x100000, CRC(97ca2907) SHA1(bfe8189300cf72089d0beaeab8b1a0a1a4f0a5b6) ) |
| 764 | |
| 765 | ROM_REGION( 0x40000, "user2", 0 ) /* SEI333 (AKA COPX-D3) data */ |
| 766 | ROM_LOAD( "copx_d3.357", 0x00000, 0x20000, CRC(fa2cf3ad) SHA1(13eee40704d3333874b6e3da9ee7d969c6dc662a) ) |
| 767 | |
| 768 | ROM_REGION16_BE( 0x80, "eeprom", 0 ) |
| 769 | ROM_LOAD16_WORD( "raidenii_eeprom-r2dx_v33.bin", 0x0000, 0x0080, CRC(ba454777) SHA1(101c5364e8664d17bfb1e759515d135a2673d67e) ) // for booting as Raiden 2 |
| 770 | ROM_END |
| 771 | |
| 772 | |
| 712 | 773 | ROM_START( nzeroteam ) /* V33 SYSTEM TYPE_B hardware, uses SEI333 (AKA COPX-D3) for protection */ |
| 713 | 774 | ROM_REGION( 0x100000, "mainprg", 0 ) /* v30 main cpu */ |
| 714 | 775 | ROM_LOAD16_BYTE("prg1", 0x000000, 0x80000, CRC(3c7d9410) SHA1(25f2121b6c2be73f11263934266901ed5d64d2ee) ) |
| r32179 | r32180 | |
| 774 | 835 | ROM_END |
| 775 | 836 | |
| 776 | 837 | // 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 |
| 777 | | GAME( 1996, r2dx_v33, 0, rdx_v33, rdx_v33, r2dx_v33_state, rdx_v33, ROT270, "Seibu Kaihatsu", "Raiden II New / Raiden DX (newer V33 PCB)", GAME_NOT_WORKING|GAME_NO_SOUND) |
| 838 | // 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 |
| 839 | GAME( 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_NOT_WORKING|GAME_NO_SOUND) |
| 840 | GAME( 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_NOT_WORKING|GAME_NO_SOUND) |
| 778 | 841 | |
| 779 | 842 | // 'V33 system type_b' - uses V33 CPU, COPX-D3 external protection rom, but still has the proper sound system |
| 780 | 843 | GAME( 1997, nzeroteam, zeroteam, nzerotea, nzerotea, r2dx_v33_state, nzerotea, ROT0, "Seibu Kaihatsu", "New Zero Team", GAME_NOT_WORKING|GAME_NO_SOUND) |