trunk/src/mame/drivers/rowamet.c
| r31749 | r31750 | |
| 12 | 12 | You need to have a ball in the outhole (hold down X) when starting a game. |
| 13 | 13 | |
| 14 | 14 | ToDO: |
| 15 | | - Inputs |
| 16 | 15 | - Outputs |
| 17 | 16 | - Bad sound rom |
| 18 | 17 | - In PinMAME, the display cycles between various attract modes. This doesn't happen |
| r31749 | r31750 | |
| 37 | 36 | { } |
| 38 | 37 | |
| 39 | 38 | DECLARE_READ8_MEMBER(sound_r); |
| 40 | | DECLARE_READ8_MEMBER(switch_r); |
| 41 | 39 | DECLARE_WRITE8_MEMBER(mute_w); |
| 42 | 40 | DECLARE_READ8_MEMBER(io_r); |
| 43 | 41 | DECLARE_WRITE8_MEMBER(io_w); |
| r31749 | r31750 | |
| 61 | 59 | AM_RANGE(0x2803, 0x2803) AM_READ_PORT("X3") |
| 62 | 60 | AM_RANGE(0x2804, 0x2804) AM_READ_PORT("X4") |
| 63 | 61 | AM_RANGE(0x2805, 0x2805) AM_READ_PORT("X5") |
| 64 | | AM_RANGE(0x2806, 0x2806) AM_READ(switch_r) //AM_READ_PORT("X6") |
| 62 | AM_RANGE(0x2806, 0x2806) AM_READ_PORT("X6") |
| 65 | 63 | AM_RANGE(0x2807, 0x2807) AM_READ_PORT("X7") |
| 66 | 64 | AM_RANGE(0x2808, 0x2808) AM_READ_PORT("X8") |
| 67 | 65 | AM_RANGE(0x4000, 0x407f) AM_RAM |
| r31749 | r31750 | |
| 94 | 92 | |
| 95 | 93 | PORT_START("X1") |
| 96 | 94 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_X) PORT_NAME("Outhole") |
| 97 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COLON) |
| 98 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE) |
| 99 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH) |
| 100 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_0_PAD) |
| 101 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH) |
| 102 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) |
| 103 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) |
| 95 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) |
| 96 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C) |
| 97 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V) |
| 98 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B) |
| 99 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N) |
| 100 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M) |
| 101 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA) |
| 104 | 102 | |
| 105 | 103 | PORT_START("X2") |
| 106 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_1_PAD) |
| 107 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S) |
| 108 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) |
| 109 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F) |
| 110 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G) |
| 111 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H) |
| 112 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) |
| 113 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) |
| 114 | | |
| 115 | | PORT_START("X3") |
| 116 | 104 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Q) |
| 117 | 105 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_W) |
| 118 | 106 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_E) |
| 119 | 107 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_R) |
| 120 | 108 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Y) |
| 121 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE) |
| 122 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_2_PAD) |
| 123 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_3_PAD) |
| 109 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_U) |
| 110 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I) |
| 111 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O) |
| 124 | 112 | |
| 113 | PORT_START("X3") |
| 114 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_A) |
| 115 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_S) |
| 116 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_D) |
| 117 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_F) |
| 118 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_G) |
| 119 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_H) |
| 120 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J) |
| 121 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K) |
| 122 | |
| 125 | 123 | PORT_START("X4") |
| 126 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_Z) |
| 127 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_C) |
| 128 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_V) |
| 129 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_B) |
| 130 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_N) |
| 131 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_M) |
| 132 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_4_PAD) |
| 133 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) |
| 124 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_L) |
| 125 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_MINUS) |
| 126 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_EQUALS) |
| 127 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSPACE) |
| 128 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_OPENBRACE) |
| 129 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE) |
| 130 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_BACKSLASH) |
| 131 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 134 | 132 | |
| 135 | 133 | PORT_START("X5") |
| 136 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_CLOSEBRACE) |
| 137 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER) |
| 138 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_J) |
| 139 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_K) |
| 140 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_I) |
| 141 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_O) |
| 142 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) |
| 143 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) |
| 134 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 135 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 136 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 137 | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COLON) |
| 138 | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_QUOTE) |
| 139 | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER) |
| 140 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_STOP) |
| 141 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH) |
| 144 | 142 | |
| 143 | // from here might be dipswitches |
| 145 | 144 | PORT_START("X6") |
| 146 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_COMMA) |
| 147 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_STOP) |
| 148 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_6_PAD) |
| 149 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_7_PAD) |
| 150 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_8_PAD) |
| 151 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_9_PAD) |
| 152 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) |
| 153 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) |
| 145 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 154 | 146 | |
| 155 | 147 | PORT_START("X7") |
| 156 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) |
| 157 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ASTERISK) |
| 158 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_SLASH_PAD) |
| 159 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_MINUS_PAD) |
| 160 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_PLUS_PAD) |
| 161 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_CODE(KEYCODE_ENTER_PAD) |
| 162 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) |
| 163 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) |
| 148 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 164 | 149 | |
| 165 | 150 | PORT_START("X8") |
| 166 | | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) |
| 167 | | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) |
| 168 | | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) |
| 169 | | PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_OTHER ) |
| 170 | | PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) |
| 171 | | PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) |
| 172 | | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_OTHER ) |
| 173 | | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) |
| 151 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 174 | 152 | INPUT_PORTS_END |
| 175 | 153 | |
| 176 | 154 | |
| r31749 | r31750 | |
| 179 | 157 | return m_sndcmd; |
| 180 | 158 | } |
| 181 | 159 | |
| 182 | | READ8_MEMBER( rowamet_state::switch_r ) |
| 183 | | { |
| 184 | | return 0x3f; // gets stuck in a loop without this |
| 185 | | } |
| 186 | | |
| 187 | 160 | WRITE8_MEMBER( rowamet_state::mute_w ) |
| 188 | 161 | { |
| 189 | 162 | machine().sound().system_enable(~data); |