mirror of
https://github.com/Ed94/pikuma_ps1.git
synced 2026-06-01 18:41:13 -07:00
got hello psyq doing its job. removing pxdev_sample as no longer needed.
This commit is contained in:
@@ -12,3 +12,4 @@ toolchain/psyq_iwyu
|
||||
*.dep
|
||||
*.o
|
||||
*.a
|
||||
.sentry-native
|
||||
|
||||
Vendored
+24
@@ -27,6 +27,30 @@
|
||||
"tbreak main",
|
||||
"continue"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Debug: Hello Psy-Q!",
|
||||
"type": "gdb",
|
||||
"request": "attach",
|
||||
"target": "localhost:3333",
|
||||
"remote": true,
|
||||
"cwd": "${workspaceRoot}/build",
|
||||
"valuesFormatting": "parseText",
|
||||
"stopAtConnect": true,
|
||||
"gdbpath": "gdb-multiarch",
|
||||
"windows": {
|
||||
"gdbpath": "gdb-multiarch.exe"
|
||||
},
|
||||
"osx": {
|
||||
"gdbpath": "gdb"
|
||||
},
|
||||
"executable": "${workspaceRoot}/build/hello_psyq.elf",
|
||||
"autorun": [
|
||||
"monitor reset shellhalt",
|
||||
"load hello_psyq.elf",
|
||||
"tbreak main",
|
||||
"continue"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ int main(void)
|
||||
DB *cdb;
|
||||
|
||||
ResetGraph(0);
|
||||
InitGeom();
|
||||
// InitGeom();
|
||||
|
||||
SetGraphDebug(0);
|
||||
|
||||
@@ -35,16 +35,28 @@ int main(void)
|
||||
SetDefDispEnv(&db[0].disp, 0, 0, 640, 480);
|
||||
SetDefDispEnv(&db[1].disp, 0, 0, 640, 480);
|
||||
|
||||
SetDispMask(1);
|
||||
|
||||
PutDrawEnv(&db[0].draw);
|
||||
PutDispEnv(&db[0].disp);
|
||||
|
||||
while (1) {
|
||||
cdb = (cdb == &db[0]) ? &db[1] : &db[0];
|
||||
|
||||
ClearOTagR(cdb->ot, OTSIZE);
|
||||
|
||||
FntPrint("Code compiled using Psy-Q libraries\n\n");
|
||||
FntPrint("converted by psyq-obj-parser\n\n");
|
||||
FntPrint("PCSX-Redux project\n\n");
|
||||
FntPrint("https://bit.ly/pcsx-redux");
|
||||
|
||||
ClearImage(&cdb->draw.clip, 60, 120, 120);
|
||||
|
||||
DrawSync(0);
|
||||
VSync(0);
|
||||
|
||||
ClearImage(&cdb->draw.clip, 60, 120, 120);
|
||||
|
||||
DrawOTag(&cdb->ot[OTSIZE - 1]);
|
||||
FntFlush(-1);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
PSX.Dev-README.md
|
||||
*.elf
|
||||
*.map
|
||||
*.cpe
|
||||
*.ps-exe
|
||||
*.dep
|
||||
*.o
|
||||
*.a
|
||||
third_party/psyq
|
||||
@@ -1,40 +0,0 @@
|
||||
{
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Win32",
|
||||
"compilerPath": "${env:AppData}\\mips\\mips\\bin\\mipsel-none-elf-gcc.exe",
|
||||
"cStandard": "c17",
|
||||
"cppStandard": "c++20",
|
||||
"defines": [
|
||||
"__STDC_HOSTED__ = 0"
|
||||
],
|
||||
"includePath": [
|
||||
"${env:AppData}/mips/mips/include",
|
||||
"${workspaceFolder}/",
|
||||
"${workspaceFolder}/third_party/nugget",
|
||||
"${workspaceFolder}/third_party/psyq-iwyu/include"
|
||||
],
|
||||
"intelliSenseMode": "gcc-x86"
|
||||
},
|
||||
{
|
||||
"name": "linux",
|
||||
"compilerPath": "mipsel-linux-gnu-gcc",
|
||||
"cStandard": "c17",
|
||||
"cppStandard": "c++20",
|
||||
"defines": [
|
||||
"__STDC_HOSTED__ = 0"
|
||||
],
|
||||
"includePath": [
|
||||
"/usr/mipsel-linux-gnu/include",
|
||||
"/usr/local/mipsel-linux-gnu/include",
|
||||
"/usr/mipsel-none-elf/include",
|
||||
"/usr/local/mipsel-none-elf/include",
|
||||
"${workspaceFolder}/",
|
||||
"${workspaceFolder}/third_party/nugget",
|
||||
"${workspaceFolder}/third_party/psyq-iwyu/include"
|
||||
],
|
||||
"intelliSenseMode": "gcc-x86"
|
||||
}
|
||||
],
|
||||
"version": 4
|
||||
}
|
||||
-29
@@ -1,29 +0,0 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Debug",
|
||||
"type": "gdb",
|
||||
"request": "attach",
|
||||
"target": "localhost:3333",
|
||||
"remote": true,
|
||||
"cwd": "${workspaceRoot}",
|
||||
"valuesFormatting": "parseText",
|
||||
"stopAtConnect": true,
|
||||
"gdbpath": "gdb-multiarch",
|
||||
"windows": {
|
||||
"gdbpath": "gdb-multiarch.exe"
|
||||
},
|
||||
"osx": {
|
||||
"gdbpath": "gdb"
|
||||
},
|
||||
"executable": "${workspaceRoot}/${workspaceRootFolderName}.elf",
|
||||
"autorun": [
|
||||
"monitor reset shellhalt",
|
||||
"load ${workspaceRootFolderName}.elf",
|
||||
"tbreak main",
|
||||
"continue"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"files.associations": {
|
||||
"*.rmd": "markdown",
|
||||
"*.s": "armips",
|
||||
"stdlib.h": "c",
|
||||
"libgte.h": "c",
|
||||
"libgpu.h": "c",
|
||||
"libetc.h": "c"
|
||||
}
|
||||
}
|
||||
-37
@@ -1,37 +0,0 @@
|
||||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "Build Debug",
|
||||
"type": "shell",
|
||||
"command": "make BUILD=Debug",
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"problemMatcher": [
|
||||
"$gcc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "Build Release",
|
||||
"type": "shell",
|
||||
"command": "make",
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"problemMatcher": [
|
||||
"$gcc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "Clean",
|
||||
"type": "shell",
|
||||
"command": "make clean",
|
||||
"group": {
|
||||
"kind": "build"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
TARGET = SpinningCube
|
||||
TYPE = ps-exe
|
||||
|
||||
SRCS = \
|
||||
third_party/nugget/common/crt0/crt0.s \
|
||||
main.c
|
||||
|
||||
CPPFLAGS += -Ithird_party/psyq-iwyu/include
|
||||
LDFLAGS += -Lthird_party/psyq/lib
|
||||
LDFLAGS += -Wl,--start-group
|
||||
LDFLAGS += -lapi
|
||||
LDFLAGS += -lc
|
||||
LDFLAGS += -lc2
|
||||
LDFLAGS += -lcard
|
||||
LDFLAGS += -lcd
|
||||
LDFLAGS += -lcomb
|
||||
LDFLAGS += -lds
|
||||
LDFLAGS += -letc
|
||||
LDFLAGS += -lgpu
|
||||
LDFLAGS += -lgs
|
||||
LDFLAGS += -lgte
|
||||
LDFLAGS += -lgun
|
||||
LDFLAGS += -lhmd
|
||||
LDFLAGS += -lmath
|
||||
LDFLAGS += -lmcrd
|
||||
LDFLAGS += -lmcx
|
||||
LDFLAGS += -lpad
|
||||
LDFLAGS += -lpress
|
||||
LDFLAGS += -lsio
|
||||
LDFLAGS += -lsnd
|
||||
LDFLAGS += -lspu
|
||||
LDFLAGS += -ltap
|
||||
LDFLAGS += -Wl,--end-group
|
||||
|
||||
include third_party/nugget/common.mk
|
||||
@@ -1,233 +0,0 @@
|
||||
# --- Toolchain Definition ---
|
||||
# Assumes 'mipsel-none-elf' toolchain is in your system's PATH.
|
||||
$Prefix = "mipsel-none-elf"
|
||||
$Compiler = "$($Prefix)-gcc"
|
||||
$Objcopy = "$($Prefix)-objcopy"
|
||||
|
||||
# --- Abstracted GCC/MIPS Flags ---
|
||||
|
||||
# General Compiler Flags
|
||||
$f_compile = "-c"
|
||||
$f_debug = "-g"
|
||||
$f_define = "-D"
|
||||
$f_include = "-I"
|
||||
$f_output = "-o"
|
||||
$f_std_c11 = "-std=c11"
|
||||
|
||||
# Warning Flags
|
||||
$f_wall = "-Wall"
|
||||
$f_wno_attributes = "-Wno-attributes"
|
||||
|
||||
# Optimization Flags
|
||||
$f_optimize_none = "-O0" # For Debug builds
|
||||
$f_optimize_size = "-Os" # For Release builds
|
||||
$f_omit_frame_ptr = "-fomit-frame-pointer"
|
||||
|
||||
# Environment & Standard Library Flags
|
||||
$f_no_stdlib = "-nostdlib"
|
||||
$f_freestanding = "-ffreestanding"
|
||||
$f_no_builtin = "-fno-builtin"
|
||||
|
||||
# MIPS Architecture Specific Flags
|
||||
$f_arch_mips1 = "-march=mips1"
|
||||
$f_arch_abi32 = "-mabi=32"
|
||||
$f_arch_little_endian = "-EL"
|
||||
$f_arch_fp32 = "-mfp32"
|
||||
$f_arch_no_pic = "-fno-pic"
|
||||
$f_arch_no_shared = "-mno-shared"
|
||||
$f_arch_no_abicalls = "-mno-abicalls"
|
||||
$f_arch_no_llsc = "-mno-llsc"
|
||||
$f_arch_no_gpopt = "-mno-gpopt"
|
||||
$f_arch_no_stack_prot = "-fno-stack-protector"
|
||||
|
||||
# Linker-related Flags (for Compiler)
|
||||
$f_code_sections = "-ffunction-sections"
|
||||
$f_data_sections = "-fdata-sections"
|
||||
$f_no_strict_alias = "-fno-strict-aliasing"
|
||||
|
||||
# Linker Flags (passed via -Wl,)
|
||||
$f_link_pass_through_prefix = "-Wl,"
|
||||
$f_link_mapfile = "-Map=" # Usage: $flag_link_pass_through_prefix + $flag_link_mapfile + path
|
||||
$f_link_gc_sections = "--gc-sections"
|
||||
$f_link_format = "--oformat="
|
||||
$f_link_start_group = "--start-group"
|
||||
$f_link_end_group = "--end-group"
|
||||
$f_link_static = "-static"
|
||||
$f_link_script = "-T"
|
||||
$f_link_lib_path = "-L"
|
||||
$f_link_lib = "-l"
|
||||
|
||||
# Objcopy Flags
|
||||
$f_objcopy_format = "-O"
|
||||
|
||||
# --- Project Configuration ---
|
||||
$path_root = $PSScriptRoot
|
||||
|
||||
$path_build = join-path $path_root 'build'
|
||||
$path_third_party = join-path $path_root 'third_party'
|
||||
$path_nugget = join-path $path_third_party 'nugget'
|
||||
$path_psyq = join-path $path_third_party 'psyq'
|
||||
$path_psyq_imyu = join-path $path_third_party 'psyq-iwyu'
|
||||
|
||||
if (-not (test-path $path_build)) {
|
||||
new-item -ItemType Directory -Path $path_build | Out-Null
|
||||
}
|
||||
|
||||
$path_nugget_common = join-path $path_nugget 'common'
|
||||
|
||||
$unit_nugget_crt0 = join-path $path_nugget_common 'crt0/crt0.s'
|
||||
$unit_main = join-path $path_root 'main.c'
|
||||
$units = @(
|
||||
$unit_nugget_crt0,
|
||||
$unit_main
|
||||
)
|
||||
|
||||
write-host "--- Compiling Source Files ---" -ForegroundColor Cyan
|
||||
|
||||
$compile_args_c = @()
|
||||
$compile_args_c += $f_debug
|
||||
$compile_args_c += $f_optimize_none
|
||||
# $compile_args_c += $f_optimize_size
|
||||
|
||||
$compile_args_c += $f_code_sections
|
||||
$compile_args_c += $f_data_sections
|
||||
|
||||
$compile_args_c += $f_wno_attributes
|
||||
$compile_args_c += $f_freestanding
|
||||
$compile_args_c += $f_omit_frame_ptr
|
||||
$compile_args_c += $f_no_builtin
|
||||
$compile_args_c += $f_no_stdlib
|
||||
$compile_args_c += $f_no_strict_alias
|
||||
$compile_args_c += @(
|
||||
$f_arch_mips1,
|
||||
$f_arch_abi32,
|
||||
$f_arch_fp32,
|
||||
$f_arch_little_endian,
|
||||
$f_arch_no_abicalls,
|
||||
$f_arch_no_gpopt,
|
||||
$f_arch_no_pic,
|
||||
$f_arch_no_llsc,
|
||||
$f_arch_no_shared,
|
||||
$f_arch_no_stack_prot
|
||||
)
|
||||
|
||||
$path_psyq_imyu_inc = join-path $path_psyq_imyu 'include'
|
||||
$compile_args_c += ($f_include + $path_psyq_imyu_inc)
|
||||
$compile_args_c += ($f_include + $path_nugget)
|
||||
|
||||
$compile_args_asm = @()
|
||||
$compile_args_asm += $f_debug
|
||||
$compile_args_asm += @(
|
||||
$f_arch_mips1,
|
||||
$f_arch_abi32,
|
||||
$f_arch_fp32,
|
||||
$f_arch_little_endian,
|
||||
$f_arch_no_abicalls,
|
||||
$f_arch_no_pic,
|
||||
$f_arch_no_llsc,
|
||||
$f_arch_no_shared,
|
||||
$f_arch_no_stack_prot
|
||||
)
|
||||
$compile_args_asm += $f_no_stdlib
|
||||
$compile_args_asm += $f_freestanding
|
||||
$compile_args_asm += ($f_include + $path_nugget)
|
||||
|
||||
$link_modules = @()
|
||||
foreach ($unit in $units) {
|
||||
$base_name = [System.IO.Path]::GetFileNameWithoutExtension($unit)
|
||||
$extension = [System.IO.Path]::GetExtension($unit)
|
||||
$link_module = join-path $path_build "$($base_name).o"
|
||||
$link_modules += $link_module
|
||||
|
||||
$module_compile_args = @()
|
||||
if ($extension -eq ".c") { $module_compile_args = $compile_args_c }
|
||||
elseif ($extension -eq ".s") { $module_compile_args = $compile_args_asm }
|
||||
else { write-error "Unsupported file type: $unit"; exit 1 }
|
||||
|
||||
$module_compile_args = @($module_compile_args) + $f_compile, $unit, ($f_output + $link_module)
|
||||
|
||||
write-host "Compiling '$($unit)' -> '$($base_name).o'"
|
||||
$module_compile_args | ForEach-Object { Write-Host "`t$_" -ForegroundColor Green }
|
||||
& $Compiler $module_compile_args
|
||||
if ($LASTEXITCODE -ne 0) { write-error "Compilation failed for $unit. Aborting."; exit 1 }
|
||||
}
|
||||
|
||||
|
||||
write-host "`n--- Linking Modules ---" -ForegroundColor Cyan
|
||||
|
||||
$link_args = @()
|
||||
$link_args += $f_debug
|
||||
# $link_args += $f_optimize_size
|
||||
|
||||
$link_args += $f_no_stdlib
|
||||
$link_args += $f_link_static
|
||||
|
||||
$link_args += $f_arch_mips1
|
||||
$link_args += $f_arch_abi32
|
||||
$link_args += $f_arch_little_endian
|
||||
|
||||
$link_args += ($f_link_pass_through_prefix + $f_link_gc_sections)
|
||||
$link_args += ($f_link_pass_through_prefix + $f_link_format + "elf32-littlemips")
|
||||
|
||||
$linkscript_nugget = join-path $path_nugget 'nooverlay.ld'
|
||||
$linkscript_ps_exe = join-path $path_nugget "ps-exe.ld"
|
||||
$link_args += ($f_link_script + $linkscript_nugget)
|
||||
$link_args += ($f_link_script + $linkscript_ps_exe)
|
||||
|
||||
$path_psyq_lib = join-path $path_psyq 'lib'
|
||||
$link_args += ($f_link_lib_path + $path_psyq_lib)
|
||||
|
||||
$link_args += $link_modules
|
||||
|
||||
$map = join-path $path_build 'SpinningCube.map'
|
||||
$link_args += ($f_link_pass_through_prefix + $f_link_mapfile + $map)
|
||||
|
||||
$link_args += ($f_link_pass_through_prefix + $f_link_start_group)
|
||||
$libraries = @(
|
||||
"api",
|
||||
"c",
|
||||
"c2",
|
||||
"card",
|
||||
"cd",
|
||||
"comb",
|
||||
"ds",
|
||||
"etc",
|
||||
"gpu",
|
||||
"gs",
|
||||
"gte",
|
||||
"gun",
|
||||
"hmd",
|
||||
"math",
|
||||
"mcrd",
|
||||
"mcx",
|
||||
"pad",
|
||||
"press",
|
||||
"sio",
|
||||
"snd",
|
||||
"spu",
|
||||
"tap"
|
||||
)
|
||||
foreach ($lib in $libraries) {
|
||||
$link_args += ($f_link_lib + $lib)
|
||||
}
|
||||
|
||||
$elf = Join-Path $path_build "SpinningCube.elf"
|
||||
$final_link_args = @($link_args) + ($f_output + $elf)
|
||||
|
||||
write-host "Linking modules into 'SpinningCube.elf'"
|
||||
$final_link_args += ($f_link_pass_through_prefix + $f_link_end_group)
|
||||
$final_link_args | foreach-object { write-host $_ }
|
||||
& $Compiler $final_link_args
|
||||
if ($LASTEXITCODE -ne 0) { write-error "Linking failed. Aborting."; exit 1 }
|
||||
|
||||
|
||||
Write-Host "`n--- Creating Final Binary ---" -ForegroundColor Cyan
|
||||
$exe = join-path $path_build "SpinningCube.ps-exe"
|
||||
|
||||
write-host "Converting ELF to PS-EXE -> 'SpinningCube.ps-exe'"
|
||||
$objcopy_args = ($f_objcopy_format + "binary"), $elf, $exe
|
||||
& $Objcopy $objcopy_args
|
||||
if ($LASTEXITCODE -ne 0) { Write-Error "Objcopy failed. Aborting."; exit 1 }
|
||||
|
||||
write-host "`nBuild successful!" -ForegroundColor Green
|
||||
write-host "Output: $exe"
|
||||
@@ -1,4 +0,0 @@
|
||||
-m32
|
||||
-I.
|
||||
-Ithird_party/nugget
|
||||
-Ithird_party/psyq-iwyu/include
|
||||
@@ -1,127 +0,0 @@
|
||||
#include <libetc.h>
|
||||
#include <libgpu.h>
|
||||
#include <libgte.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(*(a)))
|
||||
|
||||
#define OTSIZE 4096
|
||||
#define SCREEN_Z 512
|
||||
#define CUBESIZE 196
|
||||
|
||||
typedef struct DB {
|
||||
DRAWENV draw;
|
||||
DISPENV disp;
|
||||
u_long ot[OTSIZE];
|
||||
POLY_F4 s[6];
|
||||
} DB;
|
||||
|
||||
static SVECTOR cube_vertices[] = {
|
||||
{-CUBESIZE / 2, -CUBESIZE / 2, -CUBESIZE / 2, 0}, {CUBESIZE / 2, -CUBESIZE / 2, -CUBESIZE / 2, 0},
|
||||
{CUBESIZE / 2, CUBESIZE / 2, -CUBESIZE / 2, 0}, {-CUBESIZE / 2, CUBESIZE / 2, -CUBESIZE / 2, 0},
|
||||
{-CUBESIZE / 2, -CUBESIZE / 2, CUBESIZE / 2, 0}, {CUBESIZE / 2, -CUBESIZE / 2, CUBESIZE / 2, 0},
|
||||
{CUBESIZE / 2, CUBESIZE / 2, CUBESIZE / 2, 0}, {-CUBESIZE / 2, CUBESIZE / 2, CUBESIZE / 2, 0},
|
||||
};
|
||||
|
||||
static int cube_indices[] = {
|
||||
0, 1, 2, 3, 1, 5, 6, 2, 5, 4, 7, 6, 4, 0, 3, 7, 4, 5, 1, 0, 6, 7, 3, 2,
|
||||
};
|
||||
|
||||
static void init_cube(DB *db, CVECTOR *col) {
|
||||
size_t i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(db->s); ++i) {
|
||||
SetPolyF4(&db->s[i]);
|
||||
setRGB0(&db->s[i], col[i].r, col[i].g, col[i].b);
|
||||
}
|
||||
}
|
||||
|
||||
static void add_cube(u_long *ot, POLY_F4 *s, MATRIX *transform) {
|
||||
long p, otz, flg;
|
||||
int nclip;
|
||||
size_t i;
|
||||
|
||||
SetRotMatrix(transform);
|
||||
SetTransMatrix(transform);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(cube_indices); i += 4, ++s) {
|
||||
nclip = RotAverageNclip4(&cube_vertices[cube_indices[i + 0]], &cube_vertices[cube_indices[i + 1]],
|
||||
&cube_vertices[cube_indices[i + 2]], &cube_vertices[cube_indices[i + 3]],
|
||||
(long *)&s->x0, (long *)&s->x1, (long *)&s->x3, (long *)&s->x2, &p, &otz, &flg);
|
||||
|
||||
if (nclip <= 0) continue;
|
||||
|
||||
if ((otz > 0) && (otz < OTSIZE)) AddPrim(&ot[otz], s);
|
||||
}
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
DB db[2];
|
||||
DB *cdb;
|
||||
SVECTOR rotation = {0};
|
||||
VECTOR translation = {0, 0, (SCREEN_Z * 3) / 2, 0};
|
||||
MATRIX transform;
|
||||
CVECTOR col[6];
|
||||
size_t i;
|
||||
|
||||
ResetGraph(0);
|
||||
InitGeom();
|
||||
|
||||
SetGraphDebug(0);
|
||||
|
||||
FntLoad(960, 256);
|
||||
SetDumpFnt(FntOpen(32, 32, 320, 64, 0, 512));
|
||||
|
||||
SetGeomOffset(320, 240);
|
||||
SetGeomScreen(SCREEN_Z);
|
||||
|
||||
SetDefDrawEnv(&db[0].draw, 0, 0, 640, 480);
|
||||
SetDefDrawEnv(&db[1].draw, 0, 0, 640, 480);
|
||||
SetDefDispEnv(&db[0].disp, 0, 0, 640, 480);
|
||||
SetDefDispEnv(&db[1].disp, 0, 0, 640, 480);
|
||||
|
||||
srand(0);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(col); ++i) {
|
||||
col[i].r = rand();
|
||||
col[i].g = rand();
|
||||
col[i].b = rand();
|
||||
}
|
||||
|
||||
init_cube(&db[0], col);
|
||||
init_cube(&db[1], col);
|
||||
|
||||
SetDispMask(1);
|
||||
|
||||
PutDrawEnv(&db[0].draw);
|
||||
PutDispEnv(&db[0].disp);
|
||||
|
||||
while (1) {
|
||||
cdb = (cdb == &db[0]) ? &db[1] : &db[0];
|
||||
|
||||
rotation.vy += 16;
|
||||
rotation.vz += 16;
|
||||
|
||||
RotMatrix(&rotation, &transform);
|
||||
TransMatrix(&transform, &translation);
|
||||
|
||||
ClearOTagR(cdb->ot, OTSIZE);
|
||||
|
||||
FntPrint("Code compiled using Psy-Q libraries\n\n");
|
||||
FntPrint("converted by psyq-obj-parser\n\n");
|
||||
FntPrint("PCSX-Redux project\n\n");
|
||||
FntPrint("https://bit.ly/pcsx-redux");
|
||||
|
||||
add_cube(cdb->ot, cdb->s, &transform);
|
||||
|
||||
DrawSync(0);
|
||||
VSync(0);
|
||||
|
||||
ClearImage(&cdb->draw.clip, 60, 120, 120);
|
||||
|
||||
DrawOTag(&cdb->ot[OTSIZE - 1]);
|
||||
FntFlush(-1);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
# PSX.DEV Sample Code
|
||||
|
||||
Uses the vscode extension to setup a working C project with a pcsx-redux instance used with GDB server functionality.
|
||||
Everything is built currently with make files which I want to simplify to not requiring if possible...
|
||||
My goal was to do the pikuma course mostly in assembly with some sys calls to help but now this is in the way..
|
||||
@@ -4,4 +4,9 @@ $path_code = join-path $path_root 'code'
|
||||
$path_scripts = join-path $path_root 'scripts'
|
||||
$path_toolchain = join-path $path_root 'toolchain'
|
||||
|
||||
# TODO(Ed): Custom hookup to launching pcsx-redux for hooking up to vscode with gdb server?
|
||||
$path_pcsx_redux = join-path $path_toolchain 'pcsx-redux'
|
||||
$path_pcsx_redux_vsprojects = join-path $path_pcsx_redux 'vsprojects'
|
||||
$path_pcsx_redux_binaries = join-path $path_pcsx_redux_vsprojects 'x64/Release'
|
||||
|
||||
$pcsx_redux = join-path $path_pcsx_redux_binaries 'pcsx-redux.exe'
|
||||
& $pcsx_redux
|
||||
|
||||
Reference in New Issue
Block a user