forked from len0rd/rockbox
Hopefully fixed distortion and pitch problems on Player versions
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1478 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
5c682fb0cd
commit
fce2a28982
1 changed files with 36 additions and 2 deletions
|
|
@ -1239,14 +1239,16 @@ int mpeg_val2phys(int setting, int value)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static unsigned long mas_version_code;
|
||||||
|
|
||||||
void mpeg_init(int volume, int bass, int treble, int loudness, int bass_boost, int avc)
|
void mpeg_init(int volume, int bass, int treble, int loudness, int bass_boost, int avc)
|
||||||
{
|
{
|
||||||
#ifdef SIMULATOR
|
#ifdef SIMULATOR
|
||||||
volume = bass = treble = loudness = bass_boost = avc;
|
volume = bass = treble = loudness = bass_boost = avc;
|
||||||
#else
|
#else
|
||||||
|
unsigned long val;
|
||||||
#ifdef ARCHOS_RECORDER
|
#ifdef ARCHOS_RECORDER
|
||||||
int rc;
|
int rc;
|
||||||
unsigned long val;
|
|
||||||
#else
|
#else
|
||||||
loudness = bass_boost = avc;
|
loudness = bass_boost = avc;
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -1292,7 +1294,35 @@ void mpeg_init(int volume, int bass, int treble, int loudness, int bass_boost, i
|
||||||
#ifndef ARCHOS_RECORDER
|
#ifndef ARCHOS_RECORDER
|
||||||
mas_writereg(0x3b, 0x20); /* Don't ask why. The data sheet doesn't say */
|
mas_writereg(0x3b, 0x20); /* Don't ask why. The data sheet doesn't say */
|
||||||
mas_run(1);
|
mas_run(1);
|
||||||
sleep(HZ/10);
|
sleep(HZ);
|
||||||
|
|
||||||
|
mas_readmem(MAS_BANK_D1, 0xff7, &mas_version_code, 1);
|
||||||
|
|
||||||
|
/* Clear the upper 12 bits of the 32-bit samples */
|
||||||
|
mas_writereg(0xc5, 0);
|
||||||
|
mas_writereg(0xc6, 0);
|
||||||
|
|
||||||
|
/* We need to set the PLL for a 14.1318MHz crystal */
|
||||||
|
if(mas_version_code == 0x0601) /* Version F10? */
|
||||||
|
{
|
||||||
|
val = 0x5d9e8;
|
||||||
|
mas_writemem(MAS_BANK_D0, 0x32d, &val, 1);
|
||||||
|
val = 0xfffceb8d;
|
||||||
|
mas_writemem(MAS_BANK_D0, 0x32e, &val, 1);
|
||||||
|
val = 0x0;
|
||||||
|
mas_writemem(MAS_BANK_D0, 0x32f, &val, 1);
|
||||||
|
mas_run(0x475);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
val = 0x5d9e8;
|
||||||
|
mas_writemem(MAS_BANK_D0, 0x36d, &val, 1);
|
||||||
|
val = 0xfffceb8d;
|
||||||
|
mas_writemem(MAS_BANK_D0, 0x36e, &val, 1);
|
||||||
|
val = 0x0;
|
||||||
|
mas_writemem(MAS_BANK_D0, 0x36f, &val, 1);
|
||||||
|
mas_run(0xfcb);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
mp3buflen = mp3end - mp3buf;
|
mp3buflen = mp3end - mp3buf;
|
||||||
|
|
@ -1307,6 +1337,10 @@ void mpeg_init(int volume, int bass, int treble, int loudness, int bass_boost, i
|
||||||
#ifndef ARCHOS_RECORDER
|
#ifndef ARCHOS_RECORDER
|
||||||
mas_writereg(MAS_REG_KPRESCALE, 0xe9400);
|
mas_writereg(MAS_REG_KPRESCALE, 0xe9400);
|
||||||
dac_config(0x04); /* DAC on, all else off */
|
dac_config(0x04); /* DAC on, all else off */
|
||||||
|
|
||||||
|
val = 0x80000;
|
||||||
|
mas_writemem(MAS_BANK_D1, 0x7f8, &val, 1);
|
||||||
|
mas_writemem(MAS_BANK_D1, 0x7fb, &val, 1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
mpeg_sound_set(SOUND_BASS, bass);
|
mpeg_sound_set(SOUND_BASS, bass);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue