trunk/src/mame/drivers/stuntair.c
r0 | r22884 | |
| 1 | /* |
| 2 | |
| 3 | Stunt Air - is this a bootleg of something? (it's not Star Jacker / Star Force) |
| 4 | |
| 5 | Stunt Air by Nuova Videotron 1983 |
| 6 | |
| 7 | Finally i've found this one,too.This romset comes from a rare italian pcb.Game is a Sega's Star Jacker clone with different code,graphics,sound and hardware. |
| 8 | |
| 9 | Hardware info (complete): |
| 10 | Main cpu Z80A |
| 11 | Sound cpu Z80A |
| 12 | Sound ic AY-3-8910 x2 |
| 13 | Note: stereo sound output.Op amps LM3900 x3, audio amps TDA2002 x2, many discrete components |
| 14 | Osc: 18.432 Mhz |
| 15 | Ram: |
| 16 | Work 2kb (6116) |
| 17 | Sound 1kb (2114 x2) |
| 18 | Chars 1kb (2114 x2) |
| 19 | Bg 1,5kb (2114 x3) |
| 20 | Sprites 1kb (2148 x2) |
| 21 | color 320byte (27ls00 x10) |
| 22 | |
| 23 | Rom definiton: |
| 24 | -top pcb- |
| 25 | stuntair.a0,a1,a3,a4,a6 main program |
| 26 | stuntair.e14 sound program |
| 27 | stuntair.a9 character gfx |
| 28 | stuntair.a11,a12 background gfx |
| 29 | stuntair.a13,a15 obj/sprites gfx |
| 30 | 82s123.a7 encryption key? (removing it results in garbage boot screen with high score table music) |
| 31 | -bottom pcb- |
| 32 | 82s129.l11 green,blue colors |
| 33 | 82s129.m11 red color |
| 34 | |
| 35 | Eproms are 2764 |
| 36 | Bproms are 82s123,82s129 |
| 37 | |
| 38 | Dip switches (by direct test,no manuals present): |
| 39 | -DIP A- |
| 40 | SW 1 2 3 5 6 7 8 |
| 41 | unknown |
| 42 | SW 4 |
| 43 | OFF infinite lives (test) |
| 44 | ON normal game |
| 45 | -DIP B- |
| 46 | SW 1 2 (coin 1) |
| 47 | OFF OFF 1 coin 1 play,1 coin 2 play (alternate) |
| 48 | ON OFF 2 coin 1 play |
| 49 | OFF ON 1 coin 2 play |
| 50 | ON ON 1 coin 1 play |
| 51 | SW 3 4 (coin 2) |
| 52 | OFF OFF 1 coin 1 play,1 coin 2 play (alternate) |
| 53 | ON OFF 2 coin 1 play |
| 54 | OFF ON 1 coin 2 play |
| 55 | ON ON 1 coin 1 play |
| 56 | SW 5 6 |
| 57 | OFF OFF bonus 50000 pts,100000 every |
| 58 | ON OFF bonus 30000 pts,50000 every |
| 59 | OFF ON bonus 20000 pts,30000 every |
| 60 | ON ON bonus 10000 pts,20000 every |
| 61 | SW 7 8 |
| 62 | OFF OFF 5 lives |
| 63 | ON OFF 4 lives |
| 64 | OFF ON 3 lives |
| 65 | ON ON 2 lives |
| 66 | Note: no table-upright mode sw,upright fixed.No picture flip sw too |
| 67 | |
| 68 | |
| 69 | Eprom dump,hw and dip info by tirino73 >isolani1973@libero.it< |
| 70 | Bprom dump by f205v |
| 71 | |
| 72 | */ |
| 73 | |
| 74 | #include "emu.h" |
| 75 | #include "cpu/z80/z80.h" |
| 76 | |
| 77 | class stuntair_state : public driver_device |
| 78 | { |
| 79 | public: |
| 80 | stuntair_state(const machine_config &mconfig, device_type type, const char *tag) |
| 81 | : driver_device(mconfig, type, tag), |
| 82 | m_maincpu(*this, "maincpu") { } |
| 83 | |
| 84 | required_device<cpu_device> m_maincpu; |
| 85 | |
| 86 | virtual void machine_start(); |
| 87 | virtual void machine_reset(); |
| 88 | virtual void video_start(); |
| 89 | UINT32 screen_update_stuntair(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 90 | }; |
| 91 | |
| 92 | |
| 93 | static ADDRESS_MAP_START( stuntair_map, AS_PROGRAM, 8, stuntair_state ) |
| 94 | AM_RANGE(0x0000, 0x9fff) AM_ROM |
| 95 | ADDRESS_MAP_END |
| 96 | |
| 97 | static ADDRESS_MAP_START( stuntair_soound_map, AS_PROGRAM, 8, stuntair_state ) |
| 98 | AM_RANGE(0x0000, 0x1fff) AM_ROM |
| 99 | ADDRESS_MAP_END |
| 100 | |
| 101 | static INPUT_PORTS_START( stuntair ) |
| 102 | INPUT_PORTS_END |
| 103 | |
| 104 | static const gfx_layout tiles8x8_layout = |
| 105 | { |
| 106 | 8,8, |
| 107 | RGN_FRAC(1,1), |
| 108 | 1, |
| 109 | { 0 }, |
| 110 | { 0, 1, 2, 3, 4, 5, 6, 7 }, |
| 111 | { 0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8 }, |
| 112 | 8*8 |
| 113 | }; |
| 114 | |
| 115 | static const gfx_layout tiles8x8x2_layout = |
| 116 | { |
| 117 | 8,8, |
| 118 | RGN_FRAC(1,2), |
| 119 | 2, |
| 120 | { RGN_FRAC(0,2), RGN_FRAC(1,2) }, |
| 121 | { 0, 1, 2, 3, 4, 5, 6, 7 }, |
| 122 | { 0*8,1*8,2*8,3*8,4*8,5*8,6*8,7*8 }, |
| 123 | 8*8 |
| 124 | }; |
| 125 | |
| 126 | |
| 127 | static GFXDECODE_START( stuntair ) |
| 128 | GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 16 ) |
| 129 | GFXDECODE_ENTRY( "gfx2", 0, tiles8x8x2_layout, 0, 16 ) |
| 130 | GFXDECODE_ENTRY( "gfx3", 0, tiles8x8x2_layout, 0, 16 ) |
| 131 | GFXDECODE_END |
| 132 | |
| 133 | |
| 134 | |
| 135 | void stuntair_state::machine_start() |
| 136 | { |
| 137 | } |
| 138 | |
| 139 | void stuntair_state::machine_reset() |
| 140 | { |
| 141 | } |
| 142 | |
| 143 | void stuntair_state::video_start() |
| 144 | { |
| 145 | } |
| 146 | |
| 147 | UINT32 stuntair_state::screen_update_stuntair(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 148 | { |
| 149 | return 0; |
| 150 | } |
| 151 | |
| 152 | |
| 153 | |
| 154 | static MACHINE_CONFIG_START( stuntair, stuntair_state ) |
| 155 | |
| 156 | /* basic machine hardware */ |
| 157 | MCFG_CPU_ADD("maincpu", Z80, 18432000/4) /* ? MHz */ |
| 158 | MCFG_CPU_PROGRAM_MAP(stuntair_map) |
| 159 | MCFG_CPU_VBLANK_INT_DRIVER("screen", stuntair_state, irq0_line_hold) |
| 160 | |
| 161 | MCFG_CPU_ADD("audiocpu", Z80, 18432000/4) /* ? MHz */ |
| 162 | MCFG_CPU_PROGRAM_MAP(stuntair_soound_map) |
| 163 | |
| 164 | /* video hardware */ |
| 165 | MCFG_SCREEN_ADD("screen", RASTER) |
| 166 | MCFG_SCREEN_REFRESH_RATE(60) |
| 167 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
| 168 | MCFG_SCREEN_SIZE(256, 256) |
| 169 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) |
| 170 | MCFG_SCREEN_UPDATE_DRIVER(stuntair_state, screen_update_stuntair) |
| 171 | |
| 172 | MCFG_GFXDECODE(stuntair) |
| 173 | MCFG_PALETTE_LENGTH(0x100) |
| 174 | MACHINE_CONFIG_END |
| 175 | |
| 176 | |
| 177 | |
| 178 | ROM_START( stuntair ) |
| 179 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 180 | ROM_LOAD( "stuntair.a0", 0x0000, 0x2000, CRC(f61c4a1d) SHA1(29a227b447866e27e7619a0a676c9ad66364c323) ) |
| 181 | ROM_LOAD( "stuntair.a1", 0x2000, 0x2000, CRC(1546f041) SHA1(6a2346edf39700f7b1e609f19e0f2e46b3a78a2a) ) |
| 182 | ROM_LOAD( "stuntair.a3", 0x4000, 0x2000, CRC(63d00b97) SHA1(63efa151147a3c0ac33e226d38aecfd06b36ad38) ) |
| 183 | ROM_LOAD( "stuntair.a4", 0x6000, 0x2000, CRC(01fe2697) SHA1(f7efc6af8047245ad92dff0e62f61abc71a2e9d1) ) |
| 184 | ROM_LOAD( "stuntair.a6", 0x8000, 0x2000, CRC(6704d05c) SHA1(5b1af8be86ffc44ae0207397b33769556ab456df) ) |
| 185 | |
| 186 | ROM_REGION( 0x2000, "audiocpu", 0 ) |
| 187 | ROM_LOAD( "stuntair.e14", 0x0000, 0x2000, CRC(641fc9db) SHA1(959a4b6617f840f52d1856e12a9fad8e12293387) ) |
| 188 | |
| 189 | ROM_REGION( 0x2000, "gfx1", 0 ) |
| 190 | ROM_LOAD( "stuntair.a9", 0x0000, 0x2000, CRC(bfd861f5) SHA1(ff089ec2e98b21202aeefc31158961e3b1d1ccca) ) |
| 191 | |
| 192 | ROM_REGION( 0x4000, "gfx2", 0 ) |
| 193 | ROM_LOAD( "stuntair.a11", 0x0000, 0x2000, CRC(421fef4c) SHA1(e46abead8cd44253cf6da74326f6f3bdd3aa26e5) ) |
| 194 | ROM_LOAD( "stuntair.a12", 0x2000, 0x2000, CRC(e6ee7489) SHA1(6eeea137fc8968e84d2aadbbac982fd9cd161b16) ) |
| 195 | |
| 196 | ROM_REGION( 0x4000, "gfx3", 0 ) |
| 197 | ROM_LOAD( "stuntair.a13", 0x0000, 0x2000, CRC(bfdc0d38) SHA1(ea0a22971e9cf1b1682c35facc9c4e30607faed7) ) |
| 198 | ROM_LOAD( "stuntair.a15", 0x2000, 0x2000, CRC(4531cab5) SHA1(35271555377ec3454a5d74bf8c21d7e8acc05782) ) |
| 199 | |
| 200 | ROM_REGION( 0x04000, "proms", 0 ) |
| 201 | ROM_LOAD( "dm74s287n.11l", 0x000, 0x100, CRC(6c98f964) SHA1(abf7bdeccd33e62fa106d2056d1949cf278483a7) ) |
| 202 | ROM_LOAD( "dm74s287n.11m", 0x000, 0x100, CRC(d330ff90) SHA1(e223935464109a3c4c7b29641b3736484c22c47a) ) |
| 203 | ROM_LOAD( "dm74s288n.7a", 0x000, 0x020, CRC(5779e751) SHA1(89c955ef8635ad3e9d699f33ec0e4d6c9205d01c) ) |
| 204 | ROM_END |
| 205 | |
| 206 | |
| 207 | GAME( 1983, stuntair, 0, stuntair, stuntair, driver_device, 0, ROT90, "Nuova Videotron", "Stunt Air", GAME_NO_SOUND | GAME_NOT_WORKING ) |