Playstation Architecture: A Practical Analysis
41–50 of 118 posts
Re: Playstation Architecture: A Practical Analysis
#42Earlier quoted context omitted.
Which is why I find so ironic that many still think only languages like Assembly, C or C++ have a place in IoT on devices like ESP32. Sure, we used Assembly when performance was the ultimate goal, but also plenty of high level languages, including stuff like Clipper for database front ends. 512 KB with a couple of MHz are already capable of doing a lot of stuff, one just needs to actually think how to properly implem…
> Which is why I find so ironic that many still think only languages like Assembly, C or C++ have a place in IoT on devices like ESP32. Short answer, Parkinson's law. When I browse the Web, open my Windows File Explorer, open Photoshop, open Visual Studio, open just a graphical application that needs GPU acceleration, or do whatever thing that should not be an issue, I find that Parkinson's law very much applies. htt…
The problem is that mechanical sympathy seems to be a lost art, and it is going to be slow as molasses regardless of the language being used.
What to expect when Electron is the new darling for writing desktop applications?
Re: Playstation Architecture: A Practical Analysis
#43Earlier quoted context omitted.
Like shipping Electron apps.
Honestly dude, I know you are trying to joke and all but this just sounds incredibly rude. This minimization of someone else's skill is petty and absurd. Electron apps serve their purpose and have their place, hating on them will not get you anywhere.
Sometimes it is really important.
Re: Playstation Architecture: A Practical Analysis
#44Neat article, content wise. I wouldn't call it in-depth because it's very high level, but it is neat. The presentation could be made much better by getting rid of those tabbed sections and just making the article one long page.
Anyway, I’m not a professional web designer, the tabs are just an attempt to keep the info concentrated.
Re: Playstation Architecture: A Practical Analysis
#45One small detail that I don't see mentioned in the article is that the GPU cannot actually rasterize at 24bpp, only 15bits RGB555. 24bpp is mostly only used to display pre-rendered static images or video decoded by the MDEC. I seem to recall one 2D game that managed to have 24bpp gameplay but it was a clever hack more than anything else. Internally the GPU always functions at 24bpp however, it just dithers and truncates to RGB555 so an emulator can actually remove the truncation and run at 24bpp "natively".
Beyond that some of the GPU's limitations can be improved in emulators with more or less complicated hacks. In particular a modification called PGXP can be used to side-channel the depth and sub-pixel precision data to the GPU implementation to allow perspective correct and more precise rendering: https://www.youtube.com/watch?v=-SXT-y0vKv4
It doesn't work perfectly with all games and it's fairly CPU-intensive but it looks pretty decent when it works well.
>MIDI sequencing: Apart from playing samples, this chip will also synthesise MIDI-encoded music.
I don't know what that means. I implemented the SPU on my emulator a couple of weeks ago and I'm not really sure what that refers to.
>The port of the controller and the Memory Card are electrically identical so the address of each one is hardcoded, Sony altered the physical shape of the ports to avoid accidents.
To expand on that: the interface always talks to both controller and memory card within the same slot, so when you talk to memory card 1 you also talk to whatever is plugged into the controller port 1. Then in the serial protocol the first byte tells who you're talking to (0x01 for pad, 0x81 for mc), and the other device is supposed to see that and remain in high-z.
So actually plugging a memory card in a controller port (or vice-versa) would work, the problem would be if you plugged two memory cards or two controllers in the same port, in which case they'd speak on top of each other.
Beyond that the protocol to discuss with the memory card and especially gamepad is, in my opinion, absolutely insane. It's over-complicated and under-featured. It's also incredibly slow (especially for memory card access).
Regarding copy protection:
>On the other side, this check is only executed once at the start, so manually swapping the disc just after passing the check can defeat this protection...
That works with most games, but later games were more clever: you could relock the drive and restart the init sequence early on to see if the drive really recognizes the disc.
It was also used as a protection against early modchips: since those would constantly stream the SCEx magic string to unlock the drive (instead of just during the first sectors like a real disc would) you could lock the drive, read some sectors that shouldn't be able to unlock it then re-check. If the drive is unlocked you know there's a modchip and you display a spooky message about piracy. Note that this technique would detect the modchip even when playing with an authentic disc so you'd effectively be unable to play the game at all on modded hardware.
Re: Playstation Architecture: A Practical Analysis
#46Nowadays, even simplistic programs take ages on a device 1000 times more powerful. I had time to read this article because restarting our ruby development server is so excruciatingly slow.
It seems the craftsmanship aspect of computer programming is getting lost, and all that remains is the large leverage that one can use to drive profits with software.
Re: Playstation Architecture: A Practical Analysis
#47Earlier quoted context omitted.
> Which is why I find so ironic that many still think only languages like Assembly, C or C++ have a place in IoT on devices like ESP32. Short answer, Parkinson's law. When I browse the Web, open my Windows File Explorer, open Photoshop, open Visual Studio, open just a graphical application that needs GPU acceleration, or do whatever thing that should not be an issue, I find that Parkinson's law very much applies. htt…
The problem isn't Java, after all Photoshop also has performance issues when compared with its old self, and it is C++. The problem is that mechanical sympathy seems to be a lost art, and it is going to be slow as molasses regardless of the language being used. What to expect when Electron is the new darling for writing desktop applications?
A big problem is simply that software development is too hyped, and there is too much money in the industry, so there are too many unexperienced developers bringing bad software. Also, projects are too ambitious, leading to compartmentalization of implementation, leading to slow and unreliable code. The problem often starts already with the things that people want to build.
And my guess is that the use of Java and other object languages is highly correlated with these developments.
Re: Playstation Architecture: A Practical Analysis
#48Neat article, content wise. I wouldn't call it in-depth because it's very high level, but it is neat. The presentation could be made much better by getting rid of those tabbed sections and just making the article one long page.
On a desktop at least, let us please not :)
* Allow me to understand the structure and length of content I'm entering
* Allow me to jump quickly to what I need, now and in the future
* Allow me to load only what I want
All good things! :)
Re: Playstation Architecture: A Practical Analysis
#49Earlier quoted context omitted.
Which is why I find so ironic that many still think only languages like Assembly, C or C++ have a place in IoT on devices like ESP32. Sure, we used Assembly when performance was the ultimate goal, but also plenty of high level languages, including stuff like Clipper for database front ends. 512 KB with a couple of MHz are already capable of doing a lot of stuff, one just needs to actually think how to properly implem…
> Which is why I find so ironic that many still think only languages like Assembly, C or C++ have a place in IoT on devices like ESP32. Short answer, Parkinson's law. When I browse the Web, open my Windows File Explorer, open Photoshop, open Visual Studio, open just a graphical application that needs GPU acceleration, or do whatever thing that should not be an issue, I find that Parkinson's law very much applies. htt…
Java (the culture) makes it hard to be performant. There's a great tendency to use all sorts of frameworks and elaborate object systems where much simpler code would give you at least 90% of the functionality for 10x the performance.
But if you get some programmers with experience beyond Java who care about performance and are rewarded for performance, it's certainly possible.
I briefly wondered whether the demoscene ever had a go at Java, and indeed they did: http://www.theparty.dk/wiki/Java_Demo_1999 / https://www.youtube.com/watch?v=91HzuGqpTHo
Re: Playstation Architecture: A Practical Analysis
#50It makes me feel nostalgic to read about the times when people still tried to understand the hardware and make things work amazingly well despite harsh resource limits. Nowadays, even simplistic programs take ages on a device 1000 times more powerful. I had time to read this article because restarting our ruby development server is so excruciatingly slow. It seems the craftsmanship aspect of computer programming is g…
Is it running on Windows? (Honest question.)