Next Generation Emulation banner

How did they make PS emulators?

1.3K views 9 replies 6 participants last post by  gabest  
#1 ·
Hi all,

I have a few intriguing technical questions here.

Since the BIOS files are just a bunch of zeros and ones packed in files, how is it possible to find out what to do with the BIOS files for emulation? Are there any documentations on how to process the BIOS files of some sort? Or is this information gained through other means (experiments, perhaps)?

Additionally, how does one know where to start with the sound/graphic/controller emulations? Are the information on how to process native PS calls to graphic/sound/controller functions included in the BIOS as well? Or are other ways being used to obtain such information?

Finally, what type of technical knowledge/experience are required to create an emulator such as PCSX2? I'm pretty sure it's not only programming knowledge.

Any answers/pointers would be greatly appreciated.
Thanks!

P.S. Sorry if I'm posting in the wrong place; I'm not sure where to put this type of question.
 
#4 ·
Right, I'm from the government and I'm on a mission to sue you all emu developers after being lobbied by console-producing companies.

Sarcasms aside, could you please specify what you mean by "linux kit"?
Is it some kind of PS2 SDK for Linux developers?

Anyways, thx for giving a good info.
 
#5 ·
1 - homebrew docs. basically shared knowledge.
2 - based on this, open docs and 'experiments', technical demos can be made/used as well, that ensure some 'techniques' are mature enough for actual use inside programs

Knowledge of the limits of PS2, and how games are 'optimized' helps.


Yes, this was a wrong section. Anyway.
 
#6 ·
#7 · (Edited)
A bit about emulation

With any emulator, you start with the hardware. Through comparison of similar harware, experimentation, you gain knowledge of the physical operation of the system. There was a document called "Everything You Wanted to Know About the PlayStation but Were Afraid to Ask.doc"

Knowing microprocessor architechture - basically how any computer works - is fundamental to creating an emulator.

The BIOS files are just a bunch of 1's and 0's. But if you know what groupings of bytes mean, a pattern emerges.

... and Neo sees the Matrix for what it is...

A disassembler, created from microprocessor architechture-fu, unravels the BIOS bytes into a sequence of commands. This, along with more leaked documents and experiments performed to see "What Happens If I Do This?" reveals the structure of the software layer and the hardware beneath it.

Once you know how the system works, you can attempt to create a program that processes commands in the same way that the original hardware does.

If you thought the first part was hard, this is even harder.

Emulators for next gen systems require a deep understanding of the original system and the host system as well. It was fine to use interpretative emulation with NES and stuff, but with more complex systems, more challenges appear. So we need dynamic recompilation and other tricks to speed up emulation.

Using the host system's capabilities to the fullest potential needs more than just programming knowledge. It takes fu.

So I salute the guys who built PSEmu, PCSX, and PCSX2.

These guys have fu.
 
#8 ·
With any emulator, you start with the hardware. Through public or leaked private documents, you gain knowledge of the physical operation of the system. There was a document called "Everything You Wanted to Know About the PlayStation but Were Afraid to Ask.doc"

Knowing microprocessor architechture - basically how any computer works - is fundamental to creating an emulator. A PS is based on a MIPS CPU and a bunch of other chips. How do they know? Public docs, leaked info. The CPU has a set of instructions, commands to make it do Stuff.

The BIOS files are just a bunch of 1's and 0's. But if you know what groupings of bytes mean, a pattern emerges.

... and Neo sees the Matrix for what it is...

A disassembler, created from microprocessor architechture-fu, unravels the BIOS bytes into a sequence of commands. This, along with more leaked documents and experiments performed to see "What Happens If I Do This?" reveals the structure of the software layer and the hardware beneath it.

A bit simplistic, I know... :p
I take offence to the idea that "leaked documents" are used in the creation of all emulators. I'm fairly certain using such documents would constitute a felony in the United States, and it is an insult to developers for someone to cheapen their work by claiming the information was handed to them.

A functioning emulator is the result of months, if not years, of hard work and research. Careful study of both the binary coding format and the system architecture only goes so far, it takes a special kind of programmer to muster the dedication to really dig in and figure it out. And that's only the beginning.

Using "leaked documents" isn't even remotely acceptable. Nothing can be gained from such an atrocious practice, and you place the entire project and every developer at risk.