From 073cfd746c988e01b7fc25a4c7ab1ce7a9ab0c1a Mon Sep 17 00:00:00 2001 From: Angelo Salese Date: Fri, 13 May 2011 00:47:26 +0000 Subject: [PATCH] More documentation ... --- src/emu/emu.mak | 1 + src/mame/drivers/dbz.c | 2 +- src/mame/video/konicdev.c | 62 ++++++++++++++++++++++++++++++++++++--- 3 files changed, 60 insertions(+), 5 deletions(-) diff --git a/src/emu/emu.mak b/src/emu/emu.mak index 34e4a03bf65..833f0e8a92d 100644 --- a/src/emu/emu.mak +++ b/src/emu/emu.mak @@ -187,6 +187,7 @@ EMUMACHINEOBJS = \ $(EMUMACHINE)/jvsdev.o \ $(EMUMACHINE)/jvshost.o \ $(EMUMACHINE)/k033906.o \ + $(EMUMACHINE)/k053252.o \ $(EMUMACHINE)/k056230.o \ $(EMUMACHINE)/latch8.o \ $(EMUMACHINE)/ldcore.o \ diff --git a/src/mame/drivers/dbz.c b/src/mame/drivers/dbz.c index 17500341d42..dc1d0ad9030 100644 --- a/src/mame/drivers/dbz.c +++ b/src/mame/drivers/dbz.c @@ -137,7 +137,7 @@ static ADDRESS_MAP_START( dbz_map, AS_PROGRAM, 16 ) AM_RANGE(0x4ec000, 0x4ec001) AM_WRITE(dbzcontrol_w) AM_RANGE(0x4f0000, 0x4f0001) AM_WRITE(dbz_sound_command_w) AM_RANGE(0x4f4000, 0x4f4001) AM_WRITE(dbz_sound_cause_nmi) - AM_RANGE(0x4f8000, 0x4f801f) AM_DEVREADWRITE8("k053252",k053252_r,k053252_w,0x00ff) // 251 #1 + AM_RANGE(0x4f8000, 0x4f801f) AM_DEVREADWRITE8("k053252",k053252_r,k053252_w,0xff00) // 251 #1 AM_RANGE(0x4fc000, 0x4fc01f) AM_DEVWRITE("k053251", k053251_lsb_w) // 251 #2 AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(dbz_bg2_videoram_w) AM_BASE_MEMBER(dbz_state, m_bg2_videoram) diff --git a/src/mame/video/konicdev.c b/src/mame/video/konicdev.c index 7516b114ab5..d363aa01c89 100644 --- a/src/mame/video/konicdev.c +++ b/src/mame/video/konicdev.c @@ -9003,7 +9003,7 @@ viostorm: 01 FF 00 16 00 39 00 00 01 07 11 0E 75 00 00 00 384x224 ~ 385x224 mtlchamp: 01 FF 00 21 00 37 00 00 01 07 11 0E 74 00 00 00 384x224 ~ 384x224 dbz: 01 FF 00 21 00 37 00 00 01 20 0C 0E 54 00 00 00 384x256 ~ 384x256 dbz2: 01 FF 00 21 00 37 00 00 01 20 0C 0E 54 00 00 00 384x256 ~ 384x256 -xexex: 01 FF 00 21 00 37 01 00 01 20 0C 0E 54 00 00 00 384x256 ~ 384x256 (*) +xexex: 01 FF 00 21 00 37 01 00 00 20 0C 0E 54 00 00 00 384x256 ~ 384x256 (*) (all konamigx, cowboys of moo mesa, run & gun, dj main) (*) hblank duration 512 (0x200), hdisp 384 (0x180), vblank duration 288 (0x120), vdisp 256 (0x100) @@ -9013,23 +9013,31 @@ xexex: 01 FF 00 21 00 37 01 00 01 20 0C 0E 54 00 00 00 384x256 ~ 384x256 (*) 0-1: bits 9-0: HC - Total hblank duration (-1) Hres ~ (HC+1) - HFP - HBP - 8*(HSW+1) 2-3: bits 8-0: HFP - HBlank front porch 4-5: bits 8-0: HBP - HBlank back porch + 6 : bits 7-0: INT1EN + 7 : bits 7-0: INT2EN 8-9: bits 8-0: VC - Total vblank duration a : bits 7-0: VFP - VBlank front porch Vres ~ VC - VFP - VBP - (VSW+1) b : bits 7-0: VBP - VBlank back porch - c : bits 7-4: VSW - c : bits 3-0: HSW + c : bits 7-4: VSW - V-Sync Width + c : bits 3-0: HSW - H-Sync Width d : bits 7-0: INT-TIME e : bits 7-0: INT1ACK f : bits 7-0: INT2ACK Read-only: - e-f: vits 8-0: VCT + e-f: bits 8-0: VCT + +TODO: +- xexex sets up 0x20 as the VC? */ typedef struct _k053252_state k053252_state; struct _k053252_state { UINT8 regs[16]; + UINT16 hc,hfp,hbp; + UINT16 vc,vfp,vbp; + UINT8 vsw,hsw; }; /***************************************************************************** @@ -9057,7 +9065,53 @@ READ8_DEVICE_HANDLER( k053252_r ) WRITE8_DEVICE_HANDLER( k053252_w ) { k053252_state *k053252 = k053252_get_safe_token(device); + k053252->regs[offset] = data; + + //printf("%04x %02x\n",offset,data); + + switch(offset) + { + case 0x00: + case 0x01: + k053252->hc = (k053252->regs[1]&0xff); + k053252->hc |= ((k053252->regs[0]&0x03)<<8); + k053252->hc ++; + logerror("%d (%04x) HC set\n",k053252->hc,k053252->hc); + break; + case 0x02: + case 0x03: + k053252->hfp = (k053252->regs[3]&0xff); + k053252->hfp |= ((k053252->regs[2]&0x01)<<8); + logerror("%d (%04x) HFP set\n",k053252->hfp,k053252->hfp); + break; + case 0x04: + case 0x05: + k053252->hbp = (k053252->regs[5]&0xff); + k053252->hbp |= ((k053252->regs[4]&0x01)<<8); + logerror("%d (%04x) HBP set\n",k053252->hbp,k053252->hbp); + break; + case 0x08: + case 0x09: + k053252->vc = (k053252->regs[9]&0xff); + k053252->vc |= ((k053252->regs[8]&0x01)<<8); + k053252->vc ++; + logerror("%d (%04x) VC set\n",k053252->vc,k053252->vc); + break; + case 0x0a: + k053252->vfp = (k053252->regs[0x0a]&0xff); + logerror("%d (%04x) VFP set\n",k053252->vfp,k053252->vfp); + break; + case 0x0b: + k053252->vbp = (k053252->regs[0x0b]&0xff); + logerror("%d (%04x) VBP set\n",k053252->vbp,k053252->vbp); + break; + case 0x0c: + k053252->vsw = ((k053252->regs[0x0c]&0xf0) >> 4) + 1; + k053252->hsw = ((k053252->regs[0x0c]&0x0f) >> 0) + 1; + logerror("%02x VSW / %02x HSW set\n",k053252->vsw,k053252->hsw); + break; + } }