Comment by spicyjpeg
10 hours ago
The same way it's done now with current generation consoles: the manufacturer would provide you with SDKs and development hardware once you paid them a decent chunk of money and signed an NDA. Prior to the fifth generation it was common for the SDK to be just an assembler, debugger and register-level hardware documentation, leaving the implementation of a kernel and game engine up to the game developer.
Sony however decided to provide a full C toolchain based on GCC as well as a set of very high level libraries that abstracted away basically all aspects of the PS1 [1], all the way up to implementing a ready-to-go 3D engine and MIDI sequencer. This was an unpopular move as the libraries were slow, inefficient and most game developers were used to having full control over the hardware, but it also allowed inexperienced devs to get started quickly (as proven by the thousands of low budget PS1 titles that used the high level APIs) and eventually contributed to the popularity of the console over its peers with worse tooling.
Sony would eventually go on to release some slightly lower level documentation for certain aspects of the console as well as APIs that better mapped to how the hardware actually worked under the hood. It wasn't however until years later that the hardware would be fully reverse engineered at the register level [2], and it took even longer for most homebrew to move away from the official SDK (which only really started happening a few years ago as accurate emulators and homebrew SDKs started popping up).
Crazy then that the Bleem and Bleemcast emulator were so early!
It may actually be helpful to emulation. There's a technique called High-Level Emulation, where instead of emulating the hardware registers that are twiddled by the SDK function, you recognize the call to the SDK function itself and emulate the whole function in one go. This can provide a massive speedup over low-level emulation, but relies on the game primarily using the SDK. This was also used to emulate the N64 on Windows 95.