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.
 
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.
 
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
Above is an image captured in a linux VNC viewer running the blow libps2dev
demo. Click for a larger 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!
|