static uint32 PCECD_GetRegister(const std::string &name, std::string *special) { uint32 value = 0xDEADBEEF; if(name == "BSY") value = SCSICD_GetBSY(); else if(name == "REQ") value = SCSICD_GetREQ(); else if(name == "MSG") value = SCSICD_GetMSG(); else if(name == "CD") value = SCSICD_GetCD(); else if(name == "IO") value = SCSICD_GetIO(); else if(name == "SEL") value = SCSICD_GetSEL(); else value = ADPCM_GetRegister(name, special); return(value); }
uint32 PCECD_GetRegister(const unsigned int id, char *special, const uint32 special_len) { uint32 value = 0xDEADBEEF; switch(id) { case CD_GSREG_BSY: value = SCSICD_GetBSY(); break; case CD_GSREG_REQ: value = SCSICD_GetREQ(); break; case CD_GSREG_MSG: value = SCSICD_GetMSG(); break; case CD_GSREG_CD: value = SCSICD_GetCD(); break; case CD_GSREG_IO: value = SCSICD_GetIO(); break; case CD_GSREG_SEL: value = SCSICD_GetSEL(); break; case CD_GSREG_ADPCM_CONTROL: value = ADPCM.LastCmd; break; case CD_GSREG_ADPCM_FREQ: value = ADPCM.SampleFreq; break; case CD_GSREG_ADPCM_CUR: value = MSM5205.GetSample(); break; case CD_GSREG_ADPCM_WRADDR: value = ADPCM.WriteAddr; break; case CD_GSREG_ADPCM_RDADDR: value = ADPCM.ReadAddr; break; case CD_GSREG_ADPCM_LENGTH: value = ADPCM.LengthCount; break; case CD_GSREG_ADPCM_PLAYNIBBLE: value = (bool)(ADPCM.PlayNibble); break; case CD_GSREG_ADPCM_PLAYING: value = ADPCM.Playing; break; case CD_GSREG_ADPCM_HALFREACHED: value = ADPCM.HalfReached; break; case CD_GSREG_ADPCM_ENDREACHED: value = ADPCM.EndReached; break; } return(value); }