August 18th, 2024

Writing a Playstation 1 Game in 2024

Notris is a homebrew Tetris clone for PlayStation 1, developed in C using PSNoobSDK. It features classic gameplay, custom graphics, and offers resources for aspiring game developers.

Read original articleLink Icon
Writing a Playstation 1 Game in 2024

Notris is a homebrew Tetris clone developed for the PlayStation 1, utilizing the PSNoobSDK and written in C. The project allows gameplay on original hardware and includes insights into the development process, challenges, and techniques employed. Key features of Notris include classic Tetris gameplay mechanics, leveraging the PSX's graphics capabilities, and handling controller input. The developer initially created a JavaScript prototype to establish game logic before transitioning to C, which involved mastering the PSX's graphics pipeline, including dual-buffered rendering and ordering tables. The game includes a title screen, scoring system, and custom graphics for the tetrominoes. The repository serves as a resource for aspiring game developers, offering code examples and documentation related to PSX development, along with personal insights from the developer's journey.

- Notris is a homebrew Tetris clone for the PlayStation 1.

- The game is developed using C and the PSNoobSDK for original hardware.

- The project includes a title screen, scoring system, and custom graphics.

- The developer shares insights into PSX programming and game development challenges.

- The repository provides valuable resources for aspiring game developers.

Link Icon 17 comments
By @HanClinto - 8 months
Excellent accomplishment, and wonderful writeup!

I appreciate the quote at the bottom of the article:

> Those of us who love computers need to have something slightly wrong with us, an irrationality to our rationality, a way to deny all the evidence of our eyes and ears that the hostile box of silicon is dead and unyielding. And fashion by cunning machinery the illusion that it lives.

By @philistine - 8 months
Every. Single. Tetris clone which has -tris in the title ends up receiving a very scary cease and desist.

Rename your project if you don’t want to receive such a letter or worse, if you don’t want GitHub to be hit with a DMCA against your project.

I know. It sucks.

By @BaculumMeumEst - 8 months
God damn do I love playstation 1. I just dug up my old PS4 controller, installed OpenEmu on my Mac, and started on Silent Hill 1.

I used OpenEmu way back in the day, it was the best emulator experience I'd ever had. Glad to see it is actively supported and as good as ever.

By @486sx33 - 8 months
“More precisely: I was worried that if I tried to learn C, and failed, I'd discover that I wasn't actually a very good programmer after all.”

To everyone reading HN: Most people feel this way when they step into something new.

Please don’t ever let it stop you from trying

By @seism - 8 months
Props for doing a self organised retro hardware hack and writing up in so much glorious and gory detail! You might mention some of the PSX game jams on itch.io and GGJ for those preferring a more social setting.
By @laweijfmvo - 8 months
interesting perspective of someone who is presumably quite competent in javascript and learning/seeing c for the first time. i guess i'm just old but i'm used to everyone having exposure to c (or a c-style language) as their first language.
By @a-dub - 8 months
notably sony also made a handful of "yaroze" units for hobbyist developers. you couldn't ship, but you could write, compile, run and i believe share within the yaroze community.

yaroze was outside of my budget, but thankfully there was another option, there was a commercial game cheat device that could be reflashed with a "caetla" rom which when hooked up to the parallel port on a pc, could be used to ship binaries over from linux. the gcc-mips toolchain worked a treat and there was a header file laying around that implemented the user space wrappers for making system calls into the in-rom kernel.

my fun exploratory project: porting the mpg123 decoder over to the psx1, thereby bringing mp3s to the living room. i was able to get it to decode one frame at a time very slowly on the r3000 (25mhz) cpu with no fpu, but didn't have the skill at the time to embark on an optimization project that maybe could have made use of the rudimentary graphics acceleration (it was some kind of limited integer math accelerator, iirc).

By @lxgr - 8 months
What a great writeup!

For anyone wanting to dive deeper on the PS1 hardware, I can't recommend this writeup enough: https://www.copetti.org/writings/consoles/playstation

It's part of a great series on various retro and not-so-retro game console.

By @TheMagicHorsey - 8 months
Is there an open, simple, handheld gaming platform that is cheap, and has good documentation so hobbyists and kids can make games for it?

I know people will say pick up a cheap Android phone. And perhaps they're right, but Android is not simple. It has so many things going on that you just can't write a C program and start playing with it. You have to learn a dozen Android quirks and deal with the Android operating system.

Is there something where you can just upload a program to flash and the device just boots into the program and you start playing?

By @stodor89 - 8 months
In case someone wants a PS1 programming course in 2024: https://pikuma.com/courses/ps1-programming-mips-assembly-lan...
By @m4tthumphrey - 8 months
Great write up and very interesting!

Slightly off-topic but I literally just bought a PS2 purely to play the original Track and Field games. So much nostalgia! I really wish they would redo these games for the modern consoles!

By @slowhadoken - 8 months
I used to think writing a game to PC was the best idea but the more I write the more I respect consoles. Especially considering all the retro game preservation going on, both in terms of emulation and FPGA.
By @djmips - 8 months
I did a PS1 project for GGJ 2024 and found it rather difficult to do in the 2 days I allocated! I did get as far as building and running and used the ps1n00b. I'm the end I was able to burn a CD and launch into a 3D environment where you could fly around a checkerboard flat plane. Very exhausting but fun.

Next time I'll budget more time for a PS1 project, especially 3D even if my original goal was just a simple flight around some very simple terrain I barely got anything working. Nevertheless it was magical to see the project boot on real hardware!

By @rgbrgb - 8 months
> Last year I got my hands on a rare, black PlayStation 1. This is called a Net Yaroze and is a special console that can play homebrew games as well as ordinary PSX titles. It was part of a special Sony project to get hobbyists and students into the games industry.

I wonder what the post-mortem on this initiative was like. Seems like they didn't pursue it in future consoles but dang it would be pretty cool if there was a hobbyist section of the PS5 store that anyone could put small games in.

By @atan2 - 8 months
There was another good blog post on the PlayStation earlier this month:

https://pikuma.com/blog/how-to-make-ps1-graphics

By @herpderperator - 8 months
Is there any information about the tilting in the demo video? How does that work?
By @firesteelrain - 8 months
Can the SDK used allow you to run the games in a PS1 emulator like Sony PS1 Classic ?