aldostools / webMAN-MOD

Extended services for PS3 console (web server, ftp server, netiso, ntfs, ps3mapi, etc.)
https://aldostools.github.io/webMAN-MOD/
GNU General Public License v3.0
1.28k stars 176 forks source link

#define SYS_BGM is enabled by default in flags_full.h #1098

Open korn3r opened 1 month ago

korn3r commented 1 month ago

Hi. Decided to rebuild webman mod for myself and did notice feature called "SYS_BGM" with comment system background music (may freeze the system when enabled) And it is enabled in flags\flags_full.h

Im not sure it is an issue, but probably a questions: is it still a test feature? can it really hang system? and maybe it shouldnt be defined by default?

https://github.com/aldostools/webMAN-MOD/blob/master/flags/flags_full.h

aldostools commented 1 month ago

Hello @korn3r Thank you for your feedback. Indeed that is still a test feature. The comment indicates that the PS3 may freeze when the feature system background music is enabled through the web command /sysbgm.ps3, not when the flag is uncommented.

The flag is uncommented to let test the feature which allows play music using the in-game XMB player. I added the warning about the freeze because the console freezes when you quit the game while the background music is enabled.

I hope that it's more clear. The flag does not cause issues per se.

korn3r commented 1 month ago

@aldostools thanks. also i would like to point out that some _Make files (.bat ones) have issue with PATH variable. For example _Make_full_lite.bat sets path like this: set PATH=%WIN_PS3SDK%/mingw/msys/1.0/bin;%WIN_PS3SDK%/mingw/bin;%PS3DEV%/ppu/bin; And i spent couple hours (sorry, doing it for a first time) before i found out that build fails because of scetool cant find cygwin, which is in system PATH, but .bat file sets path strictly to "%WIN_PS3SDK%/mingw/msys/1.0/bin;%WIN_PS3SDK%/mingw/bin;%PS3DEV%/ppu/bin;" So i had to add /c/cygwin/bin; in the end. Or, perhaps, the better option is to set path like this: SET PATH=%PATH%;%WIN_PS3SDK%/mingw/msys/1.0/bin;%WIN_PS3SDK%/mingw/bin;%PS3DEV%/ppu/bin; (or maybe with %PATH% in the end, in case some tool cant parse more than X bytes of PATH)

And also totally unrelated question in this seemingly finished issue (which wasnt an issue on first place): is it possible to change icon for XMB entry of Webman? (the one for "Webman games", that has tiny gamepad over a folder icon, or whatever it is).

aldostools commented 1 month ago

Thank you for the suggestion. I have added %PATH% to the environment variable.

aldostools commented 1 month ago

is it possible to change icon for XMB entry of Webman? (the one for "Webman games", that has tiny gamepad over a folder icon, or whatever it is).

The image /dev_hdd0/tmp/wm_icons/icon_wm_root.png is used as icon if the file exists. You may need to rescan the games and reload XMB to show it if it didn't exist.

If the file doesn't exists, the system icon for game folder is used. This is the default.

korn3r commented 1 month ago

@aldostools Thanks! I will check that out. I was trying to catch logs for freezes on my console (CEX 4.91 HEN) Here are logs, in case you are interested https://pastebin.com/NRMEs2WD (3 different hangs - ISO mount, Webman Mod installation, XMB reload)

Here is specific part from there - ISO mount. Most annoying part to me. Maybe you will find this logs useful. Dont want to create another issue for logs you might not even want to see :) Have a nice day and thanks for help!

open_path /dev_flash/vsh/module/idle_plugin.sprx
open_path /dev_hdd0/tmp/wm_request
open_path /dev_hdd0/mms/db/reservation_file
LV2 poke 0x800000000000a334 386000017be40620
LV2 poke 0x800000000000a334 5463063e7be40620
open_path /dev_hdd0/tmp/wm_request
LV2 poke 0x800000000000a334 386000017be40620
LV2 poke 0x800000000000a334 5463063e7be40620
open_path /dev_hdd0/tmp/wm_request
LV2 poke 0x800000000000a334 386000017be40620
LV2 poke 0x800000000000a334 5463063e7be40620
LV2 poke 0x800000000000a334 386000017be40620
LV2 poke 0x800000000000a334 5463063e7be40620
open_path /dev_hdd0/tmp/wm_request
LV2 poke 0x800000000000a334 386000017be40620
LV2 poke 0x800000000000a334 5463063e7be40620
open_path /dev_hdd0/tmp/wm_request
hash = 257df9a400000000
#
#
# system software version: 4.91 (CEX)
# revision: 50754
open_path /dev_hdd1
open_path /dev_hdd1
open_path /dev_hdd1
open_path /dev_hdd1/crash_report
open_path /dev_hdd1/crash_report/kernel
open_path /dev_hdd1/crash_report/kernel/ps3crash-kernel.dat.tmp
open_path /dev_hdd1/crash_report/kernel/ps3crash-kernel.dat.tmp
open_path /dev_hdd1/crash_report/kernel/ps3crash-kernel.dat
#
# Lv2 internal error.  Please submit this output to PS3 devnet
# or consult SCE developer support.
#
tb 0x4ff61212 HW0
  processor: Broadband Engine  Ver 0x0000  Rev 0x2100
  userland information:
        thr16777249 <_self_decrypter> prio 767 proc -1
SP 0x8000000010082d30
backtrace
   0x800000000026d604
   0x8000000000059ebc
   0x8000000000005e20
   0x8000000000005f34
   0xbadadd001000020c
MSR 0x8000000000008032
aldostools commented 1 month ago

It seems related to /dev_hdd1 or the game. Nothing related to webMAN MOD.

korn3r commented 1 month ago

@aldostools it seems related to LV2 somehow, im not even sure what it is (LV2). Maybe because it says "Lv2 internal error" during dump. everything hangs on ISO mount from Webman Mod menu (not everything at all - animation goes and time is ticking). Hang happens on "open_path /dev_hdd0/mms/db/reservation_file" line. Then in next couple minutes happens couple same LV2 pokes

LV2 poke 0x800000000000a334 386000017be40620
LV2 poke 0x800000000000a334 5463063e7be40620
open_path /dev_hdd0/tmp/wm_request
LV2 poke 0x800000000000a334 386000017be40620
LV2 poke 0x800000000000a334 5463063e7be40620
open_path /dev_hdd0/tmp/wm_request
LV2 poke 0x800000000000a334 386000017be40620
LV2 poke 0x800000000000a334 5463063e7be40620
LV2 poke 0x800000000000a334 386000017be40620
LV2 poke 0x800000000000a334 5463063e7be40620
open_path /dev_hdd0/tmp/wm_request
LV2 poke 0x800000000000a334 386000017be40620
LV2 poke 0x800000000000a334 5463063e7be40620

Then (around 4-5 minutes into hang) happens crash dump into /dev_hdd1. Im not sure crash dump that happens after 4-5 minutes of Webman Mod trying to mount ISO is related to given ISO (which is 100% IRD btw) only because it dumped itself into /dev_hdd1, also this happens randomly on random ISOs (have around 30 ISOs, 29 of those 100% IRD). And this already happened and i know how it will go - i will restart console and ISO will properly mount. And they all will properly mount untill i reinstall Webman Mod. This happens when i upload new ISOs (almost 100% of time), or when i remove Webman Mod for reinstallation and start to mount all ISOs for webman to download thumbnails for ISOs. If all thumbnails where downloaded and ISO mount already hanged 1-2 times, it just works after that.

aldostools commented 1 month ago

The poke to address 0x800000000000a334 is for set fan policy. It's don't frequently because it seems you have the dynamic fan control enabled. For HEN it is recommended to set the fan mode to manual or SYSCON.

The path /dev_hdd0/tmp/wm_request is polled frequently to allow other apps execute web commands through a file request. This polling can be disabled unchecking in /setup.ps3 > LaunchPad.xml | PhotoGUI (USB0/PICTURE) | Poll wm_request. image

korn3r commented 1 month ago

@aldostools i did set fan to Syscon and disabled PhotoGUI and now log spams "BT: no DeviceInterface!" like a madman. I did remove webman mod, disabled\enabled HEN Debug and still this spam. Reinstalled webman (it did set everything to default), but this message still fills logs. I suppose i need to reinstall hen now :(

aldostools commented 1 month ago

Syscon mode disables fan control in webMAN MOD. wm_request is a file used only by webMAN MOD.

If you uninstalled webMAN MOD and still is being spammed with the poke and wm_request, you did not uninstall it or there is another application that is causing these events.

korn3r commented 1 month ago

@aldostools No, im being spammed by "BT: no DeviceInterface!" message that started to appear after i switched to syscon and disabled wm_request. It appears many times per second. wm_request messages wasnt an issue, so as "LV2 poke 0x800000000000a334" since you are saying its fan control, those messages where quite rare, unlike this "BT: no DeviceInterface!" that happens 5-10 times per second.

But thats probably totally non related to initial subject of this inquiry. It just for some reason started to appear after i disabled what you suggested to disable.

UPD: it seems like messages are generated by my secondary controller (to which i switched at same time). sorry, that was not very smart of me to not think on switching controller :)

korn3r commented 1 month ago

@aldostools Hi again. Since its issue is still not marked as closed i will allow myself to grow insolent and ask another dumb question: is it possible to make Webman Mod XMB entry to show game icons wide (as they are for ps3) instead of square ones? Squared wide icons look ugly. Or maybe you could at least point to general direction on which files i need to look into for implementing that change?

Thank you for the suggestion. I have added %PATH% to the environment variable.

also, could you please add that %PATH% to env variable in _Make_full_lite.bat, _Make_all.bat and _Make_all_nopause.bat? i personally use _Make_full_lite.bat for my own tests. i know hw to fix that by now, but some ppl who would like to recompile webman in future might not.

korn3r commented 1 month ago

Also small feature suggestion related to "translation issues" (and thats actually suggestion to any english-speaking developer of any software that they would like to be translated properly and easily to many other languages).

for example: include\scan\games_xml.h sprintf(msg, "%s XML%s: OK\n%'i %s", STR_REFRESH, SUFIX2(profile), games_found, STR_GAMES);

Prints second line as "X games" (where X is a number games found). I works in english, but does not always work in other languages. For example in Russian proper translations differ depending on number (endings differ). For example "1 игра", "2 игры", " 5 игр". And you cant put them all (except some weird thing like "игр(а,ы)" in STR_GAMES which looks ugly and wouldnt make sense in other applications of STR_GAMES). There are other languages with such "ending issues" during translation.

And easiest way to get around it is to use sprintf(msg, "%s XML%s: OK\n%s - %'i ", STR_REFRESH, SUFIX2(profile), STR_GAMES, games_found); this way message will be STR_GAMES - X. And that works. Just "Игры - X" works no matter what is the number. Or ":" instead of dash, or just plain "STRR_GAMES X". Any of that is better than "X STR_GAMES", because latter one implies different endings.

Unfortunately i cant remember all the places i had to edit to change that behavior. But for sure it was file manager (i think it was 2 different places depending on whas it sman gui or not) - X Folders, X files.... /index.ps3 on search button (where it shows also number of games).

Im not even sure you care about this feature suggestion, so i didnt dug all the files i had to edit to make translation full (there are a lot of places where webman uses hardcoded text instead of variables)

And also about filemanager. What is that 26KB? https://imgur.com/IvbQE7r It show me 2 files with 9211bytes total, yet bottom panel shows 26KB.

And since im already being annoying: Why this is defined, if never used? (file include\file\file.h lines 446-449) It gives me warnings each time i build. Is it safe to just remove or it is supposed to be used somewhere?

static void wait_for_user(void) { while(working && !USER_LOGGEDIN) sys_ppu_thread_sleep(3); wait_for_xmb(); }

korn3r commented 1 month ago

No one asked, but here i am again. The most annoying guy on github. scan.zip games_html.h and games_xml.h NUM Games changed to "Games: NUM" for html and "Games - NUM" for xml (since first line in xml notification already has ":", i decided that dash is better). Like that xml notification and html search button doesnt look as derp in languages with "endings" issue. Im not a philologist, but im sure there are languages other than russian with such issue, in case you have issues with fixing something related to russian translation given recent world events :) its almost non-existent change for english-speaking people, yet a big improvement in look-and-feel for some translations.

aldostools commented 1 month ago

Thank you @korn3r the changes were merged and the installers were updated.

korn3r commented 3 weeks ago

I would like to report another very weird issue. Im using FTP in webman to backup ISOs from console to replace hdd (to get more space, not because hdd is bad). And i found out, that after around 22gb downloaded at speed around 10-10.4mb/s, ftp starts to give me some crazy low speeds like 0.4-0.5mbs. And its not about single file - its about total size transferred. Meaning after i download multiple files it still gets to very low speed after ~22gb (23-24 max). And its not like that for uploads to console, they work fine, just downloading from console has this issue for some reason. And im not sure im ready to make some intensive tests on that, since you have to transfer something aroung 22 freaking gb to see how it drops, i already decided to reboot console after ~20gbs transferred (gonna be pain to transfer those 25gb ISOs, but good that i have only two of those). It feels like ftp has some memory leak or something like that and only when you download from it. Using this old thread because its not yet closed and its probably not very important issue to report anyway.

aldostools commented 3 weeks ago

Hello @korn3r Thank you for the bug report. Could you verify if the issue also happens with FTP Server included in multiMAN, Rebug Toolbox or IRISMAN? I suspect this is an internal issue related to how GameOS handles network traffic.

You first need to disable webMAN MOD's FTP server and reboot before perform this test.

korn3r commented 3 weeks ago

@aldostools I tried again on 25gb iso (Gran Turismo) - it went down after 18gigabytes this time. so i either failed to catch proper amount of transferred last time, or its more complicated than just amount of gigabytes transferred. I tried multiman - it just gave me pretty low speed (around 4mb/s) and i cancelled download. i tried irisman - it went down to low speed after 7-7.5gb (i was afk and when came back it was 7.6gb transferred and speed was already low)

korn3r commented 3 weeks ago

@aldostools at this point i decided its faster to just download ISOs from internet again. some info: im on hen. hdd is laptop one, but it can do 15mb/s+ (the one im downloading to), so its not hdd issue. its kinda unconsistent on how much it can transfer before it happens. both laptop and PS3 are connected via wire

sorry for bothering you with this and bailing out of gathering debug on that.

korn3r commented 2 weeks ago

@aldostools and i forgot to mention: after hitting this "limit" or whatever is this, next app im trying to start on console gives me blackscreen.

aldostools commented 2 weeks ago

That blackscreen issue sounds like some memory issue (memory leak, high memory usage or an access to restricted memory area).

korn3r commented 2 weeks ago

@aldostools im not a programmer, let alone ps3 programmer, but a bit of engineer, so here is my probably irrelevant thoughts on this: most blackscreens i was hitting while using webman on hen on current console was either after uploading bunch of ISOs (upload speed was fine, just got black screen when trying to mount and run game), or after mounting consequently bunch of ISOs (and loading games). That and blackscreen after "hitting download limit" makes me think that PS3 indeed has some limit for apps on how much they could read from disk. Either in general, or maybe app required to do some kind of memory flush (freeing memory) to be able to properly read more. Im still uploading images after HDD replacement, so im not very eager (neither i have time currently) to test how it works, just decided to share my observations.

aldostools commented 2 weeks ago

Thank you for your comments @korn3r

I hightly suggest you that consider using ps3netsrv instead of copying a large amount games to internal HDD. The ps3netsrv has the advantage that you don't have any kind of file system limitation and you can share the content with multiple PS3 consoles. The unique drawback is that you need a NAS server or PC running to stream the content to PS3.

Another alternative is to copy your games to NTFS or exFAT external HDD. This does not require another device running and it's very fast to copy games from a PC with good specs. You only need to run prepISO to scan these games. Now they are compatible with webMAN and multiMAN too.

Only PS2 games are required to be copied to internal HDD. But you can store them in the external HDD and copy them on demand to internal HDD when you mount the games.

korn3r commented 2 weeks ago

@aldostools hi. first of all. this issue looks funny. https://imgur.com/MEn2Kd3 and no, im not about that wide picture squeezed into square format, that made perfectly round coin on Uncharted logo looks like something oval, i cant even find comparison for on how ugly it looks. And probably not many game devs decided to put "Game of the year" into game title in second line (i suppose its second line, i didnt actually check sfo), but still its probably possible to check height of game title when you print second line with path to iso.

second. thanks, i know i can just use netserv or external drive, but place where PS3 stands, doesnt have neither pc for netserv, nor external drive. also there are couple other reasons why it has to be AIO solution. i already finished configuring this ps3. ~40 ps3 game isos, written to the end of disk, so updates wont be written after iso files themselves. kinda works. webman mod is awesome, thank you for your work. i would allow myself to make a feature suggestion: ability to disable grouping only for ps3 games. meaning ps3 games are right away there as if "disable content grouping" is enabled, but other consoles still have their folders. also would be nice to have ability to set path to webman xmb icon in settings, instead of uploading it to console to webman folder after each webman reinstall. and thats probably too much to ask, but how it would be awesome if you could have wide pictures in xmb menu of webman.

korn3r commented 2 weeks ago

https://imgur.com/a/7UxtB94

Also there is sorting issue. For some reason games with numbers come before regular ones. Infamous 2 comes before Infamous, Dead Space 2 comes before Dead Space, etc

aldostools commented 2 weeks ago

The sorting issue is due a memory limitation in the algorithm used to scan games.

Only the first 6 characters of the game title are used to sort the game. Some hacks are used to improve the sorting using only 6 bytes, but it's not perfect. At least the games get close their real sort position.

Increasing the size of the sort key would reduce the number of allowed games that can be scanned.

korn3r commented 2 weeks ago

@aldostools isn't it possible to sort my games.xml after game scanning is finished? In separate process.

aldostools commented 2 weeks ago

Everything is possible, but may take a lot of time and effort. Maybe you could make the changes and submit a PR.

It would require to refactor completely the games scanning functions, which are very complex to maintain.

I estimate that half of the time I invested in webMAN MOD was improving the scanning and building the XML.

korn3r commented 2 weeks ago

@aldostools OK. Maybe some day I will learn C and will find where I can compare game id's if 6 bytes of title are equal. Thank you