new clones

D. D. Crew (bootleg) [Porchy, Caius, The Dumping Union] (NOT WORKING)

like most actual-era System 18 bootlegs this is a mess of modified hardware, eg. no VDP, completely different tilemap systems, sound systems and such.
This commit is contained in:
David Haywood 2016-02-23 22:25:09 +00:00
parent fe2e403d77
commit eb3600df11
4 changed files with 136 additions and 6 deletions

View File

@ -4897,7 +4897,7 @@ astormb2 // BOOTLEG
shdancbl // BOOTLEG
shdancbla // BOOTLEG
mwalkbl // BOOTLEG
ddcrewbl
// Outrun Hardware
// 1986.11 Outrun (US)

View File

@ -1349,6 +1349,43 @@ static ADDRESS_MAP_START( astormbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0xffc000, 0xffffff) AM_RAM
ADDRESS_MAP_END
READ16_MEMBER(segas1x_bootleg_state::ddcrew_c41006_r)
{
return 0xffff;//rand();
}
// todo: this
static ADDRESS_MAP_START( ddcrewbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x200000, 0x27ffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE(sys16_tileram_w) AM_SHARE("tileram")
AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE(sys16_textram_w) AM_SHARE("textram")
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("sprites")
// AM_RANGE(0xa00000, 0xa00001) AM_READ_PORT("COINAGE")
// AM_RANGE(0xa00002, 0xa00003) AM_READ_PORT("DSW1")
// AM_RANGE(0xa0000e, 0xa0000f) AM_WRITE(sys18_tilebank_w)
// AM_RANGE(0xa01000, 0xa01001) AM_READ_PORT("SERVICE")
// AM_RANGE(0xa01002, 0xa01003) AM_READ_PORT("P1")
// AM_RANGE(0xa01004, 0xa01005) AM_READ_PORT("P2")
// AM_RANGE(0xa01006, 0xa01007) AM_READ_PORT("P3")
AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram")
AM_RANGE(0xC00000, 0xC00001) AM_WRITENOP
AM_RANGE(0xC40000, 0xC40001) AM_READ(ddcrew_c41006_r)
AM_RANGE(0xC40002, 0xC40003) AM_READ(ddcrew_c41006_r)
AM_RANGE(0xC41000, 0xC41001) AM_READ(ddcrew_c41006_r)
AM_RANGE(0xC41006, 0xC41007) AM_READ(ddcrew_c41006_r)
AM_RANGE(0xc46600, 0xc46601) AM_WRITE(sys18_refreshenable_w)
AM_RANGE(0xffc000, 0xffffff) AM_RAM
ADDRESS_MAP_END
/*************************************
*
* Input ports
@ -2434,6 +2471,34 @@ static MACHINE_CONFIG_DERIVED( shdancbla, system18 )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( ddcrewbl, segas1x_bootleg_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, 10000000)
MCFG_CPU_VBLANK_INT_DRIVER("screen", segas1x_bootleg_state, irq4_line_hold)
MCFG_CPU_PROGRAM_MAP(ddcrewbl_map)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_system18old)
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", sys16)
MCFG_PALETTE_ADD("palette", (2048+2048)*SHADOW_COLORS_MULTIPLIER)
MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state,system18old)
MCFG_BOOTLEG_SYS16B_SPRITES_ADD("sprites")
MCFG_BOOTLEG_SYS16B_SPRITES_XORIGIN(189-107)
MACHINE_CONFIG_END
/*************************************
*
* ROM definition(s)
@ -3477,6 +3542,48 @@ ROM_START( shdancbla )
ROM_LOAD( "10.bin", 0x10000, 0x10000, CRC(d47a1610) SHA1(96d22068321de3c285a41d28342ab97d1dfa09da) )
ROM_LOAD( "9.bin", 0x20000, 0x10000, CRC(430faf5e) SHA1(dfe34a757937d7a971911fcefd14dfd7f5942b02) )
ROM_END
// seems derived from the D. D. Crew (World, 4 Players) / FD1094 317-0187 version, old bootleg from the period the game was released
ROM_START( ddcrewbl )
ROM_REGION( 0x400000, "maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "11.bin", 0x000000, 0x20000, CRC(c670c8a6) SHA1(eeda32aa9f75b8917e39484f579441a6020c29f4) )
ROM_LOAD16_BYTE( "15.bin", 0x000001, 0x20000, CRC(7f3baab1) SHA1(390310765137cffc2a1119f1839195134439e929) )
ROM_LOAD16_BYTE( "12.bin", 0x040000, 0x20000, CRC(f8d3fedc) SHA1(3a3151c9a05db3f8c736f57d90f2dd3e5ea708dd) )
ROM_LOAD16_BYTE( "16.bin", 0x040001, 0x20000, CRC(9662afd7) SHA1(688a0b1b5a83b1cfb2ea2f08f4ca15d8a8be08d4) )
ROM_LOAD16_BYTE( "13.bin", 0x200000, 0x20000, CRC(0033fe50) SHA1(3f29db7ddcfb5b6d6dfdd500d6541ac6018974ca) )
ROM_LOAD16_BYTE( "17.bin", 0x200001, 0x20000, CRC(bbb43241) SHA1(7a2955c59c39e9e214f15a842d3bc94d7a1095f3) )
ROM_LOAD16_BYTE( "14.bin", 0x240000, 0x20000, CRC(8780712e) SHA1(05ab2f7b108e0ae139237665da14f33132fb555e) )
ROM_LOAD16_BYTE( "18.bin", 0x240001, 0x20000, CRC(94b69d68) SHA1(e49ac664f4a5576737db9b9a7eee34b8c5fcd333))
ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles (same as original)
ROM_LOAD( "fac-03.bin", 0x00000, 0x40000, CRC(2228cd88) SHA1(5774bb6a401c3da05c5f3c9d3996b20bb3713cb2) )
ROM_LOAD( "fac-02.bin", 0x40000, 0x40000, CRC(edba8e10) SHA1(25a2833ead4ca363802ddc2eb97c40976502921a) )
ROM_LOAD( "fac-01.bin", 0x80000, 0x40000, CRC(e8ecc305) SHA1(a26d0c5c7826cd315f8b2c27e5a503a2a7b535c4) )
ROM_REGION16_BE( 0x800000, "sprites", 0 ) // sprites (same as original)
ROM_LOAD16_BYTE( "fac-10.bin", 0x000001, 0x80000, CRC(4fda6a4b) SHA1(a9e582e494ab967e8f3ccf4d5844bb8ef889928c) )
ROM_LOAD16_BYTE( "fac-11.bin", 0x000000, 0x80000, CRC(3cbf1f2a) SHA1(80b6b006936740087786acd538e28aca85fa6894) )
ROM_LOAD16_BYTE( "fac-08.bin", 0x200001, 0x80000, CRC(e9c74876) SHA1(aff9d071e77f01c6937188bf67be38fa898343e6) )
ROM_LOAD16_BYTE( "fac-09.bin", 0x200000, 0x80000, CRC(59022c31) SHA1(5e1409fe0f29284dc6a3ffacf69b761aae09f132) )
ROM_LOAD16_BYTE( "fac-06.bin", 0x400001, 0x80000, CRC(720d9858) SHA1(8ebcb8b3e9555ca48b28908d47dcbbd654398b6f) )
ROM_LOAD16_BYTE( "fac-07.bin", 0x400000, 0x80000, CRC(7775fdd4) SHA1(a03cac039b400b651a4bf2167a8f2338f488ce26) )
ROM_LOAD16_BYTE( "fac-04.bin", 0x600001, 0x80000, CRC(846c4265) SHA1(58d0c213d085fb4dee18b7aefb05087d9d522950) )
ROM_LOAD16_BYTE( "fac-05.bin", 0x600000, 0x80000, CRC(0e76c797) SHA1(9a44dc948e84e5acac36e80105c2349ee78e6cfa) )
ROM_REGION( 0x80000, "oki", ROMREGION_ERASEFF )
ROM_LOAD( "fac-12.bin", 0x00000, 0x80000, CRC(2e7dade2) SHA1(4133138990ed10f56e299399f034f86ffd9cbd47) )
ROM_REGION( 0x100000, "proms", 0 )
ROM_LOAD( "82s123.bin", 0x000, 0x020, CRC(58bcf8bd) SHA1(e4d3d179b08c0f3424a6bec0f15058fb1b56f8d8) )
ROM_LOAD( "82s129.bin", 0x000, 0x100, CRC(00b5c4c4) SHA1(acab51ad861b25edf310b9b903a7fc486daaee4b) )
ROM_REGION( 0x100000, "gals", 0 )
ROM_LOAD( "gal16v8-1.bin", 0x000, 0x117, CRC(64892ee8) SHA1(c7ea077aead5934d95d61f82bdf705dc0cb0e8e4) )
ROM_LOAD( "gal16v8-2.bin", 0x000, 0x117, CRC(22133a8f) SHA1(0b5bc074cfe88c0631df63e0c0a733c660d73af0) )
ROM_END
/*************************************
*
* Driver initialization
@ -3630,6 +3737,13 @@ DRIVER_INIT_MEMBER(segas1x_bootleg_state,fpointbl)
m_fore_yscroll = 2;
}
DRIVER_INIT_MEMBER(segas1x_bootleg_state,ddcrewbl)
{
DRIVER_INIT_CALL(common);
m_spritebank_type = 0;
}
WRITE16_MEMBER(segas1x_bootleg_state::altbeastbl_gfx_w)
{
switch (offset) {
@ -3801,3 +3915,5 @@ GAME( 1990, astormb2, astorm, astormbl, astormbl, segas1x_bootleg_state
GAME( 1990, mwalkbl, mwalk, mwalkbl, mwalkbl, segas1x_bootleg_state, mwalkbl, ROT0, "bootleg", "Michael Jackson's Moonwalker (bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
GAME( 1989, shdancbl, shdancer, shdancbl, shdancbl, segas1x_bootleg_state, shdancbl, ROT0, "bootleg", "Shadow Dancer (bootleg, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
GAME( 1989, shdancbla, shdancer, shdancbla, shdancbl, segas1x_bootleg_state, shdancbl, ROT0, "bootleg", "Shadow Dancer (bootleg, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
GAME( 1990, ddcrewbl, ddcrew, ddcrewbl, astormbl, segas1x_bootleg_state, ddcrewbl, ROT0, "bootleg", "D. D. Crew (bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND )

View File

@ -1,8 +1,6 @@
// license:BSD-3-Clause
// copyright-holders:Nicola Salmoria, Phil Stroffolino, Mirko Buffoni
// later, this might be merged with segas1x_state in segas16.h
#include "video/sega16sp.h"
#include "machine/segaic16.h"
#include "sound/msm5205.h"
@ -131,6 +129,7 @@ public:
DECLARE_READ16_MEMBER(passht4b_io1_r);
DECLARE_READ16_MEMBER(passht4b_io2_r);
DECLARE_READ16_MEMBER(passht4b_io3_r);
DECLARE_READ16_MEMBER(ddcrew_c41006_r);
DECLARE_WRITE16_MEMBER(sys16_tilebank_w);
DECLARE_WRITE8_MEMBER(tturfbl_msm5205_data_w);
DECLARE_READ8_MEMBER(tturfbl_soundbank_r);
@ -186,6 +185,7 @@ public:
DECLARE_DRIVER_INIT(shinobl);
DECLARE_DRIVER_INIT(tturfbl);
DECLARE_DRIVER_INIT(goldnaxeb1);
DECLARE_DRIVER_INIT(ddcrewbl);
DECLARE_DRIVER_INIT(common);
TILEMAP_MAPPER_MEMBER(sys16_bg_map);
TILEMAP_MAPPER_MEMBER(sys16_text_map);

View File

@ -40,16 +40,16 @@
bootleg_sys16a_sprite_device::static_set_remap(*device, _0,_1,_2,_3,_4,_5,_6,_7);
#define MCFG_BOOTLEG_SYS16A_SPRITES_XORIGIN(_xorigin) \
bootleg_sys16a_sprite_device::static_set_xorigin(*device, _xorigin);
bootleg_sys16a_sprite_device::set_local_originx(*device, _xorigin);
#define MCFG_BOOTLEG_SYS16A_SPRITES_YORIGIN(_yorigin) \
bootleg_sys16a_sprite_device::static_set_yorigin(*device, _yorigin);
bootleg_sys16a_sprite_device::set_local_originy(*device, _yorigin);
#define MCFG_BOOTLEG_SYS16B_SPRITES_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, SEGA_SYS16B_SPRITES, 0)
#define MCFG_BOOTLEG_SYS16B_SPRITES_XORIGIN(_xorigin) \
bootleg_sys16a_sprite_device::static_set_xorigin(*device, _xorigin);
sega_sys16b_sprite_device::set_local_originx(*device, _xorigin);
@ -86,6 +86,20 @@ public:
set_origin(x, y);
}
void set_local_originx_(int x) { m_xoffs_flipped = m_xoffs = x; set_origin(x, m_yoffs); }
void set_local_originy_(int y) { m_yoffs_flipped = m_yoffs = y; set_origin(m_xoffs, y); }
static void set_local_originx(device_t &device, int x)
{
sega_16bit_sprite_device &dev = downcast<sega_16bit_sprite_device &>(device);
dev.set_local_originx_(x);
};
static void set_local_originy(device_t &device, int y)
{
sega_16bit_sprite_device &dev = downcast<sega_16bit_sprite_device &>(device);
dev.set_local_originy_(y);
};
// write trigger memory handler
DECLARE_WRITE16_MEMBER( draw_write );