RPCS3 Forums
How to identify the correct libraries to be loaded for each game by using the log? - Printable Version

+- RPCS3 Forums (https://forums.rpcs3.net)
+-- Forum: Community (https://forums.rpcs3.net/forumdisplay.php?fid=1)
+--- Forum: General Discussion (https://forums.rpcs3.net/forumdisplay.php?fid=16)
+--- Thread: How to identify the correct libraries to be loaded for each game by using the log? (/showthread.php?tid=176433)

Pages: 1 2


RE: How to identify the correct libraries to be loaded for each game by using the log? - Slash - 01-01-2017

Hi All, I'm new on PS3 emulation scene and have read some topics on how to make a game run properly on PS3 (the ones that already supported , of course).

I was able to run street fighter 2 and metal slug by looking the specific libraries needed for those two games on the game's thread. However, I don't know how to identify the needed libraries by myself just looking at the log file. Can anyone help on how to know the needed libs when trying to run the game?



RE: How to identify the correct libraries to be loaded for each game by using the log? - ssshadow - 01-02-2017

Basically experience and intuition. Look for "TODO" messages in the log. If you see something like "... TODO: CellFontDoSomething..." then you need to LLE libFont. But from experience I also know that you can't only LLE libFont, it needs to be paired with libfontFT, libfreetype and libfreetypeTT.

And then you have this issue where you will get errors like "TODO: cellGCM_something..." but you can't LLE GCM, that will crash instantly.

Also near the beginning of the log you will see several lines like "·! LDR: **** cellL10n export: [UTF8stoJISs] at 0x1e454c4" which basically tells you this game will use L10n, so maybe LLE that.

So here is the thing, you can LLE some modules, and not others. However you can get very far by just using a big list of modules known to work with some games. This massive Catherine list should basically be enough for most games. Some may need additional libraries like libFS and some may crash with vdec, refer to the log and what I wrote above in those cases.



RE: How to identify the correct libraries to be loaded for each game by using the log? - Sakamoto_Ryoma@Rock - 01-29-2017

Huh what is CELL_EINVAL?

E {PPU[0x1000000] Thread (main_thread) [0x00319c58]} sys_mmapper: sys_mmapper_unmap_shared_memory(addr=0x31400000, mem_id=*0xd00ff180)
E {PPU[0x1000000] Thread (main_thread) [0x00319c58]} 'sys_mmapper_unmap_memory' failed with 0x80010002 : CELL_EINVAL


hey some help ?

what is CELL_EINVAL their is no module of that name..![/u]



RE: How to identify the correct libraries to be loaded for each game by using the log? - Ani - 01-29-2017

(01-29-2017, 02:17 PM)Sakamoto_Ryoma@Rock Wrote: Huh what is CELL_EINVAL?

E {PPU[0x1000000] Thread (main_thread) [0x00319c58]} sys_mmapper: sys_mmapper_unmap_shared_memory(addr=0x31400000, mem_id=*0xd00ff180)
E {PPU[0x1000000] Thread (main_thread) [0x00319c58]} 'sys_mmapper_unmap_memory' failed with 0x80010002 : CELL_EINVAL


hey some help ?

what is CELL_EINVAL their is no module of that name..![/u]

CELL_EINVAL is an error code and not a module.
There's nothing you can load to 'fix' that.



RE: How to identify the correct libraries to be loaded for each game by using the log? - Sakamoto_Ryoma@Rock - 01-29-2017

(01-29-2017, 02:21 PM)Annie Wrote:
(01-29-2017, 02:17 PM)Sakamoto_Ryoma@Rock Wrote: Huh what is CELL_EINVAL?

E {PPU[0x1000000] Thread (main_thread) [0x00319c58]} sys_mmapper: sys_mmapper_unmap_shared_memory(addr=0x31400000, mem_id=*0xd00ff180)
E {PPU[0x1000000] Thread (main_thread) [0x00319c58]} 'sys_mmapper_unmap_memory' failed with 0x80010002 : CELL_EINVAL


hey some help ?

what is CELL_EINVAL their is no module of that name..![/u]

CELL_EINVAL is an error code and not a module.
There's nothing you can load to 'fix' that.


what should i do now it aslo says:


U {PPU[0x1000000] Thread (main_thread) [0x00103eb4]} sys_fs TODO: sys_fs_chmod(path=“/dev_usb/lua_error_log.txt”, mode=0644) -> CELL_OK
U {PPU[0x1000000] Thread (main_thread) [0x0031d698]} sys_fs TODO: sys_fs_chmod(path=“/dev_usb/lua_error_log.txt”, mode=01376) -> CELL_OK

what is /host_root/app.lua ?

their no such folder of that type so how to make it.

i am also a programmer a game developer for ios/android.

but i am new to emulation and visual studio so that's why...also i use unity3d to make games... if you are curious!



RE: How to identify the correct libraries to be loaded for each game by using the log? - Ani - 01-29-2017

You can try to load libfs but those kind of errors are 'normal' right now and don't break the emulation so you shouldn't worry too much about them



RE: How to identify the correct libraries to be loaded for each game by using the log? - Sakamoto_Ryoma@Rock - 01-29-2017

(01-29-2017, 02:36 PM)Annie Wrote: You can try to load libfs but those kind of errors are 'normal' right now and don't break the emulation so you shouldn't worry too much about them

Okay but I am trying to play flaapy bird ps3 edition

And their is no video output on the dx12 window. And I have enabled my GPU as the dx12 renderer.

What to do?



RE: How to identify the correct libraries to be loaded for each game by using the log? - Kilowog01 - 02-21-2017

I have been testing this emulator for more than a year and I still can not understand that TODO errors, the explanation of the FAQ (which is the same as sshadow) does not solve all the problems like:

U {PPU[0x1000000] Thread (main_thread) [0x004dd9d4]} HLE TODO: Unimplemented syscall sys_spu_thread_group_log -> CELL_OK
U {PPU[0x1000000] Thread (main_thread) [0x00c75f64]} sys_spu TODO: Unsupported SPU Thread Group type (0x20)
U {PPU[0x1000000] Thread (main_thread) [0x00c7956c]} sys_prx TODO: sys_prx_register_library(library=*0xc7ccfc)
U {PPU[0x1000000] Thread (main_thread) [0x00c79454]} sysPrxForUser TODO: _sys_process_atexitspawn()
U {PPU[0x1000000] Thread (main_thread) [0x00c7899c]} cellGcmSys TODO: cellGcmSetZcull(index=0, offset=0x1870000, width=1280, height=704, cullStart=0x0, zFormat=0x2, aaFormat=0x0, zCullDir=0x0, zCullFormat=0x1, sFunc=0x2, sRef=0x1, sMask=0x1)
U {PPU[0x1000000] Thread (main_thread) [0x00c75b3c]} cellSpurs TODO: _cellSpursLFQueueInitialize(pTasksetOrSpurs=*0x30010081, pQueue=*0x200eda80, buffer=*0x200edb00, size=0x20, depth=0xc, direction=3)
U {PPU[0x1000000] Thread (main_thread) [0x00ed4690]} sys_rsx TODO: sys_rsx_device_map(addr=*0xd003f9d0, a2=0xd003f9c8, dev_id=0x8)
(among many others)

I believe that we should gather all the errors and their solutions in a topic since it is basically a trial and error. A small summary of what each LLE does would also be very good. It would help a lot considering that many of us do not have English as a native language and many terms have no translation so an explanation would make it easier. I think the only ones I have a minimum idea of what they can do are Libfont, freetype, jpgdec, pngdec, mp3dec etc.



RE: How to identify the correct libraries to be loaded for each game by using the log? - ssshadow - 02-21-2017

Do you really need to understand what "TODO: cellRescSomethingSomething()" actually means? The answer may just cause more questions... In practice just LLE libresc in this case. If the log says "TODO: cellXXX" try to LLE libXXX. And in general if the module can be loaded the game will go further, otherwise it will instantly crash (like loading libgcm would do). And for 95 % of all games the list of modules from say Catherine or Rainbow Moon will be sufficient.

Of course you might see errors like "libVdec: unsupported video type 123..." which is just the HLE Vdec failing, in that case try to LLE libvdec.

Anyway this will probably not be an issue when automatic LLE selection is implemented.



RE: How to identify the correct libraries to be loaded for each game by using the log? - Kilowog01 - 02-23-2017

(02-21-2017, 03:43 PM)ssshadow Wrote: Do you really need to understand what "TODO: cellRescSomethingSomething()" actually means? The answer may just cause more questions... In practice just LLE libresc in this case. If the log says "TODO: cellXXX" try to LLE libXXX. And in general if the module can be loaded the game will go further, otherwise it will instantly crash (like loading libgcm would do). And for 95 % of all games the list of modules from say Catherine or Rainbow Moon will be sufficient.

Of course you might see errors like "libVdec: unsupported video type 123..." which is just the HLE Vdec failing, in that case try to LLE libvdec.

Anyway this will probably not be an issue when automatic LLE selection is implemented.
Yes and no, I'll give you an example here and I think you'll understand me better.
I'm not saying that you're wrong or wanting a fight, you've been here a long time, have more experience and I see how annoying it is to answer the same questions from people who can't read. This "cake recipe" that i will talk below turns out to be an easy way to get rid of stupid people and i get it.
I'm seriously in love with the Little Big Planet franchise so I'm always testing all 3 games. Once I posted a log and you said
(10-13-2016, 07:45 PM)ssshadow Wrote: LLE libsre and those TODO: cellSpurs* will disappear.
libsre and libspurs_jq should always be used for every game.
At least for me that does not make any sense since the error says "spurs" so i should use a lle called spurs, not sre and neither spursjq but i selected that and didn't care much about questioning and the time passed. And now I've made new tests and decided to ask. Programmers shouldn't give a proper name to the error? There isn't a LLE called just "spurs". Or am I interpreting the thing in the wrong way?

For situations like these (and others) that I think I'll never be able to figure out which LLE's to use alone. People here love to say "use LLE's from game XYZ that every game needs that"

But at some point this is always proven wrong. Some games work without any LLE or with few LLE's.(like gtasa)

I hate using this "cake recipe" for as long as it works in 95% of the games. I want to select an LLE being absolute sure that the game needs it. Even though I have to read all the logs asking for sre, rtc, freetype or whatever.

Sticking to the example of Little Big Planet...the log ask for:

- libhttp.prx
- libio.prx
- librtc.prx
- libssl.prx
- libsysutil_np.prx
- libsysutil_np2.prx
- libsysutil_np_trophy.prx
- libsysutil_userinfo.prx
- libnet.prx

But you only spoke of those that are not quoted directly. SRE or SpursJQ never appears when i search for ".cpp" ou "TODO:", only the pure "spurs" appears with the others LLE's.

Most of these LLE's just break the game. But one of them darkens the screen and the other leaves the screen red. Is it something impressive? No but it's something new that a cake recipe can't bring. And meanwhile that, Sre and spursjq remain on the list without me having any idea why.

And that's why i think that a brief explanation of what each LLE does might help in some cases.