/* print file sizes */ int main(int argc, char **argv) { if (argc == 1) jfsize("."); /* default current directory */ else while (--argc > 0 ) jfsize(*++argv); return 0; }
// load rom image by ruka long load_rom(char *szRomPath) { char name[MAX_NAME], *p, tmp[PATH_MAX]; long lReadSize=0; p = strrchr(szRomPath, '/'); if (!p) return 0; strcpy(name, p+1); char* exts[3]= {".gb",".gbc",".sgb"}; jfile fd = jfopen(env_game_thread, szRomPath, JF_MODE_READ, exts, 3); if(fd) { int size = jfsize(env_game_thread, fd); lReadSize = jfread(env_game_thread, fd, rom_image, size); jfclose(env_game_thread, fd); } //lReadSize = jfile_read(env_game_thread, szRomPath, exts,3,(void **) &rom_image); /*ROM_INFO stRomInfo; int nRet; int nExtId = getExtId(szRomPath); switch(nExtId) { case EXT_GB:{ // "gb" "gbc" "sgb" p = strrchr(szRomPath, '/'); if (!p) return 0; strcpy(name, p+1); FILE * fd = fopen(szRomPath, "r"); lReadSize = fread(rom_image, 1, MAX_ROM_SIZE, fd); fclose(fd); break }case EXT_GZ:{ // "gz" gzFile fd = gzopen(szRomPath, "r"); if (!gzGetOrigName(szRomPath, name, fd)){ gzclose(fd); return 0; }else if (getExtId(name)!=EXT_GB){ gzclose(fd); return 0; } lReadSize = gzread(fd, rom_image, MAX_ROM_SIZE); gzclose(fd); break; }case EXT_ZIP: // "zip" if (path_inzip[0]){ if (getExtId(path_inzip)!=EXT_GB) return 0; p = strrchr(path_inzip, '/'); if (!p) p = path_inzip; else p++; strcpy(name, p); }else{ p = strrchr(szRomPath, '/'); if (!p) return 0; strcpy(name, p+1); } stRomInfo.p_rom_image = rom_image; stRomInfo.rom_size = 0; memset(stRomInfo.szFileName, 0x00, sizeof(stRomInfo.szFileName)); // Unzipコールバックセット Unzip_setCallback(funcUnzipCallback); // Unzip展開する nRet = Unzip_execExtract(szRomPath, (unsigned long)&stRomInfo); if (nRet != UZEXR_OK) { // 読み込み失敗! - このコードでは、UZEXR_CANCELもここに来て // しまうがコールバックでキャンセルしてないので無視 lReadSize = 0; pgFillvram(RGBA_8(255,0,0)); pgPrintf(0,0,0xFFFF, "Unzip fatal error."); pgScreenFlip(); } lReadSize = stRomInfo.rom_size; break; default: return 0; }*/ if(lReadSize){ strcpy(RomName, name); p = strrchr(RomName, '.'); if(p) *p = 0; } return lReadSize; }