SMS: volume table is now non-float
This commit is contained in:
		
							parent
							
								
									905aa1b1a1
								
							
						
					
					
						commit
						061b312943
					
				
							
								
								
									
										8
									
								
								extern/Nuked-PSG/ympsg.c
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								extern/Nuked-PSG/ympsg.c
									
									
									
									
										vendored
									
									
								
							| 
						 | 
					@ -266,7 +266,7 @@ void YMPSG_Init(ympsg_t *chip, uint8_t real_sn)
 | 
				
			||||||
    chip->noise_size = real_sn ? 16383 : 32767;
 | 
					    chip->noise_size = real_sn ? 16383 : 32767;
 | 
				
			||||||
    for (i = 0; i < 17; i++)
 | 
					    for (i = 0; i < 17; i++)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      chip->vol_table[i]=real_sn?tipsg_vol[i]:ympsg_vol[i];
 | 
					      chip->vol_table[i]=(real_sn?tipsg_vol[i]:ympsg_vol[i]) * 8192.0f;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    for (i = 0; i < 16; i++)
 | 
					    for (i = 0; i < 16; i++)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
| 
						 | 
					@ -315,15 +315,15 @@ void YMPSG_Clock(ympsg_t *chip)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
float YMPSG_GetOutput(ympsg_t *chip)
 | 
					int YMPSG_GetOutput(ympsg_t *chip)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    float sample = 0.f;
 | 
					    int sample = 0;
 | 
				
			||||||
    uint32_t i;
 | 
					    uint32_t i;
 | 
				
			||||||
    YMPSG_UpdateSample(chip);
 | 
					    YMPSG_UpdateSample(chip);
 | 
				
			||||||
    if (chip->test & 1)
 | 
					    if (chip->test & 1)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        sample += chip->vol_table[chip->volume_out[chip->test >> 1]];
 | 
					        sample += chip->vol_table[chip->volume_out[chip->test >> 1]];
 | 
				
			||||||
        sample += chip->vol_table[16] * 3.f;
 | 
					        sample += chip->vol_table[16] * 3;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    else if (!chip->mute)
 | 
					    else if (!chip->mute)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										4
									
								
								extern/Nuked-PSG/ympsg.h
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								extern/Nuked-PSG/ympsg.h
									
									
									
									
										vendored
									
									
								
							| 
						 | 
					@ -59,7 +59,7 @@ typedef struct {
 | 
				
			||||||
    ympsg_writebuf writebuf[YMPSG_WRITEBUF_SIZE];
 | 
					    ympsg_writebuf writebuf[YMPSG_WRITEBUF_SIZE];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //
 | 
					    //
 | 
				
			||||||
    float vol_table[17];
 | 
					    short vol_table[17];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    uint8_t mute;
 | 
					    uint8_t mute;
 | 
				
			||||||
| 
						 | 
					@ -71,7 +71,7 @@ uint16_t YMPSG_Read(ympsg_t *chip);
 | 
				
			||||||
void YMPSG_Init(ympsg_t *chip, uint8_t real_sn);
 | 
					void YMPSG_Init(ympsg_t *chip, uint8_t real_sn);
 | 
				
			||||||
void YMPSG_SetIC(ympsg_t *chip, uint32_t ic);
 | 
					void YMPSG_SetIC(ympsg_t *chip, uint32_t ic);
 | 
				
			||||||
void YMPSG_Clock(ympsg_t *chip);
 | 
					void YMPSG_Clock(ympsg_t *chip);
 | 
				
			||||||
float YMPSG_GetOutput(ympsg_t *chip);
 | 
					int YMPSG_GetOutput(ympsg_t *chip);
 | 
				
			||||||
void YMPSG_Test(ympsg_t *chip, uint16_t test);
 | 
					void YMPSG_Test(ympsg_t *chip, uint16_t test);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -65,7 +65,7 @@ void DivPlatformSMS::acquire_nuked(short* bufL, short* bufR, size_t start, size_
 | 
				
			||||||
    YMPSG_Clock(&sn_nuked);
 | 
					    YMPSG_Clock(&sn_nuked);
 | 
				
			||||||
    YMPSG_Clock(&sn_nuked);
 | 
					    YMPSG_Clock(&sn_nuked);
 | 
				
			||||||
    YMPSG_Clock(&sn_nuked);
 | 
					    YMPSG_Clock(&sn_nuked);
 | 
				
			||||||
    o=YMPSG_GetOutput(&sn_nuked)*8192.0;
 | 
					    o=YMPSG_GetOutput(&sn_nuked);
 | 
				
			||||||
    if (o<-32768) o=-32768;
 | 
					    if (o<-32768) o=-32768;
 | 
				
			||||||
    if (o>32767) o=32767;
 | 
					    if (o>32767) o=32767;
 | 
				
			||||||
    bufL[h]=o;
 | 
					    bufL[h]=o;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue