From 1aca10780c7762e770100742ead61dda48b0a0d4 Mon Sep 17 00:00:00 2001 From: mamehaze Date: Mon, 23 Mar 2015 14:11:24 +0000 Subject: [PATCH] works well enough to mark it as working (nw) --- src/mame/drivers/twins.c | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/mame/drivers/twins.c b/src/mame/drivers/twins.c index b663bc6b7db..6ee893004dc 100644 --- a/src/mame/drivers/twins.c +++ b/src/mame/drivers/twins.c @@ -39,17 +39,18 @@ video is not banked in this case instead palette data is sent to the ports strange palette format. todo: -hook up eeprom -takes a long time to boot (eeprom?) - +hook up eeprom (doesn't seem to work when hooked up??) +Twins set 1 takes a long time to boot (eeprom?) +Improve blitter / clear logic for Spider. Electronic Devices was printed on rom labels 1994 date string is in ROM -Spider seems to have some kind of sprites / blitter that works the same as as Table Tennis Champ (ttchamp.c) -Spider must also have some ROM banking, or the blitter must be able to access non-cpu visible space, the title logo is at 0x00000 in ROM +Spider PCB appears almost identical but uses additional 'blitter' features. +It is possible the Twins PCB has them too and doesn't use them. -Twins (set 2) is significantly changed hardware. + +Twins (set 2) is significantly changed hardware, uses a regular RAMDAC hookup for plaette etc. */ @@ -281,9 +282,19 @@ ADDRESS_MAP_END VIDEO_START_MEMBER(twins_state,twins) { save_item(NAME(m_paloff)); - m_paloff = 0; + + save_item(NAME(m_spritesinit)); + save_item(NAME(m_spriteswidth)); + save_item(NAME(m_spritesaddr)); + save_item(NAME(m_mainram)); + save_item(NAME(m_videoram)); + save_item(NAME(m_videoram2)); + save_item(NAME(m_videorambank)); } + + + UINT32 twins_state::screen_update_twins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int y,x,count; @@ -401,6 +412,7 @@ VIDEO_START_MEMBER(twins_state,twinsa) } + static ADDRESS_MAP_START( twinsa_io, AS_IO, 16, twins_state ) AM_RANGE(0x0000, 0x0001) AM_DEVWRITE8("ramdac",ramdac_device,index_w,0x00ff) AM_RANGE(0x0002, 0x0003) AM_DEVWRITE8("ramdac",ramdac_device,mask_w,0x00ff) @@ -616,4 +628,4 @@ ROM_END GAME( 1994, twins, 0, twins, twins, driver_device, 0, ROT0, "Electronic Devices", "Twins (set 1)", GAME_SUPPORTS_SAVE ) GAME( 1994, twinsa, twins, twinsa, twins, driver_device, 0, ROT0, "Electronic Devices", "Twins (set 2)", GAME_SUPPORTS_SAVE ) -GAME( 1994, spider, 0, spider, twins, driver_device, 0, ROT0, "Buena Vision", "Spider", GAME_NOT_WORKING ) +GAME( 1994, spider, 0, spider, twins, driver_device, 0, ROT0, "Buena Vision", "Spider", GAME_IMPERFECT_GRAPHICS )