All Projects → ChrisRx → mipsel-ecoff-toolchain

ChrisRx / mipsel-ecoff-toolchain

Licence: MIT license
Net Yaroze cross compiler toolchain for linux

Programming Languages

c
50402 projects - #5 most used programming language
shell
77523 projects
objective c
16641 projects - #2 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to mipsel-ecoff-toolchain

wine vcpp
Using Visual Studio Compiler with Wine
Stars: ✭ 25 (-7.41%)
Mutual labels:  cross-compiler-toolchain
aapt-repo-manifest
aapt cmake 构建 核心repo manifest, 支持mac和linux(ubuntu 16.0.4)构建,支持linux(ubuntu 16.0.4)交叉编译windows的版本
Stars: ✭ 18 (-33.33%)
Mutual labels:  cross-compiler-toolchain
ewxb-gcc-cross-compiler-builder
A script for building a full GCC + glibc toolchain from scratch (with Go support via gccgo) in multiple stages.
Stars: ✭ 18 (-33.33%)
Mutual labels:  cross-compiler-toolchain
kindle-env
Development Environment for Kindle
Stars: ✭ 26 (-3.7%)
Mutual labels:  cross-compiler-toolchain
homebrew-macos-cross-toolchains
macOS cross compiler toolchains
Stars: ✭ 404 (+1396.3%)
Mutual labels:  cross-compiler-toolchain
gcc-cross-compiler
A script to cross-compile GCC toolchain for various target architectures.
Stars: ✭ 32 (+18.52%)
Mutual labels:  cross-compiler-toolchain
Duckstation
Fast PlayStation 1 emulator for x86-64/AArch32/AArch64
Stars: ✭ 2,888 (+10596.3%)
Mutual labels:  psx
PSXPackager
A utility to convert Playstation disc images in various formats to PBP format and back
Stars: ✭ 67 (+148.15%)
Mutual labels:  psx
LSDView
Data file viewer for LSD Dream Emulator.
Stars: ✭ 15 (-44.44%)
Mutual labels:  psx
OpenDriver2Tools
Driver 1 and Driver 2 tools
Stars: ✭ 25 (-7.41%)
Mutual labels:  psx
awesome-emu-resources
A curated list of emulator development resources
Stars: ✭ 26 (-3.7%)
Mutual labels:  psx
CTR-tools
Crash Team Racing (PS1) tools - a C# framework by DCxDemo and a set of tools to parse files found in the original kart racing game by Naughty Dog.
Stars: ✭ 93 (+244.44%)
Mutual labels:  psx
pseudo-js
PLAYSTATION emulator in JavaScript
Stars: ✭ 76 (+181.48%)
Mutual labels:  psx
pctation
PlayStation emulator & debugger in C++17
Stars: ✭ 103 (+281.48%)
Mutual labels:  psx
NasdaqCloudDataService-SDK-Java
Nasdaq Data Link provides a modern and efficient method of delivery for real-time exchange data and other financial information. This repository provides a Java SDK for developing applications using Nasdaq Data Link's real-time data.
Stars: ✭ 70 (+159.26%)
Mutual labels:  psx
symdump
Dumper for PSX SYM debug files
Stars: ✭ 28 (+3.7%)
Mutual labels:  psx
nolibgs hello worlds
Collection of PsyQ basic examples NOT using libgs
Stars: ✭ 88 (+225.93%)
Mutual labels:  psx
godot-psx-style-demo
Demo project featuring a collection of PS1 style shaders and materials for Godot engine.
Stars: ✭ 266 (+885.19%)
Mutual labels:  psx

mipsel-ecoff-toolchain

A cross compiler toolchain for the Sony Playstation Net Yaroze. The Net Yaroze SDK (included) uses the mipsel-ecoff target which has long since been considered obselete in GCC and therefore requires a much older version of GCC. Compiling these older versions of Binutils/GCC is achieved by using a modern version of GCC to compile an intermediate version of GCC that allows stepping backwards to the desired version (e.g. GCC v8.2.1 -> GCC v3.3.4 -> GCC v2.95.2). The final cross compiler is then able to cross compile the defunct combination of 32-bit MIPS (LE) and the ECOFF file object format used with the Net Yaroze SDK.

Building

If a PREFIX isn't given, it simply defaults to $PWD/yaroze.

./mipsel-ecoff-toolchain PREFIX=$PWD/yaroze

This will make folders during the build process: {build,sources,stamps}. These can be cleaned up also using make clean.

Originally, I was building this toolchain in a docker container, but ultimately found it not necessary on the OSes I was working with (Ubuntu and Arch Linux). However, others have had success building this toolchain on a different OS/platform using docker. For example, docker-yaroze has compiled Net Yaroze executables successfully on macOS. I'm unfamiliar with the docker environment on Windows, but the capability to run linux containers should be roughly the same (probably through WSL). In any case, it's worth giving a look if you are needing to build on a non-linux OS.

Compiling the sample

The sample project is one included with the Net Yaroze SDK and can be used to verify that the toolchain is working:

cd <PREFIX>/mipsel-ecoff/sample/sjiscode
make

Should produce a binary that looks like this:

$ file main
main: MIPSEL ECOFF executable (paged) not stripped - version 2.11

Running executables

Since Net Yaroze executables are not PSX-EXE files (PS1 executable format) they cannot be loaded into an emulator or CD iso builder. The Net Yaroze Boot Disk (DTL-S3035) runs a program that listens for serial I/O commands and loads the entire Net Yaroze SDK into memory. At this point, SIOCONS.EXE can be used to load the Net Yaroze executable at the correct starting address and the serial command to execute whats loaded into memory can then be sent. It is possible to prebuild a PSX-EXE that loads a bare Net Yaroze executable in a similar way by combining it with the SDK into a single PSX-EXE file. To do this, I've adapted the https://github.com/gwald/Yarexe tool (itself also a combination of the work of others) into eco2exe over in the repo I currently keep assorted psx/ny dev tools. I adapted it with the hopes that it will be slightly more portable and maintainable as a Go project.

With a valid PSX-EXE it can now be ran in emulators that can load the PSX-EXE format (mednafen, NO$PSX) or a PSX CD image can be made with something like https://github.com/Lameguy64/mkpsxiso.

Resources

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].