int main(int argc, char** argv) { /* if (argc < 2) { cerr << "Usage: " << argv[0] << " rom" << endl; return 1; } */ //string romName(argv[1]); string romName("C:\\Users\\Gauthier\\Desktop\\Pokemon_red.gb"); ifstream romFile(romName, ios::binary); if (!romFile.is_open()) { cerr << "Couldn't open rom " << romName << endl; return 1; } string romContent; romFile.seekg(0, std::ios::end); romContent.reserve((size_t) romFile.tellg()); romContent.resize((size_t) romFile.tellg()); romFile.seekg(0, std::ios::beg); romFile.read(&romContent[0], romContent.length()); CartridgeInfo_t cartridgeInfo; ReadRomInformation((unsigned char*)&romContent[0x0134], cartridgeInfo); Memory memory; memory.Initialize(romContent, cartridgeInfo); InterruptsHandler interruptsHandler; interruptsHandler.Initialize(memory); CPU cpu(memory, interruptsHandler); cpu.Initialize(cartridgeInfo); while (true) { cpu.Step(true); } return 0; }