trunk/src/mame/drivers/seibuspi.c
| r23471 | r23472 | |
| 25 | 25 | It has a 40MHz AMD 386 and a considerably weaker sound system (dual MSM6295). |
| 26 | 26 | |
| 27 | 27 | TODO: |
| 28 | | - Alpha blending on sprites. In Viper Phase 1, see the blue "Viper" logo when on the |
| 28 | - Improve alpha blending. In Viper Phase 1, see the blue "Viper" logo when on the |
| 29 | 29 | "push 1 or 2 players button" screen. Note that the alpha blended red logo on the |
| 30 | 30 | title screen is tiles(that effect is emulated), this blue logo is sprites. |
| 31 | 31 | |
| r23471 | r23472 | |
| 824 | 824 | #include "machine/seibuspi.h" |
| 825 | 825 | #include "includes/seibuspi.h" |
| 826 | 826 | |
| 827 | | /********************************************************************/ |
| 827 | #define ENABLE_SPEEDUP_HACKS 1 /* speed up at idle loops */ |
| 828 | 828 | |
| 829 | | READ8_MEMBER(seibuspi_state::sb_coin_r) |
| 830 | | { |
| 831 | | UINT8 r = m_sb_coin_latch; |
| 832 | 829 | |
| 833 | | m_sb_coin_latch = 0; |
| 834 | | return r; |
| 835 | | } |
| 830 | /********************************************************************/ |
| 836 | 831 | |
| 837 | | WRITE8_MEMBER(seibuspi_state::sb_coin_w) |
| 838 | | { |
| 839 | | if (data) |
| 840 | | m_sb_coin_latch = 0xa0 | data; |
| 841 | | else |
| 842 | | m_sb_coin_latch = 0; |
| 843 | | } |
| 844 | | |
| 845 | 832 | READ8_MEMBER(seibuspi_state::sound_fifo_status_r) |
| 846 | 833 | { |
| 847 | 834 | // d0: ? |
| r23471 | r23472 | |
| 882 | 869 | m_oki2->set_bank_base((data & 0x04) ? 0x40000 : 0); |
| 883 | 870 | } |
| 884 | 871 | |
| 885 | | WRITE8_MEMBER(seibuspi_state::z80_prg_fifo_w) |
| 872 | WRITE8_MEMBER(seibuspi_state::z80_prg_transfer_w) |
| 886 | 873 | { |
| 887 | | if (m_z80_prg_fifo_pos<0x40000) m_z80_rom[m_z80_prg_fifo_pos] = data; |
| 888 | | m_z80_prg_fifo_pos++; |
| 874 | if (m_z80_prg_transfer_pos < m_z80_rom->bytes()) |
| 875 | { |
| 876 | m_z80_rom->base()[m_z80_prg_transfer_pos] = data; |
| 877 | m_z80_prg_transfer_pos++; |
| 878 | } |
| 889 | 879 | } |
| 890 | 880 | |
| 891 | 881 | WRITE8_MEMBER(seibuspi_state::z80_enable_w) |
| 892 | 882 | { |
| 893 | | if (data & 0x1) |
| 883 | if (data & 1) |
| 894 | 884 | { |
| 895 | | m_z80_prg_fifo_pos = 0; |
| 885 | m_z80_prg_transfer_pos = 0; |
| 896 | 886 | m_audiocpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE); |
| 897 | 887 | } |
| 898 | 888 | else |
| r23471 | r23472 | |
| 901 | 891 | } |
| 902 | 892 | } |
| 903 | 893 | |
| 904 | | CUSTOM_INPUT_MEMBER(seibuspi_state::ejsakura_keyboard_r) |
| 894 | READ8_MEMBER(seibuspi_state::sb_coin_r) |
| 905 | 895 | { |
| 906 | | switch(m_ejsakura_input_port) |
| 907 | | { |
| 908 | | case 0x01: |
| 909 | | return ioport("INPUT01")->read(); |
| 910 | | case 0x02: |
| 911 | | return ioport("INPUT02")->read(); |
| 912 | | case 0x04: |
| 913 | | return ioport("INPUT04")->read(); |
| 914 | | case 0x08: |
| 915 | | return ioport("INPUT08")->read(); |
| 916 | | case 0x10: |
| 917 | | return ioport("INPUT10")->read(); |
| 918 | | default: |
| 919 | | return ioport("SYSTEM")->read(); |
| 920 | | } |
| 921 | | return 0xffffffff; |
| 896 | UINT8 ret = m_sb_coin_latch; |
| 897 | |
| 898 | m_sb_coin_latch = 0; |
| 899 | return ret; |
| 922 | 900 | } |
| 901 | |
| 902 | WRITE32_MEMBER(seibuspi_state::ejsakura_input_select_w) |
| 903 | { |
| 904 | m_ejsakura_input_port = data; |
| 905 | } |
| 906 | |
| 907 | |
| 923 | 908 | /********************************************************************/ |
| 924 | 909 | |
| 925 | 910 | READ8_MEMBER(seibuspi_state::z80_soundfifo_status_r) |
| r23471 | r23472 | |
| 932 | 917 | |
| 933 | 918 | WRITE8_MEMBER(seibuspi_state::z80_bank_w) |
| 934 | 919 | { |
| 935 | | if ((data & 7) != m_z80_lastbank) |
| 920 | int bank = data & 7; |
| 921 | |
| 922 | if (bank != m_z80_lastbank) |
| 936 | 923 | { |
| 937 | | m_z80_lastbank = (data & 7); |
| 938 | | membank("bank4")->set_base(m_z80_rom + (0x8000 * m_z80_lastbank)); |
| 924 | m_z80_lastbank = bank; |
| 925 | membank("bank1")->set_entry(bank); |
| 939 | 926 | } |
| 940 | 927 | } |
| 941 | 928 | |
| 929 | WRITE8_MEMBER(seibuspi_state::sb_coin_w) |
| 930 | { |
| 931 | if (data) |
| 932 | m_sb_coin_latch = 0xa0 | data; |
| 933 | else |
| 934 | m_sb_coin_latch = 0; |
| 935 | } |
| 936 | |
| 937 | |
| 942 | 938 | /********************************************************************/ |
| 943 | 939 | |
| 944 | 940 | static ADDRESS_MAP_START( spi_map, AS_PROGRAM, 32, seibuspi_state ) |
| r23471 | r23472 | |
| 946 | 942 | AM_RANGE(0x00000418, 0x0000041b) AM_READWRITE(spi_layer_bank_r, spi_layer_bank_w) |
| 947 | 943 | AM_RANGE(0x0000041c, 0x0000041f) AM_READNOP |
| 948 | 944 | AM_RANGE(0x0000041c, 0x0000041f) AM_WRITE(spi_layer_enable_w) |
| 949 | | AM_RANGE(0x00000420, 0x0000042b) AM_RAM AM_SHARE("spi_scrollram") |
| 945 | AM_RANGE(0x00000420, 0x0000042b) AM_RAM AM_SHARE("scrollram") |
| 950 | 946 | AM_RANGE(0x00000480, 0x00000483) AM_WRITE(tilemap_dma_start_w) |
| 951 | 947 | AM_RANGE(0x00000484, 0x00000487) AM_WRITE(palette_dma_start_w) |
| 952 | 948 | AM_RANGE(0x00000490, 0x00000493) AM_WRITE(video_dma_length_w) |
| r23471 | r23472 | |
| 962 | 958 | AM_RANGE(0x00000680, 0x00000683) AM_DEVWRITE8("soundfifo1", fifo7200_device, data_byte_w, 0x000000ff) |
| 963 | 959 | AM_RANGE(0x00000684, 0x00000687) AM_READ8(sound_fifo_status_r, 0x000000ff) |
| 964 | 960 | AM_RANGE(0x00000684, 0x00000687) AM_WRITENOP /* Unknown */ |
| 965 | | AM_RANGE(0x00000688, 0x0000068b) AM_WRITE8(z80_prg_fifo_w, 0x000000ff) |
| 961 | AM_RANGE(0x00000688, 0x0000068b) AM_WRITE8(z80_prg_transfer_w, 0x000000ff) |
| 966 | 962 | AM_RANGE(0x0000068c, 0x0000068f) AM_WRITE8(z80_enable_w, 0x000000ff) |
| 967 | 963 | AM_RANGE(0x0000068c, 0x0000068f) AM_WRITE8(spi_set_layer_banks_w, 0x00ff0000) |
| 968 | 964 | AM_RANGE(0x000006d0, 0x000006d3) AM_DEVWRITE8("ds2404", ds2404_device, ds2404_1w_reset_w, 0x000000ff) |
| 969 | 965 | AM_RANGE(0x000006d4, 0x000006d7) AM_DEVWRITE8("ds2404", ds2404_device, ds2404_data_w, 0x000000ff) |
| 970 | 966 | AM_RANGE(0x000006d8, 0x000006db) AM_DEVWRITE8("ds2404", ds2404_device, ds2404_clk_w, 0x000000ff) |
| 971 | 967 | AM_RANGE(0x000006dc, 0x000006df) AM_DEVREAD8("ds2404", ds2404_device, ds2404_data_r, 0x000000ff) |
| 972 | | AM_RANGE(0x00000800, 0x0003ffff) AM_RAM AM_SHARE("spimainram") |
| 968 | AM_RANGE(0x00000800, 0x0003ffff) AM_RAM AM_SHARE("mainram") |
| 973 | 969 | AM_RANGE(0x00200000, 0x003fffff) AM_ROM AM_SHARE("share1") |
| 974 | 970 | AM_RANGE(0x00a00000, 0x013fffff) AM_ROM AM_REGION("sound01", 0) |
| 975 | 971 | AM_RANGE(0xffe00000, 0xffffffff) AM_ROM AM_REGION("maincpu", 0) AM_SHARE("share1") /* ROM location in real-mode */ |
| 976 | 972 | ADDRESS_MAP_END |
| 977 | 973 | |
| 978 | 974 | static ADDRESS_MAP_START( spisound_map, AS_PROGRAM, 8, seibuspi_state ) |
| 979 | | AM_RANGE(0x0000, 0x3fff) AM_RAMBANK("bank5") |
| 980 | | AM_RANGE(0x4002, 0x4002) AM_WRITENOP /* ack RST 10 */ |
| 975 | AM_RANGE(0x0000, 0x1fff) AM_ROM |
| 976 | AM_RANGE(0x2000, 0x3fff) AM_RAM |
| 977 | AM_RANGE(0x4002, 0x4002) AM_WRITENOP /* Unknown */ |
| 981 | 978 | AM_RANGE(0x4003, 0x4003) AM_WRITENOP /* Unknown */ |
| 982 | 979 | AM_RANGE(0x4004, 0x4004) AM_WRITE(sb_coin_w) /* single board systems */ |
| 983 | 980 | AM_RANGE(0x4008, 0x4008) AM_DEVREAD("soundfifo1", fifo7200_device, data_byte_r) |
| r23471 | r23472 | |
| 988 | 985 | AM_RANGE(0x4013, 0x4013) AM_READ_PORT("COIN") |
| 989 | 986 | AM_RANGE(0x401b, 0x401b) AM_WRITE(z80_bank_w) /* control register: bits 0-2 = bank @ 8000, bit 3 = watchdog? */ |
| 990 | 987 | AM_RANGE(0x6000, 0x600f) AM_DEVREADWRITE("ymf", ymf271_device, read, write) |
| 991 | | AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank4") |
| 988 | AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") |
| 992 | 989 | ADDRESS_MAP_END |
| 993 | 990 | |
| 994 | 991 | |
| r23471 | r23472 | |
| 1002 | 999 | ADDRESS_MAP_END |
| 1003 | 1000 | |
| 1004 | 1001 | static ADDRESS_MAP_START( sxx2f_map, AS_PROGRAM, 32, seibuspi_state ) |
| 1005 | | AM_RANGE(0x00000680, 0x00000683) AM_READ8(sb_coin_r, 0x000000ff) |
| 1006 | | AM_RANGE(0x00000688, 0x0000068b) AM_WRITENOP |
| 1007 | 1002 | AM_RANGE(0x0000068c, 0x0000068f) AM_WRITE8(spi_layerbanks_eeprom_w, 0x00ff0000) |
| 1008 | | AM_RANGE(0x0000068c, 0x0000068f) AM_WRITENOP |
| 1009 | | AM_IMPORT_FROM( spi_map ) |
| 1003 | AM_IMPORT_FROM( sxx2e_map ) |
| 1010 | 1004 | ADDRESS_MAP_END |
| 1011 | 1005 | |
| 1012 | 1006 | |
| r23471 | r23472 | |
| 1017 | 1011 | AM_RANGE(0x00000418, 0x0000041b) AM_READWRITE(spi_layer_bank_r, spi_layer_bank_w) |
| 1018 | 1012 | AM_RANGE(0x0000041c, 0x0000041f) AM_READNOP |
| 1019 | 1013 | AM_RANGE(0x0000041c, 0x0000041f) AM_WRITE(spi_layer_enable_w) |
| 1020 | | AM_RANGE(0x00000420, 0x0000042b) AM_RAM AM_SHARE("spi_scrollram") |
| 1014 | AM_RANGE(0x00000420, 0x0000042b) AM_RAM AM_SHARE("scrollram") |
| 1021 | 1015 | AM_RANGE(0x00000480, 0x00000483) AM_WRITE(tilemap_dma_start_w) |
| 1022 | 1016 | AM_RANGE(0x00000484, 0x00000487) AM_WRITE(palette_dma_start_w) |
| 1023 | 1017 | AM_RANGE(0x00000490, 0x00000493) AM_WRITE(video_dma_length_w) |
| r23471 | r23472 | |
| 1030 | 1024 | AM_RANGE(0x0000060c, 0x0000060f) AM_READ_PORT("SYSTEM") /* Player controls (start) */ |
| 1031 | 1025 | AM_RANGE(0x0000068c, 0x0000068f) AM_WRITE8(spi_layerbanks_eeprom_w, 0x00ff0000) |
| 1032 | 1026 | AM_RANGE(0x0000068c, 0x0000068f) AM_WRITE8(oki_bank_w, 0xff000000) |
| 1033 | | AM_RANGE(0x00000800, 0x0003ffff) AM_RAM AM_SHARE("spimainram") |
| 1027 | AM_RANGE(0x00000800, 0x0003ffff) AM_RAM AM_SHARE("mainram") |
| 1034 | 1028 | AM_RANGE(0x00200000, 0x003fffff) AM_ROM AM_SHARE("share1") |
| 1035 | 1029 | AM_RANGE(0x01200000, 0x01200003) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x000000ff) |
| 1036 | 1030 | AM_RANGE(0x01200004, 0x01200007) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x000000ff) |
| r23471 | r23472 | |
| 1040 | 1034 | |
| 1041 | 1035 | /********************************************************************/ |
| 1042 | 1036 | |
| 1043 | | WRITE32_MEMBER(seibuspi_state::input_select_w) |
| 1044 | | { |
| 1045 | | m_ejsakura_input_port = data; |
| 1046 | | } |
| 1047 | | |
| 1048 | 1037 | static ADDRESS_MAP_START( sys386f2_map, AS_PROGRAM, 32, seibuspi_state ) |
| 1049 | 1038 | AM_RANGE(0x00000000, 0x0000000f) AM_RAM |
| 1050 | 1039 | AM_RANGE(0x00000010, 0x00000013) AM_READ(spi_int_r) /* Unknown */ |
| 1051 | 1040 | AM_RANGE(0x00000090, 0x00000097) AM_RAM /* Unknown */ |
| 1052 | | AM_RANGE(0x00000400, 0x00000403) AM_READNOP AM_WRITE(input_select_w) |
| 1041 | AM_RANGE(0x00000400, 0x00000403) AM_READNOP AM_WRITE(ejsakura_input_select_w) |
| 1053 | 1042 | AM_RANGE(0x00000404, 0x00000407) AM_WRITE8(eeprom_w, 0x000000ff) |
| 1054 | 1043 | AM_RANGE(0x00000408, 0x0000040f) AM_DEVWRITE8("ymz", ymz280b_device, write, 0x000000ff) |
| 1055 | 1044 | AM_RANGE(0x00000484, 0x00000487) AM_WRITE(palette_dma_start_w) |
| r23471 | r23472 | |
| 1060 | 1049 | AM_RANGE(0x00000600, 0x00000607) AM_DEVREAD8("ymz", ymz280b_device, read, 0x000000ff) |
| 1061 | 1050 | AM_RANGE(0x00000608, 0x0000060b) AM_READ(spi_unknown_r) |
| 1062 | 1051 | AM_RANGE(0x0000060c, 0x0000060f) AM_READ_PORT("INPUTS") /* Player controls */ |
| 1063 | | AM_RANGE(0x00000800, 0x0003ffff) AM_RAM AM_SHARE("spimainram") |
| 1052 | AM_RANGE(0x00000800, 0x0003ffff) AM_RAM AM_SHARE("mainram") |
| 1064 | 1053 | AM_RANGE(0x00200000, 0x003fffff) AM_ROM AM_SHARE("share1") |
| 1065 | 1054 | AM_RANGE(0xffe00000, 0xffffffff) AM_ROM AM_REGION("maincpu", 0) AM_SHARE("share1") /* ROM location in real-mode */ |
| 1066 | 1055 | ADDRESS_MAP_END |
| r23471 | r23472 | |
| 1086 | 1075 | m_soundflash2->write(offset & 0x0fffff, data); |
| 1087 | 1076 | } |
| 1088 | 1077 | |
| 1089 | | WRITE_LINE_MEMBER(seibuspi_state::irqhandler) |
| 1078 | WRITE_LINE_MEMBER(seibuspi_state::ymf_irqhandler) |
| 1090 | 1079 | { |
| 1091 | 1080 | if (state) |
| 1092 | 1081 | m_audiocpu->set_input_line_and_vector(0, ASSERT_LINE, 0xd7); // IRQ is RST10 |
| r23471 | r23472 | |
| 1271 | 1260 | PORT_BIT( 0x100, IP_ACTIVE_HIGH, IPT_MAHJONG_RON ) PORT_PLAYER(1) |
| 1272 | 1261 | INPUT_PORTS_END |
| 1273 | 1262 | |
| 1263 | |
| 1264 | CUSTOM_INPUT_MEMBER(seibuspi_state::ejsakura_keyboard_r) |
| 1265 | { |
| 1266 | switch(m_ejsakura_input_port) |
| 1267 | { |
| 1268 | case 0x01: |
| 1269 | return ioport("INPUT01")->read(); |
| 1270 | case 0x02: |
| 1271 | return ioport("INPUT02")->read(); |
| 1272 | case 0x04: |
| 1273 | return ioport("INPUT04")->read(); |
| 1274 | case 0x08: |
| 1275 | return ioport("INPUT08")->read(); |
| 1276 | case 0x10: |
| 1277 | return ioport("INPUT10")->read(); |
| 1278 | default: |
| 1279 | return ioport("SYSTEM")->read(); |
| 1280 | } |
| 1281 | return 0xffffffff; |
| 1282 | } |
| 1283 | |
| 1274 | 1284 | static INPUT_PORTS_START( spi_ejsakura ) |
| 1275 | 1285 | PORT_START("INPUTS") |
| 1276 | 1286 | PORT_BIT( 0xffffffff, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, seibuspi_state,ejsakura_keyboard_r, NULL) |
| r23471 | r23472 | |
| 1419 | 1429 | 6, |
| 1420 | 1430 | { 0, 4, 8, 12, 16, 20 }, |
| 1421 | 1431 | { |
| 1422 | | 3, 2, 1, 0, |
| 1432 | 3, 2, 1, 0, |
| 1423 | 1433 | 27,26,25,24, |
| 1424 | 1434 | 51,50,49,48, |
| 1425 | 1435 | 75,74,73,72 |
| r23471 | r23472 | |
| 1438 | 1448 | 1, |
| 1439 | 1449 | { 0 }, |
| 1440 | 1450 | { |
| 1441 | | 3, 2, 1, 0, |
| 1451 | 3, 2, 1, 0, |
| 1442 | 1452 | 27,26,25,24, |
| 1443 | 1453 | 51,50,49,48, |
| 1444 | 1454 | 75,74,73,72 |
| r23471 | r23472 | |
| 1456 | 1466 | 1, |
| 1457 | 1467 | { 4 }, |
| 1458 | 1468 | { |
| 1459 | | 3, 2, 1, 0, |
| 1469 | 3, 2, 1, 0, |
| 1460 | 1470 | 27,26,25,24, |
| 1461 | 1471 | 51,50,49,48, |
| 1462 | 1472 | 75,74,73,72 |
| r23471 | r23472 | |
| 1474 | 1484 | 1, |
| 1475 | 1485 | { 8 }, |
| 1476 | 1486 | { |
| 1477 | | 3, 2, 1, 0, |
| 1487 | 3, 2, 1, 0, |
| 1478 | 1488 | 27,26,25,24, |
| 1479 | 1489 | 51,50,49,48, |
| 1480 | 1490 | 75,74,73,72 |
| r23471 | r23472 | |
| 1492 | 1502 | 1, |
| 1493 | 1503 | { 12 }, |
| 1494 | 1504 | { |
| 1495 | | 3, 2, 1, 0, |
| 1505 | 3, 2, 1, 0, |
| 1496 | 1506 | 27,26,25,24, |
| 1497 | 1507 | 51,50,49,48, |
| 1498 | 1508 | 75,74,73,72 |
| r23471 | r23472 | |
| 1510 | 1520 | 1, |
| 1511 | 1521 | { 16 }, |
| 1512 | 1522 | { |
| 1513 | | 3, 2, 1, 0, |
| 1523 | 3, 2, 1, 0, |
| 1514 | 1524 | 27,26,25,24, |
| 1515 | 1525 | 51,50,49,48, |
| 1516 | 1526 | 75,74,73,72 |
| r23471 | r23472 | |
| 1528 | 1538 | 1, |
| 1529 | 1539 | { 20 }, |
| 1530 | 1540 | { |
| 1531 | | 3, 2, 1, 0, |
| 1541 | 3, 2, 1, 0, |
| 1532 | 1542 | 27,26,25,24, |
| 1533 | 1543 | 51,50,49,48, |
| 1534 | 1544 | 75,74,73,72 |
| r23471 | r23472 | |
| 1724 | 1734 | return 0x20; |
| 1725 | 1735 | } |
| 1726 | 1736 | |
| 1737 | |
| 1727 | 1738 | /* SPI */ |
| 1728 | 1739 | |
| 1740 | void seibuspi_state::init_spi_common() |
| 1741 | { |
| 1742 | if (m_z80_rom != NULL) |
| 1743 | membank("bank1")->configure_entries(0, 7, m_z80_rom->base(), 0x8000); |
| 1744 | } |
| 1745 | |
| 1746 | void seibuspi_state::init_sei252() |
| 1747 | { |
| 1748 | seibuspi_text_decrypt(memregion("gfx1")->base()); |
| 1749 | seibuspi_bg_decrypt(memregion("gfx2")->base(), memregion("gfx2")->bytes()); |
| 1750 | seibuspi_sprite_decrypt(memregion("gfx3")->base(), 0x400000); |
| 1751 | init_spi_common(); |
| 1752 | } |
| 1753 | |
| 1754 | void seibuspi_state::init_rise10() |
| 1755 | { |
| 1756 | seibuspi_rise10_text_decrypt(memregion("gfx1")->base()); |
| 1757 | seibuspi_rise10_bg_decrypt(memregion("gfx2")->base(), memregion("gfx2")->bytes()); |
| 1758 | seibuspi_rise10_sprite_decrypt(memregion("gfx3")->base(), 0x600000); |
| 1759 | init_spi_common(); |
| 1760 | } |
| 1761 | |
| 1762 | void seibuspi_state::init_rise11() |
| 1763 | { |
| 1764 | seibuspi_rise11_text_decrypt(memregion("gfx1")->base()); |
| 1765 | seibuspi_rise11_bg_decrypt(memregion("gfx2")->base(), memregion("gfx2")->bytes()); |
| 1766 | seibuspi_rise11_sprite_decrypt_rfjet(memregion("gfx3")->base(), 0x800000); |
| 1767 | init_spi_common(); |
| 1768 | } |
| 1769 | |
| 1770 | |
| 1729 | 1771 | MACHINE_START_MEMBER(seibuspi_state,spi) |
| 1730 | 1772 | { |
| 1731 | | m_z80_rom = auto_alloc_array(machine(), UINT8, 0x40000); |
| 1773 | m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(seibuspi_state::spi_irq_callback),this)); |
| 1732 | 1774 | } |
| 1733 | 1775 | |
| 1734 | 1776 | MACHINE_RESET_MEMBER(seibuspi_state,spi) |
| 1735 | 1777 | { |
| 1736 | | UINT8 *rombase = memregion("maincpu")->base(); |
| 1737 | | UINT8 flash_data = rombase[0x1ffffc]; |
| 1778 | m_audiocpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); |
| 1738 | 1779 | |
| 1739 | | m_audiocpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE ); |
| 1740 | | m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(seibuspi_state::spi_irq_callback),this)); |
| 1780 | membank("bank1")->set_entry(0); |
| 1781 | m_z80_lastbank = 0; |
| 1782 | m_z80_prg_transfer_pos = 0; |
| 1741 | 1783 | |
| 1742 | | membank("bank4")->set_base(m_z80_rom); |
| 1743 | | membank("bank5")->set_base(m_z80_rom); |
| 1744 | | |
| 1745 | 1784 | /* If the first value doesn't match, the game shows a checksum error */ |
| 1746 | 1785 | /* If any of the other values are wrong, the game goes to update mode */ |
| 1786 | UINT8 *rombase = memregion("maincpu")->base(); |
| 1787 | UINT8 country_code = rombase[0x1ffffc]; |
| 1788 | |
| 1747 | 1789 | m_soundflash1->write(0, 0xff); |
| 1748 | 1790 | m_soundflash1->write(0, 0x10); |
| 1749 | | m_soundflash1->write(0, flash_data); /* country code */ |
| 1791 | m_soundflash1->write(0, country_code); |
| 1750 | 1792 | |
| 1751 | 1793 | m_soundflash1->write(0, 0xff); |
| 1752 | 1794 | m_soundflash2->write(0, 0xff); |
| r23471 | r23472 | |
| 1794 | 1836 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| 1795 | 1837 | |
| 1796 | 1838 | MCFG_SOUND_ADD("ymf", YMF271, XTAL_16_9344MHz) |
| 1797 | | MCFG_YMF271_IRQ_HANDLER(WRITELINE(seibuspi_state, irqhandler)) |
| 1839 | MCFG_YMF271_IRQ_HANDLER(WRITELINE(seibuspi_state, ymf_irqhandler)) |
| 1798 | 1840 | MCFG_YMF271_EXT_READ_HANDLER(READ8(seibuspi_state, flashrom_read)) |
| 1799 | 1841 | MCFG_YMF271_EXT_WRITE_HANDLER(WRITE8(seibuspi_state, flashrom_write)) |
| 1800 | 1842 | |
| r23471 | r23472 | |
| 1802 | 1844 | MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) |
| 1803 | 1845 | MACHINE_CONFIG_END |
| 1804 | 1846 | |
| 1847 | |
| 1805 | 1848 | /* single boards */ |
| 1806 | 1849 | |
| 1807 | 1850 | MACHINE_START_MEMBER(seibuspi_state,sxx2e) |
| 1808 | 1851 | { |
| 1809 | | m_z80_rom = auto_alloc_array(machine(), UINT8, 0x40000); |
| 1852 | m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(seibuspi_state::spi_irq_callback),this)); |
| 1810 | 1853 | } |
| 1811 | 1854 | |
| 1812 | 1855 | MACHINE_RESET_MEMBER(seibuspi_state,sxx2e) |
| 1813 | 1856 | { |
| 1814 | | UINT8 *rom = memregion("audiocpu")->base(); |
| 1815 | | |
| 1816 | | membank("bank4")->set_base(m_z80_rom); |
| 1817 | | membank("bank5")->set_base(m_z80_rom); |
| 1818 | | |
| 1819 | | memcpy(m_z80_rom, rom, 0x40000); |
| 1820 | | |
| 1821 | | m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(seibuspi_state::spi_irq_callback),this)); |
| 1822 | | |
| 1857 | membank("bank1")->set_entry(0); |
| 1858 | m_z80_lastbank = 0; |
| 1823 | 1859 | m_sb_coin_latch = 0; |
| 1824 | 1860 | } |
| 1825 | 1861 | |
| r23471 | r23472 | |
| 1837 | 1873 | |
| 1838 | 1874 | /* sound hardware */ |
| 1839 | 1875 | MCFG_SOUND_REPLACE("ymf", YMF271, XTAL_16_9344MHz) |
| 1840 | | MCFG_YMF271_IRQ_HANDLER(WRITELINE(seibuspi_state, irqhandler)) |
| 1876 | MCFG_YMF271_IRQ_HANDLER(WRITELINE(seibuspi_state, ymf_irqhandler)) |
| 1841 | 1877 | |
| 1842 | 1878 | MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) |
| 1843 | 1879 | MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) |
| r23471 | r23472 | |
| 1864 | 1900 | |
| 1865 | 1901 | /* sound hardware */ |
| 1866 | 1902 | MCFG_SOUND_REPLACE("ymf", YMF271, XTAL_16_384MHz) // 16.384MHz |
| 1867 | | MCFG_YMF271_IRQ_HANDLER(WRITELINE(seibuspi_state, irqhandler)) |
| 1903 | MCFG_YMF271_IRQ_HANDLER(WRITELINE(seibuspi_state, ymf_irqhandler)) |
| 1868 | 1904 | |
| 1869 | 1905 | MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) |
| 1870 | 1906 | MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) |
| 1871 | 1907 | MACHINE_CONFIG_END |
| 1872 | 1908 | |
| 1873 | | READ32_MEMBER(seibuspi_state::senkyu_speedup_r) |
| 1874 | | { |
| 1875 | | if (space.device().safe_pc()==0x00305bb2) space.device().execute().spin_until_interrupt(); // idle |
| 1876 | | return m_spimainram[(0x0018cb4-0x800)/4]; |
| 1877 | | } |
| 1878 | 1909 | |
| 1879 | | READ32_MEMBER(seibuspi_state::senkyua_speedup_r) |
| 1910 | /* SYS386 */ |
| 1911 | |
| 1912 | MACHINE_START_MEMBER(seibuspi_state,seibu386) |
| 1880 | 1913 | { |
| 1881 | | if (space.device().safe_pc()== 0x30582e) space.device().execute().spin_until_interrupt(); // idle |
| 1882 | | return m_spimainram[(0x0018c9c-0x800)/4]; |
| 1914 | m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(seibuspi_state::spi_irq_callback),this)); |
| 1883 | 1915 | } |
| 1884 | 1916 | |
| 1885 | | READ32_MEMBER(seibuspi_state::batlball_speedup_r) |
| 1917 | MACHINE_RESET_MEMBER(seibuspi_state,seibu386) |
| 1886 | 1918 | { |
| 1887 | | // printf("space.device().safe_pc() %06x\n", space.device().safe_pc()); |
| 1888 | | |
| 1889 | | /* batlbalu */ |
| 1890 | | if (space.device().safe_pc()==0x00305996) space.device().execute().spin_until_interrupt(); // idle |
| 1891 | | |
| 1892 | | /* batlball */ |
| 1893 | | if (space.device().safe_pc()==0x003058aa) space.device().execute().spin_until_interrupt(); // idle |
| 1894 | | |
| 1895 | | return m_spimainram[(0x0018db4-0x800)/4]; |
| 1896 | 1919 | } |
| 1897 | 1920 | |
| 1898 | | READ32_MEMBER(seibuspi_state::rdft_speedup_r) |
| 1899 | | { |
| 1900 | | /* rdft */ |
| 1901 | | if (space.device().safe_pc()==0x0203f0a) space.device().execute().spin_until_interrupt(); // idle |
| 1921 | static MACHINE_CONFIG_START( seibu386, seibuspi_state ) |
| 1902 | 1922 | |
| 1903 | | /* rdftau */ |
| 1904 | | if (space.device().safe_pc()==0x0203f16) space.device().execute().spin_until_interrupt(); // idle |
| 1923 | /* basic machine hardware */ |
| 1924 | MCFG_CPU_ADD("maincpu", I386, XTAL_40MHz) // AMD 386DX, 40MHz |
| 1925 | MCFG_CPU_PROGRAM_MAP(seibu386_map) |
| 1926 | MCFG_CPU_VBLANK_INT_DRIVER("screen", seibuspi_state, spi_interrupt) |
| 1905 | 1927 | |
| 1906 | | /* rdftj */ |
| 1907 | | if (space.device().safe_pc()==0x0203f22) space.device().execute().spin_until_interrupt(); // idle |
| 1928 | MCFG_MACHINE_START_OVERRIDE(seibuspi_state, seibu386) |
| 1929 | MCFG_MACHINE_RESET_OVERRIDE(seibuspi_state, seibu386) |
| 1908 | 1930 | |
| 1909 | | /* rdftdi */ |
| 1910 | | if (space.device().safe_pc()==0x0203f46) space.device().execute().spin_until_interrupt(); // idle |
| 1931 | MCFG_EEPROM_ADD("eeprom", eeprom_intf) |
| 1911 | 1932 | |
| 1912 | | /* rdftu */ |
| 1913 | | if (space.device().safe_pc()==0x0203f3a) space.device().execute().spin_until_interrupt(); // idle |
| 1933 | /* video hardware */ |
| 1934 | MCFG_SCREEN_ADD("screen", RASTER) |
| 1935 | MCFG_SCREEN_REFRESH_RATE(54) |
| 1936 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
| 1937 | MCFG_SCREEN_SIZE(64*8, 32*8) |
| 1938 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) |
| 1914 | 1939 | |
| 1915 | | // mame_printf_debug("%08x\n",space.device().safe_pc()); |
| 1940 | MCFG_GFXDECODE(spi) |
| 1941 | MCFG_PALETTE_LENGTH(6144) |
| 1916 | 1942 | |
| 1917 | | return m_spimainram[(0x00298d0-0x800)/4]; |
| 1918 | | } |
| 1943 | MCFG_VIDEO_START_OVERRIDE(seibuspi_state, spi) |
| 1944 | MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_spi) |
| 1919 | 1945 | |
| 1920 | | READ32_MEMBER(seibuspi_state::viprp1_speedup_r) |
| 1921 | | { |
| 1922 | | /* viprp1 */ |
| 1923 | | if (space.device().safe_pc()==0x0202769) space.device().execute().spin_until_interrupt(); // idle |
| 1946 | /* sound hardware */ |
| 1947 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 1924 | 1948 | |
| 1925 | | /* viprp1s */ |
| 1926 | | if (space.device().safe_pc()==0x02027e9) space.device().execute().spin_until_interrupt(); // idle |
| 1949 | MCFG_OKIM6295_ADD("oki1", XTAL_28_63636MHz/20, OKIM6295_PIN7_HIGH) |
| 1950 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
| 1927 | 1951 | |
| 1928 | | /* viprp1ot */ |
| 1929 | | if (space.device().safe_pc()==0x02026bd) space.device().execute().spin_until_interrupt(); // idle |
| 1952 | MCFG_OKIM6295_ADD("oki2", XTAL_28_63636MHz/20, OKIM6295_PIN7_HIGH) |
| 1953 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
| 1954 | MACHINE_CONFIG_END |
| 1930 | 1955 | |
| 1931 | | // mame_printf_debug("%08x\n",space.device().safe_pc()); |
| 1932 | 1956 | |
| 1933 | | return m_spimainram[(0x001e2e0-0x800)/4]; |
| 1934 | | } |
| 1957 | /* SYS386-F V2.0 */ |
| 1935 | 1958 | |
| 1936 | | READ32_MEMBER(seibuspi_state::viprp1o_speedup_r) |
| 1959 | DRIVER_INIT_MEMBER(seibuspi_state,sys386f2) |
| 1937 | 1960 | { |
| 1938 | | /* viperp1o */ |
| 1939 | | if (space.device().safe_pc()==0x0201f99) space.device().execute().spin_until_interrupt(); // idle |
| 1940 | | // mame_printf_debug("%08x\n",space.device().safe_pc()); |
| 1941 | | return m_spimainram[(0x001d49c-0x800)/4]; |
| 1942 | | } |
| 1961 | int i, j; |
| 1962 | UINT16 *src = (UINT16 *)memregion("gfx3")->base(); |
| 1963 | UINT16 tmp[0x40 / 2], Offset; |
| 1943 | 1964 | |
| 1944 | | #ifdef UNUSED_FUNCTION |
| 1945 | | // causes input problems? |
| 1946 | | READ32_MEMBER(seibuspi_state::ejanhs_speedup_r) |
| 1947 | | { |
| 1948 | | // mame_printf_debug("%08x\n",space.device().safe_pc()); |
| 1949 | | if (space.device().safe_pc()==0x03032c7) space.device().execute().spin_until_interrupt(); // idle |
| 1950 | | return m_spimainram[(0x002d224-0x800)/4]; |
| 1965 | // sprite_reorder() only |
| 1966 | for(i = 0; i < memregion("gfx3")->bytes() / 0x40; i++) |
| 1967 | { |
| 1968 | memcpy(tmp, src, 0x40); |
| 1969 | |
| 1970 | for(j = 0; j < 0x40 / 2; j++) |
| 1971 | { |
| 1972 | Offset = (j >> 1) | (j << 4 & 0x10); |
| 1973 | *src++ = tmp[Offset]; |
| 1974 | } |
| 1975 | } |
| 1951 | 1976 | } |
| 1952 | | #endif |
| 1953 | 1977 | |
| 1954 | | READ32_MEMBER(seibuspi_state::rf2_speedup_r) |
| 1955 | | { |
| 1956 | | /* rdft22kc */ |
| 1957 | | if (space.device().safe_pc()==0x0203926) space.device().execute().spin_until_interrupt(); // idle |
| 1978 | static MACHINE_CONFIG_START( sys386f2, seibuspi_state ) |
| 1958 | 1979 | |
| 1959 | | /* rdft2, rdft2j */ |
| 1960 | | if (space.device().safe_pc()==0x0204372) space.device().execute().spin_until_interrupt(); // idle |
| 1980 | /* basic machine hardware */ |
| 1981 | MCFG_CPU_ADD("maincpu", I386, XTAL_50MHz/2) // Intel i386DX, 25MHz |
| 1982 | MCFG_CPU_PROGRAM_MAP(sys386f2_map) |
| 1983 | MCFG_CPU_VBLANK_INT_DRIVER("screen", seibuspi_state, spi_interrupt) |
| 1961 | 1984 | |
| 1962 | | /* rdft2us */ |
| 1963 | | if (space.device().safe_pc()==0x020420e) space.device().execute().spin_until_interrupt(); // idle |
| 1985 | MCFG_MACHINE_START_OVERRIDE(seibuspi_state, seibu386) |
| 1986 | MCFG_MACHINE_RESET_OVERRIDE(seibuspi_state, seibu386) |
| 1964 | 1987 | |
| 1965 | | /* rdft2a */ |
| 1966 | | if (space.device().safe_pc()==0x0204366) space.device().execute().spin_until_interrupt(); // idle |
| 1988 | MCFG_EEPROM_ADD("eeprom", eeprom_intf) |
| 1967 | 1989 | |
| 1968 | | // mame_printf_debug("%08x\n",space.device().safe_pc()); |
| 1990 | /* video hardware */ |
| 1991 | MCFG_SCREEN_ADD("screen", RASTER) |
| 1992 | MCFG_SCREEN_REFRESH_RATE(57.59) |
| 1993 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
| 1994 | MCFG_SCREEN_SIZE(64*8, 32*8) |
| 1995 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) |
| 1969 | 1996 | |
| 1970 | | return m_spimainram[(0x0282AC-0x800)/4]; |
| 1971 | | } |
| 1997 | MCFG_GFXDECODE(sys386f2) |
| 1998 | MCFG_PALETTE_LENGTH(8192) |
| 1972 | 1999 | |
| 1973 | | READ32_MEMBER(seibuspi_state::rfjet_speedup_r) |
| 1974 | | { |
| 1975 | | /* rfjet, rfjetu, rfjeta */ |
| 1976 | | if (space.device().safe_pc()==0x0206082) space.device().execute().spin_until_interrupt(); // idle |
| 2000 | MCFG_VIDEO_START_OVERRIDE(seibuspi_state, sys386f2) |
| 2001 | MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_sys386f2) |
| 1977 | 2002 | |
| 1978 | | /* rfjetus */ |
| 1979 | | if (space.device().safe_pc()==0x0205b39) |
| 1980 | | { |
| 1981 | | UINT32 r; |
| 1982 | | space.device().execute().spin_until_interrupt(); // idle |
| 1983 | | // Hack to enter test mode |
| 1984 | | r = m_spimainram[(0x002894c-0x800)/4] & (~0x400); |
| 1985 | | return r | (((ioport("SYSTEM")->read() ^ 0xff)<<8) & 0x400); |
| 1986 | | } |
| 2003 | /* sound hardware */ |
| 2004 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| 1987 | 2005 | |
| 1988 | | /* rfjetj */ |
| 1989 | | if (space.device().safe_pc()==0x0205f2e) space.device().execute().spin_until_interrupt(); // idle |
| 2006 | MCFG_SOUND_ADD("ymz", YMZ280B, XTAL_16_384MHz) |
| 2007 | MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) |
| 2008 | MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) |
| 2009 | MACHINE_CONFIG_END |
| 1990 | 2010 | |
| 1991 | | // mame_printf_debug("%08x\n",space.device().safe_pc()); |
| 1992 | 2011 | |
| 2012 | /*******************************************************************/ |
| 1993 | 2013 | |
| 1994 | | return m_spimainram[(0x002894c-0x800)/4]; |
| 1995 | | } |
| 1996 | | |
| 1997 | | void seibuspi_state::init_spi() |
| 2014 | DRIVER_INIT_MEMBER(seibuspi_state,senkyu) |
| 1998 | 2015 | { |
| 1999 | | seibuspi_text_decrypt(memregion("gfx1")->base()); |
| 2000 | | seibuspi_bg_decrypt(memregion("gfx2")->base(), memregion("gfx2")->bytes()); |
| 2001 | | seibuspi_sprite_decrypt(memregion("gfx3")->base(), 0x400000); |
| 2016 | if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x0018cb4, 0x0018cb7, read32_delegate(FUNC(seibuspi_state::senkyu_speedup_r),this)); |
| 2017 | init_sei252(); |
| 2002 | 2018 | } |
| 2003 | 2019 | |
| 2004 | | DRIVER_INIT_MEMBER(seibuspi_state,rdft) |
| 2020 | DRIVER_INIT_MEMBER(seibuspi_state,senkyua) |
| 2005 | 2021 | { |
| 2006 | | m_maincpu->space(AS_PROGRAM).install_read_handler(0x00298d0, 0x00298d3, read32_delegate(FUNC(seibuspi_state::rdft_speedup_r),this)); |
| 2007 | | |
| 2008 | | init_spi(); |
| 2022 | if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x0018c9c, 0x0018c9f, read32_delegate(FUNC(seibuspi_state::senkyua_speedup_r),this)); |
| 2023 | init_sei252(); |
| 2009 | 2024 | } |
| 2010 | 2025 | |
| 2011 | | DRIVER_INIT_MEMBER(seibuspi_state,senkyu) |
| 2026 | DRIVER_INIT_MEMBER(seibuspi_state,batlball) |
| 2012 | 2027 | { |
| 2013 | | m_maincpu->space(AS_PROGRAM).install_read_handler(0x0018cb4, 0x0018cb7, read32_delegate(FUNC(seibuspi_state::senkyu_speedup_r),this)); |
| 2014 | | |
| 2015 | | init_spi(); |
| 2028 | if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x0018db4, 0x0018db7, read32_delegate(FUNC(seibuspi_state::batlball_speedup_r),this)); |
| 2029 | init_sei252(); |
| 2016 | 2030 | } |
| 2017 | 2031 | |
| 2018 | | DRIVER_INIT_MEMBER(seibuspi_state,senkyua) |
| 2032 | DRIVER_INIT_MEMBER(seibuspi_state,viprp1) |
| 2019 | 2033 | { |
| 2020 | | m_maincpu->space(AS_PROGRAM).install_read_handler(0x0018c9c, 0x0018c9f, read32_delegate(FUNC(seibuspi_state::senkyua_speedup_r),this)); |
| 2021 | | |
| 2022 | | init_spi(); |
| 2034 | if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x001e2e0, 0x001e2e3, read32_delegate(FUNC(seibuspi_state::viprp1_speedup_r),this)); |
| 2035 | init_sei252(); |
| 2023 | 2036 | } |
| 2024 | 2037 | |
| 2025 | | DRIVER_INIT_MEMBER(seibuspi_state,batlball) |
| 2038 | DRIVER_INIT_MEMBER(seibuspi_state,viprp1o) |
| 2026 | 2039 | { |
| 2027 | | m_maincpu->space(AS_PROGRAM).install_read_handler(0x0018db4, 0x0018db7, read32_delegate(FUNC(seibuspi_state::batlball_speedup_r),this)); |
| 2028 | | |
| 2029 | | init_spi(); |
| 2040 | if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x001d49c, 0x001d49f, read32_delegate(FUNC(seibuspi_state::viprp1o_speedup_r),this)); |
| 2041 | init_sei252(); |
| 2030 | 2042 | } |
| 2031 | 2043 | |
| 2032 | 2044 | DRIVER_INIT_MEMBER(seibuspi_state,ejanhs) |
| 2033 | 2045 | { |
| 2034 | 2046 | // idle skip doesn't work properly? |
| 2035 | | // m_maincpu->space(AS_PROGRAM).install_read_handler(0x002d224, 0x002d227, read32_delegate(FUNC(seibuspi_state::ejanhs_speedup_r),this)); |
| 2047 | // if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x002d224, 0x002d227, read32_delegate(FUNC(seibuspi_state::ejanhs_speedup_r),this)); |
| 2048 | init_sei252(); |
| 2049 | } |
| 2036 | 2050 | |
| 2037 | | init_spi(); |
| 2051 | DRIVER_INIT_MEMBER(seibuspi_state,rdft) |
| 2052 | { |
| 2053 | if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x00298d0, 0x00298d3, read32_delegate(FUNC(seibuspi_state::rdft_speedup_r),this)); |
| 2054 | init_sei252(); |
| 2038 | 2055 | } |
| 2039 | 2056 | |
| 2040 | | DRIVER_INIT_MEMBER(seibuspi_state,viprp1) |
| 2057 | DRIVER_INIT_MEMBER(seibuspi_state,rdft2) |
| 2041 | 2058 | { |
| 2042 | | m_maincpu->space(AS_PROGRAM).install_read_handler(0x001e2e0, 0x001e2e3, read32_delegate(FUNC(seibuspi_state::viprp1_speedup_r),this)); |
| 2043 | | |
| 2044 | | init_spi(); |
| 2059 | if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x00282ac, 0x00282af, read32_delegate(FUNC(seibuspi_state::rf2_speedup_r),this)); |
| 2060 | init_rise10(); |
| 2045 | 2061 | } |
| 2046 | 2062 | |
| 2047 | | DRIVER_INIT_MEMBER(seibuspi_state,viprp1o) |
| 2063 | DRIVER_INIT_MEMBER(seibuspi_state,rfjet) |
| 2048 | 2064 | { |
| 2049 | | m_maincpu->space(AS_PROGRAM).install_read_handler(0x001d49c, 0x001d49f, read32_delegate(FUNC(seibuspi_state::viprp1o_speedup_r),this)); |
| 2050 | | |
| 2051 | | init_spi(); |
| 2065 | if (ENABLE_SPEEDUP_HACKS) m_maincpu->space(AS_PROGRAM).install_read_handler(0x002894c, 0x002894f, read32_delegate(FUNC(seibuspi_state::rfjet_speedup_r),this)); |
| 2066 | init_rise11(); |
| 2052 | 2067 | } |
| 2053 | 2068 | |
| 2054 | 2069 | |
| 2070 | READ32_MEMBER(seibuspi_state::senkyu_speedup_r) |
| 2071 | { |
| 2072 | if (space.device().safe_pc()==0x00305bb2) space.device().execute().spin_until_interrupt(); // idle |
| 2055 | 2073 | |
| 2056 | | void seibuspi_state::init_rf2_common() |
| 2057 | | { |
| 2058 | | m_maincpu->space(AS_PROGRAM).install_read_handler(0x0282ac, 0x0282af, read32_delegate(FUNC(seibuspi_state::rf2_speedup_r),this)); |
| 2059 | | seibuspi_rise10_text_decrypt(memregion("gfx1")->base()); |
| 2060 | | seibuspi_rise10_bg_decrypt(memregion("gfx2")->base(), memregion("gfx2")->bytes()); |
| 2061 | | seibuspi_rise10_sprite_decrypt(memregion("gfx3")->base(), 0x600000); |
| 2074 | return m_mainram[(0x0018cb4-0x800)/4]; |
| 2062 | 2075 | } |
| 2063 | 2076 | |
| 2064 | | DRIVER_INIT_MEMBER(seibuspi_state,rdft2) |
| 2077 | READ32_MEMBER(seibuspi_state::senkyua_speedup_r) |
| 2065 | 2078 | { |
| 2066 | | init_rf2_common(); |
| 2079 | if (space.device().safe_pc()== 0x30582e) space.device().execute().spin_until_interrupt(); // idle |
| 2080 | |
| 2081 | return m_mainram[(0x0018c9c-0x800)/4]; |
| 2067 | 2082 | } |
| 2068 | 2083 | |
| 2069 | | DRIVER_INIT_MEMBER(seibuspi_state,rdft2us) |
| 2084 | READ32_MEMBER(seibuspi_state::batlball_speedup_r) |
| 2070 | 2085 | { |
| 2071 | | init_rf2_common(); |
| 2072 | | } |
| 2086 | // printf("space.device().safe_pc() %06x\n", space.device().safe_pc()); |
| 2073 | 2087 | |
| 2088 | /* batlbalu */ |
| 2089 | if (space.device().safe_pc()==0x00305996) space.device().execute().spin_until_interrupt(); // idle |
| 2074 | 2090 | |
| 2075 | | void seibuspi_state::init_rfjet_common() |
| 2076 | | { |
| 2077 | | m_maincpu->space(AS_PROGRAM).install_read_handler(0x002894c, 0x002894f, read32_delegate(FUNC(seibuspi_state::rfjet_speedup_r),this)); |
| 2078 | | seibuspi_rise11_text_decrypt(memregion("gfx1")->base()); |
| 2079 | | seibuspi_rise11_bg_decrypt(memregion("gfx2")->base(), memregion("gfx2")->bytes()); |
| 2080 | | seibuspi_rise11_sprite_decrypt_rfjet(memregion("gfx3")->base(), 0x800000); |
| 2091 | /* batlball */ |
| 2092 | if (space.device().safe_pc()==0x003058aa) space.device().execute().spin_until_interrupt(); // idle |
| 2093 | |
| 2094 | return m_mainram[(0x0018db4-0x800)/4]; |
| 2081 | 2095 | } |
| 2082 | 2096 | |
| 2083 | | DRIVER_INIT_MEMBER(seibuspi_state,rfjet) |
| 2097 | READ32_MEMBER(seibuspi_state::viprp1_speedup_r) |
| 2084 | 2098 | { |
| 2085 | | init_rfjet_common(); |
| 2086 | | } |
| 2099 | /* viprp1 */ |
| 2100 | if (space.device().safe_pc()==0x0202769) space.device().execute().spin_until_interrupt(); // idle |
| 2087 | 2101 | |
| 2088 | | /* SYS386 */ |
| 2102 | /* viprp1s */ |
| 2103 | if (space.device().safe_pc()==0x02027e9) space.device().execute().spin_until_interrupt(); // idle |
| 2089 | 2104 | |
| 2090 | | DRIVER_INIT_MEMBER(seibuspi_state,rdft22kc) |
| 2091 | | { |
| 2092 | | init_rf2_common(); |
| 2105 | /* viprp1ot */ |
| 2106 | if (space.device().safe_pc()==0x02026bd) space.device().execute().spin_until_interrupt(); // idle |
| 2107 | |
| 2108 | // mame_printf_debug("%08x\n",space.device().safe_pc()); |
| 2109 | |
| 2110 | return m_mainram[(0x001e2e0-0x800)/4]; |
| 2093 | 2111 | } |
| 2094 | 2112 | |
| 2095 | | DRIVER_INIT_MEMBER(seibuspi_state,rfjet2k) |
| 2113 | READ32_MEMBER(seibuspi_state::viprp1o_speedup_r) |
| 2096 | 2114 | { |
| 2097 | | init_rfjet_common(); |
| 2115 | /* viperp1o */ |
| 2116 | if (space.device().safe_pc()==0x0201f99) space.device().execute().spin_until_interrupt(); // idle |
| 2117 | // mame_printf_debug("%08x\n",space.device().safe_pc()); |
| 2118 | return m_mainram[(0x001d49c-0x800)/4]; |
| 2098 | 2119 | } |
| 2099 | 2120 | |
| 2100 | | MACHINE_RESET_MEMBER(seibuspi_state,seibu386) |
| 2121 | #ifdef UNUSED_FUNCTION |
| 2122 | // causes input problems? |
| 2123 | READ32_MEMBER(seibuspi_state::ejanhs_speedup_r) |
| 2101 | 2124 | { |
| 2102 | | m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(seibuspi_state::spi_irq_callback),this)); |
| 2125 | // mame_printf_debug("%08x\n",space.device().safe_pc()); |
| 2126 | if (space.device().safe_pc()==0x03032c7) space.device().execute().spin_until_interrupt(); // idle |
| 2127 | return m_mainram[(0x002d224-0x800)/4]; |
| 2103 | 2128 | } |
| 2129 | #endif |
| 2104 | 2130 | |
| 2105 | | static MACHINE_CONFIG_START( seibu386, seibuspi_state ) |
| 2131 | READ32_MEMBER(seibuspi_state::rdft_speedup_r) |
| 2132 | { |
| 2133 | /* rdft */ |
| 2134 | if (space.device().safe_pc()==0x0203f0a) space.device().execute().spin_until_interrupt(); // idle |
| 2106 | 2135 | |
| 2107 | | /* basic machine hardware */ |
| 2108 | | MCFG_CPU_ADD("maincpu", I386, XTAL_40MHz) // AMD 386DX, 40MHz |
| 2109 | | MCFG_CPU_PROGRAM_MAP(seibu386_map) |
| 2110 | | MCFG_CPU_VBLANK_INT_DRIVER("screen", seibuspi_state, spi_interrupt) |
| 2136 | /* rdftau */ |
| 2137 | if (space.device().safe_pc()==0x0203f16) space.device().execute().spin_until_interrupt(); // idle |
| 2111 | 2138 | |
| 2112 | | MCFG_MACHINE_RESET_OVERRIDE(seibuspi_state, seibu386) |
| 2139 | /* rdftj */ |
| 2140 | if (space.device().safe_pc()==0x0203f22) space.device().execute().spin_until_interrupt(); // idle |
| 2113 | 2141 | |
| 2114 | | MCFG_EEPROM_ADD("eeprom", eeprom_intf) |
| 2142 | /* rdftdi */ |
| 2143 | if (space.device().safe_pc()==0x0203f46) space.device().execute().spin_until_interrupt(); // idle |
| 2115 | 2144 | |
| 2116 | | /* video hardware */ |
| 2117 | | MCFG_SCREEN_ADD("screen", RASTER) |
| 2118 | | MCFG_SCREEN_REFRESH_RATE(54) |
| 2119 | | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
| 2120 | | MCFG_SCREEN_SIZE(64*8, 32*8) |
| 2121 | | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) |
| 2145 | /* rdftu */ |
| 2146 | if (space.device().safe_pc()==0x0203f3a) space.device().execute().spin_until_interrupt(); // idle |
| 2122 | 2147 | |
| 2123 | | MCFG_GFXDECODE(spi) |
| 2124 | | MCFG_PALETTE_LENGTH(6144) |
| 2148 | // mame_printf_debug("%08x\n",space.device().safe_pc()); |
| 2125 | 2149 | |
| 2126 | | MCFG_VIDEO_START_OVERRIDE(seibuspi_state, spi) |
| 2127 | | MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_spi) |
| 2150 | return m_mainram[(0x00298d0-0x800)/4]; |
| 2151 | } |
| 2128 | 2152 | |
| 2129 | | /* sound hardware */ |
| 2130 | | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 2153 | READ32_MEMBER(seibuspi_state::rf2_speedup_r) |
| 2154 | { |
| 2155 | /* rdft22kc */ |
| 2156 | if (space.device().safe_pc()==0x0203926) space.device().execute().spin_until_interrupt(); // idle |
| 2131 | 2157 | |
| 2132 | | MCFG_OKIM6295_ADD("oki1", XTAL_28_63636MHz/20, OKIM6295_PIN7_HIGH) |
| 2133 | | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
| 2158 | /* rdft2, rdft2j */ |
| 2159 | if (space.device().safe_pc()==0x0204372) space.device().execute().spin_until_interrupt(); // idle |
| 2134 | 2160 | |
| 2135 | | MCFG_OKIM6295_ADD("oki2", XTAL_28_63636MHz/20, OKIM6295_PIN7_HIGH) |
| 2136 | | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
| 2137 | | MACHINE_CONFIG_END |
| 2161 | /* rdft2us */ |
| 2162 | if (space.device().safe_pc()==0x020420e) space.device().execute().spin_until_interrupt(); // idle |
| 2138 | 2163 | |
| 2139 | | /* SYS386-F V2.0 */ |
| 2140 | | DRIVER_INIT_MEMBER(seibuspi_state,sys386f2) |
| 2141 | | { |
| 2142 | | int i, j; |
| 2143 | | UINT16 *src = (UINT16 *)memregion("gfx3")->base(); |
| 2144 | | UINT16 tmp[0x40 / 2], Offset; |
| 2164 | /* rdft2a */ |
| 2165 | if (space.device().safe_pc()==0x0204366) space.device().execute().spin_until_interrupt(); // idle |
| 2145 | 2166 | |
| 2146 | | // sprite_reorder() only |
| 2147 | | for(i = 0; i < memregion("gfx3")->bytes() / 0x40; i++) |
| 2148 | | { |
| 2149 | | memcpy(tmp, src, 0x40); |
| 2167 | // mame_printf_debug("%08x\n",space.device().safe_pc()); |
| 2150 | 2168 | |
| 2151 | | for(j = 0; j < 0x40 / 2; j++) |
| 2152 | | { |
| 2153 | | Offset = (j >> 1) | (j << 4 & 0x10); |
| 2154 | | *src++ = tmp[Offset]; |
| 2155 | | } |
| 2156 | | } |
| 2169 | return m_mainram[(0x0282ac-0x800)/4]; |
| 2157 | 2170 | } |
| 2158 | 2171 | |
| 2159 | | static MACHINE_CONFIG_START( sys386f2, seibuspi_state ) |
| 2172 | READ32_MEMBER(seibuspi_state::rfjet_speedup_r) |
| 2173 | { |
| 2174 | /* rfjet, rfjetu, rfjeta */ |
| 2175 | if (space.device().safe_pc()==0x0206082) space.device().execute().spin_until_interrupt(); // idle |
| 2160 | 2176 | |
| 2161 | | /* basic machine hardware */ |
| 2162 | | MCFG_CPU_ADD("maincpu", I386, XTAL_50MHz/2) // Intel i386DX, 25MHz |
| 2163 | | MCFG_CPU_PROGRAM_MAP(sys386f2_map) |
| 2164 | | MCFG_CPU_VBLANK_INT_DRIVER("screen", seibuspi_state, spi_interrupt) |
| 2177 | /* rfjetus */ |
| 2178 | if (space.device().safe_pc()==0x0205b39) |
| 2179 | { |
| 2180 | UINT32 r; |
| 2181 | space.device().execute().spin_until_interrupt(); // idle |
| 2182 | // Hack to enter test mode |
| 2183 | r = m_mainram[(0x002894c-0x800)/4] & (~0x400); |
| 2184 | return r | (((ioport("SYSTEM")->read() ^ 0xff)<<8) & 0x400); |
| 2185 | } |
| 2165 | 2186 | |
| 2166 | | MCFG_MACHINE_RESET_OVERRIDE(seibuspi_state,seibu386) |
| 2187 | /* rfjetj */ |
| 2188 | if (space.device().safe_pc()==0x0205f2e) space.device().execute().spin_until_interrupt(); // idle |
| 2167 | 2189 | |
| 2168 | | MCFG_EEPROM_ADD("eeprom", eeprom_intf) |
| 2190 | // mame_printf_debug("%08x\n",space.device().safe_pc()); |
| 2169 | 2191 | |
| 2170 | | /* video hardware */ |
| 2171 | | MCFG_SCREEN_ADD("screen", RASTER) |
| 2172 | | MCFG_SCREEN_REFRESH_RATE(57.59) |
| 2173 | | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
| 2174 | | MCFG_SCREEN_SIZE(64*8, 32*8) |
| 2175 | | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) |
| 2192 | return m_mainram[(0x002894c-0x800)/4]; |
| 2193 | } |
| 2176 | 2194 | |
| 2177 | | MCFG_GFXDECODE(sys386f2) |
| 2178 | | MCFG_PALETTE_LENGTH(8192) |
| 2179 | 2195 | |
| 2180 | | MCFG_VIDEO_START_OVERRIDE(seibuspi_state, sys386f2) |
| 2181 | | MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_sys386f2) |
| 2196 | /*******************************************************************/ |
| 2182 | 2197 | |
| 2183 | | /* sound hardware */ |
| 2184 | | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| 2185 | | |
| 2186 | | MCFG_SOUND_ADD("ymz", YMZ280B, XTAL_16_384MHz) |
| 2187 | | MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) |
| 2188 | | MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) |
| 2189 | | MACHINE_CONFIG_END |
| 2190 | | |
| 2191 | | |
| 2192 | | /*******************************************************************/ |
| 2193 | 2198 | #define ROM_LOAD24_BYTE(name,offset,length,hash) ROMX_LOAD(name, offset, length, hash, ROM_SKIP(2)) |
| 2194 | 2199 | #define ROM_LOAD24_WORD(name,offset,length,hash) ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_SKIP(1) | ROM_REVERSE) |
| 2195 | 2200 | #define ROM_LOAD24_WORD_SWAP(name,offset,length,hash) ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_SKIP(1)) |
| r23471 | r23472 | |
| 2203 | 2208 | ROM_LOAD32_BYTE("fb_3.210", 0x100002, 0x40000, CRC(226f0429) SHA1(69d0fe6671278d7fe215e455bb50abf631cdb484) ) |
| 2204 | 2209 | ROM_LOAD32_BYTE("fb_4.29", 0x100003, 0x40000, CRC(b46d66b7) SHA1(1acd0fea9384e1488b44661e0c99b9672a3f9803) ) |
| 2205 | 2210 | |
| 2211 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2212 | |
| 2206 | 2213 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 2207 | 2214 | ROM_LOAD24_WORD("fb_6.413", 0x000000, 0x20000, CRC(b57115c9) SHA1(eb95f416f522032ca949bfb6348f1ff824101f2d) ) |
| 2208 | 2215 | ROM_LOAD24_BYTE("fb_5.48", 0x000002, 0x10000, CRC(440a9ae3) SHA1(3f57e6da91f0dac2d816c873759f1e1d3259caf1) ) |
| r23471 | r23472 | |
| 2229 | 2236 | ROM_LOAD32_BYTE("3.bin", 0x100002, 0x40000, CRC(e27ceccd) SHA1(3d6b8e97e89939c72d1a5a4a3856025b5f548645) ) |
| 2230 | 2237 | ROM_LOAD32_BYTE("4.bin", 0x100003, 0x40000, CRC(7c6d4549) SHA1(efc6920a2e518afe849fb6fe191e7cd0bc483be5) ) |
| 2231 | 2238 | |
| 2239 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2240 | |
| 2232 | 2241 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 2233 | 2242 | ROM_LOAD24_WORD("fb_6.413", 0x000000, 0x20000, CRC(b57115c9) SHA1(eb95f416f522032ca949bfb6348f1ff824101f2d) ) |
| 2234 | 2243 | ROM_LOAD24_BYTE("fb_5.48", 0x000002, 0x10000, CRC(440a9ae3) SHA1(3f57e6da91f0dac2d816c873759f1e1d3259caf1) ) |
| r23471 | r23472 | |
| 2255 | 2264 | ROM_LOAD32_BYTE("3.210", 0x100002, 0x40000, CRC(520d31e1) SHA1(998ae968113ab5b2891044187d93793903c13452) ) |
| 2256 | 2265 | ROM_LOAD32_BYTE("4.029", 0x100003, 0x40000, CRC(22419b78) SHA1(67475a654d4ad94e5dfda88cbe2f9c1b5ba6d2cc) ) |
| 2257 | 2266 | |
| 2267 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2268 | |
| 2258 | 2269 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 2259 | 2270 | ROM_LOAD24_WORD("fb_6.413", 0x000000, 0x20000, CRC(b57115c9) SHA1(eb95f416f522032ca949bfb6348f1ff824101f2d) ) |
| 2260 | 2271 | ROM_LOAD24_BYTE("fb_5.48", 0x000002, 0x10000, CRC(440a9ae3) SHA1(3f57e6da91f0dac2d816c873759f1e1d3259caf1) ) |
| r23471 | r23472 | |
| 2281 | 2292 | ROM_LOAD32_BYTE("3.210", 0x100002, 0x40000, CRC(520d31e1) SHA1(998ae968113ab5b2891044187d93793903c13452) ) |
| 2282 | 2293 | ROM_LOAD32_BYTE("4.029", 0x100003, 0x40000, CRC(22419b78) SHA1(67475a654d4ad94e5dfda88cbe2f9c1b5ba6d2cc) ) |
| 2283 | 2294 | |
| 2295 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2296 | |
| 2284 | 2297 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 2285 | 2298 | ROM_LOAD24_WORD("fb_6.413", 0x000000, 0x20000, CRC(b57115c9) SHA1(eb95f416f522032ca949bfb6348f1ff824101f2d) ) |
| 2286 | 2299 | ROM_LOAD24_BYTE("fb_5.48", 0x000002, 0x10000, CRC(440a9ae3) SHA1(3f57e6da91f0dac2d816c873759f1e1d3259caf1) ) |
| r23471 | r23472 | |
| 2307 | 2320 | ROM_LOAD32_BYTE("3_10-16", 0x100002, 0x40000, CRC(8c30180e) SHA1(47b99b04e2e74f1ee5095aed3f45aba66cd3da3f) ) |
| 2308 | 2321 | ROM_LOAD32_BYTE("4_10-16", 0x100003, 0x40000, CRC(048c7aaa) SHA1(5eca2cdf4e6f077988509c3c42c86408b21ffbf1) ) |
| 2309 | 2322 | |
| 2323 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2324 | |
| 2310 | 2325 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 2311 | 2326 | ROM_LOAD24_WORD("fb_6.413", 0x000000, 0x20000, CRC(b57115c9) SHA1(eb95f416f522032ca949bfb6348f1ff824101f2d) ) |
| 2312 | 2327 | ROM_LOAD24_BYTE("fb_5.48", 0x000002, 0x10000, CRC(440a9ae3) SHA1(3f57e6da91f0dac2d816c873759f1e1d3259caf1) ) |
| r23471 | r23472 | |
| 2333 | 2348 | ROM_LOAD32_BYTE("sen3.bin", 0x100002, 0x40000, CRC(98e6f19f) SHA1(433f8463e63bba32730d3c098354f8c95257df3f) ) |
| 2334 | 2349 | ROM_LOAD32_BYTE("sen4.bin", 0x100003, 0x40000, CRC(1343ec56) SHA1(8ecc8d7b425ff6512ffa969a7f26423fa50ad258) ) |
| 2335 | 2350 | |
| 2351 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2352 | |
| 2336 | 2353 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 2337 | 2354 | ROM_LOAD24_WORD("fb_6.413", 0x000000, 0x20000, CRC(b57115c9) SHA1(eb95f416f522032ca949bfb6348f1ff824101f2d) ) |
| 2338 | 2355 | ROM_LOAD24_BYTE("fb_5.48", 0x000002, 0x10000, CRC(440a9ae3) SHA1(3f57e6da91f0dac2d816c873759f1e1d3259caf1) ) |
| r23471 | r23472 | |
| 2360 | 2377 | ROM_LOAD32_BYTE("ejan3_3.210", 0x100002, 0x40000, CRC(46897b7d) SHA1(a22e0467c016e72bf99df2c1e6ecc792b2151b15) ) |
| 2361 | 2378 | ROM_LOAD32_BYTE("ejan3_4.29", 0x100003, 0x40000, CRC(b3187a2b) SHA1(7fc11ed5ceb2e45f784e75307fef8b850a981a2e) ) |
| 2362 | 2379 | |
| 2380 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2381 | |
| 2363 | 2382 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 2364 | 2383 | ROM_LOAD24_WORD("ejan3_6.413", 0x000000, 0x20000, CRC(837e012c) SHA1(815452083b65885d6e66dfc058ceec81bb3e6678) ) |
| 2365 | 2384 | ROM_LOAD24_BYTE("ejan3_5.48", 0x000002, 0x10000, CRC(d62db7bf) SHA1(c88f1bb6106c59179b914962ed8cdd4095fd9ce8) ) |
| r23471 | r23472 | |
| 2389 | 2408 | ROM_LOAD32_BYTE("seibu3.210", 0x000002, 0x80000, CRC(990fa76a) SHA1(7619a631d6f83b3677eb47f984aff684e9518d6d) ) |
| 2390 | 2409 | ROM_LOAD32_BYTE("seibu4.29", 0x000003, 0x80000, CRC(13e3e343) SHA1(aac0c7450059847f53b5081e4abf26303a50f999) ) |
| 2391 | 2410 | |
| 2411 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2412 | |
| 2392 | 2413 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 2393 | 2414 | ROM_LOAD24_WORD("seibu5.u0413", 0x000000, 0x20000, CRC(5ece677c) SHA1(b782cf3296f866f79fafa69ff719211c9d4026df) ) |
| 2394 | 2415 | ROM_LOAD24_BYTE("seibu6.u048", 0x000002, 0x10000, CRC(44844ef8) SHA1(bcbe24d2ffb64f9165ba4ab7de27f44b99b5ff5a) ) |
| r23471 | r23472 | |
| 2416 | 2437 | ROM_LOAD32_BYTE("seibu3.u0210", 0x000002, 0x80000, CRC(c38f7b4e) SHA1(d5bf2c7f2f6c812c65005facfd40ac6d3b61f29d) ) |
| 2417 | 2438 | ROM_LOAD32_BYTE("seibu4.u029", 0x000003, 0x80000, CRC(523cbef3) SHA1(5d15261b8fb108e0ba4dfd14d259984ef81ce877) ) |
| 2418 | 2439 | |
| 2440 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2441 | |
| 2419 | 2442 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 2420 | 2443 | ROM_LOAD24_WORD("seibu5.u0413", 0x000000, 0x20000, CRC(5ece677c) SHA1(b782cf3296f866f79fafa69ff719211c9d4026df) ) |
| 2421 | 2444 | ROM_LOAD24_BYTE("seibu6.u048", 0x000002, 0x10000, CRC(44844ef8) SHA1(bcbe24d2ffb64f9165ba4ab7de27f44b99b5ff5a) ) |
| r23471 | r23472 | |
| 2443 | 2466 | ROM_LOAD32_BYTE("seibus_3", 0x000002, 0x80000, CRC(f9dd9128) SHA1(ff7460699424de9e9d953343c42e0ef0fa1f0e30) ) |
| 2444 | 2467 | ROM_LOAD32_BYTE("seibus_4", 0x000003, 0x80000, CRC(cb06440c) SHA1(c73647fb72c1579f05298fd884d8aeb3765bfff4) ) |
| 2445 | 2468 | |
| 2469 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2470 | |
| 2446 | 2471 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 2447 | 2472 | ROM_LOAD24_WORD("seibu5.u0413", 0x000000, 0x20000, CRC(5ece677c) SHA1(b782cf3296f866f79fafa69ff719211c9d4026df) ) |
| 2448 | 2473 | ROM_LOAD24_BYTE("seibu6.u048", 0x000002, 0x10000, CRC(44844ef8) SHA1(bcbe24d2ffb64f9165ba4ab7de27f44b99b5ff5a) ) |
| r23471 | r23472 | |
| 2470 | 2495 | ROM_LOAD32_BYTE("v_3-n.210", 0x000002, 0x80000, CRC(842434ac) SHA1(982d219c1d329122789c552208db2f4aaa4af7e4) ) |
| 2471 | 2496 | ROM_LOAD32_BYTE("v_4-n.29", 0x000003, 0x80000, CRC(a3948824) SHA1(fe076951427126c8b7fe81be84ecf0699597225b) ) |
| 2472 | 2497 | |
| 2498 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2499 | |
| 2473 | 2500 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 2474 | 2501 | ROM_LOAD24_WORD("seibu5.u0413", 0x000000, 0x20000, CRC(5ece677c) SHA1(b782cf3296f866f79fafa69ff719211c9d4026df) ) |
| 2475 | 2502 | ROM_LOAD24_BYTE("seibu6.u048", 0x000002, 0x10000, CRC(44844ef8) SHA1(bcbe24d2ffb64f9165ba4ab7de27f44b99b5ff5a) ) |
| r23471 | r23472 | |
| 2497 | 2524 | ROM_LOAD32_BYTE("viper_prg2.bin", 0x000002, 0x80000, CRC(d7ea460b) SHA1(aed10adacd073f7d2b35f12ba4b7876e5c99d142) ) |
| 2498 | 2525 | ROM_LOAD32_BYTE("viper_prg3.bin", 0x000003, 0x80000, CRC(ca6df094) SHA1(921eec141ce2d449047172fa9cdf39d459b5cc7b) ) |
| 2499 | 2526 | |
| 2527 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2528 | |
| 2500 | 2529 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 2501 | 2530 | ROM_LOAD24_WORD("seibu5.u0413", 0x000000, 0x20000, CRC(5ece677c) SHA1(b782cf3296f866f79fafa69ff719211c9d4026df) ) |
| 2502 | 2531 | ROM_LOAD24_BYTE("seibu6.u048", 0x000002, 0x10000, CRC(44844ef8) SHA1(bcbe24d2ffb64f9165ba4ab7de27f44b99b5ff5a) ) |
| r23471 | r23472 | |
| 2524 | 2553 | ROM_LOAD32_BYTE("seibu_3", 0x000002, 0x80000, CRC(91989503) SHA1(8c215fac200cc693396dbd57e0939e7efe883342) ) |
| 2525 | 2554 | ROM_LOAD32_BYTE("seibu_4", 0x000003, 0x80000, CRC(12c9582d) SHA1(a79e26514e5ab8703a7a8c3ac39b359cfa4117c1) ) |
| 2526 | 2555 | |
| 2556 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2557 | |
| 2527 | 2558 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 2528 | 2559 | ROM_LOAD24_WORD("seibu_5", 0x000000, 0x20000, CRC(80920fed) SHA1(b35ed080925f6d0a0b6d2d1ab4fa919f625b1e6a) ) /* Different from both "new" & "old" versions */ |
| 2529 | 2560 | ROM_LOAD24_BYTE("seibu_6", 0x000002, 0x10000, CRC(e71a8722) SHA1(3e0133fe1f85058ca6d9ac59d731f342c6b50e92) ) |
| r23471 | r23472 | |
| 2551 | 2582 | ROM_LOAD32_BYTE("v_3-o.210", 0x000002, 0x80000, CRC(6146db39) SHA1(04e68bfff320a3ffcb47686fa012a038538adc1a) ) |
| 2552 | 2583 | ROM_LOAD32_BYTE("v_4-o.29", 0x000003, 0x80000, CRC(dc8dd2b6) SHA1(20970706240c38c54084b4ae24b7ad23b31aa3de) ) |
| 2553 | 2584 | |
| 2585 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2586 | |
| 2554 | 2587 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 2555 | 2588 | ROM_LOAD24_WORD("v_5-o.413", 0x000000, 0x20000, CRC(6d863acc) SHA1(3e3e14f51b9394b24d7cbf562f1cfffc9ec2216d) ) |
| 2556 | 2589 | ROM_LOAD24_BYTE("v_6-o.48", 0x000002, 0x10000, CRC(fe7cb8f7) SHA1(55c7ab977c3666c8770deb62718d535673ffd4f8) ) |
| r23471 | r23472 | |
| 2578 | 2611 | ROM_LOAD32_BYTE("ov3.bin", 0x000002, 0x80000, CRC(0e86686b) SHA1(0af207ea77ef378364d80d20ecbfba2f043f2405) ) |
| 2579 | 2612 | ROM_LOAD32_BYTE("ov4.bin", 0x000003, 0x80000, CRC(9d7dd325) SHA1(550a8b5ed60e7ac50c40ec3eaa2cd6462be4a619) ) |
| 2580 | 2613 | |
| 2614 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2615 | |
| 2581 | 2616 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 2582 | 2617 | ROM_LOAD24_WORD("v_5-o.413", 0x000000, 0x20000, CRC(6d863acc) SHA1(3e3e14f51b9394b24d7cbf562f1cfffc9ec2216d) ) |
| 2583 | 2618 | ROM_LOAD24_BYTE("v_6-o.48", 0x000002, 0x10000, CRC(fe7cb8f7) SHA1(55c7ab977c3666c8770deb62718d535673ffd4f8) ) |
| r23471 | r23472 | |
| 2606 | 2641 | ROM_LOAD32_BYTE("gd_3.210", 0x000002, 0x80000, CRC(b0f59f44) SHA1(d44fe074ddab35cd0190535cd9fbd7f9e49312a4) ) |
| 2607 | 2642 | ROM_LOAD32_BYTE("gd_4.29", 0x000003, 0x80000, CRC(cd8705bd) SHA1(b19a1486d6b899a134d7b518863ddc8f07967e8b) ) |
| 2608 | 2643 | |
| 2644 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2645 | |
| 2609 | 2646 | ROM_REGION( 0x30000, "gfx1", 0 ) /* text layer roms */ |
| 2610 | 2647 | ROM_LOAD24_BYTE("gd_5.423", 0x000000, 0x10000, CRC(8f8d4e14) SHA1(06c803975767ae98f40ba7ac5764a5bc8baa3a30) ) |
| 2611 | 2648 | ROM_LOAD24_BYTE("gd_6.424", 0x000001, 0x10000, CRC(6ac64968) SHA1(ec395205c24c4f864a1f805bb0d4641562d4faa9) ) |
| r23471 | r23472 | |
| 2635 | 2672 | ROM_LOAD32_BYTE("rdftu_gd_3.210", 0x000002, 0x80000, CRC(10761b03) SHA1(e67db2e7c2176987419158fc4cee00fd9b99d03f) ) |
| 2636 | 2673 | ROM_LOAD32_BYTE("rdftu_gd_4.29", 0x000003, 0x80000, CRC(e5a3f01d) SHA1(5ca338f85a020d43d2618f88e798a076d13a5c7f) ) |
| 2637 | 2674 | |
| 2675 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2676 | |
| 2638 | 2677 | ROM_REGION( 0x30000, "gfx1", 0 ) /* text layer roms */ |
| 2639 | 2678 | ROM_LOAD24_BYTE("gd_5.423", 0x000000, 0x10000, CRC(8f8d4e14) SHA1(06c803975767ae98f40ba7ac5764a5bc8baa3a30) ) |
| 2640 | 2679 | ROM_LOAD24_BYTE("gd_6.424", 0x000001, 0x10000, CRC(6ac64968) SHA1(ec395205c24c4f864a1f805bb0d4641562d4faa9) ) |
| r23471 | r23472 | |
| 2665 | 2704 | ROM_LOAD32_BYTE("rf3.bin", 0x000002, 0x80000, CRC(beafcd24) SHA1(2dbc47ecef6f898a371a841df2c72151da9c5a8d) ) |
| 2666 | 2705 | ROM_LOAD32_BYTE("rf4.bin", 0x000003, 0x80000, CRC(5236f45f) SHA1(8b05d977d3d07796007a00a52d2396475dc2f7dc) ) |
| 2667 | 2706 | |
| 2707 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2708 | |
| 2668 | 2709 | ROM_REGION( 0x30000, "gfx1", 0 ) /* text layer roms */ |
| 2669 | 2710 | ROM_LOAD24_BYTE("gd_5.423", 0x000000, 0x10000, CRC(8f8d4e14) SHA1(06c803975767ae98f40ba7ac5764a5bc8baa3a30) ) |
| 2670 | 2711 | ROM_LOAD24_BYTE("gd_6.424", 0x000001, 0x10000, CRC(6ac64968) SHA1(ec395205c24c4f864a1f805bb0d4641562d4faa9) ) |
| r23471 | r23472 | |
| 2694 | 2735 | ROM_LOAD32_BYTE("3.u0210", 0x000002, 0x80000, CRC(a73e337e) SHA1(93323875c676f38eca3298fcf4a34911db2d78a8) ) |
| 2695 | 2736 | ROM_LOAD32_BYTE("4.u029", 0x000003, 0x80000, CRC(8cc628f0) SHA1(7534eae8a1ea461adad483002b3cecf132e0e325) ) |
| 2696 | 2737 | |
| 2738 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2739 | |
| 2697 | 2740 | ROM_REGION( 0x30000, "gfx1", 0 ) /* text layer roms */ |
| 2698 | 2741 | ROM_LOAD24_BYTE("gd_5.423", 0x000000, 0x10000, CRC(8f8d4e14) SHA1(06c803975767ae98f40ba7ac5764a5bc8baa3a30) ) |
| 2699 | 2742 | ROM_LOAD24_BYTE("gd_6.424", 0x000001, 0x10000, CRC(6ac64968) SHA1(ec395205c24c4f864a1f805bb0d4641562d4faa9) ) |
| r23471 | r23472 | |
| 2723 | 2766 | ROM_LOAD32_BYTE("u210.bin", 0x000002, 0x80000, CRC(47fc3c96) SHA1(7378f8caa847f89f235b5be6779118721076873b) ) |
| 2724 | 2767 | ROM_LOAD32_BYTE("u29.bin", 0x000003, 0x80000, CRC(271bdd4b) SHA1(0a805568cbd6a9c18bdb755a41972ff6bba9e6eb) ) |
| 2725 | 2768 | |
| 2769 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2770 | |
| 2726 | 2771 | ROM_REGION( 0x30000, "gfx1", 0 ) /* text layer roms */ |
| 2727 | 2772 | ROM_LOAD24_BYTE("gd_5.423", 0x000000, 0x10000, CRC(8f8d4e14) SHA1(06c803975767ae98f40ba7ac5764a5bc8baa3a30) ) |
| 2728 | 2773 | ROM_LOAD24_BYTE("gd_6.424", 0x000001, 0x10000, CRC(6ac64968) SHA1(ec395205c24c4f864a1f805bb0d4641562d4faa9) ) |
| r23471 | r23472 | |
| 2752 | 2797 | ROM_LOAD32_BYTE("u210.bin", 0x000002, 0x80000, CRC(47fc3c96) SHA1(7378f8caa847f89f235b5be6779118721076873b) ) |
| 2753 | 2798 | ROM_LOAD32_BYTE("u29.bin", 0x000003, 0x80000, CRC(271bdd4b) SHA1(0a805568cbd6a9c18bdb755a41972ff6bba9e6eb) ) |
| 2754 | 2799 | |
| 2800 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2801 | |
| 2755 | 2802 | ROM_REGION( 0x30000, "gfx1", 0 ) /* text layer roms */ |
| 2756 | 2803 | ROM_LOAD24_BYTE("gd_5.423", 0x000000, 0x10000, CRC(8f8d4e14) SHA1(06c803975767ae98f40ba7ac5764a5bc8baa3a30) ) |
| 2757 | 2804 | ROM_LOAD24_BYTE("gd_6.424", 0x000001, 0x10000, CRC(6ac64968) SHA1(ec395205c24c4f864a1f805bb0d4641562d4faa9) ) |
| r23471 | r23472 | |
| 2780 | 2827 | ROM_LOAD32_BYTE("raiden-f_prg2.u0212", 0x000001, 0x080000, CRC(58ccb10c) SHA1(0cce4057bfada78121d9586574b98d46cdd7dd46) ) // socket is silkscreened on pcb PRG1 |
| 2781 | 2828 | ROM_LOAD32_WORD("raiden-f_prg34.u0219", 0x000002, 0x100000, CRC(63f01d17) SHA1(74dbd0417b974583da87fc6c7a081b03fd4e16b8) ) // socket is silkscreened on pcb PRG23 |
| 2782 | 2829 | |
| 2830 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2831 | |
| 2783 | 2832 | ROM_REGION( 0x30000, "gfx1", 0 ) /* text layer roms */ |
| 2784 | 2833 | ROM_LOAD24_WORD("raiden-f_fix.u0425", 0x000000, 0x20000, CRC(2be2936b) SHA1(9e719f7328a52af220b6f084c1e0990ca6e2d533) ) // socket is silkscreened on pcb FIX01 |
| 2785 | 2834 | ROM_LOAD24_BYTE("seibu_7.u048", 0x000002, 0x10000, CRC(4d87e1ea) SHA1(3230e9b643fad773e61ab8ce09c0cd7d4d0558e3) ) // socket is silkscreened on pcb FIXP |
| r23471 | r23472 | |
| 2807 | 2856 | ROM_LOAD32_BYTE("raiden-f_prg2.u0212", 0x000001, 0x080000, CRC(58ccb10c) SHA1(0cce4057bfada78121d9586574b98d46cdd7dd46) ) // socket is silkscreened on pcb PRG1 |
| 2808 | 2857 | ROM_LOAD32_WORD("raiden-f_prg34.u0219", 0x000002, 0x100000, CRC(63f01d17) SHA1(74dbd0417b974583da87fc6c7a081b03fd4e16b8) ) // socket is silkscreened on pcb PRG23 |
| 2809 | 2858 | |
| 2859 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2860 | |
| 2810 | 2861 | ROM_REGION( 0x30000, "gfx1", 0 ) /* text layer roms */ |
| 2811 | 2862 | ROM_LOAD24_WORD("raiden-f_fix.u0425", 0x000000, 0x20000, CRC(2be2936b) SHA1(9e719f7328a52af220b6f084c1e0990ca6e2d533) ) // socket is silkscreened on pcb FIX01 |
| 2812 | 2863 | ROM_LOAD24_BYTE("seibu_7.u048", 0x000002, 0x10000, CRC(4d87e1ea) SHA1(3230e9b643fad773e61ab8ce09c0cd7d4d0558e3) ) // socket is silkscreened on pcb FIXP |
| r23471 | r23472 | |
| 2834 | 2885 | ROM_LOAD32_BYTE("raiden-f_prg2.u0258", 0x000001, 0x080000, CRC(58ccb10c) SHA1(0cce4057bfada78121d9586574b98d46cdd7dd46) ) // socket is silkscreened on pcb PRG1 |
| 2835 | 2886 | ROM_LOAD32_WORD("raiden-f_prg34.u0262", 0x000002, 0x100000, CRC(63f01d17) SHA1(74dbd0417b974583da87fc6c7a081b03fd4e16b8) ) // socket is silkscreened on pcb PRG23 |
| 2836 | 2887 | |
| 2888 | ROM_REGION( 0x40000, "audiocpu", 0 ) /* 256K ROM for the Z80 */ |
| 2889 | ROM_LOAD("seibu_zprg.u1139", 0x000000, 0x20000, CRC(c1fda3e8) SHA1(c1d3a7ba0601a80534ec32249de71d33a828a162) ) // pads are silkscreened ZPRG |
| 2890 | |
| 2837 | 2891 | ROM_REGION( 0x30000, "gfx1", 0 ) /* text layer roms */ |
| 2838 | 2892 | ROM_LOAD24_WORD("raiden-f_fix.u0535", 0x000000, 0x20000, CRC(2be2936b) SHA1(9e719f7328a52af220b6f084c1e0990ca6e2d533) ) // socket is silkscreened on pcb FIX01 |
| 2839 | 2893 | ROM_LOAD24_BYTE("seibu_fix2.u0528", 0x000002, 0x10000, CRC(4d87e1ea) SHA1(3230e9b643fad773e61ab8ce09c0cd7d4d0558e3) ) // socket is silkscreened on pcb FIX2 |
| r23471 | r23472 | |
| 2851 | 2905 | |
| 2852 | 2906 | ROM_REGION32_LE( 0xa00000, "sound01", ROMREGION_ERASE00 ) |
| 2853 | 2907 | |
| 2854 | | ROM_REGION( 0x40000, "audiocpu", 0 ) /* 256k for the Z80 */ |
| 2855 | | ROM_LOAD("seibu_zprg.u1139", 0x000000, 0x20000, CRC(c1fda3e8) SHA1(c1d3a7ba0601a80534ec32249de71d33a828a162) ) // pads are silkscreened ZPRG |
| 2856 | | |
| 2857 | 2908 | ROM_REGION( 0x200000, "ymf", ROMREGION_ERASE00 ) /* sound roms */ |
| 2858 | 2909 | ROM_LOAD("raiden-f_pcm2.u0975", 0x000000, 0x200000, CRC(3f8d4a48) SHA1(30664a2908daaeaee58f7e157516b522c952e48d) ) // pads are silkscreened SOUND0 |
| 2859 | 2910 | /* SOUND1 socket is unpopulated */ |
| r23471 | r23472 | |
| 2867 | 2918 | ROM_LOAD32_BYTE("prg2.bin", 0x000002, 0x80000, CRC(83758b0e) SHA1(63adb2d09e7bd7dba47a55b3b579d543dfb553e3) ) |
| 2868 | 2919 | ROM_LOAD32_BYTE("prg3.bin", 0x000003, 0x80000, CRC(084fb5e4) SHA1(588bfe091662b88f02f528181a2f1d9c67c7b280) ) |
| 2869 | 2920 | |
| 2921 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2922 | |
| 2870 | 2923 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 2871 | 2924 | ROM_LOAD24_BYTE("fix0.u0524", 0x000001, 0x10000, CRC(6fdf4cf6) SHA1(7e9d4a49e829dfdc373c0f5acfbe8c7a91ac115b) ) |
| 2872 | 2925 | ROM_LOAD24_BYTE("fix1.u0518", 0x000000, 0x10000, CRC(69b7899b) SHA1(d3cacd4ef4d2c95d803403101beb9d4be75fae61) ) |
| r23471 | r23472 | |
| 2899 | 2952 | ROM_LOAD32_BYTE("3.bin", 0x000002, 0x80000, CRC(86e3d1a8) SHA1(2757cfda57c82dd0f66427caf54eb1f40e85740d) ) |
| 2900 | 2953 | ROM_LOAD32_BYTE("4.bin", 0x000003, 0x80000, CRC(2e409a76) SHA1(cf90aa14a07b5aa861f6f7cc9b1968171e532557) ) |
| 2901 | 2954 | |
| 2955 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2956 | |
| 2902 | 2957 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 2903 | 2958 | ROM_LOAD24_BYTE("fix0.u0524", 0x000001, 0x10000, CRC(6fdf4cf6) SHA1(7e9d4a49e829dfdc373c0f5acfbe8c7a91ac115b) ) |
| 2904 | 2959 | ROM_LOAD24_BYTE("fix1.u0518", 0x000000, 0x10000, CRC(69b7899b) SHA1(d3cacd4ef4d2c95d803403101beb9d4be75fae61) ) |
| r23471 | r23472 | |
| 2931 | 2986 | ROM_LOAD32_BYTE("prg2.bin", 0x000002, 0x80000, CRC(83758b0e) SHA1(63adb2d09e7bd7dba47a55b3b579d543dfb553e3) ) |
| 2932 | 2987 | ROM_LOAD32_BYTE("prg3.bin", 0x000003, 0x80000, CRC(084fb5e4) SHA1(588bfe091662b88f02f528181a2f1d9c67c7b280) ) |
| 2933 | 2988 | |
| 2989 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 2990 | |
| 2934 | 2991 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 2935 | 2992 | ROM_LOAD24_BYTE("fix0.u0524", 0x000001, 0x10000, CRC(6fdf4cf6) SHA1(7e9d4a49e829dfdc373c0f5acfbe8c7a91ac115b) ) |
| 2936 | 2993 | ROM_LOAD24_BYTE("fix1.u0518", 0x000000, 0x10000, CRC(69b7899b) SHA1(d3cacd4ef4d2c95d803403101beb9d4be75fae61) ) |
| r23471 | r23472 | |
| 2963 | 3020 | ROM_LOAD32_BYTE("rf2_3.bin", 0x000002, 0x80000, CRC(e66243b2) SHA1(54e67af37a4586fd1afc79085ed433d599e1bb87) ) |
| 2964 | 3021 | ROM_LOAD32_BYTE("rf2_4.bin", 0x000003, 0x80000, CRC(92b7b73e) SHA1(128649b2a6a0616113bd0f9846fb6cf814ae326d) ) |
| 2965 | 3022 | |
| 3023 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 3024 | |
| 2966 | 3025 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 2967 | 3026 | ROM_LOAD24_BYTE("rf2_5.bin", 0x000001, 0x10000, CRC(377cac2f) SHA1(f7c9323d79b77f6c8c02ba2c6cdca127d6e5cb5c) ) |
| 2968 | 3027 | ROM_LOAD24_BYTE("rf2_6.bin", 0x000000, 0x10000, CRC(42bd5372) SHA1(c38df85b25070db9640eac541f71c0511bab0c98) ) |
| r23471 | r23472 | |
| 2996 | 3055 | ROM_LOAD32_BYTE("seibu__3.u0221", 0x000002, 0x80000, CRC(83758b0e) SHA1(63adb2d09e7bd7dba47a55b3b579d543dfb553e3) ) // socket is silkscreened on pcb PRG3 |
| 2997 | 3056 | ROM_LOAD32_BYTE("seibu__4.u0220", 0x000003, 0x80000, CRC(084fb5e4) SHA1(588bfe091662b88f02f528181a2f1d9c67c7b280) ) // socket is silkscreened on pcb PRG4 |
| 2998 | 3057 | |
| 3058 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 3059 | |
| 2999 | 3060 | ROM_REGION( 0x30000, "gfx1", 0 ) /* all are 27C512 */ |
| 3000 | 3061 | ROM_LOAD24_BYTE("seibu__5.u0524", 0x000001, 0x10000, CRC(6fdf4cf6) SHA1(7e9d4a49e829dfdc373c0f5acfbe8c7a91ac115b) ) // socket is silkscreened on pcb FIX0 |
| 3001 | 3062 | ROM_LOAD24_BYTE("seibu__6.u0518", 0x000000, 0x10000, CRC(69b7899b) SHA1(d3cacd4ef4d2c95d803403101beb9d4be75fae61) ) // socket is silkscreened on pcb FIX1 |
| r23471 | r23472 | |
| 3028 | 3089 | ROM_LOAD32_BYTE("rf2_3.bin", 0x000002, 0x80000, CRC(e66243b2) SHA1(54e67af37a4586fd1afc79085ed433d599e1bb87) ) |
| 3029 | 3090 | ROM_LOAD32_BYTE("rf2_4.bin", 0x000003, 0x80000, CRC(92b7b73e) SHA1(128649b2a6a0616113bd0f9846fb6cf814ae326d) ) |
| 3030 | 3091 | |
| 3092 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 3093 | |
| 3031 | 3094 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 3032 | 3095 | ROM_LOAD24_BYTE("rf2_5.bin", 0x000001, 0x10000, CRC(377cac2f) SHA1(f7c9323d79b77f6c8c02ba2c6cdca127d6e5cb5c) ) |
| 3033 | 3096 | ROM_LOAD24_BYTE("rf2_6.bin", 0x000000, 0x10000, CRC(42bd5372) SHA1(c38df85b25070db9640eac541f71c0511bab0c98) ) |
| r23471 | r23472 | |
| 3060 | 3123 | ROM_LOAD32_BYTE("prg2", 0x000002, 0x80000, CRC(3eca68dd) SHA1(98378654adf055d72ae685f90e36643c9d6419d7) ) |
| 3061 | 3124 | ROM_LOAD32_BYTE("prg3", 0x000003, 0x80000, CRC(4124daa4) SHA1(42f225c0328df59ffeacc215d37010f825bf507e) ) |
| 3062 | 3125 | |
| 3126 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 3127 | |
| 3063 | 3128 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 3064 | 3129 | ROM_LOAD24_BYTE("rf2_5.bin", 0x000001, 0x10000, CRC(377cac2f) SHA1(f7c9323d79b77f6c8c02ba2c6cdca127d6e5cb5c) ) |
| 3065 | 3130 | ROM_LOAD24_BYTE("rf2_6.bin", 0x000000, 0x10000, CRC(42bd5372) SHA1(c38df85b25070db9640eac541f71c0511bab0c98) ) |
| r23471 | r23472 | |
| 3092 | 3157 | ROM_LOAD32_BYTE("prg2.u0265", 0x000002, 0x80000, CRC(cae87e1f) SHA1(e460aad693eb2702ae11f758b11d37f852d00790) ) |
| 3093 | 3158 | ROM_LOAD32_BYTE("prg3.u0264", 0x000003, 0x80000, CRC(83f4fb5f) SHA1(73f58daa1aae0c4978db409cedd736fb49b15f1c) ) |
| 3094 | 3159 | |
| 3160 | ROM_REGION( 0x40000, "audiocpu", 0 ) /* 256K ROM for the Z80 */ |
| 3161 | ROM_LOAD("zprg.u091", 0x000000, 0x20000, CRC(cc543c4f) SHA1(6e5c93fd3d21c594571b071d4a830211e1f162b2) ) |
| 3162 | |
| 3095 | 3163 | ROM_REGION( 0x30000, "gfx1", 0 ) |
| 3096 | 3164 | ROM_LOAD24_BYTE("fix0.u0524", 0x000001, 0x10000, CRC(6fdf4cf6) SHA1(7e9d4a49e829dfdc373c0f5acfbe8c7a91ac115b) ) |
| 3097 | 3165 | ROM_LOAD24_BYTE("fix1.u0518", 0x000000, 0x10000, CRC(69b7899b) SHA1(d3cacd4ef4d2c95d803403101beb9d4be75fae61) ) |
| r23471 | r23472 | |
| 3113 | 3181 | |
| 3114 | 3182 | ROM_REGION32_LE( 0xa00000, "sound01", ROMREGION_ERASE00 ) |
| 3115 | 3183 | |
| 3116 | | ROM_REGION( 0x40000, "audiocpu", 0 ) /* 256k for the Z80 */ |
| 3117 | | ROM_LOAD("zprg.u091", 0x000000, 0x20000, CRC(cc543c4f) SHA1(6e5c93fd3d21c594571b071d4a830211e1f162b2) ) |
| 3118 | | |
| 3119 | 3184 | ROM_REGION( 0x280000, "ymf", ROMREGION_ERASE00 ) /* sound roms */ |
| 3120 | 3185 | ROM_LOAD("pcm.u0103", 0x000000, 0x200000, CRC(2edc30b5) SHA1(c25d690d633657fc3687636b9070f36bd305ae06) ) |
| 3121 | 3186 | ROM_LOAD("sound1.u0107", 0x200000, 0x080000, CRC(20384b0e) SHA1(9c5d725418543df740f9145974ed6ffbbabee1d0) ) /* Different sound1 then SPI carts */ |
| r23471 | r23472 | |
| 3129 | 3194 | ROM_LOAD32_BYTE("prg2.u0221", 0x000002, 0x80000, CRC(82f7a57e) SHA1(5300015e25d5f2f82eda3ed54bc105d645518498) ) |
| 3130 | 3195 | ROM_LOAD32_BYTE("prg3.u0220", 0x000003, 0x80000, CRC(cbdf100d) SHA1(c9efd11103429f7f36c1652cadb5384d925cb767) ) |
| 3131 | 3196 | |
| 3197 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 3198 | |
| 3132 | 3199 | ROM_REGION( 0x30000, "gfx1", ROMREGION_ERASEFF ) |
| 3133 | 3200 | ROM_LOAD24_BYTE("fix0.u0524", 0x000001, 0x10000, CRC(8bc080be) SHA1(ad296fb98242c963072346a8de289e704b445ad4) ) |
| 3134 | 3201 | ROM_LOAD24_BYTE("fix1.u0518", 0x000000, 0x10000, CRC(bded85e7) SHA1(ccb8c438ce6b9a742e3ab15be970b1e636783626) ) |
| r23471 | r23472 | |
| 3158 | 3225 | ROM_LOAD32_BYTE("prg2.bin", 0x000002, 0x80000, CRC(2f402d55) SHA1(d0d852239abb6f4d73e263de5544fc0893e7a7ab) ) |
| 3159 | 3226 | ROM_LOAD32_BYTE("prg3.bin", 0x000003, 0x80000, CRC(d619e2ad) SHA1(9dbff1babf62c3c5478a84d2a82a428de5949154) ) |
| 3160 | 3227 | |
| 3228 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 3229 | |
| 3161 | 3230 | ROM_REGION( 0x30000, "gfx1", ROMREGION_ERASEFF ) |
| 3162 | 3231 | ROM_LOAD24_BYTE("fix0.u0524", 0x000001, 0x10000, CRC(8bc080be) SHA1(ad296fb98242c963072346a8de289e704b445ad4) ) |
| 3163 | 3232 | ROM_LOAD24_BYTE("fix1.u0518", 0x000000, 0x10000, CRC(bded85e7) SHA1(ccb8c438ce6b9a742e3ab15be970b1e636783626) ) |
| r23471 | r23472 | |
| 3187 | 3256 | ROM_LOAD32_BYTE("prg2.u0221", 0x000002, 0x80000, CRC(82f7a57e) SHA1(5300015e25d5f2f82eda3ed54bc105d645518498) ) |
| 3188 | 3257 | ROM_LOAD32_BYTE("prg3.u0220", 0x000003, 0x80000, CRC(cbdf100d) SHA1(c9efd11103429f7f36c1652cadb5384d925cb767) ) |
| 3189 | 3258 | |
| 3259 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 3260 | |
| 3190 | 3261 | ROM_REGION( 0x30000, "gfx1", ROMREGION_ERASEFF ) |
| 3191 | 3262 | ROM_LOAD24_BYTE("fix0.u0524", 0x000001, 0x10000, CRC(8bc080be) SHA1(ad296fb98242c963072346a8de289e704b445ad4) ) |
| 3192 | 3263 | ROM_LOAD24_BYTE("fix1.u0518", 0x000000, 0x10000, CRC(bded85e7) SHA1(ccb8c438ce6b9a742e3ab15be970b1e636783626) ) |
| r23471 | r23472 | |
| 3216 | 3287 | ROM_LOAD32_BYTE("prg2(__rfjeta).u0221", 0x000002, 0x80000, CRC(82f7a57e) SHA1(5300015e25d5f2f82eda3ed54bc105d645518498) ) |
| 3217 | 3288 | ROM_LOAD32_BYTE("prg3(__rfjeta).u0220", 0x000003, 0x80000, CRC(cbdf100d) SHA1(c9efd11103429f7f36c1652cadb5384d925cb767) ) |
| 3218 | 3289 | |
| 3290 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 3291 | |
| 3219 | 3292 | ROM_REGION( 0x30000, "gfx1", ROMREGION_ERASEFF ) |
| 3220 | 3293 | ROM_LOAD24_BYTE("fix0.u0524", 0x000001, 0x10000, CRC(8bc080be) SHA1(ad296fb98242c963072346a8de289e704b445ad4) ) |
| 3221 | 3294 | ROM_LOAD24_BYTE("fix1.u0518", 0x000000, 0x10000, CRC(bded85e7) SHA1(ccb8c438ce6b9a742e3ab15be970b1e636783626) ) |
| r23471 | r23472 | |
| 3245 | 3318 | ROM_LOAD32_BYTE( "prg2(__rfjett).u0221", 0x000002, 0x080000, CRC(21c9942e) SHA1(ededa05a4b5dae2dec5c4409f22e9a66d2c8e98e) ) |
| 3246 | 3319 | ROM_LOAD32_BYTE( "prg3(__rfjett).u0220", 0x000003, 0x080000, CRC(ea3657f4) SHA1(2291e31243af7d2e79ae727d9b5484e8d49cc7d9) ) |
| 3247 | 3320 | |
| 3321 | ROM_REGION( 0x40000, "audiocpu", ROMREGION_ERASE00 ) /* 256K RAM, ROM from Z80 point-of-view */ |
| 3322 | |
| 3248 | 3323 | ROM_REGION( 0x30000, "gfx1", ROMREGION_ERASEFF ) |
| 3249 | 3324 | ROM_LOAD24_BYTE("fix0.u0524", 0x000001, 0x10000, CRC(8bc080be) SHA1(ad296fb98242c963072346a8de289e704b445ad4) ) |
| 3250 | 3325 | ROM_LOAD24_BYTE("fix1.u0518", 0x000000, 0x10000, CRC(bded85e7) SHA1(ccb8c438ce6b9a742e3ab15be970b1e636783626) ) |
| r23471 | r23472 | |
| 3282 | 3357 | ROM_LOAD32_BYTE("rfj-08.u0265", 0x000002, 0x80000, CRC(ab6d724b) SHA1(ef7e42b1bf649a354fe22b0edd00475ced4151be) ) /* PRG2 */ |
| 3283 | 3358 | ROM_LOAD32_BYTE("rfj-09.u0264", 0x000003, 0x80000, CRC(b119a67c) SHA1(4fa7dd0e86a3f7c6efa6ae9cf72991b652c877b9) ) /* PRG3 */ |
| 3284 | 3359 | |
| 3360 | ROM_REGION( 0x40000, "audiocpu", 0 ) /* 256K ROM for the Z80 */ |
| 3361 | ROM_LOAD("rfj-05.u091", 0x000000, 0x40000, CRC(a55e8799) SHA1(5d4ca9ae920ab54e23ee3b1b33db72711e744516) ) /* ZPRG */ |
| 3362 | |
| 3285 | 3363 | ROM_REGION( 0x30000, "gfx1", ROMREGION_ERASEFF ) |
| 3286 | 3364 | ROM_LOAD24_BYTE("rfj-01.u0524", 0x000001, 0x10000, CRC(8bc080be) SHA1(ad296fb98242c963072346a8de289e704b445ad4) ) /* FIX0 */ |
| 3287 | 3365 | ROM_LOAD24_BYTE("rfj-02.u0518", 0x000000, 0x10000, CRC(bded85e7) SHA1(ccb8c438ce6b9a742e3ab15be970b1e636783626) ) /* FIX1 */ |
| r23471 | r23472 | |
| 3300 | 3378 | |
| 3301 | 3379 | ROM_REGION32_LE( 0xa00000, "sound01", ROMREGION_ERASE00 ) |
| 3302 | 3380 | |
| 3303 | | ROM_REGION( 0x40000, "audiocpu", 0 ) /* 256k for the Z80 */ |
| 3304 | | ROM_LOAD("rfj-05.u091", 0x000000, 0x40000, CRC(a55e8799) SHA1(5d4ca9ae920ab54e23ee3b1b33db72711e744516) ) /* ZPRG */ |
| 3305 | | |
| 3306 | 3381 | ROM_REGION( 0x280000, "ymf", ROMREGION_ERASE00 ) /* sound roms */ |
| 3307 | 3382 | ROM_LOAD("pcm-d.u0103", 0x000000, 0x200000, CRC(8ee3ff45) SHA1(2801b23495866c91c8f8bebd37d5fcae7a625838) ) |
| 3308 | 3383 | ROM_LOAD("rfj-04.u0107", 0x200000, 0x080000, CRC(c050da03) SHA1(1002dac51a3a4932c4f0074c1f3d97a597d98755) ) /* SOUND1 */ |
| r23471 | r23472 | |
| 3315 | 3390 | ROM_LOAD32_BYTE("rfj-08(__rfjetsa).u0265", 0x000002, 0x80000, CRC(1f5dd06c) SHA1(6f5a8c9035971a470212cd0a89b94181011602c3) ) /* PRG2 */ |
| 3316 | 3391 | ROM_LOAD32_BYTE("rfj-09(__rfjetsa).u0264", 0x000003, 0x80000, CRC(cc71c402) SHA1(b040e600744e7b3f52de0fa852ce3ae08ae49985) ) /* PRG3 */ |
| 3317 | 3392 | |
| 3393 | ROM_REGION( 0x40000, "audiocpu", 0 ) /* 256K ROM for the Z80 */ |
| 3394 | ROM_LOAD("rfj-05.u091", 0x000000, 0x40000, CRC(a55e8799) SHA1(5d4ca9ae920ab54e23ee3b1b33db72711e744516) ) /* ZPRG */ |
| 3395 | |
| 3318 | 3396 | ROM_REGION( 0x30000, "gfx1", ROMREGION_ERASEFF ) |
| 3319 | 3397 | ROM_LOAD24_BYTE("rfj-01.u0524", 0x000001, 0x10000, CRC(8bc080be) SHA1(ad296fb98242c963072346a8de289e704b445ad4) ) /* FIX0 */ |
| 3320 | 3398 | ROM_LOAD24_BYTE("rfj-02.u0518", 0x000000, 0x10000, CRC(bded85e7) SHA1(ccb8c438ce6b9a742e3ab15be970b1e636783626) ) /* FIX1 */ |
| r23471 | r23472 | |
| 3333 | 3411 | |
| 3334 | 3412 | ROM_REGION32_LE( 0xa00000, "sound01", ROMREGION_ERASE00 ) |
| 3335 | 3413 | |
| 3336 | | ROM_REGION( 0x40000, "audiocpu", 0 ) /* 256k for the Z80 */ |
| 3337 | | ROM_LOAD("rfj-05.u091", 0x000000, 0x40000, CRC(a55e8799) SHA1(5d4ca9ae920ab54e23ee3b1b33db72711e744516) ) /* ZPRG */ |
| 3338 | | |
| 3339 | 3414 | ROM_REGION( 0x280000, "ymf", ROMREGION_ERASE00 ) /* sound roms */ |
| 3340 | 3415 | ROM_LOAD("pcm-d.u0103", 0x000000, 0x200000, CRC(8ee3ff45) SHA1(2801b23495866c91c8f8bebd37d5fcae7a625838) ) |
| 3341 | 3416 | ROM_LOAD("rfj-04.u0107", 0x200000, 0x080000, CRC(c050da03) SHA1(1002dac51a3a4932c4f0074c1f3d97a597d98755) ) /* SOUND1 */ |
| r23471 | r23472 | |
| 3501 | 3576 | GAME( 1996, rdfts, rdft, sxx2e, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu (Explorer System Corp. license)", "Raiden Fighters (Single Board)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 3502 | 3577 | |
| 3503 | 3578 | /* SXX2F */ |
| 3504 | | GAME( 1997, rdft2us, rdft2, sxx2f, spi_2button, seibuspi_state, rdft2us, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden Fighters 2.1 (US, Single Board)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) // title screen shows '2.1' |
| 3579 | GAME( 1997, rdft2us, rdft2, sxx2f, spi_2button, seibuspi_state, rdft2, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden Fighters 2.1 (US, Single Board)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) // title screen shows '2.1' |
| 3505 | 3580 | |
| 3506 | 3581 | /* SXX2G */ |
| 3507 | 3582 | GAME( 1999, rfjets, rfjet, sxx2g, spi_2button, seibuspi_state, rfjet, ROT270, "Seibu Kaihatsu", "Raiden Fighters Jet (Single Board, set 1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) // has 1998-99 copyright + planes unlocked |
| 3508 | 3583 | GAME( 1999, rfjetsa, rfjet, sxx2g, spi_2button, seibuspi_state, rfjet, ROT270, "Seibu Kaihatsu", "Raiden Fighters Jet (Single Board, set 2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) // has 1998-99 copyright + planes unlocked |
| 3509 | 3584 | |
| 3510 | 3585 | /* SYS386 */ |
| 3511 | | GAME( 2000, rdft22kc, rdft2, seibu386, seibu386_2button, seibuspi_state, rdft22kc, ROT270, "Seibu Kaihatsu", "Raiden Fighters 2 - 2000 (China)", GAME_IMPERFECT_GRAPHICS ) |
| 3512 | | GAME( 2000, rfjet2kc, rfjet, seibu386, seibu386_2button, seibuspi_state, rfjet2k, ROT270, "Seibu Kaihatsu", "Raiden Fighters Jet - 2000 (China)", GAME_IMPERFECT_GRAPHICS ) |
| 3586 | GAME( 2000, rdft22kc, rdft2, seibu386, seibu386_2button, seibuspi_state, rdft2, ROT270, "Seibu Kaihatsu", "Raiden Fighters 2 - 2000 (China)", GAME_IMPERFECT_GRAPHICS ) |
| 3587 | GAME( 2000, rfjet2kc, rfjet, seibu386, seibu386_2button, seibuspi_state, rfjet, ROT270, "Seibu Kaihatsu", "Raiden Fighters Jet - 2000 (China)", GAME_IMPERFECT_GRAPHICS ) |
| 3513 | 3588 | |
| 3514 | 3589 | /* SYS386F V2.0 */ |
| 3515 | 3590 | GAME( 1999, ejsakura, 0, sys386f2, spi_ejsakura, seibuspi_state, sys386f2, ROT0, "Seibu Kaihatsu", "E-Jan Sakurasou (v2.0)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |