1 /***************************************************************************
2
3 Tutankham : memory map (preliminary)
4
5 driver by Mirko Buffoni
6
7 I include here the document based on Rob Jarrett's research because it's
8 really exaustive.
9
10
11
12 Tutankham Emu Info
13 ------------------
14
15 By Rob Jarrett
16 robj@astound.com (until June 20, 1997)
17 or robncait@inforamp.net
18
19 Special thanks go to Pete Custerson for the schematics!!
20
21
22 I've recently been working on an emulator for Tutankham. Unfortunately,
23 time and resources are not on my side so I'd like to provide anyone with
24 the technical information I've gathered so far, that way someone can
25 finish the project.
26
27 First of all, I'd like to say that I've had no prior experience in
28 writing an emulator, and my hardware knowledge is weak. I've managed to
29 find out a fair amount by looking at the schematics of the game and the
30 disassembled ROMs. Using the USim C++ 6809 core I have the game sort of
31 up and running, albeit in a pathetic state. It's not playable, and
32 crashes after a short amount of time. I don't feel the source code is
33 worth releasing because of the bad design; I was using it as a testing
34 bed and anticipated rewriting everything in the future.
35
36 Here's all the info I know about Tutankham:
37
38 Processor: 6809
39 Sound: Z80 slave w/2 AY3910 sound chips
40 Graphics: Bitmapped display, no sprites (!)
41 Memory Map:
42
43 Address R/W Bits Function
44 ------------------------------------------------------------------------------------------------------
45 $0000-$7fff Video RAM
46 - Screen is stored sideways, 256x256 pixels
47 - 1 byte=2 pixels
48 R/W aaaaxxxx - leftmost pixel palette index
49 R/W xxxxbbbb - rightmost pixel palette index
50 - **** not correct **** Looks like some of this memory is for I/O state, (I think < $0100)
51 so you might want to blit from $0100-$7fff
52
53 $8000-$800f R/W aaaaaaaa Palette colors
54 - Don't know how to decode them into RGB values
55
56 $8100 W Not sure
57 - Video chip function of some sort
58 ( split screen y pan position -- TT )
59
60 $8120 R Not sure
61 - Read from quite frequently
62 - Some sort of video or interrupt thing?
63 - Or a random number seed?
64 ( watchdog reset -- NS )
65
66 $8160 Dip Switch 2
67 - Inverted bits (ie. 1=off)
68 R xxxxxxxa DSWI1
69 R
70 R .
71 R .
72 R .
73 R
74 R
75 R axxxxxxx DSWI8
76
77 $8180 I/O: Coin slots, service, 1P/2P buttons
78 R
79
80 $81a0 Player 1 I/O
81 R
82
83 $81c0 Player 2 I/O
84 R
85
86 $81e0 Dip Switch 1
87 - Inverted bits
88 R xxxxxxxa DSWI1
89 R
90 R .
91 R .
92 R .
93 R
94 R
95 R axxxxxxx DSWI8
96
97 $8200 IST on schematics
98 - Enable/disable IRQ
99 R/W xxxxxxxa - a=1 IRQ can be fired, a=0 IRQ can't be fired
100
101 $8202 OUT2 (Coin counter)
102 W xxxxxxxa - Increment coin counter
103
104 $8203 OUT1 (Coin counter)
105 W xxxxxxxa - Increment coin counter
106
107 $8204 Not sure - 401 on schematics
108 W
109
110 $8205 MUT on schematics
111 R/W xxxxxxxa - Sound amplification on/off?
112
113 $8206 HFF on schematics
114 W - Don't know what it does
115 ( horizontal screen flip -- NS )
116
117 $8207 Not sure - can't resolve on schematics
118 W
119 ( vertical screen flip -- NS )
120
121 $8300 Graphics bank select
122 W xxxxxaaa - Selects graphics ROM 0-11 that appears at $9000-9fff
123 - But wait! There's only 9 ROMs not 12! I think the PCB allows 12
124 ROMs for patches/mods to the game. Just make 9-11 return 0's
125
126 $8600 W SON on schematics
127 ( trigger interrupt on audio CPU -- NS )
128 $8608 R/W SON on schematics
129 - Sound on/off? i.e. Run/halt Z80 sound CPU?
130
131 $8700 W aaaaaaaa SDA on schematics
132 - Sound data? Maybe Z80 polls here and plays the appropriate sound?
133 - If so, easy to trigger samples here
134
135 $8800-$8fff RAM
136 R/W - Memory for the program ROMs
137
138 $9000-$9fff Graphics ROMs ra1_1i.cpu - ra1_9i.cpu
139 R aaaaaaaa - See address $8300 for usage
140
141 $a000-$afff ROM ra1_1h.cpu
142 R aaaaaaaa - 6809 Code
143
144 $b000-$bfff ROM ra1_2h.cpu
145 R aaaaaaaa - 6809 Code
146
147 $c000-$cfff ROM ra1_3h.cpu
148 R aaaaaaaa - 6809 Code
149
150 $d000-$dfff ROM ra1_4h.cpu
151 R aaaaaaaa - 6809 Code
152
153 $e000-$efff ROM ra1_5h.cpu
154 R aaaaaaaa - 6809 Code
155
156 $f000-$ffff ROM ra1_6h.cpu
157 R aaaaaaaa - 6809 Code
158
159 Programming notes:
160
161 I found that generating an IRQ every 4096 instructions seemed to kinda work. Again, I know
162 little about emu writing and I think some fooling with this number might be needed.
163
164 Sorry I didn't supply the DSW and I/O bits, this info is available elsewhere on the net, I
165 think at tant or something. I just couldn't remember what they were at this writing!!
166
167 If there are any questions at all, please feel free to email me at robj@astound.com (until
168 June 20, 1997) or robncait@inforamp.net.
169
170
171 BTW, this information is completely free - do as you wish with it. I'm not even sure if it's
172 correct! (Most of it seems to be). Giving me some credit if credit is due would be nice,
173 and please let me know about your emulator if you release it.
174
175
176 Sound board: uses the same board as Pooyan.
177
178 ***************************************************************************/
179
180 #include "driver.h"
181 #include "vidhrdw/generic.h"
182 #include "cpu/m6809/m6809.h"
183 #include "sndhrdw/timeplt.h"
184
185
186
187 extern unsigned char *tutankhm_scrollx;
188
189 WRITE_HANDLER( tutankhm_videoram_w );
190 VIDEO_UPDATE( tutankhm );
191
192
WRITE_HANDLER(tutankhm_bankselect_w)193 static WRITE_HANDLER( tutankhm_bankselect_w )
194 {
195 int bankaddress;
196 unsigned char *RAM = memory_region(REGION_CPU1);
197
198
199 bankaddress = 0x10000 + (data & 0x0f) * 0x1000;
200 cpu_setbank(1,&RAM[bankaddress]);
201 }
202
WRITE_HANDLER(tutankhm_coin_counter_w)203 static WRITE_HANDLER( tutankhm_coin_counter_w )
204 {
205 coin_counter_w(offset ^ 1, data);
206 }
207
WRITE_HANDLER(flip_screen_x_w)208 static WRITE_HANDLER( flip_screen_x_w )
209 {
210 flip_screen_x_set(data);
211 }
212
WRITE_HANDLER(flip_screen_y_w)213 static WRITE_HANDLER( flip_screen_y_w )
214 {
215 flip_screen_y_set(data);
216 }
217
218
MEMORY_READ_START(readmem)219 static MEMORY_READ_START( readmem )
220 { 0x0000, 0x7fff, MRA_RAM },
221 { 0x8120, 0x8120, watchdog_reset_r },
222 { 0x8160, 0x8160, input_port_0_r }, /* DSW2 (inverted bits) */
223 { 0x8180, 0x8180, input_port_1_r }, /* IN0 I/O: Coin slots, service, 1P/2P buttons */
224 { 0x81a0, 0x81a0, input_port_2_r }, /* IN1: Player 1 I/O */
225 { 0x81c0, 0x81c0, input_port_3_r }, /* IN2: Player 2 I/O */
226 { 0x81e0, 0x81e0, input_port_4_r }, /* DSW1 (inverted bits) */
227 { 0x8800, 0x8fff, MRA_RAM },
228 { 0x9000, 0x9fff, MRA_BANK1 },
229 { 0xa000, 0xffff, MRA_ROM },
230 MEMORY_END
231
232 static MEMORY_WRITE_START( writemem )
233 { 0x0000, 0x7fff, tutankhm_videoram_w, &videoram, &videoram_size },
234 { 0x8000, 0x800f, paletteram_BBGGGRRR_w, &paletteram },
235 { 0x8100, 0x8100, MWA_RAM, &tutankhm_scrollx },
236 { 0x8200, 0x8200, interrupt_enable_w },
237 { 0x8202, 0x8203, tutankhm_coin_counter_w },
238 { 0x8205, 0x8205, MWA_NOP }, /* ??? */
239 { 0x8206, 0x8206, flip_screen_x_w },
240 { 0x8207, 0x8207, flip_screen_y_w },
241 { 0x8300, 0x8300, tutankhm_bankselect_w },
242 { 0x8600, 0x8600, timeplt_sh_irqtrigger_w },
243 { 0x8700, 0x8700, soundlatch_w },
244 { 0x8800, 0x8fff, MWA_RAM },
245 { 0xa000, 0xffff, MWA_ROM },
246 MEMORY_END
247
248
249 INPUT_PORTS_START( tutankhm )
250 PORT_START /* DSW2 */
251 PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
252 PORT_DIPSETTING( 0x03, "3" )
253 PORT_DIPSETTING( 0x01, "4" )
254 PORT_DIPSETTING( 0x02, "5" )
255 PORT_BITX( 0, 0x00, IPT_DIPSWITCH_SETTING | IPF_CHEAT, "256", IP_KEY_NONE, IP_JOY_NONE )
256 PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )
257 PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
258 PORT_DIPSETTING( 0x04, DEF_STR( Cocktail ) )
259 PORT_DIPNAME( 0x08, 0x08, DEF_STR( Bonus_Life ) )
260 PORT_DIPSETTING( 0x08, "30000" )
261 PORT_DIPSETTING( 0x00, "40000" )
262 PORT_DIPNAME( 0x30, 0x30, DEF_STR( Difficulty ) )
263 PORT_DIPSETTING( 0x30, "Easy" )
264 PORT_DIPSETTING( 0x10, "Normal" )
265 PORT_DIPSETTING( 0x20, "Hard" )
266 PORT_DIPSETTING( 0x00, "Hardest" )
267 PORT_DIPNAME( 0x40, 0x40, "Flash Bomb" )
268 PORT_DIPSETTING( 0x40, "1 per Life" )
269 PORT_DIPSETTING( 0x00, "1 per Game" )
270 PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
271 PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
272 PORT_DIPSETTING( 0x00, DEF_STR( On ) )
273
274 PORT_START /* IN0 */
275 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
276 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
277 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
278 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
279 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
280 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
281 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
282 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
283
284 PORT_START /* IN1 */
285 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY )
286 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
287 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY )
288 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY )
289 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
290 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
291 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
292 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
293
294 PORT_START /* IN2 */
295 PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY | IPF_COCKTAIL )
296 PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
297 PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY | IPF_COCKTAIL )
298 PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY | IPF_COCKTAIL )
299 PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
300 PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
301 PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 | IPF_COCKTAIL )
302 PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
303
304 PORT_START /* DSW1 */
305 PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
306 PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) )
307 PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) )
308 PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
309 PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) )
310 PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) )
311 PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) )
312 PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) )
313 PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) )
314 PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) )
315 PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) )
316 PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) )
317 PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) )
318 PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) )
319 PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) )
320 PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) )
321 PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
322 PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
323 PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ) )
324 PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ) )
325 PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ) )
326 PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ) )
327 PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ) )
328 PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) )
329 PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ) )
330 PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ) )
331 PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) )
332 PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ) )
333 PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) )
334 PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) )
335 PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) )
336 PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) )
337 PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ) )
338 PORT_DIPSETTING( 0x00, "Disabled" )
339 /* 0x00 not commented out since the game makes the usual sound if you insert the coin */
340 INPUT_PORTS_END
341
342
343
344 static MACHINE_DRIVER_START( tutankhm )
345
346 /* basic machine hardware */
347 MDRV_CPU_ADD(M6809, 1500000) /* 1.5 MHz ??? */
348 MDRV_CPU_MEMORY(readmem,writemem)
349 MDRV_CPU_VBLANK_INT(irq0_line_hold,1)
350
351 MDRV_CPU_ADD(Z80,14318180/8)
352 MDRV_CPU_FLAGS(CPU_AUDIO_CPU) /* 1.789772727 MHz */ \
353 MDRV_CPU_MEMORY(timeplt_sound_readmem,timeplt_sound_writemem)
354
355 MDRV_FRAMES_PER_SECOND(30)
356 MDRV_VBLANK_DURATION(DEFAULT_30HZ_VBLANK_DURATION)
357
358 /* video hardware */
359 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
360 MDRV_SCREEN_SIZE(32*8, 32*8)
361 MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) /* not sure about the visible area */
362 MDRV_PALETTE_LENGTH(16)
363
364 MDRV_VIDEO_START(generic)
365 MDRV_VIDEO_UPDATE(tutankhm)
366
367 /* sound hardware */
368 MDRV_SOUND_ADD(AY8910, timeplt_ay8910_interface)
369 MACHINE_DRIVER_END
370
371
372 ROM_START( tutankhm )
373 ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for M6809 CPU code + 64k for ROM banks */
374 ROM_LOAD( "h1.bin", 0x0a000, 0x1000, CRC(da18679f) SHA1(8d2a3665db937d0e1d19300ae22277d9db61fcbc) ) /* program ROMs */
375 ROM_LOAD( "h2.bin", 0x0b000, 0x1000, CRC(a0f02c85) SHA1(29a78b3ffd6b597772953543b02dd59acf5af38c) )
376 ROM_LOAD( "h3.bin", 0x0c000, 0x1000, CRC(ea03a1ab) SHA1(27a3cca0595bac642caaf9ee2f276814442c8721) )
377 ROM_LOAD( "h4.bin", 0x0d000, 0x1000, CRC(bd06fad0) SHA1(bd10bbb413d8dd362072522e902575d819fa8336) )
378 ROM_LOAD( "h5.bin", 0x0e000, 0x1000, CRC(bf9fd9b0) SHA1(458ea2ff5eedaaa02e32444dd6004d2eaadbdeab) )
379 ROM_LOAD( "h6.bin", 0x0f000, 0x1000, CRC(fe079c5b) SHA1(0757490aaa1cea4f4bbe1230d811a0d917f59e52) )
380 ROM_LOAD( "j1.bin", 0x10000, 0x1000, CRC(7eb59b21) SHA1(664d3e08df0f3d6690838810b6fe273eec3b7821) ) /* graphic ROMs (banked) -- only 9 of 12 are filled */
381 ROM_LOAD( "j2.bin", 0x11000, 0x1000, CRC(6615eff3) SHA1(e8455eab03f66642880595cfa0e9be285bf9fad0) )
382 ROM_LOAD( "j3.bin", 0x12000, 0x1000, CRC(a10d4444) SHA1(683899e1014ee075b16d9d2610c3c5b5c4efedb6) )
383 ROM_LOAD( "j4.bin", 0x13000, 0x1000, CRC(58cd143c) SHA1(e4ab27c09858cede478f4ed3ac6d7392e383a470) )
384 ROM_LOAD( "j5.bin", 0x14000, 0x1000, CRC(d7e7ae95) SHA1(7068797770a6c42dc733b253bf6b7376eb6e071e) )
385 ROM_LOAD( "j6.bin", 0x15000, 0x1000, CRC(91f62b82) SHA1(2a78039ee63226978544142727d00d1ccc6d2ab4) )
386 ROM_LOAD( "j7.bin", 0x16000, 0x1000, CRC(afd0a81f) SHA1(cf10308a0fa4ffabd0deeb186b5602468028ff92) )
387 ROM_LOAD( "j8.bin", 0x17000, 0x1000, CRC(dabb609b) SHA1(773b99b670db41a9de58d14b51f81ce0c446ca84) )
388 ROM_LOAD( "j9.bin", 0x18000, 0x1000, CRC(8ea9c6a6) SHA1(fe1b299f8760fc5418179d3569932ee2c4dff461) )
389 /* the other banks (1900-1fff) are empty */
390
391 ROM_REGION( 0x10000 , REGION_CPU2, 0 ) /* 64k for Z80 sound CPU code */
392 ROM_LOAD( "11-7a.bin", 0x0000, 0x1000, CRC(b52d01fa) SHA1(9b6cf9ea51d3a87c174f34d42a4b1b5f38b48723) )
393 ROM_LOAD( "10-8a.bin", 0x1000, 0x1000, CRC(9db5c0ce) SHA1(b5bc1d89a7f7d7a0baae64390c37ee11f69a0e76) )
394 ROM_END
395
396
397 ROM_START( tutankst )
398 ROM_REGION( 0x20000, REGION_CPU1, 0 ) /* 64k for M6809 CPU code + 64k for ROM banks */
399 ROM_LOAD( "h1.bin", 0x0a000, 0x1000, CRC(da18679f) SHA1(8d2a3665db937d0e1d19300ae22277d9db61fcbc) ) /* program ROMs */
400 ROM_LOAD( "h2.bin", 0x0b000, 0x1000, CRC(a0f02c85) SHA1(29a78b3ffd6b597772953543b02dd59acf5af38c) )
401 ROM_LOAD( "ra1_3h.cpu", 0x0c000, 0x1000, CRC(2d62d7b1) SHA1(910718f36735f2614cda0c3a1abdfa995d82dbd2) )
402 ROM_LOAD( "h4.bin", 0x0d000, 0x1000, CRC(bd06fad0) SHA1(bd10bbb413d8dd362072522e902575d819fa8336) )
403 ROM_LOAD( "h5.bin", 0x0e000, 0x1000, CRC(bf9fd9b0) SHA1(458ea2ff5eedaaa02e32444dd6004d2eaadbdeab) )
404 ROM_LOAD( "ra1_6h.cpu", 0x0f000, 0x1000, CRC(c43b3865) SHA1(3112cf831c5b6318337e591ccb0003aeab722652) )
405 ROM_LOAD( "j1.bin", 0x10000, 0x1000, CRC(7eb59b21) SHA1(664d3e08df0f3d6690838810b6fe273eec3b7821) ) /* graphic ROMs (banked) -- only 9 of 12 are filled */
406 ROM_LOAD( "j2.bin", 0x11000, 0x1000, CRC(6615eff3) SHA1(e8455eab03f66642880595cfa0e9be285bf9fad0) )
407 ROM_LOAD( "j3.bin", 0x12000, 0x1000, CRC(a10d4444) SHA1(683899e1014ee075b16d9d2610c3c5b5c4efedb6) )
408 ROM_LOAD( "j4.bin", 0x13000, 0x1000, CRC(58cd143c) SHA1(e4ab27c09858cede478f4ed3ac6d7392e383a470) )
409 ROM_LOAD( "j5.bin", 0x14000, 0x1000, CRC(d7e7ae95) SHA1(7068797770a6c42dc733b253bf6b7376eb6e071e) )
410 ROM_LOAD( "j6.bin", 0x15000, 0x1000, CRC(91f62b82) SHA1(2a78039ee63226978544142727d00d1ccc6d2ab4) )
411 ROM_LOAD( "j7.bin", 0x16000, 0x1000, CRC(afd0a81f) SHA1(cf10308a0fa4ffabd0deeb186b5602468028ff92) )
412 ROM_LOAD( "j8.bin", 0x17000, 0x1000, CRC(dabb609b) SHA1(773b99b670db41a9de58d14b51f81ce0c446ca84) )
413 ROM_LOAD( "j9.bin", 0x18000, 0x1000, CRC(8ea9c6a6) SHA1(fe1b299f8760fc5418179d3569932ee2c4dff461) )
414 /* the other banks (1900-1fff) are empty */
415
416 ROM_REGION( 0x10000 , REGION_CPU2, 0 ) /* 64k for Z80 sound CPU code */
417 ROM_LOAD( "11-7a.bin", 0x0000, 0x1000, CRC(b52d01fa) SHA1(9b6cf9ea51d3a87c174f34d42a4b1b5f38b48723) )
418 ROM_LOAD( "10-8a.bin", 0x1000, 0x1000, CRC(9db5c0ce) SHA1(b5bc1d89a7f7d7a0baae64390c37ee11f69a0e76) )
419 ROM_END
420
421
422
423 GAME( 1982, tutankhm, 0, tutankhm, tutankhm, 0, ROT90, "Konami", "Tutankham" )
424 GAME( 1982, tutankst, tutankhm, tutankhm, tutankhm, 0, ROT90, "[Konami] (Stern license)", "Tutankham (Stern)" )
425