Previous 199869 Revisions Next

r31863 Monday 1st September, 2014 at 22:44:32 UTC by Angelo Salese
Notes
[src/mame/drivers]raiden2.c

trunk/src/mame/drivers/raiden2.c
r31862r31863
549549   return res;
550550}
551551
552/*
553TODO:
5542a05: first boss
5552208/2288: first enemies when they crash on the ground (collision direction?)
55639b0: purple laser when it's fired up (variation of 3bb0?)
557*/
552558WRITE16_MEMBER(raiden2_state::cop_cmd_w)
553559{
554560   cop_status &= 0x7fff;
r31862r31863
591597   case 0x3b30:
592598   case 0x3bb0: { // 3bb0 0004 007f 0038 - 0f9c 0b9c 0b9c 0b9c 0b9c 0b9c 0b9c 099c
593599      /* TODO: these are actually internally loaded via 0x130e command */
594      int dx = space.read_dword(cop_regs[1]+4) - space.read_dword(cop_regs[0]+4);
595      int dy = space.read_dword(cop_regs[1]+8) - space.read_dword(cop_regs[0]+8);
600      int dx,dy;
596601
602      dx = space.read_dword(cop_regs[1]+4) - space.read_dword(cop_regs[0]+4);
603      dy = space.read_dword(cop_regs[1]+8) - space.read_dword(cop_regs[0]+8);
604     
597605      dx = dx >> 16;
598606      dy = dy >> 16;
599607      cop_dist = sqrt((double)(dx*dx+dy*dy));
600
608     
601609      if(data & 0x0080)
602610         space.write_word(cop_regs[0]+0x38, cop_dist);
603611      break;
r31862r31863
13091317   int dx;
13101318   int dy;
13111319   UINT32 src;
1312      
1320   UINT8 flag;
13131321   sprite_prot_src_addr[1] = data;
13141322   src = (sprite_prot_src_addr[0]<<4)+sprite_prot_src_addr[1];
13151323
13161324   dx = ((space.read_dword(src+0x08) >> 16) - (sprite_prot_x)) & 0xffff;
13171325   dy = ((space.read_dword(src+0x04) >> 16) - (sprite_prot_y)) & 0xffff;
13181326
1319   space.write_word(src,(dx < 0x140 && dy < 256) ? (0x0001) : 0x0000);
1327   flag = dx < 0x140 && dy < 256 ? 1 : 0;
1328   
1329   space.write_word(src,flag);
1330   if(flag == 1)
1331   {
13201332   space.write_word(dst1, space.read_word(src+0x60));
13211333   space.write_word(dst1+2,space.read_word(src+0x62));
13221334   space.write_word(dst1+4,dx-8);
13231335   space.write_word(dst1+6,dy-8);
13241336
13251337   dst1+=8;
1338   }
13261339   //printf("[%08x] %08x %08x %04x %04x\n",src,dx,dy,dst1,dst2);
13271340}
13281341

Previous 199869 Revisions Next


© 1997-2024 The MAME Team