Welcome to Sauce's PS2 Linux page
 
 
 Main   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Introduction

On this site you'll be able to find some of the stuff I'm working on for my PS2 Linux kit. If you don't know about the PS2 Linux kit then please visit www.playstation2-linux.com.

sauce is making a game

Check out my blog, http://window.terratron.com/blog/ for details.

sps2

If there's only one of my PS2 Linux projects that you pay attention to, this should be the one. sps2 is a kernel module combined with a small library of inline functions that exposes much of the PS2 to user-space applications in Linux. This enable developers, for example, full access to the DMAC without the need for the libps2dev libraries, and without suffering any of the performance penalties of a context switch or numerous memory allocations with each DMA transfer.

Combined with a number of good demonstrations and a development framework supplied by Sparky and Hikey, sps2 gives PS2 Linux developers a much closer programming experience to the native PS2 development environment that professional developers have access to. Some of the technical demonstrations included with sps2 show that Linux+sps2 can provide similar performance to applications directly written on the T10K development machine.

For more about sps2, see http://www.playstation2-linux.com/projects/sps2/

svvudb - Sauce's Visual VU Debugger

Sauce's Visual VU Debugger, or svvudb for short, is a multi-window GUI- driven for vector unit code. This is *NOT* an emulator, instead, it allows you to trace through code running on VU0 or VU1.

svvudb allows you to debug UNMODIFIED applications. Applications which can run at full speed until you wish to debug them, and running them within the debugger yields no performance degredation (unless, of course, you're stepping through code).

The svvudb interface can be run directly on the PS2 (optionally displaying to a remote PC using X-Windows) as well as on a Linux PC and on a Windows PC.

View vector unit code disassembly, inspect and change memory and register contents, add/remove breakpoints or single-step through your code.

Some of the more advanced features of svvudb allow you to parse and view GIF tags in a tree-like structure and to control the output of the GS. The GS output control allows you to set the GS to display the back buffer so that as you step through your code you can see the image being constructed. This is useful in many ways, for instance in determining whether or not there is a lot being drawn "behind" the nearest pixels (wasting a lot of time) and in finding the source of undesirable artifacts that appear on the screen.

svvudb running on a Windows PC. Click for a larger sized imagesvvudb's GIF tag explorer on a Windows PC. Click for a larger sized image
The two images above show screen shots of svvudb running on a Windows PC. The one on the left shows most of the svvudb windows as well as the command prompt from which svvudb was launched. The one on the right shows the GIF Explorer parsing and displaying the contents of a GIF packet located in VU1 memory. Click on either image for a larger view.


Slightly old copy of svvudb running on a PS2 displaying on a Linux PC. Click for a larger sized imageSlightly older copy of svvudb running on a PS2 displaying on a Linux PC. Click for a larger sized image
The two images above show slightly older versions of svvudb running on a linux system. Newer versions of the linux version of svvudb look extremely similar to the Windows version displayed above. Click on either image for a larger view.


saucetetris

A tiny little tetris clone I'm working on. It's proving to be a good test-bed for some of the routines I'm developing plus a good learning exercise on ps2 development.

Download saucetetris-0.1.0.tgz a binary-only preview.

gsvnc

I'm working on a VNC compatible server that will display the frame buffer of the GS.

February 16, 2004: Update: gsvnc-0.1.3 is now out!

gsvnc-0.1.3.tgz

New with this version of gsvnc is support for SPS2 applications with control of frame buffer viewing, the ability to pause the application as well as to pause/resume VNC downloads.

Please see the README file for the specific keys that can be used. Also, please download sps2-0.4.0 or later for GSVNC support.

Not all VNC viewers seem to work equally well with GSVNC. I've had no trouble with linux VNC viewers but newer versions of RealVNC on Windows don't seem to be working properly. Windows users are encouraged to use TightVNC or to grab this older AT&T VNC Viewer

GSVNC displaying the blow libps2dev sample. Click for a larger sized image
Above is an image captured in a linux VNC viewer running the blow libps2dev demo. Click for a larger image.


GSVNC displaying the SPS2 head model viewer. Click for a larger sized image
GSVNC displaying the SPS2 bumpmap demo. Click for a larger sized image
The images above show the new GSVNC with SPS2 support. These captures are taken using this vnc viewer on Windows. They show three views of the same frame: the render buffer the Z buffer with 24 bit Z values mapped directly onto R,G,B and a gray-scale image of 8 bits out of the 24 bit Z buffer. Click for larger images.


Previous versions of gsvnc
(about gsvnc-0.1.2)
gsvnc-0.1.2 fixes a minor bug of 0.1.1 which was causing it to take 100% cpu, particularly with no active connections.

(about gsvnc-0.1.1)
This new version is much more stable and CPU friendly than the previous one! I highly suggest upgrading to it. Remember, you'll need to remove the kernel module and flush out the shared memory area if you have the previous version still running (or you could just reboot your ps2)
Here's a screen shot
The project is made up of two components:
gsvnc_mod
A kernel module which intercepts calls to the /dev/ps2gs ioctl interface and updates a shared buffer after every N frames
gsvncd
A VNC server daemon that provides clients with a view into this shared buffer
Download:
gsvnc-0.1.3.tgz

An older versions:
gsvnc-0.1.2.tgz
gsvnc-0.1.1.tgz
gsvnc-0.1-alpha.tgz

Please let me know if you're interested in contributing to this project. I'm stopping work on this at least for the time being to work on 3D model conversion software. This is at a phase where, even though very buggy, it's useable to me.

Samba File System

I know a lot of people have been asking about mounting samba shares on their PS2's...

Since I've already compiled it, I'm posting the samba file system module you need in order to do so. Just download smbfs.o and put it in your /lib/modules/2.2.1/fs/ directory (create it if it doesn't exist).

You MAY need to run something to install it (I can't remember) if smbmount still doesn't work, try /sbin/depmod -a

Image Converter

I've mocked up a quick'n'dirty image converter. Currently, it accepts a jpeg file and outputs .dsm assembly compatible with the basic3d sample provided by Sony.

Download image2dsm-1.0.tgz the source and binary.

If you'd like to try it with the basic3d sample, run:

image2dsm <256x256 jpg filename> My_texture1 > flower.dsm

And replace the flower.dsm provided by Sony with the one just produced.

Note: Make sure it's a 256x256 jpeg!