diff --git a/tools/cheat-builder/asm/build.sh b/tools/cheat-builder/asm/build.sh new file mode 100644 index 0000000..d630376 --- /dev/null +++ b/tools/cheat-builder/asm/build.sh @@ -0,0 +1,7 @@ +#!/bin/bash +PATH=$PATH:/var/devkit/bin +arm-agb-elf-gcc -ffreestanding -nostdlib -nostartfiles -o /tmp/cht /var/asm/exec.s +arm-agb-elf-strip --strip-all /tmp/cht +arm-agb-elf-objdump -fd /tmp/cht +arm-agb-elf-objcopy -O binary -j .text /tmp/cht /tmp/cht.bin +mv /tmp/cht.bin /var/asm/cht.bin diff --git a/tools/cheat-builder/asm/exec.s b/tools/cheat-builder/asm/exec.s new file mode 100644 index 0000000..09e3636 --- /dev/null +++ b/tools/cheat-builder/asm/exec.s @@ -0,0 +1,31 @@ + .file "cheat.S" + .text + .align 4 + .global _start + .type _start,function + +_start: + add r0, r15, #0x28 + +.Lapply: + ldr r1, [r0], #4 + cmp r1, #0 + beq .Ldone + + ldr r2, [r0], #4 + and r3, r2, #255 + mov r2, r2, lsr #8 + +.Lmemset: + strb r3, [r1], #1 + subs r2, r2, #1 + bne .Lmemset + b .Lapply + +.Ldone: + bx r14 + +.cheat: + .long 0x0200234e + .long 0x00000180 + .long 0x0 diff --git a/tools/cheat-builder/devkitadv.tar.bz2 b/tools/cheat-builder/devkitadv.tar.bz2 new file mode 100644 index 0000000..6a74820 Binary files /dev/null and b/tools/cheat-builder/devkitadv.tar.bz2 differ diff --git a/tools/cheat-builder/makebin.sh b/tools/cheat-builder/makebin.sh new file mode 100755 index 0000000..00fb547 --- /dev/null +++ b/tools/cheat-builder/makebin.sh @@ -0,0 +1,2 @@ +#!/bin/bash +docker run -it --rm -v /root/3ds/devkit/gbatool/devkitadv:/var/devkit -v /root/3ds/devkit/gbatool/asm:/var/asm i386/debian:buster-slim bash /var/asm/build.sh