mirror of
https://github.com/Ed94/pikuma_ps1.git
synced 2026-06-01 18:41:13 -07:00
more progress on psyq program build script
This commit is contained in:
@@ -17,14 +17,14 @@ scoop install lua
|
||||
[armips](https://github.com/Kingcom/armips)
|
||||
|
||||
* Supports doing bare-metal assembly for the ps1
|
||||
* `scoop install armips`
|
||||
* `scoop install armips` or just clone and build..
|
||||
|
||||
[pscx-redux](https://github.com/grumpycoders/pcsx-redux/): A collection of tools, research, hardware design, and libraries aiming at development and reverse engineering on the PlayStation 1.
|
||||
|
||||
* Used as the runtime sandbox emulated the ps1
|
||||
* Has hookups to behaving as a gdb server which can be utilized with the gdb client in vscode.
|
||||
* Supports symbolic info emitted by armips
|
||||
* pysq library has been sucessfully adjusted for modern compiler usage (see: src/)
|
||||
* pysq library has been sucessfully adjusted for modern compiler usage (see: `src/`)
|
||||
|
||||
[MIPS Toolchain (from pscx-redux)](https://static.grumpycoder.net/pixel/mips/)
|
||||
|
||||
@@ -39,9 +39,9 @@ scoop install lua
|
||||
|
||||
* Original official SDK
|
||||
* Modernized using obj parser to extract info for GNU toolchain usage.
|
||||
* Can be utilized effectively with the includes below
|
||||
* Can either grab from arthus [psyq-4.7-converted-full.7z](https://psx.arthus.net/sdk/Psy-Q/psyq-4.7-converted-full.7z) or [psyq-4_7-converted-light.zip](psyq-4_7-converted-light.zip)
|
||||
* The light version omits the link modules (object files), just keeps the static archives.
|
||||
* Can be utilized effectively with the includes below
|
||||
|
||||
[psyq_include_what_you_use](https://github.com/johnbaumann/psyq_include_what_you_use/)
|
||||
|
||||
|
||||
@@ -86,10 +86,12 @@ $path_nugget_common = join-path $path_nugget 'common'
|
||||
|
||||
|
||||
function assemble-unit { param(
|
||||
[string]$
|
||||
)
|
||||
$compile_args_asm += $f_debug
|
||||
$compile_args_asm += @(
|
||||
[string] $unit,
|
||||
[stirng] $link_module,
|
||||
[string[]]$include_paths,
|
||||
[string[]]$user_compile_args
|
||||
)
|
||||
$compile_args = @(
|
||||
$f_arch_mips1,
|
||||
$f_arch_abi32,
|
||||
$f_arch_fp32,
|
||||
@@ -100,34 +102,33 @@ function assemble-unit { param(
|
||||
$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)
|
||||
$compile_args += $f_no_stdlib
|
||||
$compile_args += $f_freestanding
|
||||
$compile_args += ($f_include + $path_nugget)
|
||||
|
||||
$compile_args += $user_compile_args
|
||||
|
||||
|
||||
}
|
||||
|
||||
function compile-unit { param(
|
||||
[string]$module,
|
||||
[string]$unit
|
||||
[string]$unit,
|
||||
[string]$link_module,
|
||||
[string[]]$include_paths,
|
||||
[string[]]$user_compile_args
|
||||
)
|
||||
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 = @()
|
||||
$compile_args += $f_code_sections
|
||||
$compile_args += $f_data_sections
|
||||
|
||||
$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 += @(
|
||||
$compile_args += $f_wno_attributes
|
||||
$compile_args += $f_freestanding
|
||||
$compile_args += $f_omit_frame_ptr
|
||||
$compile_args += $f_no_builtin
|
||||
$compile_args += $f_no_stdlib
|
||||
$compile_args += $f_no_strict_alias
|
||||
$compile_args += @(
|
||||
$f_arch_mips1,
|
||||
$f_arch_abi32,
|
||||
$f_arch_fp32,
|
||||
@@ -140,19 +141,21 @@ function compile-unit { param(
|
||||
$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 += ($f_include + $path_psyq_imyu_inc)
|
||||
$compile_args += ($f_include + $path_nugget)
|
||||
|
||||
$compile_args += $user_compile_args
|
||||
|
||||
|
||||
}
|
||||
|
||||
function link-modules { param(
|
||||
|
||||
|
||||
)
|
||||
[string] $elf,
|
||||
[string[]]$link_modules,
|
||||
[string[]]$user_link_args
|
||||
)
|
||||
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
|
||||
@@ -172,8 +175,6 @@ function link-modules { param(
|
||||
$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)
|
||||
|
||||
@@ -206,6 +207,8 @@ function link-modules { param(
|
||||
$link_args += ($f_link_lib + $lib)
|
||||
}
|
||||
|
||||
$link_args += $link_modules
|
||||
|
||||
$elf = Join-Path $path_build "SpinningCube.elf"
|
||||
$final_link_args = @($link_args) + ($f_output + $elf)
|
||||
|
||||
@@ -215,9 +218,9 @@ function link-modules { param(
|
||||
& $Compiler $final_link_args
|
||||
if ($LASTEXITCODE -ne 0) { write-error "Linking failed. Aborting."; exit 1 }
|
||||
}
|
||||
|
||||
function make-binary { param(
|
||||
|
||||
[string]$elf,
|
||||
[string]$exe
|
||||
)
|
||||
Write-Host "`n--- Creating Final Binary ---" -ForegroundColor Cyan
|
||||
$exe = join-path $path_build "SpinningCube.ps-exe"
|
||||
@@ -229,6 +232,14 @@ function make-binary { param(
|
||||
}
|
||||
|
||||
function build-hello_psyqo {
|
||||
$compile_args = @()
|
||||
$compile_args += $f_debug
|
||||
$compile_args += $f_optimize_none
|
||||
# $compile_args += $f_optimize_size
|
||||
|
||||
$link_args += $f_debug
|
||||
# $link_args += $f_optimize_size
|
||||
|
||||
|
||||
}
|
||||
build-hello_psyqo
|
||||
@@ -30,7 +30,7 @@ push-location $path_armips_build
|
||||
& cmake --build . --config Debug
|
||||
pop-location
|
||||
|
||||
$path_pcsx_redux_vsprojects = join-path $path_pcsx_redux 'vscprojects'
|
||||
$path_pcsx_redux_binaries = join-path $path_pcsx_redux_vsprojects 'x64/Release'
|
||||
# $path_pcsx_redux_vsprojects = join-path $path_pcsx_redux 'vscprojects'
|
||||
# $path_pcsx_redux_binaries = join-path $path_pcsx_redux_vsprojects 'x64/Release'
|
||||
|
||||
$psyq_obj_parser = join-path $path_pcsx_redux_binaries 'psyq-obj-parser.exe'
|
||||
# $psyq_obj_parser = join-path $path_pcsx_redux_binaries 'psyq-obj-parser.exe'
|
||||
|
||||
Reference in New Issue
Block a user