mirror of
https://github.com/libretro/RetroArch
synced 2025-03-31 19:21:06 +00:00
Update CTR (3DS) driver for the latest ctrulib SDK, fix a typo, and fix compilation errors.
This commit is contained in:
parent
bd0c342a0a
commit
0565a92486
@ -246,10 +246,6 @@ ifeq ($(strip $(AEMSTRO)),)
|
|||||||
$(error "Please set AEMSTRO in your environment. export AEMSTRO=<path to>aemstro")
|
$(error "Please set AEMSTRO in your environment. export AEMSTRO=<path to>aemstro")
|
||||||
endif
|
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_TITLE := $(shell echo "$(APP_TITLE)" | cut -c1-128)
|
||||||
APP_DESCRIPTION := $(shell echo "$(APP_DESCRIPTION)" | cut -c1-256)
|
APP_DESCRIPTION := $(shell echo "$(APP_DESCRIPTION)" | cut -c1-256)
|
||||||
|
@ -28,6 +28,7 @@ void __libc_fini_array(void);
|
|||||||
void __libctru_init(void (*retAddr)(void));
|
void __libctru_init(void (*retAddr)(void));
|
||||||
void __appInit();
|
void __appInit();
|
||||||
void __libc_init_array(void);
|
void __libc_init_array(void);
|
||||||
|
void __system_initSyscalls(void);
|
||||||
void __system_allocateHeaps();
|
void __system_allocateHeaps();
|
||||||
void __system_initArgv();
|
void __system_initArgv();
|
||||||
|
|
||||||
@ -43,15 +44,16 @@ Result __sync_init(void) __attribute__((weak));
|
|||||||
|
|
||||||
void __attribute__((weak)) __libctru_init(void (*retAddr)(void))
|
void __attribute__((weak)) __libctru_init(void (*retAddr)(void))
|
||||||
{
|
{
|
||||||
// Register newlib exit() syscall
|
// Store the return address
|
||||||
__syscalls.exit = __ctru_exit;
|
__system_retAddr = envIsHomebrew() ? retAddr : NULL;
|
||||||
__syscalls.gettod_r = __libctru_gtod;
|
|
||||||
|
|
||||||
__system_retAddr = __service_ptr ? retAddr : NULL;
|
// Initialize the synchronization subsystem
|
||||||
|
__sync_init();
|
||||||
|
|
||||||
if (__sync_init)
|
// Initialize newlib support system calls
|
||||||
__sync_init();
|
__system_initSyscalls();
|
||||||
|
|
||||||
|
// Allocate application and linear heaps
|
||||||
__system_allocateHeaps();
|
__system_allocateHeaps();
|
||||||
|
|
||||||
// Build argc/argv if present
|
// Build argc/argv if present
|
||||||
@ -200,7 +202,7 @@ int ctr_request_update(void)
|
|||||||
consoleInit(GFX_BOTTOM, NULL);
|
consoleInit(GFX_BOTTOM, NULL);
|
||||||
|
|
||||||
printf("\n\nunsupported version\n\n");
|
printf("\n\nunsupported version\n\n");
|
||||||
printf("Please update your playload\n");
|
printf("Please update your payload\n");
|
||||||
|
|
||||||
wait_for_input();
|
wait_for_input();
|
||||||
|
|
||||||
|
@ -327,8 +327,8 @@ static void* ctr_init(const video_info_t* video,
|
|||||||
GPU_SetDepthTestAndWriteMask(false, GPU_ALWAYS, GPU_WRITE_ALL);
|
GPU_SetDepthTestAndWriteMask(false, GPU_ALWAYS, GPU_WRITE_ALL);
|
||||||
// GPU_SetDepthTestAndWriteMask(true, GPU_ALWAYS, GPU_WRITE_ALL);
|
// GPU_SetDepthTestAndWriteMask(true, GPU_ALWAYS, GPU_WRITE_ALL);
|
||||||
|
|
||||||
GPUCMD_AddMaskedWrite(GPUREG_0062, 0x1, 0);
|
GPUCMD_AddMaskedWrite(GPUREG_EARLYDEPTH_TEST1, 0x1, 0);
|
||||||
GPUCMD_AddWrite(GPUREG_0118, 0);
|
GPUCMD_AddWrite(GPUREG_EARLYDEPTH_TEST2, 0);
|
||||||
|
|
||||||
GPU_SetAlphaBlending(GPU_BLEND_ADD, GPU_BLEND_ADD,
|
GPU_SetAlphaBlending(GPU_BLEND_ADD, GPU_BLEND_ADD,
|
||||||
GPU_SRC_ALPHA, GPU_ONE_MINUS_SRC_ALPHA,
|
GPU_SRC_ALPHA, GPU_ONE_MINUS_SRC_ALPHA,
|
||||||
|
@ -75,21 +75,21 @@ static INLINE void ctrGuSetTexture(GPU_TEXUNIT unit, u32* data,
|
|||||||
{
|
{
|
||||||
case GPU_TEXUNIT0:
|
case GPU_TEXUNIT0:
|
||||||
GPUCMD_AddWrite(GPUREG_TEXUNIT0_TYPE, colorType);
|
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_DIM, (height)|(width<<16));
|
||||||
GPUCMD_AddWrite(GPUREG_TEXUNIT0_PARAM, param);
|
GPUCMD_AddWrite(GPUREG_TEXUNIT0_PARAM, param);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GPU_TEXUNIT1:
|
case GPU_TEXUNIT1:
|
||||||
GPUCMD_AddWrite(GPUREG_TEXUNIT1_TYPE, colorType);
|
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_DIM, (height)|(width<<16));
|
||||||
GPUCMD_AddWrite(GPUREG_TEXUNIT1_PARAM, param);
|
GPUCMD_AddWrite(GPUREG_TEXUNIT1_PARAM, param);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GPU_TEXUNIT2:
|
case GPU_TEXUNIT2:
|
||||||
GPUCMD_AddWrite(GPUREG_TEXUNIT2_TYPE, colorType);
|
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_DIM, (height)|(width<<16));
|
||||||
GPUCMD_AddWrite(GPUREG_TEXUNIT2_PARAM, param);
|
GPUCMD_AddWrite(GPUREG_TEXUNIT2_PARAM, param);
|
||||||
break;
|
break;
|
||||||
@ -218,7 +218,7 @@ static INLINE void ctrGuSetAttributeBuffers(u32 total_attributes,
|
|||||||
|
|
||||||
GPUCMD_AddIncrementalWrites(GPUREG_ATTRIBBUFFERS_LOC, param, 0x00000027);
|
GPUCMD_AddIncrementalWrites(GPUREG_ATTRIBBUFFERS_LOC, param, 0x00000027);
|
||||||
GPUCMD_AddMaskedWrite(GPUREG_VSH_INPUTBUFFER_CONFIG, 0xB, 0xA0000000|(total_attributes-1));
|
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);
|
GPUCMD_AddIncrementalWrites(GPUREG_VSH_ATTRIBUTES_PERMUTATION_LOW, ((u32[]){0x76543210, 0xBA98}), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user