Add amiibo loading interface

This commit is contained in:
wheremyfoodat 2023-09-08 19:01:44 +03:00
parent f52337f90c
commit 3110da1fd6
5 changed files with 22 additions and 2 deletions

View file

@ -43,6 +43,8 @@ void NFCService::handleSyncRequest(u32 messagePointer) {
}
}
bool NFCService::loadAmiibo(const std::filesystem::path& path) { return true; }
void NFCService::initialize(u32 messagePointer) {
const u8 type = mem.read8(messagePointer + 4);
log("NFC::Initialize (type = %d)\n", type);

View file

@ -353,7 +353,14 @@ void Emulator::run() {
char* droppedDir = event.drop.file;
if (droppedDir) {
loadROM(droppedDir);
const std::filesystem::path path(droppedDir);
if (path.extension() == ".amiibo") {
loadAmiibo(path);
} else {
loadROM(path);
}
SDL_free(droppedDir);
}
break;
@ -478,6 +485,11 @@ bool Emulator::loadROM(const std::filesystem::path& path) {
return success;
}
bool Emulator::loadAmiibo(const std::filesystem::path& path) {
NFCService& nfc = kernel.getServiceManager().getNFC();
return nfc.loadAmiibo(path);
}
// Used for loading both CXI and NCSD files since they are both so similar and use the same interface
// (We promote CXI files to NCSD internally for ease)
bool Emulator::loadNCSD(const std::filesystem::path& path, ROMType type) {