trunk/src/mame/drivers/zac_1.c
r17581 | r17582 | |
4 | 4 | |
5 | 5 | These games allow for up to 4 players at the same time. |
6 | 6 | Setup is via a menu - there are no dipswitches. |
7 | | Most of the games flash 6 and 9 at start- this indicates the battery is flat, |
| 7 | If you see 6 and 9 flashing at start- this indicates the battery is flat, |
8 | 8 | and a full setup is required before it can be used. |
9 | 9 | At start, the highscore will be set to a random value. Beating this score will |
10 | 10 | award a bonus. Tilting will cause the high score to advance by 100,000. |
r17581 | r17582 | |
40 | 40 | DECLARE_WRITE8_MEMBER(ctrl_w); |
41 | 41 | DECLARE_READ8_MEMBER(serial_r); |
42 | 42 | DECLARE_WRITE8_MEMBER(serial_w); |
| 43 | DECLARE_READ8_MEMBER(reset_int_r); |
43 | 44 | DECLARE_WRITE8_MEMBER(reset_int_w); |
44 | 45 | UINT8 m_t_c; |
45 | 46 | UINT8 m_out_offs; |
r17581 | r17582 | |
60 | 61 | ADDRESS_MAP_GLOBAL_MASK(0x1fff) |
61 | 62 | AM_RANGE(0x0000, 0x13ff) AM_ROM |
62 | 63 | AM_RANGE(0x1400, 0x17ff) AM_WRITE(reset_int_w) |
63 | | AM_RANGE(0x1800, 0x1bff) AM_RAM AM_SHARE("ram") |
| 64 | AM_RANGE(0x1800, 0x18ff) AM_MIRROR(0x300) AM_RAM AM_SHARE("ram") |
64 | 65 | AM_RANGE(0x1c00, 0x1fff) AM_ROM |
65 | 66 | ADDRESS_MAP_END |
66 | 67 | |
67 | | static ADDRESS_MAP_START(zac_1_io, AS_IO, 8, zac_1_state) |
| 68 | static ADDRESS_MAP_START( zac_1_io, AS_IO, 8, zac_1_state ) |
68 | 69 | ADDRESS_MAP_UNMAP_HIGH |
69 | 70 | AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READWRITE(ctrl_r,ctrl_w) |
70 | 71 | AM_RANGE(S2650_SENSE_PORT, S2650_FO_PORT) AM_READWRITE(serial_r,serial_w) |
r17581 | r17582 | |
179 | 180 | void zac_1_state::machine_reset() |
180 | 181 | { |
181 | 182 | m_t_c = 0; |
| 183 | // init system if invalid (from pinmame) |
| 184 | if (m_p_ram[0xf7] == 5 && m_p_ram[0xf8] == 0x0a) |
| 185 | {} |
| 186 | else |
| 187 | { |
| 188 | m_p_ram[0xc0] = 3; // 3 balls |
| 189 | for (UINT8 i=0xc1; i < 0xd6; i++) |
| 190 | m_p_ram[i] = 1; // enable match & coin slots |
| 191 | m_p_ram[0xf7] = 5; |
| 192 | m_p_ram[0xf8] = 0x0a; |
| 193 | } |
182 | 194 | } |
183 | 195 | |
184 | 196 | static TIMER_DEVICE_CALLBACK( zac_1_inttimer ) |
r17581 | r17582 | |
206 | 218 | UINT8 digit = state->m_out_offs & 7; |
207 | 219 | output_set_digit_value(display * 10 + digit, patterns[state->m_p_ram[state->m_out_offs]&15]); |
208 | 220 | } |
209 | | // not sure yet but seems scores = 1800-182D; solenoids = 1840-187F; |
| 221 | // seems scores = 1800-182D; solenoids = 1840-187F; |
210 | 222 | // lamps = 1880-18BF; bookkeeping=18C0-18FF. 4-tone osc=1850-1853. |
211 | 223 | // 182E-183F is a storage area for inputs. |
212 | 224 | } |
r17581 | r17582 | |
223 | 235 | MCFG_DEFAULT_LAYOUT(layout_zac_1) |
224 | 236 | MACHINE_CONFIG_END |
225 | 237 | |
| 238 | /*************************** LOCOMOTION ********************************/ |
226 | 239 | |
| 240 | static ADDRESS_MAP_START( locomotp_map, AS_PROGRAM, 8, zac_1_state ) |
| 241 | ADDRESS_MAP_GLOBAL_MASK(0x1fff) |
| 242 | AM_RANGE(0x0000, 0x17ff) AM_ROM |
| 243 | AM_RANGE(0x1800, 0x18ff) AM_MIRROR(0x300) AM_RAM AM_SHARE("ram") |
| 244 | AM_RANGE(0x1c00, 0x1fff) AM_ROM |
| 245 | ADDRESS_MAP_END |
| 246 | |
| 247 | static ADDRESS_MAP_START( locomotp_io, AS_IO, 8, zac_1_state) |
| 248 | ADDRESS_MAP_UNMAP_HIGH |
| 249 | AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READWRITE(ctrl_r,ctrl_w) |
| 250 | AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READ(reset_int_r) |
| 251 | AM_RANGE(S2650_SENSE_PORT, S2650_FO_PORT) AM_READWRITE(serial_r,serial_w) |
| 252 | ADDRESS_MAP_END |
| 253 | |
| 254 | READ8_MEMBER( zac_1_state::reset_int_r ) |
| 255 | { |
| 256 | device_set_input_line(m_maincpu, INPUT_LINE_IRQ0, CLEAR_LINE); |
| 257 | return 0; |
| 258 | } |
| 259 | |
| 260 | static MACHINE_CONFIG_DERIVED( locomotp, zac_1 ) |
| 261 | /* basic machine hardware */ |
| 262 | MCFG_CPU_MODIFY("maincpu") |
| 263 | MCFG_CPU_PROGRAM_MAP(locomotp_map) |
| 264 | MCFG_CPU_IO_MAP(locomotp_io) |
| 265 | // also has sound cpu |
| 266 | MACHINE_CONFIG_END |
| 267 | |
| 268 | |
227 | 269 | /*-------------------------------- |
228 | 270 | / Earth Wind Fire (04/81) |
229 | 271 | /-------------------------------*/ |
r17581 | r17582 | |
372 | 414 | ROM_LOAD ( "ws5.bin", 0x1000, 0x0400, CRC(5ef51ced) SHA1(390579d0482ceabf87924f7718ef33e336726d92)) |
373 | 415 | ROM_END |
374 | 416 | |
375 | | GAME(1981, ewf, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Earth Wind Fire", GAME_MECHANICAL | GAME_NO_SOUND) |
376 | | GAME(1980, firemntn, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Fire Mountain", GAME_IS_SKELETON_MECHANICAL) |
377 | | GAME(1978, futurwld, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Future World", GAME_IS_SKELETON_MECHANICAL) |
378 | | GAME(1979, hotwheel, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Hot Wheels", GAME_IS_SKELETON_MECHANICAL) |
379 | | GAME(1978, hod, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "House of Diamonds", GAME_IS_SKELETON_MECHANICAL) |
380 | | GAME(1981, locomotp, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Locomotion", GAME_IS_SKELETON_MECHANICAL) |
381 | | GAME(1979, strapids, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Shooting the Rapids", GAME_IS_SKELETON_MECHANICAL) |
382 | | GAME(1980, sshtlzac, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Space Shuttle (Zaccaria)", GAME_MECHANICAL | GAME_NO_SOUND) |
383 | | GAME(1980, stargod, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Star God", GAME_IS_SKELETON_MECHANICAL) |
384 | | GAME(1980, stargoda, stargod, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Star God (alternate sound)", GAME_IS_SKELETON_MECHANICAL) |
385 | | GAME(1978, wsports, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Winter Sports", GAME_IS_SKELETON_MECHANICAL) |
| 417 | GAME(1981, ewf, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Earth Wind Fire", GAME_MECHANICAL | GAME_NO_SOUND) |
| 418 | GAME(1980, firemntn, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Fire Mountain", GAME_MECHANICAL | GAME_NO_SOUND) |
| 419 | GAME(1978, futurwld, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Future World", GAME_MECHANICAL | GAME_NO_SOUND) |
| 420 | GAME(1979, hotwheel, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Hot Wheels", GAME_MECHANICAL | GAME_NO_SOUND) |
| 421 | GAME(1978, hod, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "House of Diamonds", GAME_MECHANICAL | GAME_NO_SOUND) |
| 422 | GAME(1981, locomotp, 0, locomotp, zac_1, driver_device, 0, ROT0, "Zaccaria", "Locomotion", GAME_MECHANICAL | GAME_NO_SOUND) |
| 423 | GAME(1979, strapids, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Shooting the Rapids", GAME_MECHANICAL | GAME_NO_SOUND) |
| 424 | GAME(1980, sshtlzac, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Space Shuttle (Zaccaria)", GAME_MECHANICAL | GAME_NO_SOUND) |
| 425 | GAME(1980, stargod, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Star God", GAME_MECHANICAL | GAME_NO_SOUND) |
| 426 | GAME(1980, stargoda, stargod, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Star God (alternate sound)", GAME_MECHANICAL | GAME_NO_SOUND) |
| 427 | GAME(1978, wsports, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Winter Sports", GAME_MECHANICAL | GAME_NO_SOUND) |