 |
|
|
 |
We have 248 guest(s) and 0 member(s) online.
You are an anonymous user. You can register for free by clicking here
|
|
 |
 |
|
|
 |
May 22 marks the official release of Sony's PS2 Linux kit in North America
and Europe, while Japanese users have been tinkering with their kits for
about a year (in beta release; the official release for Japan was last month).
To give you something to do while waiting for your package to arrive in
the mail, Codingstyle has interviewed several people in the PS2 development
community, including two people from Sony Computer Entertainment America,
Inc. (SCEA) and Sony Computer Entertainment Europe, Ltd. (SCEE). For more,
please read on.
May 22 marks the official release of Sony's PS2 Linux kit in North America
and Europe, while Japanese users have been tinkering with their kits for
about a year (in beta release; the official release for Japan was last month).
To give you something to do while waiting for your package to arrive in
the mail, Codingstyle has interviewed several people in the PS2 development
community, including two people from Sony Computer Entertainment America,
Inc. (SCEA) and Sony Computer Entertainment Europe, Ltd. (SCEE). For more,
please read on.
While this interview primarily focuses on development
using the PS2 Linux kit, the official kit is not the only way that hobbyist
developers are involving themselves with the PS2. The second method involves
coding directly for the PS2 itself, and the community around this effort
is known collectively as "PS2DEV". Paraphrasing from the official PS2DEV web site,
"PS2DEV has become the keyword on the Internet to identify the home brew
development community. These are people that use open source, GPL &
free software to develop programs for their vanilla PS2. PS2DEV is concerned
with building the community and tools to make it easier for anyone to get
started programming their PS2.". Codingstyle included a couple of people from the PS2DEV community as well.
Also, Codingstyle ran an earlier PS2 Linux Kit Roundup which contains some helpful links to documentation and related material you might find useful to get started with.
The following individuals participated in this interview:
- Adam Bertsch , Sony Computer Entertainment America, Inc.
- Sarah Ewen , Sony Computer Entertainment Europe, Ltd.
- M.R. Brown , PS2 Linux and Linux on Dreamcast hobbyist
- "now3d" , PS2 Linux and PS2DEV hobbyist
- Brandon Cook PS2 Linux hobbyist
- Joan Touzet PS2 Linux hobbyist
- "Oobles" PS2DEV hobbyist
The interviews were conducted via e-mail over the span of a couple of weeks.
Participants were free to answer those questions which were applicable to
their area of involvement. Some answers have been edited for clarity and
brevity.
Codingstyle: Could you tell us a bit about your background,
your involvement with PS2 development, and what projects you have worked
on so far?
M.R. Brown: I'm an aspiring Linux kernel hacker
with a very strong penchant towards embedded systems running Linux. I've
done small homebrew development on other game consoles, such as the PSX and
Sega Dreamcast. The Linux on Dreamcast (LinuxDC) project was my first "official"
foray into mainstream kernel development. LinuxDC mainly concerns itself
with improving device driver and kernel support on the Dreamcast, and because
of my (continuing) work on that project, I was able to gain enough experience
to start working on the existing port of Linux to the PS2.
I'm currently a developer on the xrhino-kernel project found at playstation2-linux.com
website, and I manage the binutils project at the same site. I have a few
other PS2/Linux related projects that are currently in the "pipe dream" stages
- they aren't worth mentioning. My involvment with all PS2/Linux projects
is purely personal, and I only hack on these projects in my spare time.
Brandon Cook: I'm currently a student in college, planning on using the kit as a target for my project (HyperCube - http://playstation2-linux.com/projects/hypercube/) and hoping to gain some useful experience that can be placed on a resume.
Sarah Ewen:
I finished my Masters in Computing a couple of years ago, and got into Linux
in my early days at University. I worked as a programmer for ArsDigita until
just before they were bought by Red Hat, and then I came to work for SCEE
on all Linux kit related matters. Because of our situation here (we don't
have a PlayStation on-line store), the majority of my involvement so far
has been spent on making sure we have all the logistics in place to cope
with distributing the kit. But I've also managed to take the kit out to shows,
expos, and user groups, to try and give people some access to it before they
have to part with their hard earned cash.
now3d: I've had one for 7 months now; I'm also using it at work for some un-announced stuff.
I have been using the 3D example programs, evaluating the current libs and
the processing capabilitys that it has. I can not say any more at the present
time.
Adam Bertsch: My background is in System Administration.
With VA Linux Systems (now VA Software), I worked on the Sourceforge OnSite
project, which is the basis of our Linux for Playstation 2 community website.
Oobles:
I'm a developer, consultant and what ever other hat people want to put on
my head to earn me a dollar. I got involved with programming the PS2 because
I found the hardware facinating. The multiple processor architecture of
the PS2 appealled to my interest in concurrent programming concepts. I've
always thought that concurrent programming across threads and cpu's is the
direction of programming. The PS2 clearly demonstrates the advantages and
challenges of developing for this type of environment. That and the fact
the PS2 is a games machine meant I could play games and have some fun.
I haven't purchased the PS2 Linux kit. The Linux kit includes a hardware
abstraction layer and linux operating system that would get in the way of
programming directly to the hardware. I and others in the PS2DEV community
use free tools and USBUSB link cable to connect the PS2 with a PC. Using
a program called naplink loaded onto the PS2 and PC I'm able to transfer
programs directly to the PS2.
I think the PS2 Linux kit and PS2DEV
methods of development are very different. The PS2 Linux kit provides people
with a great way to learn about linux and maybe even write some graphics
programs using the PS2 GL examples. PS2DEV on the otherhand means a developer
needs to understand a lot more about the hardware and PS2 system calls to
get basic programs working. For my interests the PS2 Linux kit would just
get in the way.
I've been part of the PS2DEV scene since about April last year when I put up the web site ps2dev.livemedia.com.au
. I think I've spent more time on the web site than actually programming
my PS2. The site provides tutorials, news, forums and information about
programming the PS2 directly. Other than that project I've also written
a tutorial on programming the IOP, the IO processor of the PS2.
Joan Touzet:
I've been a programmer since 1981 (my first computer was a PDP-11/34A),
and have been working professionally in the IT industry since 1989. Part
of that time was also spent in college and graduate school earning a Bachelor's
and Masters' in Electrical and Computer Engineering. Little did I realize
that my graduate research on VLIW processors and heterogeneous computing
archite ctures would come into play for a hobbyist project! I've had the
PS2 Linux Kit since it was beta released here in Japan last year.
Codingstyle: How much of your time are you able to devote to working with this new kit?
Sarah:
Right now, hardly any. I've had to focus on distribution issues and making
sure that SCEE offices right across Europe, Africa, the Middle East, Australia
and New Zealand are aware of the kit, and what it is. A couple of weeks
back I found myself talking to our customer service phone support staff,
trying to explain everything from the philosophy of open source to how to
do a successful Linux install.
My time with the kit has mainly been
spent on getting familiar with the distribution, putting on some eye-candy
for expos and shows, briefly poking around example code, trying a version
of Opera out which we hope they will release soon (we had some trouble getting
it to run), and looking at any interesting demos or projects I come across.
I've barely had time to work on any improvements for playstation2-linux.com
so far - my sandbox is probably already out of sync, as we've needed all
our time to get every department to approve the procedures and website content
required for the release date. I'll work on some improvements to our community
site as well as PS2 Linux projects.
Oobles: Recently I haven't
had much time for working on the PS2. When I actually get to write code
for the PS2 its usually all done within a short period of time. Work commitments
generally stop me from spending too much time at the PS2. I might have a
bit more time for the PS2 now that I've just got myself a new notebook.
I could even pack the PS2 and notebook and have a complete development environment
when I'm on the road.
Adam: About half of my time is spent
on the website and the kit, and the other half on System Administration projects
for the rest of the SCEA R&D group.
now3d: Not much, I'm really at the planning stage of how to use it for something.
M.R. Brown:
Heh, I'm a consultant, which means I'm responsible for managing my own time...
that can be more of a hurt than help sometimes. I have a lot of other projects
on my plate, but I plan on spending a fair amount of my spare time playing
with Linux on the PS2.
Joan: Unfortunately, not as much as
I would like. While I have free time at work, it's a bit conspicuous to
have the unit on display there. So I code at the office and spend evenings/weekends
debugging and testing. It's been slow going to say the least.
Brandon:
Unfortunately not enough ;), hopefully a few hours a day of hacking time
will be enough to get HyperCube in a decent state by end of this summer.
Codingstyle: How could a newcomer to this platform most quickly bring him
or herself up to speed with getting started developing for it?
M.R. Brown:
I don't think it's as simple as "read the hardware manuals". The hardware
manuals provided by Sony are excellent for referencing the instruction sets
used by the PS2 CPU and coprocessors, as well as learning the theory and
design decisions that went into the graphics and CPU hardware. However,
they don't tell you how to actually use the hardware, which is most important for a newcomer to the system.
I think the best thing to do if you're starting off is to play with the add-on
libraries privided by Sony and open source developers such as ps2gl, ps2stuff,
and SDL. These libraries demonstrate how to access the PS2 hardware using
the interfaces exposed by the kernel. There's also a few sparse documents
that detail the driver APIs used by the kernel device drivers.
now3d: Learn OpenGL, use Linux, use GCC, program on other embedded systems or games consoles like PSX.
Joan:
If you just want to see things working, I especially recommend looking at
the stuff in /usr/doc/PlayStation2 directory. You'll get English and Japanese
text files describing the run-time engine (RTE) as well as some subdirectories
with examples ready-to-compile. Just add 'make' and go.
Alternately,
you can use the SDL and Mesa libraries and code the old fashioned way. Expect
poor performance though, on the order of a Pentium 120, if you're doing full
screen SDL, even with dirty rectangles.
Oobles: There's plenty
of information out there now for getting started with PS2DEV. The tutorials
by now3d, Dreamtime and myself together form a very good starting point for
either programmers on windows or linux.
The absolute minimum requirements
are a little different depending on if you have a PAL or NTSC model PS2.
The PAL PS2s come with a Demo disk. This combined with a Naplink disk and
PL2301 USB-USB cable is enough to load your own programs onto the PS2. To
boot naplink on an NTSC model I believe requires a mod-chip, but I could
be wrong there.
The next important element for developing for PS2 is the compilers. The web site http://ps2dev.sf.net/
includes the latest versions of compilers that are suggested people should
use. There's even step-by-step instructions at my site to help people with
installation.
Adam: Reading the system manuals shipped with
the kit will certainly help, and I recommend becoming familiar with a supported
API (like SDL) to get yourself started.
Brandon: Read Ars Technica's analysis of the EE @ http://www.arstechnica.com/reviews/1q00/playstation2 /ee-1.html.
Sarah:
Well, depending on what you want to develop...brush up on your C, read the
hardware manuals when your kit arrives, look at the projects already on playstation2-linux.com,
and all the documentation provided in the libps2dev RPM that installs to
/usr/doc/PlayStation2.
There's an ArsTechnica article about the
different style of programming that is required to make use of the PS2's
parallel architecture, which is worth a read.
I'm hoping we'll get
a good tutorial section together on playstation2-linux.com that will help
people who are new to programming the PS2.
Codingstyle: What are the major differences between developing for the PS2 platform as opposed to developing in the x86 world?
Adam:
The Playstation was designed with a very different strategy for displaying
graphics information. There's not enough video RAM to store everything you
could possibly ever want in there. The idea is to use a fast bus and the
capabilities of the vector units to stream data to the GS. This will be
a pretty big shift for many x86 game programmers.
now3d: Only
4MB VRAM HURTS! X is limited, by the Sony implementation, but it is workable.
It would be better if it was hard coded for PS2 but its OK in its current
state for the moment.
M.R. Brown: The PS2 is an embedded MIPS
RISC architecture, and it has some very strong differences to the legacy
x86 architecture. Some of the more striking differences are the requirement
of power-of-two-aligned data structures in RAM, instruction and data cache
handling, and of course, the radically simplified, fixed-size RISC instruction
set.
Besides being a conforming MIPS architecture, the design of the
Emotion Engine (the central processor and coprocessors that power the PS2)
itself can be confusing to newcomers. The PS2 can be considered a "parallel"
architecture, but not in the same sense as x86 SMP systems. There's a lot
of work that goes into utilizing the high-speed graphics and vector processing
pipeline, and that's not easily achieved unless you take the time to learn
the details of the EE's subsystems.
I suggest that anyone who is interested in learning the MIPS architecture start with the excellent book See MIPS Run
(by Dominic Sweetman, Morgan Kaufmann Publishers; ISBN: 1558604103). There's
also a couple of articles that introduce the PS2 hardware specifically, those
can be found at Ars Technica (http://www.arstechnica.com).
Architectural differences aside, if a developer is only interested in the
high-level abstractions that Linux on the kit provides, then they will be
able get by with SDL, OpenGL, and other standard Linux libraries. They will
never need to care about how the PS2 hardware works underneath it all. However,
they will never be able to get the most out of the PS2 hardware, unless they
learn to directly access the more esoteric PS2 hardware components.
Sarah:
That answer changes depending on what you want to write. If you want to
write something using OpenGL or SDL, it's not a whole lot different, because
implementations of those exist for PS2 Linux. If you want to write something
which uses the native PS2 approach to building display lists for the GS using
the libraries we've provided, you'll get the most of the hardware, but you'll
have to learn a lot about it. We've included a tool called VCL which we provide
to PS2 Developers, that helps to optimise any assembler that you write for
the vector units.
Joan: With isolation layers like SDL and
Mesa, very few. You'll want to read up on the R5900 modifications to the
toolchain (toolchain_en.txt in /usr/doc/PlayStation2) and learn what all
those -f flags do, if you don't understand them already.
At a lower
level, if you're used to programming directly to an x86 graphics engine,
don't expect it to be present on the PS2-Linux, or even for an analog to
exist. Rather, draw yourself a nice bath, print out sections of the VPU
manuals, and read away. Having a firm understanding of vector algebra would
be beneficial, as would multiprocessing experience and/or SIMD-type processor
knowledge.
Codingstyle: Have you attempted to port source from
other platforms over to the PS2? What kinds of issues have been the trickiest
to work with?
Sarah: I've compiled a fair few Linux apps
over, but none of them have required any degree of porting. The most common
changes are altering includes to use the header files available, and fiddling
with Makefiles. People will find the older versions of KDE and Gnome included
make life difficult if you want to compile something newer from either of
those projects.
M.R. Brown: Thus far, I've been involved with
the (half-finished, in my opinion) kernel port. The main issue that I've
run into was the lack of solid GNU toolchain support for the Emotion Engine.
In particular, the GNU binutils toolchain is antiquated, as the EE support
was added somewhere between binutils 2.9 and 2.10, and was never updated
after that.
This wouldn't be a problem if the newer GCC toolchains
(the GCC 3.0.4 patch that supports the EE) didn't rely on some of the more
advanced features that the more recent binutils provides. One of my projects
on playstation2-linux.com is an effort to upgrade the EE support in binutils
to binutils 2.12 and beyond. This has proved to be a somewhat daunting task,
since large portions of binutils were rewritten and many new features added
since the release of the original EE toolchain. I hope to have a release
available sometime next month.
Going back to the kernel port, there's
a lot of work that needs to be done to get the kernel in shape for submission
to the mainline. Sony has a working port (what's shipped with the kit, or
available online), but it's far from complete and there are a few glaring
errors and inconsistencies. The developers on the xrhino-kernel project
plan to upgrade the Linux 2.2.1 kernel provided by Sony to a more recent
2.2.20 version, and streamline the kernel as much as possible to the PS2's
hardware. Also, there's work being done to add IEEE 1394 (Sony's iLink)
support to the kernel.
We plan to eventually port the 2.2.20 kernel
to the 2.4 series. We're also examining the possibility of submitting PS2-specific
patches to the kernel maintainers for the 2.5 development series, but that's
a long way off.
Joan: Yes, see my XMAME port for the PS2
on the main PlayStation2 Linux page. Porting wasn't particularly difficult
initially, but I was dissatisfied with the default PS2 pad joystick driver
in the kernel (that emulates /dev/js0). It doesn't recognize the second
joystick, doesn't support the actuators, nor the full pressure-sensitive
mode. Not all are supported under xmame yet either, but I've got more working
now than the standard driver would handle. (My personal ambition is to get
Q*Bert's thumper mapped to the PS2 actuator.)
In the process I realized
that xmame's input routines were rather weak, and rather than fix a special
case (PS2-Linux), I'd rather help everyone out and rewrite the input routines
as well. You may find as well that special hacks necessary to get the PS2-Linux
setup optimized for a particular port requires more extensive modification
than you originally realized. If that's the case, don't keep hacking on
your bit -- do the right thing, contact the product's administrator, and
work together to make a better product. After all, this kit is about supporting
OSS, and what better time to help out positively?
now3d: All UN*X command line stuff ports fine. GUI stuff is ok, but the GNOME and KDE is so old you may have to hack a little.
Adam:
I've done some "easy" ports that are mostly just a recompile. I haven't
had a lot of time to tackle more complex ports since the website is still
very much under development.
Codingstyle: What tools are you using
for developing applications for PS2 Linux? Any favorite tools? If so, why
is it your favorite?
now3d: I develop on Linux; I have
the drives mounted over SAMBA/NFS so my best tool is another Linux installation.
This helps with booting from the network as well.
Joan: At
the moment, my favorites: vim, gcc, make, and more vim. Though given the
compile speed on the unit itself (quite slow, even reniced to -19) I may
be pressed to set up a cross-compilation environment. Soon I'll also delve
into the profiling tools, as performance continues to suffer.
M.R. Brown:
Nothing out of the ordinary, just vim for source editing, and binutils and
GCC for cross-compilation. I don't personally subscribe to any more tools
than those.
Adam: All of the standard Linux development tools
will work quite nicely for developing code for your Playstation 2. Which
tool to use is a matter of personal taste, and it's certainly a bad idea
to start the VI/Emacs war a-new :)
Sarah: Vim! There's no integrated
development environment provided or anything, but an editor and the libraries
provided are all you need. Kevin Holbrook from Metrowerks is trying to drum
up enthusiasm for a version of CodeWarrior for the Linux kit, but I think
he'd need expressions of interest in the thousands to make progress.
Oobles: We don't have many tools other than the compilers for PS2DEV at the moment. My favourite is PS2LIB.
Codingstyle: What do you see as the most pressing needs for this new development
platform that potential developers could make an impact with?
Adam:
What is needed depends on what people decide to do with the kit. We certainly
expect some media players, games, and demos to come out of the Linux kit...
but beyond that, who knows? What is developed for the kit will really only
be limited by the imagination of developers using the kit.
now3d:
Games; the kit has a limited appeal, and it's fairly low powered, so only
games or hobby programmers will find it that useful I think.
Sarah: Plenty of people want to see a driver for the firewire port.
Brandon: FireWire support would be very useful and would likely lead to alot of cool projects.
Joan:
Right now the best thing to do would be to continue to code up some sample
usages of the various devices available. I plan on releasing a little test
harness I built for the PS2 pad controller so everyone can see how the various
device ioctls work. Anything to continue to push this hardware to its limits
would be great. (Personally I'd like to see the IEEE 1394 port working so
I can connect my external CD drive to the PS2.)
Codingstyle: What do you consider as being the most exciting project currently being worked on?
Sarah:
From a Linux point of view, newer versions of the xRhino kernel that offer
stuff like support for ext3 will be fun. From a graphics point of view, it's
all interesting, I can't wait to see what people develop. I've heard of all
kinds of wacky ideas. After the kit is released, I'm sure the number of projects
we host will run into the hundreds.
Brandon: HyperCube of course!
;) Other than that, I'm looking forward to firewire support being added and
I'm sure a lot of people will be downloading the MAME port from the playstation2-linux
website...
Adam: Currently the xRhino kernel is probably the
most interesting to me. It is my hope to see the most recent stable versions
of the Linux kernel on the Playstation 2 soon. The xRhino effort is the
first, and so far appears to be the most successful, of these efforts.
M.R. Brown:
The xrhino-kernel port and binutils project, of course :). Seriously, I
don't think there is any one project that's better than the rest. There
are new projects popping up on playstation2-linux.com every day, and there
are already a large number of projects maintained by Japanese kit owners.
I think that all of these projects are equally useful as far as getting
folks inspired and developing, which is what I'd like to see. More coding, less talking.
I am more interested in the original game projects though...I think we'll
see some amazing things come from both single and team-based homebrew developers.
now3d: The main distribution, and PS2GL the OpenGL implementation.
Joan:
Optimization and improvement of things like the ps2gl layer so that people
can really get to the heart of what makes the platform special quickly.
I'm fully aware that 2D graphics like xmame aren't a perfect match for the
PS2's video subsystem...but given the existence of an excellent GL-like layer
I might be provoked to port some other creations to the machine.
Oobles:
I think the best project so far has been PS2LIB. This library was started
by Gustavo Scotti last year and since then a lot of different people have
added to it. For anyone wanting to do something useful with the PS2 this
library provides many of the system calls required. Theres still bits missing
from the library, but its demonstrated a real sense of community between
developers in the way that many people have added their knowledge.
I'm really interested in getting some USB drivers for devices like USB Ethernet
running. I think that would add a whole new dimension to programming the
standard PS2. I've already identified a USB ethernet driver and the light
weight IP driver which would provide TCP/IP on a standard PS2.
Codingstyle: What kinds of hardware specifications has Sony provided? Are they complete? Is there anything missing?
now3d:
Some are missing; it's all done though an interface layer that we dont have
the source to, so we get a faily abstract view of things. But we have all
CPU manuals, etc; they just dont give us the encryption decoders :P
Joan:
You've got pretty much everything you need for what's supported out of the
box. Obviously, IEEE 1394 support would be a boon, so any of you out there
familiar with such devices should get on it as soon as possible. There also
seems to be no direct support for DD 5.1 audio streams.
Because the
RTE isolates you from direct interfacing with the pads, CD/DVD and the like,
you're missing information about those units. It's a shame, partially because
that means you're slaved to the RTE (which seems to be doing almost everything
using PIO, by the way), and partially because I like to see the way various
devices are directly interfaced (as an old device driver author myself.)
But it shouldn't prevent you from accessing everything you need to make
this hardware shine.
Brandon: They've provided documentation
for the EE and GS. Documentation on the EE gives you an overview of the
different devices of the chip (CPU, VPU's, IPU, DMAC, etc.) and there is
more thorough documention outlining the CPU and its instruction set as well
as the VPUs and their instruction set. The documentation for the GS is very
thorough, but I believe it leaves a few registers undocumented.
Basically,
if you are sticking to userland and are focusing on games or applications
that take advantage of the PS2's unique hardware, you shouldn't have any
problems - if you're a kernel hacker you might find the documentation a bit
thin, however kernel hacking is not my thing so I would take my opinion with
a grain of salt...
Sarah: We've provided 6 out of the 7 hardware
manuals that we give professional PlayStation 2 developers, verbatim. The
last one is the manual for the IOP, which isn't included because we provide
access to the IOP through a software interface (the Run Time Environment).
M.R. Brown:
Sony provides translated manuals for the Emotion Engine, Graphics Synthesizer
and Vector Processing Units. Because high-level access to the I/O Processor
(IOP) is closed within the kit, there is no manual for the IOP. The hardware
manuals that are provided are complete, save for the missing register information
for each hardware component described. You are provided with details of
the hardware registers, but not register I/O memory addresses.
The
most documentation I've found comes from the undocumented Linux kernel source,
and the add-on libraries provided on playstation2-linux.com: ps2gl, ps2stuff,
and SDL. I suggest that anyone interested in the "how" of the PS2 hardware
read through these sources. The kernel sources may be a bit steep for the
average user, but the following is a list of places to start reading (assuming
you're already in the linux/ top-level source directory):
drivers/ps2/ - Memory card filesystem driver, ethernet adapter driver, t10k (TOOL) support. include/asm-mips/ps2/ - RunTime Environment (RTE) parameter info, PS2 support headers. arch/mips/ps2/ - PS2 boot code and support routines.
There's also PS2 hardware support splattered throughout the rest of the kernel
source, a grep of "CONFIG_PS2" should return the relevant sources.
The great thing about the source-level documentation is that you won't have to wait until the kits release to read them.
Adam:
We've provided system manuals for all of the components except the IOP and
SPU. These devices are only accessed through the RTE with the kit.
Oobles:
I believe that with the PS2 Linux kit Sony has provided a number of documents
about the hardware of the PS2. For a little while we thought they would
open these documents to the PS2DEV community; however they have decided to
keep the documents copyrighted and only available if you purchase the PS2
Linux kit.
The is already quite a lot of information available for
PS2DEV programmers. There is also more of an emphasis on understanding MIPS
assembler so we can work out how other PS2 programs work. The real hard
work has already been done and put into PS2LIB.
Codingstyle: What
are the differences between the Japanese PS2 kit and the North American one?
Are there any issues which are likely to affect developers?
Sarah:
Some of the Japanese PS2s have a PCMCIA port for expansion, rather than
the expansion bay inside the unit. The hard drives for these are external,
with PCMCIA connectors. The HDD for other units just looks like a standard
IDE hard drive, although I think there's some extra firmware involved. I've
no idea if there are any differences between the PS2 units in Japan and elsewhere
anymore, but I doubt they'd affect developers at all.
Adam:
In Japan some playstation models require an external HDD. From a software
point of view, these will appear identical and function in the same way.
M.R. Brown:
Well, the original Japanese Beta Kit (released sometime summer 2001) was
shipped with a PCMCIA-based ethernet and IDE interface, since PCMCIA was
the expansion method used in the first wave of Japanese PS2s. Later, Sony
manufactured PS2s with an internal drive bay and a rear expansion port, and
dropped the PCMCIA port - these are the PS2s that North America ended up
with.
Because of the hardware abstraction provided by Linux, I don't
see any issues developing for the Japanese kit versus the North American
one.
Joan: I couldn't answer this one, but I've heard it's
basically the same DVD (with boot-up checks for your PS2's region). The
Japanese PS2 kit I have was originally the beta release, about a year old
now, with an upgraded DVD (v1.0 DVD came out here about a month ago now.)
My PS2 is a 15000 model, meaning it has the PCMCIA connector on it and an
external HDD instead of an internal bay and that proprietary "expansion"
connector. I kinda like knowing I could stick another PCMCIA card in there
if I wanted to, but since it would eliminate me using the Ethernet port or
the HDD, it's a moot point for Linux-PS2.
Oh, and the keyboard is
a Japanese model, meaning I can enter Japanese characters directly. For
those of you who don't write/read Japanese, this isn't a big loss.
Codingstyle: Any chance of running binary applications from other MIPS platforms, such as Irix? If not, why not?
now3d:
No, they would need recompiling, as its a different architecture; just same
design overall. Also, Irix uses fp (frame-pointer) which is not used by
the PS2.
Adam: I don't think so, but I'm not enough of an expert
to say for sure. I'm not aware of any other platforms that would provide
binary compatability with the Emotion Engine's R5900 core.
Joan:
After having administered Irix for a few years, I can say that I really
don't care much about other MIPS platforms :) But I haven't explored this
at all, so anything I'd say would be a wild-assed guess.
Brandon:
Well there are several problems in trying to run SGI binaries not the least
of which is that the SGI binaries are written for big endian systems whereas
the PS2 is little endian. Also you would likely run into the problem of
IRIX applications trying to use libraries/facilities that aren't available
on the PS2 or Linux. So you're probably going to have to do quite a bit
of emulation to get the code to run on the EE & Linux correctly.
M.R. Brown:
It may be possible to do some sort of "soft emulation", like what WINE and
VMWare uses to achieve fast execution of native x86 applications. However,
I don't really see the point of this [Ed: Setiathome ;-) ], as most
of the applications that were developed for IRIX-based workstations were
tuned to be high-performance graphics programs. This is not to say the PS2
is incapable of high-performance graphics, it is, but the PS2 memory constraints
(32MB onboard RAM) would prevent most IRIX programs from running at any usable
speed.
This would also be somewhat dependant on the particular processor
being emulated. I remember IRIX running on everything from MIPS R4000 to
MIPS R14000, and the later CPU variants would be much more difficult to emulate
at any reasonable speed (some of these are true 64-bit architectures, which
the PS2 is not).
I see it as being possible, but not really feasible.
It's easier to find and purchase a used or remanufactured SGI workstation
instead.
Sarah: I don't think so. You'd have to recompile from
the source. The Emotion Engine is only one type of MIPS processor, and it's
been customised. They may not have the same endian-ness too.
Codingstyle: What do you hope to be doing with your PS2 say, in a year's time?
Oobles:
I'd like to see more people involved with the PS2DEV community so that more
tools and applications become available. I'd like to think that the community
can bring together enough tools to make it possible to build reasonable quality
3D games with sound and internet connectivity.
Adam: I hope to be sitting on my couch, surfing the web, getting my e-mail, and checking out the latest cool demo.
Brandon: Playing HyperCube! (which implies that I would have completed the project. ;) )
Joan:
I'd like it to be a standalone unit for my kitchen and living room, where
I can browse on a flat panel display, pipe music into the room, play MAME
games (of course!) and pull up recipes from my extensive collection. It'd
show slideshows & home movies from my collection (courtesy of Bluetooth
and/or my digital still camera's output). Basically, it's a form of MMPC
that doesn't require all the overhead or noise. Though I've been working
with technology for 21 years, I prefer my technology to be hidden away.
This unit, above most others I've seen, promises just that.
M.R. Brown: Still playing fun games and toying with the internals of the system. :)
Sarah:
I wake up, and boot my PS2. While I munch through my cornflakes, it displays
the news headlines, and tells me that my brother just broke my latest high
score and I have to go beat him. Then I review my mail using voice recognition,
fix the bug that was defying me at 2am the night before, and spend the rest
of the day designing the ultimate weapon that will get me back in the number
1 slot on that high score table.
I hope that I'll be so spoilt for choice, that choosing what I'd like to do with my PS2 is overwhelming.
now3d: Getting paid to work on it? £££ would be nice.
Codingstyle: Any closing thoughts, comments?
Joan:
Sure. Just because your PS2 has an incredible 3D engine doesn't mean you
should forget the lessons of 2D games. More and more these days I don't
play the latest releases because they're all the same: fighting games with
"increased realism," racing games, and more first person shooter games.
There used to be quite a larger variety of games, and not all of them were
geared towards the male 15-30 gaming audience. Try programming a cooperative
instead of competitive game. Explore the idea of using 3D to provide an
essentially 2D game with 3D texture and relief, instead of demonstrating
your graphical prowess with another spurt of blood. I'd wager to say that
you'd do well -- the best selling games out there still tend to be less violent
ones (The Sims, Rollercoaster Tycoon, even Dance Dance Revolution!) that
appeal to all walks of life. M.R. Brown: I initially had strong
reservations about Sony's initial release of the PS2 Linux kit in Japan.
This was because I was part of the PSX homebrew development scene (Net Yaroze),
and Sony was definitely not interested in supporting anything wasn't part
of their Net Yaroze product. This had the unfortunate effect of putting
a large number of homebrew developers off, and we resigned to developing
for the system with information we gathered ourselves. The PS2 homebrew
community has started down the same path, but the kit promises to reshape
how we develop for the system.
After talking directly with SCEA employees
and hearing Sony's intentions, I have only good things to say about their
work on the kit. Sony truly wants to foster open development on the PS2,
something that has never been done on any other console gaming system. Open
communitites (including Sony), hardware documentation, and modern tools will
go a long way to ensure the PS2 remains the dominant gaming and hacking platform during its lifetime.
Because of the way the kit was designed, it's not just limited to developers
working under Linux. You have the option of developing "native" PS2 applications
and loading those from memory card without booting Linux. This makes the
kit equally useful for homebrew developers not interested in Linux. Hopefully
the community at large will keep a cool head and not try to use the kit for
wrongdoing.
now3d: Roll on PS3 :)
Sarah: The
Linux kit is a two headed beast; while offering a pretty complete Linux distribution
that enthusiasts will enjoy playing with, it also serves as the next-generation
Net Yaroze in a much more open form. I'd ask the community that grows around
the Linux kit not to forget the dual purpose role that the Linux kit serves,
and entertain queries about games and graphics development just as much as
they do about getting services and applications running and configured properly.
Hopefully, the website will grow and develop to offer a useful and informative
resource to both the graphics programmer and the Linux enthusiasts; but this
will take some consideration from the community as well as ourselves.
Codingstyle: Thank you!
Useful PS2 development resources: Like interviews? Codingstyle also did an earlier developers interview with several key contributors to the wxWindows cross-platform applications framework project. Check it out!
About the interviewer:
The interview was conducted by Steve Frampton, the owner of codingstyle
who runs it in his spare time. Steve is Canadian but is currently living
in Japan, employed for a dot-com in Tokyo as a Unix software engineer, working
primarily with C++ and PostgreSQL. He has been playing with the Japanese
version of the Linux kit since it was officially released at the end of April,
but hasn't done much with it other than use it as a NASD device for his main
PC. :-)
|
 |
 |
| |
 |
|
|
 |
| Don't have an account yet? You can create one
. As a registered user you have some advantages like a theme manager, comments
configuration and posting comments with your name. |
|
|
| | Comments are owned by the poster. We aren't responsible for their content. |
Re: Codingstyle Interview with PS2 Linux Developers (Score: 1) by mrbrown (-) on May 22, 2002 - 11:03 AM (User info | Send a Message) http:// | I'd like to clarify a couple misconceptions Oobles states in his first response:
"The Linux kit includes a hardware abstraction layer and linux operating
system that would get in the way of programming directly to the hardware.
I and others in the PS2DEV community use free tools and USBUSB link cable
to connect the PS2 with a PC. Using a program called naplink loaded onto
the PS2 and PC I'm able to transfer programs directly to the PS2."
And further down:
"The absolute minimum requirements are a little different depending
on if you have a PAL or NTSC model PS2. The PAL PS2s come with a Demo disk.
This combined with a Naplink disk and PL2301 USB-USB cable is enough to load
your own programs onto the PS2. To boot naplink on an NTSC model I believe
requires a mod-chip, but I could be wrong there."
The hardware abstraction the Oobles is referring to is called the Runtime
Environment, or RTE. It provides a library interface to the I/O Processor
(IOP) similiar to the one professional developers use, except instead of
being linked to the program (Linux) it's loaded into RAM before Linux boots.
There are _no_ abstractions or restrictions on the rest of the PS2 hardware,
including the GS, EE, and vector units.
The PS2LIB library that Oobles refers to throughout the interview also
contains the same IOP abstraction routines that the PS2/Linux RTE provides.
In fact, the routines present in PS2LIB were developed by reverse-engineering
third-party PS2 executable code, which means they're essientially the same
routines as those provided by the RTE.
While the Naplink USB transfer program is certainly useful for sending
programs to a remote PS2, getting the Naplink program booted on a vanilla
PS2 (which most kit owners have) is another story. As Oobles states himself,
you either require a cumbersome swap trick (only works in certain PS2 models)
or you have to void your warranty by installing a modchip device. This raises
the bar considerably for those who want to go to the PS2DEV route, and it
isn't necessary if you use a few of the undocumented features of the kit.
One of the most surprising features about the kit is how the Linux kernel
is loaded into RAM and executed: the kernel ELF file (a common executable
format that's also used on the PS2) is stored to the memory card, and the
PS2/Linux bootloader loads it into RAM and executes it. However Sony allows
you to place _any_ ELF executable on the memory card to be loaded. This
means that any native PS2 program, even those written by PS2DEV enthusiasts,
can be loaded without a swap trick or modchip. This is how the NetBSD and
eCos teams were able to port their respective operating systems to the PS2.
Once could conceivably place a Naplink-like transfer program to be loaded
in lieu of the kernel, and have the same facilities as a PS2DEV hobbyist
- the possibilites of using this technique are endless.
Refer to my last response in the interview - the Linux kit is equally
beneficial for all PS2 hobbyists, both those interested in Linux and those
who aren't. If you're serious about learning how to write programs for the
PS2 hardware I would highly recommend getting it. |
|