summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers/ti99_2.c
blob: 51656ecd17f075a9cc8016b37fa6b32c744136f5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
/*
  Experimental ti99/2 driver

TODO :
  * find a TI99/2 ROM dump (some TI99/2 ARE in private hands)
  * test the driver !
  * understand the "viden" pin
  * implement cassette
  * implement Hex-Bus

  Raphael Nabet (who really has too much time to waste), december 1999, 2000
*/

/*
  TI99/2 facts :

References :
* TI99/2 main logic board schematics, 83/03/28-30 (on ftp.whtech.com, or just ask me)
  (Thanks to Charles Good for posting this)

general :
* prototypes in 1983
* uses a 10.7MHz TMS9995 CPU, with the following features :
  - 8-bit data bus
  - 256 bytes 16-bit RAM (0xff00-0xff0b & 0xfffc-0xffff)
  - only available int lines are INT4 (used by vdp), INT1*, and NMI* (both free for extension)
  - on-chip decrementer (0xfffa-0xfffb)
  - Unlike tms9900, CRU address range is full 0x0000-0xFFFE (A0 is not used as address).
    This is possible because tms9995 uses d0-d2 instead of the address MSBits to support external
    opcodes.
  - quite more efficient than tms9900, and a few additionnal instructions and features
* 24 or 32kb ROM (16kb plain (1kb of which used by vdp), 16kb split into 2 8kb pages)
* 4kb 8-bit RAM, 256 bytes 16-bit RAM
* custom vdp shares CPU RAM/ROM.  The display is quite alike to tms9928 graphics mode, except
  that colors are a static B&W, and no sprite is displayed. The config (particularily the
  table base addresses) cannot be changed.  Since TI located the pattern generator table in
  ROM, we cannot even redefine the char patterns (unless you insert a custom cartidge which
  overrides the system ROMs).  VBL int triggers int4 on tms9995.
* CRU is handled by one single custom chip, so the schematics don't show many details :-( .
* I/O :
  - 48-key keyboard.  Same as TI99/4a, without alpha lock, and with an additional break key.
    Note that the hardware can make the difference between the two shift keys.
  - cassette I/O (one unit)
  - ALC bus (must be another name for Hex-Bus)
* 60-pin expansion/cartidge port on the back

memory map :
* 0x0000-0x4000 : system ROM (0x1C00-0x2000 (?) : char ROM used by vdp)
* 0x4000-0x6000 : system ROM, mapped to either of two distinct 8kb pages according to the S0
  bit from the keyboard interface (!), which is used to select the first key row.
  [only on second-generation TI99/2 protos, first generation protos only had 24kb of ROM]
* 0x6000-0xE000 : free for expansion
* 0xE000-0xF000 : 8-bit "system" RAM (0xEC00-0xEF00 used by vdp)
* 0xF000-0xF0FB : 16-bit processor RAM (on tms9995)
* 0xF0FC-0xFFF9 : free for expansion
* 0xFFFA-0xFFFB : tms9995 internal decrementer
* 0xFFFC-0xFFFF : 16-bit processor RAM (provides the NMI vector)

CRU map :
* 0x0000-0x1EFC : reserved
* 0x1EE0-0x1EFE : tms9995 flag register
* 0x1F00-0x1FD8 : reserved
* 0x1FDA : tms9995 MID flag
* 0x1FDC-0x1FFF : reserved
* 0x2000-0xE000 : unaffected
* 0xE400-0xE40E : keyboard I/O (8 bits input, either 3 or 6 bit output)
* 0xE80C : cassette I/O
* 0xE80A : ALC BAV
* 0xE808 : ALC HSK
* 0xE800-0xE808 : ALC data (I/O)
* 0xE80E : video enable (probably input - seems to come from the VDP, and is present on the
  expansion connector)
* 0xF000-0xFFFE : reserved
Note that only A15-A11 and A3-A1 (A15 = MSB, A0 = LSB) are decoded in the console, so the keyboard
is actually mapped to 0xE000-0xE7FE, and other I/O bits to 0xE800-0xEFFE.
Also, ti99/2 does not support external instructions better than ti99/4(a).  This is crazy, it
would just have taken three extra tracks on the main board and a OR gate in an ASIC.
*/

#include "emu.h"
#include "machine/tms9901.h"
#include "cpu/tms9900/tms9900l.h"


class ti99_2_state : public driver_device
{
public:
	ti99_2_state(const machine_config &mconfig, device_type type, const char *tag)
		: driver_device(mconfig, type, tag) ,
		m_videoram(*this, "videoram"){ }

	required_shared_ptr<UINT8> m_videoram;
	int m_ROM_paged;
	int m_irq_state;
	int m_KeyRow;
	DECLARE_WRITE8_MEMBER(ti99_2_write_kbd);
	DECLARE_WRITE8_MEMBER(ti99_2_write_misc_cru);
	DECLARE_READ8_MEMBER(ti99_2_read_kbd);
	DECLARE_READ8_MEMBER(ti99_2_read_misc_cru);
	DECLARE_DRIVER_INIT(ti99_2_24);
	DECLARE_DRIVER_INIT(ti99_2_32);
	virtual void machine_reset();
	virtual void palette_init();
	UINT32 screen_update_ti99_2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};



DRIVER_INIT_MEMBER(ti99_2_state,ti99_2_24)
{
	/* no ROM paging */
	m_ROM_paged = 0;
}

DRIVER_INIT_MEMBER(ti99_2_state,ti99_2_32)
{
	/* ROM paging enabled */
	m_ROM_paged = 1;
}

#define TI99_2_32_ROMPAGE0 (machine().root_device().memregion("maincpu")->base()+0x4000)
#define TI99_2_32_ROMPAGE1 (machine().root_device().memregion("maincpu")->base()+0x10000)

void ti99_2_state::machine_reset()
{
	m_irq_state = ASSERT_LINE;
	if (! m_ROM_paged)
		membank("bank1")->set_base(machine().root_device().memregion("maincpu")->base()+0x4000);
	else
		membank("bank1")->set_base((memregion("maincpu")->base()+0x4000));
}

static INTERRUPT_GEN( ti99_2_vblank_interrupt )
{
	ti99_2_state *state = device->machine().driver_data<ti99_2_state>();
	device->execute().set_input_line(1, state->m_irq_state);
	state->m_irq_state = (state->m_irq_state == ASSERT_LINE) ? CLEAR_LINE : ASSERT_LINE;
}


/*
  TI99/2 vdp emulation.

  Things could not be simpler.
  We display 24 rows and 32 columns of characters.  Each 8*8 pixel character pattern is defined
  in a 128-entry table located in ROM.  Character code for each screen position are stored
  sequentially in RAM.  Colors are a fixed Black on White.

    There is an EOL character that blanks the end of the current line, so that
    the CPU can get more bus time.
*/


void ti99_2_state::palette_init()
{
	palette_set_color(machine(),0,RGB_WHITE); /* white */
	palette_set_color(machine(),1,RGB_BLACK); /* black */
}


UINT32 ti99_2_state::screen_update_ti99_2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
	UINT8 *videoram = m_videoram;
	int i, sx, sy;


	sx = sy = 0;

	for (i = 0; i < 768; i++)
	{
		/* Is the char code masked or not ??? */
		drawgfx_opaque(bitmap, cliprect, machine().gfx[0], videoram[i] & 0x7F, 0,
			0, 0, sx, sy);

		sx += 8;
		if (sx == 256)
		{
			sx = 0;
			sy += 8;
		}
	}

	return 0;
}

static const gfx_layout ti99_2_charlayout =
{
	8,8,        /* 8 x 8 characters */
	128,        /* 128 characters */
	1,          /* 1 bits per pixel */
	{ 0 },      /* no bitplanes; 1 bit per pixel */
	/* x offsets */
	{ 0,1,2,3,4,5,6,7 },
	/* y offsets */
	{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, },
	8*8         /* every char takes 8 bytes */
};

static GFXDECODE_START( ti99_2 )
	GFXDECODE_ENTRY( "maincpu", 0x1c00,  ti99_2_charlayout, 0, 1 )
GFXDECODE_END


/*
  Memory map - see description above
*/

static ADDRESS_MAP_START( ti99_2_memmap, AS_PROGRAM, 8, ti99_2_state )
	AM_RANGE(0x0000, 0x3fff) AM_ROM		    /* system ROM */
	AM_RANGE(0x4000, 0x5fff) AM_ROMBANK("bank1")	/* system ROM, banked on 32kb ROMs protos */
	AM_RANGE(0x6000, 0xdfff) AM_NOP		    /* free for expansion */
	AM_RANGE(0xe000, 0xebff) AM_RAM		    /* system RAM */
	AM_RANGE(0xec00, 0xeeff) AM_RAM AM_SHARE("videoram")
	AM_RANGE(0xef00, 0xefff) AM_RAM		    /* system RAM */
	AM_RANGE(0xf000, 0xffff) AM_NOP		    /* free for expansion (and internal processor RAM) */
ADDRESS_MAP_END


/*
  CRU map - see description above
*/

/* current keyboard row */

/* write the current keyboard row */
WRITE8_MEMBER(ti99_2_state::ti99_2_write_kbd)
{
	offset &= 0x7;  /* other address lines are not decoded */

	if (offset <= 2)
	{
		/* this implementation is just a guess */
		if (data)
			m_KeyRow |= 1 << offset;
		else
			m_KeyRow &= ~ (1 << offset);
	}
	/* now, we handle ROM paging */
	if (m_ROM_paged)
	{	/* if we have paged ROMs, page according to S0 keyboard interface line */
		membank("bank1")->set_base((m_KeyRow == 0) ? TI99_2_32_ROMPAGE1 : TI99_2_32_ROMPAGE0);
	}
}

WRITE8_MEMBER(ti99_2_state::ti99_2_write_misc_cru)
{
	offset &= 0x7;  /* other address lines are not decoded */

	switch (offset)
	{
	case 0:
	case 1:
	case 2:
	case 3:
		/* ALC I/O */
		break;
	case 4:
		/* ALC HSK */
		break;
	case 5:
		/* ALC BAV */
		break;
	case 6:
		/* cassette output */
		break;
	case 7:
		/* video enable */
		break;
	}
}

/* read keys in the current row */
READ8_MEMBER(ti99_2_state::ti99_2_read_kbd)
{
	static const char *const keynames[] = { "LINE0", "LINE1", "LINE2", "LINE3", "LINE4", "LINE5", "LINE6", "LINE7" };

	return ioport(keynames[m_KeyRow])->read();
}

READ8_MEMBER(ti99_2_state::ti99_2_read_misc_cru)
{
	return 0;
}

static ADDRESS_MAP_START(ti99_2_io, AS_IO, 8, ti99_2_state )
	AM_RANGE(0x0E00, 0x0E7f) AM_READ(ti99_2_read_kbd)
	AM_RANGE(0x0E80, 0x0Eff) AM_READ(ti99_2_read_misc_cru)
	AM_RANGE(0x7000, 0x73ff) AM_WRITE(ti99_2_write_kbd)
	AM_RANGE(0x7400, 0x77ff) AM_WRITE(ti99_2_write_misc_cru)
ADDRESS_MAP_END


/* ti99/2 : 54-key keyboard */
static INPUT_PORTS_START(ti99_2)

	PORT_START("LINE0")    /* col 0 */
		PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 ! DEL") PORT_CODE(KEYCODE_1)
		PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 @ INS") PORT_CODE(KEYCODE_2)
		PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3)
		PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $ CLEAR") PORT_CODE(KEYCODE_4)
		PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 % BEGIN") PORT_CODE(KEYCODE_5)
		PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 ^ PROC'D") PORT_CODE(KEYCODE_6)
		PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 & AID") PORT_CODE(KEYCODE_7)
		PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 * REDO") PORT_CODE(KEYCODE_8)

	PORT_START("LINE1")    /* col 1 */
		PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("q Q") PORT_CODE(KEYCODE_Q)
		PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("w W ~") PORT_CODE(KEYCODE_W)
		PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("e E (UP)") PORT_CODE(KEYCODE_E)
		PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("r R [") PORT_CODE(KEYCODE_R)
		PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("t T ]") PORT_CODE(KEYCODE_T)
		PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("y Y") PORT_CODE(KEYCODE_Y)
		PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("i I ?") PORT_CODE(KEYCODE_I)
		PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 ( BACK") PORT_CODE(KEYCODE_9)

	PORT_START("LINE2")    /* col 2 */
		PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("a A") PORT_CODE(KEYCODE_A)
		PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("s S (LEFT)") PORT_CODE(KEYCODE_S)
		PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("d D (RIGHT)") PORT_CODE(KEYCODE_D)
		PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("f F {") PORT_CODE(KEYCODE_F)
		PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("h H") PORT_CODE(KEYCODE_H)
		PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("u U _") PORT_CODE(KEYCODE_U)
		PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("o O '") PORT_CODE(KEYCODE_O)
		PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 )") PORT_CODE(KEYCODE_0)

	PORT_START("LINE3")    /* col 3 */
		PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("z Z \\") PORT_CODE(KEYCODE_Z)
		PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("x X (DOWN)") PORT_CODE(KEYCODE_X)
		PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("c C `") PORT_CODE(KEYCODE_C)
		PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("g G }") PORT_CODE(KEYCODE_G)
		PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("j J") PORT_CODE(KEYCODE_J)
		PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("k K") PORT_CODE(KEYCODE_K)
		PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("p P \"") PORT_CODE(KEYCODE_P)
		PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("= + QUIT") PORT_CODE(KEYCODE_EQUALS)

	PORT_START("LINE4")    /* col 4 */
		PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT/*KEYCODE_CAPSLOCK*/)
		PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL)
		PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("v V") PORT_CODE(KEYCODE_V)
		PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("n N") PORT_CODE(KEYCODE_N)
		PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA)
		PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("l L") PORT_CODE(KEYCODE_L)
		PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; :") PORT_CODE(KEYCODE_COLON)
		PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ -") PORT_CODE(KEYCODE_SLASH)

	PORT_START("LINE5")    /* col 5 */
		PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BREAK") PORT_CODE(KEYCODE_ESC)
		PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("(SPACE)") PORT_CODE(KEYCODE_SPACE)
		PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("b B") PORT_CODE(KEYCODE_B)
		PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("m M") PORT_CODE(KEYCODE_M)
		PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP)
		PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("FCTN") PORT_CODE(KEYCODE_LALT)
		PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_RSHIFT)
		PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER)

	PORT_START("LINE6")    /* col 6 */
		PORT_BIT(0xFF, IP_ACTIVE_LOW, IPT_UNUSED)

	PORT_START("LINE7")    /* col 7 */
		PORT_BIT(0xFF, IP_ACTIVE_LOW, IPT_UNUSED)

INPUT_PORTS_END


static const struct tms9995reset_param ti99_2_processor_config =
{
#if 0
	"maincpu",/* region for processor RAM */
	0xf000,     /* offset : this area is unused in our region, and matches the processor address */
	0xf0fc,		/* offset for the LOAD vector */
	NULL,       /* no IDLE callback */
	1,          /* use fast IDLE */
#endif
	1           /* enable automatic wait state generation */
};

static MACHINE_CONFIG_START( ti99_2, ti99_2_state )
	/* basic machine hardware */
	MCFG_CPU_ADD("maincpu", TMS9995L, 10700000)
	MCFG_CPU_CONFIG(ti99_2_processor_config)
	MCFG_CPU_PROGRAM_MAP(ti99_2_memmap)
	MCFG_CPU_IO_MAP(ti99_2_io)
	MCFG_CPU_VBLANK_INT("screen", ti99_2_vblank_interrupt)


	/* video hardware */
	/*MCFG_TMS9928A( &tms9918_interface )*/
	MCFG_SCREEN_ADD("screen", RASTER)
	MCFG_SCREEN_REFRESH_RATE(60)
	MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
	MCFG_SCREEN_SIZE(256, 192)
	MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 192-1)
	MCFG_SCREEN_UPDATE_DRIVER(ti99_2_state, screen_update_ti99_2)

	MCFG_GFXDECODE(ti99_2)
	MCFG_PALETTE_LENGTH(2)
MACHINE_CONFIG_END



/*
  ROM loading
*/
ROM_START(ti99_224)
	/*CPU memory space*/
	ROM_REGION(0x10000,"maincpu",0)
	ROM_LOAD("992rom.bin", 0x0000, 0x6000, NO_DUMP)      /* system ROMs */
ROM_END

ROM_START(ti99_232)
	/*64kb CPU memory space + 8kb to read the extra ROM page*/
	ROM_REGION(0x12000,"maincpu",0)
	ROM_LOAD("992rom32.bin", 0x0000, 0x6000, NO_DUMP)    /* system ROM - 32kb */
	ROM_CONTINUE(0x10000,0x2000)
ROM_END

/* one expansion/cartridge port on the back */
/* one cassette unit port */
/* Hex-bus disk controller: supports up to 4 floppy disk drives */
/* None of these is supported (tape should be easy to emulate) */

/*      YEAR    NAME        PARENT      COMPAT  MACHINE     INPUT   INIT        COMPANY                 FULLNAME */
COMP(	1983,	ti99_224,	0,			0,	ti99_2,	ti99_2, ti99_2_state,	ti99_2_24,			"Texas Instruments",	"TI-99/2 BASIC Computer (24kb ROMs)" , GAME_NOT_WORKING | GAME_NO_SOUND )
COMP(	1983,	ti99_232,	ti99_224,	0,	ti99_2,	ti99_2, ti99_2_state,	ti99_2_32,			"Texas Instruments",	"TI-99/2 BASIC Computer (32kb ROMs)" , GAME_NOT_WORKING | GAME_NO_SOUND )
/span>) ROM_RELOAD(0xf000, 0x1000) ROM_LOAD("669-1.cpu", 0x1000, 0x0800, CRC(96e72b93) SHA1(3eb3d3e064ba2fe637bba2a93ffd07f00edfa0f2)) ROM_RELOAD(0x5000, 0x0800) ROM_RELOAD(0x9000, 0x0800) ROM_RELOAD(0xd000, 0x0800) ROM_REGION(0x10000, "cpu2", 0) ROM_LOAD("669-s1.snd", 0x7000, 0x0800, CRC(52ec7335) SHA1(2b08dd8a89057c9c8c184d5b723ecad01572129f)) ROM_LOAD("669-s2.snd", 0x7800, 0x0800, CRC(a3317b4b) SHA1(c3b14aa58fd4588c8b8fa3540ea6331a9ee40f1f)) ROM_END /*------------------------------------------------------------------- / James Bond /-------------------------------------------------------------------*/ ROM_START(jamesb) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("u2_80.bin", 0x2000, 0x1000, CRC(4f0bc7b1) SHA1(612cbacdca5cfa6ad23940796df3b7c385be79fe)) ROM_RELOAD(0x6000, 0x1000) ROM_RELOAD(0xa000, 0x1000) ROM_RELOAD(0xe000, 0x1000) ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9)) ROM_RELOAD(0x7000, 0x1000) ROM_RELOAD(0xb000, 0x1000) ROM_RELOAD(0xf000, 0x1000) ROM_LOAD("658-1.cpu", 0x1000, 0x0800, CRC(b841ad7a) SHA1(3396e82351c975781cac9112bfa341a3b799f296)) ROM_RELOAD(0x5000, 0x0800) ROM_RELOAD(0x9000, 0x0800) ROM_RELOAD(0xd000, 0x0800) ROM_REGION(0x10000, "cpu2", 0) ROM_LOAD("658.snd", 0x0400, 0x0400, CRC(962c03df) SHA1(e8ff5d502a038531a921380b75c27ef79b6feac8)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) ROM_RELOAD( 0xfc00, 0x0400) ROM_END ROM_START(jamesb2) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("u2_80.bin", 0x2000, 0x1000, CRC(4f0bc7b1) SHA1(612cbacdca5cfa6ad23940796df3b7c385be79fe)) ROM_RELOAD(0x6000, 0x1000) ROM_RELOAD(0xa000, 0x1000) ROM_RELOAD(0xe000, 0x1000) ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9)) ROM_RELOAD(0x7000, 0x1000) ROM_RELOAD(0xb000, 0x1000) ROM_RELOAD(0xf000, 0x1000) ROM_LOAD("658-x.cpu", 0x1000, 0x0800, CRC(e7e0febf) SHA1(2c101a88b61229f30ed15d38f395bc538999d766)) ROM_RELOAD(0x5000, 0x0800) ROM_RELOAD(0x9000, 0x0800) ROM_RELOAD(0xd000, 0x0800) ROM_REGION(0x10000, "cpu2", 0) ROM_LOAD("658.snd", 0x0400, 0x0400, CRC(962c03df) SHA1(e8ff5d502a038531a921380b75c27ef79b6feac8)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) ROM_RELOAD( 0xfc00, 0x0400) ROM_END /*------------------------------------------------------------------- / Mars - God of War /-------------------------------------------------------------------*/ ROM_START(marsp) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("u2_80.bin", 0x2000, 0x1000, CRC(4f0bc7b1) SHA1(612cbacdca5cfa6ad23940796df3b7c385be79fe)) ROM_RELOAD(0x6000, 0x1000) ROM_RELOAD(0xa000, 0x1000) ROM_RELOAD(0xe000, 0x1000) ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9)) ROM_RELOAD(0x7000, 0x1000) ROM_RELOAD(0xb000, 0x1000) ROM_RELOAD(0xf000, 0x1000) ROM_LOAD("666-1.cpu", 0x1000, 0x0800, CRC(bb7d476a) SHA1(22d5d7f0e52c5180f73a1ca0b3c6bd4b7d0843d6)) ROM_RELOAD(0x5000, 0x0800) ROM_RELOAD(0x9000, 0x0800) ROM_RELOAD(0xd000, 0x0800) ROM_REGION(0x10000, "cpu2", 0) ROM_LOAD("666-s1.snd", 0x7000, 0x0800, CRC(d33dc8a5) SHA1(8d071c392996a74c3cdc2cf5ea3be3c86553ce89)) ROM_LOAD("666-s2.snd", 0x7800, 0x0800, CRC(e5616f3e) SHA1(a6b5ebd0b456a555db0889cd63ce79aafc64dbe5)) ROM_END /*------------------------------------------------------------------- / Panthera /-------------------------------------------------------------------*/ ROM_START(panthera) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("u2_80.bin", 0x2000, 0x1000, CRC(4f0bc7b1) SHA1(612cbacdca5cfa6ad23940796df3b7c385be79fe)) ROM_RELOAD(0x6000, 0x1000) ROM_RELOAD(0xa000, 0x1000) ROM_RELOAD(0xe000, 0x1000) ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9)) ROM_RELOAD(0x7000, 0x1000) ROM_RELOAD(0xb000, 0x1000) ROM_RELOAD(0xf000, 0x1000) ROM_LOAD("652.cpu", 0x1000, 0x0800, CRC(5386e5fb) SHA1(822f47951b702f9c6a1ce674baaab0a596f34413)) ROM_RELOAD(0x5000, 0x0800) ROM_RELOAD(0x9000, 0x0800) ROM_RELOAD(0xd000, 0x0800) ROM_REGION(0x10000, "cpu2", 0) ROM_LOAD("652.snd", 0x0400, 0x0400, CRC(4d0cf2c0) SHA1(0da5d118ffd19b1e78dfaaee3e31c43750d45c8d)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) ROM_RELOAD( 0xfc00, 0x0400) ROM_END ROM_START(panther7) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("u2g807dc.bin", 0x2000, 0x1000, CRC(f8a687b3) SHA1(ba7747c04a5967df760ace102e47c91d42e07a12)) ROM_RELOAD(0x6000, 0x1000) ROM_RELOAD(0xa000, 0x1000) ROM_RELOAD(0xe000, 0x1000) ROM_LOAD("u3g807dc.bin", 0x3000, 0x1000, CRC(6e31242e) SHA1(14e371a0352a6068dec20af1f2b344e34a5b9011)) ROM_RELOAD(0x7000, 0x1000) ROM_RELOAD(0xb000, 0x1000) ROM_RELOAD(0xf000, 0x1000) ROM_LOAD("652.cpu", 0x1000, 0x0800, CRC(5386e5fb) SHA1(822f47951b702f9c6a1ce674baaab0a596f34413)) ROM_RELOAD(0x5000, 0x0800) ROM_RELOAD(0x9000, 0x0800) ROM_RELOAD(0xd000, 0x0800) ROM_REGION(0x10000, "cpu2", 0) ROM_LOAD("652.snd", 0x0400, 0x0400, CRC(4d0cf2c0) SHA1(0da5d118ffd19b1e78dfaaee3e31c43750d45c8d)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) ROM_RELOAD( 0xfc00, 0x0400) ROM_END /*------------------------------------------------------------------- / Pink Panther /-------------------------------------------------------------------*/ ROM_START(pnkpnthr) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("u2_80.bin", 0x2000, 0x1000, CRC(4f0bc7b1) SHA1(612cbacdca5cfa6ad23940796df3b7c385be79fe)) ROM_RELOAD(0x6000, 0x1000) ROM_RELOAD(0xa000, 0x1000) ROM_RELOAD(0xe000, 0x1000) ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9)) ROM_RELOAD(0x7000, 0x1000) ROM_RELOAD(0xb000, 0x1000) ROM_RELOAD(0xf000, 0x1000) ROM_LOAD("664-1.cpu", 0x1000, 0x0800, CRC(a0d3e69a) SHA1(590e68dc28067e61832927cd4b3eefcc066f0a92)) ROM_RELOAD(0x5000, 0x0800) ROM_RELOAD(0x9000, 0x0800) ROM_RELOAD(0xd000, 0x0800) ROM_REGION(0x10000, "cpu2", 0) ROM_LOAD("664.snd", 0x0400, 0x0400, CRC(18f4abfd) SHA1(9e85eb7e9b1e2fe71be828ff1b5752424ed42588)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) ROM_RELOAD( 0xfc00, 0x0400) ROM_END ROM_START(pnkpntr7) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("u2g807dc.bin", 0x2000, 0x1000, CRC(f8a687b3) SHA1(ba7747c04a5967df760ace102e47c91d42e07a12)) ROM_RELOAD(0x6000, 0x1000) ROM_RELOAD(0xa000, 0x1000) ROM_RELOAD(0xe000, 0x1000) ROM_LOAD("u3g807dc.bin", 0x3000, 0x1000, CRC(6e31242e) SHA1(14e371a0352a6068dec20af1f2b344e34a5b9011)) ROM_RELOAD(0x7000, 0x1000) ROM_RELOAD(0xb000, 0x1000) ROM_RELOAD(0xf000, 0x1000) ROM_LOAD("664-1.cpu", 0x1000, 0x0800, CRC(a0d3e69a) SHA1(590e68dc28067e61832927cd4b3eefcc066f0a92)) ROM_RELOAD(0x5000, 0x0800) ROM_RELOAD(0x9000, 0x0800) ROM_RELOAD(0xd000, 0x0800) ROM_REGION(0x10000, "cpu2", 0) ROM_LOAD("664.snd", 0x0400, 0x0400, CRC(18f4abfd) SHA1(9e85eb7e9b1e2fe71be828ff1b5752424ed42588)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) ROM_RELOAD( 0xfc00, 0x0400) ROM_END /*------------------------------------------------------------------- / Star Race /-------------------------------------------------------------------*/ ROM_START(starrace) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("u2_80.bin", 0x2000, 0x1000, CRC(4f0bc7b1) SHA1(612cbacdca5cfa6ad23940796df3b7c385be79fe)) ROM_RELOAD(0x6000, 0x1000) ROM_RELOAD(0xa000, 0x1000) ROM_RELOAD(0xe000, 0x1000) ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9)) ROM_RELOAD(0x7000, 0x1000) ROM_RELOAD(0xb000, 0x1000) ROM_RELOAD(0xf000, 0x1000) ROM_LOAD("657-1.cpu", 0x1000, 0x0200, CRC(27081372) SHA1(2d9cd81ffa44c389c4895043fa1e93b899544158)) ROM_RELOAD(0x1400, 0x0200) ROM_RELOAD(0x5000, 0x0200) ROM_RELOAD(0x5400, 0x0200) ROM_RELOAD(0x9000, 0x0200) ROM_RELOAD(0x9400, 0x0200) ROM_RELOAD(0xd000, 0x0200) ROM_RELOAD(0xd400, 0x0200) ROM_LOAD("657-2.cpu", 0x1200, 0x0200, CRC(c56e31c8) SHA1(1e129fb6309e015a16f2bdb1e389cbc85d1919a7)) ROM_RELOAD(0x1600, 0x0200) ROM_RELOAD(0x5000, 0x0200) ROM_RELOAD(0x5600, 0x0200) ROM_RELOAD(0x9000, 0x0200) ROM_RELOAD(0x9600, 0x0200) ROM_RELOAD(0xd000, 0x0200) ROM_RELOAD(0xd600, 0x0200) ROM_REGION(0x10000, "cpu2", 0) ROM_LOAD("657.snd", 0x0400, 0x0400, CRC(3a1d3995) SHA1(6f0bdb34c4fa11d5f8ecbb98ae55bafeb5d62c9e)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) ROM_RELOAD( 0xfc00, 0x0400) ROM_END ROM_START(starrac7) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("u2g807dc.bin", 0x2000, 0x1000, CRC(f8a687b3) SHA1(ba7747c04a5967df760ace102e47c91d42e07a12)) ROM_RELOAD(0x6000, 0x1000) ROM_RELOAD(0xa000, 0x1000) ROM_RELOAD(0xe000, 0x1000) ROM_LOAD("u3g807dc.bin", 0x3000, 0x1000, CRC(6e31242e) SHA1(14e371a0352a6068dec20af1f2b344e34a5b9011)) ROM_RELOAD(0x7000, 0x1000) ROM_RELOAD(0xb000, 0x1000) ROM_RELOAD(0xf000, 0x1000) ROM_LOAD("657-1.cpu", 0x1000, 0x0200, CRC(27081372) SHA1(2d9cd81ffa44c389c4895043fa1e93b899544158)) ROM_RELOAD(0x1400, 0x0200) ROM_RELOAD(0x5000, 0x0200) ROM_RELOAD(0x5400, 0x0200) ROM_RELOAD(0x9000, 0x0200) ROM_RELOAD(0x9400, 0x0200) ROM_RELOAD(0xd000, 0x0200) ROM_RELOAD(0xd400, 0x0200) ROM_LOAD("657-2.cpu", 0x1200, 0x0200, CRC(c56e31c8) SHA1(1e129fb6309e015a16f2bdb1e389cbc85d1919a7)) ROM_RELOAD(0x1600, 0x0200) ROM_RELOAD(0x5000, 0x0200) ROM_RELOAD(0x5600, 0x0200) ROM_RELOAD(0x9000, 0x0200) ROM_RELOAD(0x9600, 0x0200) ROM_RELOAD(0xd000, 0x0200) ROM_RELOAD(0xd600, 0x0200) ROM_REGION(0x10000, "cpu2", 0) ROM_LOAD("657.snd", 0x0400, 0x0400, CRC(3a1d3995) SHA1(6f0bdb34c4fa11d5f8ecbb98ae55bafeb5d62c9e)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) ROM_RELOAD( 0xfc00, 0x0400) ROM_END /*------------------------------------------------------------------- / The Amazing Spider-Man /-------------------------------------------------------------------*/ ROM_START(spidermn) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("u2_80.bin", 0x2000, 0x1000, CRC(4f0bc7b1) SHA1(612cbacdca5cfa6ad23940796df3b7c385be79fe)) ROM_RELOAD(0x6000, 0x1000) ROM_RELOAD(0xa000, 0x1000) ROM_RELOAD(0xe000, 0x1000) ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9)) ROM_RELOAD(0x7000, 0x1000) ROM_RELOAD(0xb000, 0x1000) ROM_RELOAD(0xf000, 0x1000) ROM_LOAD("653-1.cpu", 0x1000, 0x0200, CRC(674ddc58) SHA1(c9be45391b8dd58a0836801807d593d4c7da9904)) ROM_RELOAD(0x1400, 0x0200) ROM_RELOAD(0x5000, 0x0200) ROM_RELOAD(0x5400, 0x0200) ROM_RELOAD(0x9000, 0x0200) ROM_RELOAD(0x9400, 0x0200) ROM_RELOAD(0xd000, 0x0200) ROM_RELOAD(0xd400, 0x0200) ROM_LOAD("653-2.cpu", 0x1200, 0x0200, CRC(ff1ddfd7) SHA1(dd7b98e491045916153b760f36432506277a4093)) ROM_RELOAD(0x1600, 0x0200) ROM_RELOAD(0x5000, 0x0200) ROM_RELOAD(0x5600, 0x0200) ROM_RELOAD(0x9000, 0x0200) ROM_RELOAD(0x9600, 0x0200) ROM_RELOAD(0xd000, 0x0200) ROM_RELOAD(0xd600, 0x0200) ROM_REGION(0x10000, "cpu2", 0) ROM_LOAD("653.snd", 0x0400, 0x0400, CRC(f5650c46) SHA1(2d0e50fa2f4b3d633daeaa7454630e3444453cb2)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) ROM_RELOAD( 0xfc00, 0x0400) ROM_END /*------------------------------------------------------------------- / The Incredible Hulk /-------------------------------------------------------------------*/ /*------------------------------------------------------------------- / Time Line /-------------------------------------------------------------------*/ ROM_START(timeline) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("u2_80.bin", 0x2000, 0x1000, CRC(4f0bc7b1) SHA1(612cbacdca5cfa6ad23940796df3b7c385be79fe)) ROM_RELOAD(0x6000, 0x1000) ROM_RELOAD(0xa000, 0x1000) ROM_RELOAD(0xe000, 0x1000) ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9)) ROM_RELOAD(0x7000, 0x1000) ROM_RELOAD(0xb000, 0x1000) ROM_RELOAD(0xf000, 0x1000) ROM_LOAD("659.cpu", 0x1000, 0x0800, CRC(d6950e3b) SHA1(939b45a9ee4bb122fbea534ad728ec6b85120416)) ROM_RELOAD(0x5000, 0x0800) ROM_RELOAD(0x9000, 0x0800) ROM_RELOAD(0xd000, 0x0800) ROM_REGION(0x10000, "cpu2", 0) ROM_LOAD("659.snd", 0x0400, 0x0400, CRC(28185568) SHA1(2fd26e7e0a8f050d67159f17634df2b1fc47cbd3)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) ROM_RELOAD( 0xfc00, 0x0400) ROM_END /*------------------------------------------------------------------- / Volcano (Sound and Speech) /-------------------------------------------------------------------*/ ROM_START(vlcno_ax) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("u2_80.bin", 0x2000, 0x1000, CRC(4f0bc7b1) SHA1(612cbacdca5cfa6ad23940796df3b7c385be79fe)) ROM_RELOAD(0x6000, 0x1000) ROM_RELOAD(0xa000, 0x1000) ROM_RELOAD(0xe000, 0x1000) ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9)) ROM_RELOAD(0x7000, 0x1000) ROM_RELOAD(0xb000, 0x1000) ROM_RELOAD(0xf000, 0x1000) ROM_LOAD("667-a-x.cpu", 0x1000, 0x0800, CRC(1f51c351) SHA1(8e1850808faab843ac324040ca665a83809cdc7b)) ROM_RELOAD(0x5000, 0x0800) ROM_RELOAD(0x9000, 0x0800) ROM_RELOAD(0xd000, 0x0800) ROM_REGION(0x10000, "cpu2", 0) ROM_LOAD("667-s1.snd", 0x7000, 0x0800, CRC(ba9d40b7) SHA1(3d6640b259cd8ae87b998cbf1ae2dc13a2913e4f)) ROM_LOAD("667-s2.snd", 0x7800, 0x0800, CRC(b54bd123) SHA1(3522ccdcb28bfacff2287f5537d52f22879249ab)) ROM_END ROM_START(vlcno_1b) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("u2_80.bin", 0x2000, 0x1000, CRC(4f0bc7b1) SHA1(612cbacdca5cfa6ad23940796df3b7c385be79fe)) ROM_RELOAD(0x6000, 0x1000) ROM_RELOAD(0xa000, 0x1000) ROM_RELOAD(0xe000, 0x1000) ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9)) ROM_RELOAD(0x7000, 0x1000) ROM_RELOAD(0xb000, 0x1000) ROM_RELOAD(0xf000, 0x1000) ROM_LOAD("667-1b.cpu", 0x1000, 0x0800, CRC(a422d862) SHA1(2785388eb43c08405774a9413ffa52c1591a84f2)) ROM_RELOAD(0x5000, 0x0800) ROM_RELOAD(0x9000, 0x0800) ROM_RELOAD(0xd000, 0x0800) ROM_REGION(0x10000, "cpu2", 0) ROM_LOAD("667-a-s.snd", 0x0400, 0x0400, CRC(894b4e2e) SHA1(d888f8e00b2b50cef5cc916d46e4c5e6699914a1)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) ROM_RELOAD( 0xfc00, 0x0400) ROM_END ROM_START(vlcno_1a) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("u2_80.bin", 0x2000, 0x1000, CRC(4f0bc7b1) SHA1(612cbacdca5cfa6ad23940796df3b7c385be79fe)) ROM_RELOAD(0x6000, 0x1000) ROM_RELOAD(0xa000, 0x1000) ROM_RELOAD(0xe000, 0x1000) ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9)) ROM_RELOAD(0x7000, 0x1000) ROM_RELOAD(0xb000, 0x1000) ROM_RELOAD(0xf000, 0x1000) ROM_LOAD("667-1a.cpu", 0x1000, 0x0800, CRC(5931c6f7) SHA1(e104a6c3ca2175bb49199e06963e26185dd563d2)) ROM_RELOAD(0x5000, 0x0800) ROM_RELOAD(0x9000, 0x0800) ROM_RELOAD(0xd000, 0x0800) ROM_REGION(0x10000, "cpu2", 0) ROM_LOAD("667-a-s.snd", 0x0400, 0x0400, CRC(894b4e2e) SHA1(d888f8e00b2b50cef5cc916d46e4c5e6699914a1)) ROM_RELOAD( 0x0800, 0x0400) ROM_LOAD("6530sy80.bin", 0x0c00, 0x0400, CRC(c8ba951d) SHA1(e4aa152b36695a0205c19a8914e4d77373f64c6c)) ROM_RELOAD( 0xfc00, 0x0400) ROM_END /*------------------------------------------------------------------- / System 80 Test Fixture /-------------------------------------------------------------------*/ ROM_START(s80tst) ROM_REGION(0x10000, "maincpu", 0) ROM_LOAD("u2_80.bin", 0x2000, 0x1000, CRC(4f0bc7b1) SHA1(612cbacdca5cfa6ad23940796df3b7c385be79fe)) ROM_RELOAD(0x6000, 0x1000) ROM_RELOAD(0xa000, 0x1000) ROM_RELOAD(0xe000, 0x1000) ROM_LOAD("u3_80.bin", 0x3000, 0x1000, CRC(1e69f9d0) SHA1(ad738cac2555830257b531e5e533b15362f624b9)) ROM_RELOAD(0x7000, 0x1000) ROM_RELOAD(0xb000, 0x1000) ROM_RELOAD(0xf000, 0x1000) ROM_LOAD("80tst.cpu", 0x1000, 0x0800, CRC(a0f9e56b) SHA1(5146745ab61fea4b3070c6cf4324a9e77a7cee36)) ROM_RELOAD(0x5000, 0x0800) ROM_RELOAD(0x9000, 0x0800) ROM_RELOAD(0xd000, 0x0800) ROM_REGION(0x10000, "cpu2", 0) ROM_LOAD("80tst-s1.snd", 0x7000, 0x0800, CRC(b9dbdd21) SHA1(dfe42c9e6e02f82ffd0cafe164df3211cdc2d966)) ROM_LOAD("80tst-s2.snd", 0x7800, 0x0800, CRC(1a4b1e9d) SHA1(18e7ffbdbdaf83ab1c8daa5fa5201d9f54390758)) ROM_END /* disp2 */GAME(1981, blckhole, 0, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Black Hole (Rev. 4)", GAME_IS_SKELETON_MECHANICAL) /* disp2 */GAME(1981, blckhole2, blckhole, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Black Hole (Rev. 2)", GAME_IS_SKELETON_MECHANICAL) /* disp2 */GAME(1981, blckhols, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Black Hole (Sound Only)", GAME_IS_SKELETON_MECHANICAL) /* disp1 */GAME(1980, circusp, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Circus", GAME_IS_SKELETON_MECHANICAL) /* disp1 */GAME(1980, cntforce, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Counterforce", GAME_IS_SKELETON_MECHANICAL) /* disp2 */GAME(1981, eclipse, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Eclipse", GAME_IS_SKELETON_MECHANICAL) /* disp1 */GAME(1981, forceii, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Force II", GAME_IS_SKELETON_MECHANICAL) /* disp2 */GAME(1982, hh, 0, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Haunted House (Rev. 2)", GAME_IS_SKELETON_MECHANICAL) /* disp2 */GAME(1982, hh_1, hh, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Haunted House (Rev. 1)", GAME_IS_SKELETON_MECHANICAL) /* disp2 */GAME(1980, jamesb, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "James Bond (Timed Play)", GAME_IS_SKELETON_MECHANICAL) /* disp2 */GAME(1980, jamesb2, jamesb, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "James Bond (3/5-Ball)", GAME_IS_SKELETON_MECHANICAL) /* disp1 */GAME(1981, marsp, 0, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Mars - God of War", GAME_IS_SKELETON_MECHANICAL) /* disp1 */GAME(1980, panthera, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Panthera", GAME_IS_SKELETON_MECHANICAL) /* cust */GAME(1981, pnkpnthr, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Pink Panther", GAME_IS_SKELETON_MECHANICAL) /* disp1 */GAME(1980, starrace, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Star Race", GAME_IS_SKELETON_MECHANICAL) /* disp1 */GAME(1980, spidermn, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "The Amazing Spider-Man", GAME_IS_SKELETON_MECHANICAL) /* cust */GAME(1980, timeline, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Time Line", GAME_IS_SKELETON_MECHANICAL) /* disp1 */GAME(1981, vlcno_ax, 0, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Volcano", GAME_IS_SKELETON_MECHANICAL) /* disp1 */GAME(1981, vlcno_1b, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Volcano (Sound Only)", GAME_IS_SKELETON_MECHANICAL) /* disp1 */GAME(1981, vlcno_1a, vlcno_1b, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Volcano (Sound Only, alternate version)", GAME_IS_SKELETON_MECHANICAL) /* disp1 */GAME(1981, s80tst, 0, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "System 80 Test", GAME_IS_SKELETON_MECHANICAL)