trunk/src/mame/drivers/equites.c
| r250152 | r250153 | |
| 524 | 524 | |
| 525 | 525 | |
| 526 | 526 | /******************************************************************************/ |
| 527 | | // Local Functions |
| 528 | | |
| 529 | | /******************************************************************************/ |
| 530 | 527 | // Interrupt Handlers |
| 531 | 528 | |
| 532 | | // Equites Hardware |
| 533 | 529 | TIMER_DEVICE_CALLBACK_MEMBER(equites_state::equites_scanline) |
| 534 | 530 | { |
| 535 | 531 | int scanline = param; |
| r250152 | r250153 | |
| 596 | 592 | |
| 597 | 593 | |
| 598 | 594 | /******************************************************************************/ |
| 599 | | // Main CPU Handlers |
| 595 | // CPU Handlers |
| 600 | 596 | |
| 601 | | CUSTOM_INPUT_MEMBER(equites_state::gekisou_unknown_status) |
| 597 | CUSTOM_INPUT_MEMBER(equites_state::gekisou_unknown_bit_r) |
| 602 | 598 | { |
| 603 | | return m_unknown_bit; |
| 599 | return m_gekisou_unknown_bit; |
| 604 | 600 | } |
| 605 | 601 | |
| 606 | | WRITE16_MEMBER(equites_state::gekisou_unknown_0_w) |
| 602 | WRITE16_MEMBER(equites_state::gekisou_unknown_bit_w) |
| 607 | 603 | { |
| 608 | | m_unknown_bit = 0; |
| 604 | // data bit is A16 (offset) |
| 605 | m_gekisou_unknown_bit = (offset == 0) ? 0 : 1;; |
| 609 | 606 | } |
| 610 | 607 | |
| 611 | | WRITE16_MEMBER(equites_state::gekisou_unknown_1_w) |
| 612 | | { |
| 613 | | m_unknown_bit = 1; |
| 614 | | } |
| 615 | 608 | |
| 616 | | |
| 617 | | |
| 618 | | /******************************************************************************/ |
| 619 | | // Main CPU Memory Map |
| 620 | | |
| 621 | 609 | READ16_MEMBER(equites_state::equites_spriteram_kludge_r) |
| 622 | 610 | { |
| 623 | 611 | if (m_spriteram[0] == 0x5555) |
| r250152 | r250153 | |
| 659 | 647 | } |
| 660 | 648 | |
| 661 | 649 | |
| 650 | |
| 651 | /******************************************************************************/ |
| 652 | // CPU Memory Maps |
| 653 | |
| 662 | 654 | static ADDRESS_MAP_START( equites_map, AS_PROGRAM, 16, equites_state ) |
| 663 | 655 | ADDRESS_MAP_UNMAP_HIGH |
| 664 | 656 | AM_RANGE(0x000000, 0x00ffff) AM_ROM // ROM area is written several times (dev system?) |
| 665 | | AM_RANGE(0x040000, 0x040fff) AM_RAM AM_SHARE("nvram") // nvram is for gekisou only |
| 657 | AM_RANGE(0x040000, 0x040fff) AM_RAM |
| 666 | 658 | AM_RANGE(0x080000, 0x080fff) AM_READWRITE8(equites_fg_videoram_r, equites_fg_videoram_w, 0x00ff) |
| 667 | 659 | AM_RANGE(0x0c0000, 0x0c01ff) AM_RAM_WRITE(equites_bg_videoram_w) AM_SHARE("bg_videoram") |
| 668 | 660 | AM_RANGE(0x0c0200, 0x0c0fff) AM_RAM |
| r250152 | r250153 | |
| 675 | 667 | AM_RANGE(0x18c000, 0x18c001) AM_MIRROR(0x020000) AM_MASK(0x020000) AM_WRITE(mcu_switch_w) |
| 676 | 668 | AM_RANGE(0x1c0000, 0x1c0001) AM_READ_PORT("IN0") AM_WRITE(equites_scrollreg_w) |
| 677 | 669 | AM_RANGE(0x380000, 0x380001) AM_WRITE8(equites_bgcolor_w, 0xff00) |
| 678 | | // 580000 unknown (protection?) (gekisou only, installed by DRIVER_INIT) |
| 679 | | // 5a0000 unknown (protection?) (gekisou only, installed by DRIVER_INIT) |
| 680 | 670 | AM_RANGE(0x780000, 0x780001) AM_WRITE(watchdog_reset16_w) |
| 681 | 671 | ADDRESS_MAP_END |
| 682 | 672 | |
| 673 | static ADDRESS_MAP_START( gekisou_map, AS_PROGRAM, 16, equites_state ) |
| 674 | AM_RANGE(0x040000, 0x040fff) AM_RAM AM_SHARE("nvram") // mainram is battery-backed |
| 675 | AM_RANGE(0x580000, 0x580001) AM_MIRROR(0x020000) AM_MASK(0x020000) AM_WRITE(gekisou_unknown_bit_w) |
| 676 | AM_IMPORT_FROM( equites_map ) |
| 677 | ADDRESS_MAP_END |
| 678 | |
| 679 | |
| 683 | 680 | static ADDRESS_MAP_START( splndrbt_map, AS_PROGRAM, 16, equites_state ) |
| 684 | 681 | ADDRESS_MAP_UNMAP_HIGH |
| 685 | 682 | AM_RANGE(0x000000, 0x00ffff) AM_ROM |
| 686 | | AM_RANGE(0x040000, 0x040fff) AM_RAM AM_SHARE("workram") |
| 683 | AM_RANGE(0x040000, 0x040fff) AM_RAM |
| 687 | 684 | AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0") |
| 688 | 685 | AM_RANGE(0x0c0000, 0x0c0001) AM_READ_PORT("IN1") |
| 689 | 686 | AM_RANGE(0x0c0000, 0x0c0001) AM_MIRROR(0x020000) AM_MASK(0x020000) AM_WRITE8(equites_bgcolor_w, 0xff00) // note: addressmask does not apply here |
| r250152 | r250153 | |
| 702 | 699 | AM_RANGE(0x600100, 0x6001ff) AM_RAM AM_SHARE("spriteram_2") // sprite RAM 2 (8-bit) |
| 703 | 700 | ADDRESS_MAP_END |
| 704 | 701 | |
| 702 | |
| 705 | 703 | static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, equites_state ) |
| 706 | 704 | AM_RANGE(0x0000, 0xbfff) AM_ROM |
| 707 | 705 | AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_byte_r) |
| r250152 | r250153 | |
| 780 | 778 | |
| 781 | 779 | /* this is actually a variable resistor */ |
| 782 | 780 | PORT_START(FRQ_ADJUSTER_TAG) |
| 783 | | PORT_ADJUSTER(25, "MSM5232 Clock") |
| 781 | PORT_ADJUSTER(25, "MSM5232 Clock") // approximate factory setting |
| 784 | 782 | INPUT_PORTS_END |
| 785 | 783 | |
| 786 | 784 | /******************************************************************************/ |
| r250152 | r250153 | |
| 799 | 797 | PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 800 | 798 | PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 801 | 799 | PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_UNKNOWN ) |
| 802 | | PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, equites_state,gekisou_unknown_status, NULL) |
| 800 | PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, equites_state, gekisou_unknown_bit_r, NULL) |
| 803 | 801 | |
| 804 | 802 | /* this is actually a variable resistor */ |
| 805 | 803 | PORT_START(FRQ_ADJUSTER_TAG) |
| 806 | | PORT_ADJUSTER(24, "MSM5232 Clock") |
| 804 | PORT_ADJUSTER(24, "MSM5232 Clock") // approximate factory setting |
| 807 | 805 | INPUT_PORTS_END |
| 808 | 806 | |
| 809 | 807 | /******************************************************************************/ |
| r250152 | r250153 | |
| 836 | 834 | |
| 837 | 835 | /* this is actually a variable resistor */ |
| 838 | 836 | PORT_START(FRQ_ADJUSTER_TAG) |
| 839 | | PORT_ADJUSTER(33, "MSM5232 Clock") |
| 837 | PORT_ADJUSTER(33, "MSM5232 Clock") // approximate factory setting |
| 840 | 838 | INPUT_PORTS_END |
| 841 | 839 | |
| 842 | 840 | /******************************************************************************/ |
| r250152 | r250153 | |
| 869 | 867 | |
| 870 | 868 | /* this is actually a variable resistor */ |
| 871 | 869 | PORT_START(FRQ_ADJUSTER_TAG) |
| 872 | | PORT_ADJUSTER(33, "MSM5232 Clock") |
| 870 | PORT_ADJUSTER(33, "MSM5232 Clock") // approximate factory setting |
| 873 | 871 | INPUT_PORTS_END |
| 874 | 872 | |
| 875 | 873 | /******************************************************************************/ |
| r250152 | r250153 | |
| 902 | 900 | |
| 903 | 901 | /* this is actually a variable resistor */ |
| 904 | 902 | PORT_START(FRQ_ADJUSTER_TAG) |
| 905 | | PORT_ADJUSTER(28, "MSM5232 Clock") |
| 903 | PORT_ADJUSTER(28, "MSM5232 Clock") // approximate factory setting |
| 906 | 904 | INPUT_PORTS_END |
| 907 | 905 | |
| 908 | 906 | /******************************************************************************/ |
| r250152 | r250153 | |
| 951 | 949 | |
| 952 | 950 | /* this is actually a variable resistor */ |
| 953 | 951 | PORT_START(FRQ_ADJUSTER_TAG) |
| 954 | | PORT_ADJUSTER(27, "MSM5232 Clock") |
| 952 | PORT_ADJUSTER(27, "MSM5232 Clock") // approximate factory setting |
| 955 | 953 | INPUT_PORTS_END |
| 956 | 954 | |
| 957 | 955 | |
| r250152 | r250153 | |
| 1088 | 1086 | |
| 1089 | 1087 | /******************************************************************************/ |
| 1090 | 1088 | |
| 1091 | | MACHINE_START_MEMBER(equites_state,equites) |
| 1089 | void equites_state::machine_start() |
| 1092 | 1090 | { |
| 1091 | // zerofill |
| 1092 | m_fg_char_bank = 0; |
| 1093 | m_bgcolor = 0; |
| 1094 | m_splndrbt_bg_scrollx = 0; |
| 1095 | m_splndrbt_bg_scrolly = 0; |
| 1096 | m_sound_prom_address = 0; |
| 1097 | m_dac_latch = 0; |
| 1098 | m_eq8155_port_b = 0; |
| 1099 | m_eq8155_port_a = 0; |
| 1100 | m_eq8155_port_c = 0; |
| 1101 | m_ay_port_a = 0; |
| 1102 | m_ay_port_b = 0; |
| 1103 | m_eq_cymbal_ctrl = 0; |
| 1104 | m_cymvol = 0.0; |
| 1105 | m_hihatvol = 0.0; |
| 1106 | m_timer_count = 0; |
| 1107 | m_gekisou_unknown_bit = 0; |
| 1108 | |
| 1109 | // register for savestates |
| 1093 | 1110 | save_item(NAME(m_fg_char_bank)); |
| 1094 | 1111 | save_item(NAME(m_bgcolor)); |
| 1095 | 1112 | save_item(NAME(m_splndrbt_bg_scrollx)); |
| r250152 | r250153 | |
| 1105 | 1122 | save_item(NAME(m_cymvol)); |
| 1106 | 1123 | save_item(NAME(m_hihatvol)); |
| 1107 | 1124 | save_item(NAME(m_timer_count)); |
| 1108 | | save_item(NAME(m_unknown_bit)); |
| 1125 | save_item(NAME(m_gekisou_unknown_bit)); |
| 1109 | 1126 | |
| 1110 | 1127 | m_nmi_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(equites_state::equites_nmi_callback), this)); |
| 1111 | 1128 | |
| r250152 | r250153 | |
| 1113 | 1130 | m_adjuster_timer->adjust(attotime::from_hz(60), 0, attotime::from_hz(60)); |
| 1114 | 1131 | } |
| 1115 | 1132 | |
| 1116 | | MACHINE_RESET_MEMBER(equites_state,equites) |
| 1133 | void equites_state::machine_reset() |
| 1117 | 1134 | { |
| 1118 | 1135 | flip_screen_set(0); |
| 1119 | | |
| 1120 | | m_fg_char_bank = 0; |
| 1121 | | m_bgcolor = 0; |
| 1122 | | m_splndrbt_bg_scrollx = 0; |
| 1123 | | m_splndrbt_bg_scrolly = 0; |
| 1124 | | m_sound_prom_address = 0; |
| 1125 | | m_dac_latch = 0; |
| 1126 | | m_eq8155_port_b = 0; |
| 1127 | | m_eq8155_port_a = 0; |
| 1128 | | m_eq8155_port_c = 0; |
| 1129 | | m_ay_port_a = 0; |
| 1130 | | m_ay_port_b = 0; |
| 1131 | | m_eq_cymbal_ctrl = 0; |
| 1132 | | m_cymvol = 0.0; |
| 1133 | | m_hihatvol = 0.0; |
| 1134 | | m_timer_count = 0; |
| 1135 | | m_unknown_bit = 0; |
| 1136 | 1136 | } |
| 1137 | 1137 | |
| 1138 | 1138 | |
| r250152 | r250153 | |
| 1162 | 1162 | MCFG_PALETTE_INIT_OWNER(equites_state,equites) |
| 1163 | 1163 | |
| 1164 | 1164 | MCFG_VIDEO_START_OVERRIDE(equites_state,equites) |
| 1165 | | |
| 1166 | | MCFG_MACHINE_START_OVERRIDE(equites_state,equites) |
| 1167 | | MCFG_MACHINE_RESET_OVERRIDE(equites_state,equites) |
| 1168 | 1165 | MACHINE_CONFIG_END |
| 1169 | 1166 | |
| 1170 | 1167 | static MACHINE_CONFIG_DERIVED( gekisou, equites ) |
| 1171 | 1168 | |
| 1169 | /* basic machine hardware */ |
| 1170 | MCFG_CPU_MODIFY("maincpu") |
| 1171 | MCFG_CPU_PROGRAM_MAP(gekisou_map) |
| 1172 | |
| 1172 | 1173 | // mcu not dumped, so add simulated mcu |
| 1173 | 1174 | MCFG_CPU_ADD("mcu", ALPHA8301L, 4000000/8) |
| 1174 | 1175 | MCFG_CPU_PROGRAM_MAP(mcu_map) |
| r250152 | r250153 | |
| 1204 | 1205 | MCFG_PALETTE_INIT_OWNER(equites_state,splndrbt) |
| 1205 | 1206 | |
| 1206 | 1207 | MCFG_VIDEO_START_OVERRIDE(equites_state,splndrbt) |
| 1207 | | |
| 1208 | | MCFG_MACHINE_START_OVERRIDE(equites_state,equites) |
| 1209 | | MCFG_MACHINE_RESET_OVERRIDE(equites_state,equites) |
| 1210 | 1208 | MACHINE_CONFIG_END |
| 1211 | 1209 | |
| 1212 | 1210 | static MACHINE_CONFIG_DERIVED( hvoltage, splndrbt ) |
| r250152 | r250153 | |
| 1770 | 1768 | /******************************************************************************/ |
| 1771 | 1769 | // Initializations |
| 1772 | 1770 | |
| 1773 | | void equites_state::unpack_block( const char *region, int offset, int size ) |
| 1771 | void equites_state::unpack_block(const char *region, int offset, int size) |
| 1774 | 1772 | { |
| 1775 | 1773 | UINT8 *rom = memregion(region)->base(); |
| 1776 | | int i; |
| 1777 | 1774 | |
| 1778 | | for (i = 0; i < size; ++i) |
| 1775 | for (int i = 0; i < size; i++) |
| 1779 | 1776 | { |
| 1780 | 1777 | rom[(offset + i + size)] = (rom[(offset + i)] >> 4); |
| 1781 | 1778 | rom[(offset + i)] &= 0x0f; |
| 1782 | 1779 | } |
| 1783 | 1780 | } |
| 1784 | 1781 | |
| 1785 | | void equites_state::unpack_region( const char *region ) |
| 1782 | void equites_state::unpack_region(const char *region) |
| 1786 | 1783 | { |
| 1787 | 1784 | unpack_block(region, 0x0000, 0x2000); |
| 1788 | 1785 | unpack_block(region, 0x4000, 0x2000); |
| r250152 | r250153 | |
| 1795 | 1792 | unpack_region("gfx3"); |
| 1796 | 1793 | } |
| 1797 | 1794 | |
| 1798 | | DRIVER_INIT_MEMBER(equites_state,bullfgtr) |
| 1799 | | { |
| 1800 | | unpack_region("gfx2"); |
| 1801 | | unpack_region("gfx3"); |
| 1802 | | } |
| 1803 | | |
| 1804 | | DRIVER_INIT_MEMBER(equites_state,kouyakyu) |
| 1805 | | { |
| 1806 | | unpack_region("gfx2"); |
| 1807 | | unpack_region("gfx3"); |
| 1808 | | } |
| 1809 | | |
| 1810 | | DRIVER_INIT_MEMBER(equites_state,gekisou) |
| 1811 | | { |
| 1812 | | unpack_region("gfx2"); |
| 1813 | | unpack_region("gfx3"); |
| 1814 | | |
| 1815 | | // install special handlers for unknown device (protection?) |
| 1816 | | m_maincpu->space(AS_PROGRAM).install_write_handler(0x580000, 0x580001, write16_delegate(FUNC(equites_state::gekisou_unknown_0_w),this)); |
| 1817 | | m_maincpu->space(AS_PROGRAM).install_write_handler(0x5a0000, 0x5a0001, write16_delegate(FUNC(equites_state::gekisou_unknown_1_w),this)); |
| 1818 | | } |
| 1819 | | |
| 1820 | 1795 | DRIVER_INIT_MEMBER(equites_state,splndrbt) |
| 1821 | 1796 | { |
| 1822 | 1797 | unpack_region("gfx3"); |
| r250152 | r250153 | |
| 1829 | 1804 | // Game Entries |
| 1830 | 1805 | |
| 1831 | 1806 | // Equites Hardware |
| 1832 | | GAME( 1984, equites, 0, equites, equites, equites_state, equites, ROT90, "Alpha Denshi Co.", "Equites", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) |
| 1833 | | GAME( 1984, equitess, equites, equites, equites, equites_state, equites, ROT90, "Alpha Denshi Co. (Sega license)", "Equites (Sega)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) |
| 1834 | | GAME( 1984, bullfgtr, 0, equites, bullfgtr, equites_state, bullfgtr, ROT90, "Alpha Denshi Co.", "Bull Fighter", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) |
| 1835 | | GAME( 1984, bullfgtrs,bullfgtr, equites, bullfgtr, equites_state, bullfgtr, ROT90, "Alpha Denshi Co. (Sega license)", "Bull Fighter (Sega)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) |
| 1836 | | GAME( 1985, kouyakyu, 0, equites, kouyakyu, equites_state, kouyakyu, ROT0, "Alpha Denshi Co.", "The Koukou Yakyuu", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) |
| 1837 | | GAME( 1985, gekisou, 0, gekisou, gekisou, equites_state, gekisou, ROT90, "Eastern Corp.", "Gekisou (Japan)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) |
| 1807 | GAME( 1984, equites, 0, equites, equites, equites_state, equites, ROT90, "Alpha Denshi Co.", "Equites", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) |
| 1808 | GAME( 1984, equitess, equites, equites, equites, equites_state, equites, ROT90, "Alpha Denshi Co. (Sega license)", "Equites (Sega)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) |
| 1809 | GAME( 1984, bullfgtr, 0, equites, bullfgtr, equites_state, equites, ROT90, "Alpha Denshi Co.", "Bull Fighter", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) |
| 1810 | GAME( 1984, bullfgtrs, bullfgtr, equites, bullfgtr, equites_state, equites, ROT90, "Alpha Denshi Co. (Sega license)", "Bull Fighter (Sega)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) |
| 1811 | GAME( 1985, kouyakyu, 0, equites, kouyakyu, equites_state, equites, ROT0, "Alpha Denshi Co.", "The Koukou Yakyuu", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) |
| 1812 | GAME( 1985, gekisou, 0, gekisou, gekisou, equites_state, equites, ROT90, "Eastern Corp.", "Gekisou (Japan)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) |
| 1838 | 1813 | |
| 1839 | 1814 | // Splendor Blast Hardware |
| 1840 | | GAME( 1985, splndrbt, 0, splndrbt, splndrbt, equites_state, splndrbt, ROT0, "Alpha Denshi Co.", "Splendor Blast", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) |
| 1841 | | GAME( 1985, hvoltage, 0, hvoltage, hvoltage, equites_state, splndrbt, ROT0, "Alpha Denshi Co.", "High Voltage", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) |
| 1815 | GAME( 1985, splndrbt, 0, splndrbt, splndrbt, equites_state, splndrbt, ROT0, "Alpha Denshi Co.", "Splendor Blast", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) |
| 1816 | GAME( 1985, hvoltage, 0, hvoltage, hvoltage, equites_state, splndrbt, ROT0, "Alpha Denshi Co.", "High Voltage", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) |
trunk/src/mame/includes/equites.h
| r250152 | r250153 | |
| 20 | 20 | m_bg_videoram(*this, "bg_videoram"), |
| 21 | 21 | m_spriteram(*this, "spriteram"), |
| 22 | 22 | m_spriteram_2(*this, "spriteram_2"), |
| 23 | | m_workram(*this, "workram"), |
| 24 | 23 | m_mcuram(*this, "mcuram"), |
| 25 | 24 | m_maincpu(*this, "maincpu"), |
| 26 | 25 | m_audiocpu(*this, "audiocpu"), |
| r250152 | r250153 | |
| 40 | 39 | UINT8 *m_fg_videoram; // 8bits |
| 41 | 40 | required_shared_ptr<UINT16> m_spriteram; |
| 42 | 41 | optional_shared_ptr<UINT16> m_spriteram_2; |
| 43 | | optional_shared_ptr<UINT16> m_workram; |
| 44 | 42 | optional_shared_ptr<UINT8> m_mcuram; |
| 45 | 43 | |
| 46 | 44 | /* video-related */ |
| r250152 | r250153 | |
| 65 | 63 | float m_cymvol; |
| 66 | 64 | float m_hihatvol; |
| 67 | 65 | int m_timer_count; |
| 68 | | int m_unknown_bit; // Gekisou special handling |
| 66 | int m_gekisou_unknown_bit; |
| 69 | 67 | |
| 70 | 68 | /* devices */ |
| 71 | 69 | required_device<cpu_device> m_maincpu; |
| r250152 | r250153 | |
| 85 | 83 | DECLARE_WRITE8_MEMBER(equites_dac_latch_w); |
| 86 | 84 | DECLARE_WRITE8_MEMBER(equites_8155_portb_w); |
| 87 | 85 | DECLARE_WRITE8_MEMBER(equites_8155_w); |
| 88 | | DECLARE_WRITE16_MEMBER(gekisou_unknown_0_w); |
| 89 | | DECLARE_WRITE16_MEMBER(gekisou_unknown_1_w); |
| 86 | DECLARE_WRITE16_MEMBER(gekisou_unknown_bit_w); |
| 90 | 87 | DECLARE_READ16_MEMBER(equites_spriteram_kludge_r); |
| 91 | 88 | DECLARE_READ8_MEMBER(mcu_ram_r); |
| 92 | 89 | DECLARE_WRITE8_MEMBER(mcu_ram_w); |
| r250152 | r250153 | |
| 102 | 99 | DECLARE_WRITE8_MEMBER(equites_flipb_w); |
| 103 | 100 | DECLARE_WRITE16_MEMBER(splndrbt_bg_scrollx_w); |
| 104 | 101 | DECLARE_WRITE16_MEMBER(splndrbt_bg_scrolly_w); |
| 105 | | DECLARE_CUSTOM_INPUT_MEMBER(gekisou_unknown_status); |
| 102 | DECLARE_CUSTOM_INPUT_MEMBER(gekisou_unknown_bit_r); |
| 106 | 103 | DECLARE_WRITE8_MEMBER(equites_8910porta_w); |
| 107 | 104 | DECLARE_WRITE8_MEMBER(equites_8910portb_w); |
| 108 | | DECLARE_DRIVER_INIT(bullfgtr); |
| 109 | | DECLARE_DRIVER_INIT(kouyakyu); |
| 110 | | DECLARE_DRIVER_INIT(gekisou); |
| 111 | 105 | DECLARE_DRIVER_INIT(splndrbt); |
| 112 | 106 | DECLARE_DRIVER_INIT(equites); |
| 113 | 107 | TILE_GET_INFO_MEMBER(equites_fg_info); |
| 114 | 108 | TILE_GET_INFO_MEMBER(splndrbt_fg_info); |
| 115 | 109 | TILE_GET_INFO_MEMBER(equites_bg_info); |
| 116 | 110 | TILE_GET_INFO_MEMBER(splndrbt_bg_info); |
| 117 | | DECLARE_MACHINE_START(equites); |
| 118 | | DECLARE_MACHINE_RESET(equites); |
| 119 | 111 | DECLARE_VIDEO_START(equites); |
| 120 | 112 | DECLARE_PALETTE_INIT(equites); |
| 121 | 113 | DECLARE_VIDEO_START(splndrbt); |
| r250152 | r250153 | |
| 127 | 119 | TIMER_DEVICE_CALLBACK_MEMBER(equites_scanline); |
| 128 | 120 | TIMER_DEVICE_CALLBACK_MEMBER(splndrbt_scanline); |
| 129 | 121 | DECLARE_WRITE_LINE_MEMBER(equites_msm5232_gate); |
| 130 | | void equites_draw_sprites_block( bitmap_ind16 &bitmap, const rectangle &cliprect, int start, int end ); |
| 122 | void equites_draw_sprites_block(bitmap_ind16 &bitmap, const rectangle &cliprect, int start, int end); |
| 131 | 123 | void equites_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 132 | | void splndrbt_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); |
| 133 | | void splndrbt_copy_bg( bitmap_ind16 &dst_bitmap, const rectangle &cliprect ); |
| 134 | | void equites_update_dac( ); |
| 135 | | void unpack_block( const char *region, int offset, int size ); |
| 136 | | void unpack_region( const char *region ); |
| 124 | void splndrbt_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 125 | void splndrbt_copy_bg(bitmap_ind16 &dst_bitmap, const rectangle &cliprect); |
| 126 | void equites_update_dac(); |
| 127 | void unpack_block(const char *region, int offset, int size); |
| 128 | void unpack_region(const char *region); |
| 129 | |
| 130 | virtual void machine_start(); |
| 131 | virtual void machine_reset(); |
| 137 | 132 | }; |