ndshead.cpp

来自「一个任天堂掌上游戏机NDS的源代码」· C++ 代码 · 共 68 行

CPP
68
字号
#include <string.h>#include <string>#include <fstream>#include "ndshead.h"#include "byteswap.h"#include "log.h"NDShead::NDShead(std::string file){    std::ifstream input(file.c_str(), std::ios::binary);    input.read((char*)&head, 512);    input.close();}NDShead::NDShead(u8 *file){    memcpy((void*)&head, file, 512);    byteswap();}void NDShead::byteswap(){    head.arm9src  = mtohl(head.arm9src);    head.arm9exec = mtohl(head.arm9exec);    head.arm9dest = mtohl(head.arm9dest);    head.arm9size = mtohl(head.arm9size);    head.arm9unk  = mtohl(head.arm9unk);    head.arm7src  = mtohl(head.arm7src);    head.arm7exec = mtohl(head.arm7exec);    head.arm7dest = mtohl(head.arm7dest);    head.arm7size = mtohl(head.arm7size);    head.arm7unk  = mtohl(head.arm7unk);        head.ftablesrc  = mtohl(head.ftablesrc);    head.ftablesize = mtohl(head.ftablesize);    head.fdatasrc   = mtohl(head.fdatasrc);    head.fdatasize  = mtohl(head.fdatasize);    head.RESa = mtohl(head.RESa);    head.RESb = mtohl(head.RESb);    head.bannersrc = mtohl(head.bannersrc);    head.romsize  = mtohl(head.romsize);    head.headsize = mtohl(head.headsize);        head.crcsec  = mtohs(head.crcsec);    head.timeout = mtohs(head.timeout);    head.crclogo = mtohs(head.crclogo);    head.crchead = mtohs(head.crchead);}void NDShead::print(){    char str[128];    sprintf(str, "ROM size: %08X", head.romsize);    Logger::log("NDS header") << str;        sprintf(str,"ARM9: src=%08X, dest=%08X, size=%08X, start=%08X",	    head.arm9src, head.arm9dest, head.arm9size, head.arm9exec);    Logger::log("NDS header") << str;        sprintf(str,"ARM7: src=%08X, dest=%08X, size=%08X, start=%08X", 	    head.arm7src, head.arm7dest, head.arm7size, head.arm7exec);    Logger::log("NDS header") << str;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?