Net Yaroze on the Mac OS
Volume Number: 13
Issue Number: 12
Column Tag: Alternative Environments
Net Yaroze on the Macintosh OS
by Ed Ringel, with Jeremy Vineyard
Is game console development for you? MacTech takes a
lightning tour of Net Yaroze on the Mac OS
Introduction
Most of us like to play games, and some of us would also like to write our own. Besides
desktop computers, there are console systems on the market specifically designed for
playing games. Nintendo, Sega, Sony, and Atari are just a few manufacturers of these
systems. Until recently, game console game development has been the exclusive domain
of commercial developers. Presumably, in this way only the best quality games will be
created for their systems, and will thus most effectively promote their product. Sony
has created a different option, a way for hobbyists to create games for the Sony
PlayStation, without participating in the professional developers program. This
program is called "Net Yaroze," pronounced Yah-RO-zay.
Net Yaroze
What it is
Net Yaroze is Sony's development package that gives hobbyist developers access to the
PlayStation OS. Net Yaroze comes with a Net Yaroze member's PlayStation, a special
Net Yaroze access card, a boot CD for the PlayStation, a software development CD
containing sample code and libraries, and paper documentation. Net Yaroze is also
referred to as Yaroze. Hobbyists can subscribe to the Yaroze program for
approximately $750 by contacting Sony.
What it needs
The Net Yaroze member's PlayStation is a special black PlayStation with an added port
in the back for connecting to a PC. In addition to development, the Yaroze member's
PlayStation can play any PlayStation game. The Net Yaroze developer kit was designed
for IBM compatibles, so it uses a connection that is not directly compatible with any of
the Mac I/O ports. To connect a Mac to Net Yaroze, you need a DB-9 adapter cable, also
known as a modem cable (around $ 5-10). [Note that the connection is DB-9, not
DB-25. --Ed.] CodeWarrior for PlayStation does not come with Net Yaroze and must
be purchased separately for around $300.
The Net Yaroze development system uses a serial port, so if both a printer and a modem
are already hooked up to the Mac, a serial port switch box or PortJuggler may be an
excellent investment. These devices range in price from $20 to $130 depending on
their capabilities.
To debug (and play) Net Yaroze games some sort of video system is necessary.
Generally, this means an external monitor, an RCA video input (AV Mac's), or a
TV/video capture card. There is no "right" decision here. I have been using TurboTV- a
cross-platform PCI TV card for either Mac or PC, but I was disappointed by the extra
compatibility problems introduced when I installed the card. It can make the computer
somewhat unstable, and virtual memory must be off for systems before 7.6. Unless
you already have video input capabilities in your Mac, an extra cheap television may
actually be a better purchase than a TV card. A "real" TV has the advantage of showing
what the images will really to look like, but the computer screen TV image is dithered
and interlaced, even in millions of colors. Also, TV cards are convenient and make it
easy to capture screenshots and QuickTime movies of your games. Why the extra TV?
Although most people already have a television at their disposal, they may not be
willing to dedicate it solely to the purpose of debugging and playing Yaroze games.
What it isn't
Net Yaroze is very different from commercial PlayStation development. The vision of
Sony in creating this program is that of a worldwide group of talented, programming
hobbyists developing games to play and share amongst themselves, connected by the
Internet under the help, care, and guidance of Sony. This is not a low end, alternative
entry point into commercial programming, but a hobbyist's club with many safeguards
(or obstacles, depending upon how you see it) to prevent the dissemination of hobbyist
developed games into the protected, quality controlled end user market.
Net Yaroze games will run only on Net Yaroze consoles; they will not run on
commercial PlayStations. Obviously, this is Sony's main firewall between the Net
Yaroze and commercial development programs. Conversely, commercial games will
happily run on Yaroze units. In fact, one perk of being a Yarozian is that any
commercial game for any of the target markets will run on a Net Yaroze box; there is
no geographical lockout as with commercial games units. (PlayStations marketed for
North America, for example, will only run games marketed for North America.)
Another difference is that the code libraries provided are a subset of the commercial
development libraries. Also among the main differences is a ceiling on code size for Net
Yaroze development. The licensing program, although reasonable, appears to be no
nonsense in character and would probably not be tolerant of efforts to breach the
hobbyist/commercial separation. The reader is recommended to the web sites
mentioned at the end of the article for some excellent FAQ pages that help delineate the
specifics of the program.
Thus, although PlayStation development may hold considerable interest for the
hobbyist game developer, the up-front cost may be substantial. Furthermore, there
may be several hassle factors: loss of a port, Mac OS specific costs, and the pros and
cons of various video output solutions.
Learning To Program for Net Yaroze
The Net Yaroze package comes with three manuals: a startup guide that shows you how
to set up the Net Yaroze and run sample programs (for IBM PC's); a user guide that
explains the various components of the PlayStation OS; and a library reference manual
that contains descriptions of library functions that can be accessed when writing
Yaroze software.
The manuals are thorough, but they describe a complex environment. PlayStation game
developers must deal with most of the same problems as do game developers for PC's;
game console development is far from easy. Proficiency in C or C++ is required to be
able to understand the documentation and sample code. C is strongly recommended as
the development language by Sony. C++ is not officially supported, although can be
used.
Net Yaroze has its own web site specifically designed for Net Yaroze developers. This
web site contains sample programs written by other Net Yaroze users or by Sony,
documentation concerning PlayStation data formats, and other useful information
concerning Net Yaroze development. The web site also contains utility programs for
Net Yaroze developers, but for now they are mostly only for IBM PC's.
Net Yaroze on Macintosh
Setting up the system
To set up Net Yaroze for Macintosh, the prospective developer needs to follow a few
simple steps. First, insert the Net Yaroze access card into the PlayStation. Next,
connect the PlayStation to the Macintosh serial port using the DB-9 adapter cable.
Then, install CodeWarrior for PlayStation and the supporting Yaroze libraries.
Finally, boot the PlayStation with the Net Yaroze boot CD. After following these steps,
programs and data files can be downloaded to the PlayStation. Let's take a moment to
look at the Mac OS specific development system, CodeWarrior for PlayStation.
CodeWarrior for PlayStation
CodeWarrior for PlayStation is a plugin for the CodeWarrior IDE environment. By
maintaining a standard interface, developers familiar with the CodeWarrior IDE will
have little trouble writing code for the PlayStation. The CodeWarrior for PlayStation
package includes the IDE and plugin for both Mac and Windows platforms along with
on-line documentation explaining how to target the PlayStation platform. It also
includes a tool for converting graphics to TIM, the PlayStation graphics format, and
one sample program for Net Yaroze.
CodeWarrior for PlayStation is still in its early DR stages, so developers should be
cautious when considering a purchase of this product. The environment itself is stable,
but the tools are sparse and not very well developed at this point. Fortunately,
Metrowerks is working on improving tools for PlayStation development.
Currently, it is impossible to run many of the sample programs that are posted on the
Net Yaroze web pages because source code is not available, but Metrowerks plans to fix
this shortcoming in the near future.
PlayStation technical support was variable. I posted several technical questions on
comp.sys.mac.programmer.codewarrior and had replies from several
people that same day. An e-mail to tech support however, received no response.
Let's Write Some Games!
To write games for the PlayStation, a developer must understand the PlayStation OS
and libraries which are described in the reference manuals included along with the Net
Yaroze environment. The developer must then convert any graphics or sound data to the
appropriate PlayStation data formats using the tools provided with CodeWarrior for
PlayStation. Conversion tools can also be found on the web. After the PlayStation code
has been written in C or C++, it can be compiled into a PlayStation executable file
which is then opened into the Metrowerks debugger (the release that comes with
CodeWarrior for PlayStation must be used). Once a PlayStation file is opened in the
debugger, it can be downloaded to the PlayStation. At this point, you will be playing
your very own, custom-made PlayStation game! Now, let's stamp out the bugs.
Figure 1. Net Yaroze Sample Program.
Debugging PlayStation Games
Cross platform development can tax even high end host computers. Environment limits
are especially noticeable during the Net Yaroze debugging process. Because the
debugger must communicate with the PlayStation through a serial cable, the debugging
process, even at its fastest terminal speed, can be painful. Stepping through in the
debugger is slow even on a 200 MHz Mac. It is not possible to switch programs after
one has started running. Instead, the PlayStation must be reset manually every time a
new program is to be run or the same program is to be rerun. This is particularly
inefficient and slow because of Sony's startup advertisements. Metrowerks plans to fix
this in an upcoming release.
Perhaps the most serious problem with the debugging process is that breakpoints
cannot be set or edited while the PlayStation program is running. The implications of
this are that developers must decide exactly where they want their breakpoints before
starting debugging, something that is difficult to do with larger projects. According to
Metrowerks, this is a hardware limitation and cannot be fixed.
Summary
Net Yaroze provides hobbyists with the opportunity to write authentic console games.
Until now, that has been difficult to accomplish. Metrowerks is currently working on
new tools that will make Macintosh Net Yaroze development much easier in the near
future. The would-be console game programmer should be aware of the limitations of
the system, the steep learning curve, and the costs involved. Nonetheless, Net Yaroze
development might be a new and satisfying undertaking for the hobbyist, and give the
would-be professional a chance to test the waters.
Products Reviewed
Net Yaroze, Sony Corporation. See URL's for contact information. CodeWarrior for
PlayStation/Net Yaroze. See URL's for contact information.
Useful URL's
http://www.scea.sony.com/net/index.html is Sony's home page for Net Yaroze
information. The interested reader is strongly recommended to this page. In
particular, the FAQ page can really help you make a decision regarding purchase.
http://www.Metrowerks.com/products/cw/playstation/cwps/index.html and
http://www.Metrowerks.com/products/cw/playstation/netyaroze/index.html are two
pages are Metrowerks index pages into CodeWarrior for PlayStation and CodeWarrior
for Net Yaroze. Again, the interested reader is vigorously recommended to these pages.
Both the Sony and Metrowerks pages have links to related sites, email contacts,
registration forms, etc.
______________________________
Ed Ringel, eringel@mint.net, is Contributing Editor for product reviews for MacTech
Magazine. In his spare time, he is a respiratory and critical care physician in
Waterville, Maine.
Jeremy Vineyard, jeremyv@screenplay.com, is a software engineer at Screenplay
Systems. His interests include developing games, software utilities, and application
class libraries.