There is some code in Platform.c which would launch rkp games from this RK2606 firmware.
Tried to use the code which extracts a .bmp icon from the rkp file to load album art, but it crashed!
This code is not included in the build but is there as an option to build in a rkp loader.
PlatformProtect(1);
LoadPicFromFlash(BMP_BROWSER_BK, &BrowserBKPic, BMP_BROWSER_BK_XSIZE, BMP_BROWSER_BK_YSIZE);
LoadPicFromFlash(BMP_BROWSER_SELECT, &SelectBKPIC, BMP_BROWSER_SELECT_XSIZE, BMP_BROWSER_SELECT_YSIZE);
for(i=0;i<7;i++)
LoadPicFromFlash(BMP_FILEDEFAULT, &IconPIC[i], BMP_FILEDEFAULT_XSIZE, BMP_FILEDEFAULT_YSIZE);
LoadPicFromFlash(BMP_FOLDER, &IconPIC[7], BMP_FOLDER_XSIZE, BMP_FOLDER_YSIZE);
PlatformMsgArray[0]=BROWSE_INIT;
Fun2MsgArray[1]=PLATFORM_FUN_WINDOW;
CurrentDrawPicBase=SDRAM_LOGICSCREEN_BASE;
PlatformPicType=0;
WindOutCnt=0;
}
/************************************************** ****************
*º¯ÊýÃû :GameExit
*¹¦ÄÜÃèÊö :Í˳öÓÎÏ·
*²ÎÊý²ÎÊý :ÎÞ
*Êä³ö²ÎÊý :ÎÞ
*°æ±¾ËµÃ÷ :×÷Õß Ê±¼ä ±¸×¢
* ÂÞÄþ 11/11/2006 Ô*°æ
************************************************** ****************/
PLATFORM_CODE
void GameExit(){
int i;
Fun2MsgArray[1]=PLATFORM_FUN_WINDOW;
PlatformMsgArray[0]=BROWSE_DISP;
WindowSet[0]=0;
WindowSet[1]=0;
WindowSet[2]=219;
WindowSet[3]=175;
PlatformProtect(1);
Platform_MusicOff();
FileClose(ProgramFile);
FileClose(MusicHandle);
ScreenWide=SYS_XSIZE;
ScreenHigh=SYS_YSIZE;
PicLoad_SdramAdd=SDRAM_RESOURCE_BASE;
LoadPicFromFlash(BMP_BROWSER_BK, &BrowserBKPic, BMP_BROWSER_BK_XSIZE, BMP_BROWSER_BK_YSIZE);
LoadPicFromFlash(BMP_BROWSER_SELECT, &SelectBKPIC, BMP_BROWSER_SELECT_XSIZE, BMP_BROWSER_SELECT_YSIZE);
for(i=0;i<7;i++)
LoadPicFromFlash(BMP_FILEDEFAULT, &IconPIC[i], BMP_FILEDEFAULT_XSIZE, BMP_FILEDEFAULT_YSIZE);
LoadPicFromFlash(BMP_FOLDER, &IconPIC[7], BMP_FOLDER_XSIZE, BMP_FOLDER_YSIZE);
Platform_Browse_FileInit();
while(DmaStateFlag&0x0002);
PlatformPicType=0;
DMA_LcdJpegInitX();
}
/************************************************** ****************
*º¯ÊýÃû :PlatformVolDown
*¹¦ÄÜÃèÊö :ÒôÁ¿¼õСһ¸ö¿Ì¶È
*²ÎÊý²ÎÊý :ÎÞ
*Êä³ö²ÎÊý :ÎÞ
*°æ±¾ËµÃ÷ :×÷Õß Ê±¼ä ±¸×¢
* ÂÞÄþ 11/11/2006 Ô*°æ
************************************************** ****************/
PLATFORM_CODE
void PlatformVolDown(){
if(GameVolValue<0x1f){
GameVolValue++;
Platform_VolumeSet(GameVolValue);
}
}
/************************************************** ****************
*º¯ÊýÃû :PlatformVolUp
*¹¦ÄÜÃèÊö :ÒôÁ¿Ôö´óÒ»¸ö¿Ì¶È
*²ÎÊý²ÎÊý :ÎÞ
*Êä³ö²ÎÊý :ÎÞ
*°æ±¾ËµÃ÷ :×÷Õß Ê±¼ä ±¸×¢
* ÂÞÄþ 11/11/2006 Ô*°æ
************************************************** ****************/
PLATFORM_CODE
void PlatformVolUp(){
if(GameVolValue>0){
GameVolValue--;
Platform_VolumeSet(GameVolValue);
}
}
/************************************************** ****************
*º¯ÊýÃû :Platform_Browse_SysInit
*¹¦ÄÜÃèÊö :ä¯ÀÀÆ÷³õʼ»¯º¯Êý
*²ÎÊý²ÎÊý :ÎÞ
*Êä³ö²ÎÊý :ÎÞ
*°æ±¾ËµÃ÷ :×÷Õß Ê±¼ä ±¸×¢
* ÂÞÄþ 11/11/2006 Ô*°æ
************************************************** ****************/
PLATFORM_CODE
void Platform_Browse_SysInit(){
int i;
PlatformBrowseInfo.DirDeep=0;
PlatformBrowseInfo.PathBuff[0]='\\';
PlatformBrowseInfo.PathBuff[1]='\0';
PlatformBrowseInfo.CurPickFileType[0]='R';
PlatformBrowseInfo.CurPickFileType[1]='K';
PlatformBrowseInfo.CurPickFileType[2]='P';
PlatformBrowseInfo.CurPickFileType[3]='\0';
}
__________________
-----------------------------------------------------------------------------------------------------------
|