Notris: A Tetris clone for the PlayStation 1
github.com
github.com
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.
> Writing your own PlayStation game in C is actually very simple: all it requires is to make no mistakes whatsoever.
https://github.com/spicyjpeg/ps1-bare-metal
It's still very work in progress - I have only covered a tiny fraction of what the console's hardware can do - but I find it fascinating to explore how little code you actually need to get started on such a simple platform, even with no external SDKs or tools (aside from a completely standard MIPS GCC toolchain).
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.
But I did the first and the second didn't happen. So not "Every. Single. Tetris clone which has -tris in the title". You emphasized that it will happen and has happened to everyone who did the thing.
I'm literally an exception to your statement.
Because they don't care if you're not looking to make money off of it.
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.
Other than that, it has all the emulators you'll ever need built-in, and controller pairing/config is super easy. For a PS4 controller, you just hold down the PS button and share button until the light starts flickering to put it in pairing mode, then bring up the bluetooth menu on your Mac to connect. The whole process is super quick and painless.
The interface looks so good too. Add roms and you get a nice little UI with all the box art for each game automagically.
I implore you to set aside a few minutes and give it a try, you won't be disappointed.
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
(Python might be another choice but i don't really like writing it :-P)
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).
Except to be fair, I didn't have a C toolchain, but R3000 assembly language is really nice when you get used to the delay slot.
never really got into using the parallel port as a cheap dio until building science rigs years later... (and some fun experiments with using it to do cheap adc when in college)
fun times!
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.
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?
As a bonus you can gain some muscle by carrying it around.
Alternatively, some of Anbernic's and other similar manufacturers of "retro handhelds"'s machines run plain Linux (usually derived from OpenDingux for MIPS-based devices, but most newer stuff are ported to ARM) with a simple launcher. I have one of the older MIPS-based devices running OpenDingux (GCW Zero from ~2013)[0] and you can use SDL and C/C++ (or Free Pascal in my case). Anbernic RG350 is basically a remake of it (same hardware, just better screen) and there are some variations at a software level (running the same or a similar MIPS CPU). Other devices are based on ARM (IIRC the devices ending in 1 - like RG351/RG351M/RG351P/etc - use ARM with an OS derived from OpenDingux). Note that some use Android, though they also use a different naming scheme (and they mention it).
Sadly Android-based devices are the most common and since they are largely used for emulators, the manufacturers rarely post full tech specs but there are dedicated communities and YouTube channels from where you can find what exactly OS they run and with what architecture.
But all that said, Steam Deck might be the simplest choice (though not the lightest, both in terms of weight and price).
[0] https://img.itch.zone/aW1hZ2UvNjM4NTE4LzQ3MDk2MTguanBn/origi...
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!
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!
My own experience is that it’s so difficult to make homebrew games not just because of the technical challenges you have to solve making the game, but also because of the poor experience with tools and debugging. Pretty soon, you find your project taking up more time than you can reasonably spare. I think it’s impressive when people manage to get something interactive working on these old consoles, anything at all beyond a “hello world” template.
In some ways the console is really modern (perspective-correct texture interpolation, z-buffering, subpixel positioning). On paper, it seems a lot like a more modern system. But the hardware complexity is a beast. and the design is permeated with bottlenecks. Half of the graphics pipeline is taken up by the RSP, which is a fully programmable vector processor--sounds cool, but in practice it is unapproachable. 4 KiB of texture memory (and if you use a palette, half of it is the palette). RAM bandwidth is barely fast enough to handle 3D scenes.
https://www.copetti.org/writings/consoles/nintendo-64/
The folks working on LibDragon have done a lot of work to make homebrew a better experience, but you’ll note that support for 3D graphics is still only in a preview branch.
It's still very stock other than the bypass.
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.
https://learn.microsoft.com/en-us/windows/uwp/xbox-apps/devk...
if the EU hadn't specifically exempted games consoles, it would be legally incompliant with the gatekeeping requirements.
I don't think this is entirely true.
Sure, there was nothing like the Net Yaroze, but the PS2 came with Yabasic[1] on the demo disk and had a Linux distro[2], and the PS3 also had a Unix support[3].
While some of this might have been for tax benefits, I still think it fits in the spirit of Net Yaroze.
1: https://en.wikipedia.org/wiki/Yabasic#PlayStation_2
FWIW, they did:
PS2 had an official linux distro, which was intended to be a sequel
PS3 had an "other os" mode, which allowed you to run your own, unsigned OS. This was eventually removed in a firmware update, due to piracy.
I haven't heard of anything similar with the PS4 or PS5; I'm guessing Sony is unlikely to provide similar widely available options in the future, but who knows. They did PR expanded access for "indie developers", but I don't know what the process looks like to get that.
While the tariff classification plot never seems to have worked out, Sony did also around the same time apparently succeed in creating a perception of the PS2 as being so dangerously fast as to needing export controls as a munition(!): https://www.zdnet.com/article/google-pixel-9-pro-xl-vs-samsu...
With the PS3, both attempts eventually succeeded, but in a way that backfired at Sony gloriously: The US Navy actually did end up using the PS3 as a supercomputer! https://phys.org/news/2010-12-air-playstation-3s-supercomput...
The only problem: They were selling the console as a loss leader, making money only via games and game licenses. Once somebody had finally taken them up on their "it's a computer, not just a game console!", they were very quick to remove the "Other OS" boot capability in a firmware retroactively.
There is also a 3D-printed weight disk people use at https://www.thingiverse.com/thing:4838168 .