📄 w99av.h
字号:
// Brian1.22, add a new F/W user data 2 for FM
#define W99AV_DRAM_ADDR_RESERVE_START_FM_2 0x7000 // 12K DW, for FM mode use only (this area will use the SPU and Navigation area of DVD mode)
// LLY0.85, define A/V buffer size setting for CDROM decoding mode
// Notice: The ending address of Audio buffer 1 & 2 are relative to
// "reserved User Data DRAM space"
#define W99AV_ADDR_VBUFF_CDROM W99AV_ADDR_VBUFF
// Reserve size can store 150 sector data :
// (0x60000-0x4C400) DWORD * 4 = 0x4F000 BYTE
// 0x4F000 / 2352 = 137.57 sectors
// So, must take care the max sector NO within once CDROM decoding
//#define W99AV_ADDR_ABUFF_CDROM 0x060004C4L
#define W99AV_ADDR_ABUFF_CDROM 0x059B0464L // 135.4 Sectors
//**********************************************************************************
// LLY.046, define the base address for storing CDROM decoding data
#ifdef DUMP_CDROM_DATA_TO_SP_BUFFER
// Chuan2.80p, Now W99AV_ADDR_SPBUFF contains start addr and end addr
#define ECCBASE_BYPASS ((W99AV_ADDR_SPBUFF << 8) & 0x0000FFFF) // SP buffer
#else // #ifdef DUMP_CDROM_DATA_TO_SP_BUFFER
#define ECCBASE_BYPASS W99AV_ADDR_NVBUFF // NV buffer
#endif // #ifdef DUMP_CDROM_DATA_TO_SP_BUFFER
// LLY0.85, move ECCBASE to here
// Reserve size for ECC Done data = 0x38700 ~ 0x4C400
// 0x4C400 - 0x38700 = 0x13D00 (DWORD) = 0x4F400 (BYTE)
// 0x4F400 / 2352 = 138.01 sectors
//#define ECCBASE_REALCDROM 0x38700L // LLY0.85, ((W99AV_ADDR_SPBUFF << 8) & 0x0000FFFF)
#define ECCBASE_REALCDROM 0x32C00L // 135.8 Sectors
//#define W99AV_ADDR_UCODE_BACKUP 0x2E300L // 16K DW
#define W99AV_ADDR_UCODE_BACKUP 0x59C00L // 25K DW
//Kevin1.23, modify
//#define W99AV_ADDR_UCODE_END_BACKUP 0x5FF00L // Chuan1.21, give the end address.
#define W99AV_ADDR_UCODE_END_BACKUP 0x60000L
//LJY1.24-3, for DSP ucode backup in digest and CDG mode
#define W99AV_ADDR_UCODE_BACKUP_BUFFER 0x172500
//#else // #ifdef USE_32M_SDRAM
//#ifdef SUPPORT_ANTISHOCK
#elif (SDRAM_CONFIGURATION == SDRAM_64M) && defined(SUPPORT_ANTISHOCK) //Kevin2.27, 64M antishock
#define IRAM_ADDR 0x0300 // the start address of iram.inc
#define IRAM_END_ADDR 0x3000 // the end address of iram.inc //Kevin1.01, add
#define ERAM_ADDR 0x3000 // dsp eram's dram address
#define ERAM_END_ADDR 0x5000 // dsp eram's dram end address //Kevin1.01, add
//Kevin2.36, swap buffer/side buffer adjustable
#define W99AV_ADDR_SBUFF_DTS 0x5000L
#define W99AV_ADDR_SBUFF_MP3_WMA 0x5000L
#define W99AV_ADDR_SIDE_INFO_START 0x3F200L // MP3 side information buffer start
#define W99AV_ADDR_SIDE_INFO_LENGTH 0x6400L //MP3 side information buffer size
#define W99AV_ADDR_VBUFF 0x17FF1001L // 511.5K DW
//LJY1.24a, LJY1.11e.patch0, audio buffer cannot exceed 256 frames, also the boundary should not exceed F/W user data area.
#define W99AV_ADDR_ABUFF 0x062704A7L // 96K DW, 384DW*256=96KDW for 384Kbits
//LJY1.26, reserve ox1FC00~0x1FFFF for servo ucode backup.
#define W99AV_ADDR_VBUFF_VCD 0x1F001001L //959.75K DW, 0x1FFF1001L // 1023.5K DW
//#define W99AV_ADDR_ABUFF_VCD 0x073A04A7L // 164.75K DW
//#define W99AV_ADDR_ABUFF2 0x075B073BL // 8K DW
//LJY1.26-2, the boundary should not exceed F/W user data area(0x73700).
#define W99AV_ADDR_ABUFF_VCD 0x071504A7L // 155.5K DW
#define W99AV_ADDR_ABUFF2 0x07360716L // 8K DW
// for MP3 A/V buffer size
#define W99AV_ADDR_VBUFF_MP3 0x05EE0576L // 30K DW
//#define W99AV_ADDR_ABUFF_MP3 0x071E0456L // 178K DW
//#define W99AV_ADDR_ABUFF2_MP3 0x075B071FL // 15K DW
//LJY1.24a, the boundary should not exceed F/W user data area(0x73700).
#define W99AV_ADDR_ABUFF_MP3 0x06F90456L // 168.75K DW
#define W99AV_ADDR_ABUFF2_MP3 0x073606FAL // 15K DW
// For MP3 and JPG, and share frame buffer 2
#define W99AV_ADDR_VBUFF_JPEG W99AV_ADDR_VBUFF_MP3 // 30K DW
#define W99AV_ADDR_ABUFF_JPEG 0x05380456L // 56.5K DW
// For LPCM A/V buffer size
#define W99AV_ADDR_VBUFF_LPCM W99AV_ADDR_VBUFF // 511.5K DW
#define W99AV_ADDR_ABUFF_LPCM W99AV_ADDR_ABUFF // 173K DW
// For CDDA buffer size
#define W99AV_ADDR_VBUFF_PCM W99AV_ADDR_VBUFF // 511.5K DW
#define W99AV_ADDR_ABUFF_PCM 0x071204A7L // 154K DW, //LJY1.22, LJY1.11b, fix CD-DTS playback anormal issue.(PCM/PCM2 will be used when plays CD-DTS)
#define W99AV_ADDR_ABUFF2_PCM 0x075b0713L //18K DW
//LJY1.26, reserve ox1FC00~0x1FFFF for servo ucode backup.
#define W99AV_ADDR_ABUFFBAK_PCM 0x1F000A61L//0x1F000A61L //1319.75K DW //0x20000A61L //1383.75K DW
// LJY1.10, for CDG
/* LJY1.26, removed.
#define W99AV_ADDR_VBUFF_CDG 0x00800050 //x00710050L // 18K DW, buffer too small will caue fill logo data failed??? (IFIFO overflow)
#define W99AV_ADDR_ABUFF_CDG 0x04900456 // 50K DW
*/
#define W99AV_ADDR_ABUFF_AC3 W99AV_ADDR_ABUFF // 173K DW
//Kevin2.27, 64M non-antishock -> use 32M settings
/*
#else
#define W99AV_ADDR_VBUFF 0x12001001L // 127.75K DW
//Kevin1.24, increase audio buffer & adjust threshold to avoid DVD audio underflow & VCD audio overflow
//#define W99AV_ADDR_ABUFF 0x04C704A7L // 8K DW
//#define W99AV_ADDR_ABUFF2 0x04E804C8L // 8K DW
#define W99AV_ADDR_ABUFF 0x04D704A7L // 12K DW
#define W99AV_ADDR_ABUFF2 0x050804D8L // 12K DW
// for MP3 A/V buffer size
#define W99AV_ADDR_VBUFF_MP3 0x05EE0576L // 30K DW
#define W99AV_ADDR_ABUFF_MP3 0x05380456L // 56.5K DW
#define W99AV_ADDR_ABUFF2_MP3 0x05750539L // 15K DW
// For MP3 and JPG, and share frame buffer 2
#define W99AV_ADDR_VBUFF_JPEG W99AV_ADDR_VBUFF_MP3 // 30K DW
#define W99AV_ADDR_ABUFF_JPEG W99AV_ADDR_ABUFF_MP3 // 56.5K DW
// For LPCM A/V buffer size
#define W99AV_ADDR_VBUFF_LPCM W99AV_ADDR_VBUFF // 127.75K DW
#define W99AV_ADDR_ABUFF_LPCM 0x054704A7L // 40K DW
// For CDDA buffer size
#define W99AV_ADDR_VBUFF_PCM W99AV_ADDR_VBUFF // 127.75K DW
#define W99AV_ADDR_ABUFF_PCM W99AV_ADDR_ABUFF_LPCM // 218.25K DW
// LJY1.10, for CDG
#define W99AV_ADDR_VBUFF_CDG 0x00800050 //x00710050L // 18K DW, buffer too small will caue fill logo data failed??? (IFIFO overflow)
#define W99AV_ADDR_ABUFF_CDG 0x04FF0456 // 42.25K DW //LJY1.26, 56.5K->42.25K for DSP code backup
//LJY1.26, let CDG YUV buffer start from 0x50000 to avoid destroying DSP code backup area.(RISC needs 158KDW for CDG YUV/RGB buffer)
#define W99AV_ADDR_CDG_YUV_START 0x500 // YUV start >> 8
// For CDROM-AC3 used.
#define W99AV_ADDR_ABUFF_AC3 W99AV_ADDR_ABUFF // 8K DW
#endif
*/
// for NV buffer start address
// Micky0.83, from 20030514 risc codes, the NV addr will be decided by ucode
#define W99AV_ADDR_NVBUFF 0x9e00L
// Micky0.83b, use 13.25K for SP buffer.(why EPP can't use 13.5K??)
#define W99AV_ADDR_SPBUFF 0x009D0068L // Chuan2.80p, end>>8, start>>8
#define W99AV_ADDR_RTIBUFF 0x3F400L // Chuan2.80p
#define W99AV_ADDR_NV_RTI_BUFF (MAKELONG((W99AV_ADDR_RTIBUFF>>8),(W99AV_ADDR_NVBUFF>>8)))
// LLY.276p-4, define PCM buffer starting address
#define W99AV_ADDR_PCMBUFF 0x3fe
#define W99AV_ADDR_PCMBUFF2 0x47e // PCM Buffer 2 for Other Mode
#define W99AV_ADDR_PCMBUFF_MP3 0x70 // MP3 case
#define W99AV_ADDR_PCMBUFF_JPEG W99AV_ADDR_PCMBUFF_MP3 // JPEG case
// Micky0.86, the write pixel start must be the same bank w/ display buffer.
#define W99AV_DRAM_ADDR_WPIXEL_START 0xf2300
// Chuan1.20, RESERVE 25K DW.
#define W99AV_DRAM_ADDR_RESERVE_START 0x73700 // 0x75c00
#define W99AV_DRAM_ADDR_RESERVE_END 0x79B00 // 0x7FFFF
// Chuan1.20, DSP Backup Area: 25K DW
#define W99AV_ADDR_UCODE_BACKUP 0x79c00
#define W99AV_ADDR_UCODE_END_BACKUP 0x80000 // Chuan1.21, is it safe?
// LLY0.85, define A/V buffer size setting for CDROM decoding mode
// Notice: The ending address of Audio buffer 1 & 2 are relative to
// "reserved User Data DRAM space"
#define W99AV_ADDR_VBUFF_CDROM W99AV_ADDR_VBUFF
// Reserve size can store 150 sector data :
// (0x70000-0x5A000) DWORD * 4 = 0x58000 BYTE
// 0x58000 / 2352 = 153.25 sectors
// So, must take care the max sector NO within once CDROM decoding
#define W99AV_ADDR_ABUFF_CDROM 0x070005A0L
//**********************************************************************************
// LLY.046, define the base address for storing CDROM decoding data
#ifdef DUMP_CDROM_DATA_TO_SP_BUFFER
// Chuan2.80p, Now W99AV_ADDR_SPBUFF contains start addr and end addr
#define ECCBASE_BYPASS ((W99AV_ADDR_SPBUFF << 8) & 0x0000FFFF) // SP buffer
#else // #ifdef DUMP_CDROM_DATA_TO_SP_BUFFER
#define ECCBASE_BYPASS W99AV_ADDR_NVBUFF // NV buffer
#endif // #ifdef DUMP_CDROM_DATA_TO_SP_BUFFER
// LLY0.85, move ECCBASE to here
// Reserve size for ECC Done data = 0x3F200 ~ 0x5A000
// 0x5A000 - 0x3F200 = 0x1AE00 (DWORD) = 0x6B800 (BYTE)
// 0x6B800 / 2352 = 187.21 sectors
#define ECCBASE_REALCDROM 0x3F200 // LLY0.85, ((W99AV_ADDR_SPBUFF << 8) & 0x0000FFFF)
//#define ECCBASE_REALCDROM ((W99AV_ADDR_SPBUFF << 8) & 0x0000FFFF)
#elif (SDRAM_CONFIGURATION == SDRAM_32M_D) //Kevin2.27, downgraded 32M
#define IRAM_ADDR 0x0300 // the start address of iram.inc
#define IRAM_END_ADDR 0x3000 // the end address of iram.inc //Kevin1.01, add
#define ERAM_ADDR 0x3000 // dsp eram's dram address
#define ERAM_END_ADDR 0x5000 // dsp eram's dram end address //Kevin1.01, add
//Kevin2.36, swap buffer/side buffer adjustable
#define W99AV_ADDR_SBUFF_DTS 0x5000L
#define W99AV_ADDR_SBUFF_MP3_WMA 0x5000L
#define W99AV_ADDR_SIDE_INFO_START 0x3F200L // MP3 side information buffer start
#define W99AV_ADDR_SIDE_INFO_LENGTH 0x6400L //MP3 side information buffer size
//To Do by Alex
//alex2.27, find the address in bank2 , change it in bank 1
//-------------------------------------------------------//
//**********************************************************************************
// Digest mode buffer adjustment
#define W99AV_ADDR_VBUFF_DIGEST 0x09E30801L // alex2.27 Bank2 to Bank1 , 0x11E31001-> 0x09E30801L
// 120.5K DW, move video buffer to bank 2 in digest mode
#define W99AV_ADDR_ABUFF_DIGEST 0x030302E3L // 8K DW (only use 8K for sync issue)
#define W99AV_ADDR_ABUFF2_DIGEST 0x03240304L // 8K DW
// for digest mode, frame buffer starts form end of W99AV_ADDR_PCMBUFF_DIGEST +6K ==> 0x33D00 ==> put at frame buffer's limit 0x33E00
#define W99AV_ADDR_PCMBUFF_DIGEST 0x325 // 8K DW ==> 6K DW
// keep MAD swap buffer plus extra 2K, so we may move W99AV_ADDR_PCMBUFF_DIGEST to here
#define W99AV_ADDR_PCMBUFF2_DIGEST 0x70 // 10K DW, PCM Buffer 2 for Other Mode
// define Frame buffer start address for Digest mode
#define W99AV_ADDR_FRAMEBUFF_DIGEST 0x33E // address >> 8
// For normal A/V buffer size
// Chuan1.00, enlarge Video Buffer size from 86K to 172K
// ** TCH1.01-908; Can't over 0x20000 as RISC limitation ....0x12B11001L
// #define W99AV_ADDR_VBUFF 0x0600041EL // 120.5K DW
#define W99AV_ADDR_VBUFF 0x059B03FEL // 103.25K DW
// reserve 40K from 0x35700~0x3F7FF for all Audio bitstream buffer
//Kevin1.24, increase audio buffer & adjust threshold to avoid DVD audio underflow & VCD audio overflow
//#define W99AV_ADDR_ABUFF 0x03770357L // 8K DW (only use 8K for sync issue)
//#define W99AV_ADDR_ABUFF2 0x03980378L // 8K DW
#define W99AV_ADDR_ABUFF 0x03870357L // 12K DW
#define W99AV_ADDR_ABUFF2 0x03b80388L // 12K DW
// for MP3 A/V buffer size
//#define W99AV_ADDR_VBUFF_MP3 0x05EE0576L // 30K DW
#define W99AV_ADDR_VBUFF_MP3 0x03F10348L // 42.25K DW
#define W99AV_ADDR_ABUFF_MP3 0x05380456L // 56.5K DW
#define W99AV_ADDR_ABUFF2_MP3 0x05750539L // 15K DW
// For MP3 and JPG, and share frame buffer 2
#define W99AV_ADDR_VBUFF_JPEG W99AV_ADDR_VBUFF_MP3 // 30K DW
#define W99AV_ADDR_ABUFF_JPEG W99AV_ADDR_ABUFF_MP3 // 56.5K DW
// For LPCM A/V buffer size
#define W99AV_ADDR_VBUFF_LPCM W99AV_ADDR_VBUFF // 120.5K DW
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -