• First commercial PS3 game running in "RPCS3" emulator
    65 replies, posted
[media]http://www.youtube.com/watch?v=N2yjoDdFIu0[/media] Even though it's really laggy and full of graphical glitches, it's a pretty amazing first step for PS3 emulation.
won't be for a few good years though until PS3 emulation becomes somewhat decent.
I thought it was gonna take much longer to begin emulation of PS3/360 games. Even though there's a long way to go, holy shit I wasn't expecting this.
It's not legit until the dude shows some source code, this could easily be bullshit.
Holy crap, this is amazing. Playing Uncharted games on PC for example would be mindblowing. But it's still a long way to go. But does anybody know how do these emulators work? Do they program every single game to work correctly or just some heavy modding similar to console? Because some PSX games still don't work well on emulator.
xbox 1 xbox 1
Meh guys, this is worthless, PS3 emulator already exists, look at this beauty: [media]http://www.youtube.com/watch?v=O2SpyS02Qg8[/media] I can't wait to fire up my GTA 5 on my PC! If only I could get past these stupid surveys....
[QUOTE=windwakr;44154222][url]https://github.com/DHrpcs3/rpcs3[/url][/QUOTE] Searched after posting and ran into it. Fairly active commit log, good luck to them.
I'm a little surprised that out of the PS3 and 360, that the PS3 would be the first to be emulated, at least in some sense.
It makes a little bit of sense... I mean, the Xbox ran on PPC, which isn't easy to emulate at all. It's why Apple dropped support for PPC applications entirely when they switched to Intel. Cell's already had some emulation work done by different companies who make programs for Cell-based servers, so the groundwork is there.
[QUOTE=Greendead;44154172]Holy crap, this is amazing. Playing Uncharted games on PC for example would be mindblowing. But it's still a long way to go. But does anybody know how do these emulators work? Do they program every single game to work correctly or just some heavy modding similar to console? Because some PSX games still don't work well on emulator.[/QUOTE] Programmer here - I haven't written emulators myself, but I know enough of how they work to explain them. They work primarily by emulating the actual hardware. On a PS3 CPU, a program command "add these two numbers" might be "10100000". On an x86 computer, the same might be "00101010". So the emulator reads the first number as data, figures out what it's trying to do, and runs code that does the same thing on the PC. Naturally, it gets more complex than that, since basically every console of the past few generations has been x86 or PowerPC (x86: Xbox, Xbox One, PS4; PowerPC: PS3, Xbox 360, Gamecube, Wii, Wii U). With consoles there are often tweaks to the precise instruction set (PS3 had Cell, X360 had VMX128). Graphics processors all have their own separate instruction formats (on the PC, drivers translate between high-level calls and whatever the card needs, since even cards from the same manufacturer may be completely different). How the CPU is given access to memory and storage differs. And of course modern systems have a fairly substantial OS on them. Then there's issues of timings and whatnot - doing exactly as I described is called "interpretation", which is the slowest possible way to do it. Faster methods abound, but they're not only trickier, but often don't work exactly right by their very nature. Not to mention that pretty much none of this is publicly documented - you have to figure it out yourself. So between emulation in general being very tricky (a "high-level emulator", while fast, is considered one of the most difficult programs to write well), and having to do it while flying blind, there's a lot that gets done wrong. Or, because it's such a massive undertaking, just isn't done *yet*. So game-specific fixes are common in many emulators - they figure out what a specific game needs in order to run, and get that working. Often there's a change that is needed to get one game working, but breaks another - so they add some code to figure out which you're running, and modify the emulator accordingly. This is why popular games are the most well-supported - because the emulator was written with a list of tricks needed to get it to run. So the answer is "a little bit of both". Most of the work is usable on all games, but getting one game to run may require only half the functionality to be finished. And even when it's all "done", game-specific tweaks will be a requirement for a PS3 game on modern computers (there's a no-game-specific-fixes 100%-perfect NES emulator that manages to bog down my desktop - perfection is expensive). That answers the question you asked, but not the question you didn't ask - how long is it until the emulator can run games I actually want to play? Right now, I can basically guarantee that they've been working for a while to get that one specific game working, and have only implemented the parts that it actually uses. Further, they're only fixing bugs that affect that game, probably even ignoring ones that don't cause the game to crash (like the texture corruption). At this stage they likely can't get most games to even load to the title menu. Even this game is obviously unplayable, even though it is technically running. However, they have enough working that they've gotten a game to run at all. That alone is a monumental achievement, particularly with the horribly fucked-up design of the PS3. Now that that's done, I would expect more people to be able to help out, so while there's a ton of progress needed before you'll be playing Uncharted, that progress may be coming faster. I can't give an estimate on timeframes, though, except in vague estimates, because even long-established emulators can fail to run certain games (even NES emulation has not yet been perfected). But no, you're not going to be running Uncharted on PC anytime soon.
[QUOTE=gman003-main;44154660]Right now, I can basically guarantee that they've been working for a while to get that one specific game working, and have only implemented the parts that it actually uses.[/QUOTE] RPCS3 developer here. I wonder how can you "guarantee" this. :smile: BlackDaemon tried this game 8 hours ago for the first time and it turned out it was working. Of course, now that we noticed a few glitches in it and we are going to publish a fix soon: See: [B][url]http://i.imgur.com/eT2sITq.png[/url][/B] [video=youtube;_YK1WFZF790]http://www.youtube.com/watch?v=_YK1WFZF790[/video] We don't focus in commercial games when developing the emulator. That would make no sense, specially at early stages too many crap happens at the same time, so we use simple test programs which only use certain parts of PS3s syscalls. This week, I started an autotest repo that could speedup development a lot by automatizing tests: [url]https://github.com/DHrpcs3/ps3autotests/[/url] Everything else you said is right. Notice that we will focus a lot in HLE, of course we will have to write a fancy dynarec for the PPU and the little bastard ones (SPUs), but one important key of the PS3 are that the game doesn't run in bare metal. They use a lot of so-called modules and it turns out that they perform a lot of CPU intensive tasks. We have several ideas for optimazing the emulator (they will be a "priority" once the compatibility is more or less acceptable), all we need is time and/or people willing to lend us a hand. Now, regarding other comments. It's true that this emulator was first released 3 years ago, but the development was somewhat slow (only 2 people were working on it) and with long inactivity times. Now the amount of people working on it is growing fast the lasts months / weeks. So please guys, there is no need to extrapolate things. I personally don't care how many time PCSX2 or Dolphin required, most of us are probably doing it for the sake of emulation and reverse engineering. :smile: [IMG]http://imgs.xkcd.com/comics/extrapolating.png[/IMG]
[QUOTE=AlexAltea;44155378]RPCS3 developer here. I wonder how can you "guarantee" this. :smile: BlackDaemon tried this game 8 hours ago for the first time and it turned out it was working. Of course, now that we noticed a few glitches in it and we are going to publish a fix soon: See: [IMG]http://i.imgur.com/eT2sITq.png[/IMG] [video=youtube;kER9cdPzB3]http://www.youtube.com/watch?v=kER9cdPzB3[/video] We don't focus in commercial games when developing the emulator. That would make no sense, specially at early stages too many crap happens at the same time, so we use simple test programs which only use certain parts of PS3s syscalls. This week, I started an autotest repo that could speedup development a lot by automatizing tests: [url]https://github.com/DHrpcs3/ps3autotests/[/url] Everything else you said is right. Notice that we will focus a lot in HLE, of course we will have to write a fancy dynarec for the PPU and the little bastard ones (SPUs), but one important key of the PS3 are that the game doesn't run in bare metal. They use a lot of so-called modules and it turns out that they perform a lot of CPU intensive tasks. We have several ideas for optimazing the emulator (they will be a "priority" once the compatibility is more or less acceptable), all we need is time and/or people willing to lend us a hand.[/QUOTE] I stand corrected. I've not been keeping up with the status of PS3 emulation, so I sort of assumed you had been going about it more or less in the manner I would. I didn't consider that your focus was on tests foremost, so I assumed this was the first big proof of functionality, rather than just an arbitrary landmark point. In hindsight that actually makes a good deal of sense, which is probably why you guys are successfully working on emulators and I'm not. Also, interesting info about PS3 software not being very bare-metal. Is there a good place for me to read more about this? I'm always interested in this sort of thing.
[QUOTE=gman003-main;44155564]I stand corrected. I've not been keeping up with the status of PS3 emulation, so I sort of assumed you had been going about it more or less in the manner I would. I didn't consider that your focus was on tests foremost, so I assumed this was the first big proof of functionality, rather than just an arbitrary landmark point. In hindsight that actually makes a good deal of sense, which is probably why you guys are successfully working on emulators and I'm not. Also, interesting info about PS3 software not being very bare-metal. Is there a good place for me to read more about this? I'm always interested in this sort of thing.[/QUOTE] Well it's a bit complicated. All the information I got comes from PSDevWiki ([url]www.psdevwiki.com/ps3/[/url]) and tests as described before, which require a lot of patience. :D I guess the RPCS3's repo can be somewhat useful to understand what's going on: [url]https://github.com/DHrpcs3/rpcs3/[/url]. There is a link to the official forum's in there, but we don't usually discuss technical aspects of the emulator or future features. You can ask about them, though. Oh and there is a lot of forums as well such as PS3Hax, but I don't visit them often. Really amazing guys wrote a lot of information in the past about several aspects of the PS3 (SELF decryption, PKG unpacking, etc.) which you can find on these forums, and they coded open source tools for that. We saved lots of time thanks to them... With other features like SDAT files we hadn't that much luck and Hykem (a very skilled dev. and one of the co-authors of the emu afaik) had to reverse the whole compression algorithm (that's the problem of High Level Emulation, heh :smile:). TL DR; The information is a bit chaotic and spread among hundreds of people, blogs and forums. The best attempt to order this chaos is PSDevWiki. :P
This is probably the most impressive reverse engineering and emulation project to date. I wasn't expecting anyone/anything to get this far, and a i certainly wasn't it expecting it this soon.
I tried downloading the current build on github, but my visual studio says the trial expired and I can't compile it, do you have a built version or something? (I used it once before for a PSP emulator, and really don't know how to use it)
[QUOTE=Binladen34;44156068]I tried downloading the current build on github, but my visual studio says the trial expired and I can't compile it, do you have a built version or something? (I used it once before for a PSP emulator, and really don't know how to use it)[/QUOTE] Download the free Express version.
I have a what if question What if say in 3 or so years, the PS3 emulator can simulate some AAA title games, would the online functionality for those games that require PSN work online? I'd imagine you'd have to emulate a wireless/LAN connection similar to that on Dolphin but yeah I don't know much technical stuff but I am really impressed by the progress
So that's two out of the three major seventh generation consoles with emulators. I can't wait to see this one develop further because this is amazing.
I'm still very skeptical about this, i think i was reading a thread on the PCSX2 forums and i think one of the devs said that we probably won't see a PS3 or 360 emulator for a VERY long time, since emulation requires several times the processing power of the console being emulated. I remember my old Core 2 Duo absolutely struggling to emulate with PCSX2.
[QUOTE=zombini;44156808]I'm still very skeptical about this, i think i was reading a thread on the PCSX2 forums and i think one of the devs said that we probably won't see a PS3 or 360 emulator for a VERY long time, since emulation requires several times the processing power of the console being emulated. I remember my old Core 2 Duo absolutely struggling to emulate with PCSX2.[/QUOTE] How long ago was that thead? PCSX2 was started in 2002 but wasn't able to run AAA games well enough until 2007.
[QUOTE=zombini;44156808]I'm still very skeptical about this, i think i was reading a thread on the PCSX2 forums and i think one of the devs said that we probably won't see a PS3 or 360 emulator for a VERY long time, since emulation requires several times the processing power of the console being emulated. I remember my old Core 2 Duo absolutely struggling to emulate with PCSX2.[/QUOTE] There is video proof and their code is on github, how could you be skeptical of this?
[QUOTE=zombini;44156808]I'm still very skeptical about this, i think i was reading a thread on the PCSX2 forums and i think one of the devs said that we probably won't see a PS3 or 360 emulator for a VERY long time, since emulation requires several times the processing power of the console being emulated. I remember my old Core 2 Duo absolutely struggling to emulate with PCSX2.[/QUOTE] They seem to still be in their first steps stage. as you can see the videos barely run at 10fps and it's not even a taxing game. Even though it works, it doesn't work good enough yet. The quote you're referring to probably meant a [i]usable[/i] emulator, and if he did, then he would be correct. I doubt this will be actually usable for quite a while. what quite a while means however i do not know
-snip- i think fake?
[QUOTE=cricket50;44157618]-snip- i think fake?[/QUOTE] Did you even bother reading the thread before posting?
[QUOTE=zombini;44156808]I'm still very skeptical about this, i think i was reading a thread on the PCSX2 forums and i think one of the devs said that we probably won't see a PS3 or 360 emulator for a VERY long time, since emulation requires several times the processing power of the console being emulated. I remember my old Core 2 Duo absolutely struggling to emulate with PCSX2.[/QUOTE] This is true to some degree, but if my understanding of modern emulation is correct, it's less of an issue with recent consoles. This is the difference between LLE or (standard emulation) and HLE. As consoles got more complicated, it became necessary to stick to the provided libraries for programming for them. Where back in the early console days you would manipulate every byte of video memory to get a Vectorman run on a Genesis or [url=http://all-things-andy-gavin.com/2011/02/02/making-crash-bandicoot-part-1/]Crash Bandicoot[/url] on PS1, as things moved on you let the manufacturer optimise the libraries you link against and just call them. So while early emulators, for compatibility with a great many titles, have to emulate every quirk and facet of every chip, every memory bus, even the timings of every syscall, (this is LLE) modern emulators merely have to provide a different instruction library designed to do the translation to x86 PC instructions (HLE) A side benefit of this is you even have, via the development documentation material available, a complete list of every library call you need to emulate, with arguments and intended behaviour. That's not to say there's nothing to investigate, but it goes a long way towards hitting the ground running. There will be exceptions of course, but in my understanding that is the broad gist of modern emulation. (Note I'm not an emulation programmer I may be talking complete shit I just looked into terminology and explanations when curious throughout the years)
[QUOTE=subenji99;44157798]This is true to some degree, but if my understanding of modern emulation is correct, it's less of an issue with recent consoles. This is the difference between LLE or (standard emulation) and HLE. As consoles got more complicated, it became necessary to stick to the provided libraries for programming for them. Where back in the early console days you would manipulate every byte of video memory to get a Vectorman run on a Genesis or [url=http://all-things-andy-gavin.com/2011/02/02/making-crash-bandicoot-part-1/]Crash Bandicoot[/url] on PS1, as things moved on you let the manufacturer optimise the libraries you link against and just call them. So while early emulators, for compatibility with a great many titles, have to emulate every quirk and facet of every chip, every memory bus, even the timings of every syscall, (this is LLE) modern emulators merely have to provide a different instruction library designed to do the translation to x86 PC instructions (HLE) A side benefit of this is you even have, via the development documentation material available, a complete list of every library call you need to emulate, with arguments and intended behaviour. That's not to say there's nothing to investigate, but it goes a long way towards hitting the ground running. There will be exceptions of course, but in my understanding that is the broad gist of modern emulation. (Note I'm not an emulation programmer I may be talking complete shit I just looked into terminology and explanations when curious throughout the years)[/QUOTE] Yeah but then again PS3 has the Cell processor.
[QUOTE=AlexAltea;44155674]Well it's a bit complicated. All the information I got comes from PSDevWiki ([url]www.psdevwiki.com/ps3/[/url]) and tests as described before, which require a lot of patience. :D I guess the RPCS3's repo can be somewhat useful to understand what's going on: [url]https://github.com/DHrpcs3/rpcs3/[/url]. There is a link to the official forum's in there, but we don't usually discuss technical aspects of the emulator or future features. You can ask about them, though. Oh and there is a lot of forums as well such as PS3Hax, but I don't visit them often. Really amazing guys wrote a lot of information in the past about several aspects of the PS3 (SELF decryption, PKG unpacking, etc.) which you can find on these forums, and they coded open source tools for that. We saved lots of time thanks to them... With other features like SDAT files we hadn't that much luck and Hykem (a very skilled dev. and one of the co-authors of the emu afaik) had to reverse the whole compression algorithm (that's the problem of High Level Emulation, heh :smile:). TL DR; The information is a bit chaotic and spread among hundreds of people, blogs and forums. The best attempt to order this chaos is PSDevWiki. :P[/QUOTE] What is your programming background/education/how.. ?
Baby steps It will be a while, but seeing a console/PS3 exclusive on this is going to be beautiful
I have a lot of respect for people working on this, considering the insane amount of work that goes into developing an emulator solely as a hobby, without getting paid. A lot of games for older systems would have probably been lost if it wasn't for emulators. I'll keep an eye on this, although I'm sure it won't come close to running games at full speed any time soon.
Sorry, you need to Log In to post a reply to this thread.