PORT_START( "EEPROMOUT" ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_write_bit) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_clock_line) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE("eeprom", eeprom_set_cs_line) INPUT_PORTS_END #if 0 static const gfx_layout charlayout = { 8,8, RGN_FRAC(1,1), 4, { 0, 1, 2, 3 }, { STEP8(0,4) }, { STEP8(7*8*4,-8*4) }, 8*8*4 }; static GFXDECODE_START( overdriv ) GFXDECODE_ENTRY( "gfx4", 0, charlayout, 0, 0x80 ) GFXDECODE_ENTRY( "gfx5", 0, charlayout, 0, 0x80 ) GFXDECODE_END #endif static const k053260_interface k053260_config = { "shared" };
for (y = cliprect.min_y; y <= cliprect.max_y ; y++) for (x = min_x; x <= max_x; x++) if ((x >= cliprect.min_x) && (x <= cliprect.max_x)) bitmap.pix16(y, x) |= 8; } draw_headlight(screen.machine(), bitmap, cliprect, flip); return 0; } static const UINT32 headlight_xoffset[] = { STEP8(0x78, 1), STEP8(0x70, 1), STEP8(0x68, 1), STEP8(0x60, 1), STEP8(0x58, 1), STEP8(0x50, 1), STEP8(0x48, 1), STEP8(0x40, 1), STEP8(0x38, 1), STEP8(0x30, 1), STEP8(0x28, 1), STEP8(0x20, 1), STEP8(0x18, 1), STEP8(0x10, 1), STEP8(0x08, 1), STEP8(0x00, 1),
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x40, DEF_STR( On ) ) PORT_SERVICE_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW2:8" ) INPUT_PORTS_END /* 16x16x4 tiles (made of four 8x8 tiles) */ static const gfx_layout layout_16x16x4_2 = { 16,16, RGN_FRAC(1,1), 4, { STEP4(0,1) }, { STEP4(8*8*4*0 + 3*4, -4), STEP4(8*8*4*0 + 7*4, -4), STEP4(8*8*4*1 + 3*4, -4), STEP4(8*8*4*1 + 7*4, -4) }, { STEP8(8*8*4*0, 8*4), STEP8(8*8*4*2, 8*4) }, 16*16*4 }; static const gfx_layout layout_16x16x4 = { 16,16, RGN_FRAC(1,1), 4, { STEP4(0,1) }, { STEP8(8*8*4*0,4), STEP8(8*8*4*1,4) }, { STEP8(8*8*4*0,8*4), STEP8(8*8*4*2,8*4) }, 16*16*4 };
PORT_DIPSETTING( 0x10, "10K 30K+" ) PORT_DIPSETTING( 0x00, "20K 30K+" ) PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW2:6" ) PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW2:7" ) PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW2:8" ) INPUT_PORTS_END static const gfx_layout layout_8x8x2 = { 8,8, RGN_FRAC(1,1), 2, { 0, 4 }, { STEP4(0,1), STEP4(8,1) }, { STEP8(0,8*2) }, 8*8*2 }; static const gfx_layout layout_8x8x4 = { 8,8, RGN_FRAC(1,2), 4, { RGN_FRAC(1,2) + 0, RGN_FRAC(1,2) + 4, 0, 4 }, { STEP4(0,1), STEP4(8,1) }, { STEP8(0,8*2) }, 8*8*2 }; static const gfx_layout layout_16x16x4 =
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE4 ) // memory reset INPUT_PORTS_END /************************************* * * Graphics definitions * *************************************/ static const gfx_layout charlayout = { 8,8, /* 8*8 characters */ 8192, /* 8192 characters */ 3, /* 3 bits per pixel */ {0x20000*8,0x10000*8,0}, {STEP8(0,1)}, {STEP8(0,8)}, 8*8 }; static GFXDECODE_START( mayumi ) GFXDECODE_ENTRY( "gfx1", 0x00000, charlayout, 0, 32 ) GFXDECODE_END /************************************* * * Sound interfaces * *************************************/ static const ym2203_interface ym2203_config =
{ m_msm->data_w(m_msm5205next); m_msm5205next >>= 4; m_adpcm_toggle^= 1; if (m_adpcm_toggle) m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); } static const gfx_layout layout_8x8x4 = { 8,8, RGN_FRAC(1,4), 4, { RGN_FRAC(3,4),RGN_FRAC(2,4),RGN_FRAC(1,4),RGN_FRAC(0,4) }, { STEP8(0,1) }, { STEP8(0,8) }, 8*8 }; static const gfx_layout layout_16x16x4 = { 16,16, RGN_FRAC(1,4), 4, { RGN_FRAC(3,4),RGN_FRAC(2,4),RGN_FRAC(1,4),RGN_FRAC(0,4) }, { STEP8(0,1), STEP8(8*8*2,1) }, { STEP8(0,8), STEP8(8*8*1,8) }, 16*16 };
INPUT_PORTS_END /*************************************************************************** Graphics Layout ***************************************************************************/ static const gfx_layout layout_8x8x6 = { 8, 8, RGN_FRAC(1, 3), 6, { RGN_FRAC(0,3)+8,RGN_FRAC(0,3)+0, RGN_FRAC(1,3)+8,RGN_FRAC(1,3)+0, RGN_FRAC(2,3)+8,RGN_FRAC(2,3)+0 }, { STEP8(0,1) }, { STEP8(0,2*8) }, 8*8*2 }; static const gfx_layout layout_8x32x6 = { 8, 32, RGN_FRAC(1, 3), 6, { RGN_FRAC(0,3)+8,RGN_FRAC(0,3)+0, RGN_FRAC(1,3)+8,RGN_FRAC(1,3)+0, RGN_FRAC(2,3)+8,RGN_FRAC(2,3)+0 }, { STEP8(0,1) }, { STEP32(0,2*8) }, 8*32*2
4, /* 4 bits per pixel */ { 0, 1, 2, 3 }, /* planes are packed in a nibble */ { 33*4, 32*4, 49*4, 48*4, 1*4, 0*4, 17*4, 16*4 }, { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, 32*8 /* 32 bytes per char */ }; #endif static const gfx_layout gfxlayout_8x8x4 = { 8,8, RGN_FRAC(1,1), 4, //{ STEP4(0,8) }, { 24,8,16,0 }, { STEP8(7,-1) }, { STEP8(0,4*8) }, 8*8*4 }; #if 0 static const gfx_layout gfxlayout_16x16x16 = { 16,16, RGN_FRAC(1,1), 16, { STEP16(0,0) }, // >8planes not supported { STEP16(15,-1) }, { STEP16(0,16*1) }, 16*16*16 };
void ichibanjyan_state::ichibanjyan_io(address_map &map) { map.global_mask(0xff); } static INPUT_PORTS_START( ichibanjyan ) INPUT_PORTS_END static const gfx_layout charlayout = { 8,8, RGN_FRAC(1,1), 8, { 0, 1, 2, 3, 4, 5, 6, 7 }, { STEP8( 0*512, 8 ) }, { STEP8( 0*512, 8*8 ) }, 8*8*8 }; static GFXDECODE_START( gfx_ichibanjyan ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 1 ) GFXDECODE_ENTRY( "gfx2", 0, charlayout, 0, 1 ) GFXDECODE_END void ichibanjyan_state::machine_start() { uint8_t *ROM = memregion("code")->base(); membank("bank1")->configure_entries(0, 4, ROM, 0x8000);
DECLARE_READ8_MEMBER(bitmap_r); DECLARE_WRITE8_MEMBER(bitmap_w); DECLARE_DEVICE_IMAGE_LOAD_MEMBER(loopy_cart); void casloopy_map(address_map &map); void casloopy_sub_map(address_map &map); }; static const gfx_layout casloopy_4bpp_layout = { 8,8, 0x10000/32, 4, { STEP4(0, 1) }, { STEP8(0, 4) }, { STEP8(0, 4*8) }, 4*8*8 }; static const gfx_layout casloopy_8bpp_layout = { 8,8, 0x10000/64, 8, { STEP8(0, 1) }, { STEP8(0, 8) }, { STEP8(0, 8*8) }, 8*8*8 };
PORT_START("BUFF") PORT_CONFNAME( 0x1, 0x1, "Sprite Buffer Hack" ) PORT_CONFSETTING( 0x0, DEF_STR( Off )) PORT_CONFSETTING( 0x1, DEF_STR( On )) #endif /* USE_SPRITEBUFFER_HACKS */ INPUT_PORTS_END /*** GFX Decode ***/ static const gfx_layout mcatadv_tiles16x16x4_layout = { 16,16, RGN_FRAC(1,1), 4, { STEP4(0,1) }, { STEP8(0,4), STEP8(32*8,4) }, { STEP8(0,32), STEP8(64*8,32) }, 128*8 }; static GFXDECODE_START( mcatadv ) GFXDECODE_ENTRY( "gfx2", 0, mcatadv_tiles16x16x4_layout, 0, 0x200 ) GFXDECODE_ENTRY( "gfx3", 0, mcatadv_tiles16x16x4_layout, 0, 0x200 ) GFXDECODE_END /* Stolen from Psikyo.c */ WRITE_LINE_MEMBER(mcatadv_state::sound_irq) { m_soundcpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); }
PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END /* SnowBros */ static struct GfxLayout tilelayout = { 16,16, RGN_FRAC(1,1), 4, { 0, 1, 2, 3 }, { STEP8(0,4), STEP8(8*32,4) }, { STEP8(0,32), STEP8(16*32,32) }, 32*32 }; static struct GfxDecodeInfo gfxdecodeinfo[] = { { REGION_GFX1, 0, &tilelayout, 0, 16 }, { -1 } /* end of array */ }; /* Winter Bobble */ static struct GfxLayout tilelayout_wb = { 16,16,
/************************************* * * Graphics layouts * *************************************/ static const gfx_layout spritelayout = { 16, 16, RGN_FRAC(1,3), 3, { RGN_FRAC(2,3), RGN_FRAC(1,3), RGN_FRAC(0,3) }, { STEP8(0,1), STEP8(16*8,1) }, { STEP16(0,8) }, 32*8 }; static GFXDECODE_START( yard ) GFXDECODE_ENTRY( "gfx1", 0, gfx_8x8x3_planar, 0, 32 ) GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 512, 32 ) GFXDECODE_END /************************************* * * Machine drivers
8*8+0, 8*8+1, 8*8+2, 8*8+3, 8*8+4, 8*8+5, 8*8+6, 8*8+7 }, { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 16*8, 17*8, 18*8, 19*8, 20*8, 21*8, 22*8, 23*8 }, 32*8 }; static const gfx_layout charlayout = { 8,8, RGN_FRAC(1,2), 4, {RGN_FRAC(1,2),RGN_FRAC(1,2)+4,0,4}, { STEP4(0,1), STEP4(8,1) }, { STEP8(0,8*2) }, 8*8*2 }; static GFXDECODE_START( pitnrun ) GFXDECODE_ENTRY( "gfx3", 0, charlayout, 64, 2 ) GFXDECODE_ENTRY( "gfx2", 0, charlayout, 32, 2 ) GFXDECODE_ENTRY( "gfx1", 0, spritelayout, 0, 4 ) GFXDECODE_END static MACHINE_CONFIG_START( pitnrun, pitnrun_state ) MCFG_CPU_ADD("maincpu", Z80,XTAL_18_432MHz/6) /* verified on pcb */ MCFG_CPU_PROGRAM_MAP(pitnrun_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", pitnrun_state, pitnrun_nmi_source) MCFG_CPU_ADD("audiocpu", Z80, XTAL_5MHz/2) /* verified on pcb */
PORT_DIPNAME( 0xc0, 0x00, "Difficulty (Outlanes)" ) PORT_DIPSETTING( 0x00, DEF_STR( Easy ) ) PORT_DIPSETTING( 0x40, DEF_STR( Medium ) ) PORT_DIPSETTING( 0x80, DEF_STR( Hard ) ) PORT_DIPSETTING( 0xc0, DEF_STR( Hardest ) ) INPUT_PORTS_END static const gfx_layout charlayout1 = { 8,8, RGN_FRAC(1,3), 3, { RGN_FRAC(0,3), RGN_FRAC(1,3), RGN_FRAC(2,3) }, { STEP8(0,1) }, { STEP8(0,8) }, 8*8 }; static const gfx_layout charlayout2 = { 8,8, RGN_FRAC(1,4), 4, { RGN_FRAC(0,4), RGN_FRAC(1,4), RGN_FRAC(2,4), RGN_FRAC(3,4) }, { STEP8(0,1) }, { STEP8(0,8) }, 8*8 }; static const gfx_layout spritelayout1 = {
/************************************* * * Graphics definitions * *************************************/ static const gfx_layout charlayout = { 8,8, RGN_FRAC(1,1), 2, { 0, 4 }, { STEP4(8*8,1), STEP4(0,1) }, { STEP8(0,8) }, 8*16 }; static const gfx_layout spritelayout = { 16,16, RGN_FRAC(1,2), 2, { RGN_FRAC(1,2), 0 }, { STEP8(8*16,1), STEP8(0,1) }, { STEP16(0,8) }, 8*32 };
PORT_START( "EEPROMOUT" ) PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, di_write) PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, clk_write) PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_OUTPUT ) PORT_WRITE_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write) INPUT_PORTS_END /*************************************************************************** Graphics Layout ***************************************************************************/ static const gfx_layout layout_16x16x8 = { 16, 16, RGN_FRAC(1, 1), 8, { STEP8(0,1) }, { STEP16(0,8) }, { STEP16(0,16*8) }, 16*16*8 }; static GFXDECODE_START( astrocorp ) GFXDECODE_ENTRY("sprites", 0, layout_16x16x8, 0, 1) GFXDECODE_END /*************************************************************************** Machine Drivers ***************************************************************************/ static const UINT16 showhand_default_eeprom[15] = {0x0001,0x0007,0x000a,0x0003,0x0000,0x0009,0x0003,0x0000,0x0002,0x0001,0x0000,0x0000,0x0000,0x0000,0x0000};
Graphics Layouts ***************************************************************************/ /* Tiles are 8x8x4 but the minimum sprite size is 2x2 tiles */ static struct GfxLayout layout_8x8x4 = { 8,8, RGN_FRAC(1,2), 4, { RGN_FRAC(1,2)+0,RGN_FRAC(1,2)+4, 0,4 }, { 3,2,1,0, 11,10,9,8 }, { STEP8(0,16) }, 8*8*4/2 }; static struct GfxDecodeInfo suna16_gfxdecodeinfo[] = { { REGION_GFX1, 0, &layout_8x8x4, 0, 16*2 }, // [0] Sprites { -1 } }; /***************************************************************************
PORT_DIPSETTING( 0x00, DEF_STR( On ) ) // There is an 8th dipswitch here, which controls screen flip, but the operator sheet implies it does it via hardware, i.e. not readable by cpu. May need further investigation. PORT_START(T5182COINPORT) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_IMPULSE(2) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_IMPULSE(2) INPUT_PORTS_END static const gfx_layout charlayout = { 8,8, RGN_FRAC(1,3), 3, { RGN_FRAC(0,3), RGN_FRAC(1,3),RGN_FRAC(2,3)}, {STEP8(7,-1)}, {STEP8(0,8)}, 8*8 }; static const gfx_layout spritelayout = { 16,16, RGN_FRAC(1,4), 4, { RGN_FRAC(1,4), RGN_FRAC(3,4),RGN_FRAC(0,4),RGN_FRAC(2,4)}, {STEP16(15,-1)}, {STEP16(0,16)}, 16*16 }; static GFXDECODE_START( mustache )
{ 0 }, { STEP4(3*0x100*8+4,1), STEP4(2*0x100*8+4,1), STEP4(1*0x100*8+4,1), STEP4(0*0x100*8+4,1) }, { STEP16(0,8) }, 16*8 }; static const gfx_layout goallayout = { 8,32, 1, 4, { 4, 5, 6, 7 }, { STEP8(0,8) }, { STEP8(192*8,8*8), STEP16( 0*8,8*8), STEP8(128*8,8*8) }, 0 }; static const gfx_layout alphalayout = { 8,8, RGN_FRAC(1,1), 1, { 0 }, { STEP8(0,1) }, { STEP8(0,8) }, 8*8
/*************************************************************************** Machine Config ***************************************************************************/ static const gfx_layout charlayout = { 8,8, RGN_FRAC(1,1), 2, { 0, 4 }, { STEP4(8*8,1), STEP4(0*8,1) }, { STEP8(0*8,8) }, 16*8 }; static GFXDECODE_START( cswat ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 256 ) GFXDECODE_END INTERRUPT_GEN_MEMBER(cswat_state::nmi_handler) { if (m_nmi_enabled) device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); } void cswat_state::machine_reset() {
/** Do inverse transform on 8x4 part of block */ static void vc1_inv_trans_8x4_altivec(DCTELEM block[64], int n) { vector signed short src0, src1, src2, src3, src4, src5, src6, src7; vector signed int s0, s1, s2, s3, s4, s5, s6, s7; vector signed int s8, s9, sA, sB, sC, sD, sE, sF; vector signed int t0, t1, t2, t3, t4, t5, t6, t7; const vector signed int vec_64 = vec_sl(vec_splat_s32(4), vec_splat_u32(4)); const vector unsigned int vec_7 = vec_splat_u32(7); const vector unsigned int vec_5 = vec_splat_u32(5); const vector unsigned int vec_4 = vec_splat_u32(4); const vector signed int vec_4s = vec_splat_s32(4); const vector unsigned int vec_3 = vec_splat_u32(3); const vector unsigned int vec_2 = vec_splat_u32(2); const vector unsigned int vec_1 = vec_splat_u32(1); src0 = vec_ld( 0, block); src1 = vec_ld( 16, block); src2 = vec_ld( 32, block); src3 = vec_ld( 48, block); src4 = vec_ld( 64, block); src5 = vec_ld( 80, block); src6 = vec_ld( 96, block); src7 = vec_ld(112, block); TRANSPOSE8(src0, src1, src2, src3, src4, src5, src6, src7); s0 = vec_unpackl(src0); s1 = vec_unpackl(src1); s2 = vec_unpackl(src2); s3 = vec_unpackl(src3); s4 = vec_unpackl(src4); s5 = vec_unpackl(src5); s6 = vec_unpackl(src6); s7 = vec_unpackl(src7); s8 = vec_unpackh(src0); s9 = vec_unpackh(src1); sA = vec_unpackh(src2); sB = vec_unpackh(src3); sC = vec_unpackh(src4); sD = vec_unpackh(src5); sE = vec_unpackh(src6); sF = vec_unpackh(src7); STEP8(s0, s1, s2, s3, s4, s5, s6, s7, vec_4s); SHIFT_HOR8(s0, s1, s2, s3, s4, s5, s6, s7); STEP8(s8, s9, sA, sB, sC, sD, sE, sF, vec_4s); SHIFT_HOR8(s8, s9, sA, sB, sC, sD, sE, sF); src0 = vec_pack(s8, s0); src1 = vec_pack(s9, s1); src2 = vec_pack(sA, s2); src3 = vec_pack(sB, s3); src4 = vec_pack(sC, s4); src5 = vec_pack(sD, s5); src6 = vec_pack(sE, s6); src7 = vec_pack(sF, s7); TRANSPOSE8(src0, src1, src2, src3, src4, src5, src6, src7); if(!n){ // upper half of block s0 = vec_unpackh(src0); s1 = vec_unpackh(src1); s2 = vec_unpackh(src2); s3 = vec_unpackh(src3); s8 = vec_unpackl(src0); s9 = vec_unpackl(src1); sA = vec_unpackl(src2); sB = vec_unpackl(src3); STEP4(s0, s1, s2, s3, vec_64); SHIFT_VERT4(s0, s1, s2, s3); STEP4(s8, s9, sA, sB, vec_64); SHIFT_VERT4(s8, s9, sA, sB); src0 = vec_pack(s0, s8); src1 = vec_pack(s1, s9); src2 = vec_pack(s2, sA); src3 = vec_pack(s3, sB); vec_st(src0, 0, block); vec_st(src1, 16, block); vec_st(src2, 32, block); vec_st(src3, 48, block); } else { //lower half of block s0 = vec_unpackh(src4); s1 = vec_unpackh(src5); s2 = vec_unpackh(src6); s3 = vec_unpackh(src7); s8 = vec_unpackl(src4); s9 = vec_unpackl(src5); sA = vec_unpackl(src6); sB = vec_unpackl(src7); STEP4(s0, s1, s2, s3, vec_64); SHIFT_VERT4(s0, s1, s2, s3); STEP4(s8, s9, sA, sB, vec_64); SHIFT_VERT4(s8, s9, sA, sB); src4 = vec_pack(s0, s8); src5 = vec_pack(s1, s9); src6 = vec_pack(s2, sA); src7 = vec_pack(s3, sB); vec_st(src4, 64, block); vec_st(src5, 80, block); vec_st(src6, 96, block); vec_st(src7,112, block); } }
/************************************* * * Graphics layouts * *************************************/ static const gfx_layout charlayout = { 8,8, RGN_FRAC(1,2), 4, { RGN_FRAC(1,2)+4, RGN_FRAC(1,2)+0, 4, 0 }, { STEP4(0,1), STEP4(8*8,1) }, { STEP8(0,8) }, 16*8 }; static const gfx_layout spritelayout = { 16,16, RGN_FRAC(1,2), 4, { RGN_FRAC(1,2)+4, RGN_FRAC(1,2)+0, 4, 0 }, { STEP4(0,1), STEP4(8*8,1), STEP4(16*8,1), STEP4(24*8,1) }, { STEP8(0,8), STEP8(32*8,8) }, 64*8 };
RGN_FRAC(1,4), 4, { RGN_FRAC(3,4), RGN_FRAC(1,4), RGN_FRAC(2,4), RGN_FRAC(0,4) }, { STEP16(0,1) }, { STEP16(0,16) }, 16*16 }; /* 16x16x8 */ static const gfx_layout layout_16x16x8 = { 16,16, RGN_FRAC(1,1), 8, { 6*8,4*8, 2*8,0*8, 7*8,5*8, 3*8,1*8 }, { STEP8(0,1),STEP8(8*8,1) }, { STEP16(0,16*8) }, 16*16*8 }; static GFXDECODE_START( yunsun16 ) GFXDECODE_ENTRY( "gfx1", 0, layout_16x16x8, 0x1000, 0x10 ) // [0] Layers GFXDECODE_ENTRY( "gfx2", 0, layout_16x16x4, 0x0000, 0x20 ) // [1] Sprites GFXDECODE_END /*************************************************************************** Machine Drivers
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) INPUT_PORTS_END /****************************************************************************/ static const gfx_layout fglayout = { 16,8, /* 16*8 characters */ 8192*2, /* 16384 characters */ 1, /* 1 bit per pixel */ {0}, { STEP16(0,1) }, { STEP8(0,16) }, 16*8 }; static const gfx_layout bglayout = { 8,8, /* 8*8 characters */ 32768+1024, /* 32768+1024 characters */ 4, /* 4 bits per pixel */ {0,1,2,3}, { STEP8(0,4) }, { STEP8(0,32) }, 8*8*4 }; static const gfx_layout objlayout =
/************************************* * * Graphics definitions * *************************************/ static const gfx_layout pflayout = { 8,8, RGN_FRAC(1,5), 4, { RGN_FRAC(3,5), RGN_FRAC(2,5), RGN_FRAC(1,5), RGN_FRAC(0,5) }, { STEP8(0,1) }, { STEP8(0,16) }, 16*8 }; static const gfx_layout molayout = { 8,8, RGN_FRAC(1,5), 5, { RGN_FRAC(4,5), RGN_FRAC(3,5), RGN_FRAC(2,5), RGN_FRAC(1,5), RGN_FRAC(0,5) }, { STEP8(0,1) }, { STEP8(0,16) }, 16*8 };
PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) ) INPUT_PORTS_END /************************************* * * Graphics definitions * *************************************/ static const gfx_layout carjmbre_charlayout = { 8,8, RGN_FRAC(2,4), 2, { RGN_FRAC(0,4), RGN_FRAC(2,4) }, { STEP8(0,1) }, { STEP8(0,8) }, 8*8 }; static const gfx_layout carjmbre_spritelayout = { 16,16, RGN_FRAC(1,4), 2, { RGN_FRAC(2,4), RGN_FRAC(0,4) }, { STEP8(0,1), STEP8(256*16*8,1) }, { STEP16(0,8) }, 16*8 };
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY INPUT_PORTS_END static const gfx_layout charlayout = { 8,8, RGN_FRAC(2,2), 2, { 0, 4 }, { STEP4(0,1), STEP4(8*8,1) }, { STEP8(0,8) }, 16*8 }; static const gfx_layout spritelayout = { 16,16, RGN_FRAC(1,2), 2, { RGN_FRAC(0,2), RGN_FRAC(1,2) }, { STEP8(0,1), STEP8(8*8,1) }, { STEP8(0,8), STEP8(16*8,8) }, 32*8 };
PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Test ) ) PORT_DIPSETTING( 0x0200, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_SERVICE( 0x4000, IP_ACTIVE_LOW ) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x00ff, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END /* text-layer characters */ static const UINT32 pts_4bits_layout_xoffset[64] = { STEP8( 0*256, 4 ), STEP8( 1*256, 4 ), STEP8( 4*256, 4 ), STEP8( 5*256, 4 ), STEP8( 16*256, 4 ), STEP8( 17*256, 4 ), STEP8( 20*256, 4 ), STEP8( 21*256, 4 ) }; static const UINT32 pts_4bits_layout_yoffset[64] = { STEP8( 0*256, 8*4 ), STEP8( 2*256, 8*4 ), STEP8( 8*256, 8*4 ), STEP8( 10*256, 8*4 ), STEP8( 32*256, 8*4 ), STEP8( 34*256, 8*4 ), STEP8( 40*256, 8*4 ), STEP8( 42*256, 8*4 ) }; static const gfx_layout pts_8x8_4bits_layout = { 8,8, /* 8*8 pixels */ RGN_FRAC(1,1), /* 65536 patterns */ 4, /* 4 bits per pixel */ { 0, 1, 2, 3 },
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2) PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_START2 ) INPUT_PORTS_END /**********************************************************************************/ static const gfx_layout tile_8x8_layout = { 8,8, RGN_FRAC(1,2), 4, { RGN_FRAC(1,2)+8,RGN_FRAC(1,2)+0,RGN_FRAC(0,2)+8,RGN_FRAC(0,2)+0 }, { STEP8(0,1) }, { STEP8(0,8*2) }, 8*16 }; static const gfx_layout tile_16x16_layout_5bpp = { 16,16, RGN_FRAC(1,3), 5, { RGN_FRAC(2,3), RGN_FRAC(1,3)+8,RGN_FRAC(1,3)+0,RGN_FRAC(0,3)+8,RGN_FRAC(0,3)+0 }, { STEP8(16*8*2,1), STEP8(0,1) }, { STEP16(0,8*2) }, 32*16 };