| Previous | 199869 Revisions | Next |
| r33338 Tuesday 11th November, 2014 at 07:58:58 UTC by Miodrag Milanović |
|---|
| Merge pull request #45 from shattered/_8305c14 ec1842: skeleton |
| [hash] | sms.xml |
| [src/emu] | tilemap.h |
| [src/emu/cpu/tms0980] | tms0980.c |
| [src/emu/cpu/upd7810] | upd7810.c |
| [src/emu/imagedev] | floppy.c floppy.h |
| [src/emu/machine] | i6300esb.c i82875p.c i82875p.h pci.c pci.h |
| [src/mame] | mame.lst |
| [src/mame/drivers] | dec8.c fitfight.c groundfx.c gunbustr.c homedata.c megadrvb.c peplus.c phoenix.c taito_l.c undrfire.c |
| [src/mame/includes] | gunbustr.h |
| [src/mame/video] | groundfx.c undrfire.c |
| [src/mess] | mess.mak |
| [src/mess/drivers] | comp4.c merlin.c pc.c pcd.c* wizatron.c |
| r241849 | r241850 | |
|---|---|---|
| 4100 | 4100 | <description>NBA Jam (Euro, Prototype)</description> |
| 4101 | 4101 | <year>1994</year> |
| 4102 | 4102 | <publisher>Acclaim</publisher> |
| 4103 | <info name="usage" value="Only runs with certain drivers, e.g. smsj - others show SOFTWARE ERROR" /> | |
| 4103 | 4104 | <part name="cart" interface="sms_cart"> |
| 4104 | 4105 | <dataarea name="rom" size="524288"> |
| 4105 | 4106 | <rom name="nba jam [proto].bin" size="524288" crc="332a847d" sha1="690addaea2b5f9b8d1c8788540ec7f695b396ff8" offset="000000" status="baddump"/> |
| r241849 | r241850 | |
|---|---|---|
| 12 | 12 | ---------+-----------+----------+--------+--------+--------|---------- |
| 13 | 13 | tms0970 | 1024 * 8 | 64 * 4 | | | | tms0972 |
| 14 | 14 | tms0920* | 511?* 9 | 40 * 5 | | | | tmc0921 |
| 15 | tms0980 | 2048 * 9 | 64 * 9 | |
| 15 | tms0980 | 2048 * 9 | 64 * 9 | | | | tmc0981 | |
| 16 | 16 | tms1000 | 1024 * 8 | 64 * 4 | 11 | 8 | 4 | tms1001 |
| 17 | 17 | tms1040* | 1024 * 8 | 64 * 4 | | | | tms1043 |
| 18 | 18 | tms1070 | 1024 * 8 | 64 * 4 | 11 | 8 | 4 | tms1071 |
| r241849 | r241850 | |
| 421 | 421 | ADDRESS_MAP_END |
| 422 | 422 | |
| 423 | 423 | |
| 424 | static ADDRESS_MAP_START(data_6 | |
| 424 | static ADDRESS_MAP_START(data_64x4, AS_DATA, 8, tms1xxx_cpu_device) | |
| 425 | 425 | AM_RANGE( 0x00, 0x3f ) AM_RAM |
| 426 | 426 | ADDRESS_MAP_END |
| 427 | 427 | |
| 428 | 428 | |
| 429 | static ADDRESS_MAP_START(data_ | |
| 429 | static ADDRESS_MAP_START(data_128x4, AS_DATA, 8, tms1xxx_cpu_device) | |
| 430 | 430 | AM_RANGE( 0x00, 0x7f ) AM_RAM |
| 431 | 431 | ADDRESS_MAP_END |
| 432 | 432 | |
| 433 | 433 | |
| 434 | static ADDRESS_MAP_START(data_64x9_as4, AS_DATA, 8, tms1xxx_cpu_device) | |
| 435 | AM_RANGE( 0x00, 0x8f ) AM_RAM | |
| 436 | AM_RANGE( 0x90, 0xff ) AM_NOP | |
| 437 | ADDRESS_MAP_END | |
| 438 | ||
| 439 | ||
| 434 | 440 | void tms1xxx_cpu_device::device_start() |
| 435 | 441 | { |
| 436 | 442 | m_program = &space( AS_PROGRAM ); |
| r241849 | r241850 | |
| 625 | 631 | or321 = OR of pc5 and pc6, i.e. output is true if ((pc&0x60) != 0) |
| 626 | 632 | nand322 = NAND of pc0 through pc5 plus /pc6, |
| 627 | 633 | i.e. output is true if (pc != 0x3f) |
| 628 | nand325 = nand | |
| 634 | nand325 = nand of nand323, or321 and nand322 | |
| 629 | 635 | This one is complex: |
| 630 | 636 | / or321 means if pc&0x60 is zero, output MUST be true |
| 631 | 637 | \ nand323 means if (pc&0x60=0x60) && (pc&0x1f != 0x1f), output MUST be true |
| r241849 | r241850 | |
| 641 | 647 | UINT8 xorval = ( m_pc & 0x3F ) == 0x3F ? 1 : 0; |
| 642 | 648 | UINT8 new_bit = ( ( m_pc ^ ( m_pc << 1 ) ) & 0x40 ) ? xorval : 1 - xorval; |
| 643 | 649 | |
| 644 | m_pc = ( | |
| 650 | m_pc = ((m_pc << 1) | new_bit) & ((1 << m_pc_size) - 1); | |
| 645 | 651 | } |
| 646 | 652 | else |
| 647 | 653 | { |
| r241849 | r241850 | |
| 1020 | 1026 | |
| 1021 | 1027 | tms0980_cpu_device::tms0980_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 1022 | 1028 | : tms1xxx_cpu_device( mconfig, TMS0980, "TMS0980", tag, owner, clock, tms0980_decode, 0x00ff, 0x07ff, 7, 9, 4 |
| 1023 | , 12, ADDRESS_MAP_NAME( program_11bit_9 ), | |
| 1029 | , 12, ADDRESS_MAP_NAME( program_11bit_9 ), 8, ADDRESS_MAP_NAME( data_64x9_as4 ), "tms0980", __FILE__) | |
| 1024 | 1030 | { |
| 1025 | 1031 | } |
| 1026 | 1032 | |
| r241849 | r241850 | |
| 1034 | 1040 | |
| 1035 | 1041 | tms1000_cpu_device::tms1000_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 1036 | 1042 | : tms1xxx_cpu_device( mconfig, TMS1000, "TMS1000", tag, owner, clock, tms1000_default_decode, 0x00ff, 0x07ff, 6, 8, 2 |
| 1037 | , 10, ADDRESS_MAP_NAME( program_10bit_8 ), 6, ADDRESS_MAP_NAME( data_6 | |
| 1043 | , 10, ADDRESS_MAP_NAME( program_10bit_8 ), 6, ADDRESS_MAP_NAME( data_64x4 ), "tms1000", __FILE__) | |
| 1038 | 1044 | { |
| 1039 | 1045 | } |
| 1040 | 1046 | |
| 1041 | 1047 | |
| 1042 | 1048 | tms1000_cpu_device::tms1000_cpu_device(const machine_config &mconfig, device_type type, const char*name, const char *tag, device_t *owner, UINT32 clock, UINT16 o_mask, UINT16 r_mask, const char *shortname, const char *source) |
| 1043 | 1049 | : tms1xxx_cpu_device( mconfig, type, name, tag, owner, clock, tms1000_default_decode, o_mask, r_mask, 6, 8, 2 |
| 1044 | , 10, ADDRESS_MAP_NAME( program_10bit_8 ), 6, ADDRESS_MAP_NAME( data_6 | |
| 1050 | , 10, ADDRESS_MAP_NAME( program_10bit_8 ), 6, ADDRESS_MAP_NAME( data_64x4 ), shortname, source ) | |
| 1045 | 1051 | { |
| 1046 | 1052 | } |
| 1047 | 1053 | |
| r241849 | r241850 | |
| 1078 | 1084 | |
| 1079 | 1085 | tms1100_cpu_device::tms1100_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 1080 | 1086 | : tms1xxx_cpu_device( mconfig, TMS1100, "TMS1100", tag, owner, clock, tms1100_default_decode, 0x00ff, 0x07ff, 6, 8, 3 |
| 1081 | , 11, ADDRESS_MAP_NAME( program_11bit_8 ), 7, ADDRESS_MAP_NAME( data_ | |
| 1087 | , 11, ADDRESS_MAP_NAME( program_11bit_8 ), 7, ADDRESS_MAP_NAME( data_128x4 ), "tms1100", __FILE__ ) | |
| 1082 | 1088 | { |
| 1083 | 1089 | } |
| 1084 | 1090 | |
| 1085 | 1091 | |
| 1086 | 1092 | tms1100_cpu_device::tms1100_cpu_device(const machine_config &mconfig, device_type type, const char*name, const char *tag, device_t *owner, UINT32 clock, UINT16 o_mask, UINT16 r_mask, const char *shortname, const char *source) |
| 1087 | 1093 | : tms1xxx_cpu_device( mconfig, type, name, tag, owner, clock, tms1100_default_decode, o_mask, r_mask, 6, 8, 3 |
| 1088 | , 11, ADDRESS_MAP_NAME( program_11bit_8 ), 7, ADDRESS_MAP_NAME( data_ | |
| 1094 | , 11, ADDRESS_MAP_NAME( program_11bit_8 ), 7, ADDRESS_MAP_NAME( data_128x4 ), shortname, source ) | |
| 1089 | 1095 | { |
| 1090 | 1096 | } |
| 1091 | 1097 |
| r241849 | r241850 | |
|---|---|---|
| 1991 | 1991 | switch (irqline) { |
| 1992 | 1992 | case INPUT_LINE_NMI: |
| 1993 | 1993 | /* NMI is falling edge sensitive */ |
| 1994 | if ( m_nmi == | |
| 1994 | if ( m_nmi == CLEAR_LINE && state == ASSERT_LINE ) | |
| 1995 | 1995 | IRR |= INTNMI; |
| 1996 | 1996 | |
| 1997 | 1997 | m_nmi = state; |
| r241849 | r241850 | |
| 2005 | 2005 | break; |
| 2006 | 2006 | case UPD7810_INTF2: |
| 2007 | 2007 | /* INT2 is falling edge sensitive */ |
| 2008 | if ( m_int2 == ASSERT_LINE && state == CLEAR_LINE ) | |
| 2008 | /* we store the physical state (inverse of the logical state) */ | |
| 2009 | /* to keep the handling of port C consistent with the upd7801 */ | |
| 2010 | if ( (!m_int2) == CLEAR_LINE && state == ASSERT_LINE ) | |
| 2009 | 2011 | IRR |= INTF2; |
| 2010 | 2012 | |
| 2011 | m_int2 = state; | |
| 2013 | m_int2 = !state; | |
| 2012 | 2014 | break; |
| 2013 | 2015 | default: |
| 2014 | 2016 | logerror("upd7810_set_irq_line invalid irq line #%d\n", irqline); |
| r241849 | r241850 | |
|---|---|---|
| 93 | 93 | const device_type SONY_OA_D32W = &device_creator<sony_oa_d32w>; |
| 94 | 94 | const device_type SONY_OA_D32V = &device_creator<sony_oa_d32v>; |
| 95 | 95 | |
| 96 | // teac 5.25" drives | |
| 97 | #if 0 | |
| 98 | const device_type TEAC_FD_55A = &device_creator<teac_fd_55a>; | |
| 99 | const device_type TEAC_FD_55B = &device_creator<teac_fd_55b>; | |
| 100 | const device_type TEAC_FD_55E = &device_creator<teac_fd_55e>; | |
| 101 | #endif | |
| 102 | const device_type TEAC_FD_55F = &device_creator<teac_fd_55f>; | |
| 103 | const device_type TEAC_FD_55G = &device_creator<teac_fd_55g>; | |
| 104 | ||
| 96 | 105 | // ALPS 5.25" drives |
| 97 | 106 | const device_type ALPS_3255190x = &device_creator<alps_3255190x>; |
| 98 | 107 | |
| r241849 | r241850 | |
| 1762 | 1771 | variants[var_count++] = floppy_image::SSDD; |
| 1763 | 1772 | } |
| 1764 | 1773 | |
| 1774 | //------------------------------------------------- | |
| 1775 | // teac fd-55f | |
| 1776 | // | |
| 1777 | // track to track: 3 ms | |
| 1778 | // average: 94 ms | |
| 1779 | // setting time: 15 ms | |
| 1780 | // motor start time: 400 ms | |
| 1781 | // | |
| 1782 | //------------------------------------------------- | |
| 1765 | 1783 | |
| 1784 | teac_fd_55f::teac_fd_55f(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : | |
| 1785 | floppy_image_device(mconfig, TEAC_FD_55F, "TEAC FD-55F FDD", tag, owner, clock, "teac_fd_55f", __FILE__) | |
| 1786 | { | |
| 1787 | } | |
| 1788 | ||
| 1789 | teac_fd_55f::~teac_fd_55f() | |
| 1790 | { | |
| 1791 | } | |
| 1792 | ||
| 1793 | void teac_fd_55f::setup_characteristics() | |
| 1794 | { | |
| 1795 | form_factor = floppy_image::FF_525; | |
| 1796 | tracks = 80; | |
| 1797 | sides = 2; | |
| 1798 | set_rpm(300); | |
| 1799 | } | |
| 1800 | ||
| 1801 | void teac_fd_55f::handled_variants(UINT32 *variants, int &var_count) const | |
| 1802 | { | |
| 1803 | var_count = 0; | |
| 1804 | variants[var_count++] = floppy_image::SSSD; | |
| 1805 | variants[var_count++] = floppy_image::SSDD; | |
| 1806 | variants[var_count++] = floppy_image::SSQD; | |
| 1807 | variants[var_count++] = floppy_image::DSSD; | |
| 1808 | variants[var_count++] = floppy_image::DSDD; | |
| 1809 | variants[var_count++] = floppy_image::DSQD; | |
| 1810 | } | |
| 1811 | ||
| 1766 | 1812 | //------------------------------------------------- |
| 1813 | // teac fd-55g | |
| 1814 | // | |
| 1815 | // track to track: 3 ms | |
| 1816 | // average: 91 ms | |
| 1817 | // setting time: 15 ms | |
| 1818 | // motor start time: 400 ms | |
| 1819 | // | |
| 1820 | //------------------------------------------------- | |
| 1821 | ||
| 1822 | teac_fd_55g::teac_fd_55g(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : | |
| 1823 | floppy_image_device(mconfig, TEAC_FD_55G, "TEAC FD-55G FDD", tag, owner, clock, "teac_fd_55g", __FILE__) | |
| 1824 | { | |
| 1825 | } | |
| 1826 | ||
| 1827 | teac_fd_55g::~teac_fd_55g() | |
| 1828 | { | |
| 1829 | } | |
| 1830 | ||
| 1831 | void teac_fd_55g::setup_characteristics() | |
| 1832 | { | |
| 1833 | form_factor = floppy_image::FF_525; | |
| 1834 | tracks = 77; | |
| 1835 | sides = 2; | |
| 1836 | set_rpm(360); | |
| 1837 | } | |
| 1838 | ||
| 1839 | void teac_fd_55g::handled_variants(UINT32 *variants, int &var_count) const | |
| 1840 | { | |
| 1841 | var_count = 0; | |
| 1842 | variants[var_count++] = floppy_image::SSSD; | |
| 1843 | variants[var_count++] = floppy_image::SSDD; | |
| 1844 | variants[var_count++] = floppy_image::SSQD; | |
| 1845 | variants[var_count++] = floppy_image::DSDD; | |
| 1846 | variants[var_count++] = floppy_image::DSQD; | |
| 1847 | variants[var_count++] = floppy_image::DSHD; | |
| 1848 | } | |
| 1849 | ||
| 1850 | //------------------------------------------------- | |
| 1767 | 1851 | // ALPS 32551901 (black) / 32551902 (brown) |
| 1768 | 1852 | // |
| 1769 | 1853 | // used in the Commodoere 1541 disk drive |
| r241849 | r241850 | |
|---|---|---|
| 239 | 239 | DECLARE_FLOPPY_IMAGE_DEVICE(sony_oa_d31v, "floppy_3_5") |
| 240 | 240 | DECLARE_FLOPPY_IMAGE_DEVICE(sony_oa_d32w, "floppy_3_5") |
| 241 | 241 | DECLARE_FLOPPY_IMAGE_DEVICE(sony_oa_d32v, "floppy_3_5") |
| 242 | DECLARE_FLOPPY_IMAGE_DEVICE(teac_fd_55f, "floppy_5_25") | |
| 243 | DECLARE_FLOPPY_IMAGE_DEVICE(teac_fd_55g, "floppy_5_25") | |
| 242 | 244 | DECLARE_FLOPPY_IMAGE_DEVICE(alps_3255190x, "floppy_5_25") |
| 243 | 245 | |
| 244 | 246 | |
| r241849 | r241850 | |
| 288 | 290 | extern const device_type SONY_OA_D31V; |
| 289 | 291 | extern const device_type SONY_OA_D32W; |
| 290 | 292 | extern const device_type SONY_OA_D32V; |
| 293 | extern const device_type TEAC_FD_55F; | |
| 294 | extern const device_type TEAC_FD_55G; | |
| 291 | 295 | extern const device_type ALPS_3255190x; |
| 292 | 296 | |
| 293 | 297 | #endif /* FLOPPY_H */ |
| r241849 | r241850 | |
|---|---|---|
| 71 | 71 | lpc_if_sound_range = 0x00; |
| 72 | 72 | fwh_dec_en1 = 0xff; |
| 73 | 73 | gen1_dec = 0x0000; |
| 74 | lpc_en = 0x | |
| 74 | lpc_en = 0x0000; | |
| 75 | 75 | fwh_sel1 = 0x00112233; |
| 76 | 76 | } |
| 77 | 77 | |
| r241849 | r241850 | |
| 85 | 85 | COMBINE_DATA(&gpio_base); |
| 86 | 86 | gpio_base &= 0x0000ffc0; |
| 87 | 87 | logerror("%s: gpio_base = %08x\n", tag(), gpio_base); |
| 88 | remap_cb(); | |
| 88 | 89 | } |
| 89 | 90 | |
| 90 | 91 | READ8_MEMBER (i6300esb_lpc_device::gpio_cntl_r) |
| r241849 | r241850 | |
| 96 | 97 | { |
| 97 | 98 | COMBINE_DATA(&gpio_cntl); |
| 98 | 99 | logerror("%s: gpio_cntl = %02x\n", tag(), gpio_cntl); |
| 100 | remap_cb(); | |
| 99 | 101 | } |
| 100 | 102 | |
| 101 | 103 | READ8_MEMBER (i6300esb_lpc_device::lpc_if_com_range_r) |
| r241849 | r241850 | |
| 107 | 109 | { |
| 108 | 110 | COMBINE_DATA(&lpc_if_com_range); |
| 109 | 111 | logerror("%s: lpc_if_com_range = %02x\n", tag(), lpc_if_com_range); |
| 112 | remap_cb(); | |
| 110 | 113 | } |
| 111 | 114 | |
| 112 | 115 | READ8_MEMBER (i6300esb_lpc_device::lpc_if_fdd_lpt_range_r) |
| r241849 | r241850 | |
| 118 | 121 | { |
| 119 | 122 | COMBINE_DATA(&lpc_if_fdd_lpt_range); |
| 120 | 123 | logerror("%s: lpc_if_fdd_lpt_range = %02x\n", tag(), lpc_if_fdd_lpt_range); |
| 124 | remap_cb(); | |
| 121 | 125 | } |
| 122 | 126 | |
| 123 | 127 | READ8_MEMBER (i6300esb_lpc_device::lpc_if_sound_range_r) |
| r241849 | r241850 | |
| 129 | 133 | { |
| 130 | 134 | COMBINE_DATA(&lpc_if_sound_range); |
| 131 | 135 | logerror("%s: lpc_if_sound_range = %02x\n", tag(), lpc_if_sound_range); |
| 136 | remap_cb(); | |
| 132 | 137 | } |
| 133 | 138 | |
| 134 | 139 | READ8_MEMBER (i6300esb_lpc_device::fwh_dec_en1_r) |
| r241849 | r241850 | |
| 140 | 145 | { |
| 141 | 146 | fwh_dec_en1 = data | 0x80; |
| 142 | 147 | logerror("%s: fwh_dec_en1 = %02x\n", tag(), fwh_dec_en1); |
| 148 | remap_cb(); | |
| 143 | 149 | } |
| 144 | 150 | |
| 145 | 151 | READ16_MEMBER (i6300esb_lpc_device::gen1_dec_r) |
| r241849 | r241850 | |
| 151 | 157 | { |
| 152 | 158 | COMBINE_DATA(&gen1_dec); |
| 153 | 159 | logerror("%s: gen1_dec = %04x\n", tag(), gen1_dec); |
| 160 | remap_cb(); | |
| 154 | 161 | } |
| 155 | 162 | |
| 156 | 163 | READ16_MEMBER (i6300esb_lpc_device::lpc_en_r) |
| r241849 | r241850 | |
| 162 | 169 | { |
| 163 | 170 | COMBINE_DATA(&lpc_en); |
| 164 | 171 | logerror("%s: lpc_en = %04x\n", tag(), lpc_en); |
| 172 | remap_cb(); | |
| 165 | 173 | } |
| 166 | 174 | |
| 167 | 175 | READ32_MEMBER (i6300esb_lpc_device::fwh_sel1_r) |
| r241849 | r241850 | |
| 173 | 181 | { |
| 174 | 182 | COMBINE_DATA(&fwh_sel1); |
| 175 | 183 | logerror("%s: fwh_sel1 = %08x\n", tag(), fwh_sel1); |
| 184 | remap_cb(); | |
| 176 | 185 | } |
| 177 | 186 | |
| 178 | 187 | READ32_MEMBER (i6300esb_lpc_device::unk_fc_r) |
| r241849 | r241850 | |
|---|---|---|
| 6 | 6 | DEVICE_ADDRESS_MAP_START(agp_translation_map, 32, i82875p_host_device) |
| 7 | 7 | ADDRESS_MAP_END |
| 8 | 8 | |
| 9 | DEVICE_ADDRESS_MAP_START(config_map, 32, i82875p_host_device) | |
| 10 | AM_RANGE(0x50, 0x53) AM_READWRITE8 (agpm_r, agpm_w, 0x0000ff00) | |
| 11 | AM_RANGE(0x50, 0x53) AM_READ8 (gc_r, 0x00ff0000) | |
| 12 | AM_RANGE(0x50, 0x53) AM_READ8 (csabcont_r, 0xff000000) | |
| 13 | AM_RANGE(0x58, 0x5b) AM_READ (eap_r) | |
| 14 | AM_RANGE(0x5c, 0x5f) AM_READ8 (derrsyn_r, 0x000000ff) | |
| 15 | AM_RANGE(0x5c, 0x5f) AM_READ8 (des_r, 0x0000ff00) | |
| 16 | AM_RANGE(0x60, 0x63) AM_READWRITE8 (fpllcont_r, fpllcont_w, 0x000000ff) | |
| 17 | AM_RANGE(0x90, 0x97) AM_READWRITE8 (pam_r, pam_w, 0xffffffff) | |
| 18 | AM_RANGE(0x9c, 0x9f) AM_READWRITE8 (smram_r, smram_w, 0x0000ff00) | |
| 19 | AM_RANGE(0x9c, 0x9f) AM_READWRITE8 (esmramc_r, esmramc_w, 0x00ff0000) | |
| 20 | AM_RANGE(0xa0, 0xa3) AM_READ (acapid_r) | |
| 21 | AM_RANGE(0xa4, 0xa7) AM_READ (agpstat_r) | |
| 22 | AM_RANGE(0xa8, 0xab) AM_READ (agpcmd_r) | |
| 23 | AM_RANGE(0xb0, 0xb3) AM_READWRITE (agpctrl_r, agpctrl_w) | |
| 24 | AM_RANGE(0xb4, 0xb7) AM_READWRITE8 (apsize_r, apsize_w, 0x000000ff) | |
| 25 | AM_RANGE(0xb8, 0xbb) AM_READWRITE (attbase_r, attbase_w) | |
| 26 | AM_RANGE(0xbc, 0xbf) AM_READWRITE8 (amtt_r, amtt_w, 0x000000ff) | |
| 27 | AM_RANGE(0xbc, 0xbf) AM_READWRITE8 (lptt_r, lptt_w, 0x0000ff00) | |
| 28 | AM_RANGE(0xc4, 0xc7) AM_READWRITE16(toud_r, toud_w, 0x0000ffff) | |
| 29 | AM_RANGE(0xc4, 0xc7) AM_READWRITE16(mchcfg_r, mchcfg_w, 0xffff0000) | |
| 30 | AM_RANGE(0xc8, 0xcb) AM_READ16 (errsts_r, 0x0000ffff) | |
| 31 | AM_RANGE(0xc8, 0xcb) AM_READWRITE16(errcmd_r, errcmd_w, 0xffff0000) | |
| 32 | AM_RANGE(0xcc, 0xcf) AM_READWRITE16(smicmd_r, smicmd_w, 0x0000ffff) | |
| 33 | AM_RANGE(0xcc, 0xcf) AM_READWRITE16(scicmd_r, scicmd_w, 0xffff0000) | |
| 34 | AM_RANGE(0xdc, 0xdf) AM_READWRITE16(skpd_r, skpd_w, 0xffff0000) | |
| 35 | AM_RANGE(0xe4, 0xe7) AM_READ (capreg1_r) | |
| 36 | AM_RANGE(0xe8, 0xeb) AM_READ8 (capreg2_r, 0x000000ff) | |
| 37 | ||
| 38 | AM_INHERIT_FROM(pci_host_device::config_map) | |
| 39 | ADDRESS_MAP_END | |
| 40 | ||
| 9 | 41 | i82875p_host_device::i82875p_host_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 10 | 42 | : pci_host_device(mconfig, I82875P_HOST, "i82875p northbridge", tag, owner, clock, "i82875p_host", __FILE__) |
| 11 | 43 | { |
| r241849 | r241850 | |
| 21 | 53 | ram_size = _ram_size; |
| 22 | 54 | } |
| 23 | 55 | |
| 56 | READ8_MEMBER(i82875p_host_device::capptr_r) | |
| 57 | { | |
| 58 | return 0xe4; | |
| 59 | } | |
| 60 | ||
| 24 | 61 | void i82875p_host_device::device_start() |
| 25 | 62 | { |
| 26 | 63 | pci_host_device::device_start(); |
| r241849 | r241850 | |
| 41 | 78 | add_map(256*1024*1024, M_MEM, FUNC(i82875p_host_device::agp_translation_map)); |
| 42 | 79 | } |
| 43 | 80 | |
| 81 | READ8_MEMBER( i82875p_host_device::agpm_r) | |
| 82 | { | |
| 83 | return agpm; | |
| 84 | } | |
| 85 | ||
| 86 | WRITE8_MEMBER( i82875p_host_device::agpm_w) | |
| 87 | { | |
| 88 | agpm = data; | |
| 89 | logerror("%s: agpm = %02x\n", tag(), agpm); | |
| 90 | } | |
| 91 | ||
| 92 | READ8_MEMBER( i82875p_host_device::gc_r) | |
| 93 | { | |
| 94 | return 0x08; | |
| 95 | } | |
| 96 | ||
| 97 | READ8_MEMBER( i82875p_host_device::csabcont_r) | |
| 98 | { | |
| 99 | return 0x00; | |
| 100 | } | |
| 101 | ||
| 102 | READ32_MEMBER( i82875p_host_device::eap_r) | |
| 103 | { | |
| 104 | return 0x00000000; | |
| 105 | } | |
| 106 | ||
| 107 | READ8_MEMBER( i82875p_host_device::derrsyn_r) | |
| 108 | { | |
| 109 | return 0x00; | |
| 110 | } | |
| 111 | ||
| 112 | READ8_MEMBER( i82875p_host_device::des_r) | |
| 113 | { | |
| 114 | return 0x00; | |
| 115 | } | |
| 116 | ||
| 117 | READ8_MEMBER( i82875p_host_device::fpllcont_r) | |
| 118 | { | |
| 119 | return fpllcont; | |
| 120 | } | |
| 121 | ||
| 122 | WRITE8_MEMBER( i82875p_host_device::fpllcont_w) | |
| 123 | { | |
| 124 | fpllcont = data; | |
| 125 | logerror("%s: fpllcont = %02x\n", tag(), data); | |
| 126 | } | |
| 127 | ||
| 128 | READ8_MEMBER( i82875p_host_device::pam_r) | |
| 129 | { | |
| 130 | return pam[offset]; | |
| 131 | } | |
| 132 | ||
| 133 | WRITE8_MEMBER( i82875p_host_device::pam_w) | |
| 134 | { | |
| 135 | pam[offset] = data; | |
| 136 | logerror("%s: pam[%d] = %02x\n", tag(), offset, data); | |
| 137 | remap_cb(); | |
| 138 | } | |
| 139 | ||
| 140 | READ8_MEMBER( i82875p_host_device::smram_r) | |
| 141 | { | |
| 142 | return smram; | |
| 143 | } | |
| 144 | ||
| 145 | WRITE8_MEMBER( i82875p_host_device::smram_w) | |
| 146 | { | |
| 147 | if(!(smram & 0x10)) | |
| 148 | smram = (data & 0xfe) | 0x02; | |
| 149 | logerror("%s: smram = %02x\n", tag(), smram); | |
| 150 | remap_cb(); | |
| 151 | } | |
| 152 | ||
| 153 | READ8_MEMBER( i82875p_host_device::esmramc_r) | |
| 154 | { | |
| 155 | return esmramc; | |
| 156 | } | |
| 157 | ||
| 158 | WRITE8_MEMBER( i82875p_host_device::esmramc_w) | |
| 159 | { | |
| 160 | if(!(smram & 0x10)) | |
| 161 | esmramc = (data & 0x87) | 0x38; | |
| 162 | logerror("%s: esmramc = %02x\n", tag(), smram); | |
| 163 | remap_cb(); | |
| 164 | } | |
| 165 | ||
| 166 | READ32_MEMBER( i82875p_host_device::acapid_r) | |
| 167 | { | |
| 168 | return 0x00300002; | |
| 169 | } | |
| 170 | ||
| 171 | READ32_MEMBER( i82875p_host_device::agpstat_r) | |
| 172 | { | |
| 173 | return 0x1f004a13; | |
| 174 | } | |
| 175 | ||
| 176 | READ32_MEMBER( i82875p_host_device::agpcmd_r) | |
| 177 | { | |
| 178 | return 0x00000a00; | |
| 179 | } | |
| 180 | ||
| 181 | READ32_MEMBER( i82875p_host_device::agpctrl_r) | |
| 182 | { | |
| 183 | return agpctrl; | |
| 184 | } | |
| 185 | ||
| 186 | WRITE32_MEMBER(i82875p_host_device::agpctrl_w) | |
| 187 | { | |
| 188 | COMBINE_DATA(&agpctrl); | |
| 189 | logerror("%s: agpctrl = %08x\n", tag(), agpctrl); | |
| 190 | } | |
| 191 | ||
| 192 | READ8_MEMBER( i82875p_host_device::apsize_r) | |
| 193 | { | |
| 194 | return apsize; | |
| 195 | } | |
| 196 | ||
| 197 | WRITE8_MEMBER( i82875p_host_device::apsize_w) | |
| 198 | { | |
| 199 | apsize = data; | |
| 200 | logerror("%s: apsize = %02x\n", tag(), apsize); | |
| 201 | } | |
| 202 | ||
| 203 | READ32_MEMBER( i82875p_host_device::attbase_r) | |
| 204 | { | |
| 205 | return attbase; | |
| 206 | } | |
| 207 | ||
| 208 | WRITE32_MEMBER(i82875p_host_device::attbase_w) | |
| 209 | { | |
| 210 | COMBINE_DATA(&attbase); | |
| 211 | logerror("%s: attbase = %08x\n", tag(), attbase); | |
| 212 | } | |
| 213 | ||
| 214 | READ8_MEMBER( i82875p_host_device::amtt_r) | |
| 215 | { | |
| 216 | return amtt; | |
| 217 | } | |
| 218 | ||
| 219 | WRITE8_MEMBER( i82875p_host_device::amtt_w) | |
| 220 | { | |
| 221 | amtt = data; | |
| 222 | } | |
| 223 | ||
| 224 | READ8_MEMBER( i82875p_host_device::lptt_r) | |
| 225 | { | |
| 226 | return lptt; | |
| 227 | } | |
| 228 | ||
| 229 | WRITE8_MEMBER( i82875p_host_device::lptt_w) | |
| 230 | { | |
| 231 | lptt = data; | |
| 232 | } | |
| 233 | ||
| 234 | READ16_MEMBER( i82875p_host_device::toud_r) | |
| 235 | { | |
| 236 | return toud; | |
| 237 | } | |
| 238 | ||
| 239 | WRITE16_MEMBER(i82875p_host_device::toud_w) | |
| 240 | { | |
| 241 | COMBINE_DATA(&toud); | |
| 242 | logerror("%s: toud = %08x\n", tag(), 512*toud); | |
| 243 | remap_cb(); | |
| 244 | } | |
| 245 | ||
| 246 | READ16_MEMBER( i82875p_host_device::mchcfg_r) | |
| 247 | { | |
| 248 | return mchcfg; | |
| 249 | } | |
| 250 | ||
| 251 | WRITE16_MEMBER(i82875p_host_device::mchcfg_w) | |
| 252 | { | |
| 253 | COMBINE_DATA(&mchcfg); | |
| 254 | } | |
| 255 | ||
| 256 | READ16_MEMBER( i82875p_host_device::errsts_r) | |
| 257 | { | |
| 258 | return 0x0000; | |
| 259 | } | |
| 260 | ||
| 261 | READ16_MEMBER( i82875p_host_device::errcmd_r) | |
| 262 | { | |
| 263 | return errcmd; | |
| 264 | } | |
| 265 | ||
| 266 | WRITE16_MEMBER(i82875p_host_device::errcmd_w) | |
| 267 | { | |
| 268 | COMBINE_DATA(&errcmd); | |
| 269 | } | |
| 270 | ||
| 271 | READ16_MEMBER( i82875p_host_device::smicmd_r) | |
| 272 | { | |
| 273 | return smicmd; | |
| 274 | } | |
| 275 | ||
| 276 | WRITE16_MEMBER(i82875p_host_device::smicmd_w) | |
| 277 | { | |
| 278 | COMBINE_DATA(&smicmd); | |
| 279 | } | |
| 280 | ||
| 281 | READ16_MEMBER( i82875p_host_device::scicmd_r) | |
| 282 | { | |
| 283 | return scicmd; | |
| 284 | } | |
| 285 | ||
| 286 | WRITE16_MEMBER(i82875p_host_device::scicmd_w) | |
| 287 | { | |
| 288 | COMBINE_DATA(&scicmd); | |
| 289 | } | |
| 290 | ||
| 291 | READ16_MEMBER( i82875p_host_device::skpd_r) | |
| 292 | { | |
| 293 | return skpd; | |
| 294 | } | |
| 295 | ||
| 296 | WRITE16_MEMBER(i82875p_host_device::skpd_w) | |
| 297 | { | |
| 298 | COMBINE_DATA(&skpd); | |
| 299 | } | |
| 300 | ||
| 301 | READ32_MEMBER( i82875p_host_device::capreg1_r) | |
| 302 | { | |
| 303 | return 0x0106a009; | |
| 304 | } | |
| 305 | ||
| 306 | READ8_MEMBER( i82875p_host_device::capreg2_r) | |
| 307 | { | |
| 308 | return 0x00; | |
| 309 | } | |
| 310 | ||
| 44 | 311 | void i82875p_host_device::device_reset() |
| 45 | 312 | { |
| 46 | 313 | pci_host_device::device_reset(); |
| 314 | ||
| 315 | agpm = 0x00; | |
| 316 | fpllcont = 0x00; | |
| 317 | memset(pam, 0, sizeof(pam)); | |
| 318 | smram = 0x02; | |
| 319 | esmramc = 0x38; | |
| 320 | agpctrl = 0x00000000; | |
| 321 | apsize = 0x00; | |
| 322 | attbase = 0x00000000; | |
| 323 | amtt = 0x10; | |
| 324 | lptt = 0x10; | |
| 325 | toud = 0x0400; | |
| 326 | mchcfg = 0x0000; | |
| 327 | errcmd = 0x0000; | |
| 328 | smicmd = 0x0000; | |
| 329 | scicmd = 0x0000; | |
| 330 | skpd = 0x0000; | |
| 47 | 331 | } |
| 48 | 332 | |
| 49 | 333 | void i82875p_host_device::map_extra(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space, |
| 50 | 334 | UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space) |
| 51 | 335 | { |
| 52 | 336 | io_space->install_device(0, 0xffff, *static_cast<pci_host_device *>(this), &pci_host_device::io_configuration_access_map); |
| 337 | ||
| 338 | UINT32 top = toud << 16; | |
| 339 | if(top > ram_size) | |
| 340 | top = ram_size; | |
| 341 | ||
| 342 | memory_space->install_ram (0x00000000, 0x0007ffff, &ram[0x00000000/4]); | |
| 343 | ||
| 344 | if(smram & 0x40) | |
| 345 | memory_space->install_ram (0x000a0000, 0x000bffff, &ram[0x000a0000/4]); | |
| 346 | ||
| 347 | if(pam[1] & 0x01) | |
| 348 | memory_space->install_rom (0x000c0000, 0x000c3fff, &ram[0x000c0000/4]); | |
| 349 | if(pam[1] & 0x02) | |
| 350 | memory_space->install_writeonly(0x000c0000, 0x000c3fff, &ram[0x000c0000/4]); | |
| 351 | if(pam[1] & 0x10) | |
| 352 | memory_space->install_rom (0x000c4000, 0x000c7fff, &ram[0x000c4000/4]); | |
| 353 | if(pam[1] & 0x20) | |
| 354 | memory_space->install_writeonly(0x000c4000, 0x000c7fff, &ram[0x000c4000/4]); | |
| 355 | if(pam[2] & 0x01) | |
| 356 | memory_space->install_rom (0x000c8000, 0x000cbfff, &ram[0x000c8000/4]); | |
| 357 | if(pam[2] & 0x02) | |
| 358 | memory_space->install_writeonly(0x000c8000, 0x000cbfff, &ram[0x000c8000/4]); | |
| 359 | if(pam[2] & 0x10) | |
| 360 | memory_space->install_rom (0x000cc000, 0x000cffff, &ram[0x000cc000/4]); | |
| 361 | if(pam[2] & 0x20) | |
| 362 | memory_space->install_writeonly(0x000cc000, 0x000cffff, &ram[0x000cc000/4]); | |
| 363 | if(pam[3] & 0x01) | |
| 364 | memory_space->install_rom (0x000d0000, 0x000d3fff, &ram[0x000d0000/4]); | |
| 365 | if(pam[3] & 0x02) | |
| 366 | memory_space->install_writeonly(0x000d0000, 0x000d3fff, &ram[0x000d0000/4]); | |
| 367 | if(pam[3] & 0x10) | |
| 368 | memory_space->install_rom (0x000d4000, 0x000d7fff, &ram[0x000d4000/4]); | |
| 369 | if(pam[3] & 0x20) | |
| 370 | memory_space->install_writeonly(0x000d4000, 0x000d7fff, &ram[0x000d4000/4]); | |
| 371 | if(pam[4] & 0x01) | |
| 372 | memory_space->install_rom (0x000d8000, 0x000dbfff, &ram[0x000d8000/4]); | |
| 373 | if(pam[4] & 0x02) | |
| 374 | memory_space->install_writeonly(0x000d8000, 0x000dbfff, &ram[0x000d8000/4]); | |
| 375 | if(pam[4] & 0x10) | |
| 376 | memory_space->install_rom (0x000dc000, 0x000dffff, &ram[0x000dc000/4]); | |
| 377 | if(pam[4] & 0x20) | |
| 378 | memory_space->install_writeonly(0x000dc000, 0x000dffff, &ram[0x000dc000/4]); | |
| 379 | if(pam[5] & 0x01) | |
| 380 | memory_space->install_rom (0x000e0000, 0x000e3fff, &ram[0x000e0000/4]); | |
| 381 | if(pam[5] & 0x02) | |
| 382 | memory_space->install_writeonly(0x000e0000, 0x000e3fff, &ram[0x000e0000/4]); | |
| 383 | if(pam[5] & 0x10) | |
| 384 | memory_space->install_rom (0x000e4000, 0x000e7fff, &ram[0x000e4000/4]); | |
| 385 | if(pam[5] & 0x20) | |
| 386 | memory_space->install_writeonly(0x000e4000, 0x000e7fff, &ram[0x000e4000/4]); | |
| 387 | if(pam[6] & 0x01) | |
| 388 | memory_space->install_rom (0x000e8000, 0x000ebfff, &ram[0x000e8000/4]); | |
| 389 | if(pam[6] & 0x02) | |
| 390 | memory_space->install_writeonly(0x000e8000, 0x000ebfff, &ram[0x000e8000/4]); | |
| 391 | if(pam[6] & 0x10) | |
| 392 | memory_space->install_rom (0x000ec000, 0x000effff, &ram[0x000ec000/4]); | |
| 393 | if(pam[6] & 0x20) | |
| 394 | memory_space->install_writeonly(0x000ec000, 0x000effff, &ram[0x000ec000/4]); | |
| 395 | if(pam[0] & 0x10) | |
| 396 | memory_space->install_rom (0x000f0000, 0x000fffff, &ram[0x000f0000/4]); | |
| 397 | if(pam[0] & 0x20) | |
| 398 | memory_space->install_writeonly(0x000f0000, 0x000fffff, &ram[0x000f0000/4]); | |
| 399 | ||
| 400 | memory_space->install_ram (0x00100000, 0x00efffff, &ram[0x00100000/4]); | |
| 401 | if(!(pam[7] & 0x80)) | |
| 402 | memory_space->install_ram (0x00f00000, 0x00ffffff, &ram[0x00f00000/4]); | |
| 403 | if(top > 0x01000000) | |
| 404 | memory_space->install_ram (0x01000000, top-1, &ram[0x01000000/4]); | |
| 405 | ||
| 406 | if((esmramc & 0x40) && (smram & 0x08)) | |
| 407 | memory_space->install_ram (0xfeda0000, 0xfedbffff, &ram[0x000a0000/4]); | |
| 408 | ||
| 53 | 409 | } |
| 54 | 410 | |
| 55 | 411 |
| r241849 | r241850 | |
|---|---|---|
| 23 | 23 | virtual void map_extra(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space, |
| 24 | 24 | UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space); |
| 25 | 25 | |
| 26 | virtual DECLARE_ADDRESS_MAP(config_map, 32); | |
| 27 | ||
| 28 | virtual DECLARE_READ8_MEMBER(capptr_r); | |
| 29 | ||
| 30 | DECLARE_READ8_MEMBER( agpm_r); | |
| 31 | DECLARE_WRITE8_MEMBER( agpm_w); | |
| 32 | DECLARE_READ8_MEMBER( gc_r); | |
| 33 | DECLARE_READ8_MEMBER( csabcont_r); | |
| 34 | DECLARE_READ32_MEMBER( eap_r); | |
| 35 | DECLARE_READ8_MEMBER( derrsyn_r); | |
| 36 | DECLARE_READ8_MEMBER( des_r); | |
| 37 | DECLARE_READ8_MEMBER( fpllcont_r); | |
| 38 | DECLARE_WRITE8_MEMBER( fpllcont_w); | |
| 39 | DECLARE_READ8_MEMBER( pam_r); | |
| 40 | DECLARE_WRITE8_MEMBER( pam_w); | |
| 41 | DECLARE_READ8_MEMBER( smram_r); | |
| 42 | DECLARE_WRITE8_MEMBER( smram_w); | |
| 43 | DECLARE_READ8_MEMBER( esmramc_r); | |
| 44 | DECLARE_WRITE8_MEMBER( esmramc_w); | |
| 45 | DECLARE_READ32_MEMBER( acapid_r); | |
| 46 | DECLARE_READ32_MEMBER( agpstat_r); | |
| 47 | DECLARE_READ32_MEMBER( agpcmd_r); | |
| 48 | DECLARE_READ32_MEMBER( agpctrl_r); | |
| 49 | DECLARE_WRITE32_MEMBER(agpctrl_w); | |
| 50 | DECLARE_READ8_MEMBER( apsize_r); | |
| 51 | DECLARE_WRITE8_MEMBER( apsize_w); | |
| 52 | DECLARE_READ32_MEMBER( attbase_r); | |
| 53 | DECLARE_WRITE32_MEMBER(attbase_w); | |
| 54 | DECLARE_READ8_MEMBER( amtt_r); | |
| 55 | DECLARE_WRITE8_MEMBER( amtt_w); | |
| 56 | DECLARE_READ8_MEMBER( lptt_r); | |
| 57 | DECLARE_WRITE8_MEMBER( lptt_w); | |
| 58 | DECLARE_READ16_MEMBER( toud_r); | |
| 59 | DECLARE_WRITE16_MEMBER(toud_w); | |
| 60 | DECLARE_READ16_MEMBER( mchcfg_r); | |
| 61 | DECLARE_WRITE16_MEMBER(mchcfg_w); | |
| 62 | DECLARE_READ16_MEMBER( errsts_r); | |
| 63 | DECLARE_READ16_MEMBER( errcmd_r); | |
| 64 | DECLARE_WRITE16_MEMBER(errcmd_w); | |
| 65 | DECLARE_READ16_MEMBER( smicmd_r); | |
| 66 | DECLARE_WRITE16_MEMBER(smicmd_w); | |
| 67 | DECLARE_READ16_MEMBER( scicmd_r); | |
| 68 | DECLARE_WRITE16_MEMBER(scicmd_w); | |
| 69 | DECLARE_READ16_MEMBER( skpd_r); | |
| 70 | DECLARE_WRITE16_MEMBER(skpd_w); | |
| 71 | DECLARE_READ32_MEMBER( capreg1_r); | |
| 72 | DECLARE_READ8_MEMBER( capreg2_r); | |
| 73 | ||
| 26 | 74 | protected: |
| 27 | 75 | virtual void device_start(); |
| 28 | 76 | virtual void device_reset(); |
| r241849 | r241850 | |
| 34 | 82 | int ram_size; |
| 35 | 83 | cpu_device *cpu; |
| 36 | 84 | dynamic_array<UINT32> ram; |
| 85 | ||
| 86 | UINT8 agpm, fpllcont, pam[8], smram, esmramc; | |
| 87 | UINT8 apsize, amtt, lptt; | |
| 88 | UINT16 toud, mchcfg, errsts, errcmd, smicmd, scicmd, skpd; | |
| 89 | UINT32 agpctrl, attbase; | |
| 37 | 90 | }; |
| 38 | 91 | |
| 39 | 92 | class i82875p_agp_device : public agp_bridge_device { |
| r241849 | r241850 | |
|---|---|---|
| 13 | 13 | AM_RANGE(0x0c, 0x0f) AM_READ8 (header_type_r, 0x00ff0000) |
| 14 | 14 | AM_RANGE(0x0c, 0x0f) AM_READ8 (bist_r, 0xff000000) |
| 15 | 15 | |
| 16 | AM_RANGE(0x2c, 0x2f) AM_READ16(subvendor_r, 0x0000ffff) | |
| 17 | AM_RANGE(0x2c, 0x2f) AM_READ16(subsystem_r, 0xffff0000) | |
| 16 | AM_RANGE(0x2c, 0x2f) AM_READ16(subvendor_r, 0x0000ffff) | |
| 17 | AM_RANGE(0x2c, 0x2f) AM_READ16(subsystem_r, 0xffff0000) | |
| 18 | ||
| 19 | AM_RANGE(0x34, 0x37) AM_READ8 (capptr_r, 0x000000ff) | |
| 18 | 20 | ADDRESS_MAP_END |
| 19 | 21 | |
| 20 | 22 | pci_device::pci_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) |
| r241849 | r241850 | |
| 87 | 89 | return subsystem_id; |
| 88 | 90 | } |
| 89 | 91 | |
| 92 | READ8_MEMBER(pci_device::capptr_r) | |
| 93 | { | |
| 94 | return 0x00; | |
| 95 | } | |
| 96 | ||
| 90 | 97 | void pci_device::scan_sub_devices(pci_device **devices, dynamic_array<pci_device *> &all, dynamic_array<pci_device *> &bridges, device_t *root) |
| 91 | 98 | { |
| 92 | 99 | } |
| 93 | 100 | |
| 101 | void pci_device::set_remap_cb(mapper_cb _remap_cb) | |
| 102 | { | |
| 103 | remap_cb = _remap_cb; | |
| 104 | } | |
| 105 | ||
| 94 | 106 | void pci_device::reset_all_mappings() |
| 95 | 107 | { |
| 96 | 108 | } |
| r241849 | r241850 | |
| 163 | 175 | return this; |
| 164 | 176 | } |
| 165 | 177 | |
| 178 | void pci_bridge_device::set_remap_cb(mapper_cb _remap_cb) | |
| 179 | { | |
| 180 | remap_cb = _remap_cb; | |
| 181 | for(int i=0; i != all_devices.count(); i++) | |
| 182 | if(all_devices[i] != this) | |
| 183 | all_devices[i]->set_remap_cb(_remap_cb); | |
| 184 | } | |
| 185 | ||
| 166 | 186 | void pci_bridge_device::device_start() |
| 167 | 187 | { |
| 168 | 188 | pci_device::device_start(); |
| r241849 | r241850 | |
| 179 | 199 | int fct = t[l-1] - '0'; |
| 180 | 200 | sub_devices[(id << 3) | fct] = downcast<pci_device *>(d); |
| 181 | 201 | } |
| 202 | ||
| 203 | mapper_cb cf_cb(FUNC(pci_bridge_device::regenerate_config_mapping), this); | |
| 204 | ||
| 182 | 205 | for(int i=0; i<32*8; i++) |
| 183 | 206 | if(sub_devices[i]) { |
| 184 | 207 | all_devices.append(sub_devices[i]); |
| 185 | 208 | if(sub_devices[i] != this) { |
| 209 | sub_devices[i]->remap_config_cb = cf_cb; | |
| 210 | sub_devices[i]->set_remap_cb(remap_cb); | |
| 186 | 211 | pci_bridge_device *bridge = dynamic_cast<pci_bridge_device *>(sub_devices[i]); |
| 187 | 212 | if(bridge) |
| 188 | 213 | all_bridges.append(bridge); |
| r241849 | r241850 | |
| 262 | 287 | |
| 263 | 288 | void pci_host_device::device_start() |
| 264 | 289 | { |
| 290 | remap_cb = mapper_cb(FUNC(pci_host_device::regenerate_mapping), this); | |
| 291 | ||
| 265 | 292 | pci_bridge_device::device_start(); |
| 266 | 293 | |
| 267 | 294 | memory_window_start = memory_window_end = memory_offset = 0; |
| 268 | 295 | io_window_start = io_window_end = io_offset = 0; |
| 296 | ||
| 297 | for(int i=0; i != all_devices.count(); i++) | |
| 298 | if(all_devices[i] != this) | |
| 299 | all_devices[i]->reset_all_mappings(); | |
| 269 | 300 | } |
| 270 | 301 | |
| 271 | 302 | void pci_host_device::device_reset() |
| r241849 | r241850 | |
|---|---|---|
| 24 | 24 | |
| 25 | 25 | class pci_device : public device_t { |
| 26 | 26 | public: |
| 27 | typedef delegate<void ()> mapper_cb; | |
| 28 | ||
| 29 | mapper_cb remap_cb, remap_config_cb; | |
| 30 | ||
| 27 | 31 | pci_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source); |
| 28 | 32 | |
| 29 | 33 | void set_ids(UINT32 main_id, UINT8 revision, UINT32 pclass, UINT32 subsystem_id); |
| 30 | 34 | |
| 35 | virtual void set_remap_cb(mapper_cb _remap_cb); | |
| 31 | 36 | virtual void reset_all_mappings(); |
| 32 | 37 | virtual void map_device(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space, |
| 33 | 38 | UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space); |
| r241849 | r241850 | |
| 47 | 52 | virtual DECLARE_READ8_MEMBER(bist_r); |
| 48 | 53 | DECLARE_READ16_MEMBER(subvendor_r); |
| 49 | 54 | DECLARE_READ16_MEMBER(subsystem_r); |
| 55 | virtual DECLARE_READ8_MEMBER(capptr_r); | |
| 50 | 56 | |
| 51 | 57 | protected: |
| 52 | 58 | enum { |
| r241849 | r241850 | |
| 87 | 93 | pci_bridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
| 88 | 94 | pci_bridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source); |
| 89 | 95 | |
| 96 | virtual void set_remap_cb(mapper_cb _remap_cb); | |
| 90 | 97 | virtual void map_device(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space, |
| 91 | 98 | UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space); |
| 92 | 99 | virtual void reset_all_mappings(); |
| r241849 | r241850 | |
|---|---|---|
| 443 | 443 | { |
| 444 | 444 | gfx_element *gfx = decoder->gfx(_gfxnum); |
| 445 | 445 | int code = rawcode % gfx->elements(); |
| 446 | assert(rawcolor < gfx->colors()); // TEMPORARY ASSERT | |
| 447 | 446 | pen_data = gfx->get_data(code); |
| 448 | 447 | palette_base = gfx->colorbase() + gfx->granularity() * (rawcolor % gfx->colors()); |
| 449 | 448 | flags = _flags; |
| r241849 | r241850 | |
|---|---|---|
| 3569 | 3569 | DRIVER_INIT_MEMBER(dec8_state,ghostb) |
| 3570 | 3570 | { |
| 3571 | 3571 | UINT8 *ROM = memregion("maincpu")->base(); |
| 3572 | UINT8 *RAM = memregion("proms")->base(); | |
| 3573 | 3572 | |
| 3574 | /* Blank out unused garbage in colour prom to avoid colour overflow */ | |
| 3575 | memset(RAM + 0x20, 0, 0xe0); | |
| 3576 | ||
| 3577 | 3573 | membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x4000); |
| 3578 | 3574 | DRIVER_INIT_CALL(dec8); |
| 3579 | m_palette->update(); | |
| 3580 | 3575 | } |
| 3581 | 3576 | |
| 3582 | 3577 | DRIVER_INIT_MEMBER(dec8_state,meikyuh) |
| 3583 | 3578 | { |
| 3584 | 3579 | UINT8 *ROM = memregion("maincpu")->base(); |
| 3585 | UINT8 *RAM = memregion("proms")->base(); | |
| 3586 | 3580 | |
| 3587 | /* Blank out unused garbage in colour prom to avoid colour overflow */ | |
| 3588 | memset(RAM + 0x20, 0, 0xe0); | |
| 3589 | ||
| 3590 | 3581 | membank("bank1")->configure_entries(0, 12, &ROM[0x10000], 0x4000); |
| 3591 | 3582 | DRIVER_INIT_CALL(dec8); |
| 3592 | m_palette->update(); | |
| 3593 | 3583 | } |
| 3594 | 3584 | |
| 3595 | 3585 | DRIVER_INIT_MEMBER(dec8_state,csilver) |
| r241849 | r241850 | |
|---|---|---|
| 259 | 259 | |
| 260 | 260 | INTERRUPT_GEN_MEMBER(fitfight_state::snd_irq) |
| 261 | 261 | { |
| 262 | device.execute() | |
| 262 | generic_pulse_irq_line(device.execute(), UPD7810_INTF2, 1); | |
| 263 | 263 | } |
| 264 | 264 | |
| 265 | 265 |
| r241849 | r241850 | |
|---|---|---|
| 48 | 48 | |
| 49 | 49 | Ground Effects combines the sprite system used in Taito Z games with |
| 50 | 50 | the TC0480SCP tilemap chip plus some features from the Taito F3 system. |
| 51 | It has an extra tilemap chip which is a dead ringer for the TC0100SCN | |
| 52 | (check the inits), like Under Fire. | |
| 51 | It has an extra TC0620SCC tilemap chip which is a 6bpp version of the | |
| 52 | TC0100SCN (check the inits), like Under Fire. | |
| 53 | 53 | |
| 54 | 54 | Ground Effects is effectively a 30Hz game - though the vblank interrupts |
| 55 | 55 | still come in at 60Hz, the game uses a hardware frame counter to limit |
| r241849 | r241850 | |
| 190 | 190 | AM_RANGE(0x700000, 0x7007ff) AM_RAM AM_SHARE("snd_shared") |
| 191 | 191 | AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, long_r, long_w) /* tilemaps */ |
| 192 | 192 | AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_long_r, ctrl_long_w) // debugging |
| 193 | AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, long_r, long_w) /* p | |
| 193 | AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, long_r, long_w) /* 6bpp tilemaps */ | |
| 194 | 194 | AM_RANGE(0x920000, 0x92000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_long_r, ctrl_long_w) |
| 195 | 195 | AM_RANGE(0xa00000, 0xa0ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") |
| 196 | 196 | AM_RANGE(0xb00000, 0xb003ff) AM_RAM // ?? single bytes, blending ?? |
| r241849 | r241850 | |
| 279 | 279 | 128*8 /* every sprite takes 128 consecutive bytes */ |
| 280 | 280 | }; |
| 281 | 281 | |
| 282 | static const gfx_layout | |
| 282 | static const gfx_layout scclayout = | |
| 283 | 283 | { |
| 284 | 284 | 8,8, /* 8*8 characters */ |
| 285 | 285 | RGN_FRAC(1,2), |
| r241849 | r241850 | |
| 293 | 293 | static GFXDECODE_START( groundfx ) |
| 294 | 294 | GFXDECODE_ENTRY( "gfx2", 0x0, tile16x16_layout, 4096, 512 ) |
| 295 | 295 | GFXDECODE_ENTRY( "gfx1", 0x0, charlayout, 0, 512 ) |
| 296 | GFXDECODE_ENTRY( "gfx3", 0x0, | |
| 296 | GFXDECODE_ENTRY( "gfx3", 0x0, scclayout, 0, 512 ) | |
| 297 | 297 | GFXDECODE_END |
| 298 | 298 | |
| 299 | 299 | |
| r241849 | r241850 | |
| 375 | 375 | ROM_LOAD32_BYTE( "d51-07.51", 0x000003, 0x200000, CRC(24b2f97d) SHA1(6980e67b435d189ce897c0301e0411763410ab47) ) |
| 376 | 376 | |
| 377 | 377 | ROM_REGION( 0x400000, "gfx3", 0 ) |
| 378 | ROM_LOAD16_BYTE( "d51-10.95", 0x000000, 0x100000, CRC(d5910604) SHA1(8efe13884cfdef208394ddfe19f43eb1b9f78ff3) ) /* | |
| 378 | ROM_LOAD16_BYTE( "d51-10.95", 0x000000, 0x100000, CRC(d5910604) SHA1(8efe13884cfdef208394ddfe19f43eb1b9f78ff3) ) /* SCC 8x8 tiles, 6bpp */ | |
| 379 | 379 | ROM_LOAD16_BYTE( "d51-11.96", 0x000001, 0x100000, CRC(fee5f5c6) SHA1(1be88747f9c71c348dd61a8f0040007df3a3e6a6) ) |
| 380 | 380 | ROM_LOAD ( "d51-12.97", 0x300000, 0x100000, CRC(d630287b) SHA1(2fa09e1821b7280d193ca9a2a270759c3c3189d1) ) |
| 381 | 381 | ROM_FILL ( 0x200000, 0x100000, 0 ) |
| r241849 | r241850 | |
| 418 | 418 | /* Speedup handlers */ |
| 419 | 419 | m_maincpu->space(AS_PROGRAM).install_read_handler(0x20b574, 0x20b577, read32_delegate(FUNC(groundfx_state::irq_speedup_r_groundfx),this)); |
| 420 | 420 | |
| 421 | /* make | |
| 421 | /* make SCC tile GFX format suitable for gfxdecode */ | |
| 422 | 422 | offset = size/2; |
| 423 | 423 | for (i = size/2+size/4; i<size; i++) |
| 424 | 424 | { |
| r241849 | r241850 | |
|---|---|---|
| 69 | 69 | device.execute().set_input_line(4, HOLD_LINE); |
| 70 | 70 | } |
| 71 | 71 | |
| 72 | WRITE32_MEMBER(gunbustr_state::gunbustr_palette_w) | |
| 73 | { | |
| 74 | int a; | |
| 75 | COMBINE_DATA(&m_generic_paletteram_32[offset]); | |
| 76 | ||
| 77 | a = m_generic_paletteram_32[offset] >> 16; | |
| 78 | m_palette->set_pen_color(offset*2,pal5bit(a >> 10),pal5bit(a >> 5),pal5bit(a >> 0)); | |
| 79 | ||
| 80 | a = m_generic_paletteram_32[offset] &0xffff; | |
| 81 | m_palette->set_pen_color(offset*2+1,pal5bit(a >> 10),pal5bit(a >> 5),pal5bit(a >> 0)); | |
| 82 | } | |
| 83 | ||
| 84 | 72 | CUSTOM_INPUT_MEMBER(gunbustr_state::coin_word_r) |
| 85 | 73 | { |
| 86 | 74 | return m_coin_word; |
| r241849 | r241850 | |
| 168 | 156 | AM_RANGE(0x500000, 0x500003) AM_READWRITE(gunbustr_gun_r, gunbustr_gun_w) /* gun coord read */ |
| 169 | 157 | AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, long_r, long_w) |
| 170 | 158 | AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_long_r, ctrl_long_w) |
| 171 | AM_RANGE(0x900000, 0x901fff) AM_RAM_WRITE( | |
| 159 | AM_RANGE(0x900000, 0x901fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") | |
| 172 | 160 | AM_RANGE(0xc00000, 0xc03fff) AM_RAM /* network ram ?? */ |
| 173 | 161 | ADDRESS_MAP_END |
| 174 | 162 | |
| r241849 | r241850 | |
| 275 | 263 | }; |
| 276 | 264 | |
| 277 | 265 | static GFXDECODE_START( gunbustr ) |
| 278 | GFXDECODE_ENTRY( "gfx2", 0x0, tile16x16_layout, 0, 512 ) | |
| 279 | GFXDECODE_ENTRY( "gfx1", 0x0, charlayout, 0, 512 ) | |
| 266 | GFXDECODE_ENTRY( "gfx2", 0x0, tile16x16_layout, 0, 256 ) | |
| 267 | GFXDECODE_ENTRY( "gfx1", 0x0, charlayout, 0, 256 ) | |
| 280 | 268 | GFXDECODE_END |
| 281 | 269 | |
| 282 | 270 | |
| r241849 | r241850 | |
| 303 | 291 | MCFG_SCREEN_PALETTE("palette") |
| 304 | 292 | |
| 305 | 293 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", gunbustr) |
| 306 | MCFG_PALETTE_ADD("palette", 8192) | |
| 294 | MCFG_PALETTE_ADD("palette", 4096) | |
| 295 | MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB) | |
| 307 | 296 | |
| 308 | 297 | MCFG_DEVICE_ADD("tc0480scp", TC0480SCP, 0) |
| 309 | 298 | MCFG_TC0480SCP_GFX_REGION(1) |
| r241849 | r241850 | |
|---|---|---|
| 231 | 231 | |
| 232 | 232 | INTERRUPT_GEN_MEMBER(homedata_state::upd7807_irq) |
| 233 | 233 | { |
| 234 | device.execute() | |
| 234 | generic_pulse_irq_line(device.execute(), UPD7810_INTF1, 1); | |
| 235 | 235 | } |
| 236 | 236 | |
| 237 | 237 |
| r241849 | r241850 | |
|---|---|---|
| 737 | 737 | ROM_LOAD( "89c51.bin", 0x0000, 0x1000, CRC(595475c8) SHA1(8313819ba06cc92b54f88c1ca9f34be8d1ec94d0) ) |
| 738 | 738 | ROM_END |
| 739 | 739 | |
| 740 | ROM_START( sonic2mb ) | |
| 741 | ROM_REGION( 0x400000, "maincpu", 0 ) /* 68000 Code */ | |
| 742 | ROM_LOAD16_BYTE( "m1", 0x000001, 0x080000, CRC(7b40aa24) SHA1(247882cd1f412366d61aeb4d85bbeefd5f108e1d) ) | |
| 743 | ROM_LOAD16_BYTE( "m2", 0x000000, 0x080000, CRC(84b3f758) SHA1(19846b9d951db6f78f3e155d33f1b6349fb87f1a) ) | |
| 744 | ROM_END | |
| 745 | ||
| 746 | ||
| 740 | 747 | /************************************* |
| 741 | 748 | * |
| 742 | 749 | * Game-specific driver inits |
| r241849 | r241850 | |
| 879 | 886 | GAME( 1994, ssf2mdb, 0, megadrvb_6b, ssf2mdb, md_boot_state, ssf2mdb, ROT0, "bootleg / Capcom", "Super Street Fighter II - The New Challengers (bootleg of Japanese MegaDrive version)", 0) |
| 880 | 887 | GAME( 1993, srmdb, 0, megadrvb, srmdb, md_boot_state, srmdb, ROT0, "bootleg / Konami", "Sunset Riders (bootleg of Megadrive version)", 0) |
| 881 | 888 | GAME( 1995, topshoot, 0, md_bootleg, topshoot, md_boot_state, topshoot, ROT0, "Sun Mixing", "Top Shooter", 0) |
| 889 | GAME( 1993, sonic2mb, 0, megadrvb, aladmdb, md_boot_state, aladmdb, ROT0, "bootleg / Sega", "Sonic 2 (bootleg of Megadrive version)", GAME_NOT_WORKING ) |
| r241849 | r241850 | |
|---|---|---|
| 1645 | 1645 | ROM_LOAD( "cap740.u50", 0x0000, 0x0100, CRC(6fe619c4) SHA1(49e43dafd010ce0fe9b2a63b96a4ddedcb933c6d) ) /* BPROM type DM74LS471 (compatible with N82S135N) verified */ |
| 1646 | 1646 | ROM_END |
| 1647 | 1647 | |
| 1648 | ROM_START( pepp0040a ) /* Normal board : Standard Draw Poker (PP0040) - Multi Regional / Multi Currency - Tournament Mode capable */ | |
| 1649 | /* | |
| 1650 | PayTable Js+ 2PR 3K STR FL FH 4K SF RF (Bonus) | |
| 1651 | ---------------------------------------------------------- | |
| 1652 | WA 1 2 3 4 5 7 20 50 300 800 | |
| 1653 | % Range: 91.0-93.0% Optimum: 95.0% Hit Frequency: 45.5% | |
| 1654 | Programs Available: PP0040, X000040P | |
| 1655 | */ | |
| 1656 | ROM_REGION( 0x10000, "maincpu", 0 ) | |
| 1657 | ROM_LOAD( "pp0040_a0b-a1s.u68", 0x00000, 0x10000, CRC(0530ffb3) SHA1(ae5568c05dd640b040535482d1ba6fb45323c585) ) /* Game Version: A0B, Library Version: A1S */ | |
| 1658 | ||
| 1659 | ROM_REGION( 0x020000, "gfx1", 0 ) | |
| 1660 | ROM_LOAD( "mro-cg2014.u72", 0x00000, 0x8000, CRC(90220e65) SHA1(c03417e09b72c8f3afe182b15e41e9d9ae32a831) ) /* 09/01/94 @IGT IGT-EURO */ | |
| 1661 | ROM_LOAD( "mgo-cg2014.u73", 0x08000, 0x8000, CRC(3189b3e3) SHA1(34c4c170dba74a50ffcbc5c5c97b37200b6d2509) ) | |
| 1662 | ROM_LOAD( "mbo-cg2014.u74", 0x10000, 0x8000, CRC(77650c39) SHA1(7e89682d0a192ef83288bc3ad22dea45129344f9) ) | |
| 1663 | ROM_LOAD( "mxo-cg2014.u75", 0x18000, 0x8000, CRC(af9c89a6) SHA1(e256259c20f5b1308e89c9fbb424d1396bccbcd1) ) | |
| 1664 | ||
| 1665 | ROM_REGION( 0x100, "proms", 0 ) | |
| 1666 | ROM_LOAD( "cap740.u50", 0x0000, 0x0100, CRC(6fe619c4) SHA1(49e43dafd010ce0fe9b2a63b96a4ddedcb933c6d) ) /* BPROM type DM74LS471 (compatible with N82S135N) verified */ | |
| 1667 | ROM_END | |
| 1668 | ||
| 1648 | 1669 | ROM_START( pepp0041 ) /* Normal board : Standard Draw Poker (PP0041) */ |
| 1649 | 1670 | /* |
| 1650 | 1671 | PayTable Js+ 2PR 3K STR FL FH 4K SF RF (Bonus) |
| r241849 | r241850 | |
| 1741 | 1762 | ROM_LOAD( "pp0043_a0b-a1s.u68", 0x00000, 0x10000, CRC(be1561ab) SHA1(a3f6d306992acabb6a618a4035cc739f3c3c45e8) ) /* Game Version: A0B, Library Version: A1S */ |
| 1742 | 1763 | |
| 1743 | 1764 | ROM_REGION( 0x020000, "gfx1", 0 ) |
| 1744 | ROM_LOAD( "mro-cg2014.u72", 0x00000, 0x8000, CRC(90220e65) SHA1(c03417e09b72c8f3afe182b15e41e9d9ae32a831) ) | |
| 1765 | ROM_LOAD( "mro-cg2014.u72", 0x00000, 0x8000, CRC(90220e65) SHA1(c03417e09b72c8f3afe182b15e41e9d9ae32a831) ) /* 09/01/94 @IGT IGT-EURO */ | |
| 1745 | 1766 | ROM_LOAD( "mgo-cg2014.u73", 0x08000, 0x8000, CRC(3189b3e3) SHA1(34c4c170dba74a50ffcbc5c5c97b37200b6d2509) ) |
| 1746 | 1767 | ROM_LOAD( "mbo-cg2014.u74", 0x10000, 0x8000, CRC(77650c39) SHA1(7e89682d0a192ef83288bc3ad22dea45129344f9) ) |
| 1747 | 1768 | ROM_LOAD( "mxo-cg2014.u75", 0x18000, 0x8000, CRC(af9c89a6) SHA1(e256259c20f5b1308e89c9fbb424d1396bccbcd1) ) |
| r241849 | r241850 | |
| 8886 | 8907 | GAMEL(1987, pepp0014a, pepp0002, peplus, peplus_poker, peplus_state, nonplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0014) Standard Draw Poker", 0, layout_pe_poker ) |
| 8887 | 8908 | GAMEL(1987, pepp0023, pepp0002, peplus, peplus_poker, peplus_state, nonplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0023) 10's or Better", 0, layout_pe_poker ) |
| 8888 | 8909 | GAMEL(1987, pepp0040, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0040) Standard Draw Poker", 0, layout_pe_poker ) |
| 8910 | GAMEL(1987, pepp0040a, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0040) Standard Draw Poker (International)", 0, layout_pe_poker ) | |
| 8889 | 8911 | GAMEL(1987, pepp0041, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0041) Standard Draw Poker", 0, layout_pe_poker ) |
| 8890 | 8912 | GAMEL(1987, pepp0042, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0042) 10's or Better", 0, layout_pe_poker ) |
| 8891 | 8913 | GAMEL(1987, pepp0043, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0043) 10's or Better", 0, layout_pe_poker ) |
| r241849 | r241850 | |
|---|---|---|
| 972 | 972 | ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ |
| 973 | 973 | ROM_END |
| 974 | 974 | |
| 975 | ROM_START( avefenixrf ) | |
| 976 | ROM_REGION( 0x10000, "maincpu", 0 ) | |
| 977 | ROM_LOAD( "601-ic45.a1", 0x0000, 0x0800, CRC(b04260e9) SHA1(a275ba596e620b1e4dd73792cc9b11fbc55723cc) ) | |
| 978 | ROM_LOAD( "6002-ic46.a2", 0x0800, 0x0800, CRC(25a2e4bd) SHA1(a1188c4d1d059852b59ccfe16dd9a305d7b26299) ) | |
| 979 | ROM_LOAD( "0003-ic47.a3", 0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) ) | |
| 980 | ROM_LOAD( "6004-ic48.a4", 0x1800, 0x0800, CRC(4b7701b4) SHA1(2330802d4016450985f85937fd58e2a71e77c719) ) | |
| 981 | ROM_LOAD( "6005-ic49.a5", 0x2000, 0x0800, CRC(1ab92ef9) SHA1(ff5a263865895f8534f8535fbcb398af8512cbfe) ) | |
| 982 | ROM_LOAD( "0006-ic50.a6", 0x2800, 0x0800, CRC(ac5e9ec1) SHA1(0402e5241d99759d804291998efd43f37ce99917) ) | |
| 983 | ROM_LOAD( "6007-ic51.a7", 0x3000, 0x0800, CRC(2eab35b4) SHA1(849bf8273317cc869bdd67e50c68399ee8ece81d) ) | |
| 984 | ROM_LOAD( "f008-ic52.a8", 0x3800, 0x0800, CRC(3719fc84) SHA1(70691d55a86cdad21938a8af2a84ab9cfdc8d76a) ) | |
| 975 | 985 | |
| 986 | ROM_REGION( 0x1000, "bgtiles", 0 ) | |
| 987 | ROM_LOAD( "0011-ic23.d3", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) ) | |
| 988 | ROM_LOAD( "0012-ic24.d4", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) ) | |
| 989 | ||
| 990 | ROM_REGION( 0x1000, "fgtiles", 0 ) | |
| 991 | ROM_LOAD( "0009-ic39.b3", 0x0000, 0x0800, CRC(bb0525ed) SHA1(86db1c7584fb3846bfd47535e1585eeb7fbbb1fe) ) | |
| 992 | ROM_LOAD( "0010-ic40.b4", 0x0800, 0x0800, CRC(4178aa4f) SHA1(5350f8f62cc7c223c38008bc83140b7a19147d81) ) | |
| 993 | ||
| 994 | ROM_REGION( 0x0200, "proms", 0 ) | |
| 995 | ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */ | |
| 996 | ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ | |
| 997 | ROM_END | |
| 998 | ||
| 976 | 999 | ROM_START( griffon ) |
| 977 | 1000 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 978 | 1001 | ROM_LOAD( "griffon0.a5", 0x0000, 0x0800, CRC(c0f73929) SHA1(3cecf8341a5674165d2cae9b22ea5db26a9597de) ) |
| r241849 | r241850 | |
| 1275 | 1298 | GAME( 1981, nextfase, phoenix, phoenix, nextfase, driver_device, 0, ROT90, "bootleg (Petaco S.A.)", "Next Fase (bootleg of Phoenix)", GAME_SUPPORTS_SAVE ) |
| 1276 | 1299 | // as is this |
| 1277 | 1300 | GAME( 1981, phoenixs, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Sonic)", "Phoenix (Spanish bootleg)", GAME_SUPPORTS_SAVE ) |
| 1278 | GAME( 1980, avefenix, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Video Game)", "Ave Fenix (Spanish bootleg of Phoenix)", GAME_SUPPORTS_SAVE ) | |
| 1301 | GAME( 1980, avefenix, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Video Game)", "Ave Fenix (Electrogame, Spanish bootleg of Phoenix)", GAME_SUPPORTS_SAVE ) // Electrogame (Barcelona) made the dedicated cabinet and is likely the real manufacturer, ingame shows 'Video Game' | |
| 1302 | GAME( 1980, avefenixrf,phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Recreativos Franco S.A.)", "Ave Fenix (Recreativos Franco, Spanish bootleg of Phoenix)", GAME_SUPPORTS_SAVE ) | |
| 1279 | 1303 | |
| 1280 | 1304 | GAME( 1981, pleiads, 0, pleiads, pleiads, driver_device, 0, ROT90, "Tehkan", "Pleiads (Tehkan)", GAME_IMPERFECT_COLORS ) |
| 1281 | 1305 | GAME( 1981, pleiadsb2,pleiads, pleiads, pleiads, driver_device, 0, ROT90, "bootleg (ESG)", "Pleiads (bootleg set 2)", GAME_SUPPORTS_SAVE ) |
| r241849 | r241850 | |
|---|---|---|
| 1654 | 1654 | |
| 1655 | 1655 | |
| 1656 | 1656 | |
| 1657 | static const gfx_layout bg1_layout = | |
| 1658 | { | |
| 1659 | 8, 8, | |
| 1660 | RGN_FRAC(1,2), | |
| 1661 | 4, | |
| 1662 | { RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+4, 0, 4 }, | |
| 1663 | { 3, 2, 1, 0, 8+3, 8+2, 8+1, 8+0 }, | |
| 1664 | { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, | |
| 1665 | 8*8*2 | |
| 1666 | }; | |
| 1667 | 1657 | |
| 1668 | 1658 | static const gfx_layout bg2_layout = |
| 1669 | 1659 | { |
| r241849 | r241850 | |
| 1676 | 1666 | 8*8*4 |
| 1677 | 1667 | }; |
| 1678 | 1668 | |
| 1679 | #define O 8*8*2 | |
| 1680 | #define O2 2*O | |
| 1681 | static const gfx_layout sp1_layout = | |
| 1682 | { | |
| 1683 | 16, 16, | |
| 1684 | RGN_FRAC(1,2), | |
| 1685 | 4, | |
| 1686 | { RGN_FRAC(1,2)+0, RGN_FRAC(1,2)+4, 0, 4 }, | |
| 1687 | { 3, 2, 1, 0, 8+3, 8+2, 8+1, 8+0, O+3, O+2, O+1, O+0, O+8+3, O+8+2, O+8+1, O+8+0 }, | |
| 1688 | { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, O2+0*16, O2+1*16, O2+2*16, O2+3*16, O2+4*16, O2+5*16, O2+6*16, O2+7*16 }, | |
| 1689 | 8*8*2*4 | |
| 1690 | }; | |
| 1691 | #undef O | |
| 1692 | #undef O2 | |
| 1693 | 1669 | |
| 1694 | 1670 | #define O 8*8*4 |
| 1695 | 1671 | #define O2 2*O |
| r241849 | r241850 | |
| 1717 | 1693 | 8*8*4 |
| 1718 | 1694 | }; |
| 1719 | 1695 | |
| 1720 | static GFXDECODE_START( 1 ) | |
| 1721 | GFXDECODE_ENTRY( "gfx1", 0, bg1_layout, 0, 16 ) | |
| 1722 | GFXDECODE_ENTRY( "gfx1", 0, sp1_layout, 0, 16 ) | |
| 1723 | GFXDECODE_ENTRY( NULL, 0, char_layout, 0, 16 ) // Ram-based | |
| 1724 | GFXDECODE_END | |
| 1725 | 1696 | |
| 1726 | static GFXDECODE_START( 2 ) | |
| 1697 | ||
| 1698 | static GFXDECODE_START( taito_l ) | |
| 1727 | 1699 | GFXDECODE_ENTRY( "gfx1", 0, bg2_layout, 0, 16 ) |
| 1728 | 1700 | GFXDECODE_ENTRY( "gfx1", 0, sp2_layout, 0, 16 ) |
| 1729 | 1701 | GFXDECODE_ENTRY( NULL, 0, char_layout, 0, 16 ) // Ram-based |
| r241849 | r241850 | |
| 1782 | 1754 | MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol) |
| 1783 | 1755 | MCFG_SCREEN_PALETTE("palette") |
| 1784 | 1756 | |
| 1785 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", | |
| 1757 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", taito_l) | |
| 1786 | 1758 | MCFG_PALETTE_ADD("palette", 256) |
| 1787 | 1759 | |
| 1788 | 1760 | MCFG_VIDEO_START_OVERRIDE(taitol_state,taitol) |
| r241849 | r241850 | |
| 1883 | 1855 | MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol) |
| 1884 | 1856 | MCFG_SCREEN_PALETTE("palette") |
| 1885 | 1857 | |
| 1886 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", | |
| 1858 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", taito_l) | |
| 1887 | 1859 | MCFG_PALETTE_ADD("palette", 256) |
| 1888 | 1860 | |
| 1889 | 1861 | MCFG_VIDEO_START_OVERRIDE(taitol_state,taitol) |
| r241849 | r241850 | |
| 1899 | 1871 | MACHINE_CONFIG_END |
| 1900 | 1872 | |
| 1901 | 1873 | |
| 1902 | static MACHINE_CONFIG_DERIVED( kurikinta, kurikint ) | |
| 1903 | 1874 | |
| 1904 | /* basic machine hardware */ | |
| 1905 | 1875 | |
| 1906 | /* video hardware */ | |
| 1907 | MCFG_GFXDECODE_MODIFY("gfxdecode", 1) | |
| 1908 | MACHINE_CONFIG_END | |
| 1909 | 1876 | |
| 1910 | ||
| 1911 | 1877 | static MACHINE_CONFIG_START( plotting, taitol_state ) |
| 1912 | 1878 | |
| 1913 | 1879 | /* basic machine hardware */ |
| r241849 | r241850 | |
| 1929 | 1895 | MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol) |
| 1930 | 1896 | MCFG_SCREEN_PALETTE("palette") |
| 1931 | 1897 | |
| 1932 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", | |
| 1898 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", taito_l) | |
| 1933 | 1899 | MCFG_PALETTE_ADD("palette", 256) |
| 1934 | 1900 | |
| 1935 | 1901 | MCFG_VIDEO_START_OVERRIDE(taitol_state,taitol) |
| r241849 | r241850 | |
| 2023 | 1989 | MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol) |
| 2024 | 1990 | MCFG_SCREEN_PALETTE("palette") |
| 2025 | 1991 | |
| 2026 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", | |
| 1992 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", taito_l) | |
| 2027 | 1993 | MCFG_PALETTE_ADD("palette", 256) |
| 2028 | 1994 | |
| 2029 | 1995 | MCFG_VIDEO_START_OVERRIDE(taitol_state,taitol) |
| r241849 | r241850 | |
| 2237 | 2203 | ROM_LOAD( "b42-07.ic22", 0x00000, 0x10000, CRC(0f2719c0) SHA1(f870335a75f236f0059522f9a577dee7ca3acb2f) ) |
| 2238 | 2204 | |
| 2239 | 2205 | ROM_REGION( 0x100000, "gfx1", 0 ) |
| 2240 | ROM_LOAD( "kk_1-1l.rom", 0x00000, 0x20000, CRC(df1d4fcd) SHA1(300cad3636ea9648595c3f4bba3ca737f95f7354) ) | |
| 2241 | ROM_LOAD( "kk_2-2l.rom", 0x20000, 0x20000, CRC(fca7f647) SHA1(0571e8fc2eda9f139e81d6d191368fb99764f797) ) | |
| 2242 | ROM_LOAD( "kk_5-3l.rom", 0x40000, 0x20000, CRC(d080fde1) SHA1(e5011cdf35bf5d39f4786e6d60d2b35a79560dfa) ) | |
| 2243 | ROM_LOAD( "kk_7-4l.rom", 0x60000, 0x20000, CRC(f5bf6829) SHA1(4c1b4c6f451ed823730762f67c2e716789cddb10) ) | |
| 2244 | ROM_LOAD( "kk_3-1h.rom", 0x80000, 0x20000, CRC(71af848e) SHA1(1e4d050c9191a8645f324de84767662ed80165b6) ) | |
| 2245 | ROM_LOAD( "kk_4-2h.rom", 0xa0000, 0x20000, CRC(cebb5bac) SHA1(6c1e3cdea353bd835b49b95af0bb718e2b46ecfe) ) | |
| 2246 | ROM_LOAD( "kk_6-3h.rom", 0xc0000, 0x20000, CRC(322e3752) SHA1(7592b5dc7945c96f53aeb5c328c54c0dcba3809a) ) | |
| 2247 | ROM_LOAD( "kk_8-4h.rom", 0xe0000, 0x20000, CRC(117bde99) SHA1(fe0f56b6c840e35870639c4de129443e14720a7b) ) | |
| 2206 | ROM_LOAD16_BYTE( "kk_1-1l.rom", 0x00000, 0x20000, CRC(df1d4fcd) SHA1(300cad3636ea9648595c3f4bba3ca737f95f7354) ) | |
| 2207 | ROM_LOAD16_BYTE( "kk_2-2l.rom", 0x40000, 0x20000, CRC(fca7f647) SHA1(0571e8fc2eda9f139e81d6d191368fb99764f797) ) | |
| 2208 | ROM_LOAD16_BYTE( "kk_5-3l.rom", 0x80000, 0x20000, CRC(d080fde1) SHA1(e5011cdf35bf5d39f4786e6d60d2b35a79560dfa) ) | |
| 2209 | ROM_LOAD16_BYTE( "kk_7-4l.rom", 0xc0000, 0x20000, CRC(f5bf6829) SHA1(4c1b4c6f451ed823730762f67c2e716789cddb10) ) | |
| 2210 | ROM_LOAD16_BYTE( "kk_3-1h.rom", 0x00001, 0x20000, CRC(71af848e) SHA1(1e4d050c9191a8645f324de84767662ed80165b6) ) | |
| 2211 | ROM_LOAD16_BYTE( "kk_4-2h.rom", 0x40001, 0x20000, CRC(cebb5bac) SHA1(6c1e3cdea353bd835b49b95af0bb718e2b46ecfe) ) | |
| 2212 | ROM_LOAD16_BYTE( "kk_6-3h.rom", 0x80001, 0x20000, CRC(322e3752) SHA1(7592b5dc7945c96f53aeb5c328c54c0dcba3809a) ) | |
| 2213 | ROM_LOAD16_BYTE( "kk_8-4h.rom", 0xc0001, 0x20000, CRC(117bde99) SHA1(fe0f56b6c840e35870639c4de129443e14720a7b) ) | |
| 2248 | 2214 | ROM_END |
| 2249 | 2215 | |
| 2250 | 2216 | /************************************************************************ |
| r241849 | r241850 | |
| 2300 | 2266 | ROM_LOAD( "ic10", 0x00000, 0x10000, CRC(be240921) SHA1(f29f3a49b563f24aa6e3187ac4da1a8100cb02b5) ) |
| 2301 | 2267 | |
| 2302 | 2268 | ROM_REGION( 0x20000, "gfx1", 0 ) |
| 2303 | ROM_LOAD( "b96-07.ic9", 0x00000, 0x10000, CRC(0713a387) SHA1(0fc1242ce02a56279fa1d5270c905bba7cdcd072) ) | |
| 2304 | ROM_LOAD( "b96-08.ic8", 0x10000, 0x10000, CRC(55b8e294) SHA1(14405638f751adfadb022bf7a0123a3972d4a617) ) | |
| 2269 | ROM_LOAD16_BYTE( "b96-07.ic9", 0x00000, 0x10000, CRC(0713a387) SHA1(0fc1242ce02a56279fa1d5270c905bba7cdcd072) ) | |
| 2270 | ROM_LOAD16_BYTE( "b96-08.ic8", 0x00001, 0x10000, CRC(55b8e294) SHA1(14405638f751adfadb022bf7a0123a3972d4a617) ) | |
| 2305 | 2271 | |
| 2306 | 2272 | ROM_REGION( 0x0200, "plds", 0 ) |
| 2307 | 2273 | ROM_LOAD( "gal16v8-b86-04.bin", 0x0000, 0x0117, CRC(bf8c0ea0) SHA1(e0a00f1f6363fb79650202f90a56329990876d49) ) /* derived, but verified Pal Stamped B86-04 */ |
| r241849 | r241850 | |
| 2313 | 2279 | ROM_LOAD( "plot01.ic10", 0x00000, 0x10000, CRC(5b30bc25) SHA1(df8839a90da9e5122d75b6faaf97f59499dbd316) ) |
| 2314 | 2280 | |
| 2315 | 2281 | ROM_REGION( 0x20000, "gfx1", 0 ) |
| 2316 | ROM_LOAD( "b96-02.ic9", 0x00000, 0x10000, CRC(6e0bad2a) SHA1(73996688cd058a2f56f61ea60144b9c673919a58) ) | |
| 2317 | ROM_LOAD( "b96-03.ic8", 0x10000, 0x10000, CRC(fb5f3ca4) SHA1(0c335acceea50133a6899f9e368cff5f61b55a96) ) | |
| 2282 | ROM_LOAD16_BYTE( "b96-02.ic9", 0x00000, 0x10000, CRC(6e0bad2a) SHA1(73996688cd058a2f56f61ea60144b9c673919a58) ) | |
| 2283 | ROM_LOAD16_BYTE( "b96-03.ic8", 0x00001, 0x10000, CRC(fb5f3ca4) SHA1(0c335acceea50133a6899f9e368cff5f61b55a96) ) | |
| 2318 | 2284 | |
| 2319 | 2285 | ROM_REGION( 0x0200, "plds", 0 ) |
| 2320 | 2286 | ROM_LOAD( "gal16v8-b86-04.bin", 0x0000, 0x0117, CRC(bf8c0ea0) SHA1(e0a00f1f6363fb79650202f90a56329990876d49) ) /* derived, but verified Pal Stamped B86-04 */ |
| r241849 | r241850 | |
| 2325 | 2291 | ROM_LOAD( "b96-06.ic10",0x00000, 0x10000, CRC(f89a54b1) SHA1(19757b5fb61acdd6f5ae8e32a38ae54bfda0c522) ) |
| 2326 | 2292 | |
| 2327 | 2293 | ROM_REGION( 0x20000, "gfx1", 0 ) |
| 2328 | ROM_LOAD( "b96-02.ic9", 0x00000, 0x10000, CRC(6e0bad2a) SHA1(73996688cd058a2f56f61ea60144b9c673919a58) ) | |
| 2329 | ROM_LOAD( "b96-03.ic8", 0x10000, 0x10000, CRC(fb5f3ca4) SHA1(0c335acceea50133a6899f9e368cff5f61b55a96) ) | |
| 2294 | ROM_LOAD16_BYTE( "b96-02.ic9", 0x00000, 0x10000, CRC(6e0bad2a) SHA1(73996688cd058a2f56f61ea60144b9c673919a58) ) | |
| 2295 | ROM_LOAD16_BYTE( "b96-03.ic8", 0x00001, 0x10000, CRC(fb5f3ca4) SHA1(0c335acceea50133a6899f9e368cff5f61b55a96) ) | |
| 2330 | 2296 | |
| 2331 | 2297 | ROM_REGION( 0x0200, "plds", 0 ) |
| 2332 | 2298 | ROM_LOAD( "gal16v8-b86-04.bin", 0x0000, 0x0117, CRC(bf8c0ea0) SHA1(e0a00f1f6363fb79650202f90a56329990876d49) ) /* derived, but verified Pal Stamped B86-04 */ |
| r241849 | r241850 | |
| 2337 | 2303 | ROM_LOAD( "b96-05.ic10",0x00000, 0x10000, CRC(afb99d1f) SHA1(a5cabc182d4f1d5709e6835d8b0a481dd0f9a563) ) |
| 2338 | 2304 | |
| 2339 | 2305 | ROM_REGION( 0x20000, "gfx1", 0 ) |
| 2340 | ROM_LOAD( "b96-02.ic9", 0x00000, 0x10000, CRC(6e0bad2a) SHA1(73996688cd058a2f56f61ea60144b9c673919a58) ) | |
| 2341 | ROM_LOAD( "b96-03.ic8", 0x10000, 0x10000, CRC(fb5f3ca4) SHA1(0c335acceea50133a6899f9e368cff5f61b55a96) ) | |
| 2306 | ROM_LOAD16_BYTE( "b96-02.ic9", 0x00000, 0x10000, CRC(6e0bad2a) SHA1(73996688cd058a2f56f61ea60144b9c673919a58) ) | |
| 2307 | ROM_LOAD16_BYTE( "b96-03.ic8", 0x00001, 0x10000, CRC(fb5f3ca4) SHA1(0c335acceea50133a6899f9e368cff5f61b55a96) ) | |
| 2342 | 2308 | |
| 2343 | 2309 | ROM_REGION( 0x0200, "plds", 0 ) // PAL16L8 |
| 2344 | 2310 | ROM_LOAD( "b96-04.ic12", 0x0000, 0x0104, CRC(9390a782) SHA1(9e68948ed15d96c1998e5d5cd99b823676e555e7) ) /* Confirmed/Matches U.S. set */ |
| r241849 | r241850 | |
| 2349 | 2315 | ROM_LOAD( "b96-01.ic10",0x00000, 0x10000, CRC(65993978) SHA1(d14dc70f1b5e72b96ccc3fab61d7740f627bfea2) ) |
| 2350 | 2316 | |
| 2351 | 2317 | ROM_REGION( 0x20000, "gfx1", 0 ) |
| 2352 | ROM_LOAD( "b96-07.ic9", 0x00000, 0x10000, CRC(0713a387) SHA1(0fc1242ce02a56279fa1d5270c905bba7cdcd072) ) | |
| 2353 | ROM_LOAD( "b96-08.ic8", 0x10000, 0x10000, CRC(55b8e294) SHA1(14405638f751adfadb022bf7a0123a3972d4a617) ) | |
| 2318 | ROM_LOAD16_BYTE( "b96-07.ic9", 0x00000, 0x10000, CRC(0713a387) SHA1(0fc1242ce02a56279fa1d5270c905bba7cdcd072) ) | |
| 2319 | ROM_LOAD16_BYTE( "b96-08.ic8", 0x00001, 0x10000, CRC(55b8e294) SHA1(14405638f751adfadb022bf7a0123a3972d4a617) ) | |
| 2354 | 2320 | |
| 2355 | 2321 | ROM_REGION( 0x0200, "plds", 0 ) |
| 2356 | 2322 | ROM_LOAD( "gal16v8-b86-04.bin", 0x0000, 0x0117, CRC(bf8c0ea0) SHA1(e0a00f1f6363fb79650202f90a56329990876d49) ) /* derived, but verified Pal Stamped B86-04 */ |
| r241849 | r241850 | |
| 2364 | 2330 | ROM_LOAD( "mc68705p3.ic4", 0x0000, 0x0800, CRC(085F68B4) SHA1(2DBC7E2C015220DC59EE1F1208540744E5B9B7CC) ) |
| 2365 | 2331 | |
| 2366 | 2332 | ROM_REGION( 0x20000, "gfx1", 0 ) |
| 2367 | ROM_LOAD( "c20-07.ic10", 0x00000, 0x10000, CRC(be12749a) SHA1(c67d1a434486843a6776d89e905362b7db595d8d) ) | |
| 2368 | ROM_LOAD( "c20-06.ic9", 0x10000, 0x10000, CRC(ac85a9c5) SHA1(2d72dae86a191ccdac9648980aca832fb9886544) ) | |
| 2333 | ROM_LOAD16_BYTE( "c20-07.ic10", 0x00000, 0x10000, CRC(be12749a) SHA1(c67d1a434486843a6776d89e905362b7db595d8d) ) | |
| 2334 | ROM_LOAD16_BYTE( "c20-06.ic9", 0x00001, 0x10000, CRC(ac85a9c5) SHA1(2d72dae86a191ccdac9648980aca832fb9886544) ) | |
| 2369 | 2335 | |
| 2370 | 2336 | ROM_REGION( 0x0800, "pals", 0 ) |
| 2371 | 2337 | ROM_LOAD( "mmipal20l8.ic3", 0x0000, 0x0800, NO_DUMP ) |
| r241849 | r241850 | |
| 2379 | 2345 | ROM_LOAD( "mc68705p3.ic4", 0x0000, 0x0800, CRC(085F68B4) SHA1(2DBC7E2C015220DC59EE1F1208540744E5B9B7CC) ) |
| 2380 | 2346 | |
| 2381 | 2347 | ROM_REGION( 0x40000, "gfx1", 0 ) |
| 2382 | ROM_LOAD( "c20-03.ic10", 0x00000, 0x20000, CRC(4264056c) SHA1(d2d8a170ae0f361093a5384935238605a59e5938) ) | |
| 2383 | ROM_LOAD( "c20-02.ic9", 0x20000, 0x20000, CRC(3c115f8b) SHA1(8d518be01b7c4d6d993d5d9b62aab719a5c8baca) ) | |
| 2348 | ROM_LOAD16_BYTE( "c20-03.ic10", 0x00000, 0x20000, CRC(4264056c) SHA1(d2d8a170ae0f361093a5384935238605a59e5938) ) | |
| 2349 | ROM_LOAD16_BYTE( "c20-02.ic9", 0x00001, 0x20000, CRC(3c115f8b) SHA1(8d518be01b7c4d6d993d5d9b62aab719a5c8baca) ) | |
| 2384 | 2350 | |
| 2385 | 2351 | ROM_REGION( 0x0200, "pals", 0 ) // PAL20L8 |
| 2386 | 2352 | ROM_LOAD( "c20-05.ic3", 0x0000, 0x0144, CRC(f90e5594) SHA1(6181bb25b77028bb150c84bdc073f0457efd7eaa) ) // Confirmed/Matches Japan Set |
| r241849 | r241850 | |
| 2391 | 2357 | ROM_LOAD( "1.ic11", 0x00000, 0x20000, CRC(4612f5e0) SHA1(dc07a365414666568537d31ef01b58f2362cadaf) ) |
| 2392 | 2358 | |
| 2393 | 2359 | ROM_REGION( 0x40000, "gfx1", 0 ) |
| 2394 | ROM_LOAD( "u10.ic10", 0x00000, 0x20000, CRC(4264056c) SHA1(d2d8a170ae0f361093a5384935238605a59e5938) ) | |
| 2395 | ROM_LOAD( "3.ic9", 0x20000, 0x20000, CRC(2bf5232a) SHA1(a8fc06bb8bae2ca6bd21e3a96c9ed38bb356d5d7) ) | |
| 2360 | ROM_LOAD16_BYTE( "u10.ic10", 0x00000, 0x20000, CRC(4264056c) SHA1(d2d8a170ae0f361093a5384935238605a59e5938) ) | |
| 2361 | ROM_LOAD16_BYTE( "3.ic9", 0x00001, 0x20000, CRC(2bf5232a) SHA1(a8fc06bb8bae2ca6bd21e3a96c9ed38bb356d5d7) ) | |
| 2396 | 2362 | ROM_END |
| 2397 | 2363 | |
| 2398 | 2364 | /* |
| r241849 | r241850 | |
| 2420 | 2386 | ROM_LOAD( "c47-03.ic6", 0x00000, 0x20000, CRC(37e15b20) SHA1(85baa0ee553e4c9fed38294ba8912f18f519e62f) ) |
| 2421 | 2387 | |
| 2422 | 2388 | ROM_REGION( 0x80000, "gfx1", 0 ) |
| 2423 | ROM_LOAD( "c47-02.ic5", 0x00000, 0x10000, CRC(35f96526) SHA1(e7f9b33d82b050aff49f991aa12db436421caa5b) ) /* silkscreened CH0-L */ | |
| 2424 | ROM_CONTINUE ( 0x20000, 0x10000 ) | |
| 2425 | ROM_LOAD( "c47-01.ic11", 0x10000, 0x10000, CRC(031c73d8) SHA1(deef972fbf226701f9a6469ae3934129dc52ce9c) ) /* silkscreened CH1-L */ | |
| 2426 | ROM_CONTINUE ( 0x30000, 0x10000 ) | |
| 2427 | ROM_LOAD( "c47-04.ic4", 0x40000, 0x10000, CRC(aeac7121) SHA1(cf67688cde14d452da6d9cbd7a81593f4048ce77) ) /* silkscreened CH0-H */ | |
| 2389 | ROM_LOAD16_BYTE( "c47-02.ic5", 0x00000, 0x10000, CRC(35f96526) SHA1(e7f9b33d82b050aff49f991aa12db436421caa5b) ) /* silkscreened CH0-L */ | |
| 2390 | ROM_CONTINUE ( 0x40000, 0x10000 ) | |
| 2391 | ROM_LOAD16_BYTE( "c47-01.ic11", 0x20000, 0x10000, CRC(031c73d8) SHA1(deef972fbf226701f9a6469ae3934129dc52ce9c) ) /* silkscreened CH1-L */ | |
| 2428 | 2392 | ROM_CONTINUE ( 0x60000, 0x10000 ) |
| 2429 | ROM_LOAD( "c47-05.ic10", 0x50000, 0x10000, CRC(b2a3dafe) SHA1(5ffd3e296272ef3f31432005c827f057aac79497) ) /* silkscreened CH1-H */ | |
| 2430 | ROM_CONTINUE ( 0x70000, 0x10000 ) | |
| 2393 | ROM_LOAD16_BYTE( "c47-04.ic4", 0x00001, 0x10000, CRC(aeac7121) SHA1(cf67688cde14d452da6d9cbd7a81593f4048ce77) ) /* silkscreened CH0-H */ | |
| 2394 | ROM_CONTINUE ( 0x40001, 0x10000 ) | |
| 2395 | ROM_LOAD16_BYTE( "c47-05.ic10", 0x20001, 0x10000, CRC(b2a3dafe) SHA1(5ffd3e296272ef3f31432005c827f057aac79497) ) /* silkscreened CH1-H */ | |
| 2396 | ROM_CONTINUE ( 0x60001, 0x10000 ) | |
| 2431 | 2397 | |
| 2432 | 2398 | ROM_REGION( 0x0200, "plds", 0 ) // PAL20L8BCNS |
| 2433 | 2399 | ROM_LOAD( "c47-06.ic12", 0x0000, 0x0144, CRC(4342ca6c) SHA1(9c798a6f1508b03004b76577eb823f004df7298d) ) |
| r241849 | r241850 | |
| 2439 | 2405 | ROM_LOAD( "c63.02", 0x00000, 0x20000, CRC(55a82bb2) SHA1(f157ad770351d4b8d8f8c061c4e330d6391fc624) ) |
| 2440 | 2406 | |
| 2441 | 2407 | ROM_REGION( 0x40000, "gfx1", 0 ) |
| 2442 | ROM_LOAD( "c63.04", 0x00000, 0x20000, CRC(c7bbe460) SHA1(1c1f186d0b0b2e383f82c53ae93b975a75f50f9c) ) | |
| 2443 | ROM_LOAD( "c63.03", 0x20000, 0x20000, CRC(fcd86e44) SHA1(bdd0750ed6e93cc49f09f4ccb05b0c4a44cb9c23) ) | |
| 2408 | ROM_LOAD16_BYTE( "c63.04", 0x00000, 0x20000, CRC(c7bbe460) SHA1(1c1f186d0b0b2e383f82c53ae93b975a75f50f9c) ) | |
| 2409 | ROM_LOAD16_BYTE( "c63.03", 0x00001, 0x20000, CRC(fcd86e44) SHA1(bdd0750ed6e93cc49f09f4ccb05b0c4a44cb9c23) ) | |
| 2444 | 2410 | ROM_END |
| 2445 | 2411 | |
| 2446 | 2412 | ROM_START( cachat ) |
| r241849 | r241850 | |
| 2448 | 2414 | ROM_LOAD( "cac6", 0x00000, 0x20000, CRC(8105cf5f) SHA1(e6dd22165436c247db887a04c3e69c9e2505bb33) ) |
| 2449 | 2415 | |
| 2450 | 2416 | ROM_REGION( 0x80000, "gfx1", 0 ) |
| 2451 | ROM_LOAD( "cac9", 0x00000, 0x20000, CRC(bc462914) SHA1(3eede8940cabadf563acb63059bfc2d13253b29f) ) | |
| 2452 | ROM_LOAD( "cac10", 0x20000, 0x20000, CRC(ecc64b31) SHA1(04ce97cdcdbdbd38602011f5ed27fe9182fb500a) ) | |
| 2453 | ROM_LOAD( "cac7", 0x40000, 0x20000, CRC(7fb71578) SHA1(34cfa1383ea1f3cbf45eaf6b989a1248cdef1bb9) ) | |
| 2454 | ROM_LOAD( "cac8", 0x60000, 0x20000, CRC(d2a63799) SHA1(71b024b239834ef068b7fc20cd49aae7853e0f7c) ) | |
| 2417 | ROM_LOAD16_BYTE( "cac9", 0x00000, 0x20000, CRC(bc462914) SHA1(3eede8940cabadf563acb63059bfc2d13253b29f) ) | |
| 2418 | ROM_LOAD16_BYTE( "cac10", 0x40000, 0x20000, CRC(ecc64b31) SHA1(04ce97cdcdbdbd38602011f5ed27fe9182fb500a) ) | |
| 2419 | ROM_LOAD16_BYTE( "cac7", 0x00001, 0x20000, CRC(7fb71578) SHA1(34cfa1383ea1f3cbf45eaf6b989a1248cdef1bb9) ) | |
| 2420 | ROM_LOAD16_BYTE( "cac8", 0x40001, 0x20000, CRC(d2a63799) SHA1(71b024b239834ef068b7fc20cd49aae7853e0f7c) ) | |
| 2455 | 2421 | |
| 2456 | 2422 | ROM_REGION( 0x0200, "plds", 0 ) |
| 2457 | 2423 | ROM_LOAD( "pal20l8b-c63-01.14", 0x0000, 0x0144, CRC(14a7dd2a) SHA1(2a39ca6069bdac553d73c34db6f50f880559113c) ) |
| r241849 | r241850 | |
| 2462 | 2428 | ROM_LOAD( "t-i_02.6", 0x00000, 0x20000, CRC(54730669) SHA1(a44ebd31a8588a133a7552a39fa8d52ba1985e45) ) |
| 2463 | 2429 | |
| 2464 | 2430 | ROM_REGION( 0x80000, "gfx1", 0 ) |
| 2465 | ROM_LOAD( "t-i_03.7", 0x40000, 0x40000, CRC(e1c3fed0) SHA1(cd68dbf61ed820f4aa50c630e7cb778aafb433c2) ) | |
| 2466 | ROM_LOAD( "t-i_04.9", 0x00000, 0x40000, CRC(b4a6e31d) SHA1(e9abab8f19c78207f25a62104bcae1e391cbd2c0) ) | |
| 2431 | ROM_LOAD16_BYTE( "t-i_03.7", 0x00001, 0x40000, CRC(e1c3fed0) SHA1(cd68dbf61ed820f4aa50c630e7cb778aafb433c2) ) | |
| 2432 | ROM_LOAD16_BYTE( "t-i_04.9", 0x00000, 0x40000, CRC(b4a6e31d) SHA1(e9abab8f19c78207f25a62104bcae1e391cbd2c0) ) | |
| 2467 | 2433 | |
| 2468 | 2434 | ROM_REGION( 0x0200, "plds", 0 ) |
| 2469 | 2435 | ROM_LOAD( "pal20l8b-c63-01.14", 0x0000, 0x0144, CRC(14a7dd2a) SHA1(2a39ca6069bdac553d73c34db6f50f880559113c) ) |
| r241849 | r241850 | |
| 2474 | 2440 | ROM_LOAD( "cb06.6", 0x00000, 0x40000, CRC(66b89a85) SHA1(2ba26d71fd1aa8e64584a5908a1d797666718d49) ) |
| 2475 | 2441 | |
| 2476 | 2442 | ROM_REGION( 0x100000, "gfx1", 0 ) |
| 2477 | ROM_LOAD( "cb09.9", 0x00000, 0x40000, CRC(5f831e59) SHA1(db319a6c1058200274d687163b4df2f78a2bf879) ) | |
| 2478 | ROM_LOAD( "cb10.10", 0x40000, 0x40000, CRC(430510fc) SHA1(95c0a0ebd0485a15090f302e5d2f4da8204baf7c) ) | |
| 2479 | ROM_LOAD( "cb07.7", 0x80000, 0x40000, CRC(3582de99) SHA1(51620cc9044aef8e5ed0335b7d5d6d67a7857005) ) | |
| 2480 | ROM_LOAD( "cb08.8", 0xc0000, 0x40000, CRC(09e18a51) SHA1(18db47d1d84f9be892bc796116c7ef7d0c1ee59f) ) | |
| 2443 | ROM_LOAD16_BYTE( "cb09.9", 0x00000, 0x40000, CRC(5f831e59) SHA1(db319a6c1058200274d687163b4df2f78a2bf879) ) | |
| 2444 | ROM_LOAD16_BYTE( "cb10.10", 0x80000, 0x40000, CRC(430510fc) SHA1(95c0a0ebd0485a15090f302e5d2f4da8204baf7c) ) | |
| 2445 | ROM_LOAD16_BYTE( "cb07.7", 0x00001, 0x40000, CRC(3582de99) SHA1(51620cc9044aef8e5ed0335b7d5d6d67a7857005) ) | |
| 2446 | ROM_LOAD16_BYTE( "cb08.8", 0x80001, 0x40000, CRC(09e18a51) SHA1(18db47d1d84f9be892bc796116c7ef7d0c1ee59f) ) | |
| 2481 | 2447 | ROM_END |
| 2482 | 2448 | |
| 2483 | 2449 | ROM_START( plgirls ) |
| r241849 | r241850 | |
| 2485 | 2451 | ROM_LOAD( "pg03.ic6", 0x00000, 0x40000, CRC(6ca73092) SHA1(f5679f047a29b936046c0d3677489df553ad7b41) ) |
| 2486 | 2452 | |
| 2487 | 2453 | ROM_REGION( 0x80000, "gfx1", 0 ) |
| 2488 | ROM_LOAD( "pg02.ic9", 0x00000, 0x40000, CRC(3cf05ca9) SHA1(502c45a5330dda1b2fbf7d3d0c9bc6e889ff07d8) ) | |
| 2489 | ROM_LOAD( "pg01.ic7", 0x40000, 0x40000, CRC(79e41e74) SHA1(aa8efbeeee47f84e19b639821a89a7bcd67fe7a9) ) | |
| 2454 | ROM_LOAD16_BYTE( "pg02.ic9", 0x00000, 0x40000, CRC(3cf05ca9) SHA1(502c45a5330dda1b2fbf7d3d0c9bc6e889ff07d8) ) | |
| 2455 | ROM_LOAD16_BYTE( "pg01.ic7", 0x00001, 0x40000, CRC(79e41e74) SHA1(aa8efbeeee47f84e19b639821a89a7bcd67fe7a9) ) | |
| 2490 | 2456 | ROM_END |
| 2491 | 2457 | |
| 2492 | 2458 | ROM_START( plgirls2 ) |
| r241849 | r241850 | |
| 2494 | 2460 | ROM_LOAD( "pg2_1j.ic6", 0x00000, 0x40000, CRC(f924197a) SHA1(ecaaefd1b3715ba60608e05d58be67e3c71f653a) ) |
| 2495 | 2461 | |
| 2496 | 2462 | ROM_REGION( 0x100000, "gfx1", 0 ) |
| 2497 | ROM_LOAD( "cho-l.ic9", 0x00000, 0x80000, CRC(956384ec) SHA1(94a2b95f340e96bdccbeafd373f0dea90b8328dd) ) | |
| 2498 | ROM_LOAD( "cho-h.ic7", 0x80000, 0x80000, CRC(992f99b1) SHA1(c79f1014d73654740f7823812f92376d65d6b15d) ) | |
| 2463 | ROM_LOAD16_BYTE( "cho-l.ic9", 0x00000, 0x80000, CRC(956384ec) SHA1(94a2b95f340e96bdccbeafd373f0dea90b8328dd) ) | |
| 2464 | ROM_LOAD16_BYTE( "cho-h.ic7", 0x00001, 0x80000, CRC(992f99b1) SHA1(c79f1014d73654740f7823812f92376d65d6b15d) ) | |
| 2499 | 2465 | ROM_END |
| 2500 | 2466 | |
| 2467 | ROM_START( plgirls2b ) | |
| 2468 | ROM_REGION( 0x40000, "maincpu", 0 ) | |
| 2469 | ROM_LOAD( "playgirls2b.d1", 0x00000, 0x40000, CRC(d58159fa) SHA1(541c6ca5f12c38b5a08f90048f52c31d27bb9233) ) | |
| 2470 | ||
| 2471 | ROM_REGION( 0x100000, "gfx1", 0 ) | |
| 2472 | ROM_LOAD32_BYTE( "playgirls2b.d8", 0x00003, 0x40000, CRC(22df48b5) SHA1(be51dbe55f84dd1b7c30da0e4d98c874b0803382) ) | |
| 2473 | ROM_LOAD32_BYTE( "playgirls2b.d4", 0x00001, 0x40000, CRC(bc9e2192) SHA1(7bc7f46295166a84c849e9ea82428e653375d9d6) ) | |
| 2474 | ROM_LOAD32_BYTE( "playgirls2b.b6", 0x00000, 0x40000, CRC(aac6c90b) SHA1(965cea2fb5f3aaabb4378fc24899af53de745ff3) ) | |
| 2475 | ROM_LOAD32_BYTE( "playgirls2b.d3", 0x00002, 0x40000, CRC(75d82fab) SHA1(4eb9ee416944a36f016e7d353f79884915da2730) ) | |
| 2476 | ROM_END | |
| 2477 | ||
| 2478 | ||
| 2501 | 2479 | ROM_START( evilston ) |
| 2502 | 2480 | ROM_REGION( 0x40000, "maincpu", 0 ) |
| 2503 | 2481 | ROM_LOAD( "c67-03.ic2", 0x00000, 0x20000, CRC(53419982) SHA1(ecc338e2237d26c5ff25b756d371b26b23beed1e) ) |
| r241849 | r241850 | |
| 2553 | 2531 | ROM_LOAD( "rom1", 0x00000, 0x40000, CRC(ba1acfdb) SHA1(ff1093c2d0887287ce451417bd373e00f2881ce7) ) |
| 2554 | 2532 | |
| 2555 | 2533 | ROM_REGION( 0x80000, "gfx1", 0 ) |
| 2556 | ROM_LOAD16_BYTE( "rom2", 0x40001, 0x20000, CRC(4c739a30) SHA1(4426f51aac9bb39f5d1a7616d183ff6c76749dc2) ) | |
| 2557 | ROM_LOAD16_BYTE( "rom3", 0x40000, 0x20000, CRC(4cf22a4b) SHA1(1c933ccbb6a5b8a6795385d7970db5f7138e572e) ) | |
| 2558 | ROM_LOAD16_BYTE( "rom4", 0x00001, 0x20000, CRC(7dcd6696) SHA1(8f3b1fe669520142668af6dc2d04f13767048989) ) | |
| 2559 | ROM_LOAD16_BYTE( "rom5", 0x00000, 0x20000, CRC(b1782816) SHA1(352663974886e1e4358e55b87c8bf0cdb979f177) ) | |
| 2534 | ROM_LOAD32_BYTE( "rom2", 0x00003, 0x20000, CRC(4c739a30) SHA1(4426f51aac9bb39f5d1a7616d183ff6c76749dc2) ) | |
| 2535 | ROM_LOAD32_BYTE( "rom3", 0x00001, 0x20000, CRC(4cf22a4b) SHA1(1c933ccbb6a5b8a6795385d7970db5f7138e572e) ) | |
| 2536 | ROM_LOAD32_BYTE( "rom4", 0x00002, 0x20000, CRC(7dcd6696) SHA1(8f3b1fe669520142668af6dc2d04f13767048989) ) | |
| 2537 | ROM_LOAD32_BYTE( "rom5", 0x00000, 0x20000, CRC(b1782816) SHA1(352663974886e1e4358e55b87c8bf0cdb979f177) ) | |
| 2560 | 2538 | ROM_END |
| 2561 | 2539 | |
| 2562 | 2540 | |
| r241849 | r241850 | |
| 2588 | 2566 | GAME( 1988, raimais, 0, raimais, raimais, driver_device, 0, ROT0, "Taito Corporation Japan", "Raimais (World)", 0 ) |
| 2589 | 2567 | GAME( 1988, raimaisj, raimais, raimais, raimaisj, driver_device, 0, ROT0, "Taito Corporation", "Raimais (Japan)", 0 ) |
| 2590 | 2568 | GAME( 1988, raimaisjo, raimais, raimais, raimaisj, driver_device, 0, ROT0, "Taito Corporation", "Raimais (Japan, first revision)", 0 ) |
| 2569 | ||
| 2591 | 2570 | GAME( 1988, fhawk, 0, fhawk, fhawk, driver_device, 0, ROT270, "Taito Corporation Japan", "Fighting Hawk (World)", 0 ) |
| 2592 | 2571 | GAME( 1988, fhawkj, fhawk, fhawk, fhawkj, driver_device, 0, ROT270, "Taito Corporation", "Fighting Hawk (Japan)", 0 ) |
| 2572 | ||
| 2593 | 2573 | GAME( 1989, champwr, 0, champwr, champwr, driver_device, 0, ROT0, "Taito Corporation Japan", "Champion Wrestler (World)", GAME_IMPERFECT_SOUND ) |
| 2594 | 2574 | GAME( 1989, champwru, champwr, champwr, champwru, driver_device, 0, ROT0, "Taito America Corporation", "Champion Wrestler (US)", GAME_IMPERFECT_SOUND ) |
| 2595 | 2575 | GAME( 1989, champwrj, champwr, champwr, champwrj, driver_device, 0, ROT0, "Taito Corporation", "Champion Wrestler (Japan)", GAME_IMPERFECT_SOUND ) |
| 2576 | ||
| 2596 | 2577 | GAME( 1988, kurikint, 0, kurikint, kurikint, driver_device, 0, ROT0, "Taito Corporation Japan", "Kuri Kinton (World)", 0 ) |
| 2597 | 2578 | GAME( 1988, kurikintu, kurikint, kurikint, kurikintj, driver_device, 0, ROT0, "Taito America Corporation", "Kuri Kinton (US)", 0 ) |
| 2598 | 2579 | GAME( 1988, kurikintj, kurikint, kurikint, kurikintj, driver_device, 0, ROT0, "Taito Corporation", "Kuri Kinton (Japan)", 0 ) |
| 2599 | GAME( 1988, kurikinta, kurikint, kurikinta, kurikinta, driver_device, 0, ROT0, "Taito Corporation Japan", "Kuri Kinton (World, prototype?)", 0 ) | |
| 2580 | GAME( 1988, kurikinta, kurikint, kurikint, kurikinta, driver_device, 0, ROT0, "Taito Corporation Japan", "Kuri Kinton (World, prototype?)", 0 ) | |
| 2581 | ||
| 2600 | 2582 | GAME( 1989, plotting, 0, plotting, plotting, driver_device, 0, ROT0, "Taito Corporation Japan", "Plotting (World set 1)", 0 ) |
| 2601 | 2583 | GAME( 1989, plottinga, plotting, plotting, plotting, taitol_state, plottinga, ROT0, "Taito Corporation Japan", "Plotting (World set 2, protected)", 0 ) |
| 2602 | 2584 | GAME( 1989, plottingb, plotting, plotting, plotting, driver_device, 0, ROT0, "Taito Corporation Japan", "Plotting (World set 3, earliest version)", 0 ) |
| 2603 | 2585 | GAME( 1989, plottingu, plotting, plotting, plotting, driver_device, 0, ROT0, "Taito America Corporation", "Plotting (US)", 0 ) |
| 2604 | 2586 | GAME( 1989, flipull, plotting, plotting, plotting, driver_device, 0, ROT0, "Taito Corporation", "Flipull (Japan)", 0 ) |
| 2587 | ||
| 2605 | 2588 | GAME( 1989, puzznic, 0, puzznic, puzznic, driver_device, 0, ROT0, "Taito Corporation Japan", "Puzznic (World)", 0 ) |
| 2606 | 2589 | GAME( 1989, puzznicj, puzznic, puzznic, puzznic, driver_device, 0, ROT0, "Taito Corporation", "Puzznic (Japan)", 0 ) |
| 2607 | 2590 | GAME( 1989, puzznici, puzznic, puzznici, puzznic, driver_device, 0, ROT0, "bootleg", "Puzznic (Italian bootleg)", 0 ) |
| 2591 | ||
| 2608 | 2592 | GAME( 1990, horshoes, 0, horshoes, horshoes, driver_device, 0, ROT270, "Taito America Corporation", "American Horseshoes (US)", 0 ) |
| 2593 | ||
| 2609 | 2594 | GAME( 1990, palamed, 0, palamed, palamed, driver_device, 0, ROT0, "Taito Corporation", "Palamedes (Japan)", 0 ) |
| 2595 | ||
| 2610 | 2596 | GAME( 1993, cachat, 0, cachat, cachat, driver_device, 0, ROT0, "Taito Corporation", "Cachat (Japan)", 0 ) |
| 2611 | GAME( 1993, tubeit, cachat, cachat, tubeit, driver_device, 0, ROT0, "Taito Corporation", "Tube-It", 0 ) // No (c) message | |
| 2612 | 2597 | |
| 2598 | GAME( 1993, tubeit, cachat, cachat, tubeit, driver_device, 0, ROT0, "bootleg", "Tube-It", 0 ) // No (c) message | |
| 2599 | ||
| 2613 | 2600 | GAME( 199?, cubybop, 0, cachat, cubybop, driver_device, 0, ROT0, "Hot-B", "Cuby Bop (location test)", 0 ) // No (c) message, but Hot-B company logo in tile gfx |
| 2601 | ||
| 2614 | 2602 | GAME( 1992, plgirls, 0, cachat, plgirls, driver_device, 0, ROT270, "Hot-B", "Play Girls", 0 ) |
| 2615 | 2603 | GAME( 1992, lagirl, plgirls, cachat, plgirls, driver_device, 0, ROT270, "bootleg", "LA Girl", 0 ) // bootleg hardware with changed title & backgrounds |
| 2604 | ||
| 2616 | 2605 | GAME( 1993, plgirls2, 0, cachat, plgirls2, driver_device, 0, ROT270, "Hot-B", "Play Girls 2", 0 ) |
| 2606 | GAME( 1993, plgirls2b, plgirls2, cachat, plgirls2, driver_device, 0, ROT270, "bootleg", "Play Girls 2 (bootleg)", 0 ) // bootleg hardware (regular Z80 etc. instead of TC0090LVC, but acts the same) | |
| 2617 | 2607 | |
| 2618 | GAME( 1990, evilston, 0, evilston, evilston, driver_device, 0, ROT270, "Spacy Industrial, Ltd.", "Evil Stone", GAME_IMPERFECT_SOUND ) | |
| 2608 | GAME( 1990, evilston, 0, evilston, evilston, driver_device, 0, ROT270, "Spacy Industrial, Ltd.", "Evil Stone", GAME_IMPERFECT_SOUND ) // not Taito PCB, just uses TC0090LVC |
| r241849 | r241850 | |
|---|---|---|
| 7 | 7 | |
| 8 | 8 | Board Info (Underfire): |
| 9 | 9 | |
| 10 | TC0470LIN : ? | |
| 10 | TC0470LIN : object line buffer? | |
| 11 | 11 | TC0480SCP : known tilemap chip |
| 12 | 12 | TC0510NIO : known input chip |
| 13 | 13 | TC0570SPC : must be the object chip (next to spritemap and OBJ roms) |
| 14 | TC0590PIV : Piv tilemaps | |
| 15 | TC0620SCC : lightgun ??? pivot port ??? | |
| 14 | TC0590PIV : object related??? | |
| 15 | TC0620SCC : tilemap chip (6bpp version of TC0100SCN) | |
| 16 | 16 | TC0650FDA : palette ? (Slapshot and F3 games also have one) |
| 17 | 17 | |
| 18 | 18 | M43E0278A |
| r241849 | r241850 | |
| 46 | 46 | |
| 47 | 47 | Under Fire combines the sprite system used in Taito Z games with |
| 48 | 48 | the TC0480SCP tilemap chip plus some features from the Taito F3 system. |
| 49 | It has an extra tilemap chip which is a dead ringer for the TC0100SCN | |
| 50 | (check the inits). Why did Taito give it a different name in this | |
| 51 | incarnation? | |
| 49 | It has an extra TC0620SCC tilemap chip which is a 6bpp version of the | |
| 50 | TC0100SCN (check the inits). | |
| 52 | 51 | |
| 53 | 52 | |
| 54 | 53 | Game misbehaviours |
| r241849 | r241850 | |
| 452 | 451 | AM_RANGE(0x700000, 0x7007ff) AM_RAM AM_SHARE("snd_shared") |
| 453 | 452 | AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, long_r, long_w) /* tilemaps */ |
| 454 | 453 | AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_long_r, ctrl_long_w) |
| 455 | AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, long_r, long_w) /* p | |
| 454 | AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, long_r, long_w) /* 6bpp tilemaps */ | |
| 456 | 455 | AM_RANGE(0x920000, 0x92000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_long_r, ctrl_long_w) |
| 457 | 456 | AM_RANGE(0xa00000, 0xa0ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") |
| 458 | 457 | AM_RANGE(0xb00000, 0xb003ff) AM_RAM /* single bytes, blending ??? */ |
| r241849 | r241850 | |
| 471 | 470 | AM_RANGE(0x700000, 0x7007ff) AM_RAM AM_SHARE("snd_shared") |
| 472 | 471 | AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, long_r, long_w) /* tilemaps */ |
| 473 | 472 | AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE("tc0480scp", tc0480scp_device, ctrl_long_r, ctrl_long_w) |
| 474 | AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, long_r, long_w) /* p | |
| 473 | AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, long_r, long_w) /* 6bpp tilemaps */ | |
| 475 | 474 | AM_RANGE(0x920000, 0x92000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_long_r, ctrl_long_w) |
| 476 | 475 | AM_RANGE(0xa00000, 0xa0ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") |
| 477 | 476 | AM_RANGE(0xb00000, 0xb0000f) AM_RAM /* ? */ |
| r241849 | r241850 | |
| 639 | 638 | 128*8 /* every sprite takes 128 consecutive bytes */ |
| 640 | 639 | }; |
| 641 | 640 | |
| 642 | static const gfx_layout | |
| 641 | static const gfx_layout scclayout = | |
| 643 | 642 | { |
| 644 | 643 | 8,8, /* 8*8 characters */ |
| 645 | 644 | RGN_FRAC(1,2), |
| r241849 | r241850 | |
| 653 | 652 | static GFXDECODE_START( undrfire ) |
| 654 | 653 | GFXDECODE_ENTRY( "gfx2", 0x0, tile16x16_layout, 0, 512 ) |
| 655 | 654 | GFXDECODE_ENTRY( "gfx1", 0x0, charlayout, 0, 512 ) |
| 656 | GFXDECODE_ENTRY( "gfx3", 0x0, | |
| 655 | GFXDECODE_ENTRY( "gfx3", 0x0, scclayout, 0, 512 ) | |
| 657 | 656 | GFXDECODE_END |
| 658 | 657 | |
| 659 | 658 | static GFXDECODE_START( cbombers ) |
| 660 | 659 | GFXDECODE_ENTRY( "gfx2", 0x0, tile16x16_layout, 0, 512 ) |
| 661 | 660 | GFXDECODE_ENTRY( "gfx1", 0x0, charlayout, 0x1000, 512 ) |
| 662 | GFXDECODE_ENTRY( "gfx3", 0x0, | |
| 661 | GFXDECODE_ENTRY( "gfx3", 0x0, scclayout, 0, 512 ) | |
| 663 | 662 | GFXDECODE_END |
| 664 | 663 | |
| 665 | 664 | /*********************************************************** |
| r241849 | r241850 | |
| 754 | 753 | MCFG_TC0480SCP_TX_REGION(4) |
| 755 | 754 | MCFG_TC0480SCP_OFFSETS(0x24, 0) |
| 756 | 755 | MCFG_TC0480SCP_OFFSETS_TX(-1, 0) |
| 756 | MCFG_TC0480SCP_COL_BASE(4096) | |
| 757 | 757 | MCFG_TC0480SCP_GFXDECODE("gfxdecode") |
| 758 | 758 | MCFG_TC0480SCP_PALETTE("palette") |
| 759 | 759 | |
| r241849 | r241850 | |
| 1098 | 1098 | int size=memregion("gfx3")->bytes(); |
| 1099 | 1099 | int data; |
| 1100 | 1100 | |
| 1101 | /* make | |
| 1101 | /* make SCC tile GFX format suitable for gfxdecode */ | |
| 1102 | 1102 | offset = size/2; |
| 1103 | 1103 | for (i = size/2+size/4; i<size; i++) |
| 1104 | 1104 | { |
| r241849 | r241850 | |
| 1128 | 1128 | int data; |
| 1129 | 1129 | |
| 1130 | 1130 | |
| 1131 | /* make | |
| 1131 | /* make SCC tile GFX format suitable for gfxdecode */ | |
| 1132 | 1132 | offset = size/2; |
| 1133 | 1133 | for (i = size/2+size/4; i<size; i++) |
| 1134 | 1134 | { |
| r241849 | r241850 | |
| 1154 | 1154 | GAME( 1993, undrfire, 0, undrfire, undrfire, undrfire_state, undrfire, ROT0, "Taito Corporation Japan", "Under Fire (World)", 0 ) |
| 1155 | 1155 | GAME( 1993, undrfireu, undrfire, undrfire, undrfire, undrfire_state, undrfire, ROT0, "Taito America Corporation", "Under Fire (US)", 0 ) |
| 1156 | 1156 | GAME( 1993, undrfirej, undrfire, undrfire, undrfire, undrfire_state, undrfire, ROT0, "Taito Corporation", "Under Fire (Japan)", 0 ) |
| 1157 | GAMEL(1994, cbombers, 0, cbombers, cbombers, undrfire_state, cbombers, ROT0, "Taito Corporation Japan", "Chase Bombers (World)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS, layout_cbombers ) | |
| 1158 | GAMEL(1994, cbombersj, cbombers, cbombers, cbombers, undrfire_state, cbombers, ROT0, "Taito Corporation", "Chase Bombers (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS, layout_cbombers ) | |
| 1159 | GAMEL(1994, cbombersp, cbombers, cbombers, cbombers, undrfire_state, cbombers, ROT0, "Taito Corporation", "Chase Bombers (Japan Prototype)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS, layout_cbombers ) | |
| 1157 | GAMEL(1994, cbombers, 0, cbombers, cbombers, undrfire_state, cbombers, ROT0, "Taito Corporation Japan", "Chase Bombers (World)", GAME_IMPERFECT_GRAPHICS, layout_cbombers ) | |
| 1158 | GAMEL(1994, cbombersj, cbombers, cbombers, cbombers, undrfire_state, cbombers, ROT0, "Taito Corporation", "Chase Bombers (Japan)", GAME_IMPERFECT_GRAPHICS, layout_cbombers ) | |
| 1159 | GAMEL(1994, cbombersp, cbombers, cbombers, cbombers, undrfire_state, cbombers, ROT0, "Taito Corporation", "Chase Bombers (Japan Prototype)", GAME_IMPERFECT_GRAPHICS, layout_cbombers ) |
| r241849 | r241850 | |
|---|---|---|
| 27 | 27 | m_spriteram(*this,"spriteram"), |
| 28 | 28 | m_eeprom(*this, "eeprom"), |
| 29 | 29 | m_gfxdecode(*this, "gfxdecode"), |
| 30 | m_palette(*this, "palette"), | |
| 31 | m_generic_paletteram_32(*this, "paletteram") | |
| 30 | m_palette(*this, "palette") | |
| 32 | 31 | { |
| 33 | 32 | m_coin_lockout = true; |
| 34 | 33 | } |
| r241849 | r241850 | |
| 40 | 39 | required_device<eeprom_serial_93cxx_device> m_eeprom; |
| 41 | 40 | required_device<gfxdecode_device> m_gfxdecode; |
| 42 | 41 | required_device<palette_device> m_palette; |
| 43 | required_shared_ptr<UINT32> m_generic_paletteram_32; | |
| 44 | 42 | |
| 45 | 43 | bool m_coin_lockout; |
| 46 | 44 | UINT16 m_coin_word; |
| 47 | 45 | struct tempsprite *m_spritelist; |
| 48 | 46 | UINT32 m_mem[2]; |
| 49 | 47 | |
| 50 | DECLARE_WRITE32_MEMBER(gunbustr_palette_w); | |
| 51 | 48 | DECLARE_WRITE32_MEMBER(gunbustr_input_w); |
| 52 | 49 | DECLARE_WRITE32_MEMBER(motor_control_w); |
| 53 | 50 | DECLARE_READ32_MEMBER(gunbustr_gun_r); |
| r241849 | r241850 | |
|---|---|---|
| 710 | 710 | nextfase // bootleg |
| 711 | 711 | phoenixs // bootleg (Sonic) |
| 712 | 712 | avefenix // bootleg (Video Game) |
| 713 | avefenixrf // bootleg (Recreativos Franco) | |
| 713 | 714 | pleiads // (c) 1981 Tehkan |
| 714 | 715 | pleiadsb2 // bootleg |
| 715 | 716 | pleiadbl // bootleg |
| r241849 | r241850 | |
| 2277 | 2278 | cubybop // ??? no copyright message |
| 2278 | 2279 | plgirls // (c) 1992 Hot-B. |
| 2279 | 2280 | plgirls2 // (c) 1993 Hot-B. |
| 2281 | plgirls2b // | |
| 2280 | 2282 | lagirl // plgirls bootleg? |
| 2281 | 2283 | |
| 2282 | 2284 | // Taito H-System games |
| r241849 | r241850 | |
| 5256 | 5258 | aladmdb // MegaDrive-based hack |
| 5257 | 5259 | mk3mdb // MegaDrive-based hack |
| 5258 | 5260 | srmdb // MegaDrive-based hack |
| 5261 | sonic2mb // MegaDrive-based hack | |
| 5259 | 5262 | |
| 5260 | 5263 | // Sega Naomi-based (Dreamcast) systems |
| 5261 | 5264 | naomi // 1998.?? Naomi BIOS |
| r241849 | r241850 | |
| 10996 | 10999 | pepp0014a // (c) 1987 IGT - International Game Technology |
| 10997 | 11000 | pepp0023 // (c) 1987 IGT - International Game Technology |
| 10998 | 11001 | pepp0040 // (c) 1987 IGT - International Game Technology |
| 11002 | pepp0040a // (c) 1987 IGT - International Game Technology | |
| 10999 | 11003 | pepp0041 // (c) 1987 IGT - International Game Technology |
| 11000 | 11004 | pepp0042 // (c) 1987 IGT - International Game Technology |
| 11001 | 11005 | pepp0043 // (c) 1987 IGT - International Game Technology |
| r241849 | r241850 | |
|---|---|---|
| 197 | 197 | { |
| 198 | 198 | address_space &space = machine().driver_data()->generic_space(); |
| 199 | 199 | UINT8 layer[5]; |
| 200 | UINT8 | |
| 200 | UINT8 scclayer[3]; | |
| 201 | 201 | UINT16 priority; |
| 202 | 202 | |
| 203 | 203 | m_tc0100scn->tilemap_update(); |
| r241849 | r241850 | |
| 211 | 211 | layer[3] = (priority & 0x000f) >> 0; /* tells us which is top */ |
| 212 | 212 | layer[4] = 4; /* text layer always over bg layers */ |
| 213 | 213 | |
| 214 | pivlayer[0] = m_tc0100scn->bottomlayer(); | |
| 215 | pivlayer[1] = pivlayer[0]^1; | |
| 216 | pivlayer[2] = 2; | |
| 214 | scclayer[0] = m_tc0100scn->bottomlayer(); | |
| 215 | scclayer[1] = scclayer[0]^1; | |
| 216 | scclayer[2] = 2; | |
| 217 | 217 | |
| 218 | 218 | screen.priority().fill(0, cliprect); |
| 219 | 219 | bitmap.fill(0, cliprect); /* wrong color? */ |
| 220 | 220 | |
| 221 | m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[0], TILEMAP_DRAW_OPAQUE, 0); | |
| 222 | m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[1], 0, 0); | |
| 221 | m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, scclayer[0], TILEMAP_DRAW_OPAQUE, 0); | |
| 222 | m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, scclayer[1], 0, 0); | |
| 223 | 223 | |
| 224 | 224 | /* BIG HACK! |
| 225 | 225 | |
| r241849 | r241850 | |
| 244 | 244 | m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); |
| 245 | 245 | m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[3], 0, 8); |
| 246 | 246 | |
| 247 | //m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, 0, | |
| 247 | //m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, 0, scclayer[2], 0, 0); | |
| 248 | 248 | |
| 249 | 249 | if (m_tc0480scp->long_r(space, 0x20 / 4, 0xffffffff) != 0x240866) /* Stupid hack for start of race */ |
| 250 | 250 | m_tc0480scp->tilemap_draw(screen, bitmap, m_hack_cliprect, layer[0], 0, 0); |
| r241849 | r241850 | |
| 257 | 257 | m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[2], 0, 4); |
| 258 | 258 | m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[3], 0, 8); |
| 259 | 259 | |
| 260 | m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, | |
| 260 | m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, scclayer[2], 0, 0); | |
| 261 | 261 | |
| 262 | 262 | draw_sprites(screen, bitmap, cliprect, 0, 44, -574); |
| 263 | 263 | } |
| r241849 | r241850 | |
|---|---|---|
| 347 | 347 | { |
| 348 | 348 | address_space &space = machine().driver_data()->generic_space(); |
| 349 | 349 | UINT8 layer[5]; |
| 350 | UINT8 | |
| 350 | UINT8 scclayer[3]; | |
| 351 | 351 | UINT16 priority; |
| 352 | 352 | |
| 353 | 353 | #ifdef MAME_DEBUG |
| 354 | 354 | if (machine().input().code_pressed_once (KEYCODE_X)) |
| 355 | 355 | { |
| 356 | 356 | m_dislayer[5] ^= 1; |
| 357 | popmessage(" | |
| 357 | popmessage("scc text: %01x",m_dislayer[5]); | |
| 358 | 358 | } |
| 359 | 359 | if (machine().input().code_pressed_once (KEYCODE_C)) |
| 360 | 360 | { |
| r241849 | r241850 | |
| 398 | 398 | layer[3] = (priority & 0x000f) >> 0; /* tells us which is top */ |
| 399 | 399 | layer[4] = 4; /* text layer always over bg layers */ |
| 400 | 400 | |
| 401 | pivlayer[0] = m_tc0100scn->bottomlayer(); | |
| 402 | pivlayer[1] = pivlayer[0] ^ 1; | |
| 403 | pivlayer[2] = 2; | |
| 401 | scclayer[0] = m_tc0100scn->bottomlayer(); | |
| 402 | scclayer[1] = scclayer[0] ^ 1; | |
| 403 | scclayer[2] = 2; | |
| 404 | 404 | |
| 405 | 405 | screen.priority().fill(0, cliprect); |
| 406 | 406 | bitmap.fill(0, cliprect); /* wrong color? */ |
| 407 | 407 | |
| 408 | 408 | |
| 409 | /* The " | |
| 409 | /* The "SCC" chip seems to be a 6bpp TC0100SCN. It has a | |
| 410 | 410 | bottom layer usually full of bright garish colors that |
| 411 | 411 | vaguely mimic the structure of the layers on top. Seems |
| 412 | 412 | pointless - it's always hidden by other layers. Does it |
| 413 | 413 | serve some blending pupose ? */ |
| 414 | 414 | |
| 415 | m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[0], TILEMAP_DRAW_OPAQUE, 0); | |
| 416 | m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[1], 0, 0); | |
| 415 | m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, scclayer[0], TILEMAP_DRAW_OPAQUE, 0); | |
| 416 | m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, scclayer[1], 0, 0); | |
| 417 | 417 | |
| 418 | 418 | #ifdef MAME_DEBUG |
| 419 | 419 | if (m_dislayer[layer[0]]==0) |
| r241849 | r241850 | |
| 455 | 455 | #ifdef MAME_DEBUG |
| 456 | 456 | if (m_dislayer[5]==0) |
| 457 | 457 | #endif |
| 458 | m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, | |
| 458 | m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, scclayer[2], 0, 0); /* TC0620SCC text layer */ | |
| 459 | 459 | |
| 460 | 460 | m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[4], 0, 0); /* TC0480SCP text layer */ |
| 461 | 461 | |
| r241849 | r241850 | |
| 488 | 488 | { |
| 489 | 489 | address_space &space = machine().driver_data()->generic_space(); |
| 490 | 490 | UINT8 layer[5]; |
| 491 | UINT8 | |
| 491 | UINT8 scclayer[3]; | |
| 492 | 492 | UINT16 priority; |
| 493 | 493 | |
| 494 | 494 | #ifdef MAME_DEBUG |
| 495 | 495 | if (machine().input().code_pressed_once (KEYCODE_X)) |
| 496 | 496 | { |
| 497 | 497 | m_dislayer[5] ^= 1; |
| 498 | popmessage(" | |
| 498 | popmessage("scc text: %01x",m_dislayer[5]); | |
| 499 | 499 | } |
| 500 | 500 | if (machine().input().code_pressed_once (KEYCODE_C)) |
| 501 | 501 | { |
| r241849 | r241850 | |
| 539 | 539 | layer[3] = (priority & 0x000f) >> 0; /* tells us which is top */ |
| 540 | 540 | layer[4] = 4; /* text layer always over bg layers */ |
| 541 | 541 | |
| 542 | pivlayer[0] = m_tc0100scn->bottomlayer(); | |
| 543 | pivlayer[1] = pivlayer[0] ^ 1; | |
| 544 | pivlayer[2] = 2; | |
| 542 | scclayer[0] = m_tc0100scn->bottomlayer(); | |
| 543 | scclayer[1] = scclayer[0] ^ 1; | |
| 544 | scclayer[2] = 2; | |
| 545 | 545 | |
| 546 | 546 | screen.priority().fill(0, cliprect); |
| 547 | 547 | bitmap.fill(0, cliprect); /* wrong color? */ |
| 548 | 548 | |
| 549 | 549 | |
| 550 | /* The " | |
| 550 | /* The "SCC" chip seems to be a 6bpp TC0100SCN. It has a | |
| 551 | 551 | bottom layer usually full of bright garish colors that |
| 552 | 552 | vaguely mimic the structure of the layers on top. Seems |
| 553 | 553 | pointless - it's always hidden by other layers. Does it |
| 554 | 554 | serve some blending pupose ? */ |
| 555 | 555 | |
| 556 | m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[0], TILEMAP_DRAW_OPAQUE, 0); | |
| 557 | m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, pivlayer[1], 0, 0); | |
| 556 | m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, scclayer[0], TILEMAP_DRAW_OPAQUE, 0); | |
| 557 | m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, scclayer[1], 0, 0); | |
| 558 | 558 | |
| 559 | 559 | #ifdef MAME_DEBUG |
| 560 | 560 | if (m_dislayer[layer[0]]==0) |
| r241849 | r241850 | |
| 596 | 596 | #ifdef MAME_DEBUG |
| 597 | 597 | if (m_dislayer[5]==0) |
| 598 | 598 | #endif |
| 599 | m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, | |
| 599 | m_tc0100scn->tilemap_draw(screen, bitmap, cliprect, scclayer[2], 0, 0); /* TC0620SCC text layer */ | |
| 600 | 600 | |
| 601 | 601 | m_tc0480scp->tilemap_draw(screen, bitmap, cliprect, layer[4], 0, 0); /* TC0480SCP text layer */ |
| 602 | 602 |
| r241849 | r241850 | |
|---|---|---|
| 15 | 15 | |
| 16 | 16 | TODO: |
| 17 | 17 | - write_r doesn't look right, maybe something missing in cpu emulation |
| 18 | - correct output_pla | |
| 19 | 18 | - layout |
| 20 | 19 | |
| 21 | 20 | ***************************************************************************/ |
| r241849 | r241850 | |
| 59 | 58 | READ8_MEMBER(comp4_state::read_k) |
| 60 | 59 | { |
| 61 | 60 | UINT8 k = 0; |
| 61 | ||
| 62 | // read selected button rows | |
| 63 | for (int i = 0; i < 3; i++) | |
| 64 | if (m_o & (1 << (i + 1))) | |
| 65 | k |= m_button_matrix[i]->read(); | |
| 62 | 66 | |
| 63 | if (m_o == 0) | |
| 64 | k |= m_button_matrix[0]->read(); | |
| 65 | else if (m_o == 1) | |
| 66 | k |= m_button_matrix[1]->read(); | |
| 67 | else if (m_o == 2) | |
| 68 | k |= m_button_matrix[2]->read(); | |
| 69 | ||
| 70 | 67 | return k; |
| 71 | 68 | } |
| 72 | 69 | |
| 73 | 70 | WRITE16_MEMBER(comp4_state::write_r) |
| 74 | 71 | { |
| 75 | // LEDs | |
| 72 | // R..: LEDs | |
| 76 | 73 | m_r = data; |
| 77 | 74 | } |
| 78 | 75 | |
| 79 | 76 | WRITE16_MEMBER(comp4_state::write_o) |
| 80 | 77 | { |
| 81 | // O0: LEDs (common) | |
| 78 | // O0?: LEDs (common) | |
| 82 | 79 | // O1-O3: input mux |
| 83 | 80 | // other bits: N/C |
| 84 | 81 | m_o = data; |
| r241849 | r241850 | |
| 94 | 91 | |
| 95 | 92 | static INPUT_PORTS_START( comp4 ) |
| 96 | 93 | PORT_START("IN.0") |
| 97 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CODE(KEYCODE_R) PORT_CODE(KEYCODE_DEL_PAD) PORT_NAME("R") | |
| 98 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4") | |
| 99 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1") | |
| 100 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("7") | |
| 94 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_R) PORT_CODE(KEYCODE_DEL_PAD) PORT_NAME("R") | |
| 95 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4") | |
| 96 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1") | |
| 97 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("7") | |
| 101 | 98 | |
| 102 | 99 | PORT_START("IN.1") |
| 103 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("0") | |
| 104 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("5") | |
| 105 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2") | |
| 106 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("8") | |
| 100 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("0") | |
| 101 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("5") | |
| 102 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2") | |
| 103 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("8") | |
| 107 | 104 | |
| 108 | 105 | PORT_START("IN.2") |
| 109 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON9 ) PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("E") | |
| 110 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON10 ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6") | |
| 111 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON11 ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3") | |
| 112 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON12 ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9") | |
| 106 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("E") | |
| 107 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6") | |
| 108 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3") | |
| 109 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9") | |
| 113 | 110 | INPUT_PORTS_END |
| 114 | 111 | |
| 115 | 112 | |
| r241849 | r241850 | |
| 132 | 129 | |
| 133 | 130 | static const UINT16 comp4_output_pla[0x20] = |
| 134 | 131 | { |
| 135 | /* O output PLA configuration currently unknown */ | |
| 136 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, | |
| 137 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, | |
| 138 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, | |
| 139 | 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f | |
| 132 | // many unused bits, only O0 is actually used as external out | |
| 133 | 0xda, 0x96, 0x9b, 0x97, 0x98, 0x94, 0x99, 0x95, | |
| 134 | 0x9a, 0xa0, 0x94, 0x02, 0x35, 0x4a, 0x41, 0x00, | |
| 135 | 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, | |
| 136 | 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00 | |
| 140 | 137 | }; |
| 141 | 138 | |
| 142 | 139 |
| r241849 | r241850 | |
|---|---|---|
| 144 | 144 | |
| 145 | 145 | static INPUT_PORTS_START( merlin ) |
| 146 | 146 | PORT_START("O.0") |
| 147 | PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME("Button 0") | |
| 148 | PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON2) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("Button 1") | |
| 149 | PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON4) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("Button 3") | |
| 150 | PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON3) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Button 2") | |
| 147 | PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME("Button 0") | |
| 148 | PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("Button 1") | |
| 149 | PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("Button 3") | |
| 150 | PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("Button 2") | |
| 151 | 151 | |
| 152 | 152 | PORT_START("O.1") |
| 153 | PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON5) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Button 4") | |
| 154 | PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON6) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Button 5") | |
| 155 | PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON8) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("Button 7") | |
| 156 | PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON7) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("Button 6") | |
| 153 | PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Button 4") | |
| 154 | PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("Button 5") | |
| 155 | PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("Button 7") | |
| 156 | PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("Button 6") | |
| 157 | 157 | |
| 158 | 158 | PORT_START("O.2") |
| 159 | PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON9) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Button 8") | |
| 160 | PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON10) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Button 9") | |
| 161 | PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON13) PORT_CODE(KEYCODE_S) PORT_NAME("Same Game") | |
| 162 | PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON11) PORT_CODE(KEYCODE_MINUS) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("Button 10") | |
| 159 | PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("Button 8") | |
| 160 | PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("Button 9") | |
| 161 | PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_S) PORT_NAME("Same Game") | |
| 162 | PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_MINUS) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("Button 10") | |
| 163 | 163 | |
| 164 | 164 | PORT_START("O.3") |
| 165 | 165 | PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) |
| 166 | PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_BUTTON15) PORT_CODE(KEYCODE_C) PORT_NAME("Comp Turn") | |
| 167 | PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_BUTTON14) PORT_CODE(KEYCODE_H) PORT_NAME("Hit Me") | |
| 168 | PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_BUTTON12) PORT_CODE(KEYCODE_N) PORT_NAME("New Game") | |
| 166 | PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_C) PORT_NAME("Comp Turn") | |
| 167 | PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_H) PORT_NAME("Hit Me") | |
| 168 | PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_CODE(KEYCODE_N) PORT_NAME("New Game") | |
| 169 | 169 | INPUT_PORTS_END |
| 170 | 170 | |
| 171 | 171 |
| r241849 | r241850 | |
|---|---|---|
| 422 | 422 | ROM_LOAD( "oliv_m15.bin",0xfc000, 0x04000, CRC(bf2ef795) SHA1(02d497131f5ca2c78f2accd38ab0eab6813e3ebf)) |
| 423 | 423 | ROM_END |
| 424 | 424 | |
| 425 | // Siemens PC-D (80186) | |
| 426 | ROM_START( pcd ) | |
| 427 | ROM_REGION(0x100000,"maincpu", 0) | |
| 428 | ROM_LOAD16_BYTE( "sni_pcd1.bin", 0xfc001, 0x2000, CRC(e20244dd) SHA1(0ebc5ddb93baacd9106f1917380de58aac64fe73)) | |
| 429 | ROM_LOAD16_BYTE( "sni_pcd2.bin", 0xfc000, 0x2000, CRC(e03db2ec) SHA1(fcae8b0c9e7543706817b0a53872826633361fda)) | |
| 430 | ROM_END | |
| 431 | ||
| 432 | 425 | ROM_START( olypeopl ) |
| 433 | 426 | ROM_REGION(0x100000,"maincpu", 0) |
| 434 | 427 | ROM_LOAD16_BYTE( "uo1271c0.bin", 0xfe000, 0x1000, CRC(c9187bce) SHA1(464e1f96046657b49afa4223ede1040650643d58)) |
| r241849 | r241850 | |
| 516 | 509 | |
| 517 | 510 | COMP( 1985, pc7000, ibm5150, 0, pccga, pccga, driver_device, 0, "Sharp", "PC-7000", GAME_NOT_WORKING) |
| 518 | 511 | |
| 519 | COMP( 198?, pcd, ibm5150, 0, pccga, pccga, driver_device, 0, "Siemens", "PC-D", GAME_NOT_WORKING) | |
| 520 | 512 | COMP( 198?, olypeopl, ibm5150, 0, pccga, pccga, driver_device, 0, "Olympia", "People PC", GAME_NOT_WORKING) |
| 521 | 513 | COMP( 1988, sx16, ibm5150, 0, pccga, pccga, driver_device, 0, "Sanyo", "SX-16", GAME_NOT_WORKING) |
| 522 | 514 | COMP( 198?, mbc16, ibm5150, 0, pccga, pccga, driver_device, 0, "Sanyo", "MBC-16" , GAME_NOT_WORKING) |
| r0 | r241850 | |
|---|---|---|
| 1 | /*************************************************************************** | |
| 2 | ||
| 3 | Siemens PC-D | |
| 4 | ||
| 5 | license: MAME, GPL-2.0+ | |
| 6 | copyright-holders: Dirk Best | |
| 7 | ||
| 8 | Skeleton driver | |
| 9 | ||
| 10 | ***************************************************************************/ | |
| 11 | ||
| 12 | #include "emu.h" | |
| 13 | #include "cpu/i86/i186.h" | |
| 14 | #include "machine/ram.h" | |
| 15 | #include "machine/pic8259.h" | |
| 16 | #include "machine/mc2661.h" | |
| 17 | #include "machine/wd_fdc.h" | |
| 18 | #include "machine/mc146818.h" | |
| 19 | #include "sound/speaker.h" | |
| 20 | ||
| 21 | ||
| 22 | //************************************************************************** | |
| 23 | // TYPE DEFINITIONS | |
| 24 | //************************************************************************** | |
| 25 | ||
| 26 | class pcd_state : public driver_device | |
| 27 | { | |
| 28 | public: | |
| 29 | pcd_state(const machine_config &mconfig, device_type type, const char *tag) : | |
| 30 | driver_device(mconfig, type, tag), | |
| 31 | m_maincpu(*this, "maincpu"), | |
| 32 | m_pic1(*this, "pic1"), | |
| 33 | m_pic2(*this, "pic2"), | |
| 34 | m_speaker(*this, "speaker"), | |
| 35 | m_fdc(*this, "fdc"), | |
| 36 | m_rtc(*this, "rtc") | |
| 37 | { } | |
| 38 | ||
| 39 | DECLARE_WRITE_LINE_MEMBER( pic1_irq ); | |
| 40 | DECLARE_READ8_MEMBER( pic1_slave_ack_r ); | |
| 41 | TIMER_DEVICE_CALLBACK_MEMBER( timer0_tick ); | |
| 42 | DECLARE_WRITE_LINE_MEMBER( i186_timer1_w ); | |
| 43 | ||
| 44 | DECLARE_READ8_MEMBER( crt_data_r ); | |
| 45 | DECLARE_WRITE8_MEMBER( crt_data_w ); | |
| 46 | DECLARE_READ8_MEMBER( crt_status_r ); | |
| 47 | ||
| 48 | protected: | |
| 49 | // driver_device overrides | |
| 50 | virtual void machine_start(); | |
| 51 | ||
| 52 | private: | |
| 53 | required_device<i80186_cpu_device> m_maincpu; | |
| 54 | required_device<pic8259_device> m_pic1; | |
| 55 | required_device<pic8259_device> m_pic2; | |
| 56 | required_device<speaker_sound_device> m_speaker; | |
| 57 | required_device<wd2793_t> m_fdc; | |
| 58 | required_device<mc146818_device> m_rtc; | |
| 59 | }; | |
| 60 | ||
| 61 | ||
| 62 | //************************************************************************** | |
| 63 | // MACHINE EMULATION | |
| 64 | //************************************************************************** | |
| 65 | ||
| 66 | void pcd_state::machine_start() | |
| 67 | { | |
| 68 | } | |
| 69 | ||
| 70 | WRITE_LINE_MEMBER( pcd_state::pic1_irq ) | |
| 71 | { | |
| 72 | logerror("pic1 irq: %d\n", state); | |
| 73 | } | |
| 74 | ||
| 75 | READ8_MEMBER( pcd_state::pic1_slave_ack_r ) | |
| 76 | { | |
| 77 | if (offset == 0) // irq 0 | |
| 78 | return m_pic2->acknowledge(); | |
| 79 | ||
| 80 | return 0x00; | |
| 81 | } | |
| 82 | ||
| 83 | TIMER_DEVICE_CALLBACK_MEMBER( pcd_state::timer0_tick ) | |
| 84 | { | |
| 85 | m_maincpu->tmrin0_w(0); | |
| 86 | m_maincpu->tmrin0_w(1); | |
| 87 | } | |
| 88 | ||
| 89 | WRITE_LINE_MEMBER( pcd_state::i186_timer1_w ) | |
| 90 | { | |
| 91 | m_speaker->level_w(state); | |
| 92 | } | |
| 93 | ||
| 94 | READ8_MEMBER( pcd_state::crt_data_r ) | |
| 95 | { | |
| 96 | logerror("crt_data_r @ %02x\n", offset); | |
| 97 | return 0xff; | |
| 98 | } | |
| 99 | ||
| 100 | WRITE8_MEMBER( pcd_state::crt_data_w ) | |
| 101 | { | |
| 102 | logerror("crt_data_w %02x @ %02x\n", data, offset); | |
| 103 | } | |
| 104 | ||
| 105 | READ8_MEMBER( pcd_state::crt_status_r ) | |
| 106 | { | |
| 107 | logerror("crt_status_r @ %02x\n", offset); | |
| 108 | return 0xff; | |
| 109 | } | |
| 110 | ||
| 111 | ||
| 112 | //************************************************************************** | |
| 113 | // ADDRESS MAPS | |
| 114 | //************************************************************************** | |
| 115 | ||
| 116 | static ADDRESS_MAP_START( pcd_map, AS_PROGRAM, 16, pcd_state ) | |
| 117 | AM_RANGE(0x00000, 0x3ffff) AM_RAM // fixed 256k for now | |
| 118 | AM_RANGE(0xfc000, 0xfffff) AM_ROM AM_REGION("bios", 0) | |
| 119 | ADDRESS_MAP_END | |
| 120 | ||
| 121 | static ADDRESS_MAP_START( pcd_io, AS_IO, 16, pcd_state ) | |
| 122 | ADDRESS_MAP_UNMAP_HIGH | |
| 123 | AM_RANGE(0xf900, 0xf907) AM_DEVREADWRITE8("fdc", wd2793_t, read, write, 0x00ff) | |
| 124 | AM_RANGE(0xf940, 0xf941) AM_DEVREADWRITE8("pic1", pic8259_device, read, write, 0xff00) | |
| 125 | AM_RANGE(0xf980, 0xf981) AM_READWRITE8(crt_data_r, crt_data_w, 0x00ff) AM_READ8(crt_status_r, 0xff00) | |
| 126 | // AM_RANGE(0xfa00, 0xfa7f) // pcs4-n (peripheral chip select) | |
| 127 | ADDRESS_MAP_END | |
| 128 | ||
| 129 | ||
| 130 | //************************************************************************** | |
| 131 | // MACHINE DRIVERS | |
| 132 | //************************************************************************** | |
| 133 | ||
| 134 | static SLOT_INTERFACE_START( pcd_floppies ) | |
| 135 | SLOT_INTERFACE("55f", TEAC_FD_55F) | |
| 136 | SLOT_INTERFACE("55g", TEAC_FD_55G) | |
| 137 | SLOT_INTERFACE_END | |
| 138 | ||
| 139 | static MACHINE_CONFIG_START( pcd, pcd_state ) | |
| 140 | MCFG_CPU_ADD("maincpu", I80186, XTAL_16MHz / 2) | |
| 141 | MCFG_CPU_PROGRAM_MAP(pcd_map) | |
| 142 | MCFG_CPU_IO_MAP(pcd_io) | |
| 143 | MCFG_80186_TMROUT1_HANDLER(WRITELINE(pcd_state, i186_timer1_w)) | |
| 144 | ||
| 145 | MCFG_TIMER_DRIVER_ADD_PERIODIC("timer0_tick", pcd_state, timer0_tick, attotime::from_hz(XTAL_16MHz / 2 / 16)) | |
| 146 | ||
| 147 | MCFG_PIC8259_ADD("pic1", WRITELINE(pcd_state, pic1_irq), VCC, READ8(pcd_state, pic1_slave_ack_r)) | |
| 148 | MCFG_PIC8259_ADD("pic2", DEVWRITELINE("pic1", pic8259_device, ir0_w), GND, NULL) | |
| 149 | ||
| 150 | #if 0 | |
| 151 | MCFG_RAM_ADD(RAM_TAG) | |
| 152 | MCFG_RAM_DEFAULT_SIZE("256K") | |
| 153 | MCFG_RAM_EXTRA_OPTIONS("512K,1M") | |
| 154 | #endif | |
| 155 | ||
| 156 | // floppy disk controller | |
| 157 | MCFG_WD2793x_ADD("fdc", XTAL_16MHz/2/8) | |
| 158 | MCFG_WD_FDC_INTRQ_CALLBACK(DEVWRITELINE("pic1", pic8259_device, ir6_w)) | |
| 159 | MCFG_WD_FDC_DRQ_CALLBACK(DEVWRITELINE("maincpu", i80186_cpu_device, drq1_w)) | |
| 160 | ||
| 161 | // floppy drives | |
| 162 | MCFG_FLOPPY_DRIVE_ADD("fdc:0", pcd_floppies, "55g", floppy_image_device::default_floppy_formats) | |
| 163 | MCFG_FLOPPY_DRIVE_ADD("fdc:1", pcd_floppies, "55g", floppy_image_device::default_floppy_formats) | |
| 164 | ||
| 165 | // usart | |
| 166 | MCFG_DEVICE_ADD("usart1", MC2661, XTAL_4_9152MHz) | |
| 167 | MCFG_MC2661_TXEMT_DSCHG_HANDLER(DEVWRITELINE("pic1", pic8259_device, ir2_w)) | |
| 168 | MCFG_DEVICE_ADD("usart2", MC2661, XTAL_4_9152MHz) | |
| 169 | MCFG_MC2661_TXEMT_DSCHG_HANDLER(DEVWRITELINE("pic1", pic8259_device, ir3_w)) | |
| 170 | MCFG_DEVICE_ADD("usart3", MC2661, XTAL_4_9152MHz) | |
| 171 | MCFG_MC2661_TXEMT_DSCHG_HANDLER(DEVWRITELINE("pic1", pic8259_device, ir4_w)) | |
| 172 | ||
| 173 | // sound hardware | |
| 174 | MCFG_SPEAKER_STANDARD_MONO("mono") | |
| 175 | MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0) | |
| 176 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) | |
| 177 | ||
| 178 | // rtc | |
| 179 | MCFG_MC146818_ADD("rtc", XTAL_32_768kHz) | |
| 180 | MCFG_MC146818_IRQ_HANDLER(DEVWRITELINE("pic1", pic8259_device, ir7_w)) | |
| 181 | MACHINE_CONFIG_END | |
| 182 | ||
| 183 | ||
| 184 | //************************************************************************** | |
| 185 | // ROM DEFINITIONS | |
| 186 | //************************************************************************** | |
| 187 | ||
| 188 | ROM_START( pcd ) | |
| 189 | ROM_REGION(0x4000, "bios", 0) | |
| 190 | ROM_LOAD16_BYTE("s26361-d359.d42", 0x0001, 0x2000, CRC(e20244dd) SHA1(0ebc5ddb93baacd9106f1917380de58aac64fe73)) | |
| 191 | ROM_LOAD16_BYTE("s26361-d359.d43", 0x0000, 0x2000, CRC(e03db2ec) SHA1(fcae8b0c9e7543706817b0a53872826633361fda)) | |
| 192 | ||
| 193 | // hdd (omti 5100) | |
| 194 | ROM_REGION(0x2000, "hdd", 0) | |
| 195 | ROM_LOAD("1002401-n.bin", 0x0000, 0x2000, CRC(d531e25c) SHA1(22e4762a70841b80e843a5d76175c1fdb6838e18)) | |
| 196 | ||
| 197 | // gfx card (scn2674 with 8741), to be moved | |
| 198 | ROM_REGION(0x400, "graphics", 0) | |
| 199 | ROM_LOAD("s36361-d321-v1.bin", 0x000, 0x400, CRC(69baeb2a) SHA1(98b9cd0f38c51b4988a3aed0efcf004bedd115ff)) | |
| 200 | ||
| 201 | // keyboard (8035), to be moved | |
| 202 | ROM_REGION(0x1000, "keyboard", 0) | |
| 203 | ROM_LOAD("pcd_keyboard.bin", 0x0000, 0x1000, CRC(d227d6cb) SHA1(3d6140764d3d043428c941826370ebf1597c63bd)) | |
| 204 | ROM_END | |
| 205 | ||
| 206 | ||
| 207 | //************************************************************************** | |
| 208 | // GAME DRIVERS | |
| 209 | //************************************************************************** | |
| 210 | ||
| 211 | COMP( 1984, pcd, 0, 0, pcd, 0, driver_device, 0, "Siemens", "PC-D", GAME_NOT_WORKING ) |
| r241849 | r241850 | |
|---|---|---|
| 3 | 3 | /*************************************************************************** |
| 4 | 4 | |
| 5 | 5 | Texas Instruments WIZ-A-TRON |
| 6 | * TMC0907NL | |
| 6 | * TMC0907NL DP0907BS (die labeled 0970F-07B) | |
| 7 | 7 | |
| 8 | 8 | Other handhelds assumed to be on similar hardware: |
| 9 | 9 | - Math Magic |
| r241849 | r241850 | |
| 27 | 27 | public: |
| 28 | 28 | wizatron_state(const machine_config &mconfig, device_type type, const char *tag) |
| 29 | 29 | : driver_device(mconfig, type, tag), |
| 30 | m_maincpu(*this, "maincpu") | |
| 30 | m_maincpu(*this, "maincpu"), | |
| 31 | m_button_matrix(*this, "IN") | |
| 31 | 32 | { } |
| 32 | 33 | |
| 33 | 34 | required_device<cpu_device> m_maincpu; |
| 35 | required_ioport_array<4> m_button_matrix; | |
| 34 | 36 | |
| 35 | 37 | UINT16 m_r; |
| 36 | 38 | UINT16 m_o; |
| r241849 | r241850 | |
| 52 | 54 | READ8_MEMBER(wizatron_state::read_k) |
| 53 | 55 | { |
| 54 | 56 | UINT8 k = 0; |
| 57 | ||
| 58 | // read selected button rows | |
| 59 | for (int i = 0; i < 4; i++) | |
| 60 | if (m_o & (1 << (i + 1))) | |
| 61 | k |= m_button_matrix[i]->read(); | |
| 55 | 62 | |
| 56 | 63 | return k; |
| 57 | 64 | } |
| 58 | 65 | |
| 59 | 66 | WRITE16_MEMBER(wizatron_state::write_r) |
| 60 | 67 | { |
| 68 | // R..: select digit | |
| 61 | 69 | m_r = data; |
| 62 | 70 | } |
| 63 | 71 | |
| 64 | 72 | WRITE16_MEMBER(wizatron_state::write_o) |
| 65 | 73 | { |
| 74 | // O0-O6: digit segments A-G | |
| 75 | // O1-O4: input mux | |
| 66 | 76 | m_o = data; |
| 67 | 77 | } |
| 68 | 78 | |
| r241849 | r241850 | |
| 75 | 85 | ***************************************************************************/ |
| 76 | 86 | |
| 77 | 87 | static INPUT_PORTS_START( wizatron ) |
| 88 | PORT_START("IN.0") | |
| 89 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) | |
| 90 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) | |
| 91 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) | |
| 92 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) | |
| 93 | ||
| 94 | PORT_START("IN.1") | |
| 95 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) | |
| 96 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) | |
| 97 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) | |
| 98 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) | |
| 99 | ||
| 100 | PORT_START("IN.2") | |
| 101 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) | |
| 102 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) | |
| 103 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) | |
| 104 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) | |
| 105 | ||
| 106 | PORT_START("IN.3") | |
| 107 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) | |
| 108 | PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) | |
| 109 | PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) | |
| 110 | PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) | |
| 78 | 111 | INPUT_PORTS_END |
| 79 | 112 | |
| 80 | 113 | |
| r241849 | r241850 | |
| 97 | 130 | |
| 98 | 131 | static const UINT16 wizatron_output_pla[0x20] = |
| 99 | 132 | { |
| 100 | /* O output PLA configuration currently unknown */ | |
| 101 | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, | |
| 102 | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, | |
| 103 | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, | |
| 104 | 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f | |
| 133 | // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, -, X, /, r | |
| 134 | 0x7e, 0x30, 0x6d, 0x79, 0x33, 0x5b, 0x5f, 0x70, | |
| 135 | 0x7f, 0x7b, 0x26, 0x02, 0x35, 0x4a, 0x05, 0x00, | |
| 136 | 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, | |
| 137 | 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00, 0xff00 | |
| 105 | 138 | }; |
| 106 | 139 | |
| 107 | 140 | |
| r241849 | r241850 | |
| 128 | 161 | ***************************************************************************/ |
| 129 | 162 | |
| 130 | 163 | ROM_START( wizatron ) |
| 131 | ROM_REGION( 0x0400, "maincpu", ROMREGION_ERASE00 ) | |
| 132 | ROM_LOAD( "za0379", 0x0000, 0x0400, CRC(5a6af094) SHA1(b1f27e1f13f4db3b052dd50fb08dbf9c4d8db26e) ) | |
| 164 | ROM_REGION( 0x0400, "maincpu", 0 ) | |
| 165 | ROM_LOAD( "dp0907bs", 0x0000, 0x0400, CRC(5a6af094) SHA1(b1f27e1f13f4db3b052dd50fb08dbf9c4d8db26e) ) | |
| 133 | 166 | ROM_END |
| 134 | 167 | |
| 135 | 168 |
| r241849 | r241850 | |
|---|---|---|
| 783 | 783 | $(MESSOBJ)/sega.a \ |
| 784 | 784 | $(MESSOBJ)/sgi.a \ |
| 785 | 785 | $(MESSOBJ)/sharp.a \ |
| 786 | $(MESSOBJ)/siemens.a \ | |
| 786 | 787 | $(MESSOBJ)/sinclair.a \ |
| 787 | 788 | $(MESSOBJ)/skeleton.a \ |
| 788 | 789 | $(MESSOBJ)/snk.a \ |
| r241849 | r241850 | |
| 1622 | 1623 | $(MESS_VIDEO)/zx8301.o \ |
| 1623 | 1624 | $(MESS_MACHINE)/zx8302.o \ |
| 1624 | 1625 | |
| 1626 | $(MESSOBJ)/siemens.a: \ | |
| 1627 | $(MESS_DRIVERS)/pcd.o \ | |
| 1628 | ||
| 1625 | 1629 | $(MESSOBJ)/snk.a: \ |
| 1626 | 1630 | $(MESS_DRIVERS)/ng_aes.o \ |
| 1627 | 1631 | $(MESS_DRIVERS)/ngp.o $(MESS_VIDEO)/k1ge.o \ |
| https://github.com/mamedev/mame/commit/fd0685a9efdee4fc8b98d561819db3d2fc918f52 |
| Previous | 199869 Revisions | Next |