summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Angelo Salese <angelosa@users.noreply.github.com>2010-06-13 15:00:26 +0000
committer Angelo Salese <angelosa@users.noreply.github.com>2010-06-13 15:00:26 +0000
commit963999c6855a3d7df61c98a49ebefe45f7e8c16e (patch)
tree2e3230c5648efe91b3c6428489b1654f52057c29
parent014a8b425e3fd9997483bdc2a93472ab5e576097 (diff)
Additional Pinkiri 8 works
-rw-r--r--src/mame/drivers/pinkiri8.c30
1 files changed, 17 insertions, 13 deletions
diff --git a/src/mame/drivers/pinkiri8.c b/src/mame/drivers/pinkiri8.c
index 53b43223200..f5cf57d549e 100644
--- a/src/mame/drivers/pinkiri8.c
+++ b/src/mame/drivers/pinkiri8.c
@@ -30,14 +30,14 @@ static VIDEO_UPDATE( pinkiri8 )
for(i=0x00000;i<0x4000;i+=4)
{
- spr_offs = ((vram[i+0+0x30000] & 0xff) | (vram[i+1+0x30000]<<16)) & 0x0fff;
- x = vram[i+3+0x30000];
- y = vram[i+2+0x30000];
+ spr_offs = ((vram[i+0+0x10000] & 0xff) | (vram[i+1+0x10000]<<16)) & 0x0fff;
+ y = vram[i+2+0x10000];
+ x = vram[i+3+0x10000];
- drawgfx_transpen(bitmap,cliprect,gfx,spr_offs, 0,0,0,x+0,y,0);
- drawgfx_transpen(bitmap,cliprect,gfx,spr_offs+1,0,0,0,x+8,y,0);
- drawgfx_transpen(bitmap,cliprect,gfx,spr_offs+2,0,0,0,x+16,y,0);
- drawgfx_transpen(bitmap,cliprect,gfx,spr_offs+3,0,0,0,x+24,y,0);
+ drawgfx_transpen(bitmap,cliprect,gfx,0, 0,0,0,x+0,y,0);
+// drawgfx_transpen(bitmap,cliprect,gfx,spr_offs+1,0,0,0,x+8,y,0);
+// drawgfx_transpen(bitmap,cliprect,gfx,spr_offs+2,0,0,0,x+16,y,0);
+// drawgfx_transpen(bitmap,cliprect,gfx,spr_offs+3,0,0,0,x+24,y,0);
}
}
@@ -53,7 +53,12 @@ ADDRESS_MAP_END
static READ8_HANDLER( unk_r )
{
- return 0xff;//mame_rand(space->machine);
+ return mame_rand(space->machine);
+}
+
+static READ8_HANDLER( unk2_r )
+{
+ return (mame_rand(space->machine) & 0xfe)| 1;
}
static WRITE8_HANDLER( output_regs_w )
@@ -72,15 +77,14 @@ static WRITE8_HANDLER( pinkiri8_vram_w )
case 0: vram_addr = (data & 0xff) | (vram_addr & 0xff00); break;
case 1: vram_addr = (data << 8) | (vram_addr & 0x00ff); break;
case 2:
- vram_bank = (data ^ 0x07) & 0x07; //unknown purpose
+ vram_bank = ((data ^ 0x06) & 0x06)>>1; //unknown purpose
//printf("%02x\n",vram_bank);
break;
case 3:
vram_addr++;
vram_addr&=0xffff;
- if(vram_bank < 3)
- vram[vram_addr] = data;
- if(vram_addr <= 0x3fff)
+ vram[(vram_addr) | (vram_bank << 16)] = data;
+ if(vram_addr <= 0xffff)
{
static UINT16 datax,pal_offs;
static UINT8 r,g,b;
@@ -106,7 +110,7 @@ static ADDRESS_MAP_START( pinkiri8_io, ADDRESS_SPACE_IO, 8 )
AM_RANGE(0x80, 0x83) AM_WRITE(pinkiri8_vram_w)
AM_RANGE(0xb0, 0xb0) AM_WRITENOP //mux
AM_RANGE(0xb0, 0xb1) AM_READ(unk_r) // mux inputs
- AM_RANGE(0xb2, 0xb2) AM_READ(unk_r) //bit 0 causes a reset inside the NMI routine
+ AM_RANGE(0xb2, 0xb2) AM_READ(unk2_r) //bit 0 causes a reset inside the NMI routine
AM_RANGE(0xf8, 0xf8) AM_READ(unk_r) //test bit 0
AM_RANGE(0xf9, 0xf9) AM_READ(unk_r)
AM_RANGE(0xfa, 0xfa) AM_READ(unk_r) //test bit 7