Promoted form NOT_WORKING status : Super Free Kick + clone

New games added or promoted from NOT_WORKING status
---------------------------------------------------
Super Free Kick [Tomasz Slanina]
This commit is contained in:
Tomasz Slanina 2008-12-13 15:15:08 +00:00
parent acbad50008
commit a3eab20447
2 changed files with 498 additions and 102 deletions

View File

@ -1,157 +1,553 @@
/* Super Free Kick / Spinkick by HEC
/*
Super Free Kick / Spinkick by HEC (Haesung Enterprise Co.)
This driver is no longer being worked on by the original author,
it would be best suited to somebody with knowledge of the MSX system,
and possibly a working PCB to investigate the contents of the epoxy
block which may, or may not be a suicide device.
driver by Tomasz Slanina
----
Hacked MSX2 home computer hardware. Romset contains
modifed ( (c) strings removed and patched boot sequence)
MSX2 bios. Yamaha VDP v9938 is hidden in huge epoxy block.
There's also an additional Z80 to drive sound.
PCB contains a giant epoxy block, it is unknown what is inside, or
if it is important to the emulation of the game.
The game is thought to be based on MSX hardware as one of the roms
is the MSX bios with various strings removed.
1 2 3 4 5 6 7
+----------------------------------------------------------------+
| |
| C1182 Y3014B YM2203C Z80A a7 | A
| |
| 1UP GL324 | B
| c7 |
| 2UP c5 | C
| |
+-+ DSW1 74139 6116 d7 | D
| 21.47727 MHz |
+-+ 74241 CN1 74244 | E
| |
| DSW2 74373 | G
| |
| 74241 4464 4464 7404 74139 h7 | H
| J CN2 |
| A 74157 4464 4464 7400 74670 | J
| M j7 |
| M 40106 74169 7404 7432 74670 | K
| A |
| 74241 74169 74138 7432 7402 l7 | L
| |
+-+ 74241 74153 74139 74138 74138 6264 | M
| |
+-+ 74241 82C55 Z80A 6264 | N
| |
+----------------------------------------------------------------+
The game appears to be an unofficial/unlicensed 'sequel' to Sega's
Free Kick
Board # CBK1029
CN1: 40 PIN Connector (Epoxy Block )
CN2: 8 PIN Connector (Epoxy Block)
1UP: 4 PIN Connector (Analog Controls ?)
2UP: 4 PIN Connector (Analog Controls ?)
Z8400A (x2)
UM82C55A-PC
YM2203C
*/
#include "driver.h"
#include "cpu/z80/z80.h"
#include "video/v9938.h"
#include "machine/8255ppi.h"
#include "sound/2203intf.h"
#include "deprecat.h"
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
#define MSX2_XBORDER_PIXELS 16
#define MSX2_YBORDER_PIXELS 28
#define MSX2_TOTAL_XRES_PIXELS 256 * 2 + (MSX2_XBORDER_PIXELS * 2)
#define MSX2_TOTAL_YRES_PIXELS 212 * 2 + (MSX2_YBORDER_PIXELS * 2)
#define MSX2_VISIBLE_XBORDER_PIXELS 8 * 2
#define MSX2_VISIBLE_YBORDER_PIXELS 14 * 2
#define MASTER_CLOCK XTAL_21_4772MHz
static UINT8 *main_mem;
static int sfkick_bank_cfg;
static int sfkick_bank[8];
static int sfkick_input_mux;
static READ8_DEVICE_HANDLER( ppi_port_b_r )
{
switch(sfkick_input_mux&0x0f)
{
case 0: return input_port_read(device->machine, "IN0");
case 1: return input_port_read(device->machine, "IN1");
case 2: return BITSWAP8(input_port_read(device->machine, "DIAL"),4,5,6,7,3,2,1,0);
case 3: return input_port_read(device->machine, "DSW2");
case 4: return input_port_read(device->machine, "DSW1");
}
return 0xff;
}
void sfkick_remap_banks(running_machine *machine)
{
/* 0000-3ffff */
switch(sfkick_bank_cfg&3)
{
case 0: /* bios */
{
UINT8 *mem = memory_region(machine, "bios");
memory_set_bankptr (machine, 1, mem);
memory_set_bankptr (machine,2, mem+0x2000);
}
break;
case 1: /* ext rom */
{
UINT8 *mem = memory_region(machine, "extrom");
memory_set_bankptr (machine,1, mem+0x4000);
memory_set_bankptr (machine,2, mem+0x6000);
}
break;
case 2: /* banked */
{
UINT8 *mem = memory_region(machine, "banked");
memory_set_bankptr (machine,1, mem+0x2000*sfkick_bank[0]);
memory_set_bankptr (machine,2, mem+0x2000*sfkick_bank[1]);
}
break;
case 3: /* unknown */
{
UINT8 *mem = memory_region(machine, "banked");
memory_set_bankptr(machine,1, mem+0x18000);
memory_set_bankptr(machine,2, mem+0x18000);
}
break;
}
/* 4000-7ffff */
switch((sfkick_bank_cfg>>2)&3)
{
case 0: /* bios - upper part */
{
UINT8 *mem = memory_region(machine, "bios");
memory_set_bankptr (machine,3, mem+0x4000);
memory_set_bankptr (machine,4, mem+0x6000);
}
break;
case 1: /* unknown */
case 3:
{
UINT8 *mem = memory_region(machine, "banked");
memory_set_bankptr(machine,3, mem+0x18000);
memory_set_bankptr(machine,4, mem+0x18000);
}
break;
case 2: /* banked */
{
UINT8 *mem = memory_region(machine, "banked");
memory_set_bankptr (machine,3, mem+0x2000*sfkick_bank[2]);
memory_set_bankptr (machine,4, mem+0x2000*sfkick_bank[3]);
}
break;
}
/* 8000-bffff */
switch((sfkick_bank_cfg>>4)&3)
{
case 0: /* cartridge */
{
UINT8 *mem = memory_region(machine, "cartridge");
memory_set_bankptr(machine,5, mem+0x4000);
memory_set_bankptr(machine,6, mem+0x6000);
}
break;
case 1: /* unknown */
case 3:
{
UINT8 *mem = memory_region(machine, "banked");
memory_set_bankptr(machine,5, mem+0x18000);
memory_set_bankptr(machine,6, mem+0x18000);
}
break;
case 2: /* banked */
{
UINT8 *mem = memory_region(machine, "banked");
memory_set_bankptr (machine,5, mem+0x2000*sfkick_bank[4]);
memory_set_bankptr (machine,6, mem+0x2000*sfkick_bank[5]);
}
break;
}
/* c000-fffff */
switch((sfkick_bank_cfg>>6)&3)
{
case 0: /* unknown */
case 1:
{
UINT8 *mem = memory_region(machine, "banked");
memory_set_bankptr(machine,7, mem+0x18000);
memory_set_bankptr(machine,8, mem+0x18000);
}
break;
case 2: /* banked */
{
UINT8 *mem = memory_region(machine, "banked");
memory_set_bankptr (machine,7, mem+0x2000*sfkick_bank[6]);
memory_set_bankptr (machine,8, mem+0x2000*sfkick_bank[7]);
}
break;
case 3: /* RAM */
{
memory_set_bankptr(machine,7, main_mem);
memory_set_bankptr(machine,8, main_mem+0x2000);
}
break;
}
}
static WRITE8_DEVICE_HANDLER ( ppi_port_a_w )
{
sfkick_bank_cfg=data;
sfkick_remap_banks(device->machine);
}
static void sfkick_bank_set(running_machine *machine,int num, int data)
{
/* ignore bit 1 */
data&=0xf;
num&=5;
sfkick_bank[num]=data;
num|=2;
sfkick_bank[num]=data;
sfkick_remap_banks(machine);
}
static WRITE8_HANDLER(page0_w)
{
if((sfkick_bank_cfg&3)==2)
{
if(offset<0x2000)
{
sfkick_bank_set(space->machine,0,data);
}
else
{
sfkick_bank_set(space->machine,1,data);
}
}
}
static WRITE8_HANDLER(page1_w)
{
if(((sfkick_bank_cfg>>2)&3)==2)
{
if(offset<0x2000)
{
sfkick_bank_set(space->machine,2,data);
}
else
{
sfkick_bank_set(space->machine,3,data);
}
}
}
static WRITE8_HANDLER(page2_w)
{
if(((sfkick_bank_cfg>>4)&3)==2)
{
if(offset<0x2000)
{
sfkick_bank_set(space->machine,4,data);
}
else
{
sfkick_bank_set(space->machine,5,data);
}
}
}
static WRITE8_HANDLER(page3_w)
{
if(((sfkick_bank_cfg>>6)&3)==2)
{
if(offset<0x2000)
{
sfkick_bank_set(space->machine,6,data);
}
else
{
sfkick_bank_set(space->machine,7,data);
}
}
else
{
if(((sfkick_bank_cfg>>6)&3)==3)
{
main_mem[offset]=data;
}
}
}
static ADDRESS_MAP_START (readmem, ADDRESS_SPACE_PROGRAM, 8)
AM_RANGE( 0x0000, 0x1fff) AM_READ( SMH_BANK1 )
AM_RANGE( 0x2000, 0x3fff) AM_READ( SMH_BANK2 )
AM_RANGE( 0x4000, 0x5fff) AM_READ( SMH_BANK3 )
AM_RANGE( 0x6000, 0x7fff) AM_READ( SMH_BANK4 )
AM_RANGE( 0x8000, 0x9fff) AM_READ( SMH_BANK5 )
AM_RANGE( 0xa000, 0xbfff) AM_READ( SMH_BANK6 )
AM_RANGE( 0xc000, 0xdfff) AM_READ( SMH_BANK7 )
AM_RANGE( 0xe000, 0xffff) AM_READ( SMH_BANK8 )
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
static ADDRESS_MAP_START( writemem , ADDRESS_SPACE_PROGRAM, 8)
AM_RANGE( 0x0000, 0x3fff) AM_WRITE( page0_w )
AM_RANGE( 0x4000, 0x7fff) AM_WRITE( page1_w )
AM_RANGE( 0x8000, 0xbfff) AM_WRITE( page2_w )
AM_RANGE( 0xc000, 0xffff) AM_WRITE( page3_w )
ADDRESS_MAP_END
#ifdef UNUSED_FUNCTION
static ADDRESS_MAP_START( readmem2, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
static ADDRESS_MAP_START (main_io, ADDRESS_SPACE_IO, 8)
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0xa0, 0xa7) AM_WRITE( soundlatch_w )
AM_RANGE( 0x98, 0x98) AM_READWRITE( v9938_0_vram_r , v9938_0_vram_w)
AM_RANGE( 0x99, 0x99) AM_READWRITE( v9938_0_status_r, v9938_0_command_w )
AM_RANGE( 0x9a, 0x9a) AM_WRITE( v9938_0_palette_w )
AM_RANGE( 0x9b, 0x9b) AM_WRITE( v9938_0_register_w )
AM_RANGE( 0xa8, 0xab) AM_DEVREADWRITE(PPI8255, "ppi8255", ppi8255_r, ppi8255_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem2, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
static ADDRESS_MAP_START( sound_mem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
ADDRESS_MAP_END
#endif
static ADDRESS_MAP_START (sound_io, ADDRESS_SPACE_IO, 8)
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ(soundlatch_r)
AM_RANGE(0x04, 0x04) AM_READWRITE(ym2203_status_port_0_r, ym2203_control_port_0_w)
AM_RANGE(0x05, 0x05) AM_READWRITE(ym2203_read_port_0_r, ym2203_write_port_0_w)
ADDRESS_MAP_END
static WRITE8_DEVICE_HANDLER ( ppi_port_c_w )
{
sfkick_input_mux=data;
}
static const ppi8255_interface ppi8255_intf =
{
NULL,
ppi_port_b_r,
NULL,
ppi_port_a_w,
NULL,
ppi_port_c_w
};
static INPUT_PORTS_START( sfkick )
PORT_START("IN0")
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) /* unused ? */
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
PORT_START("IN1")
PORT_BIT( 0x71, IP_ACTIVE_LOW, IPT_UNUSED ) /* unused ? */
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_START("DIAL")
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(-20)
PORT_START("DSW1") /* bitswapped at read! 76543210 -> 45673210 */
PORT_DIPNAME( 0x82, 0x02, DEF_STR( Unknown ) ) /* unknown, code @ $98a8 */
PORT_DIPSETTING( 0x00, "3" )
PORT_DIPSETTING( 0x02, "2" )
PORT_DIPSETTING( 0x80, "1" )
PORT_DIPSETTING( 0x82, "0" )
PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Difficulty ) ) /* not sure, code @ $9877 */
PORT_DIPSETTING( 0x0c, DEF_STR( Easy ) )
PORT_DIPSETTING( 0x08, DEF_STR( Normal ) )
PORT_DIPSETTING( 0x04, DEF_STR( Medium ) )
PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED ) /* unused ? */
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
PORT_DIPNAME( 0x41, 0x01, DEF_STR( Lives ) )
PORT_DIPSETTING( 0x00, "5" )
PORT_DIPSETTING( 0x01, "3" )
PORT_DIPSETTING( 0x40, "2" )
PORT_DIPSETTING( 0x41, "1" )
PORT_START("DSW2") /* bitswapped at read! 76543210 -> 45673210 */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) /* unused ? */
PORT_DIPNAME( 0x02, 0x02, "Test Mode" )
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Cabinet ) )
PORT_DIPSETTING( 0x10, DEF_STR( Upright ) )
PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
PORT_DIPNAME( 0x20, 0x20, "Freeze" )
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Allow_Continue ) )
PORT_DIPSETTING( 0x40, DEF_STR( No ) )
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
PORT_DIPNAME( 0x8c, 0x8c, DEF_STR( Coinage ) )
PORT_DIPSETTING( 0x04, DEF_STR( 3C_1C ) )
PORT_DIPSETTING( 0x84, DEF_STR( 2C_1C ) )
PORT_DIPSETTING( 0x00, DEF_STR( 3C_2C ) )
PORT_DIPSETTING( 0x8c, DEF_STR( 1C_1C ) )
PORT_DIPSETTING( 0x80, DEF_STR( 2C_3C ) )
PORT_DIPSETTING( 0x88, DEF_STR( 1C_2C ) )
PORT_DIPSETTING( 0x0c, DEF_STR( 1C_3C ) )
PORT_DIPSETTING( 0x08, DEF_STR( 1C_5C ) )
INPUT_PORTS_END
static VIDEO_START( sfkick )
static void sfkick_vdp_interrupt(running_machine *machine, int i)
{
cpu_set_input_line (machine->cpu[0], 0, (i ? HOLD_LINE : CLEAR_LINE));
}
static VIDEO_UPDATE( sfkick )
VIDEO_START( sfkick )
{
return 0;
VIDEO_START_CALL(generic_bitmapped);
v9938_init (machine, 0, machine->primary_screen, tmpbitmap, MODEL_V9938, 0x80000, sfkick_vdp_interrupt);
v9938_reset(0);
}
static MACHINE_RESET(sfkick)
{
v9938_reset(0);
sfkick_bank_cfg=0;
sfkick_bank[0]=0;
sfkick_bank[1]=0;
sfkick_bank[2]=0;
sfkick_bank[3]=0;
sfkick_bank[4]=0;
sfkick_bank[5]=0;
sfkick_bank[6]=0;
sfkick_bank[7]=0;
sfkick_remap_banks(machine);
}
static INTERRUPT_GEN( sfkick_interrupt )
{
v9938_interrupt(0);
}
static void irqhandler(running_machine *machine, int irq)
{
cpu_set_input_line_and_vector(machine->cpu[1], 0, irq ? ASSERT_LINE : CLEAR_LINE, 0xff);
}
static const ym2203_interface ym2203_config =
{
{
AY8910_LEGACY_OUTPUT,
AY8910_DEFAULT_LOADS,
0,0,0,0,
},
irqhandler
};
static MACHINE_DRIVER_START( sfkick )
MDRV_CPU_ADD("main", Z80,8000000) // ?
MDRV_CPU_ADD("main",Z80,MASTER_CLOCK/6)
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
// MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
MDRV_CPU_IO_MAP(main_io,0)
MDRV_CPU_VBLANK_INT_HACK(sfkick_interrupt,262)
//MDRV_CPU_ADD("sub", Z80,8000000) // ?
//MDRV_CPU_PROGRAM_MAP(readmem2,writemem2)
// MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
MDRV_INTERLEAVE(1000)
MDRV_CPU_ADD("sound",Z80,MASTER_CLOCK/6)
MDRV_CPU_PROGRAM_MAP(sound_mem,0)
MDRV_CPU_IO_MAP(sound_io,0)
MDRV_SCREEN_ADD("main", RASTER)
MDRV_SCREEN_REFRESH_RATE(60)
MDRV_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MDRV_SCREEN_SIZE(256, 256)
MDRV_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
MDRV_SCREEN_SIZE(MSX2_TOTAL_XRES_PIXELS, MSX2_TOTAL_YRES_PIXELS)
MDRV_SCREEN_VISIBLE_AREA(MSX2_XBORDER_PIXELS - MSX2_VISIBLE_XBORDER_PIXELS, MSX2_TOTAL_XRES_PIXELS - MSX2_XBORDER_PIXELS + MSX2_VISIBLE_XBORDER_PIXELS - 1, MSX2_YBORDER_PIXELS - MSX2_VISIBLE_YBORDER_PIXELS, MSX2_TOTAL_YRES_PIXELS - MSX2_YBORDER_PIXELS + MSX2_VISIBLE_YBORDER_PIXELS - 1)
//MDRV_GFXDECODE(sfkick) // GFX don't seem to be tile based
MDRV_PALETTE_LENGTH(0x100)
MDRV_PALETTE_LENGTH(512)
MDRV_PPI8255_ADD( "ppi8255", ppi8255_intf )
MDRV_MACHINE_RESET(sfkick)
MDRV_PALETTE_INIT( v9938 )
MDRV_VIDEO_START(sfkick)
MDRV_VIDEO_UPDATE(sfkick)
MDRV_VIDEO_UPDATE(generic_bitmapped)
MDRV_SPEAKER_STANDARD_MONO("mono")
MDRV_SOUND_ADD("ym1", YM2203, MASTER_CLOCK/6)
MDRV_SOUND_CONFIG(ym2203_config)
MDRV_SOUND_ROUTE(0, "mono", 0.25)
MDRV_SOUND_ROUTE(1, "mono", 0.25)
MDRV_SOUND_ROUTE(2, "mono", 0.25)
MDRV_SOUND_ROUTE(3, "mono", 0.50)
MACHINE_DRIVER_END
/*
Super Free Kick (c) ??Hec?? (Epoxy block is engraved with HEC)
Board # CBK1029. Not working
CPU: Epoxy block (40 pin, 8 pin connectors), Z80 (x2)
Sound: YM2203
RAM: 6264 (x2), 6116, 41464 (x4)
Other: 8255
X1: 21.47727 MHz
*/
static DRIVER_INIT(sfkick)
{
main_mem=auto_malloc(0x4000);
}
ROM_START( sfkick )
ROM_REGION( 0x8000*7, "main", 0 ) /* no attempt has been made to map these roms */
ROM_REGION( 0x10000, "main", ROMREGION_ERASEFF )
ROM_REGION(0x20000, "banked", ROMREGION_ERASEFF)
ROM_LOAD( "sfkick2.a7", 0x00000, 0x8000, CRC(1dcaec5e) SHA1(7e063d46fb6606df2d772866cc55f207035b98c4) )
ROM_LOAD( "sfkick3.c7", 0x08000, 0x8000, CRC(639d3cf2) SHA1(950fd28058d32e4532eb6e99454dcaef092a955e) )
ROM_LOAD( "sfkick4.d7", 0x10000, 0x8000, CRC(ee1b344e) SHA1(d33fbad017cc4838192e9c540621537edb7e8dc4) )
/* 0x18000-0x1ffff = empty */
ROM_REGION(0x8000, "extrom", 0)
ROM_LOAD( "sfkick5.h7", 0x00000, 0x8000, CRC(8e8bd9cf) SHA1(f493de40147fdd67a48d4c90b01170fbd6ea074e) )
ROM_REGION(0x8000, "cartridge", 0)
ROM_LOAD( "sfkick6.j7", 0x0000, 0x8000, CRC(7a91ac4b) SHA1(afc5e2c2fe0cd108235ac6ae2775cc9a0b1c9f76) )
ROM_REGION(0x8000, "bios", 0)
ROM_LOAD( "sfkick7.l7", 0x00000, 0x8000, CRC(8cd94c63) SHA1(e6dba66c8716593b8ab88f79f7205211938d1598) )
ROM_REGION(0x10000, "sound", 0)
ROM_LOAD( "sfkick1.c5", 0x00000, 0x8000, CRC(2f5e3b7a) SHA1(d2ff566b415ab10c0681fa1eb221a56e3c137ecf) )
ROM_LOAD( "sfkick2.a7", 0x08000, 0x8000, CRC(1dcaec5e) SHA1(7e063d46fb6606df2d772866cc55f207035b98c4) )
ROM_LOAD( "sfkick3.c7", 0x10000, 0x8000, CRC(639d3cf2) SHA1(950fd28058d32e4532eb6e99454dcaef092a955e) )
ROM_LOAD( "sfkick4.d7", 0x18000, 0x8000, CRC(ee1b344e) SHA1(d33fbad017cc4838192e9c540621537edb7e8dc4) )
ROM_LOAD( "sfkick5.h7", 0x20000, 0x8000, CRC(8e8bd9cf) SHA1(f493de40147fdd67a48d4c90b01170fbd6ea074e) )
ROM_LOAD( "sfkick6.j7", 0x28000, 0x8000, CRC(7a91ac4b) SHA1(afc5e2c2fe0cd108235ac6ae2775cc9a0b1c9f76) )
ROM_LOAD( "sfkick7.l7", 0x30000, 0x8000, CRC(8cd94c63) SHA1(e6dba66c8716593b8ab88f79f7205211938d1598) )
ROM_END
/*
Spinkick
Hec
Dumped by Thierry (ShinobiZ)
Board provided by Gerald (Coy)
CPU: Z80A
SND: Z80A + YM2203C
There is also an UM82C55A-PC
*/
ROM_START( spinkick )
ROM_REGION( 0x8000*7, "main", 0 ) /* no attempt has been made to map these roms */
ROM_REGION( 0x10000, "main", ROMREGION_ERASEFF )
ROM_REGION(0x20000, "banked", ROMREGION_ERASEFF)
ROM_LOAD( "spinkick.r2", 0x00000, 0x8000, CRC(1dcaec5e) SHA1(7e063d46fb6606df2d772866cc55f207035b98c4) )
ROM_LOAD( "spinkick.r3", 0x08000, 0x8000, CRC(e86a194a) SHA1(19a02375ec463e795770403c3e948d754919458b) )
ROM_LOAD( "spinkick.r4", 0x10000, 0x8000, CRC(ee1b344e) SHA1(d33fbad017cc4838192e9c540621537edb7e8dc4) )
/* 0x18000-0x1ffff = empty */
ROM_REGION(0x8000, "extrom", 0)
ROM_LOAD( "spinkick.r5", 0x00000, 0x8000, CRC(8e8bd9cf) SHA1(f493de40147fdd67a48d4c90b01170fbd6ea074e) )
ROM_REGION(0x8000, "cartridge", 0)
ROM_LOAD( "spinkick.r6", 0x0000, 0x8000, CRC(7a91ac4b) SHA1(afc5e2c2fe0cd108235ac6ae2775cc9a0b1c9f76) )
ROM_REGION(0x8000, "bios", 0)
ROM_LOAD( "spinkick.r7", 0x00000, 0x8000, CRC(8cd94c63) SHA1(e6dba66c8716593b8ab88f79f7205211938d1598) )
ROM_REGION(0x10000, "sound", 0)
ROM_LOAD( "spinkick.r1", 0x00000, 0x8000, CRC(2f5e3b7a) SHA1(d2ff566b415ab10c0681fa1eb221a56e3c137ecf) )
ROM_LOAD( "spinkick.r2", 0x08000, 0x8000, CRC(1dcaec5e) SHA1(7e063d46fb6606df2d772866cc55f207035b98c4) )
ROM_LOAD( "spinkick.r3", 0x10000, 0x8000, CRC(e86a194a) SHA1(19a02375ec463e795770403c3e948d754919458b) ) // only this rom differs
ROM_LOAD( "spinkick.r4", 0x18000, 0x8000, CRC(ee1b344e) SHA1(d33fbad017cc4838192e9c540621537edb7e8dc4) )
ROM_LOAD( "spinkick.r5", 0x20000, 0x8000, CRC(8e8bd9cf) SHA1(f493de40147fdd67a48d4c90b01170fbd6ea074e) )
ROM_LOAD( "spinkick.r6", 0x28000, 0x8000, CRC(7a91ac4b) SHA1(afc5e2c2fe0cd108235ac6ae2775cc9a0b1c9f76) )
ROM_LOAD( "spinkick.r7", 0x30000, 0x8000, CRC(8cd94c63) SHA1(e6dba66c8716593b8ab88f79f7205211938d1598) )
ROM_END
GAME( 199?, sfkick, 0, sfkick, sfkick, 0, ROT90, "HEC", "Super Free Kick", GAME_NOT_WORKING | GAME_NO_SOUND )
GAME( 199?, spinkick, sfkick, sfkick, sfkick, 0, ROT90, "HEC", "Spinkick", GAME_NOT_WORKING | GAME_NO_SOUND )
GAME( 1988, sfkick, 0, sfkick, sfkick, sfkick, ROT90, "Haesung/HJ Corp", "Super Free Kick", 0 )
GAME( 1988, spinkick, sfkick, sfkick, sfkick, sfkick, ROT90, "Haesung/Seojin", "Hec's Spinkick", 0 )

View File

@ -999,6 +999,7 @@ $(MAMEOBJ)/midway.a: \
$(MAMEOBJ)/msx.a: \
$(DRIVERS)/forte2.o \
$(DRIVERS)/sangho.o \
$(DRIVERS)/sfkick.o \
$(MAMEOBJ)/namco.a: \
$(DRIVERS)/20pacgal.o $(VIDEO)/20pacgal.o \
@ -1650,7 +1651,6 @@ $(MAMEOBJ)/misc.a: \
$(DRIVERS)/rbmk.o \
$(DRIVERS)/rcorsair.o \
$(DRIVERS)/re900.o \
$(DRIVERS)/sfkick.o \
$(DRIVERS)/shangkid.o $(VIDEO)/shangkid.o \
$(DRIVERS)/skyarmy.o \
$(DRIVERS)/skylncr.o \