/* * Copyright 2016 - 2021 gary@drinkingtea.net * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include #include #include "addresses.hpp" #include "../media.hpp" namespace nostalgia::core { ox::Result loadRom(const char*) noexcept { // put the header in the wrong order to prevent mistaking this code for the // media section constexpr auto headerP2 = "_HEADER_________"; constexpr auto headerP1 = "NOSTALGIA_MEDIA"; constexpr auto headerP1Len = 15; constexpr auto headerP2Len = 16; constexpr auto headerLen = headerP1Len + headerP2Len + 1; for (auto current = MEM_ROM; current < reinterpret_cast(0x0a000000); current += headerLen) { if (ox_memcmp(current, headerP1, headerP1Len) == 0 && ox_memcmp(current + headerP1Len, headerP2, headerP2Len) == 0) { return current + headerLen; } } return OxError(1); } void unloadRom(char*) noexcept { } }