From 75c06e1ccd66673adee7128aba34839a158761a4 Mon Sep 17 00:00:00 2001 From: Zane Kaminski Date: Sun, 6 Sep 2020 00:00:30 -0400 Subject: [PATCH] Fixed reset and menu bugs introduced in previous commits --- bin/GWRAM.dbg.po | Bin 143360 -> 143360 bytes bin/GWRAM.po | Bin 143360 -> 143360 bytes main.c | 6 ++-- ram2e.c | 1 + ram2gs.c | 1 + ramtest.c | 71 +++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 ramtest.c diff --git a/bin/GWRAM.dbg.po b/bin/GWRAM.dbg.po index 1b8a9565def4a4b59e98417e0807e90bcba3284b..c8d2c7b5c8af4ebeb66560bd70b058a646770f58 100644 GIT binary patch delta 4360 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 delta 4391 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 +#include +#include +#include +#include +#include + +#include "util.h" +#include "gwconio.h" +#include "ramtestpat.c" + +#define TEST_SIZE 8*1024*1024 + +char test_run() { + // Put copy stub in low RAM + for (uint32_t a = 0; a < TEST_SIZE) { + wr(a, getpat(a)); + } + + for (uint32_t a = 0; a < TEST_SIZE) { + char d = rd(a); + if (d != getpat(a)) { return -1; } + } + + return 0; +} + +static inline char getpat(uint32_t a) { + return ramtestpat[a % RAMTESTPAT_SIZE]; +} + +static char rd(uint32_t a) { + uint16_t al = a & 0xFFFF; + if (al < 0x0200) { return rd_zplc(a); } + else if (al < 0xC000) { return rd_mid(a); } + else if (al < 0xD000) { return rd_lc2(a); } + else { return rd_zplc(a); } +} + +static char rd_zplc(uint32_t a) { + +} + +static char rd_mid(uint32_t a) { + +} + +static char rd_lc2(uint32_t a) { + +} + +static char wr(uint32_t a, char d) { + uint16_t al = a & 0xFFFF; + if (al < 0x0200) { wr_zplc(a, d); } + else if (al < 0xC000) { wr_mid(a, d); } + else if (al < 0xD000) { wr_lc2(a, d); } + else { wr_zplc(a, d); } +} + +static char rd_zplc(uint32_t a) { + +} + +static char rd_mid(uint32_t a) { + +} + +static char rd_lc2(uint32_t a) { + +} +