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