Finalize Meson build system

This commit is contained in:
Nomura 2023-07-18 19:58:03 +02:00
parent aed905c410
commit 040fa22df8
143 changed files with 4782 additions and 2668 deletions

View File

@ -1,364 +0,0 @@
.include "macros/function.inc"
.include "include/itcm.inc"
.extern OSi_ThreadInfo
.extern Unk_021CCFE4
.extern OS_IRQTable
.extern OSi_IrqThreadQueue
.section .itcm,4,1,4
arm_func_start OS_IrqHandler
OS_IrqHandler: ; 0x01FF8000
stmdb sp!, {lr}
mov ip, #0x4000000
add ip, ip, #0x210
ldr r1, [ip, #-8]
cmp r1, #0
beq _01FF801C
b _01FF8020
_01FF801C:
ldmia sp!, {pc}
_01FF8020:
ldmia ip, {r1, r2}
ands r1, r1, r2
beq _01FF8030
b _01FF8034
_01FF8030:
ldmia sp!, {pc}
_01FF8034:
mov r3, #-0x80000000
_01FF8038:
clz r0, r1
bics r1, r1, r3, lsr r0
bne _01FF8038
mov r1, r3, lsr r0
str r1, [ip, #4]
rsbs r0, r0, #0x1f
ldr r1, _01FF8060 ; =0x027E0000
ldr r0, [r1, r0, lsl #2]
ldr lr, _01FF8064 ; =OS_IrqHandler_ThreadSwitch
bx r0
; .align 2, 0
_01FF8060: .word OS_IRQTable
_01FF8064: .word OS_IrqHandler_ThreadSwitch
arm_func_end OS_IrqHandler
arm_func_start OS_IrqHandler_ThreadSwitch
OS_IrqHandler_ThreadSwitch: ; 0x01FF8068
ldr ip, _01FF81D4 ; =0x027E0060
mov r3, #0
ldr ip, [ip]
mov r2, #1
cmp ip, #0
beq _01FF80B8
_01FF8080:
str r2, [ip, #0x64]
str r3, [ip, #0x78]
str r3, [ip, #0x7c]
ldr r0, [ip, #0x80]
str r3, [ip, #0x80]
mov ip, r0
cmp ip, #0
bne _01FF8080
ldr ip, _01FF81D4 ; =0x027E0060
str r3, [ip]
str r3, [ip, #4]
ldr ip, _01FF81D8 ; =0x021CCC80
mov r1, #1
strh r1, [ip]
_01FF80B8:
ldr ip, _01FF81D8 ; =0x021CCC80
ldrh r1, [ip]
cmp r1, #0
beq _01FF80CC
b _01FF80D0
_01FF80CC:
ldr pc, [sp], #4
_01FF80D0:
mov r1, #0
strh r1, [ip]
mov r3, #0xd2
msr cpsr_c, r3
add r2, ip, #8
ldr r1, [r2, #0]
_01FF80E8:
cmp r1, #0
bne _01FF80F4
b _01FF80F8
_01FF80F4:
ldrh r0, [r1, #0x64]
_01FF80F8:
bne _01FF8100
b _01FF8104
_01FF8100:
cmp r0, #1
_01FF8104:
bne _01FF810C
b _01FF8110
_01FF810C:
ldr r1, [r1, #0x68]
_01FF8110:
bne _01FF80E8
cmp r1, #0
bne _01FF8128
_01FF811C:
mov r3, #0x92
msr cpsr_c, r3
ldr pc, [sp], #4
_01FF8128:
ldr r0, [ip, #4]
cmp r1, r0
beq _01FF811C
ldr r3, [ip, #0xc]
cmp r3, #0
beq _01FF8150
stmfd sp!, {r0, r1, ip}
mov lr, pc
bx r3
_01FF814C:
.byte 0x03, 0x10, 0xBD, 0xE8
_01FF8150:
str r1, [ip, #4]
mrs r2, spsr
str r2, [r0, #0]!
stmfd sp!, {r0, r1}
add r0, r0, #0
add r0, r0, #0x48
ldr r1, _01FF81DC ; =0x020C99FC
blx r1
ldmia sp!, {r0, r1}
ldmib sp!, {r2, r3}
stmib r0!, {r2, r3}
ldmib sp!, {r2, r3, ip, lr}
stmib r0!, {r2, r3, r4, r5, r6, r7, r8, sb, sl, fp, ip, sp, lr} ^
stmib r0!, {lr}
mov r3, #0xd3
msr cpsr_c, r3
stmib r0!, {sp}
stmdb sp!, {r1}
add r0, r1, #0
add r0, r0, #0x48
ldr r1, _01FF81E0 ; =0x020C9A3C
blx r1
ldmia sp!, {r1}
ldr sp, [r1, #0x44]
mov r3, #0xd2
msr cpsr_c, r3
ldr r2, [r1, #0]!
msr spsr_fc, r2
ldr lr, [r1, #0x40]
ldmib r1, {r0, r1, r2, r3, r4, r5, r6, r7, r8, sb, sl, fp, ip, sp, lr} ^
mov r0, r0
stmda sp!, {r0, r1, r2, r3, ip, lr}
ldmia sp!, {pc}
; .align 2, 0
_01FF81D4: .word OSi_IrqThreadQueue
_01FF81D8: .word OSi_ThreadInfo
_01FF81DC: .word 0x020C99FC
_01FF81E0: .word 0x020C9A3C
arm_func_end OS_IrqHandler_ThreadSwitch
arm_func_start OSi_DoResetSystem
OSi_DoResetSystem: ; 0x01FF81E4
stmfd sp!, {r3, lr}
ldr r0, _01FF8210 ; =0x021CCFE4
_01FF81EC:
ldrh r1, [r0]
cmp r1, #0
beq _01FF81EC
ldr r0, _01FF8214 ; =0x04000208
mov r1, #0
strh r1, [r0]
bl OSi_ReloadRomData
bl OSi_DoBoot
ldmia sp!, {r3, pc}
; .align 2, 0
_01FF8210: .word Unk_021CCFE4
_01FF8214: .word 0x04000208
arm_func_end OSi_DoResetSystem
arm_func_start OSi_DoBoot
OSi_DoBoot: ; 0x01FF8218
mov ip, #0x4000000
str ip, [ip, #0x208]
ldr r1, _01FF82C4 ; =0x027E0000
add r1, r1, #0x3fc0
add r1, r1, #0x3c
mov r0, #0
str r0, [r1, #0]
ldr r1, _01FF82C8 ; =0x04000180
_01FF8238:
ldrh r0, [r1]
and r0, r0, #0xf
cmp r0, #1
bne _01FF8238
mov r0, #0x100
strh r0, [r1]
mov r0, #0
ldr r3, _01FF82CC ; =0x027FFD9C
ldr r4, [r3, #0]
ldr r1, _01FF82D0 ; =0x027FFD80
mov r2, #0x80
bl OSi_CpuClear32
str r4, [r3, #0]
ldr r1, _01FF82D4 ; =0x027FFF80
mov r2, #0x18
bl OSi_CpuClear32
ldr r1, _01FF82D8 ; =0x027FFF98
strh r0, [r1]
ldr r1, _01FF82DC ; =0x027FFF9C
mov r2, #0x64
bl OSi_CpuClear32
ldr r1, _01FF82C8 ; =0x04000180
_01FF8290:
ldrh r0, [r1]
and r0, r0, #0xf
cmp r0, #1
beq _01FF8290
mov r0, #0
strh r0, [r1]
ldr r3, _01FF82E0 ; =0x027FFE00
ldr ip, [r3, #0x24]
mov lr, ip
ldr fp, _01FF82D4 ; =0x027FFF80
ldmia fp, {r0, r1, r2, r3, r4, r5, r6, r7, r8, sb, sl}
mov fp, #0
bx ip
; .align 2, 0
_01FF82C4: .word OS_IRQTable
_01FF82C8: .word 0x04000180
_01FF82CC: .word 0x027FFD9C
_01FF82D0: .word 0x027FFD80
_01FF82D4: .word 0x027FFF80
_01FF82D8: .word 0x027FFF98
_01FF82DC: .word 0x027FFF9C
_01FF82E0: .word 0x027FFE00
arm_func_end OSi_DoBoot
arm_func_start OSi_CpuClear32
OSi_CpuClear32: ; 0x01FF82E4
add ip, r1, r2
_01FF82E8:
cmp r1, ip
blt _01FF82F4
b _01FF82F8
_01FF82F4:
stmia r1!, {r0}
_01FF82F8:
blt _01FF82E8
bx lr
arm_func_end OSi_CpuClear32
arm_func_start OSi_ReloadRomData
OSi_ReloadRomData: ; 0x01FF8300
stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
ldr r1, _01FF83A0 ; =0x027FFC2C
ldr r4, [r1, #0]
cmp r4, #0x8000
blo _01FF8324
mov r0, r4
add r1, r1, #0x1d4
mov r2, #0x160
bl OSi_ReadCardRom32
_01FF8324:
ldr r0, _01FF83A4 ; =0x027FFE20
ldr r5, [r0, #0]
ldr r6, [r0, #8]
ldr r7, [r0, #0xc]
ldr r8, [r0, #0x10]
ldr sb, [r0, #0x18]
ldr sl, [r0, #0x1c]
bl OS_DisableInterrupts
mov fp, r0
bl DC_StoreAll
bl DC_InvalidateAll
mov r0, fp
bl OS_RestoreInterrupts
bl IC_InvalidateAll
bl DC_WaitWriteBufferEmpty
add r5, r5, r4
cmp r5, #0x8000
bhs _01FF837C
rsb r0, r5, #0x8000
add r6, r6, r0
sub r7, r7, r0
mov r5, #0x8000
_01FF837C:
mov r0, r5
mov r1, r6
mov r2, r7
bl OSi_ReadCardRom32
mov r1, sb
mov r2, sl
add r0, r8, r4
bl OSi_ReadCardRom32
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
; .align 2, 0
_01FF83A0: .word 0x027FFC2C
_01FF83A4: .word 0x027FFE20
arm_func_end OSi_ReloadRomData
arm_func_start OSi_ReadCardRom32
OSi_ReadCardRom32: ; 0x01FF83A8
stmfd sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
ldr r4, _01FF846C ; =0x027FFE60
ldr r3, _01FF8470 ; =0x000001FF
ldr r5, [r4, #0]
and r4, r0, r3
bic r3, r5, #0x7000000
ldr r5, _01FF8474 ; =0x040001A4
orr r3, r3, #0xa1000000
rsb ip, r4, #0
_01FF83CC:
ldr r4, [r5, #0]
tst r4, #-0x80000000
bne _01FF83CC
ldr r7, _01FF8478 ; =0x040001A1
mov r4, #0x80
strb r4, [r7]
cmp ip, r2
add r0, r0, ip
ldmgeia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
ldr r4, _01FF847C ; =0x04100010
mov sb, r0, lsr #8
mov r6, #0xb7
mov r5, #0
_01FF8400:
strb r6, [r7, #7]
mov lr, r0, lsr #0x18
strb lr, [r7, #8]
mov lr, r0, lsr #0x10
strb lr, [r7, #9]
strb sb, [r7, #0xa]
strb r0, [r7, #0xb]
strb r5, [r7, #0xc]
strb r5, [r7, #0xd]
strb r5, [r7, #0xe]
str r3, [r7, #3]
_01FF842C:
ldr r8, [r7, #3]
tst r8, #0x800000
beq _01FF8450
cmp ip, #0
ldr lr, [r4]
blt _01FF844C
cmp ip, r2
strlt lr, [r1, ip]
_01FF844C:
add ip, ip, #4
_01FF8450:
tst r8, #-0x80000000
bne _01FF842C
cmp ip, r2
add sb, sb, #2
add r0, r0, #0x200
blt _01FF8400
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
; .align 2, 0
_01FF846C: .word 0x027FFE60
_01FF8470: .word 0x000001FF
_01FF8474: .word 0x040001A4
_01FF8478: .word 0x040001A1
_01FF847C: .word 0x04100010
arm_func_end OSi_ReadCardRom32

View File

@ -1,68 +0,0 @@
.include "macros/function.inc"
.extern Unk_020E4558
.extern Unk_020E4560
.extern Unk_020E4568
.extern Unk_020E4570
.extern Unk_020E4578
.extern Unk_020E4580
.extern Unk_020E4588
.extern Unk_020E4590
.extern Unk_020E45A0
.extern Unk_020E45B4
.extern Unk_020E45CC
.extern Unk_020E45D4
.extern Unk_020E45E4
.extern Unk_020E45EC
.extern Unk_020E4600
.extern Unk_020E4608
.extern Unk_020E4610
.extern Unk_020E4628
.extern Unk_020E4644
.extern Unk_020E465C
.section .exception, 4
.global Exception_Table_Index
Exception_Table_Index: ; 0x020E4670
.incbin "incbin/main_etable.bin", 0x118, 0x164
.word Unk_020E4558
.incbin "incbin/main_etable.bin",0x280,0x68
.word Unk_020E4560
.incbin "incbin/main_etable.bin",0x2EC,0x2C
.word Unk_020E4568
.incbin "incbin/main_etable.bin",0x31C,0x8C
.word Unk_020E4570
.incbin "incbin/main_etable.bin",0x3AC,0x8
.word Unk_020E4578
.incbin "incbin/main_etable.bin",0x3B8,0x2C
.word Unk_020E4580
.incbin "incbin/main_etable.bin",0x3E8,0x80
.word Unk_020E4588
.incbin "incbin/main_etable.bin",0x46C,0x2C
.word Unk_020E4590
.incbin "incbin/main_etable.bin",0x49C,0x2C
.word Unk_020E45A0
.incbin "incbin/main_etable.bin",0x4CC,0x68
.word Unk_020E45B4
.incbin "incbin/main_etable.bin",0x538,0x2C
.word Unk_020E45CC
.incbin "incbin/main_etable.bin",0x568,0x8
.word Unk_020E45D4
.incbin "incbin/main_etable.bin",0x574,0x8
.word Unk_020E45E4
.incbin "incbin/main_etable.bin",0x580,0x14
.word Unk_020E45EC
.incbin "incbin/main_etable.bin",0x598,0x8
.word Unk_020E4600
.incbin "incbin/main_etable.bin",0x5A4,0x8
.word Unk_020E4608
.incbin "incbin/main_etable.bin",0x5B0,0x38
.word Unk_020E4610
.incbin "incbin/main_etable.bin",0x5EC,0x8
.word Unk_020E4628
.incbin "incbin/main_etable.bin",0x5F8,0x14
.word Unk_020E4644
.incbin "incbin/main_etable.bin",0x610,0x8
.word Unk_020E465C
.incbin "incbin/main_etable.bin",0x61C,0xCC

4
asm/meson.build Normal file
View File

@ -0,0 +1,4 @@
pokeplatinum_asm = files(
'overlay014/ov14_022248A4.s',
'dtcm.s'
)

29
build.sh Normal file
View File

@ -0,0 +1,29 @@
#!/usr/bin/env bash
# Set up env variable pointing to CodeWarrior license file
export LM_LICENSE_FILE=$(pwd)/tools/cw/license.dat
# Set up env variable to show % of completion during ninja build
export NINJA_STATUS="[%p %f/%t] "
cd build
# Build rom
ninja
export NINJA_STATUS="
"
# Fix dependency paths on non-Windows platforms
ninja fixdep
export NINJA_STATUS=""
# Fix rom header secure area CRC
ninja fixrom
export NINJA_STATUS="
"
# Checksum verification
ninja test

3
clean.sh Normal file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env bash
ninja -C build clean

35
config.sh Normal file
View File

@ -0,0 +1,35 @@
#!/usr/bin/env bash
is_wsl_accessing_windows() {
kernel=$(uname -r)
script_path=$(realpath "$0")
if echo "$kernel" | grep -q Microsoft && echo "$script_path" | grep -qE '^/mnt/'; then
return 0
else
return 1
fi
}
# Set up env variable pointing to CodeWarrior license file
export LM_LICENSE_FILE=$(pwd)/tools/cw/license.dat
# Bootstrap machine file pointing to the repo
echo "[constants]" > meson/root.ini
echo "root = '$(pwd)'" | sed s#\'/c#\'C:#g >> meson/root.ini
# Select toolchain
if [ "$(uname -s)" = "Linux" ]; then
if is_wsl_accessing_windows; then
native_file="native.ini"
cross_file="cross.ini"
else
native_file="native_wine.ini"
cross_file="cross_wine.ini"
fi
else
native_file="native.ini"
cross_file="cross.ini"
fi
# Launch meson
meson setup build --native-file=meson/"$native_file" --native-file=meson/root.ini --cross-file=meson/"$cross_file" --cross-file=meson/root.ini

View File

@ -2,7 +2,7 @@
#define POKEPLATINUM_FUNCPTR_020146F4_H
#include "library/spl.h"
#include "spl.h"
typedef void (* UnkFuncPtr_020146F4)(UnkSPLStruct6 *);

View File

@ -1,7 +0,0 @@
#ifndef POKEPLATINUM_THUMB_H
#define POKEPLATINUM_THUMB_H
// doesn't work for asm functions if included in a precompiled header for some reason
#pragma thumb on
#endif // POKEPLATINUM_THUMB_H

View File

@ -20,7 +20,7 @@
#include "overlay016/struct_ov16_02265BBC.h"
#include "overlay104/struct_ov104_0223F9E0.h"
#include "library/spl.h"
#include "spl.h"
UnkStruct_ov12_0221FCDC * ov12_0221FCDC(int param0);
void ov12_0221FDC0(UnkStruct_ov12_0221FCDC * param0, BOOL param1);

View File

@ -4,7 +4,7 @@
#include "struct_decls/struct_02006C24_decl.h"
#include "struct_decls/struct_02014014_decl.h"
#include "library/spl.h"
#include "spl.h"
UnkStruct_02014014 * ov12_022237F0(int param0, int param1, int param2);
UnkStruct_02014014 * ov12_02223818(int param0, int param1, int param2, int param3);

View File

@ -2,7 +2,7 @@
#define POKEPLATINUM_OV12_0222389C_H
#include "library/spl.h"
#include "spl.h"
void ov12_022238DC(UnkSPLStruct6 * param0);
void ov12_022238E0(UnkSPLStruct6 * param0);

View File

@ -3,7 +3,7 @@
#include "overlay012/struct_ov12_02225640.h"
#include "library/spl.h"
#include "spl.h"
void ov12_02224F14(UnkSPLStruct6 * param0);
s8 ov12_02224FC4(UnkStruct_ov12_02225640 * param0);

View File

@ -3,7 +3,7 @@
#include "overlay012/struct_ov12_02225640.h"
#include "library/spl.h"
#include "spl.h"
void ov12_022255D4(int param0, UnkSPLStruct6 * param1, UnkStruct_ov12_02225640 * param2);
int ov12_022255EC(int param0);

View File

@ -3,7 +3,7 @@
#include "overlay012/struct_ov12_02225640.h"
#include "library/spl.h"
#include "spl.h"
void ov12_0222584C(int param0, UnkSPLStruct6 * param1, UnkStruct_ov12_02225640 * param2);

View File

@ -4,7 +4,7 @@
#include "struct_decls/struct_02014014_decl.h"
#include "overlay077/struct_ov77_021D6CFC_decl.h"
#include "library/spl.h"
#include "spl.h"
const int ov77_021D6CB8(void);
UnkStruct_02014014 * ov77_021D6CBC(UnkStruct_ov77_021D6CFC * param0);

View File

@ -4,7 +4,7 @@
#include "struct_decls/struct_02014014_decl.h"
#include "overlay119/struct_ov119_021D1930.h"
#include "library/spl.h"
#include "spl.h"
typedef struct {
UnkStruct_ov119_021D1930 unk_00;

View File

@ -9,7 +9,6 @@
#include <stddef.h>
#include "global/config.h" // MUST COME BEFORE ANY OTHER GAMEFREAK HEADERS
//#include "constants/global.h"
#include "global/pm_version.h"
#include "global/assert.h"
#include "constants/pokemon.h"

View File

@ -4,7 +4,7 @@
#include "struct_decls/struct_02014014_decl.h"
#include "struct_defs/struct_0207C894.h"
#include "library/spl.h"
#include "spl.h"
typedef struct {
UnkStruct_0207C894 unk_00;

View File

@ -6,7 +6,7 @@
#include "functypes/funcptr_020146F4.h"
#include "struct_decls/struct_020203AC_decl.h"
#include "library/spl.h"
#include "spl.h"
#include <nnsys.h>
#include <nitro/fx/fx.h>

View File

@ -0,0 +1,25 @@
libdwcac_srcs = files(
'asm/dwc_ac.s',
'asm/beacon.s',
'asm/callback.s',
'asm/connect.s',
'asm/close.s',
'asm/error.s',
'asm/makelist.s',
'asm/retry.s',
'asm/search_dwcac.s',
'asm/start.s',
'asm/test.s',
'asm/shop_usb.s',
'asm/wds.s',
'asm/nintendospot.s'
)
libdwcac = static_library('dwcac',
sources: libdwcac_srcs,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
nitrodwc_libs += libdwcac

View File

@ -0,0 +1,21 @@
libdwcaccount_srcs = files(
'src/dwc_init.c',
'src/dwc_account.c'
)
libdwcaccount = static_library('dwcaccount',
sources: [libdwcaccount_srcs],
c_args: [c_args, sdk_args],
dependencies: [
msl_dep,
gamespy_dep,
nitrosdk_dep,
nitrosystem_dep,
nitrowifi_dep
],
include_directories: [public_includes],
c_pch: nitro_pch,
pic: false
)
nitrodwc_libs += libdwcaccount

View File

@ -0,0 +1,4 @@
libdwcaccount_srcs = files(
'dwc_init.c',
'dwc_account.c'
)

View File

@ -0,0 +1,24 @@
libdwcauth_srcs = files(
'asm/dwc_auth.s',
'asm/dwc_cal.s',
'asm/dwc_http.s',
'asm/dwc_netcheck.s',
'asm/dwc_nastime.s',
'asm/dwc_svl.s',
'asm/util_base64.s',
'asm/dwc_ca_cybertrust.s',
'asm/dwc_ca_nas_self.s',
'asm/dwc_ca_thawte_premiumserver.s',
'asm/dwc_ca_thawte_server.s',
'asm/dwc_ca_verisign.s',
'asm/dwc_ca_globalsign.s'
)
libdwcauth = static_library('dwcauth',
sources: libdwcauth_srcs,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
nitrodwc_libs += libdwcauth

View File

@ -0,0 +1,32 @@
libdwcbase_srcs = files(
'src/dwc_error.c',
'src/dwc_memfunc.c',
'src/dwc_connectinet.c',
'src/dwc_nasfunc.c',
'src/dwc_nd.c',
'asm/dwc_common.s',
'src/dwc_main.c',
'src/dwc_login.c',
'src/dwc_friend.c',
'src/dwc_match.c',
'src/dwc_transport.c',
'src/dwc_ghttp.c'
)
libdwcbase = static_library('dwcbase',
sources: libdwcbase_srcs,
c_args: [c_args, sdk_args],
nasm_args: asm_args,
dependencies: [
msl_dep,
gamespy_dep,
nitrosdk_dep,
nitrosystem_dep,
nitrowifi_dep
],
c_pch: nitro_pch,
include_directories: public_includes,
pic: false
)
nitrodwc_libs += libdwcbase

View File

@ -0,0 +1,14 @@
libdwcbm_srcs = files(
'asm/dwc_backup.s',
'asm/dwc_bm_init.s',
'asm/util_wifiidtool.s'
)
libdwcbm = static_library('dwcbm',
sources: libdwcbm_srcs,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
nitrodwc_libs += libdwcbm

View File

@ -0,0 +1,10 @@
libdwcenc_srcs = files('asm/dwc_encsession.s')
libdwcenc = static_library('dwcenc',
sources: libdwcenc_srcs,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
nitrodwc_libs += libdwcenc

View File

@ -0,0 +1,8 @@
libdwcilobby_asm = files(
'dwci_lobbybase.s',
'dwci_lobbynewhandler.s',
'dwci_lobbycallback.s',
'dwci_lobbydata.s'
)
libdwcilobby_asm_includes = meson.current_source_dir()

View File

@ -0,0 +1,15 @@
libdwcilobby_srcs = files(
'asm/dwci_lobbybase.s',
'asm/dwci_lobbynewhandler.s',
'asm/dwci_lobbycallback.s',
'asm/dwci_lobbydata.s'
)
libdwcilobby = static_library('dwcilobby',
sources: libdwcilobby_srcs,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
nitrodwc_libs += libdwcilobby

View File

@ -0,0 +1,11 @@
subdir('ac')
subdir('account')
subdir('auth')
subdir('base')
subdir('bm')
subdir('enc')
subdir('ilobby')
subdir('nd')
subdir('nhttp')
subdir('ppwlobby')
subdir('util')

View File

@ -0,0 +1,24 @@
libdwcnd_srcs = files(
'asm/dwci_nd_ca_nasself.s',
'asm/dwci_nd_attr.s',
'asm/dwci_nd_base64.s',
'asm/dwci_nd_bgnend.s',
'asm/dwci_nd_cancel.s',
'asm/dwci_nd_dwc_nitro.s',
'asm/dwci_nd_fileapi.s',
'asm/dwci_nd_filecount.s',
'asm/dwci_nd_fileget.s',
'asm/dwci_nd_filelist.s',
'asm/dwci_nd_os_nitro.s',
'asm/dwci_nd_stdlib_nitro.s',
'asm/dwci_nd_string.s'
)
libdwcnd = static_library('dwcnd',
sources: libdwcnd_srcs,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
nitrodwc_libs += libdwcnd

View File

@ -0,0 +1,23 @@
libdwcnhttp_srcs = files(
'asm/nhttp_bgnend.s',
'asm/nhttp_control.s',
'asm/nhttp_list.s',
'asm/nhttp_os_nitro.s',
'asm/nhttp_recvbuf.s',
'asm/nhttp_request.s',
'asm/nhttp_resolve_nitro.s',
'asm/nhttp_response.s',
'asm/nhttp_socket_nitro.s',
'asm/nhttp_stdlib_nitro.s',
'asm/nhttp_thread.s',
'asm/nhttp_token.s'
)
libdwcnhttp = static_library('dwcnhttp',
sources: libdwcnhttp_srcs,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
nitrodwc_libs += libdwcnhttp

View File

@ -0,0 +1,10 @@
libdwcppwlobby_asm = files(
'ppw_lobby.s',
'ppw_innerinfo.s',
'dwci_encsession.s',
'ppw_parser.s',
'ppw_profile.s',
'dwci_lobby.s'
)
libdwcppwlobby_asm_includes = meson.current_source_dir()

View File

@ -0,0 +1,17 @@
libdwcppwlobby_srcs = files(
'asm/ppw_lobby.s',
'asm/ppw_innerinfo.s',
'asm/dwci_encsession.s',
'asm/ppw_parser.s',
'asm/ppw_profile.s',
'asm/dwci_lobby.s'
)
libdwcppwlobby = static_library('dwcppwlobby',
sources: libdwcppwlobby_srcs,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
nitrodwc_libs += libdwcppwlobby

View File

@ -0,0 +1,90 @@
libdwcutil_srcs = files(
'asm/aoss.s',
'asm/aosslink.s',
'asm/apc.s',
'asm/atermset.s',
'asm/anime.s',
'asm/button.s',
'asm/comment.s',
'asm/common.s',
'asm/focus.s',
'asm/headline.s',
'asm/icon.s',
'asm/keyboard.s',
'asm/keyboard10.s',
'asm/libaoss.s',
'asm/main_dwcutil.s',
'asm/message.s',
'asm/move.s',
'asm/rakuraku.s',
'asm/sceneend.s',
'asm/sceneinit.s',
'asm/scenemenu.s',
'asm/sceneopterase.s',
'asm/sceneopterase1.s',
'asm/sceneoptinfo.s',
'asm/sceneoptmenu.s',
'asm/sceneoptmovcomm.s',
'asm/sceneoptmovcomplete.s',
'asm/sceneoptmovconfirm.s',
'asm/sceneoptmovdisconnect.s',
'asm/sceneoptmovfailure.s',
'asm/sceneoptmovuser.s',
'asm/sceneoptmovwait.s',
'asm/scenesetaossbutton.s',
'asm/scenesetaosscomplete.s',
'asm/scenesetaplist.s',
'asm/scenesetedit32.s',
'asm/sceneseteditaddress.s',
'asm/sceneseterror.s',
'asm/scenesetlist.s',
'asm/scenesetlistsave.s',
'asm/scenesetrakubutton.s',
'asm/scenesetrakucomplete.s',
'asm/scenesetrakuready.s',
'asm/scenesetsearch.s',
'asm/scenesetselectap.s',
'asm/scenesetselectway.s',
'asm/scenesettest.s',
'asm/scenesettestcomplete.s',
'asm/scenesettestconfirm.s',
'asm/scenesetusbcomplete.s',
'asm/scenesetusbready.s',
'asm/screen.s',
'asm/scrollbar.s',
'asm/search_dwcutil.s',
'asm/setting.s',
'asm/sound.s',
'asm/step.s',
'asm/usbap.s',
'asm/window.s',
'asm/dwc_mov_mbp.s',
'asm/dwc_mov_wh.s',
'asm/dwc_moveid.s',
'asm/archive.s',
'asm/cell.s',
'asm/cellinfo.s',
'asm/deque.s',
'asm/effect.s',
'asm/font.s',
'asm/foundation.s',
'asm/graphics.s',
'asm/heap_dwcutil.s',
'asm/input.s',
'asm/interrupt.s',
'asm/list_dwcutil.s',
'asm/obj.s',
'asm/objvram.s',
'asm/str.s',
'asm/sub.s',
'asm/task.s'
)
libdwcutil = static_library('dwcutil',
sources: libdwcutil_srcs,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
nitrodwc_libs += libdwcutil

63
lib/external/NitroDWC/meson.build vendored Normal file
View File

@ -0,0 +1,63 @@
project('NitroDWC', ['c', 'nasm'])
# Compiler flags
c_args = [
'-O4,p',
'-proc', 'arm946e',
'-enum', 'int',
'-lang', 'c99',
'-Cpp_exceptions', 'off',
'-gccext,on',
'-msgstyle', 'gcc',
'-ipa', 'file',
'-interworking',
'-inline', 'on,noauto',
'-char', 'signed',
'-nosyspath',
'-nostdinc'
]
asm_args = [
'-proc', 'arm5TE',
'-gccinc'
]
sdk_args = [
'-DSDK_CW_FORCE_EXPORT_SUPPORT',
'-DSDK_TS',
'-DSDK_4M',
'-DSDK_ARM9',
'-DSDK_CW',
'-DSDK_FINALROM',
'-DSDK_CODE_ARM',
'-DNNS_FINALROM'
]
# Dependencies
msl_dep = dependency('msl', fallback: ['msl', 'msl_dep'])
gamespy_dep = dependency('gamespy', fallback : ['gamespy', 'gamespy_dep'])
nitrosdk_dep = dependency('NitroSDK', fallback : ['NitroSDK', 'nitrosdk_dep'])
nitrosystem_dep = dependency('NitroSystem', fallback : ['NitroSystem', 'nitrosystem_dep'])
nitrowifi_dep = dependency('NitroWiFi', fallback : ['NitroWiFi', 'nitrowifi_dep'])
# Public includes
public_includes = include_directories('include')
nitro_pch = subproject('NitroSDK').get_variable('nitro_pch')
# Libraries
nitrodwc_libs = []
subdir('libraries')
# Own dependency for consumers
nitrodwc_dep = declare_dependency(
compile_args: sdk_args,
dependencies: [
msl_dep,
gamespy_dep,
nitrosdk_dep,
nitrosystem_dep,
nitrowifi_dep
],
include_directories: public_includes,
link_with: nitrodwc_libs
)

View File

@ -0,0 +1 @@
subdir('nitro/fx')

View File

@ -0,0 +1,9 @@
fx_const_csv = files('fx_const.csv')
gen_fx_const_py = find_program('gen_fx_const.py', native: true)
fx_const_h = custom_target('fx_const.h',
input: fx_const_csv,
output: 'fx_const.h',
command: [gen_fx_const_py, '@INPUT@', '@OUTPUT@'],
build_by_default: true
)

View File

@ -0,0 +1,2 @@
ichneumon_sub = files('ichneumon_sub.sbin')
ichneumon_sub_defs = files('ichneumon_sub_defs.sbin')

View File

@ -0,0 +1,22 @@
libcard_srcs = files(
'src/card_common.c',
'src/card_spi.c',
'src/card_backup.c',
'src/card_rom.c',
'src/card_request.c',
'asm/card_pullout.s',
)
libcard_internal_includes = include_directories('src/include')
libcard = static_library('card',
sources: [libcard_srcs, fx_const_h],
c_args: [c_args, sdk_args],
include_directories: [public_includes, libcard_internal_includes],
nasm_args: asm_args,
dependencies: msl_dep,
c_pch: nitro_pch,
pic: false
)
nitrosdk_libs += libcard

View File

@ -0,0 +1,12 @@
libcp_srcs = files('src/cp_context.c')
libcp = static_library('cp',
sources: [libcp_srcs, fx_const_h],
c_args: [c_args, sdk_args],
dependencies: msl_dep,
include_directories: public_includes,
c_pch: nitro_pch,
pic: false
)
nitrosdk_libs += libcp

View File

@ -0,0 +1,26 @@
libctrdg_srcs = files(
'src/ctrdg.c',
'src/ctrdg_proc.c',
'src/ctrdg_backup.c',
'src/ctrdg_flash_common.c',
'src/ctrdg_flash_AT29LV512.c',
'src/ctrdg_flash_LE26FV10N1TS-10.c',
'src/ctrdg_flash_LE39FW512.c',
'src/ctrdg_flash_MX29L010.c',
'src/ctrdg_flash_MX29L512.c',
'src/ctrdg_sram.c',
'src/ctrdg_task.c'
)
libctrdg_internal_includes = include_directories('src/include')
libctrdg = static_library('ctrdg',
sources: [libctrdg_srcs, fx_const_h],
c_args: [c_args, sdk_args],
dependencies: msl_dep,
include_directories: [public_includes, libctrdg_internal_includes],
c_pch: nitro_pch,
pic: false
)
nitrosdk_libs += libctrdg

View File

@ -0,0 +1,16 @@
libdgt_srcs = files(
'asm/hash1.s',
'asm/hash2.s',
'asm/hmac.s',
'asm/sha1s-arm4cw.s'
)
libdgt = static_library('dgt',
sources: libdgt_srcs,
c_args: [c_args, sdk_args],
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
nitrosdk_libs += libdgt

View File

@ -0,0 +1,21 @@
libfs_srcs = files(
'src/fs_command.c',
'src/fs_command_default.c',
'src/fs_archive.c',
'src/fs_file.c',
'src/fs_rom.c',
'src/fs_overlay.c'
)
libfs_internal_includes = include_directories('src/include')
libfs = static_library('fs',
sources: [libfs_srcs, fx_const_h],
c_args: [c_args, sdk_args],
dependencies: msl_dep,
include_directories: [public_includes, libfs_internal_includes],
c_pch: nitro_pch,
pic: false
)
nitrosdk_libs += libfs

View File

@ -0,0 +1,23 @@
libfx_srcs = files(
'src/fx_sincos.c',
'src/fx_mtx22.c',
'src/fx_mtx33.c',
'src/fx_mtx43.c',
'src/fx_mtx44.c',
'src/fx_cp.c',
'src/fx_vec.c',
'src/fx_trig.c',
'src/fx_atanidx.c',
'src/fx.c'
)
libfx = static_library('fx',
sources: [libfx_srcs, fx_const_h],
c_args: [c_args, sdk_args],
dependencies: msl_dep,
include_directories: [public_includes],
c_pch: nitro_pch,
pic: false
)
nitrosdk_libs += libfx

View File

@ -0,0 +1,28 @@
libgx_srcs = files(
'src/gx.c',
'src/gxstate.c',
'src/gx_vramcnt.c',
'src/gx_bgcnt.c',
'src/g2.c',
'src/g3b.c',
'src/g3imm.c',
'src/g3x.c',
'src/g3_util.c',
'src/gx_load2d.c',
'src/gx_load3d.c',
'src/g3.c',
'src/gxasm.c'
)
libgx_internal_includes = include_directories('src/include')
libgx = static_library('gx',
sources: [libgx_srcs, fx_const_h],
c_args: [c_args, sdk_args],
dependencies: msl_dep,
include_directories: [public_includes, libgx_internal_includes],
c_pch: nitro_pch,
pic: false
)
nitrosdk_libs += libgx

View File

@ -0,0 +1,14 @@
crt0_src = files('src/crt0.c')
# Build dummy lib so that we can compile crt0.c
dummy_crt0 = static_library('dummycrt0',
sources: [crt0_src, fx_const_h],
c_args: [c_args, sdk_args],
dependencies: msl_dep,
include_directories: [public_includes],
c_pch: nitro_pch,
pic: false
)
# Extract crt0.o
crt0_obj = dummy_crt0.extract_all_objects(recursive: true)

View File

@ -0,0 +1,16 @@
libmath_srcs = files(
'src/math.c',
'src/dgt.c',
'src/crc.c'
)
libmath = static_library('math',
sources: [libmath_srcs, fx_const_h],
c_args: [c_args, sdk_args],
dependencies: msl_dep,
include_directories: [public_includes],
c_pch: nitro_pch,
pic: false
)
nitrosdk_libs += libmath

View File

@ -0,0 +1,23 @@
libmb_srcs = files(
'src/mb_parent.c',
'src/mb_fileinfo.c',
'src/mb_common.c',
'src/mb_gameinfo.c',
'src/mb_wm_base.c',
'src/mb_cache.c',
'src/mb_task.c',
'src/mb_block.c'
)
libmb_internal_includes = include_directories('src/include')
libmb = static_library('mb',
sources: [libmb_srcs, fx_const_h],
c_args: [c_args, sdk_args],
dependencies: msl_dep,
include_directories: [public_includes, libmb_internal_includes],
c_pch: nitro_pch,
pic: false
)
nitrosdk_libs += libmb

View File

@ -0,0 +1 @@

View File

@ -0,0 +1,19 @@
subdir('card')
subdir('cp')
subdir('ctrdg')
subdir('dgt')
subdir('fs')
subdir('fx')
subdir('gx')
subdir('init')
subdir('math')
subdir('mb')
subdir('mi')
subdir('os')
subdir('pxi')
subdir('rtc')
subdir('snd')
subdir('spi')
subdir('std')
subdir('wm')
subdir('wvr')

View File

@ -0,0 +1,24 @@
libmi_srcs = files(
'src/mi_wram.c',
'src/mi_dma.c',
'src/mi_dma_hblank.c',
'src/mi_dma_gxcommand.c',
'src/mi_memory.c',
'src/mi_swap.c',
'src/mi_uncompress.c',
'src/mi_dma_card.c',
'src/mi_init.c'
)
libmi_internal_includes = include_directories('src/include')
libmi = static_library('mi',
sources: [libmi_srcs, fx_const_h],
c_args: [c_args, sdk_args],
dependencies: msl_dep,
include_directories: [public_includes, libmi_internal_includes],
c_pch: nitro_pch,
pic: false
)
nitrosdk_libs += libmi

View File

@ -0,0 +1,40 @@
libos_srcs = files(
'asm/os_irqhandler.s',
'asm/os_irqtable.s',
'asm/os_interrupt.s',
'asm/os_spinlock.s',
'asm/os_printf.s',
'asm/os_thread.s',
'asm/os_context.s',
'asm/os_emulator.s',
'asm/os_message.s',
'asm/os_mutex.s',
'asm/os_cache.s',
'asm/os_init.s',
'asm/os_arena.s',
'asm/os_alloc.s',
'asm/os_tcm.s',
'asm/os_protectionunit.s',
'asm/os_protectionregion.s',
'asm/os_exception.s',
'asm/os_timer.s',
'asm/os_tick.s',
'asm/os_alarm.s',
'asm/os_valarm.s',
'asm/os_system.s',
'asm/os_reset.s',
'asm/os_ownerinfo.s',
'asm/os_vramexclusive.s',
'asm/os_entropy.s',
'asm/os_terminate_proc.s'
)
libos = static_library('os',
sources: libos_srcs,
c_args: [c_args, sdk_args],
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
nitrosdk_libs += libos

View File

@ -0,0 +1,15 @@
libpxi_srcs = files(
'src/pxi_init.c',
'src/pxi_fifo.c'
)
libpxi = static_library('pxi',
sources: [libpxi_srcs, fx_const_h],
c_args: [c_args, sdk_args],
dependencies: msl_dep,
include_directories: [public_includes],
c_pch: nitro_pch,
pic: false
)
nitrosdk_libs += libpxi

View File

@ -0,0 +1,16 @@
librtc_srcs = files(
'src/external.c',
'src/internal.c',
'src/convert.c',
)
librtc = static_library('rtc',
sources: [librtc_srcs, fx_const_h],
c_args: [c_args, sdk_args],
dependencies: msl_dep,
include_directories: [public_includes],
c_pch: nitro_pch,
pic: false
)
nitrosdk_libs += librtc

View File

@ -0,0 +1,20 @@
libsnd_srcs = files(
'src/snd_interface.c',
'src/snd_main.c',
'src/snd_command.c',
'src/snd_alarm.c',
'src/snd_work.c',
'src/snd_util.c',
'src/snd_bank.c'
)
libsnd = static_library('snd',
sources: [libsnd_srcs, fx_const_h],
c_args: [c_args, sdk_args],
dependencies: msl_dep,
include_directories: [public_includes],
c_pch: nitro_pch,
pic: false
)
nitrosdk_libs += libsnd

View File

@ -0,0 +1,18 @@
libspi_srcs = files(
'src/tp.c',
'src/mic.c',
'src/pm.c'
)
libspi_internal_includes = include_directories('src/include')
libspi = static_library('spi',
sources: [libspi_srcs, fx_const_h],
c_args: [c_args, sdk_args],
dependencies: msl_dep,
include_directories: [public_includes, libspi_internal_includes],
c_pch: nitro_pch,
pic: false
)
nitrosdk_libs += libspi

View File

@ -0,0 +1,13 @@
libstd_srcs = files(
'asm/std_string.s',
'asm/std_sprintf.s'
)
libstd = static_library('std',
sources: libstd_srcs,
c_args: [c_args, sdk_args],
include_directories: public_includes,
pic: false
)
nitrosdk_libs += libstd

View File

@ -0,0 +1,24 @@
libwm_srcs = files(
'asm/wm_system.s',
'src/wm_sync.c',
'src/wm_standard.c',
'src/wm_mp.c',
'src/wm_dcf.c',
'src/wm_ds.c',
'src/wm_ks.c',
'src/wm_etc.c'
)
libwm_internal_includes = include_directories('src/include')
libwm = static_library('wm',
sources: [libwm_srcs, fx_const_h],
c_args: [c_args, sdk_args],
nasm_args: asm_args,
dependencies: msl_dep,
include_directories: [public_includes, libwm_internal_includes],
c_pch: nitro_pch,
pic: false
)
nitrosdk_libs += libwm

View File

@ -0,0 +1,12 @@
libwvr_srcs = files('src/wvr.c')
libwvr = static_library('wvr',
sources: [libwvr_srcs, fx_const_h],
c_args: [c_args, sdk_args],
dependencies: msl_dep,
include_directories: [public_includes],
c_pch: nitro_pch,
pic: false
)
nitrosdk_libs += libwvr

64
lib/external/NitroSDK/meson.build vendored Normal file
View File

@ -0,0 +1,64 @@
project('NitroSDK', ['c', 'nasm'])
# Compiler flags
c_args = [
'-O4,p',
'-proc', 'arm946e',
'-enum', 'int',
'-lang', 'c99',
'-Cpp_exceptions', 'off',
'-gccext,on',
'-msgstyle', 'gcc',
'-ipa', 'file',
'-interworking',
'-inline', 'on,noauto',
'-char', 'signed',
'-nosyspath',
'-nostdinc'
]
asm_args = [
'-proc', 'arm5TE',
'-gccinc'
]
sdk_args = [
'-DSDK_CW_FORCE_EXPORT_SUPPORT',
'-DSDK_TS',
'-DSDK_4M',
'-DSDK_ARM9',
'-DSDK_CW',
'-DSDK_FINALROM',
'-DSDK_CODE_ARM',
'-DNNS_FINALROM'
]
# Public includes
public_includes = [include_directories('include')]
nitro_pch = meson.current_source_dir() / 'include/pch/nitro_pch.h'
# Dependencies
msl_dep = dependency('msl', fallback: ['msl', 'msl_dep'])
# arm7 components
subdir('components')
# spec files
subdir('specfiles')
# Generated headers
subdir('autogen')
public_includes += include_directories('autogen')
# Libraries
nitrosdk_libs = []
subdir('libraries')
# Own dependency for consumers
nitrosdk_dep = declare_dependency(
compile_args: sdk_args,
include_directories: public_includes,
link_with: nitrosdk_libs,
objects: crt0_obj,
sources: fx_const_h
)

View File

@ -0,0 +1 @@
main_lcf_template = files('ARM9-TS.lcf.template')

View File

@ -0,0 +1,21 @@
libnnsfnd_srcs = files(
'src/list_nnsfnd.c',
'src/heapcommon.c',
'src/expheap.c',
'src/frameheap.c',
'src/unitheap.c',
'src/allocator.c'
)
libnnsfnd_internal_includes = include_directories('src/include')
libnnsfnd = static_library('nnsfnd',
sources: [libnnsfnd_srcs],
c_args: [c_args, sdk_args],
include_directories: [public_includes, libnnsfnd_internal_includes],
c_pch: nitro_pch,
dependencies: [msl_dep, nitrosdk_dep],
pic: false
)
nitrosystem_libs += libnnsfnd

View File

@ -0,0 +1,42 @@
libnnsg2d_srcs = files(
'src/load/g2d_NAN_load.c',
'src/load/g2d_NOB_load.c',
'src/load/g2d_NMC_load.c',
'src/load/g2d_NCG_load.c',
'src/load/g2d_NCL_load.c',
'src/load/g2d_NSC_load.c',
'src/load/g2d_Load.c',
'src/g2d_Softsprite.c',
'src/g2d_Animation.c',
'src/g2d_OAM.c',
'src/g2d_PaletteTable.c',
'src/g2d_Image.c',
'src/g2d_SRTControl.c',
'src/g2d_Node.c',
'src/g2d_CellAnimation.c',
'src/g2d_MultiCellAnimation.c',
'src/g2d_Renderer.c',
'src/internal/g2di_Mtx32.c',
'src/g2d_CellTransferManager.c',
'src/g2d_OamSoftwareSpriteDraw.c',
'src/g2d_RendererCore.c',
'src/g2d_Font.c',
'src/g2d_CharCanvas.c',
'src/g2d_TextCanvas.c',
'src/load/g2d_NFT_load.c',
'src/internal/g2di_BitReader.c',
'src/internal/g2di_SplitChar.c'
)
libnnsg2d_internal_includes = include_directories('src/include')
libnnsg2d = static_library('nnsg2d',
sources: [libnnsg2d_srcs],
c_args: [c_args, sdk_args],
include_directories: [public_includes, libnnsg2d_internal_includes],
c_pch: nitro_pch,
dependencies: [msl_dep, nitrosdk_dep],
pic: false
)
nitrosystem_libs += libnnsg2d

View File

@ -0,0 +1,38 @@
libnnsg3d_srcs = [
'src/kernel.c',
'src/glbstate.c',
'src/anm.c',
'src/cgtool.c',
'src/sbc.c',
'src/1mat1shp.c',
'src/gecom.c',
'src/util_nnsg3d.c',
'src/mem_nnsg3d.c',
'src/model.c',
'src/binres/res_struct_accessor.c',
'src/binres/res_struct_accessor_anm.c',
'asm/nsbca.s',
'src/anm/nsbma.c',
'src/anm/nsbta.c',
'src/anm/nsbtp.c',
'src/anm/nsbva.c',
'src/cgtool/basic.c',
'src/cgtool/maya.c',
'src/cgtool/si3d.c',
'src/cgtool/3dsmax.c',
'src/cgtool/xsi.c'
]
libnnsg3d_internal_includes = include_directories('src/binres')
libnnsg3d = static_library('nnsg3d',
sources: libnnsg3d_srcs,
c_args: [c_args, sdk_args],
nasm_args: asm_args,
include_directories: [public_includes, libnnsg3d_internal_includes],
c_pch: nitro_pch,
dependencies: [msl_dep, nitrosdk_dep],
pic: false
)
nitrosystem_libs += libnnsg3d

View File

@ -0,0 +1,23 @@
libnnsgfd_srcs = files(
'src/gfd_TexVramMan.c',
'src/gfd_PlttVramMan.c',
'src/gfd_FrameTexVramMan.c',
'src/gfd_FramePlttVramMan.c',
'src/gfd_VramTransferManager.c',
'src/gfdi_LinkedListVramMan_Common.c',
'src/gfd_LinkedListTexVramMan.c',
'src/gfd_LinkedListPlttVramMan.c'
)
libnnsgfd_internal_includes = include_directories('src/include')
libnnsgfd = static_library('nnsgfd',
sources: [libnnsgfd_srcs],
c_args: [c_args, sdk_args],
include_directories: [public_includes, libnnsgfd_internal_includes],
c_pch: nitro_pch,
dependencies: [msl_dep, nitrosdk_dep],
pic: false
)
nitrosystem_libs += libnnsgfd

View File

@ -0,0 +1 @@

View File

@ -0,0 +1,5 @@
subdir('fnd')
subdir('g2d')
subdir('g3d')
subdir('gfd')
subdir('snd')

View File

@ -0,0 +1,26 @@
libnnssnd_srcs = files(
'src/main_nnssnd.c',
'src/resource_mgr.c',
'src/waveout.c',
'src/player.c',
'src/stream_nnssnd.c',
'src/capture.c',
'src/sndarc.c',
'src/heap_nnssnd.c',
'src/sndarc_loader.c',
'src/sndarc_player.c',
'src/sndarc_stream.c',
'src/seqdata.c',
'src/fader.c'
)
libnnssnd = static_library('nnssnd',
sources: [libnnssnd_srcs],
c_args: [c_args, sdk_args],
include_directories: [public_includes],
c_pch: nitro_pch,
dependencies: [msl_dep, nitrosdk_dep],
pic: false
)
nitrosystem_libs += libnnssnd

54
lib/external/NitroSystem/meson.build vendored Normal file
View File

@ -0,0 +1,54 @@
project('NitroSystem', ['c', 'nasm'])
# Compiler flags
c_args = [
'-O4,p',
'-proc', 'arm946e',
'-enum', 'int',
'-lang', 'c99',
'-Cpp_exceptions', 'off',
'-gccext,on',
'-msgstyle', 'gcc',
'-ipa', 'file',
'-interworking',
'-inline', 'on,noauto',
'-char', 'signed',
'-nosyspath',
'-nostdinc'
]
asm_args = [
'-proc', 'arm5TE',
'-gccinc'
]
sdk_args = [
'-DSDK_CW_FORCE_EXPORT_SUPPORT',
'-DSDK_TS',
'-DSDK_4M',
'-DSDK_ARM9',
'-DSDK_CW',
'-DSDK_FINALROM',
'-DSDK_CODE_ARM',
'-DNNS_FINALROM'
]
# Dependencies
msl_dep = dependency('msl', fallback: ['msl', 'msl_dep'])
nitrosdk_dep = dependency('NitroSDK', fallback : ['NitroSDK', 'nitrosdk_dep'])
# Public includes
public_includes = include_directories('include')
nitro_pch = subproject('NitroSDK').get_variable('nitro_pch')
# Libraries
nitrosystem_libs = []
subdir('libraries')
# Own dependency for consumers
nitrosystem_dep = declare_dependency(
compile_args: sdk_args,
dependencies: nitrosdk_dep,
include_directories: public_includes,
link_with: nitrosystem_libs
)

View File

@ -0,0 +1,11 @@
libcps_srcs = files('asm/network.s')
libcps = static_library('cps',
sources: libcps_srcs,
c_args: [c_args, sdk_args],
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
nitrowifi_libs += libcps

View File

@ -0,0 +1,5 @@
subdir('cps')
subdir('soc')
subdir('ssl')
subdir('stubs')
subdir('wcm')

View File

@ -0,0 +1,32 @@
libsoc_srcs = files(
'src/socl_startup.c',
'src/socl_command.c',
'src/socl_create.c',
'src/socl_listen_accept.c',
'src/socl_bind.c',
'src/socl_read.c',
'src/socl_write.c',
'src/socl_shutdown.c',
'src/socl_close.c',
'src/socl_cleanup.c',
'src/socl_resolve.c',
'src/socl_poll.c',
'src/socl_const.c',
'src/socl_misc.c',
'src/socl_list.c',
'src/soc.c',
'src/socl_ssl.c'
)
libsoc_internal_includes = [include_directories('src/include'), include_directories('../wcm/src/include')]
libsoc = static_library('soc',
sources: [libsoc_srcs],
c_args: [c_args, sdk_args],
include_directories: [public_includes, libsoc_internal_includes],
dependencies: [msl_dep, nitrosdk_dep],
c_pch: nitro_pch,
pic: false
)
nitrowifi_libs += libsoc

View File

@ -0,0 +1,21 @@
libsoc_srcs = files(
'socl_startup.c',
'socl_command.c',
'socl_create.c',
'socl_listen_accept.c',
'socl_bind.c',
'socl_read.c',
'socl_write.c',
'socl_shutdown.c',
'socl_close.c',
'socl_cleanup.c',
'socl_resolve.c',
'socl_poll.c',
'socl_const.c',
'socl_misc.c',
'socl_list.c',
'soc.c',
'socl_ssl.c'
)
libsoc_internal_includes = [include_directories('include'), include_directories('../../wcm/src/include')]

View File

@ -0,0 +1,17 @@
libssl_srcs = files(
'asm/ssl.s',
'asm/md5.s',
'asm/sha1.s',
'asm/arc4.s',
'asm/biginteger.s'
)
libssl = static_library('ssl',
sources: libssl_srcs,
c_args: [c_args, sdk_args],
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
nitrowifi_libs += libssl

View File

@ -0,0 +1,11 @@
libstubsmd5_srcs = files('src/dummy_md5.c')
libstubsmd5 = static_library('stubsmd5',
sources: [libstubsmd5_srcs],
c_args: [c_args, sdk_args],
include_directories: [public_includes],
dependencies: [msl_dep, nitrosdk_dep],
pic: false
)
nitrowifi_libs += libstubsmd5

View File

@ -0,0 +1 @@
subdir('md5')

View File

@ -0,0 +1,19 @@
libwcm_srcs = files(
'src/system.c',
'src/aplist.c',
'src/cpsif.c',
'src/util_wcm.c'
)
libwcm_internal_includes = include_directories('src/include')
libwcm = static_library('wcm',
sources: [libwcm_srcs],
c_args: [c_args, sdk_args],
include_directories: [public_includes, libwcm_internal_includes],
c_pch: nitro_pch,
dependencies: [msl_dep, nitrosdk_dep],
pic: false
)
nitrowifi_libs += libwcm

54
lib/external/NitroWiFi/meson.build vendored Normal file
View File

@ -0,0 +1,54 @@
project('NitroWiFi', ['c', 'nasm'])
# Compiler flags
c_args = [
'-O4,p',
'-proc', 'arm946e',
'-enum', 'int',
'-lang', 'c99',
'-Cpp_exceptions', 'off',
'-gccext,on',
'-msgstyle', 'gcc',
'-ipa', 'file',
'-interworking',
'-inline', 'on,noauto',
'-char', 'signed',
'-nosyspath',
'-nostdinc'
]
asm_args = [
'-proc', 'arm5TE',
'-gccinc'
]
sdk_args = [
'-DSDK_CW_FORCE_EXPORT_SUPPORT',
'-DSDK_TS',
'-DSDK_4M',
'-DSDK_ARM9',
'-DSDK_CW',
'-DSDK_FINALROM',
'-DSDK_CODE_ARM',
'-DNNS_FINALROM'
]
# Dependencies
msl_dep = dependency('msl', fallback: ['msl', 'msl_dep'])
nitrosdk_dep = dependency('NitroSDK', fallback : ['NitroSDK', 'nitrosdk_dep'])
# Public includes
public_includes = include_directories('include')
nitro_pch = subproject('NitroSDK').get_variable('nitro_pch')
# Libraries
nitrowifi_libs = []
subdir('libraries')
# Own dependency for consumers
nitrowifi_dep = declare_dependency(
compile_args: sdk_args,
dependencies: nitrosdk_dep,
include_directories: public_includes,
link_with: nitrowifi_libs
)

View File

@ -0,0 +1,17 @@
libdwcgschat_srcs = files(
'asm/chatcallbacks.s',
'asm/chatchannel.s',
'asm/chatcrypt.s',
'asm/chathandlers.s',
'asm/chatmain.s',
'asm/chatsocket.s'
)
libdwcgschat = static_library('dwcgschat',
sources: libdwcgschat_srcs,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
gamespy_libs += libdwcgschat

View File

@ -0,0 +1,16 @@
libdwcgscommon_srcs = files(
'asm/available.s',
'asm/darray.s',
'asm/hashtable.s',
'asm/md5c.s',
'asm/nonport.s'
)
libdwcgscommon = static_library('dwcgscommon',
sources: libdwcgscommon_srcs,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
gamespy_libs += libdwcgscommon

View File

@ -0,0 +1,18 @@
libdwcgsghttp_srcs = files(
'asm/ghttpbuffer.s',
'asm/ghttpcallbacks.s',
'asm/ghttpcommon.s',
'asm/ghttpconnection.s',
'asm/ghttpmain.s',
'asm/ghttppost.s',
'asm/ghttpprocess.s'
)
libdwcgsghttp = static_library('dwcgsghttp',
sources: libdwcgsghttp_srcs,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
gamespy_libs += libdwcgsghttp

View File

@ -0,0 +1,25 @@
libdwcgsgp_srcs = files(
'asm/gp.s',
'asm/gpi.s',
'asm/gpibuddy.s',
'asm/gpibuffer.s',
'asm/gpicallback.s',
'asm/gpiconnect.s',
'asm/gpiinfo.s',
'asm/gpioperation.s',
'asm/gpipeer.s',
'asm/gpiprofile.s',
'asm/gpisearch.s',
'asm/gpitransfer.s',
'asm/gpiunique.s',
'asm/gpiutility.s'
)
libdwcgsgp = static_library('dwcgsgp',
sources: libdwcgsgp_srcs,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
gamespy_libs += libdwcgsgp

View File

@ -0,0 +1,13 @@
libdwcgsgstats_asm = files(
'asm/gbucket.s',
'asm/gstats.s'
)
libdwcgsgstats = static_library('dwcgsgstats',
sources: libdwcgsgstats_asm,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
gamespy_libs += libdwcgsgstats

View File

@ -0,0 +1,19 @@
libdwcgsgt2_srcs = files(
'asm/gt2auth.s',
'asm/gt2buffer.s',
'asm/gt2callback.s',
'asm/gt2connection.s',
'asm/gt2main.s',
'asm/gt2message.s',
'asm/gt2socket.s',
'asm/gt2utility.s'
)
libdwcgsgt2 = static_library('dwcgsgt2',
sources: libdwcgsgt2_srcs,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
gamespy_libs += libdwcgsgt2

View File

@ -0,0 +1,9 @@
subdir('chat')
subdir('common')
subdir('ghttp')
subdir('gp')
subdir('gstats')
subdir('gt2')
subdir('natneg')
subdir('qr2')
subdir('serverbrowsing')

View File

@ -0,0 +1,10 @@
libdwcgsnatneg_srcs = files('asm/natneg.s')
libdwcgsnatneg = static_library('dwcgsnatneg',
sources: libdwcgsnatneg_srcs,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
gamespy_libs += libdwcgsnatneg

View File

@ -0,0 +1,13 @@
libdwcgsqr2_srcs = files(
'asm/qr2.s',
'asm/qr2regkeys.s'
)
libdwcgsqr2 = static_library('dwcgsqr2',
sources: libdwcgsqr2_srcs,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
gamespy_libs += libdwcgsqr2

View File

@ -0,0 +1,16 @@
libdwcgsserverbrowsing_srcs = files(
'asm/sb_crypt.s',
'asm/sb_queryengine.s',
'asm/sb_server.s',
'asm/sb_serverbrowsing.s',
'asm/sb_serverlist.s'
)
libdwcgsserverbrowsing = static_library('dwcgsserverbrowsing',
sources: libdwcgsserverbrowsing_srcs,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
gamespy_libs += libdwcgsserverbrowsing

32
lib/external/gamespy/meson.build vendored Normal file
View File

@ -0,0 +1,32 @@
project('gamespy', ['c', 'nasm'])
asm_args = [
'-proc', 'arm5TE',
'-gccinc'
]
# Public includes
public_includes = include_directories('include')
# Dependencies
msl_dep = dependency('msl', fallback: ['msl', 'msl_dep'])
nitrosdk_dep = dependency('NitroSDK', fallback : ['NitroSDK', 'nitrosdk_dep'])
nitrosystem_dep = dependency('NitroSystem', fallback : ['NitroSystem', 'nitrosystem_dep'])
nitrowifi_dep = dependency('NitroWiFi', fallback : ['NitroWiFi', 'nitrowifi_dep'])
# Libraries
gamespy_libs = []
subdir('libraries')
# Own dependency for consumers
gamespy_dep = declare_dependency(
compile_args: '-D_NITRO',
dependencies: [
msl_dep,
nitrosdk_dep,
nitrosystem_dep,
nitrowifi_dep
],
include_directories: public_includes,
link_with: gamespy_libs
)

34
lib/external/libVCT/meson.build vendored Normal file
View File

@ -0,0 +1,34 @@
project('libVCT', ['c', 'nasm'])
asm_args = [
'-proc', 'arm5TE',
'-gccinc'
]
public_includes = include_directories('include')
libvct_srcs = files(
'asm/adpcm.s',
'asm/audio.s',
'asm/decoder.s',
'asm/g711.s',
'asm/queue.s',
'asm/stream_vct.s',
'asm/ssp.s',
'asm/udp_buffer.s',
'asm/vad.s',
'asm/fir.s',
'asm/mixer.s',
'asm/vct_main.s'
)
libvct = static_library('vct',
sources: libvct_srcs,
nasm_args: asm_args,
pic: false
)
libvct_dep = declare_dependency(
include_directories: public_includes,
link_with: libvct
)

37
lib/external/libcrypto/meson.build vendored Normal file
View File

@ -0,0 +1,37 @@
project('libcrypto', ['c', 'nasm'])
asm_args = [
'-proc', 'arm5TE',
'-16',
'-gccinc'
]
public_includes = include_directories('include')
libcrypto_static_srcs = files(
'asm/rc4.s',
'asm/rc4-arm4cw.s'
)
libcrypto_ov97_srcs = files(
'asm/rc4s-arm4cw.s',
'asm/sign.s',
'asm/util.s'
)
libcrypto_static = static_library('crypto_static',
sources: libcrypto_static_srcs,
nasm_args: asm_args,
pic: false
)
libcrypto_ov97 = static_library('crypto_ov97',
sources: libcrypto_ov97_srcs,
nasm_args: asm_args,
pic: false
)
libcrypto_dep = declare_dependency(
include_directories: public_includes,
link_with: [libcrypto_static, libcrypto_ov97]
)

17
lib/external/libsyscall/meson.build vendored Normal file
View File

@ -0,0 +1,17 @@
project('libsyscall', ['c', 'nasm'])
asm_args = [
'-proc', 'arm5TE',
'-16',
'-gccinc'
]
libsyscall = static_library('syscall',
sources: 'asm/_secure.s',
nasm_args: asm_args,
pic: false
)
libsyscall_dep = declare_dependency(
link_with: libsyscall
)

View File

@ -0,0 +1,16 @@
msl_cpp_srcs = files(
'asm/ios.s',
'asm/locale_cpp.s',
'asm/msl_thread.s'
)
msl_cpp = static_library('MSL_CPP_NITRO_Ai_LE',
name_prefix: '',
sources: msl_cpp_srcs,
c_args: c_args,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
msl_libs += msl_cpp

View File

@ -0,0 +1,54 @@
msl_c_srcs = files(
'asm/abort_exit_arm.s',
'asm/critical_region.s',
'asm/math_arm.s',
'src/alloc.c',
'src/ansi_files.c',
'src/arith.c',
'src/assert.c',
'src/buffer_io.c',
'src/errno.c',
'asm/direct_io.s',
'asm/file_io.s',
'asm/file_pos.s',
'asm/mbstring.s',
'asm/mem_msl.s',
'asm/mem_funcs.s',
'asm/float.s',
'asm/locale_c.s',
'asm/printf.s',
'asm/qsort.s',
'asm/rand.s',
'asm/ctype.s',
'asm/scanf.s',
'asm/signal.s',
'asm/string.s',
'asm/strtold.s',
'asm/strtoul.s',
'asm/wchar_io.s',
'asm/wmem.s',
'asm/wprintf.s',
'asm/wstring.s',
'asm/wctype.s',
'asm/e_pow.s',
'asm/s_copysign.s',
'asm/s_fabs.s',
'asm/s_frexp.s',
'asm/s_ldexp.s',
'asm/w_pow.s',
'asm/ansi_fp.s',
'asm/math_api.s',
'asm/math_sun.s',
'asm/pool_alloc.s'
)
msl_c = static_library('MSL_C_NITRO_Ai_LE',
name_prefix: '',
sources: msl_c_srcs,
c_args: c_args,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
msl_libs += msl_c

View File

@ -0,0 +1,12 @@
msl_extras_srcs = files('asm/extras.s')
msl_extras = static_library('MSL_Extras_NITRO_Ai_LE',
name_prefix: '',
sources: msl_extras_srcs,
c_args: c_args,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
msl_libs += msl_extras

View File

@ -0,0 +1,21 @@
msl_runtime_srcs = files(
'asm/semihosted_console_io.s',
'asm/compressednumbers.s',
'asm/exceptionhandler.s',
'asm/new.s',
'asm/staticinitializer.s',
'asm/cxxabi_rtti.s',
'asm/mwexception.s',
'asm/__nitro_eabi_init.s'
)
msl_runtime = static_library('NITRO_Runtime_Ai_LE',
name_prefix: '',
sources: msl_runtime_srcs,
c_args: c_args,
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
msl_libs += msl_runtime

View File

@ -0,0 +1,39 @@
mathlib_srcs = files(
'asm/_d_add.s',
'asm/_d_dtof.s',
'asm/_d_dtoi.s',
'asm/_d_dtou.s',
'asm/_d_dtoull.s',
'asm/_d_itod.s',
'asm/_d_mul.s',
'asm/_d_sqrt.s',
'asm/_d_sub.s',
'asm/_f_add.s',
'asm/_f_cmp.s',
'asm/_f_div.s',
'asm/_f_ftod.s',
'asm/_f_ftoi.s',
'asm/_f_ftou.s',
'asm/_f_itof.s',
'asm/_f_lltof.s',
'asm/_f_mul.s',
'asm/_f_sub.s',
'asm/_ll_div.s',
'asm/_ll_mul.s',
'asm/_ll_sll.s',
'asm/_s32_div_f.s',
'asm/_u32_div_f.s',
'asm/_d_div.s',
'asm/ieee_status.s'
)
mathlib = static_library('FP_fastI_v5t_LE',
name_prefix: '',
sources: mathlib_srcs,
c_args: [c_args],
nasm_args: asm_args,
include_directories: public_includes,
pic: false
)
msl_libs += mathlib

View File

@ -0,0 +1,5 @@
subdir('Mathlib')
subdir('MSL_C')
subdir('MSL_C++')
subdir('MSL_Extras')
subdir('MSL_Runtime')

40
lib/external/msl/meson.build vendored Normal file
View File

@ -0,0 +1,40 @@
project('msl', ['c', 'nasm'])
# Compiler flags
c_args = [
'-O4,p',
'-proc', 'arm946e',
'-enum', 'int',
'-lang', 'c99',
'-Cpp_exceptions', 'off',
'-gccext,on',
'-msgstyle', 'gcc',
'-ipa', 'file',
'-interworking',
'-inline', 'on,noauto',
'-char', 'signed',
'-nosyspath',
'-nostdinc'
]
asm_args = [
'-proc', 'arm5TE',
'-gccinc'
]
# Public includes
public_includes = [
include_directories('include'),
include_directories('include/MSL_C'),
include_directories('include/MSL_Extras')
]
# Libraries
msl_libs = []
subdir('libraries')
# Own dependency for consumers
msl_dep = declare_dependency(
include_directories: public_includes,
link_with: msl_libs
)

View File

@ -0,0 +1,29 @@
#pragma once
.macro arm_func_start name
.balign 4, 0
.global \name
.type \name, @function
.arm
.endm
.macro arm_func_end name
.size \name, .-\name
.endm
.macro thumb_func_start name
.balign 4, 0
.global \name
.type \name, @function
.thumb
.endm
.macro non_word_aligned_thumb_func_start name
.global \name
.type \name, @function
.thumb
.endm
.macro thumb_func_end name
.size \name, .-\name
.endm

Some files were not shown because too many files have changed in this diff Show More