diff options
author | davidhay <davidhay@localhost> | 2009-03-28 20:04:50 +0000 |
---|---|---|
committer | davidhay <davidhay@localhost> | 2009-03-28 20:04:50 +0000 |
commit | 054f6510b30efe999fa3137a59bc686a9e9b0108 (patch) | |
tree | 9cf00fab18b6651d1fd6438d096d247334af0b3d | |
parent | 9b0c1c30066516329b3726212a4ffd502f1ec2ab (diff) |
a few notes in video/dc.c
-rw-r--r-- | src/mame/video/dc.c | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/src/mame/video/dc.c b/src/mame/video/dc.c index d01c4aa62af..bb61563ebe7 100644 --- a/src/mame/video/dc.c +++ b/src/mame/video/dc.c @@ -370,11 +370,20 @@ WRITE64_HANDLER( pvr_ta_w ) mame_printf_verbose("PVRTA: [%08x=%x] write %llx to %x (reg %x %x), mask %llx\n", 0x5f8000+reg*4, dat, data>>shift, offset, reg, (reg*4)+0x8000, mem_mask); #endif } - void process_ta_fifo(running_machine* machine) { UINT32 a; + /* first byte in the buffer is the Parameter Control Word + + pppp pppp gggg gggg oooo oooo oooo oooo + + p = para control + g = group control + o = object control + + */ + // Para Control state_ta.paracontrol=(tafifo_buff[0] >> 24) & 0xff; // 0 end of list @@ -602,6 +611,27 @@ void process_ta_fifo(running_machine* machine) /* -- this is wildly inaccurate! */ testsprites* testsprite = &state_ta.grab[state_ta.grabsel].showsprites[state_ta.grab[state_ta.grabsel].testsprites_size]; + /* Sprite Type 1 (for Sprite) + 0x00 Parameter Control Word (see above) + 0x04 A.X + 0x08 A.Y + 0x0C A.Z + 0x10 B.X + 0x14 B.Y + 0x18 B.Z + 0x1C C.X + 0x20 C.Y + 0x24 C.Z + 0x28 D.X + 0x2C D.Y + 0x30 (ignored) D.Z is calculated from the Plane Equation + 0x34 AU/AV (16-bits each) + 0x38 BU/BV (16-bits each) + 0x3C CU/CV (16-bits each) + + note: DU/DV is calculated, not specified + */ + testsprite->positionx=u2f(tafifo_buff[1]); testsprite->positiony=u2f(tafifo_buff[2]); testsprite->sizex=u2f(tafifo_buff[4])-u2f(tafifo_buff[1]); |