From c7c3d272128e181219b385a0cc4d2da7495b6dac Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Sun, 17 Nov 2024 07:25:51 +0100 Subject: [PATCH] WIP: sram functionality --- src/main.s | 1 + src/mem.s | 16 ++++++++++++++-- src/sram.s | 11 +++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 src/sram.s diff --git a/src/main.s b/src/main.s index b6308cd..d336459 100644 --- a/src/main.s +++ b/src/main.s @@ -2,6 +2,7 @@ #include "macros.inc" #include "oam.s" #include "wram.s" +#include "sram.s" .org 0x0 #include "jmp.inc" diff --git a/src/mem.s b/src/mem.s index 47ef253..d5cd13c 100644 --- a/src/mem.s +++ b/src/mem.s @@ -15,7 +15,7 @@ mem_init: ld a, GM_GAME ld [game_mode], a - call mbc1_ram_enable + call mbc1_init ret @@ -67,7 +67,19 @@ shadow_oam_to_oam: ret shadow_oam_to_oam_end: -; MBC1 functions + +; ============== +; MBC1 functions +; ============== + + ; if the first byte of sram is not this + ; value clear it all +#define MBC1_SRAM_MAGIC 0xA1 + +mbc1_init: + call mbc1_ram_enable + ret + ; ram enable mbc1 ; TODO: it is reccomended to disable ram when not diff --git a/src/sram.s b/src/sram.s new file mode 100644 index 0000000..81e48de --- /dev/null +++ b/src/sram.s @@ -0,0 +1,11 @@ +#define SRAM 0xA000 +#define SRAMLEN 0x1FFF + +.org SRAM + + ; if the first byte of sram is not this + ; value clear it all +#define SRAM_MAGIC 0xA1 + + ; flag for init of sram +sram_magic: .adv 1 -- 2.30.2