PS2 Julian's various PS2 projects (Worklog)

You can work with C (PS2SDK&Toolchain "ps2dev"), with JavaScript (Athena), with LUA (Enceladus), Java (Java-grinder), SDL (PS2SDK-ports) and so on.

There are also interesting libs/APIs to interface with, like ps2gl, gskit and so on (for graphics) or even simple stuff like the bad libs.
 
Is that on the roadmap?
There are no plans at this time

Also if I wanted to start developing for the PS2 and start contributing.

What skills would I need and how would you recommend I get started?

I have a degree in compsci but it's been over a decade since I've done anything with hardware or C#.
Embedded and bare metal programming. Raspberry Pi Pico is a nice way to start since there is lots of documentation for it and is available cheaply (~4 usd)
 
I just found out that I can actually just change the ABI being used by using the -mabi command line argument of gcc.
This may give me more data and make it easier to write my eabi to n32 calling convention converter.
 
Little tidbit:

50k models support booting from XFROM (external flash rom), and they include a copy of XFROMMAN in their ROMs.
But this requires a network adapter/SPEED chip that also supports that feature.

But what is the point of this, when the HDD is right there and can be booted from?

These models have a feature in their mechacon:
scheduled wakeup feature (yellow LED, sceCdReadWakeUpTime, sceCdWriteWakeUpTime, sceCdGetWakeUpReason)

If booting from XFROM entirely skips the OSDSYS intro, it could be useful with the above feature as it does not require spinning up the hard disk or playing a loud sound/displaying an image on the screen. Could implement a feature like WiiConnect24 on the Wii or PlayStation Plus automatic save sync / update check.

...but they never did that. I suspect the release of HDLoader caused them to drop all their future plans for HDD functionality.
 
The documentation of the EABI and the n32/n64 ABIs as used in the dyncall library:

https://dyncall.org/docs/manual/manualse11.html#x12-79000D.7.1
https://dyncall.org/docs/manual/manualse11.html#x12-82000D.8.1

I think major differences are the following:

1. first 8 arguments are always put on the stack in EABI (and also passed by register), compared to N32 where it is passed by register
2. float arguments position differ:
Example argument list: int x1, float x2, float x3, int x4
For EABI, they start at the argument register beginning. The registers used are a0: x1, a1: x4, f12: x2, f13: x3
For N32, they are interleaved. The registers used are a0: x1, f13: x2, f14: x3, a3: x4
 
These models have a feature in their mechacon:
scheduled wakeup feature (yellow LED,
I "knew" it!!! I mentioned that quite a while ago. I think that was still on psx-scene.com!
If booting from XFROM entirely skips the OSDSYS intro, it could be useful with the above feature as it does not require spinning up the hard disk or playing a loud sound/displaying an image on the screen.
Also keep the "open source network/multi adapter" idea in mind! ;)
 
Okay, so it looks like H.264 has multiple profiles which may affect the decoding performance.

The ones I care about is Constrained Baseline Profile and High Profile.
So there are more conditions I need to benchmark, and can't use Cisco's OpenH264 for High Profile decoding unfortunately...

---

I wonder if ATAPI HDDs exists (that is, they accept SCSI commands through the ATA packet interface, not the ATA HDD interface) and the OS compatibility for them... ATAPI might be simpler to implement than ATA HDDs, simply because there already exists open source SCSI emulation code in e.g. BlueSCSI and ZuluSCSI...
 
Last edited:
I would like to figure out how to do a offline PS2 linux install.

That is, install PS2 linux from a different machine without running its installer. Then maybe I can upload the rootfs or disk image somewhere where other people can simply partition, format, then unpack.

I'm also thinking of containerizing Red Hat Linux 6.2...
 
Some information about manipulating Red Hat install CDs:

https://tldp.org/HOWTO/RedHat-CD-HOWTO/
https://web.archive.org/web/20010605133821/http://www.scyld.com/~pzb/rhcd.html

When making a ISO image, make sure you are using the "mkisofs" from cdrtools package. Do not use the "mkisofs" programs from other packages like genisofs or xorrisofs as it will not set the executable flags correctly in the filesystem, causing the installation to fail.

How to generate the disk image readable on PS2 (no master patch, no wobble, no DVD video, MecahPwn force unlock only)
Code:
mkisofs -udf -v -r -T -J -o /path/to/output.iso /path/to/input/directory

How to write the disk image to CD:
Code:
sudo wodim -eject -tao  speed=2 dev=/dev/srX -v -data /path/to/input.iso
where X is the drive number

How to write the disk image to DVD:
Code:
sudo growisofs -dvd-compat -Z /dev/srX=/path/to/input.iso
where X is the drive number

How to write the disk image to BD:
PS2 can't read BDs. And you might fry the laser if you try anyways, so don't try it.
 
Last edited:
PS2 Linux won't fit on a CD because it is too large (bigger than 1GB, compared to 700MB you can fit on a CD)

However, you can trim down the contents of the disc since those aren't used for boot or installation:
Code:
SM_PDF
SOURCES
SRPMS
dummy.dat
misc
sm_pdf
vcl

For the PS2 Linux beta disc, that is good enough to get under 700MB.
However, for the PS2 Linux release 1.0 disc 2, the current trimmed size is barely above 700MB.

However, it is possible to squeeze a bit more size reduction to fit it under 700MB by recompressing the RPM files using zopfli.
By doing this, it is possible to fit all packages on a CD.

Some issues and their possible solutions:
Exec error: Wrong permissions set; make sure you are using "mkisofs" from cdrtools package (and not any other package that contains a program with the same name)
Signal 10 error right at end of install with red background / installation program (Anaconda) goes too fast: The MD5 hash and/or the size of the archive as indicated in the RPM signature header is invalid. I wrote scripts to fix this
Signal 11 error at post-installation step: Probably same issue as above
Installation gets stuck at a point and disc drive becomes quiet: Your disc and/or laser probably has an issue
 
A tidbit about RedHat Linux 5.2/6.2 (not RHEL) installation:
The archive server at archive.download.redhat.com / legacy.redhat.com errors when trying to download any iso files.
It tries to redirect to the ftp server, but the directory does not exist on the ftp server.
Upon further investigation, the contents of the ftp server is the same as ftp.redhat.com.
When investigating the IP address, all three subdomains point to the same 209.132.178.32 IP address.

What I suspect is that this is a misconfiguration of SNI. SNI is used to identify which content to serve based on the domain name.
HTTPS supports SNI, but FTP (not SFTP or FTPS) does not. So since the ISO links on the HTTPS server always redirect to the FTP server, and the FTP server does not support SNI, it will assume the contents produced are those of ftp.redhat.com, which does not have the correct directory structure as legacy.redhat.com.


...However, installation using the ISO files is not the only option. It is possible to install from a NFS, HTTP, or FTP server using the "bootnet.img" boot disk.

In that case, you will need to mirror the contents of the HTTPS server onto a server supporting one of those three protocols. This can be done using wget --recursive option.
 
Once I've verified that the installation works as expected, I'll upload trimmed CD images (of beta and release PS2 Linux), pre-installed rootfs tarballs, memory card PSU files, and pre-installed HDD files (MBR partition format, with 1024MB swap first and 4096MB root ext2 filesystem second, so that the ext2 filesystem can be extended to the end easily without moving stuff around)

Just need to wait on the extra SATA SSDs I ordered before I continue working on that.

The extraction of the rootfs tarballs will take much, much less time than 48 minutes used for installation on an actual PS2 with trimmed CD images.

This is mainly so I can get a reference point for my PS2 Linux reproducibility reference.
It will allow me to develop the process/workflow so that I can then use that workflow on newer PS2 SCE software that uses Linux.
 

Similar threads

Back
Top