1 /*
2
3 TODO:
4 - This runs on Crazy Climber hardware, should be merged with that driver.
5 - Two ROMs are not used, I don't know what they are.
6
7 */
8
9
10 #include "driver.h"
11 #include "vidhrdw/generic.h"
12 #include "machine/segacrpt.h"
13
14
15
16 extern unsigned char *cclimber_bsvideoram;
17 extern size_t cclimber_bsvideoram_size;
18 extern unsigned char *cclimber_bigspriteram;
19 extern unsigned char *cclimber_column_scroll;
20 WRITE_HANDLER( cclimber_colorram_w );
21 WRITE_HANDLER( cclimber_bigsprite_videoram_w );
22 PALETTE_INIT( cclimber );
23 VIDEO_UPDATE( cclimber );
24
25
PALETTE_INIT(yamato)26 PALETTE_INIT( yamato )
27 {
28 int i;
29 #define TOTAL_COLORS(gfxn) (Machine->gfx[gfxn]->total_colors * Machine->gfx[gfxn]->color_granularity)
30 #define COLOR(gfxn,offs) (colortable[Machine->drv->gfxdecodeinfo[gfxn].color_codes_start + (offs)])
31
32
33 /* chars - 12 bits RGB */
34 for (i = 0;i < 64;i++)
35 {
36 int bit0,bit1,bit2,bit3,r,g,b;
37
38
39 /* red component */
40 bit0 = (color_prom[0] >> 0) & 0x01;
41 bit1 = (color_prom[0] >> 1) & 0x01;
42 bit2 = (color_prom[0] >> 2) & 0x01;
43 bit3 = (color_prom[0] >> 3) & 0x01;
44 r = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
45 /* green component */
46 bit0 = (color_prom[0] >> 4) & 0x01;
47 bit1 = (color_prom[0] >> 5) & 0x01;
48 bit2 = (color_prom[0] >> 6) & 0x01;
49 bit3 = (color_prom[0] >> 7) & 0x01;
50 g = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
51 /* blue component */
52 bit0 = (color_prom[64] >> 0) & 0x01;
53 bit1 = (color_prom[64] >> 1) & 0x01;
54 bit2 = (color_prom[64] >> 2) & 0x01;
55 bit3 = (color_prom[64] >> 3) & 0x01;
56 b = 0x0e * bit0 + 0x1f * bit1 + 0x43 * bit2 + 0x8f * bit3;
57
58 palette_set_color(i,r,g,b);
59 color_prom++;
60 }
61 color_prom += 64;
62
63 /* big sprite - 8 bits RGB */
64 for (i = 0;i < 32;i++)
65 {
66 int bit0,bit1,bit2,r,g,b;
67
68
69 /* red component */
70 bit0 = (*color_prom >> 0) & 0x01;
71 bit1 = (*color_prom >> 1) & 0x01;
72 bit2 = (*color_prom >> 2) & 0x01;
73 r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
74 /* green component */
75 bit0 = (*color_prom >> 3) & 0x01;
76 bit1 = (*color_prom >> 4) & 0x01;
77 bit2 = (*color_prom >> 5) & 0x01;
78 g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
79 /* blue component */
80 bit0 = 0;
81 bit1 = (*color_prom >> 6) & 0x01;
82 bit2 = (*color_prom >> 7) & 0x01;
83 b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
84
85 palette_set_color(i+64,r,g,b);
86 color_prom++;
87 }
88
89
90 /* character and sprite lookup table */
91 /* they use colors 0-63 */
92 for (i = 0;i < TOTAL_COLORS(0);i++)
93 {
94 /* pen 0 always uses color 0 (background in River Patrol and Silver Land) */
95 if (i % 4 == 0) COLOR(0,i) = 0;
96 else COLOR(0,i) = i;
97 }
98
99 /* big sprite lookup table */
100 /* it uses colors 64-95 */
101 for (i = 0;i < TOTAL_COLORS(2);i++)
102 {
103 if (i % 4 == 0) COLOR(2,i) = 0;
104 else COLOR(2,i) = i + 64;
105 }
106 }
107
108
109
110
111 static int p0,p1;
112
WRITE_HANDLER(p0_w)113 static WRITE_HANDLER( p0_w )
114 {
115 p0 = data;
116 }
WRITE_HANDLER(p1_w)117 static WRITE_HANDLER( p1_w )
118 {
119 p1 = data;
120 }
READ_HANDLER(p0_r)121 static READ_HANDLER( p0_r )
122 {
123 return p0;
124 }
READ_HANDLER(p1_r)125 static READ_HANDLER( p1_r )
126 {
127 return p1;
128 }
129
WRITE_HANDLER(flip_screen_x_w)130 static WRITE_HANDLER( flip_screen_x_w )
131 {
132 flip_screen_x_set(data);
133 }
134
WRITE_HANDLER(flip_screen_y_w)135 static WRITE_HANDLER( flip_screen_y_w )
136 {
137 flip_screen_y_set(data);
138 }
139
140
MEMORY_READ_START(yamato_readmem)141 static MEMORY_READ_START( yamato_readmem )
142 { 0x0000, 0x5fff, MRA_ROM },
143 { 0x6000, 0x6fff, MRA_RAM },
144 { 0x7000, 0x7fff, MRA_ROM },
145 { 0x8800, 0x8bff, MRA_RAM },
146 { 0x9000, 0x93ff, MRA_RAM }, /* video RAM */
147 { 0x9800, 0x9bff, MRA_RAM }, /* column scroll registers */
148 { 0x9c00, 0x9fff, MRA_RAM }, /* color RAM */
149 { 0xa000, 0xa000, input_port_0_r }, /* IN0 */
150 { 0xa800, 0xa800, input_port_1_r }, /* IN1 */
151 { 0xb000, 0xb000, input_port_2_r }, /* DSW */
152 { 0xb800, 0xb800, input_port_3_r }, /* IN2 */
153 { 0xba00, 0xba00, input_port_4_r }, /* IN3 (maybe a mirror of b800) */
154 MEMORY_END
155
156 static MEMORY_WRITE_START( yamato_writemem )
157 { 0x0000, 0x5fff, MWA_ROM },
158 { 0x6000, 0x6fff, MWA_RAM },
159 { 0x7000, 0x7fff, MWA_ROM },
160 { 0x8800, 0x88ff, cclimber_bigsprite_videoram_w, &cclimber_bsvideoram, &cclimber_bsvideoram_size },
161 { 0x8900, 0x8bff, MWA_RAM }, /* not used, but initialized */
162 { 0x9000, 0x93ff, videoram_w, &videoram, &videoram_size },
163 /*{ 0x9400, 0x97ff, videoram_w }, // mirror address, used by Crazy Climber to draw windows /*/
164 /* 9800-9bff and 9c00-9fff share the same RAM, interleaved */
165 /* (9800-981f for scroll, 9c20-9c3f for color RAM, and so on) */
166 { 0x9800, 0x981f, MWA_RAM, &cclimber_column_scroll },
167 { 0x9880, 0x989f, MWA_RAM, &spriteram, &spriteram_size },
168 { 0x98dc, 0x98df, MWA_RAM, &cclimber_bigspriteram },
169 { 0x9800, 0x9bff, MWA_RAM }, /* not used, but initialized */
170 { 0x9c00, 0x9fff, cclimber_colorram_w, &colorram },
171 { 0xa000, 0xa000, interrupt_enable_w },
172 { 0xa001, 0xa001, flip_screen_x_w },
173 { 0xa002, 0xa002, flip_screen_y_w },
174 /*{ 0xa004, 0xa004, cclimber_sample_trigger_w },*/
175 /*{ 0xa800, 0xa800, cclimber_sample_rate_w },*/
176 /*{ 0xb000, 0xb000, cclimber_sample_volume_w },*/
177 MEMORY_END
178
179 static PORT_WRITE_START( yamato_writeport )
180 { 0x00, 0x00, p0_w }, /* ??? */
181 { 0x01, 0x01, p1_w }, /* ??? */
182 PORT_END
183
184 static MEMORY_READ_START( yamato_sound_readmem )
185 { 0x0000, 0x07ff, MRA_ROM },
186 { 0x5000, 0x53ff, MRA_RAM },
187 MEMORY_END
188
189 static MEMORY_WRITE_START( yamato_sound_writemem )
190 { 0x0000, 0x07ff, MWA_ROM },
191 { 0x5000, 0x53ff, MWA_RAM },
192 MEMORY_END
193
194 static PORT_READ_START( yamato_sound_readport )
195 { 0x04, 0x04, p0_r }, /* ??? */
196 { 0x08, 0x08, p1_r }, /* ??? */
197 PORT_END
198
199 static PORT_WRITE_START( yamato_sound_writeport )
200 { 0x00, 0x00, AY8910_control_port_0_w },
201 { 0x01, 0x01, AY8910_write_port_0_w },
202 { 0x02, 0x02, AY8910_control_port_1_w },
203 { 0x03, 0x03, AY8910_write_port_1_w },
204 PORT_END
205
206
207
208 INPUT_PORTS_START( yamato )
209 PORT_START /* IN0 */
210 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
211 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
212 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 )
213 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 )
214 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_8WAY )
215 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_8WAY )
216 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_8WAY )
217 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY )
218
219 PORT_START /* IN1 */
220 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
221 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
222 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 | IPF_COCKTAIL )
223 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 | IPF_COCKTAIL )
224 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP | IPF_8WAY | IPF_COCKTAIL )
225 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN | IPF_8WAY | IPF_COCKTAIL )
226 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT | IPF_8WAY | IPF_COCKTAIL )
227 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT | IPF_8WAY | IPF_COCKTAIL )
228
229 PORT_START /* DSW */
230 PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
231 PORT_DIPSETTING( 0x00, "3" )
232 PORT_DIPSETTING( 0x01, "4" )
233 PORT_DIPSETTING( 0x02, "5" )
234 PORT_DIPSETTING( 0x03, "6" )
235 PORT_DIPNAME( 0x1c, 0x00, DEF_STR( Coin_A ) )
236 PORT_DIPSETTING( 0x0c, DEF_STR( 4C_1C ) )
237 PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) )
238 PORT_DIPSETTING( 0x04, DEF_STR( 2C_1C ) )
239 PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
240 PORT_DIPSETTING( 0x18, DEF_STR( 2C_3C ) )
241 PORT_DIPSETTING( 0x10, DEF_STR( 1C_2C ) )
242 PORT_DIPSETTING( 0x14, DEF_STR( 1C_3C ) )
243 PORT_DIPSETTING( 0x1c, DEF_STR( Free_Play ) )
244 PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
245 PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
246 PORT_DIPSETTING( 0x20, DEF_STR( On ) )
247 PORT_DIPNAME( 0x40, 0x00, "Speed" )
248 PORT_DIPSETTING( 0x00, "Slow" )
249 PORT_DIPSETTING( 0x40, "Fast" )
250 PORT_DIPNAME( 0x80, 0x80, DEF_STR( Cabinet ) )
251 PORT_DIPSETTING( 0x80, DEF_STR( Upright ) )
252 PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
253
254 PORT_START /* IN2 */
255 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 ) /* set 1 only */
256 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 )
257 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
258 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
259 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_COIN3 ) /* set 1 only */
260 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
261 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
262 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
263
264 PORT_START /* IN3 */
265 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
266 PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN )
267 PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 )
268 PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START2 )
269 PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
270 PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
271 PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
272 PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
273 INPUT_PORTS_END
274
275
276
277 static struct GfxLayout charlayout =
278 {
279 8,8, /* 8*8 characters */
280 512, /* 512 characters (256 in Crazy Climber) */
281 2, /* 2 bits per pixel */
282 { 0, 512*8*8 }, /* the two bitplanes are separated */
283 { 0, 1, 2, 3, 4, 5, 6, 7 }, /* pretty straightforward layout */
284 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
285 8*8 /* every char takes 8 consecutive bytes */
286 };
287 static struct GfxLayout bscharlayout =
288 {
289 8,8, /* 8*8 characters */
290 512,/*256, // 256 characters /*/
291 2, /* 2 bits per pixel */
292 { 0, 512*8*8 }, /* the bitplanes are separated */
293 { 0, 1, 2, 3, 4, 5, 6, 7 }, /* pretty straightforward layout */
294 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
295 8*8 /* every char takes 8 consecutive bytes */
296 };
297 static struct GfxLayout spritelayout =
298 {
299 16,16, /* 16*16 sprites */
300 128, /* 128 sprites (64 in Crazy Climber) */
301 2, /* 2 bits per pixel */
302 { 0, 128*16*16 }, /* the bitplanes are separated */
303 { 0, 1, 2, 3, 4, 5, 6, 7, /* pretty straightforward layout */
304 8*8+0, 8*8+1, 8*8+2, 8*8+3, 8*8+4, 8*8+5, 8*8+6, 8*8+7 },
305 { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
306 16*8, 17*8, 18*8, 19*8, 20*8, 21*8, 22*8, 23*8 },
307 32*8 /* every sprite takes 32 consecutive bytes */
308 };
309
310 static struct GfxDecodeInfo gfxdecodeinfo[] =
311 {
312 { REGION_GFX1, 0x0000, &charlayout, 0, 16 }, /* char set #1 */
313 { REGION_GFX1, 0x2000, &charlayout, 0, 16 }, /* char set #2 */
314 { REGION_GFX2, 0x0000, &bscharlayout, 16*4, 8 }, /* big sprite char set */
315 { REGION_GFX1, 0x0000, &spritelayout, 0, 16 }, /* sprite set #1 */
316 { REGION_GFX1, 0x2000, &spritelayout, 0, 16 }, /* sprite set #2 */
317 { -1 } /* end of array */
318 };
319
320
321
322 static struct AY8910interface yamato_ay8910_interface =
323 {
324 2, /* 2 chips */
325 1536000, /* 1.536 MHz??? */
326 { 25, 25 },
327 { 0 },
328 { 0 },
329 { 0 },
330 { 0 }
331 };
332
333
334
335 static MACHINE_DRIVER_START( yamato )
336
337 /* basic machine hardware */
338 MDRV_CPU_ADD(Z80, 3072000) /* 3.072 MHz ? */
MDRV_CPU_MEMORY(yamato_readmem,yamato_writemem)339 MDRV_CPU_MEMORY(yamato_readmem,yamato_writemem)
340 MDRV_CPU_PORTS(0,yamato_writeport)
341 MDRV_CPU_VBLANK_INT(nmi_line_pulse,1)
342
343 MDRV_CPU_ADD(Z80, 3072000)
344 MDRV_CPU_FLAGS(CPU_AUDIO_CPU) /* 3.072 MHz ? */
345 MDRV_CPU_MEMORY(yamato_sound_readmem,yamato_sound_writemem)
346 MDRV_CPU_PORTS(yamato_sound_readport,yamato_sound_writeport)
347
348 MDRV_FRAMES_PER_SECOND(60)
349 MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
350
351 /* video hardware */
352 MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
353 MDRV_SCREEN_SIZE(32*8, 32*8)
354 MDRV_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
355 MDRV_GFXDECODE(gfxdecodeinfo)
356 MDRV_PALETTE_LENGTH(96)
357 MDRV_COLORTABLE_LENGTH(16*4+8*4)
358
359 MDRV_PALETTE_INIT(yamato)
360 MDRV_VIDEO_START(generic)
361 MDRV_VIDEO_UPDATE(cclimber)
362
363 /* sound hardware */
364 MDRV_SOUND_ADD(AY8910, yamato_ay8910_interface)
365 MACHINE_DRIVER_END
366
367
368
369 ROM_START( yamato )
370 ROM_REGION( 2*0x10000, REGION_CPU1, 0 ) /* 64k for code + 64k for decrypted opcodes */
371 ROM_LOAD( "2.5de", 0x0000, 0x2000, CRC(20895096) SHA1(af76786e3c519e710899f143d46c53087e9817c7) )
372 ROM_LOAD( "3.5f", 0x2000, 0x2000, CRC(57a696f9) SHA1(28ea80fb100ac92295fc3eb318617d7cb014408d) )
373 ROM_LOAD( "4.5jh", 0x4000, 0x2000, CRC(59a468e8) SHA1(a79cdee6efefd87a356cc8d710f8050bc12e07c3) )
374 /* hole at 6000-6fff */
375 ROM_LOAD( "11.5a", 0x7000, 0x1000, CRC(35987485) SHA1(1f0cb545bbd52982cbf801bc1dd2c4087af2f5f7) )
376
377 /* I don't know what the following ROMs are! */
378 ROM_LOAD( "5.5lm", 0xf000, 0x1000, CRC(7761ad24) SHA1(98878b19addd142d35718080eece05eaaee0388d) ) /* ?? */
379 ROM_LOAD( "6.5n", 0xf000, 0x1000, CRC(da48444c) SHA1(a43e672ce262eb817fb4e5715ef4fb304a6a2815) ) /* ?? */
380
381 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */
382 ROM_LOAD( "1.5v", 0x0000, 0x0800, CRC(3aad9e3c) SHA1(37b0414b265397881bb45b166ecab85880d1358d) )
383
384 ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE )
385 ROM_LOAD( "10.11k", 0x0000, 0x1000, CRC(161121f5) SHA1(017c5c6b773b0ae1d0be52e4bac90b699ea196dd) )
386 ROM_CONTINUE( 0x2000, 0x1000 )
387 ROM_LOAD( "9.11h", 0x1000, 0x1000, CRC(56e84cc4) SHA1(c48e0e5460376d6b34173c42a27907ef12218182) )
388 ROM_CONTINUE( 0x3000, 0x1000 )
389
390 ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE )
391 ROM_LOAD( "8.11c", 0x0000, 0x1000, CRC(28024d9a) SHA1(c871c4d74be72a8bfea99e89d43f91922f4b734b) )
392 ROM_LOAD( "7.11a", 0x1000, 0x1000, CRC(4a179790) SHA1(7fb6b033de939ff8bd13055c073311dca2c1a6fe) )
393
394 ROM_REGION( 0x00a0, REGION_PROMS, 0 )
395 ROM_LOAD( "1.bpr", 0x0000, 0x0020, CRC(ef2053ab) SHA1(2006cbf003f90a8e75f39047a88a3bba85d78e80) )
396 ROM_LOAD( "2.bpr", 0x0020, 0x0020, CRC(2281d39f) SHA1(e9b568bdacf7ab611801cf42ea5c7624f5440ef6) )
397 ROM_LOAD( "3.bpr", 0x0040, 0x0020, CRC(9e6341e3) SHA1(2e7a4d3c1f40d6089735734b9d9de2ca57fb73c7) )
398 ROM_LOAD( "4.bpr", 0x0060, 0x0020, CRC(1c97dc0b) SHA1(fe8e0a91172abdd2d14b199da144306a9b944372) )
399 ROM_LOAD( "5.bpr", 0x0080, 0x0020, CRC(edd6c05f) SHA1(b95db8aaf74fe175d1179f0d85f79242b16f5fb4) )
400 ROM_END
401
402 ROM_START( yamato2 )
403 ROM_REGION( 2*0x10000, REGION_CPU1, 0 ) /* 64k for code + 64k for decrypted opcodes */
404 ROM_LOAD( "2-2.5de", 0x0000, 0x2000, CRC(93da1d52) SHA1(21b72856ebbd969e4e075b52719e6acdbd1bc4c5) )
405 ROM_LOAD( "3-2.5f", 0x2000, 0x2000, CRC(31e73821) SHA1(e582c9fcea1b29d43f65b6aa67e1895c38d2736c) )
406 ROM_LOAD( "4-2.5jh", 0x4000, 0x2000, CRC(fd7bcfc3) SHA1(5037170cb3a9824794e90d74def92b0b25d45caa) )
407 /* hole at 6000-6fff */
408 /* 7000-7fff not present here */
409
410 /* I don't know what the following ROMs are! */
411 ROM_LOAD( "5.5lm", 0xf000, 0x1000, CRC(7761ad24) SHA1(98878b19addd142d35718080eece05eaaee0388d) ) /* ?? */
412 ROM_LOAD( "6.5n", 0xf000, 0x1000, CRC(da48444c) SHA1(a43e672ce262eb817fb4e5715ef4fb304a6a2815) ) /* ?? */
413
414 ROM_REGION( 0x10000, REGION_CPU2, 0 ) /* 64k for sound cpu */
415 ROM_LOAD( "1.5v", 0x0000, 0x0800, CRC(3aad9e3c) SHA1(37b0414b265397881bb45b166ecab85880d1358d) )
416
417 ROM_REGION( 0x4000, REGION_GFX1, ROMREGION_DISPOSE )
418 ROM_LOAD( "10.11k", 0x0000, 0x1000, CRC(161121f5) SHA1(017c5c6b773b0ae1d0be52e4bac90b699ea196dd) )
419 ROM_CONTINUE( 0x2000, 0x1000 )
420 ROM_LOAD( "9.11h", 0x1000, 0x1000, CRC(56e84cc4) SHA1(c48e0e5460376d6b34173c42a27907ef12218182) )
421 ROM_CONTINUE( 0x3000, 0x1000 )
422
423 ROM_REGION( 0x2000, REGION_GFX2, ROMREGION_DISPOSE )
424 ROM_LOAD( "8.11c", 0x0000, 0x1000, CRC(28024d9a) SHA1(c871c4d74be72a8bfea99e89d43f91922f4b734b) )
425 ROM_LOAD( "7.11a", 0x1000, 0x1000, CRC(4a179790) SHA1(7fb6b033de939ff8bd13055c073311dca2c1a6fe) )
426
427 ROM_REGION( 0x00a0, REGION_PROMS, 0 )
428 ROM_LOAD( "1.bpr", 0x0000, 0x0020, CRC(ef2053ab) SHA1(2006cbf003f90a8e75f39047a88a3bba85d78e80) )
429 ROM_LOAD( "2.bpr", 0x0020, 0x0020, CRC(2281d39f) SHA1(e9b568bdacf7ab611801cf42ea5c7624f5440ef6) )
430 ROM_LOAD( "3.bpr", 0x0040, 0x0020, CRC(9e6341e3) SHA1(2e7a4d3c1f40d6089735734b9d9de2ca57fb73c7) )
431 ROM_LOAD( "4.bpr", 0x0060, 0x0020, CRC(1c97dc0b) SHA1(fe8e0a91172abdd2d14b199da144306a9b944372) )
432 ROM_LOAD( "5.bpr", 0x0080, 0x0020, CRC(edd6c05f) SHA1(b95db8aaf74fe175d1179f0d85f79242b16f5fb4) )
433 ROM_END
434
435
436 static DRIVER_INIT( yamato )
437 {
438 yamato_decode();
439 }
440
441
442 GAME( 1983, yamato, 0, yamato, yamato, yamato, ROT90, "Sega", "Yamato (US)" )
443 GAME( 1983, yamato2, yamato, yamato, yamato, yamato, ROT90, "Sega", "Yamato (World[Q])" )
444