Short Waves 0.0.1: new PS3 emulator from InoriRus
Started by zzq920817




26 posts in this topic
zzq920817
Unregistered


 
01-05-2014, 03:59 PM -
#1
English version for our foreign folks Smile If you are going to repost this material, put the link to the source please.

Yesterday EmuPlace administration was contacted by InoriRus - the developer of the PlayStation 3 emulator - who offered us to test his project. Below you can read some information about the emulator, which has been taken from the readme file and translated into English:

Short Waves Emulator
Version 0.0.1 (30.12.2013)

System requirements: quad-core CPU and DirectX 9.0 compatible graphics card are recommended, Windows XP or Vista 32-bit. Version for Windows 7 64-bit has not been tested for a long time (my laptop kicked the bucket), so it may not work.

It is still far from launching games (2-3 years). Do not expect miracles. As of now the emu can launch just small homebrew apps.

The project started its life in October 2012. Initially I wanted to extract resources of one game, but it turned out the whole content was encrypted (and packed). In order to crack the encryption algorithms I had to use Cell debugger. I downloaded the RPCS3 source code, compiled and tried to launch it. The emu crashed with error without doing anything. This had really disappointed me and I decided to build my own Theme park.

My emulator has no relation to RPCS3, not a single line of code has been borrowed. Everything is written from scratch on the ground of my personal research.

As of now I have implemented PPU, SPU and RSX emulation. Almost all instructions are supported. Vertex and Pixel shaders are translated directly: from RSX binary code and into DirectX binary code, without temporal appearance in its original source code. There are texture, surface and shader caches. All OS calls are intercepted and executed natively, i.e. official firmware is not required.

I won’t implement dynamic recompilation of PPU and SPU. Static recompilation of PPU has already been implemented: a file is generated using C++ which then is recompiled offline. The resulting .dll is uploaded and executed. All this is done in place of interpretator. Recompilation affects not only simple blocks, but also branching and function calls. A manual on how to use recompilation will be available later.

The emu does not have GUI. The path to the emulated .elf file and all settings are set in the config file sw_emu.ini, that must be placed in the emu's folder.

The gamepad button bindings on the keyboard are hardwired into the code and currently you can't change them through config file.

VK_LEFT = LEFT
VK_DOWN = DOWN
VK_RIGHT = RIGHT
VK_UP = UP
VK_END = START
'3' = R3
'8' = L3
VK_DELETE = SELECT
'A' = SQUARE
'S' = CROSS
'D' = CIRCLE
'W' = TRIANGLE
'0' = R1
'1' = L1
'9' = R2
'2' = L2
'F' = ANALOG_LEFT
'H' = RIGHT
'T' = ANALOG_UP
'G' = ANALOG_DOWN
'J' = ANALOG_LEFT
'L' = ANALOG_RIGHT
'I' = ANALOG_UP
'K' = ANALOG_DOWN

By pressing ESC button Short Waves receives REQUEST_EXITGAME signal - force game exit or power off the real hardware.

Right now the source code is closed.

The author asks for help in testing the emu:

I'd like to have some feedback concerning possible errors. For instances, today I've found that psgl tests don't work on some graphics cards.

You can download Short Waves 0.0.1 PS3 emulator from here.
Ekaseo
Unregistered


 
01-05-2014, 04:03 PM -
#2
from what i have heard, this emulator does not have a future. If you want, i can post the reasons
zzq920817
Unregistered


 
01-05-2014, 04:04 PM -
#3
(01-05-2014, 04:03 PM)Ekaseo Wrote: from what i have heard, this emulator does not have a future. If you want, i can post the reasons

why Undecided
Ekaseo
Unregistered


 
01-05-2014, 04:09 PM -
#4
(01-05-2014, 04:04 PM)zzq920817 Wrote:
(01-05-2014, 04:03 PM)Ekaseo Wrote: from what i have heard, this emulator does not have a future. If you want, i can post the reasons

why Undecided
Discovered by DH:
InoriRus used a static recompiler (which explains such high speed on all the samples), but real homebrew or commercial games can modify sections of his code so the emulator has to react to this by recompiling those modified blocks again (known as dynamic recompiler). There are also problems with the GPU, he translates directly the instructions without decompiling: it works good with the PS3 samples (and pretty good-looking and fast) but his approach won't possibly work good on homebrew or commercial games.
zzq920817
Unregistered


 
01-05-2014, 04:13 PM -
#5
(01-05-2014, 04:09 PM)Ekaseo Wrote:
(01-05-2014, 04:04 PM)zzq920817 Wrote:
(01-05-2014, 04:03 PM)Ekaseo Wrote: from what i have heard, this emulator does not have a future. If you want, i can post the reasons

why Undecided
Discovered by DH:
InoriRus used a static recompiler (which explains such high speed on all the samples), but real homebrew or commercial games can modify sections of his code so the emulator has to react to this by recompiling those modified blocks again (known as dynamic recompiler). There are also problems with the GPU, he translates directly the instructions without decompiling: it works good with the PS3 samples (and pretty good-looking and fast) but his approach won't possibly work good on homebrew or commercial games.
on ok, Thank you Tongue
foo0z0ool
Unregistered


 
01-05-2014, 10:12 PM -
#6
(01-05-2014, 04:26 PM)AlexAltea Wrote: In *my opinion* (some people may agree, and others don't), a closed source project by one single developer can't do anything when it comes to do HLE (that's too much work for a single person). Regarding the emulator: Using a static recompiler (even if its faster than RPCS3's interpreter), isn't a wise idea if the game self-modifies its code. Then, DH pointed out that direct conversion from RSX binary code to DX binary code in shaders (instead of decompiling) will be problematic.

It seems these two features are already fixed in Short Waves, and they won't be really a problem if the project was open source. The only thing that gives me hope about this, is that the source code may be just *temporary* closed. In fact RPCS3 has features that Short Waves lacks, and Short Waves has features that RPCS3 lacks. Collaboration between the two projects would be awesome for both of them (in case InoriRus wants to continue). If he wants to go alone in his emulator, all I can do is to wish him good luck. Undecided

EDIT: This is more or less what Ekaseo said. I want to remark that the individual flaws (the recompiler, shaders, etc.) are NOT a problem at all. I respect his decision if he wants to go alone and make SW closed-source. It just pisses me off, the time DH and InoriRus could have saved if they had worked together.

I think if people on Ps3 emulator works together to get better results and faster project is completed
MaXiMu
Unregistered


 
01-05-2014, 10:54 PM -
#7
I was surprised to work as an integrated Intel HD GPU and not bad speed on some test
But I do not like the project in part because instead of helping others and improve project RPCS3
make your own in these difficult times I think we all need to help each other
ssshadow
Moderator
*****


4
2,494 posts 63 threads Joined: Aug 2017
01-06-2014, 11:30 AM -
#8
Closed source and directx? Yeah right. This is not how you make a program like this, especially not in 2014. This project will never go anywhere, move on people.
MaXiMu
Unregistered


 
01-06-2014, 02:08 PM -
#9
well I think it should still be Directx as it has higher compatibility compared with OpenGL in many GPUS for AMD/Intel of course.

A Directx9 / DirectX 11 and OpenGL Plugin and not focus on only OpenGL.
ssshadow
Moderator
*****


4
2,494 posts 63 threads Joined: Aug 2017
01-06-2014, 10:56 PM -
#10
(01-06-2014, 02:08 PM)MaXiMu Wrote: well I think it should still be Directx as it has higher compatibility compared with OpenGL in many GPUS for AMD/Intel of course.

A Directx9 / DirectX 11 and OpenGL Plugin and not focus on only OpenGL.

It is true that GPU drivers are buggy, but a focus on DirectX also means Windows only. So no Mac or Linux. And theoretically speaking no Android/iOS version either (assuming OpenGL -> OpenGL ES is easier than DirectX -> OpenGL ES, completely disregarding performance, and interest in porting, and working on ARM).

ppsspp is a fine example of good multi platform developement. That thing seems to run on everything, and does so with amazing performance.

But to be fair, nothing else than a über gaming rig, which probably runs Windows anyway, will be able to run rpcs3 for like 10-20 years, so whatwever. Tongue


Forum Jump:


Users browsing this thread: 3 Guest(s)