#include "stdafx.h" #include "PSF.h" PSFLoader::PSFLoader(vfsStream& f) : psf_f(f) { } PsfEntry* PSFLoader::SearchEntry(const std::string& key) { for(uint i=0; i= sizeof(m_entries[i].name) || c == '\0') break; } } return true; } bool PSFLoader::LoadDataTable() { for(u32 i=0; iFormat(); if(PsfEntry* entry = SearchEntry("TITLE")) m_info.name = entry->Format(); if(PsfEntry* entry = SearchEntry("APP_VER")) m_info.app_ver = entry->Format(); if(PsfEntry* entry = SearchEntry("CATEGORY")) m_info.category = entry->Format(); if(PsfEntry* entry = SearchEntry("PS3_SYSTEM_VER")) m_info.fw = entry->Format(); if(PsfEntry* entry = SearchEntry("SOUND_FORMAT")) m_info.sound_format = entry->FormatInteger(); if(PsfEntry* entry = SearchEntry("RESOLUTION")) m_info.resolution = entry->FormatInteger(); if(PsfEntry* entry = SearchEntry("PARENTAL_LEVEL")) m_info.parental_lvl = entry->FormatInteger(); if(m_info.serial.Length() == 9) { m_info.serial = m_info.serial(0, 4) + "-" + m_info.serial(4, 5); } return true; }