>>12150029 (OP)
>>12151636
The CPU (MIPS R5900) was industry standard and not hard to code for. The "GPU" (more like rasterizer, the Graphic Synthetizer (GS)) chip wasn't hard to use either. It's the Emotion Engine SOC that people had a great difficulty with. SOC means system on a chip, which in PS2 contains the CPU, two 64-bit ALUs (I think it's a MIPS R5900 feature? But it's still very uncommon for CPUs back in the day to have two ALUs), and various coprocessors and cache hierarchies.
The PS2 was hard to program for due to that SoC. It could run a lot of math operations in parallel and do general CPU tasks asynchronously. it's great on paper, but in reality it's a nightmare to optimize for due to the meager amount of cache and data paths. So many coprocessors, so little internal bandwidth and fast memory for running codes. The cache hierarchies complicate it even more. Also, multithreading wasn't a very popular thing back then, so most games didn't take full advantage of the 2x64-bit ALUs. Making games for the PS2 actually wasn't very difficult, but pushing the system to its limits would have required vast knowledge and nerves of steel.
But the PS2 was a lot of power for such a small price. It was probably the cheapest and most scaleable hardware among the major consoles that gen. The SoC is more powerful than Gamecube's CPU despite the lower clockspeed, thanks to better multithreading.