6 ms·
PlayStation Architecture
- helf 5mo agoI love his work. I bought one of his books recently :)
- Forgeties79 5mo agoLove Copetti. Even as someone who is not particularly knowledgeable of everything he’s talking about, I I really enjoy thumbing through his writing and diagrams. There’s just something really fun about trying to understand what is going on under the hood with these machines, especially fifth and sixth generation consoles
- dnnddidiej 5mo ago1994 always gets me too. It feels like they are more a late 90s thing.
- tapoxi 5mo agoThey didn't launch outside of Japan until late 1995, so most people got one in '96.
- doubled112 5mo agoPS2 didn't come out until 2000. Most of the games I remember are from later too.
- kaycebasques 5mo agoWhich means that we're really talking about hardware from 91-93, right? I.e. if launch was 94 then they were designing in 91-93ish.
- rideontime 5mo agoCopetti enjoyers should also checkout everything Fabien Sanglard has done, including the Wolfenstein and Doom Black Books, the Another World port analyses, and the other dozens of code reviews he's posted. https://fabiensanglard.net/ https://fabiensanglard.net/
- MrDOS 5mo agoThis is great, but it was originally published in 2019. See the past discussions in 2020: https://news.ycombinator.com/item?id=22932134 https://news.ycombinator.com/item?id=22932134 (114 comments) and 2021: https://news.ycombinator.com/item?id=27576902 https://news.ycombinator.com/item?id=27576902 (114 comments also).
- flipacholas 5mo agoIt’s been updated many times since then!
- kthartic 5mo agoSo? That was 5-7 years ago. I haven't seen this before, so I appreciate it being posted :)
- MrDOS 5mo agoYep! Just that the post title should have a (2019) in it. Or maybe (2021) or (2025), given the most recent revision dates.
- kthartic 5mo agoFair enough!
- giancarlostoro 5mo agoNot only that, for a device from 1995... It's still amazing to learn about this, its not as if most people will read this once, and remember everything on the page in one go.
- mrandish 5mo agoCheck out the rest of Copetti's site. He's got similar posts on almost all the other consoles. So much gold.
- vortegne 5mo agoDid read this years ago and read it today again. Just so happy that there are people producing such quality work. Even if I personally don't know much about any of it, I still find myself being totally sucked in while reading.
- Scroll_Swe 5mo agoThese articles are always excellent. PS1 games do not hold up so good, but PS2 games uprezzed to 1440p-4k are basically perfect imo.
- Narishma 5mo agoThey hold up pretty well when you play them as they were originally supposed to: on a CRT if you can or using emulators' CRT filters if you can't. Trying to play them at very high resolutions on crisp LCD displays is the worst way to go IMO.
- hmry 5mo agoIt's interesting how different it is from the N64, which was seemingly designed to produce perfectly correct pixels even though no player would own displays that could really show the difference. I guess that's what you get when you let SGI design the GPU.
- whizzter 5mo agoIt probably had to do more with the evolution of chipset manufacturing and transistor counts (and costs). The ps1 was released 1.5 years before the N64, the 3dfx voodoo chip is as capable as the n64 (maybe more so considering memory available), but I guess both Nintendo and Sony did opt for a bit more cost-efficient designs to make a profit on their consoles. Looking at the release dates, the progression of capability is quite matched. 1994 dec 3 ps1 1995 nov 6 3dfx voodoo 1996 jun 23 n64 1998 nov 27 dc 2000 mar 4 ps2
- stuxnet79 5mo ago> They hold up pretty well when you play them as they were originally supposed to: on a CRT if you can or using emulators' CRT filters if you can't On the emulator side I would definitely recommend Duckstation. It's performant, has great UI / UX and also has a CRT filter available by default that more or less recreates the original look, even slightly warping the image to make you feel like you are staring into a TV tube.
- 5mo ago
- maoliofc 5mo ago[flagged]
- malkia 5mo agoThere are memory regions that are mapped to the same physical memory - https://psx-spx.consoledev.net/memorymap/ https://psx-spx.consoledev.net/memorymap/ I worked on the Metal Gear Solid port from PSX to PC, and Konami programmers chose a wild trick to store how the "C4" bomb was planted - either on the wall, or on the ground. Essentially the pointer pointed to the same physical memory address, but if it was planted on the wall (or on the ground, I forgot) - then it was OR-ing it with 80000000h or was A0000000h - or maybe something else - lol was long time ago. It was fun porting this on PC, and right now I don't even remember what I did exactly - hahaha
- boricj 5mo agoUsually, that kind of stunt nowadays is done by using the lowest significant bits and masking them off when dereferencing the pointer, trading off for a higher alignment (so 4 bits gives you 16-byte alignment). The PS1 also happens to have RAM aliasing, because there's not enough RAM to cover the entire decoding window for the RAM. I don't know the details, but I've seen PS1 executables setting their stack pointer to the end of the devkit's 8 MiB of RAM and yet they work on retail units, because it ends up at the end of the retail's 2 MiB of RAM. So theoretically, you could stuff bits in there too (and without messing with different memory regions with different cache behaviors).
- whizzter 5mo agoYou can see this on many consoles, iirc it basically just boils down to some address pins not being connected anywhere, so whatever the pins are set to doesn't matter as they're just out in the air so to say.
- boricj 5mo agoYou could do that on PC too, if you mmap() one given block of memory at multiple locations. I think that's how PS1 emulators handle mirroring (it's been a long time since I took a peek at the innards of DuckStation).
- 5mo ago
- brcmthrowaway 5mo agoI love a pre-Claude article
- gregsadetsky 5mo agoHey all, I posted this as I'm currently working on a PS1-related project that I hope to release soon. Does anyone have recommendations for a PS1 web/js/wasm emulator? PCSX-Redux [0] has been great on desktop, and DuckStation [1] as well. I found a few js/emscripten efforts, but if anyone has a rec, I'd appreciate it. Thanks! [0] https://github.com/grumpycoders/pcsx-redux/ https://github.com/grumpycoders/pcsx-redux/ [1] https://duckstation.org/ https://duckstation.org/
- adamddev1 5mo agoWhat a beautifully designed website. Everything is thoughtfully set-up and well placed. A great example of a well curated digital garden. It feels well kept and very human crafted.
- lowbloodsugar 5mo agoExecuting the instruction after the jump seemed mental, but after a few days it was second nature. N64 had related issue: had to find an instruction to put between two multiplies. If the first multiple multiplied by zero or otherwise finished in two cycles, the CPU would freeze if the next instruction was also a multiply.
- joe91 5mo agoAnother weird corner case is that COP2 (GTE) instructions actually start executing one instruction early with respect to where the program counter is. As a result when an exception happens the kernel interrupt handler checks to see if the next instruction is COP2 and has to add 4 to the program counter in order to not execute it twice. Also COP2 instructions were not allowed in branch delay slots (presumably for similar reasons), however some games (from memory Tekken3) do actually do this. I always wondered if it was a sneaky anti-emulation thing :) (because many emulators had issues with this, or needed special handling).
- aidenn0 5mo agoWhy did I think the XA decompression happened in the CD-ROM unit rather than the SPU?
- spicyjpeg 5mo agoIt does. The SPU only handles decoding and playback of ADPCM samples from its own memory and receives all CD audio from an I2S bus; the CD-ROM sector decoder chip handles XA-ADPCM decoding and resampling to 44.1 KHz internally, then sends the audio over I2S as if it were CD-DA. This is also why the SPU's ADPCM format is slightly different from XA-ADPCM (no interleaving and 5 filter coefficient presets rather than just the 4 used by XA-ADPCM and the older ADPCM format used on the SNES).
- 0x1ceb00da 5mo agoThey should start teaching about plash speed routers in schools.
- busfahrer 5mo agoThe PS1 architecture is fascinating - it will also reveal why PS1 games have such a unique, recognizable style that games are trying to recreate nowadays.
- suprjami 5mo agoThe architecture which made me fall in love with RISC (or "load-store" if you prefer) and see the error of my ways with x86 (insert your derogatory term here).