new clones

Knock Out!! (bootleg, set 3) [Paul Hogger]
This commit is contained in:
David Haywood 2016-03-01 22:43:34 +00:00
parent 7a1ee25edc
commit 0343024061
5 changed files with 47 additions and 4 deletions

View File

@ -317,6 +317,7 @@ triplep // (c) 1982 KKI / made by Sanritsu?
triplepa // (c) 1982 KKI / made by Sanritsu?
knockout // (c) 1982 KKK
knockoutb // bootleg
knockoutc //
mariner // (c) 1981 Amenip
800fath // (c) 1981 Amenip + U.S. Billiards license
mars // (c) 1981 Artic

View File

@ -1796,6 +1796,23 @@ ROM_START( knockoutb )
ROM_LOAD( "ta.6e", 0x0000, 0x0020, CRC(624f75df) SHA1(0e9a7c48dd976af1dca1d5351236d4d5bf7a9dc8) )
ROM_END
ROM_START( knockoutc )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "1.bin", 0x0000, 0x1000, CRC(7c386d1e) SHA1(e846a70bebd41b240758ffb2c7801fa7260b314e) )
ROM_LOAD( "2.bin", 0x1000, 0x1000, CRC(85dc1d78) SHA1(61e82cfb5b0f0da6413713293c382ea57074e801) )
ROM_LOAD( "3.bin", 0x2000, 0x1000, CRC(9f734d29) SHA1(430c53b9c3fa888fe45f9feeb4ad8f92011adc05) )
ROM_LOAD( "4.bin", 0x3000, 0x1000, CRC(48e2d6cd) SHA1(7eea464b8cfef84dbad66e33dffaba9515605da6) )
ROM_LOAD( "5.bin", 0x6000, 0x0800, CRC(26ac55ba) SHA1(876b8bf2ddb0ffb6256d1447408c8b7f7d048d9f) )
ROM_CONTINUE( 0x5800, 0x0800 )
ROM_REGION( 0x1000, "gfx1", 0 )
ROM_LOAD( "6.bin", 0x0000, 0x0800, CRC(d51cbd6f) SHA1(c3766a69a4599e54b8d7fb893e45802ec8bf6713) )
ROM_LOAD( "7.bin", 0x0800, 0x0800, CRC(f21c0059) SHA1(b1ba87f13908e3e662de8bf444f59bd5c2009720) )
ROM_REGION( 0x0020, "proms", 0 )
ROM_LOAD( "ta.6e", 0x0000, 0x0020, CRC(624f75df) SHA1(0e9a7c48dd976af1dca1d5351236d4d5bf7a9dc8) )
ROM_END
ROM_START( mariner )
ROM_REGION( 0x10000, "maincpu", 0 )
@ -2315,6 +2332,7 @@ GAME( 1982, triplep, 0, triplep, triplep, scramble_state, scramble_ppi
GAME( 1982, triplepa, triplep, triplep, triplep, scramble_state, scramble_ppi, ROT90, "K.K. International", "Triple Punch (set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1982, knockout, triplep, triplep, triplep, scramble_state, scramble_ppi, ROT90, "bootleg? (KKK)", "Knock Out!! (bootleg, set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1982, knockoutb,triplep, triplep, knockoutb,scramble_state, scramble_ppi, ROT90, "bootleg", "Knock Out!! (bootleg, set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1982, knockoutc,triplep, triplep, knockoutb,scramble_state, scramble_ppi, ROT90, "bootleg (ESG)", "Knock Out!! (bootleg, set 3)", MACHINE_SUPPORTS_SAVE ) // ESG = Elektronik Spiel Gerate
GAME( 1981, mariner, 0, mariner, scramble, scramble_state, mariner, ROT90, "Amenip", "Mariner", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
GAME( 1981, 800fath, mariner, mariner, 800fath, scramble_state, mariner, ROT90, "Amenip (US Billiards Inc. license)", "800 Fathoms", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )

View File

@ -2376,7 +2376,7 @@ static MACHINE_CONFIG_DERIVED( fpointbl, system16 )
MCFG_CPU_PROGRAM_MAP(fpointbl_sound_map)
MCFG_BOOTLEG_SYS16B_SPRITES_ADD("sprites")
MCFG_BOOTLEG_SYS16B_SPRITES_XORIGIN(189-107)
MCFG_BOOTLEG_SYS16B_SPRITES_XORIGIN(189-112)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( tetrisbl, system16 )

View File

@ -384,8 +384,16 @@ segaic16_video_device::segaic16_video_device(const machine_config &mconfig, cons
{
memset(m_rotate, 0, sizeof(m_rotate));
memset(m_bg_tilemap, 0, sizeof(m_bg_tilemap));
m_pagelatch_cb = segaic16_video_pagelatch_delegate(FUNC(segaic16_video_device::tilemap_16b_fill_latch), this);
}
void segaic16_video_device::set_pagelatch_cb(device_t &device,segaic16_video_pagelatch_delegate newtilecb)
{
segaic16_video_device &dev = downcast<segaic16_video_device &>(device);
dev.m_pagelatch_cb = newtilecb;
}
//-------------------------------------------------
// static_set_gfxdecode_tag: Set the tag of the
// gfx decoder
@ -403,6 +411,8 @@ void segaic16_video_device::device_start()
throw device_missing_dependencies();
save_item(NAME(m_display_enable));
m_pagelatch_cb.bind_relative_to(*owner());
}
void segaic16_video_device::device_reset()
@ -1012,6 +1022,15 @@ void tilemap_16b_draw_layer(screen_device &screen, struct tilemap_info *info, bi
}
void segaic16_video_device::tilemap_16b_fill_latch(int i, UINT16* latched_pageselect, UINT16* latched_yscroll, UINT16* latched_xscroll, UINT16* textram)
{
latched_pageselect[i] = textram[0xe80 / 2 + i];
latched_yscroll[i] = textram[0xe90/2 + i];
latched_xscroll[i] = textram[0xe98/2 + i];
}
TIMER_CALLBACK_MEMBER( segaic16_video_device::tilemap_16b_latch_values )
{
struct tilemap_info *info = &m_bg_tilemap[param];
@ -1021,9 +1040,7 @@ TIMER_CALLBACK_MEMBER( segaic16_video_device::tilemap_16b_latch_values )
/* latch the scroll and page select values */
for (i = 0; i < 4; i++)
{
info->latched_pageselect[i] = textram[0xe80/2 + i];
info->latched_yscroll[i] = textram[0xe90/2 + i];
info->latched_xscroll[i] = textram[0xe98/2 + i];
m_pagelatch_cb(i, info->latched_pageselect, info->latched_yscroll, info->latched_xscroll, textram);
}
/* set a timer to do this again next frame */

View File

@ -10,6 +10,10 @@
#ifndef __SEGAIC16VID_H__
#define __SEGAIC16VID_H__
typedef device_delegate<void (int, UINT16*, UINT16*, UINT16*, UINT16*)> segaic16_video_pagelatch_delegate;
#define MCFG_segaic16_video_SET_TILE_INDIRECT( _class, _method) \
segaic16_video_device::set_pagelatch_cb(*device, segaic16_video_pagelatch_delegate(&_class::_method, #_class "::" #_method, NULL, (_class *)0));
/* tilemap systems */
@ -100,6 +104,7 @@ public:
// static configuration
static void static_set_gfxdecode_tag(device_t &device, const char *tag);
static void set_pagelatch_cb(device_t &device,segaic16_video_pagelatch_delegate newtilecb);
UINT8 m_display_enable;
optional_shared_ptr<UINT16> m_tileram;
@ -117,6 +122,8 @@ public:
// void draw_virtual_tilemap(screen_device &screen, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT16 pages, UINT16 xscroll, UINT16 yscroll, UINT32 flags, UINT32 priority);
// void tilemap_16b_reset(screen_device &screen, struct tilemap_info *info);
segaic16_video_pagelatch_delegate m_pagelatch_cb;
void tilemap_16b_fill_latch(int i, UINT16* latched_pageselect, UINT16* latched_yscroll, UINT16* latched_xscroll, UINT16* textram);
TIMER_CALLBACK_MEMBER( tilemap_16b_latch_values );
struct rotate_info m_rotate[SEGAIC16_MAX_ROTATE];