summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@users.noreply.github.com>2020-11-06 15:00:40 -0500
committerGitHub <noreply@github.com>2020-11-06 15:00:40 -0500
commit75b12b86dcf5525371e2a8394b41e1cbd7c0c744 (patch)
tree64294dd7c49c279afba293bbb0e9b2e787f594e6 /src
parent42b7f11db0ece78171690da1d220d2b7774ab5fa (diff)
parent3112cf5726424457c49307082c21fa3740bc0b3a (diff)
Merge pull request #1246 from PikalaxALT/simplify_ram_reset
Simplify RAM reset adaptation for modern
Diffstat (limited to 'src')
-rw-r--r--src/crt0.s4
-rw-r--r--src/main.c18
2 files changed, 5 insertions, 17 deletions
diff --git a/src/crt0.s b/src/crt0.s
index cb7c93a6b..49f214f80 100644
--- a/src/crt0.s
+++ b/src/crt0.s
@@ -91,6 +91,10 @@ Init: @ 8000204
ldr r1, =INTR_VECTOR
adr r0, IntrMain
str r0, [r1]
+ .if MODERN
+ mov r0, #255 @ RESET_ALL
+ svc #1 << 16
+ .endif @ MODERN
ldr r1, =AgbMain + 1
mov lr, pc
bx r1
diff --git a/src/main.c b/src/main.c
index ab0c23284..9fd1d0a35 100644
--- a/src/main.c
+++ b/src/main.c
@@ -85,25 +85,9 @@ void EnableVCountIntrAtLine150(void);
void AgbMain()
{
-#if MODERN
// Modern compilers are liberal with the stack on entry to this function,
// so RegisterRamReset may crash if it resets IWRAM.
- RegisterRamReset(RESET_ALL & ~RESET_IWRAM);
- asm("mov\tr1, #0xC0\n"
- "\tlsl\tr1, r1, #0x12\n"
- "\tmov r2, #0xFC\n"
- "\tlsl r2, r2, #0x7\n"
- "\tadd\tr2, r1, r2\n"
- "\tmov\tr0, #0\n"
- "\tmov\tr3, r0\n"
- "\tmov\tr4, r0\n"
- "\tmov\tr5, r0\n"
- ".LCU0:\n"
- "\tstmia r1!, {r0, r3, r4, r5}\n"
- "\tcmp\tr1, r2\n"
- "\tbcc\t.LCU0\n"
- );
-#else
+#if !MODERN
RegisterRamReset(RESET_ALL);
#endif //MODERN
*(vu16 *)BG_PLTT = 0x7FFF;