The Unofficial Net Yaroze Newsgroup
January 12, 2021, at 11:02 AM (0 comments)
Title: The Unofficial Net Yaroze Newsgroup Author: mgarcia Date: 2021-01-12 11:02 +0100 Tags: Community, Newsgroup Comments: Open
The Unofficial Net Yaroze Newsgroup
- It's stated purpose was-
- "This group is for the discussion of the Sony Yaroze development system."
This single group has been archived and is freely readable and searchable. However, as it wasn't the official Net Yaroze newsgroups, not many Net Yaroze members talked there but a few did including: Rob Swan, Nick Ferguson and Rikki Prince.
It was a place for discussions about development on PlayStation, mostly questions regarding the Net Yaroze, but other "unofficial" development methods were mentioned, comparing their benefits and limitations.
The newsgroup is still there and functional, and anyone today can participate in discussions there, please read the FAQ below.
Everybody is welcome to talk about anything Net Yaroze at alt.games.sony.yaroze.
Frequently Asked Questions
This is the FAQ for the Unofficial Net Yaroze Newsgroup: alt.games.sony.yaroze The FAQ is posted at least twice a month to the newsgroup. http://netyaroze.com/Community/Net-Yaroze-Newsgroup#FAQ
1.0 What is Net Yaroze?
The Net Yaroze was a programmable Playstation (also known as PSOne, PS1 and PSX) made by Sony for hobbyist game developers. It was released in May 1996 in Japan, and March 1997 in SCEE and SCEA regions.
The kit consisted of 2 CD-ROM's, 3 printed manuals, a black PlayStation, two black (digital only) controller pads, a serial to PC link cable and a black access card which looks like a memory card.
Members had access to an exclusive Sony website and newsgroup server dedicated solely to Net Yaroze, there they could share and communicate among themselves.
The Official PlayStation Magazine (OPSM) in European and PAL countries typically had Net Yaroze games published on the cover disc.
The Net Yaroze Europe server was officially turned off in June 2009.
1.1 What was the origin of the Net Yaroze?
Although there has been some information release here and there, this is my understanding so far.
The Net Yaroze Software Development Kit (SDK) is based on the Professional SDK libraries, the most interesting part would be the 2D and 3D rendering library which is called Graphics Services library (LIBGS). I believe it to be created early in the PlayStation's history in 1993-94 and at this time Sony needed PlayStation games very fast for the Japanese launch in late 1994, they had two main concerns regarding adoption from game programmers and artists:
- Console (and micro-computer) games programmers at the time were assembly language experts, and C/C++ were seen as too high level for under-powered silicon chips. To develop they were given detailed chip information, hardware schematics and memory maps and they would code machine instructions that got assembled to binary to run on hardware, however with the complexities of the PlayStation resembling more like a Silicon Graphics workstation then a 16-bit console (or micro-computer), Sony decided to only support the C language. This was a win-win for Sony, they could obfuscate the complexity of the hardware with an "Operating System" (called PSX-OS) which was really a software stack that slowed down the performance, but it also made it a lot easier and faster to develop for. Besides 3D graphics in the early 1990's was relatively primitive, with real time texturing and lighting being the holy grail.
- The other main issue Sony faced was the creative side, in particular the 3D assets, which was cutting edge technology at the time.
Note: Most programmers back then already had a math background.
Sony developed software which would interface between the artist's applications to PlayStation format.
The PlayStation's GPU hardware for the time, I think, was over engineered, supporting a myriad of combinations for a single primitive type, ie triangle or quad, textured or untextured, lit or unlit, flat or Gouraud shaded, single or double sided. The issue then became how does software handle the large range of options from the 3D artist tool to the PlayStation, the solution was the bloated and slow TMD format.
The combination of the two resulted in a high level graphics library that is resource intensive and yet simple and highly productive for simple games. And while not revolutionary, it was executed well enough to quickly develop titles for the Japanese launch, including 3D polygonal based games which look similar to Net Yaroze games, these are: Ridge Racer, TAMA, A-Train, Mahjon Goku Tenjiku, and Crime Crackers.
An early Sony lead R&D engineer was teaching C programming at a local university, to "stimulate the next generation of developers" and by 1996, the professional libraries was so optimized that the Graphic Service libraries and the TMD format was mostly redundant for game development, the idea of combining education and the very high level and out of date SDK became the Net Yaroze, in my opinion anyway.
1.2 What is missing from Net Yaroze SDK?
The Net Yaroze SDK is only a subset of the professional Graphic Services libraries, meaning some features were not included, the most commonly mentioned are, CD-ROM access, the serial and parallel ports and the MultiTap.
The Net Yaroze can not read burnt CD-ROM's, every time the lid is opened and a new CD-ROM is inserted, the PlayStation automatically checks it's authenticity (the region) and if it fails, nothing can be read. It can access data from any official Sony CD-ROM however. So it can read the Net Yaroze boot CD-ROM which does have a few game assets preloaded on it.
It can not play the Sony proprietary videos, but it can play audio tracks from any audio CD.
Also removed are the 3D lines and double sided polygonal primitives. I don't know the real reasoning for this, but I would assume that these features would have disadvantage the professional kit, especially for budget title publishers, which could still have been using the newer and optimized versions.
The most notable missing feature is the low level graphics and audio access. There is no way to create a simple primitive and send it directly to the GPU. The same with audio, only midi samples and CD-ROM audio can be played, no audio can be sent directly to the sound buffer.
1.3 Why program the PlayStation current year?
The original PlayStation is a historic console for many reasons, but for me, it's the mixing of the old and new hardware, it's old enough to have retro Colour Look Up Tables (CLUT) for 4 and 8 bit images. And yet modern enough to have a 3D GPU, 24 voice sound and dual analog pads.
1.4 Why specifically the Net Yaroze?
Firstly, the aim of Net Yaroze was never to make 'commercial' quality games, it was always marketed as a hobbyist platform. The reality is it takes a team of people, each with specialized skills to make anything worth selling commercially. 20+ years later, this hasn't changed, only the tools have gotten better and easier to use and this is the same philosophy of Net Yaroze.
Using "Professional" tools will not make you a professional.
And using "Hobbyist" tools with a team of professionals, will not make them amateurs.
In fact as mentioned above, commercial games have been made with the same Graphic Services library and 3D TMD format that the Net Yaroze uses, and it was also recommended for prototyping ideas.
Lastly, it's a very small API, making it easier to learn, making it one of the easiest "retro" consoles to program for fun!
1.5 What are the benefits of programming Net Yaroze over other PlayStation libraries?
The Net Yaroze was designed for ease of use and rapid development. With no lowlevel features, it's not an API like OpenGL or Vulkan but could be seen more as a "middleware" framework, comparable to DirectX 9 (when it supported the .X file format which provided support for 3D object and animation). With most of the lowlevel details removed, the programmer can focus on game related programming.
The Net Yaroze SDK provides a lot of useful video game subsystems, including:
- 2D line and rectangles for a user interface and "cells" for tile maps.
- Simple 3D asset pipeline with object loading, camera (view) and rendering, and hierarchical coordinate system.
- Simple BGM and SFX systems.
- 3D math functions.
- Simplified OS API: files, memory card and controller handling.
However, it's not a complete "game engine" either, with the missing parts being more related to specific games.
What's not in the SDK:
- Collision detection.
- Game AI, events, scripting systems.
- Scene or level manager and editor.
1.6 Why was Net Yaroze used in educational institutes?
It was (and still is!) an excellent tool for teaching because video games development touches on many Computer Science subjects including, computing hardware, programming, Math, Computer Graphics, and AI to name just a few. Access to the Net Yaroze kit was available in many universities around the world, with teaching materials dedicated to it, including documentation, tutorials, and code demos.
The Net Yaroze was mostly seen as an "intermediate level" entry kit, requiring programmers to have a full understanding of the C programming language and it's tools (compiler, makefile etc), to get the most out of it.
Although, classes using the Net Yaroze could be taught to people with no programming experience, new programming students or creative people for example. It was also used in final year University projects and PHD research, see Dr Peter Passmore site from Middlesex University.
Because C is a relatively small language (scalars, structs, arrays and pointers, control and loops, and precompiler), it was also possible for member's to learn programming via books like "Teach Yourself C" whilst not having a programming background, like Nick Ferguson details in his diary entries and still make something small after a few months.
The reasons why the Net Yaroze was (and still is!) an excellent educational kit includes:
- The simplified SDK-
- accessible - Removing the lowlevel details, made game development easier to enter, lowering both the maths and programming knowledge required. Instead of having to understand the math algorithms and implement it, like an engine programmer would, that problem is removed and simplified with a small API, it therefore also removes the real need to want to optimize it, which requires a lot of experience.
- Game Programming - The Net Yaroze SDK is enough to get you started, and that's it! The lack of having engine features means they have to be researched, designed and coded, like a real games programmer would, there is no "game engine" hand holding, the game is 100% coded by the programmers, not the SDK.
- The hardware-
- Non Native - Targeting a non native system (different architecture) is still a common practice within the mobile and console space today. The building of executables and the packaging of art formats is an interesting and complex process, adding to this the data transfer between systems and the remote debugging process.
- Hardware - Programming hardware is similar to programming embedded devices, which the PlayStation would be seen as today. This means that there is very little or no space for error checking and when something goes wrong, the PlayStation will crash! ie lock or reboot. Working within limitation is challenging and fun!
- Coolness - Anything hobby made, no matter how trivial will have that PlayStation wow factor! It did 20+ years ago and today it still has that retro feel, especially on the real hardware!
- The support network-
- At the time, Net Yaroze (Europe at least) had an active community around the newsgroups and website. While the official program and server ended in 2009, the archives, the hardware and the members are still out there, but more importantly are the new people, the new tools and the continuation of creation with Net Yaroze!
1.7 What are the benefits of programming with Net Yaroze over other PlayStation hardware?
There is a lot of PlayStation development hardware options, ranging from professional to "Do It Yourself" devices.
Net Yaroze development was originally done over a serial interface using a terminal program called Siocons. It sent game assets and executable data via a script file (typically called auto), it would run it while outputting any PrintF (Print Format) strings to the terminal. The serial interface also gives you the ability to step-debug using GDB, a console based debugger which is still popular today.
Also, the auto file can be turned into a single native PlayStation executable (via YarExe) and this can be run in an emulator also with PrintF output.
While developing and testing using emulation is a lot faster, it's never 100% accurate, so hardware testing is crucial, and of all the hardware options, the serial interface is still the easiest and the cheapest!
2.0 Why a newsgroup?
2.1 Why use this newsgroup when there are other resources?
The PlayStation has an active community of hobbyist programmers and there are many sites and servers to accommodate them.
However most PlayStation programming enthusiasts are very much into their SDK (Software Development Kit) of choice, this generally means the professional SDK's or a free open-source SDK. While there is a lot of overlap, the Net Yaroze SDK is often labeled as vastly inferior because of it's high CPU load and bloated RAM wastage, which as explained above, are very legitimate and correct concerns.
So while most of the PlayStation development community regard Net Yaroze as a dead SDK, it still has merit to learn and program and should not be discouraged, unfortunately that's the common attitude and this is the main reason to have a Net Yaroze focused place to talk and be kept up to date.
2.2 Why use newsgroups in current year?
Newsgroups today are mostly used for binary file sharing (similar to torrents) and a lot of spam!
However there still many reasons why newsgroup text messaging is still used to day as group communications, listed below is just a few.
2.2.1 Historically significant.
Apart from the above mentioned activity from legacy Net Yaroze members, it also captured what the views and issues of non members were regarding hobbyist development on the PlayStation at the time.
2.2.1 A Protocol. Not a Publisher.
Usenet is based on a decentralized Network News Transfer Protocol for the transmission of data (mostly text messages) from server to server around the world. Because it's not centrally controlled by one person or organization, like a forum or social media, it's not a "platform", which selectively publishes and removes content at it's own discretion.
2.2.2 Permanent - mirrored and archived.
Each Usenet server mirrors all messages but they have their own limits as to how long they store all messages. This can range from a few months to many decades (like google groups). Subsequently, all new messages are also archived.
Note: Groups created using Google Groups are not Usenet groups.
2.2.3 Antisocial media.
Usenet groups don't have the same problems modern "social media" platforms have, largely due to it's decentralized protocol.
No censorship, No cancelling.
There is no group administrator, instead the server enforces their own rules and regulations as to what can be received and sent, to and from their server. Generally speaking, servers are very liberal when it comes to free expression with rules focusing on removing illegal and hostile activities. Servers tend to be politically agnostic and do not police language for politeness or political correctness.
Because of the decentralized nature, public groups are not connected to any one server, so not all groups will be available on all servers. But servers do have their own "local" (private) groups for server user support, etc.
Groups typically maintain their own rules based on a democratic process and is outlined in their FAQ (Frequently Asked Question). It's maintained by an agreed upon person or organization and it will outline the group's purpose and what's exceptable and what is not. The actual "admin role" is left to each user and their software client to enforce what they don't want to see, ie the blocking of users or words ( a feature called kill file, see below).
Not addiction forming.
Usenet can be explained as sending an email to a group or in another message on a public forum. Within each group are message threads in a hierarchy, each thread discussing it's certain topic, posts are generally focused on that thread. Compared to "social" platforms which give the user a "feed" interface, where all messages are mixed, typically into ordered on sent date and time, which can be very confusing. Usenet readers can also order each group in received time.
Usenet communication tends to be slow natured and casual, because of the lower number of users now and they are also generally on a computer client instead of a mobile one (but they do exist).
Not a popularity contest.
Usenet encourages a common or like minded group behavior, instead of a personal one. This means the group is the most important focus, not the individual. There are no user "social points" or ratings or follows or likes, which the social media platforms gamify to encourage addiction, drama and narcissism. Individuals are ranked only on good will from other members in the community, based on the quality and frequency of their interactions, and so this is similar to the real world.
Usenet also doesn't accommodate very well to the amplification of single messages. Re-posts are commonly seen as spam, so any 'drama' is quarantined to individual threads. Typically accepted re-posted messages are purposeful to the group, like regular or scheduled messages like FAQ or other updates.
Lastly, and uncommonly, the lack of activity is commonly seen as a negative thing within a community, this is not true. A slower community means there's less people, this means people are more likely to know each other more intimately then participating in a very large community. And more importantly, a less busy community is less distracting one, and you'll be able to focus without the need to look at a browser or mobile phone.
2.3 Filters - The Kill file.
The Kill file is the historic name for the filtering option in news readers, it's commonly based on keywords or usernames to filter out unwanted messages such as advertisement, spam or harassment. Not all clients have this feature and for anyone thinking about using newsgroups seriously, good filtering is a must!
2.4 The obligatory warning.
Having read the above, you could think that it's the crazy wild wild west on the old internet, but that has not been my experience. Most people are welcoming to see a new, like minded user appear in their group. However each group has it's own way of doing things and I would suggest reading through and/or searching their group to see how new users are initiated and are expected to behave, this is similar to any real world community, this was termed netiquette (Newsgroup Etiquette), so your first post should typically be an introduction and ask for information (ie the group FAQ) if you are unsure.
However, as explained above, do not expect any moderation in the group and use a good client to help you filter out spam.
3.0 Newsgroup participation.
3.1 Setting up.
There are two main ways to access, send and receive messages, both have their good and bad points.
3.1.1 The easy way - Gmail.
This is the simplest option, but the Google Groups web based client is very limited when it comes to features such as kill file (filtering options).
I would recommend creating a new Gmail account to access Google Group. Gmail has a great email spam filter, but to be safe I do not recommend using a good email as it could be spammed (more), google groups obfuscates all emails on the web client, but the emails are exposed to the Usenet clients.
Google's web based client automatically removes offensive posts, similar to Google's other services like Gmail, YouTube etc. Newsgroup messages can be redirected to your inbox, but Gmail can not reply to Usenet messages.
As mentioned above, groups created using Google Groups are not Usenet groups.
3.1.2 The Usenet way.
If you have have ever wanted to stop using social media, the full newsgroups experience could be worth checking out. There are many retro related newsgroups with varying activity. For the full experience, you'll need to setup Usenet access and a newsreader client.
The aioe.org server is probably the easiest and quickest way to get started because it requires no registration. The catch is that it's limited to sending only 40 messages per day and limited to text only (reading and posting).
For more regular users, I recommend eternal-september.org as they don't limit the number of messages posted, however text posts are limited to 1Mb in size.
As an alternative to free services, I would recommend individual.net, which automatically removes spam, but is also limited to text only messages.
This reddit page has a large list of newsgroup providers.
Next, install a Usenet reader, I would recommend pan which is available on many operating systems. Pan has good filtering and blocking features.
Also available (and less recommended), are older web browsers that typically have an email client, tend to have newsgroup and RSS readers. SeaMonkey which is a rebranding of the old Netscape suite, includes a web browser, RSS/Usenet/Email client, as well as a very primitive HTML editor called Composer. The older versions of Opera are also similar in features. While the browser alternatives work, they aren't great at any of their features today, so I can't recommend them.
There is a large list of newsgroup readers on wikipedia.
3.1.3 Message format.
Plain text is preferred over HTML, some servers limit the size of the message when sending. Do not attach things to messages, typically it gets embedded into the message and again will make it large. Links automatically become clickable, so linking to external sources.
3.2 Being cool.
I don't like telling people what and how to do things, so this is a guide on how to be "cool" instead! And it would be really cool if everyone has read (or listened) the whole FAQ page.
I would like to see people's first post be an introduction of yourself, maybe telling everyone how you found the newsgroup and your interest in Net Yaroze, etc. But if you're too excited and need to talk about something specifically, then that's okay too :)
3.2.1 Politeness and language.
I tend not to swear often, and when I do, it's around people that I know and it's not to insult or offend them. I think that's fine, but swearing, insulting or being rude directly towards someone, that is not cool. And if you don't see that and apologize then I would suggest user filtering is in order.
3.2.2 Do I have to use my real name?
No, but you will find that people take real people more seriously then an alias.
I mostly used my real name online all my life and nothing bad has happened to me. In fact I regret not using my real name where I didn't. I'm not often the most agreeable person, but I try to be as real and balanced as possible. But the internet was a different thing back then and the world wasn't so hyperbolic like it is now, so if you are under 30, probably a good idea not to use your real name anywhere!
3.3 What else to talk about?
I would like to keep the Unofficial Net Yaroze Newsgroup very much on focus, and that's specifically talking about Net Yaroze exclusively. However I get that being in a community, there's a lot that comes up, unfortunately there are no sub groups and there is only one place to talk and I wouldn't like it full of off topic discussions. And besides there are a lot of newsgroups to participate other then the Net Yaroze one.
I'm happy for off topic threads to stay in their thread, but I will filter when too much off topic messages start hitting the group.
3.3.1 Can we talk about anything PlayStation related?
If it's related to the original PlayStation then sure, I guess, but the focus is Net Yaroze, which is more about programming and gamedev then PlayStation games.
3.3.2 I'm making a XYZ engine game with PS1 style shaders can I ....?
Firstly, there are dedicated newsgroups related to graphics programming, which is where people talk about shader programming.
I wouldn't want to see posts about XYZ engines and shader programming, so please don't post anything related to XYZ engines. This isn't "gatekeeping", shader programming is nothing like coding retro hardware, it's night and day. And there's obviously more people interested in shader programming and retro esthetics then there are people into Net Yaroze programming, and then the group becomes pointless.
3.3.3 Can we post things that are off topic?
I get that some people need to communicate with other people that they meet in only one place. And that fine, but please don't make it a regular thing and keep it to a single thread or just exchange emails.
More to come in this FAQ!
1: See the creation control file.
Comments are open.