Previous 199869 Revisions Next

r21214 Wednesday 20th February, 2013 at 16:30:04 UTC by Angelo Salese
Hooked up internal SCSP DSP registers, Kyuutenkai needs them for booting
[src/emu/sound]scsp.c

trunk/src/emu/sound/scsp.c
r21213r21214
10161016         v= *((unsigned short *) (scsp->DSP.MADRS+(addr-0x780)/2));
10171017      else if(addr<0xC00)
10181018         v= *((unsigned short *) (scsp->DSP.MPRO+(addr-0x800)/2));
1019
1019      else if(addr<0xE00)
1020      {
1021         if(addr & 2)
1022            v= scsp->DSP.TEMP[(addr >> 2) & 0x7f] & 0xffff;
1023         else
1024            v= scsp->DSP.TEMP[(addr >> 2) & 0x7f] >> 16;
1025      }
1026      else if(addr<0xE80)
1027      {
1028         if(addr & 2)
1029            v= scsp->DSP.MEMS[(addr >> 2) & 0x1f] & 0xffff;
1030         else
1031            v= scsp->DSP.MEMS[(addr >> 2) & 0x1f] >> 16;
1032      }
1033      else if(addr<0xEC0)
1034      {
1035         if(addr & 2)
1036            v= scsp->DSP.MIXS[(addr >> 2) & 0xf] & 0xffff;
1037         else
1038            v= scsp->DSP.MIXS[(addr >> 2) & 0xf] >> 16;
1039      }
1040      else if(addr<0xEE0)
1041         v= *((unsigned short *) (scsp->DSP.EFREG+(addr-0xec0)/2));
1042      else
1043      {
1044         /* TODO: Kyuutenkai reads from 0xee0/0xee2, it's an undocumented "DSP internal buffer" register ... */
1045         logerror("SCSP: Reading from unmapped register %08x\n",addr);
1046         if(addr == 0xee0)
1047            v= scsp->DSP.TEMP[0] >> 16;
1048         if(addr == 0xee2)
1049            v= scsp->DSP.TEMP[0] & 0xffff;
1050      }
10201051   }
10211052   return v;
10221053}

Previous 199869 Revisions Next


© 1997-2024 The MAME Team