From 8b1caae852e9cdbb256e49e85a313d5c348577e5 Mon Sep 17 00:00:00 2001 From: Arisotura Date: Mon, 24 Feb 2020 17:56:01 +0100 Subject: flesh shit out for loading a cheat file --- melonDS.cbp | 2 ++ src/ARCodeList.cpp | 38 ++++++++++++++++++++++++++++++++++++++ src/ARCodeList.h | 33 +++++++++++++++++++++++++++++++++ src/CMakeLists.txt | 1 + 4 files changed, 74 insertions(+) create mode 100644 src/ARCodeList.cpp create mode 100644 src/ARCodeList.h diff --git a/melonDS.cbp b/melonDS.cbp index 58f86a6..8d900d1 100644 --- a/melonDS.cbp +++ b/melonDS.cbp @@ -100,6 +100,8 @@ + + diff --git a/src/ARCodeList.cpp b/src/ARCodeList.cpp new file mode 100644 index 0000000..380481f --- /dev/null +++ b/src/ARCodeList.cpp @@ -0,0 +1,38 @@ +/* + Copyright 2016-2020 Arisotura + + This file is part of melonDS. + + melonDS is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + melonDS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with melonDS. If not, see http://www.gnu.org/licenses/. +*/ + +#include +#include "ARCodeList.h" + +/* + Action Replay code list format + + header: + 00 - magic MLAR + 04 - version major + 06 - version minor + 08 - length + 0C - number of codes + + code header: + 00 - magic MLCD + 04 - name length + 08 - code length + 0C - enable flag + 10 - code data (UTF8 name then actual code) +*/ diff --git a/src/ARCodeList.h b/src/ARCodeList.h new file mode 100644 index 0000000..b46510c --- /dev/null +++ b/src/ARCodeList.h @@ -0,0 +1,33 @@ +/* + Copyright 2016-2020 Arisotura + + This file is part of melonDS. + + melonDS is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + melonDS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with melonDS. If not, see http://www.gnu.org/licenses/. +*/ + +#ifndef ARCODELIST_H +#define ARCODELIST_H + +#include "types.h" + +#define ARCL_MAJOR 1 +#define ARCL_MINOR 1 + +class ARCodeList +{ +public: + // +}; + +#endif // ARCODELIST_H diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3b760ba..5537e6d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,6 +1,7 @@ project(core) add_library(core STATIC + ARCodeList.cpp AREngine.cpp ARM.cpp ARMInterpreter.cpp -- cgit v1.2.3