From 6da815205efddf094be6e165e4d354671a2bd61e Mon Sep 17 00:00:00 2001 From: Angelo Salese Date: Sun, 21 Aug 2011 19:39:33 +0000 Subject: [PATCH] Minor notes, nw --- src/emu/cpu/m68000/m68k_in.c | 8 ++++---- src/mame/drivers/taitojc.c | 1 + src/mame/video/taitojc.c | 17 ++++++++++++++--- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/emu/cpu/m68000/m68k_in.c b/src/emu/cpu/m68000/m68k_in.c index e78fc560078..ec74f6037de 100644 --- a/src/emu/cpu/m68000/m68k_in.c +++ b/src/emu/cpu/m68000/m68k_in.c @@ -4365,8 +4365,8 @@ M68KMAKE_OP(cpbcc, 32, ., .) { if(CPU_TYPE_IS_EC020_PLUS(m68k->cpu_type)) { - //logerror("%s at %08x: called unimplemented instruction %04x (cpbcc)\n", - // m68k->device->tag(), REG_PC - 2, m68k->ir); + logerror("%s at %08x: called unimplemented instruction %04x (cpbcc)\n", + m68k->device->tag(), REG_PC - 2, m68k->ir); return; } m68ki_exception_1111(m68k); @@ -4413,8 +4413,8 @@ M68KMAKE_OP(cptrapcc, 32, ., .) { if(CPU_TYPE_IS_EC020_PLUS(m68k->cpu_type)) { - //logerror("%s at %08x: called unimplemented instruction %04x (cptrapcc)\n", - // m68k->device->tag(), REG_PC - 2, m68k->ir); + logerror("%s at %08x: called unimplemented instruction %04x (cptrapcc)\n", + m68k->device->tag(), REG_PC - 2, m68k->ir); return; } m68ki_exception_1111(m68k); diff --git a/src/mame/drivers/taitojc.c b/src/mame/drivers/taitojc.c index 3ada3e69bf0..6f1e0dc16e1 100644 --- a/src/mame/drivers/taitojc.c +++ b/src/mame/drivers/taitojc.c @@ -340,6 +340,7 @@ Notes: TODO: - dendeg2 hangs on init step 10. + - dendeg intro object RAM usage looks suspicious (needs reference) - landgear has some weird crashes (after playing one round, after a couple of loops in attract mode) (needs testing -AS) - landgear has huge 3d problems on gameplay (CPU comms?) - dendeg2x usually crashes when starting the game (lots of read and writes to invalid addresses). diff --git a/src/mame/video/taitojc.c b/src/mame/video/taitojc.c index 12bf1680078..084a91b2bf4 100644 --- a/src/mame/video/taitojc.c +++ b/src/mame/video/taitojc.c @@ -81,10 +81,19 @@ WRITE32_HANDLER(taitojc_char_w) /* Object RAM is grouped in three different banks (0-0x400 / 0x400-0x800 / 0x800-0xc00), - Initial 6 dwords of each bank aren't for object stuff (individual vregs for each bank?) - 0xc00-0xfbf seems to be a clut, while 0xfc0-0xfff is global vregs. 0xfc6 bit 13 is used to swap between - bank 0 and bank 1 + Initial 6 dwords aren't surely for object stuff (setting global object flags?) + 0xd00-0xdff seems to be a per-bank vregister. Usage of this is mostly unknown, the only + clue we have so far is this config change in dendeg: + 0x2000db3f 0x3f3f3f3f 0xfec00090 0x403f00ff 0xd20-0xd2f on Taito logo + 0x2000db3f 0x3f3f3f3f 0xff600090 0x207f00ff 0xd20-0xd2f on intro FMV + + dword 0 bits 14-15 looks up to the object RAM for the given bank. (it's mostly fixed to 0, + 1 and 2 for each bank). Then dwords 2 and 3 should presumably configure bank 1 to a bigger + (doubled?) height and width and a different x/y start point. + + 0xfc0-0xfff is global vregs. 0xfc6 bit 13 is used to swap between bank 0 and bank 1. It's unknown at current time how bank 2 should show up. + */ static void draw_object(running_machine &machine, bitmap_t *bitmap, const rectangle *cliprect, UINT32 w1, UINT32 w2) @@ -243,6 +252,8 @@ SCREEN_UPDATE( taitojc ) if((state->m_objlist[0xfc4/4] & 0x0000ffff) != 0x0000 && (state->m_objlist[0xfc4/4] & 0x0000ffff) != 0x2000 && (state->m_objlist[0xfc4/4] & 0x0000ffff) != 0xf000 ) popmessage("%08x, contact MAMEdev",state->m_objlist[0xfc4/4]); + popmessage("%08x %08x %08x %08x",state->m_objlist[0xd20/4],state->m_objlist[0xd24/4],state->m_objlist[0xd28/4],state->m_objlist[0xd2c/4]); + for (i=start_offs-2; i >= (start_offs-0x400/4); i-=2) { UINT32 w1 = state->m_objlist[i + 0];