Next Generation Emulation banner

1 - 20 of 26 Posts

·
Registered
Joined
·
7 Posts
Discussion Starter · #1 ·
Recently a user (menken) posted an article suggesting that PCSX2 be developed differently. (Here is the text)


Lightbulb Idea for PS2 emulation
I wonder if making of emulation of PS2 for WINDOWS or LINUX is it a good way... PC and PS2 is only a piece of hardware. As everybody know hardware needs software to run. When You make program for WIDOWS to emulation PS / PS2 then about 80% of proccessing is waste for translate.
The question is... Do we need to translate?
For example emulation of old DOS for new WINDOWS and LINUX --- "DOS BOX"
The key to make a perfect emulation is dont make emulation...
Make all system...
I know that is much harder to make
I think it's the best way to make it much faster.
If You could only analise bios fom PS2............................


He was right royally crisped by the flames emanating from this forum.


Let's apply some critical review

1. The PS2 is a piece of (well 5 pieces) of hardware - True
2. The key to good fast emulation is not to use emulation - Undoubtably
3. Would it be faster - Yes
4. Can it be done with standard PC Hardware - No

So what would it take to do it ?. It would take a PCI Card with an R4xxx based CPU a bit of flash memory for the HLE and 32 MB of RAM, OK we could use memory across PCI but you know - there's bandwidth to consider.

Can that be done - Yes
Would it be faster to develop - Yes
Would it be faster than a PS2 - Yes, With a 533 Mhz T99 co-pro, speed could be several times the emotion engine (666 Mips VS 275 MIPS). Toshiba doesn't give GFlops but my bet is it's considerably higher than the Emotion Engine
Are there other advantages - Yes, Gamecube/PSP/PSX all are MIPS based and could use this co-pro for code execution.

Of course this would still require trapping hardware calls and routing them to the appropriate plugins. But hey, without having to worry about emulating a superscalar CPU and given that the plugins are native, the job would be considerably easier and faster, Funnily enough "Just Like a DOS Box Virtual PC".

The moral of this story - think before you flame

Bob (Dons flameproof suit and awaits replies)
 

·
PCSX2 Coder
Joined
·
10,122 Posts
in theory that all sounds nice, but that would mean everybody who wants to play ps2 games on their pc would have to get this MIPS addon pci card youve just invented :p

tbh, i dont think users want to do that, and it takes the fun out of emulation as your basically putting a ps2 on a monitor, which anybody can do already.

concepts of emulation arent as simple as converting the ps2 instructions to pc one because it works totally different, the biggest hurdle is the fact it uses 128bit instructions instead of the pc's 32bit (or 64bit) so it needs to be cut down and translated in smaller blocks.

apart from that the video decoding has to be emulated (yes ps2 graphics need decoding) which the cpu has to do on a pc cos the graphics cards arent made for ps2 data, youd need some special driver for your video card to support that, but i dont think the hardware would.

next hurdle is the PS2 uses like 3 or 4 seperate processing units doing stuff all at the same time, which, you guessed it, one pc cpu has to do, again making things slower.

the guy probably got flamed cos he may have good theorys on things, but he obviously knows nothing about programming an emulator.
 

·
Registered
Joined
·
1,056 Posts
bobl said:
Recently a user (menken) posted an article suggesting that PCSX2 be developed differently. (Here is the text)


Lightbulb Idea for PS2 emulation
I wonder if making of emulation of PS2 for WINDOWS or LINUX is it a good way... PC and PS2 is only a piece of hardware. As everybody know hardware needs software to run. When You make program for WIDOWS to emulation PS / PS2 then about 80% of proccessing is waste for translate.
The question is... Do we need to translate?
For example emulation of old DOS for new WINDOWS and LINUX --- "DOS BOX"
The key to make a perfect emulation is dont make emulation...
Make all system...
I know that is much harder to make
I think it's the best way to make it much faster.
If You could only analise bios fom PS2............................


He was right royally crisped by the flames emanating from this forum.


Let's apply some critical review

1. The PS2 is a piece of (well 5 pieces) of hardware - True
2. The key to good fast emulation is not to use emulation - Undoubtably
3. Would it be faster - Yes
4. Can it be done with standard PC Hardware - No

So what would it take to do it ?. It would take a PCI Card with an R4xxx based CPU a bit of flash memory for the HLE and 32 MB of RAM, OK we could use memory across PCI but you know - there's bandwidth to consider.

Can that be done - Yes
Would it be faster to develop - Yes
Would it be faster than a PS2 - Yes, With a 533 Mhz T99 co-pro, speed could be several times the emotion engine (666 Mips VS 275 MIPS). Toshiba doesn't give GFlops but my bet is it's considerably higher than the Emotion Engine
Are there other advantages - Yes, Gamecube/PSP/PSX all are MIPS based and could use this co-pro for code execution.

Of course this would still require trapping hardware calls and routing them to the appropriate plugins. But hey, without having to worry about emulating a superscalar CPU and given that the plugins are native, the job would be considerably easier and faster, Funnily enough "Just Like a DOS Box Virtual PC".

The moral of this story - think before you flame

Bob (Dons flameproof suit and awaits replies)
it would take a 128 bit mip processor. whitch is what much of a ps2 is. emulation isnt just stright translation. Its converting cpu calls from 1 type of chip to another like the ps2 is a mips cpu and a computer is a x86. VERY Differnt in how it works and the asm langs on the chips are differnt also. So the meulation is a asm emulation. HLE is when you read block of asm code that are common and do the x86 version of it instead of translating each asm call.so the fact the ps2 is 128 bit and the x86 is 32bit. computers have away to go till they can match the computing power of the ps2.
 

·
Registered
Joined
·
7 Posts
Discussion Starter · #4 ·
There can be gems of wisdom from people who don't know much about programming an emulator.

IMHO emulaing the CPU is a waste of time - The best way to do this is to design an Open Source co-processor and work to that. PCI based MIPS copros are not mythical. Heres one (albeit exspesive)
http://www.artismicro.com/A7000-PCI.htm

Note I'm not talking about putting a PS2 on a PCI Bus, just the compute engine, all the hardware would still have to be emulated by the PC the same way it is now

BUT the PC can process I/O concurrently with the Co-Pro, this considerably simplifies the emulation of the 3 or 4 other units. (Actually I think the PS2 effectively has two R4000 processors so two co-processors might work better than one). From what I can see the hardware plugins aren't too bad at the moment, a co-pro to do instruction execution might just complete the puzzle.

IMO There are several good legal reasons to use an emulatior probably the least of which is lower cost but among them are

Avoid Sony/Nintendo Monopolies on content publishing for those platforms
Avoid Region Coding - which should be an illegal practise since it's a restriction of trade
Convenience of an all in one gaming solution
Ability to target and develop third party content (Using the emulator)
Better game hacking access (ALA Gameshark)

Mind you creating the emulator only in software is probably more fun...

Bob
 

·
Registered
Joined
·
83 Posts
First at all, i wanna apologize with menken, i replied to his post in a not proper manner, sorry guy.

Well, how it said reflection, if you use a PCI card as you are mentioning, you would be forcing to people to buy a device for use the emu, that's not viable solution, therefore there isn't the best way to do it.

Now, if we suppose that is a viable solution, that would be only a solution for main processor, there are still missing the VUs and FPU processors.

And i don't how you achieved this conclusion "Actually I think the PS2 effectively has two R4000 processors". The PS2 has a R5900 processor which is a implementation of MIPSIV processors with a few extra opcodes (not actually a MIPSIV).
 

·
Wind, Life, Eternity
Joined
·
1,331 Posts
Ummm... bobl, did you ever wonder why pcsx2 is called an "emulator" :laugh:
The reason why people get upset when someone comes up with a great idea for emulation is because of that we got too many already... :(
And do you know a lot about programming and emulation?
 

·
Registered
Joined
·
7 Posts
Discussion Starter · #7 ·
WindHydra said:
Ummm... bobl, did you ever wonder why pcsx2 is called an "emulator" :laugh:
The reason why people get upset when someone comes up with a great idea for emulation is because of that we got too many already... :(
And do you know a lot about programming and emulation?
Actually, I do know what an emulator is and there are many types of emulators it is not necessary to do a CPU emulation to have an emulator.

I think more to the point menken got flamed because he was a little naive in his knowledge of CPU emulation and perhaps didn't understand that the PC has a whole different instruction set. However a rational explanation and some consideration of his idea would have been a better approach

Do I know a lot about programmng and Emulation ? Compared to who? I have ported PCSX to Solaris (But am having trouble with it at the moment- I seem to have the same problem under Linux). I have ported PCSX 2 to Solaris once or twice and tried to send patches, maybe successfully since I never heard back from my e-mails. I ported wine to Solaris and am the current maintainer of that project. I wrote a 6809 simulator and an RTOS back at university once ? I am not however a professional Programmer, I am an Electronics Engineer. So, you decide.

Bob
 

·
Registered
Joined
·
7 Posts
Discussion Starter · #8 ·
Scar_T said:
First at all, i wanna apologize with menken, i replied to his post in a not proper manner, sorry guy.

Well, how it said reflection, if you use a PCI card as you are mentioning, you would be forcing to people to buy a device for use the emu, that's not viable solution, therefore there isn't the best way to do it.

Now, if we suppose that is a viable solution, that would be only a solution for main processor, there are still missing the VUs and FPU processors.

And i don't how you achieved this conclusion "Actually I think the PS2 effectively has two R4000 processors". The PS2 has a R5900 processor which is a implementation of MIPSIV processors with a few extra opcodes (not actually a MIPSIV).
1- Thank you, you are right, it was not the right approach. I know you probably hear the same thing over but perhaps posting a standing FAQ on this might help then just refer these sorts of posts to the FAQ.

2- No, Not Force, there is no reason the software CPU emulation should not continue but a "Free - As in Free IP" hardware coprocessor is easier to do and can be done in a semester by a student as a student project if you can recruit one This would provide an excellent interim solution for early adopters or those choosing to use a emulator for other reasons. I would think it would considerably speed MIPS based emulator developement. Not only that, sales of prebuilt coprocesors could fund the PCSX2 development.

3. Actually I think the Chip I Suggested (T99) has two Vector units and an FPU

4. Re Processors, You are probably more knowlegeable than I, since i haven't researched the PS2 much , I read an article that suggested one of the other units was based on an R4xxx core too but can't recall which one, but I might be confusing this with the upcoming PSP.
Anyway it is still MIPS IV architecture and would simply mean that we would need to choose a processor with the appropriate capabilities. Anyone for a R14k PS2 Emulator ?
 

·
!!!METAL UNCLE!!!
Joined
·
1,951 Posts
Just a note, please, do not double post. Edit your posts if you want to add something, and if you want to reply to another person, you can add multiple quote's to one post easily.
 

·
Registered
Joined
·
6 Posts
ChaosCode said:
it would take a 128 bit mip processor. whitch is what much of a ps2 is. emulation isnt just stright translation. Its converting cpu calls from 1 type of chip to another like the ps2 is a mips cpu and a computer is a x86. VERY Differnt in how it works and the asm langs on the chips are differnt also. So the meulation is a asm emulation. HLE is when you read block of asm code that are common and do the x86 version of it instead of translating each asm call.so the fact the ps2 is 128 bit and the x86 is 32bit. computers have away to go till they can match the computing power of the ps2.
This is funny, the normal high-end PC is around 10 times more powerfull than the PS2(in number of polygons). The problem is that all this power is in the VIDEO CARD.
While the GPUs dont turn as flexible as the CPUs, we will never use all this power for emulation. We will need these ****ty processors today on the market from Intel and AMD. But video cards are, each year, more general purpose.
This is great. The majority of tasks made with CPUs, will be possible with Radeons and Geforces, INCLUDING emulation. But everything good takes time.
Dont wait for all this programability at least until around 2007-8.

Thanks, slk.
 

·
Registered
Joined
·
83 Posts
bobl said:
1- Thank you, you are right, it was not the right approach. I know you probably hear the same thing over but perhaps posting a standing FAQ on this might help then just refer these sorts of posts to the FAQ.

2- No, Not Force, there is no reason the software CPU emulation should not continue but a "Free - As in Free IP" hardware coprocessor is easier to do and can be done in a semester by a student as a student project if you can recruit one This would provide an excellent interim solution for early adopters or those choosing to use a emulator for other reasons. I would think it would considerably speed MIPS based emulator developement. Not only that, sales of prebuilt coprocesors could fund the PCSX2 development.

3. Actually I think the Chip I Suggested (T99) has two Vector units and an FPU

4. Re Processors, You are probably more knowlegeable than I, since i haven't researched the PS2 much , I read an article that suggested one of the other units was based on an R4xxx core too but can't recall which one, but I might be confusing this with the upcoming PSP.
Anyway it is still MIPS IV architecture and would simply mean that we would need to choose a processor with the appropriate capabilities. Anyone for a R14k PS2 Emulator ?
In fact that was the first time i read an opinion like that, i replied in that manner because they're bad days to me, so again, sorry. And i don't think a FAQ would be necessary.

I tried to find info about T99 but i couldn't find anything so i don't know if it really has what you are saying. Could you give me some tech info about that processor?
 

·
PCSX2 Coder
Joined
·
10,122 Posts
well bobl you say you know a bit about programming, if this is such an easier and quicker way to make a PS2 emu, i suggest you start writing it in your fantastic design ;)

But i doubt the PCSX2 team will change what they are doing, as with many authors they prefer the non-addon card approach, where you can just download it and play.

personally i think the method youre describing of just scrubbing round cpu emulation completely will be impossible, you might get away with it when emulating an XBoX but i find it very unlikely.

but however you do it you are still going to emulate the cpu because:

1. the data will always look to the pc processor first, not the addon card
2. the pc has no understanding of the code on the ps2 cd's so it would need to have an interpreter (cpu emulation) so it can understand.

the nearest thing you could probably do to saving time in emulation is to have a dynamic recompiler, which pcsx2 already has.

Im not saying "your thick so stfu noob" or anything like that, i admire you for your visions at looking at alternatives, i just think its a theory which might not work in practice, and for the end user its a much more expensive alternative, you may as well go out and buy a ps2, which kinda defeats the point in emulation doesnt it.

Edit: btw that original example of a "DOS box" thats kinda irrellavant, yes dos was 16bit commands, but the x86 archetecture is designed to cope with them, just as a 64bit processor runs 32bit windows, so all in all, saying ps2 on a pc is a whole new ball game in comparison.

remember pc to pc is a billion times easier than ps2 to pc :)
 

·
Registered
Joined
·
7 Posts
Discussion Starter · #13 · (Edited)
Scar_T said:
In fact that was the first time i read an opinion like that, i replied in that manner because they're bad days to me, so again, sorry. And i don't think a FAQ would be necessary.

I tried to find info about T99 but i couldn't find anything so i don't know if it really has what you are saying. Could you give me some tech info about that processor?

OOPs got the name slightly wrong it's a TX 99 and no vector units, although it does support MIPS-3D instructions (SIMD). I'm not sure if these implement the same instruction set as the vector units.
1146 PM :- Did some more research, seems the PS2 vector units are not the same as the MIPS VUs found in some multimedia MIPS IV Processors so the VUs will still need to be emulated either by the co-pro or the Main CPU (Or both)

http://www.toshiba.com/taec/cgi-bin/display.cgi?table=Category&CategoryID=7271

No Idea of price though

One of the very BIG advantages with MIPS cores is they are embeddable, this means you can get a run of chips made with any combination of features you want quite cheaply (maybe $250K) so if a commercial market existed for emulators you might well find some very nice co-processors emerging.

refraction said:
well bobl you say you know a bit about programming, if this is such an easier and quicker way to make a PS2 emu, i suggest you start writing it in your fantastic design

But i doubt the PCSX2 team will change what they are doing, as with many authors they prefer the non-addon card approach, where you can just download it and play.

personally i think the method youre describing of just scrubbing round cpu emulation completely will be impossible, you might get away with it when emulating an XBoX but i find it very unlikely.

but however you do it you are still going to emulate the cpu because:

1. the data will always look to the pc processor first, not the addon card
2. the pc has no understanding of the code on the ps2 cd's so it would need to have an interpreter (cpu emulation) so it can understand.

the nearest thing you could probably do to saving time in emulation is to have a dynamic recompiler, which pcsx2 already has.

Im not saying "your thick so stfu noob" or anything like that, i admire you for your visions at looking at alternatives, i just think its a theory which might not work in practice, and for the end user its a much more expensive alternative, you may as well go out and buy a ps2, which kinda defeats the point in emulation doesnt it.

Edit: btw that original example of a "DOS box" thats kinda irrellavant, yes dos was 16bit commands, but the x86 archetecture is designed to cope with them, just as a 64bit processor runs 32bit windows, so all in all, saying ps2 on a pc is a whole new ball game in comparison.

remember pc to pc is a billion times easier than ps2 to pc
I'm not sure you understand what I have proposed here. With this approach CPU emulation simply isn't necessary because you have the native CPU to do the processing instead. This is not "My Fantastic Design". This is a tried and proven method used by HP, Apple and Sun microsystems in the past to bring DOS and Windows to their RISC workstations.

I have already acknowledged though that the result isn't free, just cheap, but a solution doesn't have to be free as in Free beer to be a viable open source project, just free as in freely available. Nor would I indulge myself to presume what the developers of PCSX2 would (or would not) prefer to do. Thats up to them. A lot would hinge on price and availability of a suitable CPU and PCI chipset.
 

·
Registered
Joined
·
1,056 Posts
one other problem is the amout of data being sent to the pci card would have to be MASSIVE way more then a pci or a pciX could handle. This has come up before with the devs/beta testors and the main problem is the amount of data the ps2 can move at 1 time.
 

·
PCSX2 Coder
Joined
·
10,122 Posts
indeed, there is a lot of data transfer going on, i mean if i put every single bit of logging on in PCSX2, i get a log file generating at well over 200-300mb a second, and the emulator runs at about 600% slower than with no logging.

so workign on that your looking at about 1.4gb of data a second (if you include all the math etc)
 

·
Premium Member
Joined
·
12,032 Posts
This is the easiest way to sum this up ...

Free vs $$$

Well I'll wait and go for the free things thank you :D I don't want to have to buy more hardware, and would the hardware emulation peice be able to contribute to anything else buy Playstation emulation? Hmmm ... Developing hardware also poses other things with legality ... Too many questions, not enough answes and too much $$$ being wasted.

If you wanna play PS2 right now, go and buy a PS2, otherwise you can wait for an emulator ;)

I don't think this will ever change.
 

·
Wind, Life, Eternity
Joined
·
1,331 Posts
I don't think he's talking about being able to play PS2 right now. He's proposing another way for PS2 emulation with hardware (which I didn't get. Mistook it as something similar to PS2 on PC monitor :lol:).
 

·
PCSX2 Coder
Joined
·
10,122 Posts
well having a PS2 type chip in your pc isnt really emulation is it, more just a 2-in-1

reminds me of the old Amstrad Mega-PC days where they had a megadrive (genesis for you americans!) and pc build into one
 

·
Registered
Joined
·
9,506 Posts
Depends on your "definition" of emulation... after all the ps2 "emulates" the ps1 'cos it has all the psx hardware in tow. However the ps3 will be using "real" emulation for backwards compatibility (assuming you belive the rumours).

In any case for such a card to be useful it stands to reason that at least some of the pc's standard hardware gets used for certain functions. Given that pci has a maximium shared (as in split between all cards) bandwidth of 133 MB/s. Compare that to the 80 (or was that 40) GB/s bus in the emotion engine and we've got a problem. PCX is better, but still no were near the required bandwidth. Thus the card would have to be a self contained unit. This is especially true for the video output, as there is little chance to zero that pci push technology could overlay the video to your standard Gfx card. So it would most likely needs it's own display unit too :p. The final problem is power. I'd be surprised if the humble pci card could draw enough juice to power it, so it would need an extra molex connector at least.

In summery, basically what you have is in essence is the full ps2 mobo on a card, which is more or the less the major cost of the original console, but requiring you to get a second monitor too. Plus I haven't gone into the obvious legal issues here (you'd be selling a full alternative ps2 in sony's eyes).

Well at least on the upside you could use the usb/firwire ports and dvd drive;)
 

·
Registered
Joined
·
7,330 Posts
66ish GB/s Beta. ;)
 
1 - 20 of 26 Posts
Top