diff --git a/Makefile.ctr b/Makefile.ctr index 21eb4fc87e..f23dc5fc96 100644 --- a/Makefile.ctr +++ b/Makefile.ctr @@ -246,10 +246,6 @@ ifeq ($(strip $(AEMSTRO)),) $(error "Please set AEMSTRO in your environment. export AEMSTRO=aemstro") endif -ifeq ($(wildcard $(CTRULIB)/include/3ds/ndsp),) -$(error "Please update ctrulib to the great-refactor branch") -endif - APP_TITLE := $(shell echo "$(APP_TITLE)" | cut -c1-128) APP_DESCRIPTION := $(shell echo "$(APP_DESCRIPTION)" | cut -c1-256) diff --git a/ctr/ctr_system.c b/ctr/ctr_system.c index ae5ab54b18..9c1a68de27 100644 --- a/ctr/ctr_system.c +++ b/ctr/ctr_system.c @@ -28,6 +28,7 @@ void __libc_fini_array(void); void __libctru_init(void (*retAddr)(void)); void __appInit(); void __libc_init_array(void); +void __system_initSyscalls(void); void __system_allocateHeaps(); void __system_initArgv(); @@ -43,15 +44,16 @@ Result __sync_init(void) __attribute__((weak)); void __attribute__((weak)) __libctru_init(void (*retAddr)(void)) { - // Register newlib exit() syscall - __syscalls.exit = __ctru_exit; - __syscalls.gettod_r = __libctru_gtod; + // Store the return address + __system_retAddr = envIsHomebrew() ? retAddr : NULL; - __system_retAddr = __service_ptr ? retAddr : NULL; + // Initialize the synchronization subsystem + __sync_init(); - if (__sync_init) - __sync_init(); + // Initialize newlib support system calls + __system_initSyscalls(); + // Allocate application and linear heaps __system_allocateHeaps(); // Build argc/argv if present @@ -200,7 +202,7 @@ int ctr_request_update(void) consoleInit(GFX_BOTTOM, NULL); printf("\n\nunsupported version\n\n"); - printf("Please update your playload\n"); + printf("Please update your payload\n"); wait_for_input(); diff --git a/gfx/drivers/ctr_gfx.c b/gfx/drivers/ctr_gfx.c index 5c4429873a..38a140a1fa 100644 --- a/gfx/drivers/ctr_gfx.c +++ b/gfx/drivers/ctr_gfx.c @@ -327,8 +327,8 @@ static void* ctr_init(const video_info_t* video, GPU_SetDepthTestAndWriteMask(false, GPU_ALWAYS, GPU_WRITE_ALL); // GPU_SetDepthTestAndWriteMask(true, GPU_ALWAYS, GPU_WRITE_ALL); - GPUCMD_AddMaskedWrite(GPUREG_0062, 0x1, 0); - GPUCMD_AddWrite(GPUREG_0118, 0); + GPUCMD_AddMaskedWrite(GPUREG_EARLYDEPTH_TEST1, 0x1, 0); + GPUCMD_AddWrite(GPUREG_EARLYDEPTH_TEST2, 0); GPU_SetAlphaBlending(GPU_BLEND_ADD, GPU_BLEND_ADD, GPU_SRC_ALPHA, GPU_ONE_MINUS_SRC_ALPHA, diff --git a/gfx/drivers/ctr_gu.h b/gfx/drivers/ctr_gu.h index c8c8b34fff..d46497976f 100644 --- a/gfx/drivers/ctr_gu.h +++ b/gfx/drivers/ctr_gu.h @@ -75,21 +75,21 @@ static INLINE void ctrGuSetTexture(GPU_TEXUNIT unit, u32* data, { case GPU_TEXUNIT0: GPUCMD_AddWrite(GPUREG_TEXUNIT0_TYPE, colorType); - GPUCMD_AddWrite(GPUREG_TEXUNIT0_LOC, ((u32)data)>>3); + GPUCMD_AddWrite(GPUREG_TEXUNIT0_ADDR1, ((u32)data)>>3); GPUCMD_AddWrite(GPUREG_TEXUNIT0_DIM, (height)|(width<<16)); GPUCMD_AddWrite(GPUREG_TEXUNIT0_PARAM, param); break; case GPU_TEXUNIT1: GPUCMD_AddWrite(GPUREG_TEXUNIT1_TYPE, colorType); - GPUCMD_AddWrite(GPUREG_TEXUNIT1_LOC, ((u32)data)>>3); + GPUCMD_AddWrite(GPUREG_TEXUNIT1_ADDR, ((u32)data)>>3); GPUCMD_AddWrite(GPUREG_TEXUNIT1_DIM, (height)|(width<<16)); GPUCMD_AddWrite(GPUREG_TEXUNIT1_PARAM, param); break; case GPU_TEXUNIT2: GPUCMD_AddWrite(GPUREG_TEXUNIT2_TYPE, colorType); - GPUCMD_AddWrite(GPUREG_TEXUNIT2_LOC, ((u32)data)>>3); + GPUCMD_AddWrite(GPUREG_TEXUNIT2_ADDR, ((u32)data)>>3); GPUCMD_AddWrite(GPUREG_TEXUNIT2_DIM, (height)|(width<<16)); GPUCMD_AddWrite(GPUREG_TEXUNIT2_PARAM, param); break; @@ -218,7 +218,7 @@ static INLINE void ctrGuSetAttributeBuffers(u32 total_attributes, GPUCMD_AddIncrementalWrites(GPUREG_ATTRIBBUFFERS_LOC, param, 0x00000027); GPUCMD_AddMaskedWrite(GPUREG_VSH_INPUTBUFFER_CONFIG, 0xB, 0xA0000000|(total_attributes-1)); - GPUCMD_AddWrite(GPUREG_0242, (total_attributes-1)); + GPUCMD_AddWrite(GPUREG_VSH_NUM_ATTR, (total_attributes-1)); GPUCMD_AddIncrementalWrites(GPUREG_VSH_ATTRIBUTES_PERMUTATION_LOW, ((u32[]){0x76543210, 0xBA98}), 2); }