From 1e618d498f8aad4a2e24e90105b4865540745e2d Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Thu, 28 May 2026 08:30:05 -0700 Subject: [PATCH] move pxi_init and gxasm to c --- lib/NitroSDK/asm/pxi_init.s | 13 ---------- lib/NitroSDK/{asm/gx_asm.s => src/gxasm.c} | 17 +++++------- lib/NitroSDK/src/pxi_init.c | 8 ++++++ lib/include/nitro.h | 2 ++ lib/include/nitro/gx.h | 6 +++++ lib/include/nitro/gx/gxasm.h | 24 +++++++++++++++++ lib/include/nitro/pxi.h | 6 +++++ lib/include/nitro/pxi/common/init.h | 14 ++++++++++ main.lsf | 30 +++++++++++----------- 9 files changed, 82 insertions(+), 38 deletions(-) delete mode 100644 lib/NitroSDK/asm/pxi_init.s rename lib/NitroSDK/{asm/gx_asm.s => src/gxasm.c} (67%) create mode 100644 lib/NitroSDK/src/pxi_init.c create mode 100644 lib/include/nitro/gx.h create mode 100644 lib/include/nitro/gx/gxasm.h create mode 100644 lib/include/nitro/pxi.h create mode 100644 lib/include/nitro/pxi/common/init.h diff --git a/lib/NitroSDK/asm/pxi_init.s b/lib/NitroSDK/asm/pxi_init.s deleted file mode 100644 index 5b62f04c..00000000 --- a/lib/NitroSDK/asm/pxi_init.s +++ /dev/null @@ -1,13 +0,0 @@ - .include "asm/macros.inc" - .include "include/nitro.inc" - - .text - - arm_func_start PXI_Init -PXI_Init: ; 0x0207D9A4 - ldr ip, _0207D9AC ; =PXI_InitFifo - bx ip - .align 2, 0 -_0207D9AC: .word PXI_InitFifo - arm_func_end PXI_Init - diff --git a/lib/NitroSDK/asm/gx_asm.s b/lib/NitroSDK/src/gxasm.c similarity index 67% rename from lib/NitroSDK/asm/gx_asm.s rename to lib/NitroSDK/src/gxasm.c index 74ada22f..0140ada6 100644 --- a/lib/NitroSDK/asm/gx_asm.s +++ b/lib/NitroSDK/src/gxasm.c @@ -1,9 +1,7 @@ - .include "asm/macros.inc" +#include - .text - - arm_func_start GX_SendFifo48B -GX_SendFifo48B: ; 0x020788C0 +asm void GX_SendFifo48B(register const void *pSrc, register void *pDest) +{ ldmia r0!, {r2, r3, ip} stmia r1, {r2, r3, ip} ldmia r0!, {r2, r3, ip} @@ -13,10 +11,10 @@ GX_SendFifo48B: ; 0x020788C0 ldmia r0!, {r2, r3, ip} stmia r1, {r2, r3, ip} bx lr - arm_func_end GX_SendFifo48B +} - arm_func_start GX_SendFifo64B -GX_SendFifo64B: ; 0x020788E4 +asm void GX_SendFifo64B(register const void *pSrc, register void *pDest) +{ stmdb sp!, {r4, r5, r6, r7, r8} ldmia r0!, {r2, r3, r4, r5, r6, r7, r8, ip} stmia r1, {r2, r3, r4, r5, r6, r7, r8, ip} @@ -24,5 +22,4 @@ GX_SendFifo64B: ; 0x020788E4 stmia r1, {r2, r3, r4, r5, r6, r7, r8, ip} ldmia sp!, {r4, r5, r6, r7, r8} bx lr - arm_func_end GX_SendFifo64B - +} diff --git a/lib/NitroSDK/src/pxi_init.c b/lib/NitroSDK/src/pxi_init.c new file mode 100644 index 00000000..336297a0 --- /dev/null +++ b/lib/NitroSDK/src/pxi_init.c @@ -0,0 +1,8 @@ +#include + +extern void PXI_InitFifo(void); + +void PXI_Init (void) +{ + PXI_InitFifo(); +} diff --git a/lib/include/nitro.h b/lib/include/nitro.h index 49b1a8e8..122c70e5 100644 --- a/lib/include/nitro.h +++ b/lib/include/nitro.h @@ -4,5 +4,7 @@ #include #include #include +#include +#include #endif //NITRO_H_ diff --git a/lib/include/nitro/gx.h b/lib/include/nitro/gx.h new file mode 100644 index 00000000..39554ffd --- /dev/null +++ b/lib/include/nitro/gx.h @@ -0,0 +1,6 @@ +#ifndef NITRO_GX_H_ +#define NITRO_GX_H_ + +#include + +#endif //NITRO_GX_H_ diff --git a/lib/include/nitro/gx/gxasm.h b/lib/include/nitro/gx/gxasm.h new file mode 100644 index 00000000..759031df --- /dev/null +++ b/lib/include/nitro/gx/gxasm.h @@ -0,0 +1,24 @@ +#ifndef NITRO_GXASM_H_ +#define NITRO_GXASM_H_ + +//#include + +#ifdef __cplusplus +extern "C" { +#endif + +//void GX_SendFifo36B(register const void * pSrc, register void * pDest); +void GX_SendFifo48B(register const void * pSrc, register void * pDest); +void GX_SendFifo64B(register const void * pSrc, register void * pDest); +//void GX_SendFifo128B(register const void * pSrc, register void * pDest); + +//static inline void GX_SendFifo36B (register const void * pSrc, register void * pDest) +//{ +// MI_Copy36B(pSrc, pDest); +//} + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/lib/include/nitro/pxi.h b/lib/include/nitro/pxi.h new file mode 100644 index 00000000..e019e7e8 --- /dev/null +++ b/lib/include/nitro/pxi.h @@ -0,0 +1,6 @@ +#ifndef NITRO_PXI_H_ +#define NITRO_PXI_H_ + +#include + +#endif //NITRO_PXI_H_ diff --git a/lib/include/nitro/pxi/common/init.h b/lib/include/nitro/pxi/common/init.h new file mode 100644 index 00000000..7969d0d3 --- /dev/null +++ b/lib/include/nitro/pxi/common/init.h @@ -0,0 +1,14 @@ +#ifndef NITRO_PXI_COMMON_INIT_H_ +#define NITRO_PXI_COMMON_INIT_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +void PXI_Init(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/main.lsf b/main.lsf index 9f04c09e..d9058c95 100644 --- a/main.lsf +++ b/main.lsf @@ -232,7 +232,7 @@ Static main Object lib/NitroSDK/asm/g3x.o Object lib/NitroSDK/asm/gx_load2d.o Object lib/NitroSDK/asm/gx_load3d.o - Object lib/NitroSDK/asm/gx_asm.o + Object lib/NitroSDK/src/gxasm.o Object lib/NitroSDK/asm/os_interrupt.o Object lib/NitroSDK/asm/os_spinlock.o Object lib/NitroSDK/asm/os_thread.o @@ -257,20 +257,20 @@ Static main Object lib/NitroSDK/asm/mi_wram.o Object lib/NitroSDK/asm/mi_dma.o Object lib/NitroSDK/asm/mi_memory.o - Object lib/NitroSDK/asm/mi_uncompress.o - Object lib/NitroSDK/asm/mi_dma_card.o - Object lib/NitroSDK/asm/mi_init.o - Object lib/NitroSDK/asm/snd_interface.o - Object lib/NitroSDK/asm/snd_main.o - Object lib/NitroSDK/asm/snd_command.o - Object lib/NitroSDK/asm/snd_alarm.o - Object lib/NitroSDK/asm/snd_work.o - Object lib/NitroSDK/asm/snd_util.o - Object lib/NitroSDK/asm/snd_bank.o - Object lib/NitroSDK/asm/pxi_init.o - Object lib/NitroSDK/asm/pxi_fifo.o - Object lib/NitroSDK/asm/fs_command.o - Object lib/NitroSDK/asm/fs_command_default.o + Object lib/NitroSDK/asm/mi_uncompress.o + Object lib/NitroSDK/asm/mi_dma_card.o + Object lib/NitroSDK/asm/mi_init.o + Object lib/NitroSDK/asm/snd_interface.o + Object lib/NitroSDK/asm/snd_main.o + Object lib/NitroSDK/asm/snd_command.o + Object lib/NitroSDK/asm/snd_alarm.o + Object lib/NitroSDK/asm/snd_work.o + Object lib/NitroSDK/asm/snd_util.o + Object lib/NitroSDK/asm/snd_bank.o + Object lib/NitroSDK/src/pxi_init.o + Object lib/NitroSDK/asm/pxi_fifo.o + Object lib/NitroSDK/asm/fs_command.o + Object lib/NitroSDK/asm/fs_command_default.o Object src/main_0207E81C.o Object asm/main_0207E84C.o Object src/main_0207F3E4.o