GithubHelp home page GithubHelp logo

ps2gdb's Introduction

ps2dev

GitHub Workflow StatusGitHub Workflow StatusDocker Pulls

Main PS2 Repo for building the whole PS2 Development environment in your local machine.

This program will automatically build and install the whole compiler and other tools used in the creation of homebrew software for the Sony PlayStation® 2 videogame system.

What these scripts do

These scripts download (git clone) and install:

Requirements

  1. Install gcc/clang, make, cmake, patch, git, texinfo, flex, bison, gettext, wget, gsl, gmp, zlib, mpfr and mpc if you don't have those packages.
  • Ubuntu
sudo apt -y install gcc g++ make cmake patch git texinfo flex bison gettext libgsl-dev libgmp3-dev libmpfr-dev libmpc-dev zlib1g-dev
  • Fedora/CentOS
sudo dnf -y install gcc make cmake patch git texinfo flex bison gettext gmp-devel mpfr-devel libmpc-devel zlib-devel
  • Alpine
apk add build-base cmake git texinfo flex bison gettext gmp-dev mpfr-dev mpc1-dev zlib-dev
  1. Optional. If you are upgrading from the previous version of the PS2DEV environment, it is highly recommended to remove the content of the PS2DEV folder before upgrade. This is a necessary step after the major toolchain upgrade.
sudo rm -rf $PS2DEV
  1. Ensure that you have enough permissions for managing PS2DEV location (which defaults to /usr/local/ps2dev, but you can use a different path). PS2DEV location MUST NOT have spaces or special characters in its path! PS2DEV should be an absolute path. On Unix systems, if the command mkdir -p $PS2DEV fails for you, you can set access for the current user by running commands:
export PS2DEV=/usr/local/ps2dev
sudo mkdir -p $PS2DEV
sudo chown -R $USER: $PS2DEV
  1. Add this to your login script (example: ~/.bash_profile) Note: Ensure that you have full access to the PS2DEV path. You can change the PS2DEV path with the following requirements: only use absolute paths, don't use spaces, only use Latin characters.
export PS2DEV=/usr/local/ps2dev
export PS2SDK=$PS2DEV/ps2sdk
export GSKIT=$PS2DEV/gsKit
export PATH=$PATH:$PS2DEV/bin:$PS2DEV/ee/bin:$PS2DEV/iop/bin:$PS2DEV/dvp/bin:$PS2SDK/bin
  1. Run build-all.sh
./build-all.sh

Docker generation

This repo also uses CI/CD to create a docker image called ps2dev/ps2dev:latest per change. This is useful if you're a developer that wants to create/port an application to the PS2. You can compile your project using this docker image.

Extra steps

If you want, you can JUST install the extra dependencies ps2client and ps2-packer. To achieve this, execute the following:

./build-extra.sh

macOS

If you download the pre-built macOS binaries and get a security error such as "ps2client" cannot be opened because the developer cannot be verified., you can remove the quarantine attribute by running:

xattr -dr com.apple.quarantine path/to/prebuilt/ps2toolchain

Thanks

ps2gdb's People

Contributors

akuhak avatar fjtrujy avatar mlafeldt avatar uyjulian avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ps2gdb's Issues

How to use it?

Hello,
Not sure if this should be an issue but I have been giving a try and reading into the internet but I didn't find a way to make it work.
Basically I would like to be able to debug our PS2 elf applications. The main functionality that I see as a must-have to have breakpoints and a way to inspect the value of variables.

Do we have more information about how to use it? In this case, should we improve our Readme?

Pinging @sp193 because most probably he is the one that knows more about this.

Thanks

fail build with latest PS2SDK

make -C ee
make[1]: Entering directory '/tmp/makepkg/ps2dev-ps2gdb-git/src/ps2gdb/ee'
ee-gcc -D_EE -O2 -G0 -Wall -g  -I/usr/ps2/sdk/ee/include -I/usr/ps2/sdk/common/include -c ps2gdbStub.c -o ps2gdbStub.o
ps2gdbStub.c: In function `getpacket':
ps2gdbStub.c:402: warning: implicit declaration of function `strlen'
ps2gdbStub.c: In function `handle_exception':
ps2gdbStub.c:1086: warning: implicit declaration of function `strcpy'
ps2gdbStub.c: In function `gdbstub_net_open':
ps2gdbStub.c:1282: warning: implicit declaration of function `SifLoadModule'
ps2gdbStub.c:1287: warning: implicit declaration of function `ps2ip_init'
ps2gdbStub.c:1299: warning: implicit declaration of function `memset'
ps2gdbStub.c:1312: warning: implicit declaration of function `disconnect'
ps2gdbStub.c: In function `gdb_stub_main':
ps2gdbStub.c:1437: warning: control reaches end of non-void function
ee-gcc -D_EE -O2 -G0 -Wall -g  -I/usr/ps2/sdk/ee/include -I/usr/ps2/sdk/common/include -c gdb-low.S -o gdb-low.o
ee-ar cru ../lib/libps2gdbStub.a ps2gdbStub.o gdb-low.o
ee-ar rcs ../lib/libps2gdbStub.a ps2gdbStub.o gdb-low.o
make[1]: Leaving directory '/tmp/makepkg/ps2dev-ps2gdb-git/src/ps2gdb/ee'

Regarding gdb

Hello, apparently somewhere down the line GDB made a breaking change to their remote protocol.
I've spend countless hours try to compile older gccs, older gdbs etc with no success.
Do you have any ideas on what I can do?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.