Update CTR (3DS) driver for the latest ctrulib SDK, fix a typo, and fix compilation errors.

This commit is contained in:
thedax 2015-12-21 13:41:18 -05:00
parent bd0c342a0a
commit 0565a92486
4 changed files with 15 additions and 17 deletions

View File

@ -246,10 +246,6 @@ ifeq ($(strip $(AEMSTRO)),)
$(error "Please set AEMSTRO in your environment. export AEMSTRO=<path to>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)

View File

@ -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();

View File

@ -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,

View File

@ -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);
}