So, after some testing...
Earlier versions of Decrypt9WIP used CakeHax at this commit:
https://github.com/mid-kid/CakeHax/commit/3978943b5efc2588fdbf4ef669500c1159a6ab9e
... and everything was fine.
EmuNAND9 and later versions of Decrypt9WIP used CakeHax at this commit or later:
https://github.com/mid-kid/CakeHax/commit/c762a2110f118ccba2aa30564eb2b460c4ac8f7e
... and the Decrypt9 CakeHax binary was broken (that's the commit directly after the one above).
Reverting to that earlier commit is out of question, CakeHax needs to be updated for ctrulib 1.0.0. I guess I could use some help.
@mid-kid is there anything I need to change in the Decrypt9 source code to make it work again?
Framebuffers should be okay, I guess (especially given that the lower screen is not even used for the standard version):
Code:
#define TOP_SCREEN0 (u8*)(*(u32*)((uint32_t)0x080FFFC0 + 4 * (*(u32*)0x080FFFD8 & 1)))
#define BOT_SCREEN0 (u8*)(*(u32*)0x080FFFD4)
#define TOP_SCREEN1 TOP_SCREEN0
#define BOT_SCREEN1 BOT_SCREEN0
Then it also uses GW Launcher.dat start.s (vs the one provided by patois with Brahma)...
Code:
#ifdef EXEC_GATEWAY
.section ".init"
.global _start
.extern main
.align 4
.arm
_vectors:
ldr pc, =InfiniteLoop
.pool
ldr pc, =InfiniteLoop
.pool
ldr pc, =InfiniteLoop
.pool
ldr pc, =InfiniteLoop
.pool
ldr pc, =InfiniteLoop
.pool
ldr pc, =InfiniteLoop
.pool
_start:
ldr sp,=0x22140000
@@wait for the arm11 kernel threads to be ready
ldr r1, =0x10000
waitLoop9:
sub r1, #1
cmp r1, #0
bgt waitLoop9
ldr r1, =0x10000
waitLoop92:
sub r1, #1
cmp r1, #0
bgt waitLoop92
ldr sp,=0x22160000
ldr r3, =main
blx r3
.pool
InfiniteLoop:
b InfiniteLoop
#endif // EXEC_GATEWAY
(might I add, I don't have a clue about assembler)
... and GW .ld, for which the only difference is:
ram : ORIGIN = 0x08000000, LENGTH = 128K (in gateway.ld)
ram : ORIGIN = 0x23F00000, LENGTH = 128K (in bootstrap.ld)
But, again, this is like it always was. Even your (mid-kids) pull request to include CakeHax in Decrypt9 (in Archshifts repo) did it that way.