From 49ee8172ebb6c77071be113a01fc29c48b991479 Mon Sep 17 00:00:00 2001 From: spicyjpeg Date: Sat, 23 Jul 2022 23:13:49 +0200 Subject: Remove MDEC indev example, add more kernel APIs --- libpsn00b/psxapi/_syscalls.s | 50 +++++++++++++++++++ libpsn00b/psxapi/stubs.json | 70 +++++++++++++++++++++++--- libpsn00b/psxapi/sys.s | 114 ++++++++++++++++++++++++++++++++++--------- 3 files changed, 203 insertions(+), 31 deletions(-) create mode 100644 libpsn00b/psxapi/_syscalls.s (limited to 'libpsn00b/psxapi') diff --git a/libpsn00b/psxapi/_syscalls.s b/libpsn00b/psxapi/_syscalls.s new file mode 100644 index 0000000..24864f3 --- /dev/null +++ b/libpsn00b/psxapi/_syscalls.s @@ -0,0 +1,50 @@ +# PSn00bSDK syscall wrappers +# (C) 2022 spicyjpeg - MPL licensed + +.set noreorder + +.section .text.EnterCriticalSection +.global EnterCriticalSection +.type EnterCriticalSection, @function +EnterCriticalSection: + li $a0, 0x01 + syscall 0 + + jr $ra + nop + +.section .text.ExitCriticalSection +.global ExitCriticalSection +.type ExitCriticalSection, @function +ExitCriticalSection: + li $a0, 0x02 + syscall 0 + + jr $ra + nop + +.section .text.SwEnterCriticalSection +.global SwEnterCriticalSection +.type SwEnterCriticalSection, @function +SwEnterCriticalSection: + mfc0 $a0, $12 # cop0r12 &= ~0x00000401 + li $a1, -1026 + and $a0, $a1 + mtc0 $a0, $12 + nop + + jr $ra + nop + +.section .text.SwExitCriticalSection +.global SwExitCriticalSection +.type SwExitCriticalSection, @function +SwExitCriticalSection: + mfc0 $a0, $12 # cop0r12 |= 0x00000401 + nop + ori $a0, 0x0401 + mtc0 $a0, $12 + nop + + jr $ra + nop diff --git a/libpsn00b/psxapi/stubs.json b/libpsn00b/psxapi/stubs.json index 9198b06..200cbc7 100644 --- a/libpsn00b/psxapi/stubs.json +++ b/libpsn00b/psxapi/stubs.json @@ -131,6 +131,12 @@ "name": "AddDummyTty", "file": "drivers.s" }, + { + "type": "a", + "id": 156, + "name": "SetConf", + "file": "sys.s" + }, { "type": "a", "id": 160, @@ -203,12 +209,36 @@ "name": "ResetRCnt", "file": "sys.s" }, + { + "type": "b", + "id": 7, + "name": "DeliverEvent", + "file": "sys.s" + }, { "type": "b", "id": 8, "name": "OpenEvent", "file": "sys.s" }, + { + "type": "b", + "id": 9, + "name": "CloseEvent", + "file": "sys.s" + }, + { + "type": "b", + "id": 10, + "name": "WaitEvent", + "file": "sys.s" + }, + { + "type": "b", + "id": 11, + "name": "TestEvent", + "file": "sys.s" + }, { "type": "b", "id": 12, @@ -221,6 +251,24 @@ "name": "DisableEvent", "file": "sys.s" }, + { + "type": "b", + "id": 14, + "name": "OpenTh", + "file": "sys.s" + }, + { + "type": "b", + "id": 15, + "name": "CloseTh", + "file": "sys.s" + }, + { + "type": "b", + "id": 16, + "name": "ChangeTh", + "file": "sys.s" + }, { "type": "b", "id": 18, @@ -257,6 +305,12 @@ "name": "SetCustomExitFromException", "file": "sys.s" }, + { + "type": "b", + "id": 32, + "name": "UnDeliverEvent", + "file": "sys.s" + }, { "type": "b", "id": 64, @@ -391,20 +445,20 @@ }, { "type": "c", - "id": 10, - "name": "ChangeClearRCnt", + "id": 7, + "name": "InstallExceptionHandlers", "file": "sys.s" }, { - "type": "syscall", - "id": 1, - "name": "EnterCriticalSection", + "type": "c", + "id": 8, + "name": "SysInitMemory", "file": "sys.s" }, { - "type": "syscall", - "id": 2, - "name": "ExitCriticalSection", + "type": "c", + "id": 10, + "name": "ChangeClearRCnt", "file": "sys.s" } ] diff --git a/libpsn00b/psxapi/sys.s b/libpsn00b/psxapi/sys.s index e54bd98..e2505e1 100644 --- a/libpsn00b/psxapi/sys.s +++ b/libpsn00b/psxapi/sys.s @@ -6,7 +6,7 @@ .set noreorder -## A0 table functions (7) +## A0 table functions (8) .section .text.b_setjmp .global b_setjmp @@ -48,6 +48,14 @@ FlushCache: jr $t2 li $t1, 0x44 +.section .text.SetConf +.global SetConf +.type SetConf, @function +SetConf: + li $t2, 0xa0 + jr $t2 + li $t1, 0x9c + .section .text._boot .global _boot .type _boot, @function @@ -64,7 +72,7 @@ GetSystemInfo: jr $t2 li $t1, 0xb4 -## B0 table functions (19) +## B0 table functions (27) .section .text._kernel_malloc .global _kernel_malloc @@ -122,6 +130,14 @@ ResetRCnt: jr $t2 li $t1, 0x06 +.section .text.DeliverEvent +.global DeliverEvent +.type DeliverEvent, @function +DeliverEvent: + li $t2, 0xb0 + jr $t2 + li $t1, 0x07 + .section .text.OpenEvent .global OpenEvent .type OpenEvent, @function @@ -130,6 +146,30 @@ OpenEvent: jr $t2 li $t1, 0x08 +.section .text.CloseEvent +.global CloseEvent +.type CloseEvent, @function +CloseEvent: + li $t2, 0xb0 + jr $t2 + li $t1, 0x09 + +.section .text.WaitEvent +.global WaitEvent +.type WaitEvent, @function +WaitEvent: + li $t2, 0xb0 + jr $t2 + li $t1, 0x0a + +.section .text.TestEvent +.global TestEvent +.type TestEvent, @function +TestEvent: + li $t2, 0xb0 + jr $t2 + li $t1, 0x0b + .section .text.EnableEvent .global EnableEvent .type EnableEvent, @function @@ -146,6 +186,30 @@ DisableEvent: jr $t2 li $t1, 0x0d +.section .text.OpenTh +.global OpenTh +.type OpenTh, @function +OpenTh: + li $t2, 0xb0 + jr $t2 + li $t1, 0x0e + +.section .text.CloseTh +.global CloseTh +.type CloseTh, @function +CloseTh: + li $t2, 0xb0 + jr $t2 + li $t1, 0x0f + +.section .text.ChangeTh +.global ChangeTh +.type ChangeTh, @function +ChangeTh: + li $t2, 0xb0 + jr $t2 + li $t1, 0x10 + .section .text.InitPAD .global InitPAD .type InitPAD, @function @@ -194,6 +258,14 @@ SetCustomExitFromException: jr $t2 li $t1, 0x19 +.section .text.UnDeliverEvent +.global UnDeliverEvent +.type UnDeliverEvent, @function +UnDeliverEvent: + li $t2, 0xb0 + jr $t2 + li $t1, 0x20 + .section .text.GetC0Table .global GetC0Table .type GetC0Table, @function @@ -218,7 +290,7 @@ ChangeClearPAD: jr $t2 li $t1, 0x5b -## C0 table functions (3) +## C0 table functions (5) .section .text.SysEnqIntRP .global SysEnqIntRP @@ -236,6 +308,22 @@ SysDeqIntRP: jr $t2 li $t1, 0x03 +.section .text.InstallExceptionHandlers +.global InstallExceptionHandlers +.type InstallExceptionHandlers, @function +InstallExceptionHandlers: + li $t2, 0xc0 + jr $t2 + li $t1, 0x07 + +.section .text.SysInitMemory +.global SysInitMemory +.type SysInitMemory, @function +SysInitMemory: + li $t2, 0xc0 + jr $t2 + li $t1, 0x08 + .section .text.ChangeClearRCnt .global ChangeClearRCnt .type ChangeClearRCnt, @function @@ -244,23 +332,3 @@ ChangeClearRCnt: jr $t2 li $t1, 0x0a -## Syscalls (2) - -.section .text.EnterCriticalSection -.global EnterCriticalSection -.type EnterCriticalSection, @function -EnterCriticalSection: - li $a0, 0x01 - syscall 0 - jr $ra - nop - -.section .text.ExitCriticalSection -.global ExitCriticalSection -.type ExitCriticalSection, @function -ExitCriticalSection: - li $a0, 0x02 - syscall 0 - jr $ra - nop - -- cgit v1.2.3 From 86f0064afb8200e60dd80827535cac30d0eab028 Mon Sep 17 00:00:00 2001 From: spicyjpeg Date: Thu, 22 Sep 2022 21:36:29 +0200 Subject: Update version number, clean up old headers --- CHANGELOG.md | 10 ++ CMakeLists.txt | 2 +- examples/demos/n00bdemo/smd.s | 4 +- examples/demos/n00bdemo/smd_cel.s | 4 +- examples/demos/n00bdemo/smd_flat.s | 4 +- libpsn00b/include/ctype.h | 23 +++- libpsn00b/include/gtereg.h | 81 ------------- libpsn00b/include/gtereg.inc | 81 +++++++++++++ libpsn00b/include/hwregs_a.h | 150 ------------------------ libpsn00b/include/hwregs_a.inc | 150 ++++++++++++++++++++++++ libpsn00b/include/inline_s.h | 230 ------------------------------------- libpsn00b/include/inline_s.inc | 230 +++++++++++++++++++++++++++++++++++++ libpsn00b/include/string.h | 20 +--- libpsn00b/include/strings.h | 23 ++-- libpsn00b/psxapi/_initcd.s | 2 +- libpsn00b/psxcd/_cd_control.s | 2 +- libpsn00b/psxcd/cdgetsector.s | 2 +- libpsn00b/psxcd/cdmix.s | 2 +- libpsn00b/psxcd/psxcd_asm.s | 2 +- libpsn00b/psxgpu/readme.txt | 1 - libpsn00b/psxgte/applymatrixlv.s | 4 +- libpsn00b/psxgte/compmatrixlv.s | 4 +- libpsn00b/psxgte/initgeom.s | 2 +- libpsn00b/psxgte/mulmatrix.s | 4 +- libpsn00b/psxgte/mulmatrix0.s | 4 +- libpsn00b/psxgte/pushpopmatrix.s | 4 +- libpsn00b/psxgte/readme.txt | 4 +- libpsn00b/psxgte/scalematrix.s | 4 +- libpsn00b/psxgte/scalematrixl.s | 4 +- libpsn00b/psxgte/square0.s | 4 +- libpsn00b/psxgte/squareroot.s | 4 +- libpsn00b/psxgte/vectornormals.s | 4 +- libpsn00b/psxsio/_sio_control.s | 2 +- 33 files changed, 541 insertions(+), 530 deletions(-) delete mode 100644 libpsn00b/include/gtereg.h create mode 100644 libpsn00b/include/gtereg.inc delete mode 100644 libpsn00b/include/hwregs_a.h create mode 100644 libpsn00b/include/hwregs_a.inc delete mode 100644 libpsn00b/include/inline_s.h create mode 100644 libpsn00b/include/inline_s.inc (limited to 'libpsn00b/psxapi') diff --git a/CHANGELOG.md b/CHANGELOG.md index b477b54..f7f4f93 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,16 @@ to ensure the changelog can be parsed correctly. ------------------------------------------------------------------------------- +## 2022-09-22 + +spicyjpeg: + +- libpsn00b: Changed the extension of `gtereg.h`, `hwregs_a.h` and `inline_s.h` + to `.inc`. Cleaned up old leftover PSXSDK headers. + +- Updated documentation and added detailed instructions on how to install + prebuilt releases. + ## 2022-08-21: 0.20 spicyjpeg: diff --git a/CMakeLists.txt b/CMakeLists.txt index 181375c..4f255a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,7 @@ include(ExternalProject) project( PSn00bSDK LANGUAGES NONE - VERSION 0.19 + VERSION 0.20 DESCRIPTION "Open source PlayStation 1 SDK" HOMEPAGE_URL "http://lameguy64.net/?page=psn00bsdk" ) diff --git a/examples/demos/n00bdemo/smd.s b/examples/demos/n00bdemo/smd.s index f9cf2fe..d25f760 100644 --- a/examples/demos/n00bdemo/smd.s +++ b/examples/demos/n00bdemo/smd.s @@ -1,7 +1,7 @@ .set noreorder -.include "gtereg.h" -.include "inline_s.h" +.include "gtereg.inc" +.include "inline_s.inc" .include "smd_s.h" diff --git a/examples/demos/n00bdemo/smd_cel.s b/examples/demos/n00bdemo/smd_cel.s index ece0dd8..383f043 100644 --- a/examples/demos/n00bdemo/smd_cel.s +++ b/examples/demos/n00bdemo/smd_cel.s @@ -1,7 +1,7 @@ .set noreorder -.include "gtereg.h" -.include "inline_s.h" +.include "gtereg.inc" +.include "inline_s.inc" .include "smd_s.h" diff --git a/examples/demos/n00bdemo/smd_flat.s b/examples/demos/n00bdemo/smd_flat.s index 0d48c63..4b47be4 100644 --- a/examples/demos/n00bdemo/smd_flat.s +++ b/examples/demos/n00bdemo/smd_flat.s @@ -1,7 +1,7 @@ .set noreorder -.include "gtereg.h" -.include "inline_s.h" +.include "gtereg.inc" +.include "inline_s.inc" .include "smd_s.h" diff --git a/libpsn00b/include/ctype.h b/libpsn00b/include/ctype.h index b79498a..24ee9d9 100644 --- a/libpsn00b/include/ctype.h +++ b/libpsn00b/include/ctype.h @@ -1,7 +1,20 @@ -#ifndef _CTYPE_H -#define _CTYPE_H +/* + * PSn00bSDK standard library + * (C) 2019-2022 PSXSDK authors, Lameguy64, spicyjpeg - MPL licensed + */ -extern int tolower(int chr); -extern int toupper(int chr); +#ifndef __CTYPE_H +#define __CTYPE_H -#endif \ No newline at end of file +#ifdef __cplusplus +extern "C" { +#endif + +int tolower(int chr); +int toupper(int chr); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/libpsn00b/include/gtereg.h b/libpsn00b/include/gtereg.h deleted file mode 100644 index 0d051fc..0000000 --- a/libpsn00b/include/gtereg.h +++ /dev/null @@ -1,81 +0,0 @@ -# GTE register definitions for GNU assembler (as). -# -# Part of the PSn00bSDK Project by Lameguy64. -# 2019 Meido-Tek Productions - -# -# GTE data registers (use mfc2, mtc2, lwc2, swc2) -# -.set C2_VXY0, $0 -.set C2_VZ0, $1 -.set C2_VXY1, $2 -.set C2_VZ1, $3 -.set C2_VXY2, $4 -.set C2_VZ2, $5 -.set C2_RGB, $6 -.set C2_OTZ, $7 - -.set C2_IR0, $8 -.set C2_IR1, $9 -.set C2_IR2, $10 -.set C2_IR3, $11 -.set C2_SXY0, $12 -.set C2_SXY1, $13 -.set C2_SXY2, $14 -.set C2_SXYP, $15 - -.set C2_SZ0, $16 -.set C2_SZ1, $17 -.set C2_SZ2, $18 -.set C2_SZ3, $19 -.set C2_RGB0, $20 -.set C2_RGB1, $21 -.set C2_RGB2, $22 - -.set C2_MAC0, $24 -.set C2_MAC1, $25 -.set C2_MAC2, $26 -.set C2_MAC3, $27 -.set C2_IRGB, $28 -.set C2_ORGB, $29 -.set C2_LZCS, $30 -.set C2_LZCR, $31 - -# -# GTE control registers (use cfc2/ctc2) -# -.set C2_R11R12, $0 -.set C2_R13R21, $1 -.set C2_R22R23, $2 -.set C2_R31R32, $3 -.set C2_R33, $4 -.set C2_TRX, $5 -.set C2_TRY, $6 -.set C2_TRZ, $7 - -.set C2_L11L12, $8 -.set C2_L13L21, $9 -.set C2_L22L23, $10 -.set C2_L31L32, $11 -.set C2_L33, $12 -.set C2_RBK, $13 -.set C2_GBK, $14 -.set C2_BBK, $15 - -.set C2_LR1LR2, $16 -.set C2_LR3LG1, $17 -.set C2_LG2LG3, $18 -.set C2_LB1LB2, $19 -.set C2_LB3, $20 -.set C2_RFC, $21 -.set C2_GFC, $22 -.set C2_BFC, $23 - -.set C2_OFX, $24 -.set C2_OFY, $25 -.set C2_H, $26 -.set C2_DQA, $27 -.set C2_DQB, $28 -.set C2_ZSF3, $29 -.set C2_ZSF4, $30 -.set C2_FLAG, $31 diff --git a/libpsn00b/include/gtereg.inc b/libpsn00b/include/gtereg.inc new file mode 100644 index 0000000..0d051fc --- /dev/null +++ b/libpsn00b/include/gtereg.inc @@ -0,0 +1,81 @@ +# GTE register definitions for GNU assembler (as). +# +# Part of the PSn00bSDK Project by Lameguy64. +# 2019 Meido-Tek Productions + +# +# GTE data registers (use mfc2, mtc2, lwc2, swc2) +# +.set C2_VXY0, $0 +.set C2_VZ0, $1 +.set C2_VXY1, $2 +.set C2_VZ1, $3 +.set C2_VXY2, $4 +.set C2_VZ2, $5 +.set C2_RGB, $6 +.set C2_OTZ, $7 + +.set C2_IR0, $8 +.set C2_IR1, $9 +.set C2_IR2, $10 +.set C2_IR3, $11 +.set C2_SXY0, $12 +.set C2_SXY1, $13 +.set C2_SXY2, $14 +.set C2_SXYP, $15 + +.set C2_SZ0, $16 +.set C2_SZ1, $17 +.set C2_SZ2, $18 +.set C2_SZ3, $19 +.set C2_RGB0, $20 +.set C2_RGB1, $21 +.set C2_RGB2, $22 + +.set C2_MAC0, $24 +.set C2_MAC1, $25 +.set C2_MAC2, $26 +.set C2_MAC3, $27 +.set C2_IRGB, $28 +.set C2_ORGB, $29 +.set C2_LZCS, $30 +.set C2_LZCR, $31 + +# +# GTE control registers (use cfc2/ctc2) +# +.set C2_R11R12, $0 +.set C2_R13R21, $1 +.set C2_R22R23, $2 +.set C2_R31R32, $3 +.set C2_R33, $4 +.set C2_TRX, $5 +.set C2_TRY, $6 +.set C2_TRZ, $7 + +.set C2_L11L12, $8 +.set C2_L13L21, $9 +.set C2_L22L23, $10 +.set C2_L31L32, $11 +.set C2_L33, $12 +.set C2_RBK, $13 +.set C2_GBK, $14 +.set C2_BBK, $15 + +.set C2_LR1LR2, $16 +.set C2_LR3LG1, $17 +.set C2_LG2LG3, $18 +.set C2_LB1LB2, $19 +.set C2_LB3, $20 +.set C2_RFC, $21 +.set C2_GFC, $22 +.set C2_BFC, $23 + +.set C2_OFX, $24 +.set C2_OFY, $25 +.set C2_H, $26 +.set C2_DQA, $27 +.set C2_DQB, $28 +.set C2_ZSF3, $29 +.set C2_ZSF4, $30 +.set C2_FLAG, $31 diff --git a/libpsn00b/include/hwregs_a.h b/libpsn00b/include/hwregs_a.h deleted file mode 100644 index c78b41a..0000000 --- a/libpsn00b/include/hwregs_a.h +++ /dev/null @@ -1,150 +0,0 @@ -# PSn00bSDK hardware registers definitions -# (C) 2019-2022 Lameguy64, spicyjpeg - MPL licensed - -## Constants - -.set IOBASE, 0x1f80 -.set F_CPU, 33868800 -.set F_GPU, 53222400 - -## GPU - -.set GPU_GP0, 0x1810 # Also GPUREAD -.set GPU_GP1, 0x1814 # Also GPUSTAT - -## CD drive - -.set CD_STAT, 0x1800 -.set CD_CMD, 0x1801 # Also response FIFO -.set CD_DATA, 0x1802 # Also parameters -.set CD_IRQ, 0x1803 - -.set CD_REG0, 0x1800 -.set CD_REG1, 0x1801 -.set CD_REG2, 0x1802 -.set CD_REG3, 0x1803 - -## SPU - -.set SPU_VOICE_BASE, 0x1c00 - -.set SPU_MASTER_VOL_L, 0x1d80 -.set SPU_MASTER_VOL_R, 0x1d82 -.set SPU_REVERB_VOL_L, 0x1d84 -.set SPU_REVERB_VOL_R, 0x1d86 -.set SPU_KEY_ON, 0x1d88 -.set SPU_KEY_OFF, 0x1d8c -.set SPU_FM_MODE, 0x1d90 -.set SPU_NOISE_MODE, 0x1d94 -.set SPU_REVERB_ON, 0x1d98 -.set SPU_CHAN_STATUS, 0x1d9c - -.set SPU_REVERB_ADDR, 0x1da2 -.set SPU_IRQ_ADDR, 0x1da4 -.set SPU_ADDR, 0x1da6 -.set SPU_DATA, 0x1da8 - -.set SPU_CTRL, 0x1daa -.set SPU_DMA_CTRL, 0x1dac -.set SPU_STAT, 0x1dae - -.set SPU_CD_VOL_L, 0x1db0 -.set SPU_CD_VOL_R, 0x1db2 -.set SPU_EXT_VOL_L, 0x1db4 -.set SPU_EXT_VOL_R, 0x1db6 -.set SPU_CURRENT_VOL_L, 0x1db8 -.set SPU_CURRENT_VOL_R, 0x1dba - -.set SPU_VOICE_VOL_L, 0x00 -.set SPU_VOICE_VOL_R, 0x02 -.set SPU_VOICE_FREQ, 0x04 -.set SPU_VOICE_ADDR, 0x06 -.set SPU_VOICE_ADSR_L, 0x08 -.set SPU_VOICE_ADSR_H, 0x0a -.set SPU_VOICE_LOOP, 0x0e - -## MDEC - -.set MDEC0, 0x1820 -.set MDEC1, 0x1824 - -## SPI controller port - -.set JOY_TXRX, 0x1040 -.set JOY_STAT, 0x1044 -.set JOY_MODE, 0x1048 -.set JOY_CTRL, 0x104a -.set JOY_BAUD, 0x104e - -## Serial port - -.set SIO_TXRX, 0x1050 -.set SIO_STAT, 0x1054 -.set SIO_MODE, 0x1058 -.set SIO_CTRL, 0x105a -.set SIO_BAUD, 0x105e - -## IRQ controller - -.set IRQ_STAT, 0x1070 -.set IRQ_MASK, 0x1074 - -## DMA - -.set DMA_DPCR, 0x10f0 -.set DMA_DICR, 0x10f4 - -.set DMA0_MADR, 0x1080 -.set DMA0_BCR, 0x1084 -.set DMA0_CHCR, 0x1088 - -.set DMA1_MADR, 0x1090 -.set DMA1_BCR, 0x1094 -.set DMA1_CHCR, 0x1098 - -.set DMA2_MADR, 0x10a0 -.set DMA2_BCR, 0x10a4 -.set DMA2_CHCR, 0x10a8 - -.set DMA3_MADR, 0x10b0 -.set DMA3_BCR, 0x10b4 -.set DMA3_CHCR, 0x10b8 - -.set DMA4_MADR, 0x10c0 -.set DMA4_BCR, 0x10c4 -.set DMA4_CHCR, 0x10c8 - -.set DMA5_MADR, 0x10d0 -.set DMA5_BCR, 0x10d4 -.set DMA5_CHCR, 0x10d8 - -.set DMA6_MADR, 0x10e0 -.set DMA6_BCR, 0x10e4 -.set DMA6_CHCR, 0x10e8 - -## Timers - -.set TIMER0_VALUE, 0x1100 -.set TIMER0_CTRL, 0x1104 -.set TIMER0_RELOAD, 0x1108 - -.set TIMER1_VALUE, 0x1110 -.set TIMER1_CTRL, 0x1114 -.set TIMER1_RELOAD, 0x1118 - -.set TIMER2_VALUE, 0x1120 -.set TIMER2_CTRL, 0x1124 -.set TIMER2_RELOAD, 0x1128 - -## Memory control - -.set EXP1_ADDR, 0x1000 -.set EXP2_ADDR, 0x1004 -.set EXP1_DELAY_SIZE, 0x1008 -.set EXP3_DELAY_SIZE, 0x100c -.set BIOS_DELAY_SIZE, 0x1010 -.set SPU_DELAY_SIZE, 0x1014 -.set CD_DELAY_SIZE, 0x1018 -.set EXP2_DELAY_SIZE, 0x101c -.set COM_DELAY_CFG, 0x1020 -.set RAM_SIZE_CFG, 0x1060 diff --git a/libpsn00b/include/hwregs_a.inc b/libpsn00b/include/hwregs_a.inc new file mode 100644 index 0000000..c78b41a --- /dev/null +++ b/libpsn00b/include/hwregs_a.inc @@ -0,0 +1,150 @@ +# PSn00bSDK hardware registers definitions +# (C) 2019-2022 Lameguy64, spicyjpeg - MPL licensed + +## Constants + +.set IOBASE, 0x1f80 +.set F_CPU, 33868800 +.set F_GPU, 53222400 + +## GPU + +.set GPU_GP0, 0x1810 # Also GPUREAD +.set GPU_GP1, 0x1814 # Also GPUSTAT + +## CD drive + +.set CD_STAT, 0x1800 +.set CD_CMD, 0x1801 # Also response FIFO +.set CD_DATA, 0x1802 # Also parameters +.set CD_IRQ, 0x1803 + +.set CD_REG0, 0x1800 +.set CD_REG1, 0x1801 +.set CD_REG2, 0x1802 +.set CD_REG3, 0x1803 + +## SPU + +.set SPU_VOICE_BASE, 0x1c00 + +.set SPU_MASTER_VOL_L, 0x1d80 +.set SPU_MASTER_VOL_R, 0x1d82 +.set SPU_REVERB_VOL_L, 0x1d84 +.set SPU_REVERB_VOL_R, 0x1d86 +.set SPU_KEY_ON, 0x1d88 +.set SPU_KEY_OFF, 0x1d8c +.set SPU_FM_MODE, 0x1d90 +.set SPU_NOISE_MODE, 0x1d94 +.set SPU_REVERB_ON, 0x1d98 +.set SPU_CHAN_STATUS, 0x1d9c + +.set SPU_REVERB_ADDR, 0x1da2 +.set SPU_IRQ_ADDR, 0x1da4 +.set SPU_ADDR, 0x1da6 +.set SPU_DATA, 0x1da8 + +.set SPU_CTRL, 0x1daa +.set SPU_DMA_CTRL, 0x1dac +.set SPU_STAT, 0x1dae + +.set SPU_CD_VOL_L, 0x1db0 +.set SPU_CD_VOL_R, 0x1db2 +.set SPU_EXT_VOL_L, 0x1db4 +.set SPU_EXT_VOL_R, 0x1db6 +.set SPU_CURRENT_VOL_L, 0x1db8 +.set SPU_CURRENT_VOL_R, 0x1dba + +.set SPU_VOICE_VOL_L, 0x00 +.set SPU_VOICE_VOL_R, 0x02 +.set SPU_VOICE_FREQ, 0x04 +.set SPU_VOICE_ADDR, 0x06 +.set SPU_VOICE_ADSR_L, 0x08 +.set SPU_VOICE_ADSR_H, 0x0a +.set SPU_VOICE_LOOP, 0x0e + +## MDEC + +.set MDEC0, 0x1820 +.set MDEC1, 0x1824 + +## SPI controller port + +.set JOY_TXRX, 0x1040 +.set JOY_STAT, 0x1044 +.set JOY_MODE, 0x1048 +.set JOY_CTRL, 0x104a +.set JOY_BAUD, 0x104e + +## Serial port + +.set SIO_TXRX, 0x1050 +.set SIO_STAT, 0x1054 +.set SIO_MODE, 0x1058 +.set SIO_CTRL, 0x105a +.set SIO_BAUD, 0x105e + +## IRQ controller + +.set IRQ_STAT, 0x1070 +.set IRQ_MASK, 0x1074 + +## DMA + +.set DMA_DPCR, 0x10f0 +.set DMA_DICR, 0x10f4 + +.set DMA0_MADR, 0x1080 +.set DMA0_BCR, 0x1084 +.set DMA0_CHCR, 0x1088 + +.set DMA1_MADR, 0x1090 +.set DMA1_BCR, 0x1094 +.set DMA1_CHCR, 0x1098 + +.set DMA2_MADR, 0x10a0 +.set DMA2_BCR, 0x10a4 +.set DMA2_CHCR, 0x10a8 + +.set DMA3_MADR, 0x10b0 +.set DMA3_BCR, 0x10b4 +.set DMA3_CHCR, 0x10b8 + +.set DMA4_MADR, 0x10c0 +.set DMA4_BCR, 0x10c4 +.set DMA4_CHCR, 0x10c8 + +.set DMA5_MADR, 0x10d0 +.set DMA5_BCR, 0x10d4 +.set DMA5_CHCR, 0x10d8 + +.set DMA6_MADR, 0x10e0 +.set DMA6_BCR, 0x10e4 +.set DMA6_CHCR, 0x10e8 + +## Timers + +.set TIMER0_VALUE, 0x1100 +.set TIMER0_CTRL, 0x1104 +.set TIMER0_RELOAD, 0x1108 + +.set TIMER1_VALUE, 0x1110 +.set TIMER1_CTRL, 0x1114 +.set TIMER1_RELOAD, 0x1118 + +.set TIMER2_VALUE, 0x1120 +.set TIMER2_CTRL, 0x1124 +.set TIMER2_RELOAD, 0x1128 + +## Memory control + +.set EXP1_ADDR, 0x1000 +.set EXP2_ADDR, 0x1004 +.set EXP1_DELAY_SIZE, 0x1008 +.set EXP3_DELAY_SIZE, 0x100c +.set BIOS_DELAY_SIZE, 0x1010 +.set SPU_DELAY_SIZE, 0x1014 +.set CD_DELAY_SIZE, 0x1018 +.set EXP2_DELAY_SIZE, 0x101c +.set COM_DELAY_CFG, 0x1020 +.set RAM_SIZE_CFG, 0x1060 diff --git a/libpsn00b/include/inline_s.h b/libpsn00b/include/inline_s.h deleted file mode 100644 index 68e0d07..0000000 --- a/libpsn00b/include/inline_s.h +++ /dev/null @@ -1,230 +0,0 @@ -# Inline GTE macros for GNU assembler (as). -# -# Part of the PSn00bSDK Project by Lameguy64. -# 2019 Meido-Tek Productions -# -# Similar to inline_c.h, it does not require running your object file -# through some silly tool. - -.macro nRTPS - nop - nop - cop2 0x0180001 -.endm - -.macro nRTPT - nop - nop - cop2 0x0280030 -.endm - -.macro nNCLIP - nop - nop - cop2 0x1400006 -.endm - -.macro nAVSZ3 - nop - nop - cop2 0x158002D -.endm - -.macro nAVSZ4 - nop - nop - cop2 0x168002E -.endm - -.macro nMVMVA sf mx v cv lm - nop - nop - cop2 0x0400012|(\sf<<19)|(\mx<<17)|(\v<<15)|(\cv<<13)|(\lm<<10) -.endm - -.macro nSQR sf - nop - nop - cop2 0x0A00428|(\sf<<19) -.endm - -.macro nnOP sf lm # extra n to prevent conflict with the nop opcode - nop - nop - cop2 0x170000C|(\sf<<19)|(\lm<<10) -.endm - -.macro nNCS - nop - nop - cop2 0x0C8041E -.endm - -.macro nNCT - nop - nop - cop2 0x0D80420 -.endm - -.macro nNCCS - nop - nop - cop2 0x108041B -.endm - -.macro nNCCT - nop - nop - cop2 0x118043F -.endm - -.macro nNCDS - nop - nop - cop2 0x0E80413 -.endm - -.macro nNCDT - nop - nop - cop2 0x0F80416 -.endm - -.macro nCC - nop - nop - cop2 0x138041C -.endm - -.macro nCDP - nop - nop - cop2 0x1280414 -.endm - -.macro nDCPL - nop - nop - cop2 0x0680029 -.endm - -.macro nDPCS - nop - nop - cop2 0x0780010 -.endm - -.macro nDPCT - nop - nop - cop2 0x0180001 -.endm - -.macro nINTPL - nop - nop - cop2 0x0980011 -.endm - -.macro nGPF sf - nop - nop - cop2 0x190003D|(\sf<<19) -.endm - -.macro nGPL sf - nop - nop - cop2 0x1A0003E|(\sf<<19) -.endm - -# -# Macros without leading nops (for optimized usage) -# -.macro RTPS - cop2 0x0180001 -.endm - -.macro RTPT - cop2 0x0280030 -.endm - -.macro NCLIP - cop2 0x1400006 -.endm - -.macro AVSZ3 - cop2 0x158002D -.endm - -.macro AVSZ4 - cop2 0x168002E -.endm - -.macro MVMVA sf mx v cv lm - cop2 0x0400012|(\sf<<19)|(\mx<<17)|(\v<<15)|(\cv<<13)|(\lm<<10) -.endm - -.macro SQR sf - cop2 0x0A00428|(\sf<<19) -.endm - -.macro OP sf lm - cop2 0x170000C|(\sf<<19)|(\lm<<10) -.endm - -.macro NCS - cop2 0x0C8041E -.endm - -.macro NCT - cop2 0x0D80420 -.endm - -.macro NCCS - cop2 0x108041B -.endm - -.macro NCCT - cop2 0x118043F -.endm - -.macro NCDS - cop2 0x0E80413 -.endm - -.macro NCDT - cop2 0x0F80416 -.endm - -.macro CC - cop2 0x138041C -.endm - -.macro CDP - cop2 0x1280414 -.endm - -.macro DCPL - cop2 0x0680029 -.endm - -.macro DPCS - cop2 0x0780010 -.endm - -.macro DPCT - cop2 0x0180001 -.endm - -.macro INTPL - cop2 0x0980011 -.endm - -.macro GPF sf - cop2 0x190003D|(\sf<<19) -.endm - -.macro GPL sf - cop2 0x1A0003E|(\sf<<19) -.endm diff --git a/libpsn00b/include/inline_s.inc b/libpsn00b/include/inline_s.inc new file mode 100644 index 0000000..68e0d07 --- /dev/null +++ b/libpsn00b/include/inline_s.inc @@ -0,0 +1,230 @@ +# Inline GTE macros for GNU assembler (as). +# +# Part of the PSn00bSDK Project by Lameguy64. +# 2019 Meido-Tek Productions +# +# Similar to inline_c.h, it does not require running your object file +# through some silly tool. + +.macro nRTPS + nop + nop + cop2 0x0180001 +.endm + +.macro nRTPT + nop + nop + cop2 0x0280030 +.endm + +.macro nNCLIP + nop + nop + cop2 0x1400006 +.endm + +.macro nAVSZ3 + nop + nop + cop2 0x158002D +.endm + +.macro nAVSZ4 + nop + nop + cop2 0x168002E +.endm + +.macro nMVMVA sf mx v cv lm + nop + nop + cop2 0x0400012|(\sf<<19)|(\mx<<17)|(\v<<15)|(\cv<<13)|(\lm<<10) +.endm + +.macro nSQR sf + nop + nop + cop2 0x0A00428|(\sf<<19) +.endm + +.macro nnOP sf lm # extra n to prevent conflict with the nop opcode + nop + nop + cop2 0x170000C|(\sf<<19)|(\lm<<10) +.endm + +.macro nNCS + nop + nop + cop2 0x0C8041E +.endm + +.macro nNCT + nop + nop + cop2 0x0D80420 +.endm + +.macro nNCCS + nop + nop + cop2 0x108041B +.endm + +.macro nNCCT + nop + nop + cop2 0x118043F +.endm + +.macro nNCDS + nop + nop + cop2 0x0E80413 +.endm + +.macro nNCDT + nop + nop + cop2 0x0F80416 +.endm + +.macro nCC + nop + nop + cop2 0x138041C +.endm + +.macro nCDP + nop + nop + cop2 0x1280414 +.endm + +.macro nDCPL + nop + nop + cop2 0x0680029 +.endm + +.macro nDPCS + nop + nop + cop2 0x0780010 +.endm + +.macro nDPCT + nop + nop + cop2 0x0180001 +.endm + +.macro nINTPL + nop + nop + cop2 0x0980011 +.endm + +.macro nGPF sf + nop + nop + cop2 0x190003D|(\sf<<19) +.endm + +.macro nGPL sf + nop + nop + cop2 0x1A0003E|(\sf<<19) +.endm + +# +# Macros without leading nops (for optimized usage) +# +.macro RTPS + cop2 0x0180001 +.endm + +.macro RTPT + cop2 0x0280030 +.endm + +.macro NCLIP + cop2 0x1400006 +.endm + +.macro AVSZ3 + cop2 0x158002D +.endm + +.macro AVSZ4 + cop2 0x168002E +.endm + +.macro MVMVA sf mx v cv lm + cop2 0x0400012|(\sf<<19)|(\mx<<17)|(\v<<15)|(\cv<<13)|(\lm<<10) +.endm + +.macro SQR sf + cop2 0x0A00428|(\sf<<19) +.endm + +.macro OP sf lm + cop2 0x170000C|(\sf<<19)|(\lm<<10) +.endm + +.macro NCS + cop2 0x0C8041E +.endm + +.macro NCT + cop2 0x0D80420 +.endm + +.macro NCCS + cop2 0x108041B +.endm + +.macro NCCT + cop2 0x118043F +.endm + +.macro NCDS + cop2 0x0E80413 +.endm + +.macro NCDT + cop2 0x0F80416 +.endm + +.macro CC + cop2 0x138041C +.endm + +.macro CDP + cop2 0x1280414 +.endm + +.macro DCPL + cop2 0x0680029 +.endm + +.macro DPCS + cop2 0x0780010 +.endm + +.macro DPCT + cop2 0x0180001 +.endm + +.macro INTPL + cop2 0x0980011 +.endm + +.macro GPF sf + cop2 0x190003D|(\sf<<19) +.endm + +.macro GPL sf + cop2 0x1A0003E|(\sf<<19) +.endm diff --git a/libpsn00b/include/string.h b/libpsn00b/include/string.h index 365d238..ceee066 100644 --- a/libpsn00b/include/string.h +++ b/libpsn00b/include/string.h @@ -1,13 +1,10 @@ /* - * string.h - * - * Prototypes for string functions of the C library - * - * PSXSDK + * PSn00bSDK standard library + * (C) 2019-2022 PSXSDK authors, Lameguy64, spicyjpeg - MPL licensed */ -#ifndef _STRING_H -#define _STRING_H +#ifndef __STRING_H +#define __STRING_H #ifdef __cplusplus extern "C" { @@ -19,11 +16,6 @@ char *strpbrk(const char *dst , const char *src); char *strtok(char *s , char *set); char *strstr(const char *big , const char *little); -//int strspn(char *s , char *set); -//int strcspn(char *s , char *set); -//int index(char *s , int c); -//int rindex(char *s , int c); - char *strcat(char *s , const char *append); char *strncat(char *s , const char *append, int n); char *strcpy(char *dst , const char *src); @@ -34,9 +26,6 @@ char *strrchr(const char *s , int c); void *memmove(void *dst , const void *src , int n); void *memchr(void *s , int c , int n); - -// Functions converted to ASM - void *memcpy(void *dst , const void *src , int n); void *memset(void *dst , char c , int n); int memcmp(const void *b1 , const void *b2 , int n); @@ -46,4 +35,3 @@ int memcmp(const void *b1 , const void *b2 , int n); #endif #endif - diff --git a/libpsn00b/include/strings.h b/libpsn00b/include/strings.h index e5e88d4..7223ab9 100644 --- a/libpsn00b/include/strings.h +++ b/libpsn00b/include/strings.h @@ -1,18 +1,19 @@ -/* - * strings.h - * - * PSXSDK +/* + * PSn00bSDK standard library + * (C) 2019-2022 PSXSDK authors, Lameguy64, spicyjpeg - MPL licensed */ -#ifndef _STRINGS_H -#define _STRINGS_H +#ifndef __STRINGS_H +#define __STRINGS_H #include -#define bcopy(src,dst,len) memmove(dst,src,len) -#define bzero(ptr, len) memset(ptr, 0, len) -#define bcmp(b1,b2,len) memcmp(b1,b2,len) -#define index(s, c) strchr(s, c) -#define rindex(s, c) strrchr(s, c) +/* Compatibility macros (this header is useless) */ + +#define bcopy(src, dst, len) memmove(dst, src, len) +#define bzero(ptr, len) memset(ptr, 0, len) +#define bcmp(b1, b2, len) memcmp(b1, b2, len) +#define index(s, c) strchr(s, c) +#define rindex(s, c) strrchr(s, c) #endif diff --git a/libpsn00b/psxapi/_initcd.s b/libpsn00b/psxapi/_initcd.s index c3a2861..600d686 100644 --- a/libpsn00b/psxapi/_initcd.s +++ b/libpsn00b/psxapi/_initcd.s @@ -1,7 +1,7 @@ .section .text .set noreorder -.include "hwregs_a.h" +.include "hwregs_a.inc" .global _InitCd .type _InitCd, @function diff --git a/libpsn00b/psxcd/_cd_control.s b/libpsn00b/psxcd/_cd_control.s index c4153ff..5fa336a 100644 --- a/libpsn00b/psxcd/_cd_control.s +++ b/libpsn00b/psxcd/_cd_control.s @@ -1,6 +1,6 @@ .set noreorder -.include "hwregs_a.h" +.include "hwregs_a.inc" .section .text diff --git a/libpsn00b/psxcd/cdgetsector.s b/libpsn00b/psxcd/cdgetsector.s index 9f38e7a..6a29069 100644 --- a/libpsn00b/psxcd/cdgetsector.s +++ b/libpsn00b/psxcd/cdgetsector.s @@ -1,6 +1,6 @@ .set noreorder -.include "hwregs_a.h" +.include "hwregs_a.inc" .section .text diff --git a/libpsn00b/psxcd/cdmix.s b/libpsn00b/psxcd/cdmix.s index 745fb65..40cd181 100644 --- a/libpsn00b/psxcd/cdmix.s +++ b/libpsn00b/psxcd/cdmix.s @@ -1,6 +1,6 @@ .set noreorder -.include "hwregs_a.h" +.include "hwregs_a.inc" .section .text diff --git a/libpsn00b/psxcd/psxcd_asm.s b/libpsn00b/psxcd/psxcd_asm.s index 129bc89..906ab32 100644 --- a/libpsn00b/psxcd/psxcd_asm.s +++ b/libpsn00b/psxcd/psxcd_asm.s @@ -1,6 +1,6 @@ .set noreorder -.include "hwregs_a.h" +.include "hwregs_a.inc" .section .text diff --git a/libpsn00b/psxgpu/readme.txt b/libpsn00b/psxgpu/readme.txt index 2963b6a..67aa110 100644 --- a/libpsn00b/psxgpu/readme.txt +++ b/libpsn00b/psxgpu/readme.txt @@ -17,5 +17,4 @@ Library developer(s): Library header(s): - hwregs_a.h (GNU assembler port defs) psxgpu.h diff --git a/libpsn00b/psxgte/applymatrixlv.s b/libpsn00b/psxgte/applymatrixlv.s index 332a2f8..3180d0f 100644 --- a/libpsn00b/psxgte/applymatrixlv.s +++ b/libpsn00b/psxgte/applymatrixlv.s @@ -1,7 +1,7 @@ .set noreorder -.include "gtereg.h" -.include "inline_s.h" +.include "gtereg.inc" +.include "inline_s.inc" .section .text diff --git a/libpsn00b/psxgte/compmatrixlv.s b/libpsn00b/psxgte/compmatrixlv.s index 95da5e9..2908eb9 100644 --- a/libpsn00b/psxgte/compmatrixlv.s +++ b/libpsn00b/psxgte/compmatrixlv.s @@ -1,7 +1,7 @@ .set noreorder -.include "gtereg.h" -.include "inline_s.h" +.include "gtereg.inc" +.include "inline_s.inc" .set MATRIX_r11r12, 0 .set MATRIX_r13r21, 4 diff --git a/libpsn00b/psxgte/initgeom.s b/libpsn00b/psxgte/initgeom.s index 14ca293..d004ecc 100644 --- a/libpsn00b/psxgte/initgeom.s +++ b/libpsn00b/psxgte/initgeom.s @@ -1,6 +1,6 @@ .set noreorder -.include "gtereg.h" +.include "gtereg.inc" .section .text diff --git a/libpsn00b/psxgte/mulmatrix.s b/libpsn00b/psxgte/mulmatrix.s index 19dabe8..08c79c2 100644 --- a/libpsn00b/psxgte/mulmatrix.s +++ b/libpsn00b/psxgte/mulmatrix.s @@ -1,7 +1,7 @@ .set noreorder -.include "gtereg.h" -.include "inline_s.h" +.include "gtereg.inc" +.include "inline_s.inc" .section .text diff --git a/libpsn00b/psxgte/mulmatrix0.s b/libpsn00b/psxgte/mulmatrix0.s index 874226b..c2fd859 100644 --- a/libpsn00b/psxgte/mulmatrix0.s +++ b/libpsn00b/psxgte/mulmatrix0.s @@ -1,7 +1,7 @@ .set noreorder -.include "gtereg.h" -.include "inline_s.h" +.include "gtereg.inc" +.include "inline_s.inc" .section .text diff --git a/libpsn00b/psxgte/pushpopmatrix.s b/libpsn00b/psxgte/pushpopmatrix.s index d10687a..ca6b992 100644 --- a/libpsn00b/psxgte/pushpopmatrix.s +++ b/libpsn00b/psxgte/pushpopmatrix.s @@ -1,7 +1,7 @@ .set noreorder -.include "gtereg.h" -.include "inline_s.h" +.include "gtereg.inc" +.include "inline_s.inc" .section .text diff --git a/libpsn00b/psxgte/readme.txt b/libpsn00b/psxgte/readme.txt index 13067ee..3242474 100644 --- a/libpsn00b/psxgte/readme.txt +++ b/libpsn00b/psxgte/readme.txt @@ -21,9 +21,9 @@ Library developer(s): Library header(s): - gtereg.h + gtereg.inc inline_c.h - inline_s.h + inline_s.inc psxgte.h diff --git a/libpsn00b/psxgte/scalematrix.s b/libpsn00b/psxgte/scalematrix.s index 3e83800..1b2b6dd 100644 --- a/libpsn00b/psxgte/scalematrix.s +++ b/libpsn00b/psxgte/scalematrix.s @@ -1,7 +1,7 @@ .set noreorder -.include "gtereg.h" -.include "inline_s.h" +.include "gtereg.inc" +.include "inline_s.inc" .section .text diff --git a/libpsn00b/psxgte/scalematrixl.s b/libpsn00b/psxgte/scalematrixl.s index 014b85a..53c2d14 100644 --- a/libpsn00b/psxgte/scalematrixl.s +++ b/libpsn00b/psxgte/scalematrixl.s @@ -1,7 +1,7 @@ .set noreorder -.include "gtereg.h" -.include "inline_s.h" +.include "gtereg.inc" +.include "inline_s.inc" .section .text diff --git a/libpsn00b/psxgte/square0.s b/libpsn00b/psxgte/square0.s index d037b7e..a8ca107 100644 --- a/libpsn00b/psxgte/square0.s +++ b/libpsn00b/psxgte/square0.s @@ -1,7 +1,7 @@ .set noreorder -.include "gtereg.h" -.include "inline_s.h" +.include "gtereg.inc" +.include "inline_s.inc" .section .text diff --git a/libpsn00b/psxgte/squareroot.s b/libpsn00b/psxgte/squareroot.s index a038e18..72198b4 100644 --- a/libpsn00b/psxgte/squareroot.s +++ b/libpsn00b/psxgte/squareroot.s @@ -1,7 +1,7 @@ .set noreorder -.include "gtereg.h" -.include "inline_s.h" +.include "gtereg.inc" +.include "inline_s.inc" .section .text diff --git a/libpsn00b/psxgte/vectornormals.s b/libpsn00b/psxgte/vectornormals.s index 939c4d1..85e94e6 100644 --- a/libpsn00b/psxgte/vectornormals.s +++ b/libpsn00b/psxgte/vectornormals.s @@ -1,8 +1,8 @@ .set noreorder .set noat -.include "gtereg.h" -.include "inline_s.h" +.include "gtereg.inc" +.include "inline_s.inc" .section .text diff --git a/libpsn00b/psxsio/_sio_control.s b/libpsn00b/psxsio/_sio_control.s index bf3b9b9..6378def 100644 --- a/libpsn00b/psxsio/_sio_control.s +++ b/libpsn00b/psxsio/_sio_control.s @@ -1,6 +1,6 @@ .set noreorder -.include "hwregs_a.h" +.include "hwregs_a.inc" .section .text -- cgit v1.2.3