rpcs3 / rpcs3 Goto Github PK
View Code? Open in Web Editor NEWPS3 emulator/debugger
Home Page: https://rpcs3.net/
License: GNU General Public License v2.0
PS3 emulator/debugger
Home Page: https://rpcs3.net/
License: GNU General Public License v2.0
I cant find the cellGcmFlush function anywhere in the code, and I think it has been replaced by cellGcmSetFlipCommand for some reason, is it true?
I hit this with an earlier revision of my linux build instructions. If you tried running ./bin/rpcs3 from the project's root folder the program would try loading the installed package as if the root folder was the bin folder.
The workaround used was to make the users cd into the bin folder before executing. Thus cd bin && ./rpcs3
A related issue is we'll want the hdd files to be relocatable, or at least separate from the binary, for installation under linux or on windows with UAC enabled. This involves finding a method for the rpcs3 binary to locate a user's virtual ps3 hdd. I'm not sure how other emulators handle this.
Should the version be bumped? It is obviously not much of an issue, but it would give other sites an incentive to release a more modern version. As it stands, many of them still give out the 6 month old version.
the STBUX (OpCode 0x1F, XO No. 247[0xF7]) instruction is unimplemented
ps3doom_v003 is stuck because of it
i was trying to compile rpcs3 today 14.04.14 and it failed with this message
[100%] Building CXX object CMakeFiles/rpcs3.dir/home/robert/Downloads/rpcs3/Utilities/Thread.cpp.o
Linking CXX executable /home/robert/Downloads/rpcs3/bin/rpcs3
/usr/bin/ld: /usr/local/lib/libavformat.a(avisynth.o): undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
/lib/x86_64-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [/home/robert/Downloads/rpcs3/bin/rpcs3] Fehler 1
make[1]: *** [CMakeFiles/rpcs3.dir/all] Fehler 2
make: *** [all] Fehler 2
i'am using xubuntu 13.10 but i have my own ffmpeg package currently my ffmepg version is
ffmpeg version N-62015-g9595f36
built on Apr 1 2014 06:46:46 with gcc 4.8 (Ubuntu/Linaro 4.8.1-10ubuntu9)
libavutil 52. 70.100 / 52. 70.100
libavcodec 55. 55.107 / 55. 55.107
libavformat 55. 36.100 / 55. 36.100
libavdevice 55. 11.100 / 55. 11.100
libavfilter 4. 3.100 / 4. 3.100
libavresample 1. 2. 0 / 1. 2. 0
libswscale 2. 5.102 / 2. 5.102
libswresample 0. 18.100 / 0. 18.100
libpostproc 52. 3.100 / 52. 3.100
Error:
[E : RSXThread]: OpenGL: initialization of glProgramUniform1i failed.
[E : RSXThread]: OpenGL: initialization of glProgramUniform1f failed.
[E : RSXThread]: OpenGL: initialization of glProgramUniform4f failed.
[E : RSXThread]: OpenGL: initialization of glDepthBoundsEXT failed.
What version of the product are you using? On what operating system?
rpcs3-git-20131117 on Windows 8 64 bit and with two GPUs (an integrated Intel HD Graphics 4000 and a Nvidia GT 635M with updated drivers).
Configuration:
GS: Render: OpenGL
IO: Pad handler: Windows
IO: Keyboard handler: Windows
IO: Mouse handler: Windows
EDIT: Issue edited by AlexAltea on 24.11.2013.
Some parameters (like "${CMAKE_SOURCE_DIR}") are passed to CMake commands in your build script without enclosing them by quotation marks. I see that these places will result in build difficulties if the contents of the used variables will contain special characters like spaces.
I would recommend to apply advices from a Wiki article.
I can see in the log that some game files cannot be loaded, looking at the code it appears to be hardcoded to look in "/dev_hdd0/game/"+titleId Wheras the file is actually in /app_home/
Is there someone working on this? At the moment I can copy the game files to "\rpcs3\bin\dev_hdd0\game\BLUS31312" as a workaround but thats not perfect.
If there isn't anyone on this I would propose adding a setting "Play from HD" or "Play from BD" and use that to set the path. Unless someone could propose a better solution.
why not use textures for the framebuffer instead of renderbuffers?
why were renderbuffers chosen in the first place?
Guys, did you have some bitcoin address or paypal?
Thanks.
Could you please add an option to increase internal resolution without any hard limit. Many emulators can do this with great results.
when issuing a flip command to the RSX thread, the display buffer that is being saved on local main memory is not being displayed, for example, png test is writing directly to the local main memory allocated display buffers (0, 1 for double buffering) and when its doing flip the buffer are not shown
Hiya all! I'm working on merging the upstream DHrpcs3 with the linux port, And I encountered this error upon compilation. I've searched with grep for another instance of _InterlockedExchange, And I only found one, In SPUThread.h. I can't find anywhere where this is actually declared!
Maybe I'm missing something, Or it was deleted? I've ran grep on this repository too, And I just found the same things. If anyone can help me, I'd really appreciate it! Thank you for reading.
Recommendation from Lioncash on IRC.
I probably broke it when I changed the ini loading stuff to not use wxStrings. Shouldn't be to hard to debug but it's not a priority of mine, so if someone else wants to take it on in the meantime, feel free.
the problem is that sys_ppu_thread_t is 64bit and in the code you do write32 to the given address
I have all firmware version (or BIOS) of PS3 in .bin files on my computer. I want to know if you guys will explain to me how I can use you emulator to add support for flash bin loading. I wish to use your RSX and Cell emulator to initiate the bootldr and LV0 system calls to emulate ps3 bootup. I will fork if someone explain to me how interface works between SPUs and RSX, and about pushes with updates for code regarding ps3 boot-sequence emulation. I also need to know to what extent your emulator emulates actual system calls and if it emulates all SPUs.
I have all details to emlate boot process, but want someone to provide interface specification to access RSX and need support for extra overhead processing needed.
Things you would have to merge:
1.Restructuring of LV0 and LV1 system calls, including hashes and decryption between versions.
2.SYSCON emulation overhead.
3.Internal ROM boot for initiation SPU.
4.metldr, appldr, rvkldr, .self file header detailing and cryptographic hacking.
somewhere with the changes in the config, there is no option to change the layout on the keyboard,
I have this error since this version DHrpcs3@a9fdcd9, but only on the x86 build, but because the market still on x64 Windows 8 x64.
So no Elf does not work, please fix this.
thank you.
Needs further investigation. Appears that Memory.ReadString() is getting super weird values sometimes, but I don't think that function is the culprit, but rather the values it is being supplied by the elf calling it via sys_tty_write.
We should remove the #ifdefs
introduced in #202. I'm going to paste the compilation errors
I'm trying to compile rpcs3 on Mac OSX 10.9.2 (Mavericks) using Clang:
$ gcc -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.1.0
Thread model: posix
For the dependencies, I installed 'glew' (1.10.0) and 'wxwidgets' (3.0.0) via Homebrew:
brew install glew
brew install wxwidgets
OpenAL is already installed in the system.
X11 is installed from https://xquartz.macosforge.org but a symlink was needed (or add include path in another way):
sudo ln -s /opt/X11/include/X11 /usr/local/include/X11
I did some changes to Utilities/GNU.h:
diff --git a/Utilities/GNU.h b/Utilities/GNU.h
index 9d0ba8a..f230cfe 100644
--- a/Utilities/GNU.h
+++ b/Utilities/GNU.h
@@ -3,7 +3,10 @@
#if defined(__GNUG__)
#include <cmath>
#include <stdlib.h>
+
+#ifndef __APPLE__
#include <malloc.h>
+#endif
#define _fpclass(x) std::fpclassify(x)
#define __forceinline __attribute__((always_inline))
@@ -16,8 +19,19 @@
#define _CRT_ALIGN(x) __attribute__((aligned(x)))
#define InterlockedCompareExchange(ptr,new_val,old_val) __sync_val_compare_and_swap(ptr,old_val,new_val)
#define InterlockedCompareExchange64(ptr,new_val,old_val) __sync_val_compare_and_swap(ptr,old_val,new_val)
+
+#ifndef __APPLE__
#define _aligned_malloc(size,alignment) memalign(alignment,size)
#define _aligned_free free
+#else
+void * _aligned_malloc(size_t size, size_t alignment) {
+ void *buffer;
+ posix_memalign(&buffer, alignment, size);
+ return buffer;
+}
+#define _aligned_free free
+#endif
+
#define DWORD int32_t
#endif
Currently, the build fails with a missing isnan(). Seems to be a libc++ / Clang issue:
...
/Users/kaazoo/Documents/Entwicklung/rpcs3/rpcs3/Emu/Cell/PPUThread.cpp:188:9: error: no matching function for call to 'isnan'
return wxIsNaN(d) ? 1 : 0;
^~~~~~~~~~
/usr/local/Cellar/wxmac/3.0.0/include/wx-3.0/wx/math.h:91:24: note: expanded from macro 'wxIsNaN'
#define wxIsNaN(x) isnan(x)
^~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/cmath:423:25: note: candidate template ignored: disabled by 'enable_if' [with _A1 = PPCdouble]
typename std::enable_if<std::is_arithmetic<_A1>::value, bool>::type
...
Last Night i see @Bigpets patches (thanks! ;) and begin to play a little around with them.
With his latest Patch 92fb77d i get small gcc related errors and one in wxWidgets:
I made a small Patch in my repo that get things to compile for me.
Aishou@71e37d6
I´m not sure about naming the struct´s and can´t test if this patch breaks something on Windows so... i do not commit it.
After this rpcs3 compile and runs but can´t load any elf or pkg.
https://gist.github.com/Aishou/9183888
I think the main Problems here are related to the different file systems on Linux and Windows like that Microsoft operating systems (e.g. DOS and Windows) use backslashes , UNIX-based operating systems (e.g. Linux) use slashes (/).
p.s: sorry for my crappy english
Can you please write either GNU or cmake build system?
hello says it could give way this problem.
when installing the PKG fichero in some games it says the error.
scetool: Could not load keys
[!]: SELF: Could not decrypt file
[S]: Game: boot done.
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0068b/BABEHCFA.html
Is that an accurate description of the intended function of LSL? (If not, ignore this) If so, the current implementation seems faulty. It correctly sets neither the C flag nor the result. Also, the fact that it and other related instructions use the full shift value rather than just the least-significant byte may or may not cause problems in certain situations, depending on implementation details I haven't yet managed to figure out.
Some linux distros build wxWidgets with unicode which breaks linking of rpcs3.
Possible solutions:
Any better ideas?
See: https://github.com/DHrpcs3/rpcs3/blob/master/rpcs3/Emu/Memory/Memory.h#L473
The unmap function doesn't return true or false by the time it hits the end of the function or anywhere in it (in an explicit sense). Technically the function will always return false.
Someone mentioned over in haneefmubarak/Aixen#10 that it would be nice for Aixen to support RPCS3.
Aixen aims to provide a networking service similar to LIVE/Steam, for Xenia and also new games developed in the future. Integration into future games and projects like Xenia will be done via the use of a C library.
However, to support projects such as Xenia, and in this case, RPCS3, certain changes must be made on the Aixen side of things, since both emulate specific functionalities and are also able to play a variety of games.
So I wanted to ask if you guys would be interested in working with us to have Aixen support RPCS3. All that you would need to do is provide someone who is somewhat familiar with PSN who is available to do related work on Aixen and give a username for whomever is most familiar with this project; the former would actively work on Aixen while the latter would only need to answer the occasional question about RPCS3.
So would you guys be interested in working with us so RPCS3 could have something similar to PSN, just like Xenia will have something similar to XBL?
when trying to call the syscall sys_tty_write when clicking only the step button (from start to finish) the program crashes because the DbgConsole is not intialized
a fix might be to do it in the constructor of the emulator or to do it in getDbgCon
I can do it but I'd like to know with which version.
Current versioning says it's v0.0.0.4
. I would suggest the one to be v0.0.5
so that we can follow the common versioning of MAJOR.MINOR.PATCH-revision
.
I'd be happy to just set it to v0.0.0.5
if that's what you want, I'm just not sure each 0 actually means something.
Oh and in case anyone wonders why, it's so that git describe
actually prints something sensible.
1:
Syscall takes u64 arg
instead of u32 arg
2:
new_thread.SetArg(0, arg);
'm_args' is zeroed out in new_thread.Run() -> CPUThread::Reset() -> PPCThread::DoReset() -> memset()
when I run the psl1ght samples I notices the rpcs3 is entering an infinite loop
I looked into it a little bit and found out that its the memalign function that causes this
for exaple, in pngTest, init_screen function on the first line
running the asm, init_screen function starts at address 00010570
I have a problem with rpcs3-x64.exe it was generated with VS 2012 does not run on Windows 8, I click on it nothing happens but rpcs3-x86.exe which was also built with VS2012 as it works well, why?
I test rpcs3-x64 Windows 7 its work very well, I used this version of dll http://www.microsoft.com/fr-fr/download/details.aspx?id=30679
Could you implement TSX instructions in rpcs3,they increase multithreading performance and maybe they can help with synchronisation between threads.
C++ is a great language and has many powerful features. However, some of them should not imho be misused within tight code.
PPSSPP does all instruction encoding in a fairly tight loop, and it can be fairly fast. It spends about 25% of its time in the interpreter decoding instructions, compared to about 50% in rpcs3.
Memory access of course is similarly bad, but has other solutions, like directly mapping into address space.
Is speed a goal in rpcs3 (I would think it'd have to be to ever make ps3 emulation bareable), or is using strong class design patterns a higher goal?
-[Unknown]
After testing several thing, the error comes from the file rpcs3\rpcs3\Emu\GSRSXThread.h, rpcs3\rpcs3\Emu\GS\GS\GLGSRender.cpp. file that has been updated on the revision DHrpcs3@0b35be3.
i have this issue, i have all the files for host root, but no matter how i place the files, or how i set the path in the file system manager, i still get the same error.
I was trying to run human.elf (among many others, breakoutx has the same problem) and i get this error:
sys_fs error: '/host_root/c:/usr/local/cell/sample_data/graphics//shaders.bin' not found!
(this is exactly how it displays) , maybe my files are incorrect, could someone send me theirs to try them?
(im using the files included in Inorirus SW emulator)
I have not made any changes to this fork, I just compiled it, And it failed.
Backtrace is here: http://pastebin.com/THVDagnk
Easily duplicable (I think?) in my fork, branch nix-fix.
(Also, this happens just before the first frame is flip()'d to the screen, so I think after we fix this one, Linux might get intro screens in some cases. :)
Commenting:
data += image.get()[i + 0];
data += image.get()[i + 1];
data += image.get()[i + 2];
Will temporarily bypass the crasher.
hello last test rpcs3-20131129-x86 install pkg game PSN Rain noa gave extracts he says.
unpkg: fiile size mismatch and Could not delete the file decoded dec
Thank you.
s).
I had some time to kill and decided to create this list (static analysis). There's more, but they're pointless right now. No pull request as I'm not sure how to fix a few of these.
ppuinterpreter.h:1659
for (uint b = 14; b >= 0; b--)
Infinite loop (Unsigned always >= 0)
sc_vm.cpp:111:
if((current_ct->size - size - 0x100000) < 0)
Always false (Unsigned always >= 0)
sc_vm.cpp:133:
if((current_ct->size - size - 0x100000) < 0)
Same as above
sc_tty.cpp:14
if(ch < 0
Same as above
loader.h:200
u32 GetMaxAddr() { return min_addr; }
'min_addr' should be 'max_addr'
spuinterpreter.h:149
(16 - (CPU.GPR[rb]._u32[h] & 0xf)));
'h' could exceed array bounds (h = 7, _u32[h])
sputhread.cpp:64
- GPR[1]._u64[3];
'3' exceeds array bounds (_u64[3])
sc_spu_thread.cpp:107
!attr.IsGood() || !attr.IsGood())
Identical comparisons
cellpamf.cpp:483
if (pAudio->bps = 0x40)
Assignment in if()
disasmframe.cpp:392
for(u64 addr=sh_addr; addr<sh_addr+sh_size; addr, vsize++)
'addr' is unchanged
scetool.cpp:476
memcpy((scetool::u8 *)ctxt->metai, metadata_info, sizeof(metadata_info));
sizeof(metadata_info) == sizeof(pointer)
I started seeing this strange error when compiling the linux fork of rpcs3, So, I deleted it, And downloaded it again, And yet I STILL get it! This literally didn't happen a few minutes ago. I'm trying to figure this out right now, And learn about CMake at the same time.
Will give us cleaner code, and should drop the thread count by one. I'll try and do this some time in the next week or so.
This might be the cause of quite a few "random" segfaults on *nix.
The Creative OpenAL SDK has been outdated for a while, and their website is down now. OpenAL Soft, a more modern and open replacement, has superseded it.
This revision DHrpcs3@25c3aa8 problem, several games that showed the intro, background now a black screen with 40 fps and not display anything.
Is emulator already working? If yes, please describe how to work with him.
Is the memory address space 32 or 64 bit?
The current memory system assumes it's 64 bit. IsMyAddress, GetStartAddr, SetRange, etc. are all 64 bit values.
However, all valid addresses are within 32 bits afaiu.
So, my question is - what is sizeof(int *)
on a ps3? Can sys_vm_memory_map()
be used to map into the normally unsused space? It seems like not, if this is correct: typedef u32 sys_addr_t;
.
If I load a register with X | 0x1234567800000000ULL
and read from that address, should it access X or segfault?
-[Unknown]
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.