trunk/src/mame/drivers/pprobe.c
| r0 | r18848 | |
| 1 | /* |
| 2 | |
| 3 | Planet Probe - unknown manufacture - Copyright 1985 |
| 4 | Game probably programmed by same people behind some Kyugo/Orca/Komax games (see hiscore table, Gyrodine pinout, clocks etc.) |
| 5 | |
| 6 | Upper board marked DVL/A-V |
| 7 | Bottom Bord DVL/B-V |
| 8 | |
| 9 | The pcb seems a bootleg/prototype: |
| 10 | On the upper board there are some pads for jumpers , some empty spaces left unpopulated for additional TTLs and an XTAL. |
| 11 | All 5 sockets for 2732 eproms were modified to accept 2764 eproms. |
| 12 | The AY8910 pin 26 (TEST 2) is grounded with a flying wire |
| 13 | |
| 14 | Upper board chips: |
| 15 | 5x 2764 eproms |
| 16 | 1x 2128 static ram (2k ram) |
| 17 | 2x z80B |
| 18 | 1x AY8910 |
| 19 | 2x 8 positions dipswitches |
| 20 | |
| 21 | Bottom Board chips: |
| 22 | 5x 2764 eproms |
| 23 | 2x 2128 static ram (2kx8 ram) |
| 24 | 4x 93422 DRAM (256x4 dram) |
| 25 | 1x 6301 PROM (probably used for background ?) |
| 26 | 3x 82s129 Colour PROMS (connected to resistors) |
| 27 | |
| 28 | Clocks measured: |
| 29 | |
| 30 | Main XTAL 18.432mhz |
| 31 | 2x z80 : 18.432 / 6 |
| 32 | AY8910 : 18.432 / 12 |
| 33 | Vsync : 60.58hz |
| 34 | |
| 35 | */ |
| 36 | |
| 37 | |
| 38 | |
| 39 | #include "emu.h" |
| 40 | #include "cpu/z80/z80.h" |
| 41 | #include "sound/ay8910.h" |
| 42 | |
| 43 | class pprobe_state : public driver_device |
| 44 | { |
| 45 | public: |
| 46 | pprobe_state(const machine_config &mconfig, device_type type, const char *tag) |
| 47 | : driver_device(mconfig, type, tag) |
| 48 | { } |
| 49 | |
| 50 | DECLARE_DRIVER_INIT(pprobe); |
| 51 | UINT32 screen_update_pprobe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 52 | }; |
| 53 | |
| 54 | |
| 55 | |
| 56 | UINT32 pprobe_state::screen_update_pprobe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 57 | { |
| 58 | return 0; |
| 59 | } |
| 60 | |
| 61 | |
| 62 | static ADDRESS_MAP_START( pprobe_main_map, AS_PROGRAM, 8, pprobe_state ) |
| 63 | AM_RANGE(0x0000, 0x7fff) AM_ROM |
| 64 | ADDRESS_MAP_END |
| 65 | |
| 66 | static ADDRESS_MAP_START( pprobe_main_portmap, AS_IO, 8, pprobe_state ) |
| 67 | // ADDRESS_MAP_GLOBAL_MASK(0xff) |
| 68 | ADDRESS_MAP_END |
| 69 | |
| 70 | |
| 71 | static const gfx_layout fg_tilelayout = |
| 72 | { |
| 73 | 8,8, |
| 74 | RGN_FRAC(1,1), |
| 75 | 2, |
| 76 | { 0, 4 }, |
| 77 | { 0, 1, 2, 3, 8*8+0, 8*8+1, 8*8+2, 8*8+3 }, |
| 78 | { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, |
| 79 | 8*8*2 |
| 80 | }; |
| 81 | |
| 82 | static const gfx_layout sp_tilelayout = |
| 83 | { |
| 84 | 16,16, |
| 85 | RGN_FRAC(1,1), |
| 86 | 2, |
| 87 | { 0, 4 }, |
| 88 | { 0, 1, 2, 3, 8*8+0, 8*8+1, 8*8+2, 8*8+3, 128+0, 128+1, 128+2, 128+3, 128+8*8+0, 128+8*8+1, 128+8*8+2, 128+8*8+3 }, |
| 89 | { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 256+0*8, 256+1*8, 256+2*8, 256+3*8, 256+4*8, 256+5*8, 256+6*8, 256+7*8 }, |
| 90 | 8*8*8 |
| 91 | }; |
| 92 | |
| 93 | |
| 94 | |
| 95 | |
| 96 | static GFXDECODE_START( pprobe ) |
| 97 | GFXDECODE_ENTRY( "gfx1", 0, fg_tilelayout, 0, 64 ) |
| 98 | GFXDECODE_ENTRY( "gfx2", 0, fg_tilelayout, 0, 64 ) |
| 99 | GFXDECODE_ENTRY( "gfx3", 0, fg_tilelayout, 0, 64 ) |
| 100 | GFXDECODE_ENTRY( "gfx4", 0, sp_tilelayout, 0, 64 ) |
| 101 | GFXDECODE_ENTRY( "gfx5", 0, sp_tilelayout, 0, 64 ) |
| 102 | GFXDECODE_END |
| 103 | |
| 104 | |
| 105 | static INPUT_PORTS_START( pprobe ) |
| 106 | INPUT_PORTS_END |
| 107 | |
| 108 | |
| 109 | static MACHINE_CONFIG_START( pprobe, pprobe_state ) |
| 110 | |
| 111 | /* basic machine hardware */ |
| 112 | MCFG_CPU_ADD("maincpu", Z80, XTAL_18_432MHz/6) /* verified on pcb */ |
| 113 | MCFG_CPU_PROGRAM_MAP(pprobe_main_map) |
| 114 | MCFG_CPU_IO_MAP(pprobe_main_portmap) |
| 115 | |
| 116 | // MCFG_CPU_ADD("subz80", Z80, XTAL_18_432MHz/6) /* verified on pcb */ |
| 117 | |
| 118 | /* video hardware */ |
| 119 | MCFG_SCREEN_ADD("screen", RASTER) |
| 120 | MCFG_SCREEN_REFRESH_RATE(60.58) |
| 121 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
| 122 | MCFG_SCREEN_SIZE(64*8, 32*8) |
| 123 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) |
| 124 | MCFG_SCREEN_UPDATE_DRIVER(pprobe_state, screen_update_pprobe) |
| 125 | |
| 126 | MCFG_GFXDECODE(pprobe) |
| 127 | MCFG_PALETTE_LENGTH(256) |
| 128 | |
| 129 | /* sound hardware */ |
| 130 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 131 | |
| 132 | MCFG_SOUND_ADD("ay1", AY8910, XTAL_18_432MHz/12) /* verified on pcb */ |
| 133 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) |
| 134 | MACHINE_CONFIG_END |
| 135 | |
| 136 | |
| 137 | ROM_START( pprobe ) |
| 138 | ROM_REGION( 0x10000, "maincpu", 0 ) |
| 139 | ROM_LOAD( "pb2.bin", 0x0000, 0x2000, CRC(a88592aa) SHA1(98e8e6233b85e678718f532708d57ec946b9fd88) ) |
| 140 | ROM_LOAD( "pb3.bin", 0x2000, 0x2000, CRC(e4e20f74) SHA1(53b4d0499127cca149a3dd03af4f05de552cff57) ) |
| 141 | ROM_LOAD( "pb4.bin", 0x4000, 0x2000, CRC(4e40e3fe) SHA1(ccb3c5828508efc9f0df44bf3408e807d5ef58a0) ) |
| 142 | ROM_LOAD( "pb5.bin", 0x6000, 0x2000, CRC(b26ff0fd) SHA1(c64966ee91557f8982b9b7fd17306508228f1e15) ) |
| 143 | |
| 144 | ROM_REGION( 0x10000, "subz80", 0 ) |
| 145 | ROM_LOAD( "pb1.bin", 0x0000, 0x2000, BAD_DUMP CRC(6e340426) SHA1(e6fc227d22f9b769955127d308dfb96ed85ba40c) ) // corrupt :-( |
| 146 | |
| 147 | ROM_REGION( 0x02000, "gfx1", 0 ) // bg tiles |
| 148 | ROM_LOAD( "pb6.bin", 0x0000, 0x2000, CRC(ff309239) SHA1(4e52833fafd54d4502ad09091fbfb1a8a2ff8828) ) |
| 149 | |
| 150 | ROM_REGION( 0x02000, "gfx2", 0 ) // bg tiles |
| 151 | ROM_LOAD( "pb7.bin", 0x0000, 0x2000, BAD_DUMP CRC(1defb6fc) SHA1(f0d57cf8a92c29fef52c8437d0be6edecaf9c5c9) ) // some bad bytes |
| 152 | |
| 153 | ROM_REGION( 0x02000, "gfx3", 0 ) // tx tiles |
| 154 | ROM_LOAD( "pb9.bin", 0x0000, 0x2000, CRC(82294dd6) SHA1(24b8eac3d476d4a4d91dd169e26bd075b0d1bf45) ) |
| 155 | |
| 156 | ROM_REGION( 0x02000, "gfx4", 0 ) // sprites |
| 157 | ROM_LOAD( "pb8.bin", 0x0000, 0x2000, CRC(8d809e45) SHA1(70f99626acdceaadbe03de49bcf778266ddff893) ) |
| 158 | |
| 159 | ROM_REGION( 0x02000, "gfx5", 0 ) // sprites |
| 160 | ROM_LOAD( "pb10.bin", 0x0000, 0x2000, CRC(895f9dd3) SHA1(919861482598aa35a9ad476da19f9efa30904cd4) ) |
| 161 | |
| 162 | ROM_REGION( 0x0320, "proms", 0 ) |
| 163 | ROM_LOAD( "82s129.r", 0x0000, 0x0100, NO_DUMP ) /* red */ |
| 164 | ROM_LOAD( "82s129.g", 0x0100, 0x0100, NO_DUMP ) /* green */ |
| 165 | ROM_LOAD( "82s129.b", 0x0200, 0x0100, NO_DUMP ) /* blue */ |
| 166 | ROM_LOAD( "6301.prom", 0x0300, 0x0020, NO_DUMP ) /* unk */ |
| 167 | ROM_END |
| 168 | |
| 169 | DRIVER_INIT_MEMBER(pprobe_state,pprobe) |
| 170 | { |
| 171 | } |
| 172 | |
| 173 | GAME( 1984, pprobe, 0, pprobe, pprobe, pprobe_state, pprobe, ROT270, "Kyugo?", "Planet Probe", GAME_IS_SKELETON ) |