WIP updated homebrew toolchain for PS2

Discussion in 'General PS2 Discussion' started by uyjulian, Aug 25, 2018.

  1. 100
    153
    97
    uyjulian

    uyjulian Developer

    Joined:
    May 27, 2017
    Messages:
    100
    Likes Received:
    153
    Trophy Points:
    97
    Gender:
    Male
    Here's some information about the new WIP toolchain.
    ps2toolchain (uyjworking branch): https://github.com/uyjulian/ps2toolchain
    gsKit (ujworking branch): https://github.com/uyjulian/gsKit
    ps2sdk-ports (merge_stuff branch): https://github.com/uyjulian/ps2sdk-ports
    Quick start:
    Code:
    echo 'export PS2DEVUJ=/usr/local/ps2devuj' >> ~/.bash_profile
    echo 'export PS2SDKUJ=$PS2DEVUJ/ps2sdk' >> ~/.bash_profile
    echo 'export PATH=$PATH:$PS2DEVUJ/bin:$PS2DEVUJ/ee/bin:$PS2DEVUJ/iop/bin:$PS2DEVUJ/dvp/bin:$PS2SDKUJ/bin' >> ~/.bash_profile
    source ~/.bash_profile
    git clone https://github.com/uyjulian/ps2toolchain.git
    cd ps2toolchain
    git checkout origin/uyjworking
    ./toolchain.sh
    
    Stuff may break or not work on the new toolchain, so if you are starting out new, I advise you to use the old toolchain: https://github.com/ps2dev/ps2toolchain
     
    Last edited: Aug 26, 2018
    Anonamous, bguerville, TnA and 4 others like this.
  2. 100
    153
    97
    uyjulian

    uyjulian Developer

    Joined:
    May 27, 2017
    Messages:
    100
    Likes Received:
    153
    Trophy Points:
    97
    Gender:
    Male
    Here's what will probably happen: EE will be held back at binutils 2.25.1 and GCC 6.3.0, while the IOP toolchain will be continuously updated to latest binutils and GCC combos. I'm not well-versed in binutils and GCC changes, so I'll leave it at that.

    Someone is working on a LLVM/Clang toolchain for the EE.

    If you need assistance with this toolchain, feel free to pop open #psugnd on freenode.

    Here's what already happened: EE and DVP will be held back at binutils 2.25.1, but the rest will be using latest GCC and binutils. It works so far.
     
    Last edited: Sep 9, 2018
    TnA and STLcardsWS like this.
  3. 100
    153
    97
    uyjulian

    uyjulian Developer

    Joined:
    May 27, 2017
    Messages:
    100
    Likes Received:
    153
    Trophy Points:
    97
    Gender:
    Male
    gsKit has been updated and fixed.
     
    TnA likes this.
  4. 677
    327
    97
    TnA

    TnA Member

    Joined:
    Jul 1, 2018
    Messages:
    677
    Likes Received:
    327
    Trophy Points:
    97
    Gender:
    Male
    Location:
    Germany --> Saxony
    gskit works? Interesting!

    Does any project compile on it 'right out of the box'?
     
  5. 100
    153
    97
    uyjulian

    uyjulian Developer

    Joined:
    May 27, 2017
    Messages:
    100
    Likes Received:
    153
    Trophy Points:
    97
    Gender:
    Male
    No, you have to change the makefile to point it to the new toolchain, and you have to fix any errors (example: wrong l-value assignment)
     
    TnA likes this.
  6. 100
    153
    97
    uyjulian

    uyjulian Developer

    Joined:
    May 27, 2017
    Messages:
    100
    Likes Received:
    153
    Trophy Points:
    97
    Gender:
    Male
    I'm working on patches for upstream ps2sdk and ps2toolchain that will cleanup the code and merge some newlib changes. This will reduce the amount of non-upstreamed code in my branch.
     
  7. 100
    153
    97
    uyjulian

    uyjulian Developer

    Joined:
    May 27, 2017
    Messages:
    100
    Likes Received:
    153
    Trophy Points:
    97
    Gender:
    Male
    GCC 9 will transition to bugfixes on November 11 and regression fixes and documentation fixes on January 6.

    Binutils 2.31.1 has been released a while back, and I'm planning to update to that version.

    I need to fix gsKit so all the samples will work properly. The hires sample complied with my toolchain will error on my PS2 TOOL for some reason.
    I should eventually upstream the working patches, and fix the old patches that differ from upstream.

    libc-test: https://github.com/AssemblyScript/libc-test
    Information about the GCC C unit test suite: https://gcc.gnu.org/onlinedocs/gccint/C-Tests.html
     
    Last edited: Nov 12, 2018
    akuhak, Anonamous, klx and 3 others like this.
  8. 100
    153
    97
    uyjulian

    uyjulian Developer

    Joined:
    May 27, 2017
    Messages:
    100
    Likes Received:
    153
    Trophy Points:
    97
    Gender:
    Male
    I updated gsKit and PS2SDK. The samples I tried work in PCSX2, but I haven't tested on a real PS2 yet.

    GCC 9 is in the stabilization phrase (Stage 4). I won't touch my toolchain fork (update Binutils or GCC) until GCC 9.1 is released.

    fileXioInit seems to hang. I need to figure out why.
     
    Last edited: Feb 17, 2019
    Anonamous, TnA, jolek and 1 other person like this.
  9. 52
    12
    12
    Anonamous

    Anonamous Forum Noob

    Joined:
    Aug 26, 2018
    Messages:
    52
    Likes Received:
    12
    Trophy Points:
    12
    Occupation:
    Electrical Engineering Student
    Doh, that explains it. I thought it was something I was doing wrong lol. If I remember correctly from yesterday it's gets stuck in an infinite loop on the call to SifBindRpc. res = 0
     
    akuhak and TnA like this.
  10. 708
    390
    122
    Louay

    Louay Member

    Joined:
    Jan 23, 2017
    Messages:
    708
    Likes Received:
    390
    Trophy Points:
    122
    Gender:
    Male
    Occupation:
    College student
    Location:
    Tunisie
    Home Page:
    @uyjulian sir can u you help i want create a modified OSDSYS how can i make it and how to edit splash screen of ps2 boot , FreeMCB....?
     
  11. 100
    153
    97
    uyjulian

    uyjulian Developer

    Joined:
    May 27, 2017
    Messages:
    100
    Likes Received:
    153
    Trophy Points:
    97
    Gender:
    Male
    There is no easy way to do that.

    Also, why did you post on this topic instead of making a new topic?
     
  12. 708
    390
    122
    Louay

    Louay Member

    Joined:
    Jan 23, 2017
    Messages:
    708
    Likes Received:
    390
    Trophy Points:
    122
    Gender:
    Male
    Occupation:
    College student
    Location:
    Tunisie
    Home Page:
    @uyjulian i catch only here thats why i post here :p can you send me a pm and tell me which steps do i need to take , i know that there is no easy way to do this
     
  13. 100
    153
    97
    uyjulian

    uyjulian Developer

    Joined:
    May 27, 2017
    Messages:
    100
    Likes Received:
    153
    Trophy Points:
    97
    Gender:
    Male
    I don't have any documentation written right now.

    However, when I do, you will be one of the first to know.
     
  14. 708
    390
    122
    Louay

    Louay Member

    Joined:
    Jan 23, 2017
    Messages:
    708
    Likes Received:
    390
    Trophy Points:
    122
    Gender:
    Male
    Occupation:
    College student
    Location:
    Tunisie
    Home Page:
    thank you :)
     
  15. 677
    327
    97
    TnA

    TnA Member

    Joined:
    Jul 1, 2018
    Messages:
    677
    Likes Received:
    327
    Trophy Points:
    97
    Gender:
    Male
    Location:
    Germany --> Saxony
    @Louay: I suggest that someone like @STLcardsWS splits the related stuff to another thread and then I think there might be various users contributing to it.
     
  16. 21
    31
    62
    akuhak

    akuhak Member

    Joined:
    Jul 4, 2017
    Messages:
    21
    Likes Received:
    31
    Trophy Points:
    62
    @uyjulian
    1. Is it possible to port these changes into your fork? commit1 and commit2 .
    This will allow you to get rid of lc, lm and crt0. Example
    Some projects are already moved to simplified make flags and sometimes it is difficult to get these flags back.
    I was trying to port these changes by myself but failed... Something goes wrong.

    2. I made tests with different GCC version and unfortunately only GCC v6 (and v5) is working stuff for me. I was testing fceumm-ps2 stuff with travis matrix and precompiled docker images (link for travis output). I can confirm that ps2sdk samples and gsKit samples are working in all GCC versions (v5, v6, v7, v8) but fceumm-ps2 is working only with gcc5 and gcc6. I also tested different versions of newlib - it seems this is not source of problem.
     
  17. 100
    153
    97
    uyjulian

    uyjulian Developer

    Joined:
    May 27, 2017
    Messages:
    100
    Likes Received:
    153
    Trophy Points:
    97
    Gender:
    Male
    @akuhak
    1. Yes, it is possible.
    2. If you can give me an isolated test case, it would help immensely.
     
  18. 21
    31
    62
    akuhak

    akuhak Member

    Joined:
    Jul 4, 2017
    Messages:
    21
    Likes Received:
    31
    Trophy Points:
    62
    @uyjulian
    Now transfer.sh is dead so it is more difficult to proceed tests. I can only post here results of my isolated tests.
    1) I realised that fceumm-ps2 doesn't work work when binutils 2.25.1 are mixing with binutils 2.31. So my first step I left only 2.25.1 Anyway it is better not to mix different versions
    2) I created special branch for isolated testing: https://github.com/AKuHAK/ps2toolchain/tree/new_gcc_teset_all_in_one. Added 3 environment variables for easy switch between versions.
    Code:
    ENV BINUTILS_VERSION 2.25.1
    ENV GCC_VERSION 6.3.0
    ENV NEWLIB_VERSION 3.0.0
    3) Created ps2sdk fork adopted for newest toolchain and based on up-to-date ps2sdk: https://github.com/ps2homebrew/ps2sdk/tree/test1
    3) I created various docker images based on this branch. It takes really long time - almost whole day until all images were built.
    4) I tested my gsKit fork adopted for newest toolchain. All docker images were fine - all samples (except hires) were working fine. https://github.com/AKuHAK/gsKit/tree/patch-5
    4) Then I created travis matrix for testing all images. Each image compiled working elf file. But some elf files failed to show main menu.
    5) After tests I confirmed that binutils should be 2.25.1 only, GCC version should be less then v7, newlib can be any version.
     
    Anonamous, uyjulian and TnA like this.
  19. 52
    12
    12
    Anonamous

    Anonamous Forum Noob

    Joined:
    Aug 26, 2018
    Messages:
    52
    Likes Received:
    12
    Trophy Points:
    12
    Occupation:
    Electrical Engineering Student
    So for clarity, is the move to gcc 9.1 still planned or will it be reverted to pre 7?
     
  20. 100
    153
    97
    uyjulian

    uyjulian Developer

    Joined:
    May 27, 2017
    Messages:
    100
    Likes Received:
    153
    Trophy Points:
    97
    Gender:
    Male
    Still planned
     
    Anonamous likes this.

Share This Page