mirror of
https://github.com/libretro/Mu.git
synced 2026-09-23 07:05:37 +00:00
More audio stuff
This commit is contained in:
@@ -40,7 +40,8 @@ sd_card_t palmSdCard;
|
||||
misc_hw_t palmMisc;
|
||||
uint16_t palmFramebuffer[160 * (160 + 60)];//really 160*160, the extra pixels are the silkscreened digitizer area
|
||||
uint16_t* palmExtendedFramebuffer;
|
||||
uint16_t palmAudio[AUDIO_SAMPLES];
|
||||
int16_t palmAudio[AUDIO_SAMPLES];
|
||||
uint32_t palmAudioSampleIndex;
|
||||
uint32_t palmSpecialFeatures;
|
||||
double palmCrystalCycles;//how many cycles before toggling the 32.768 kHz crystal
|
||||
double palmCycleCounter;//can be greater then 0 if too many cycles where run
|
||||
@@ -94,6 +95,7 @@ uint32_t emulatorInit(buffer_t palmRomDump, buffer_t palmBootDump, uint32_t spec
|
||||
memset(palmExtendedFramebuffer, 0x00, 320 * 320 * sizeof(uint16_t));
|
||||
//add 320*320 silkscreen image later, 2xBRZ should be able to make 320*320 version of the 160*160 silkscreen
|
||||
}
|
||||
memset(palmAudio, 0x00, AUDIO_SAMPLES * sizeof(int16_t));
|
||||
m68328Reset();
|
||||
sed1376Reset();
|
||||
ads7846Reset();
|
||||
@@ -493,6 +495,7 @@ uint32_t emulatorInstallPrcPdb(buffer_t file){
|
||||
|
||||
void emulateFrame(){
|
||||
refreshInputState();
|
||||
palmAudioSampleIndex = 0;
|
||||
|
||||
while(palmCycleCounter < CRYSTAL_FREQUENCY / EMU_FPS){
|
||||
if(palmCrystalCycles != 0.0){
|
||||
|
||||
@@ -127,7 +127,8 @@ extern sd_card_t palmSdCard;//dont touch
|
||||
extern misc_hw_t palmMisc;//read/write allowed
|
||||
extern uint16_t palmFramebuffer[];//read allowed if FEATURE_320x320 is off, or else invalid data will be displayed
|
||||
extern uint16_t* palmExtendedFramebuffer;//read allowed if FEATURE_320x320 is on, or else SIGSEGV
|
||||
extern uint16_t palmAudio[];//read allowed
|
||||
extern int16_t palmAudio[];//read allowed
|
||||
extern uint32_t palmAudioSampleIndex;//dont touch
|
||||
extern uint32_t palmSpecialFeatures;//read allowed
|
||||
extern double palmCrystalCycles;//dont touch
|
||||
extern double palmCycleCounter;//dont touch
|
||||
|
||||
@@ -621,8 +621,16 @@ void setHwRegister8(uint32_t address, uint8_t value){
|
||||
break;
|
||||
|
||||
case PWMS1 + 1:
|
||||
if(pwm1FifoEntrys() < 5)
|
||||
pwm1FifoWrite(value);
|
||||
//write only if PWM1 enabled
|
||||
if(registerArrayRead16(PWMC1) & 0x0010)
|
||||
if(pwm1FifoEntrys() < 5)
|
||||
pwm1FifoWrite(value);
|
||||
break;
|
||||
|
||||
case PWMP1:
|
||||
//write only if PWM1 enabled
|
||||
if(registerArrayRead16(PWMC1) & 0x0010)
|
||||
registerArrayWrite8(address, value);
|
||||
break;
|
||||
|
||||
case PCTLR:
|
||||
@@ -988,10 +996,13 @@ void setHwRegister16(uint32_t address, uint16_t value){
|
||||
break;
|
||||
|
||||
case PWMS1:
|
||||
if(pwm1FifoEntrys() < 5)
|
||||
pwm1FifoWrite(value >> 8);
|
||||
if(pwm1FifoEntrys() < 5)
|
||||
pwm1FifoWrite(value & 0xFF);
|
||||
//write only if PWM1 enabled
|
||||
if(registerArrayRead16(PWMC1) & 0x0010){
|
||||
if(pwm1FifoEntrys() < 5)
|
||||
pwm1FifoWrite(value >> 8);
|
||||
if(pwm1FifoEntrys() < 5)
|
||||
pwm1FifoWrite(value & 0xFF);
|
||||
}
|
||||
break;
|
||||
|
||||
case SPISPC:
|
||||
|
||||
Reference in New Issue
Block a user