WebtroPie
-
@darknior this is fantastic feedback, thanks, I've made a few changes
- fix for the utf8 issue
- fix for the medias directory issue
- removed (curly) [square] bracket text after games lists (I originally decided to show that data as it is a metadata editor and maybe useful to some)
- added (system) to auto game lists
- changed players input from number to text
- made description only multiline text field
For the issues regarding systems not showing, game counts being wrong - if they are still wrong after this update then maybe I need to look at your game lists and es_systems.cfg file, a tar gzip is fine ta
cd /home/pi/RetroPie/roms tar cvfz ~/roms_gamelists.tgz */gamelist.xml cd ~/.emulationstation/gamelists tar cvfz ~/es_gamelists.tgz */gamelist.xml
If there is still an issue with theme images not showing (maybe the medias fix fixed this) then yes, if you could send me a link or file for your theme then I will have a look at that too.
-
@kixut Thanks for all these improvement <3
Now my feedback and error tracking :
fix for the utf8 issue
That's ok
fix for the medias directory issue
-
Like you can see i have them when i edit a game.
You put them like background-image, it is enough to see i have an image, but it is behind the drag n drop zone :(
And i cant use any script to zoom it and see if it is a good quality image or not ?
Maybe you can make the zone smaller ant put the image at left or right ?
And in the future, just an idée, not to make now, maybe angular or PHP can give the size of the image to write it ? -
There is an z-index bug with the Title FAVORITE that is in front of the edit popup, and i can't modify the informations.
-
I don't see any image in the list. I suspect it don't try to take them ... i don't see them on the network status.
It can really help to work to see images and videos in the list. -
You let the INPUT in RED, but you found the image?
But this screenshot show us an other problem : Duplicates in a repeater are not allowed
It's cool i remove a duplicate entry in my PSX XML lol ... but other users will not understand if they not debug.
Maybe you can take the last entry to CRUSH the first ? It's the easy way, or SKIP the new duplicate entry.removed (curly) [square] bracket text after games lists (I originally decided to show that data as it is a metadata editor and maybe useful to some)
You are right, they are very important to show the game name exactly like on PI. To see and correct bad naming errors.
They only remove and replace them in MULTI system systems: FAVORITES, LAST PLAYED, ALL GAMES.
To save place to write where come from the game, if not we can't know it.added (system) to auto game lists
Not understand what you want to say ?
changed players input from number to text
Ok i see the new TEXT INPUT but now every where it only write me : 1
made description only multiline text field
Not really understand too, multiline text field is the best, what do use before ?
For the issues regarding systems not showing
Always there ... and game counts is now fall at 452 games available :( :( :(
- NO XML in my /home/pi/RetroPie/roms
- There are all there : ~/.emulationstation/gamelists
http://www.mediafire.com/file/hzmd20bmh82lmc8/es_gamelists.tgz
http://www.mediafire.com/file/p9kvgpqdq92vnys/es_systems.cfgAnd if can help the Alpha version of our theme : dark-steel--alpha.zip
-
-
@darknior sorry about that, I've made some small tweaks so that the images show better now
and if you mouse over the image in the editor it will show the image size.I will have a look at the other issues later. Thanks againEdit: Oh, and the z-index bug, you will need to refresh your cache to pick up the style sheet changes - in Chrome - F12, then Right click Refresh then choose the last option.
I've removed the track by on the game list, it allows angular to be more efficient but isn't necessary and depends on the path each game being unique.
I've also changed the game list to only strip brackets on auto collections -
I have update and now black screen :p
angular.js:14642 TypeError: Cannot set property 'auto-allgames' of undefined at onSuccess (config.service.js:54) at processQueue (angular.js:17000) at angular.js:17044 at Scope.$digest (angular.js:18182) at Scope.$apply (angular.js:18480) at done (angular.js:12501) at completeRequest (angular.js:12727) at XMLHttpRequest.requestLoaded (angular.js:12655) "Possibly unhandled rejection: {}"
-
@darknior please git pull, hard refresh as above
Edit: Regarding the game counts I set my system up with your game counts and the latest version matches all of the game counts except for PSX which contains 27 duplicates, so, WebtroPie was showing more games than EmulationStation.
I've written something which finds the duplicates and shows them on the console.Edit 2: just tried your theme, looking great! - except I see what you mean about meta positioning
0_1510528555623_DarkSteele.png -
@kixut I have read your Install script and i see now you use app/#!/ and not ROM in URL, ok it's better.
The source are Ok and i have install again.
# git pull Already up-to-date.
I have refresh like you write, but i also have a good CHROME PLUGIN to do it from years ;)
I have try on IE same result.Now i see your script in console, i have 0 games and 0 duplicate. I can see nothing. Zero menu now :(
On the PI all is working perfectly.- Config.php works fine :
{"app":{"LoadAllSystems":false,"ScanAtStartup":false,"ShowEmptySystems":false,"ShowEmptyDirectories":false,"ShowAddFields":true,"ShowGameCounts":true,"ShowThemeSelect":true,"ShowViewSelect":true,"LogSystemTotals":true,"ThemeSet":"carbon","Language":"en","DateFormat":"DD\/MM\/YYYY","ViewTransitions":"Slide","ViewStyle":""},"env":{"has_gd":1,"has_launch":1,"read_only":0},"lang":{"md_labels":{"name":"Name","rating":"Rating","releasedate":"Released","developer":"Developer","publisher":"Publisher","genre":"Genre","players":"Players","lastplayed":"Last Played","playcount":"Times Played","human_size":"Size","image":"Image","marquee":"Marquee","video":"Video","year":"Year","hidden":"Hidden","kidgame":"Kid","favorite":"Favourite","stars":"Stars","description":"Description"},"buttons":{"launch":"Launch","scrape":"Scrape","save":"Save","cancel":"Cancel","reset":"Reset","delete":"Delete","move":"Move","options":"Options","menu":"Menu","search":"Search","back":"Back","system":"system","choose":"choose","edit":"Edit","open":"Open","select":"Select"},"languages":{"en":"English (UK)","en-us":"English (US)"}},"es":{"BackgroundJoystickInput":false,"CaptionsCompatibility":true,"DrawFramerate":false,"EnableSounds":true,"MoveCarousel":true,"ParseGamelistOnly":false,"QuickSystemSelect":true,"SaveGamelistsOnExit":false,"ScrapeRatings":true,"ScreenSaverControls":true,"ScreenSaverOmxPlayer":true,"ShowHelpPrompts":true,"ShowHiddenFiles":false,"SlideshowScreenSaverCustomImageSource":false,"SlideshowScreenSaverRecurse":false,"SlideshowScreenSaverStretch":false,"SortAllSystems":false,"StretchVideoOnScreenSaver":false,"UseCustomCollectionsSystem":true,"VideoAudio":true,"VideoOmxPlayer":true,"hideQuitMenuOnKidUI":false,"MaxVRAM":"100","ScraperResizeHeight":"0","ScraperResizeWidth":"400","ScreenSaverSwapImageTimeout":"5000","ScreenSaverSwapVideoTimeout":"35000","ScreenSaverTime":"300000","AudioDevice":"PCM","CollectionSystemsAuto":"all,favorites,recent","CollectionSystemsCustom":"","GamelistViewStyle":"automatic","Local":"fr_FR.UTF-8","OMXAudioDev":"both","PowerSaverMode":"default","Scraper":"TheGamesDB","ScreenSaverBehavior":"random video","ScreenSaverGameInfo":"always","SlideshowScreenSaverBackgroundAudioFile":"\/home\/pi\/.emulationstation\/slideshow\/audio\/slideshow_bg.wav","SlideshowScreenSaverImageDir":"\/home\/pi\/.emulationstation\/slideshow\/image","SlideshowScreenSaverImageFilter":".png,.jpg","StartupSystem":"","ThemeSet":"dark-steel","TransitionStyle":"fade","UIMode":"Full","UIMode_passkey":"uuddlrlrba"},"themes":{"stretch-carbon":true,"stretch-clean-look":true,"stretch-crt":true,"stretch-cygnus":true,"stretch-material":true,"stretch-tronkyfran":true},"systems":[],"themes_list":[{"name":"famicom-mini"},{"name":"carbon"},{"name":"pixel"},{"name":"ComicBook"},{"name":"workbench"},{"name":"snes-mini"},{"name":"art-book"},{"name":"dark-steel"},{"name":"ComicBook_SE-Wheelart"},{"name":"nes-mini"},{"name":"material"},{"name":"mini-psx"}]}
-
theme.php works fine too.
-
gamelist.php
http://192.168.1.62/app/svr/gamelist.php?getlist=1&system=default
Satus 200 ok but no valid response from the PI.
HTTP/1.1 200 OK Date: Mon, 13 Nov 2017 13:55:16 GMT Server: Apache/2.4.10 (Raspbian) Content-Length: 0 Keep-Alive: timeout=5, max=95 Connection: Keep-Alive Content-Type: text/html; charset=UTF-8
Tell me what i can try to help please.
-
@darknior yes I did change the link but since the old symlink would still be there it would still work.
Thanks for the info your config is not returning any systems, which is my fault as a while ago I had commented out a little code that is still needed regarding where it looks for gamelists, sorry about that, please try a new pull.
-
@kixut said in WebtroPie WIP:
I had commented out a little code that is still needed regarding where it looks for gamelists
I have make the GIT PULL and see you update the app/svr/config.php file.
HTTP/1.1 200 OK Date: Mon, 13 Nov 2017 20:23:04 GMT Server: Apache/2.4.10 (Raspbian) Content-Length: 0 Keep-Alive: timeout=5, max=90 Connection: Keep-Alive Content-Type: text/html; charset=UTF-8
And always same, it found nothing, no gamelist ?
+ file_exists(ROMSPATH.'/'.$system_name."/gamelist.xml") || + file_exists(HOME_ES."/gamelists/".$system_name."/gamelist.xml") || + file_exists(ES_PATH."/gamelists/".$system_name."/gamelist.xml")
And it's good, i don't understand :(
/opt/retropie/configs/all/emulationstation/gamelists
-
@darknior Thanks for your patience, it's a challenge to debug in this situation, I've tried to replicate what you describe as best I can and noticed that it doesn't behave nicely if the roms directories do not exist but should do now, so I've pushed this and a few other minor changes.
-
@kixut said in WebtroPie WIP:
Thanks for your patience, it's a challenge to debug in this situation
It's me, i'am so sad because i can't really help you more :(
I have see all your updates, 12 files. make the force refresh and again nothing :(
And now nothing in the console. It not search gamelist with PHP, only Config n Theme.Maybe you can explain me how to debug for you ? In what file i must search to found why it not load my gamelist files.
Because now the real problem was it not load lists.angular.js:14642 TypeError: Cannot read property 'substring' of undefined at service.getGamelist (game.service.js:197) at system.view.js:101 at processQueue (angular.js:17000) at angular.js:17044 at Scope.$digest (angular.js:18182) at Scope.$apply (angular.js:18480) at done (angular.js:12501) at completeRequest (angular.js:12727) at XMLHttpRequest.requestLoaded (angular.js:12655) "Possibly unhandled rejection: {}"
Yes some systemes can be installed like SATURN but without any games, ES is not loading a system if his rom dir is empty.
-
// get either a specific gamelist for a system or all systems function getGamelist(system_name) { var promise; console.log(system_name); if (system_name.substring(0,4)=='auto' //|| //system.name.substring(0,6)=='custom' ) // get all systems {
I don't know why it append, i have console.log and it crash when the system_name is undefined
-
I see you comit a debug for console.log, it write me :
config.service.js:47 systems config.service.js:48 []auto-allgames: {name: "auto-allgames", fullname: "all", theme: "auto-allgames", has_games: true}auto-favorites: {name: "auto-favorites", fullname: "favorites", theme: "auto-favorites", has_games: true}auto-lastplayed: {name: "auto-lastplayed", fullname: "recent", theme: "auto-lastplayed", has_games: true}length: 0__proto__: Array(0) system.view.js:95 {name: "carbon", path: "svr/themes/carbon", has_gd: 1, includes: {…}, fonts: {…}, …}carousel_systems: {}carousel_systems_list: []fonts: {carbon_._art_Cabin_Bold: {…}, carbon__art_Cabin_Bold: {…}}has_gd: 1includes: {././carbon.xml: {…}, auto-allgames/../carbon.xml: {…}, auto-favorites/../carbon.xml: {…}, auto-lastplayed/../carbon.xml: {…}, custom-collections/../carbon.xml: {…}}mid_index: 0name: "carbon"path: "svr/themes/carbon"systems: {default: {…}, auto-allgames: {…}, auto-favorites: {…}, auto-lastplayed: {…}, custom-collections: {…}}__proto__: Object angular.js:14642 TypeError: Cannot read property 'substring' of undefined at service.getGamelist (game.service.js:197) at system.view.js:101 at processQueue (angular.js:17000) at angular.js:17044 at Scope.$digest (angular.js:18182) at Scope.$apply (angular.js:18480) at done (angular.js:12501) at completeRequest (angular.js:12727) at XMLHttpRequest.requestLoaded (angular.js:12655) "Possibly unhandled rejection: {}" (anonymous) @ angular.js:14642 (anonymous) @ angular.js:11102 processChecks @ angular.js:17026 $digest @ angular.js:18182 $apply @ angular.js:18480 done @ angular.js:12501 completeRequest @ angular.js:12727 requestLoaded @ angular.js:12655 XMLHttpRequest.send (async) (anonymous) @ angular.js:12701 sendReq @ angular.js:12446 serverRequest @ angular.js:12198 processQueue @ angular.js:17000 (anonymous) @ angular.js:17044 $digest @ angular.js:18182 $apply @ angular.js:18480 done @ angular.js:12501 completeRequest @ angular.js:12727 requestLoaded @ angular.js:12655 XMLHttpRequest.send (async) (anonymous) @ angular.js:12701 sendReq @ angular.js:12446 serverRequest @ angular.js:12198 processQueue @ angular.js:17000 (anonymous) @ angular.js:17044 $digest @ angular.js:18182 $apply @ angular.js:18480 bootstrapApply @ angular.js:1952 invoke @ angular.js:5040 doBootstrap @ angular.js:1950 bootstrap @ angular.js:1970 angularInit @ angular.js:1855 (anonymous) @ angular.js:33826 trigger @ angular.js:3468
-
@darknior I think that the problem is that the config.php although it returns all of the other config it is not returning the list of active systems, (my guess)
so, if you want to have a little dabble with that php script (browse 192.168.1.31/app/svr/config.php?get=255 ) you could debug that loop in a browser and work out why below is not evaluating to true, ... maybe echo those values ?
file_exists(ROMSPATH.'/'.$system_name."/gamelist.xml") || + file_exists(HOME_ES."/gamelists/".$system_name."/gamelist.xml") || + file_exists(ES_PATH."/gamelists/".$system_name."/gamelist.xml")
I've added a console.log to list systems, I'm guessing they will be blank
The other logging is more for later with your game counts, I believe when you are back working again that the counts should be better, and will show duplicates in your psx game list, I made that a config option as it seemed a little slower with it switched on.Edit: ok my guess wrong, ... oh I mean no I was right, yes you should have more than auto systems so please, if you could evaluate the php file_exists check for which gamelists exist. thanks
Oh, and of course I should add checks and nice message for if there really are no systems :)
... could it be that for some reason there is a permission problem now reading if the file exists?
-
System is empty
Toggle Collapsed | use cfdump format: Query: - JSONQuery { -app: { LoadAllSystems: false ScanAtStartup: false ShowEmptySystems: false ShowEmptyDirectories: false ShowAddFields: true ShowGameCounts: true ShowThemeSelect: true ShowViewSelect: true LogSystemTotals: false ThemeSet: "carbon" Language: "en" DateFormat: "DD/MM/YYYY" ViewTransitions: "Slide" ViewStyle: "" } -env: { has_gd: 1 has_launch: 1 read_only: 0 } -lang: { -md_labels: { name: "Name" rating: "Rating" releasedate: "Released" developer: "Developer" publisher: "Publisher" genre: "Genre" players: "Players" lastplayed: "Last Played" playcount: "Times Played" human_size: "Size" image: "Image" marquee: "Marquee" video: "Video" year: "Year" hidden: "Hidden" kidgame: "Kid" favorite: "Favourite" stars: "Stars" description: "Description" } -buttons: { launch: "Launch" scrape: "Scrape" save: "Save" cancel: "Cancel" reset: "Reset" delete: "Delete" move: "Move" options: "Options" menu: "Menu" search: "Search" back: "Back" system: "system" choose: "choose" edit: "Edit" open: "Open" select: "Select" } -languages: { en: "English (UK)" en-us: "English (US)" } } -es: { BackgroundJoystickInput: false CaptionsCompatibility: true DrawFramerate: false EnableSounds: true MoveCarousel: true ParseGamelistOnly: false QuickSystemSelect: true SaveGamelistsOnExit: false ScrapeRatings: true ScreenSaverControls: true ScreenSaverOmxPlayer: true ShowHelpPrompts: true ShowHiddenFiles: false SlideshowScreenSaverCustomImageSource: false SlideshowScreenSaverRecurse: false SlideshowScreenSaverStretch: false SortAllSystems: false StretchVideoOnScreenSaver: false UseCustomCollectionsSystem: true VideoAudio: true VideoOmxPlayer: true hideQuitMenuOnKidUI: false MaxVRAM: "100" ScraperResizeHeight: "0" ScraperResizeWidth: "400" ScreenSaverSwapImageTimeout: "5000" ScreenSaverSwapVideoTimeout: "35000" ScreenSaverTime: "300000" AudioDevice: "PCM" CollectionSystemsAuto: "all,favorites,recent" CollectionSystemsCustom: "" GamelistViewStyle: "automatic" Local: "fr_FR.UTF-8" OMXAudioDev: "both" PowerSaverMode: "default" Scraper: "TheGamesDB" ScreenSaverBehavior: "random video" ScreenSaverGameInfo: "always" SlideshowScreenSaverBackgroundAudioFile: "/home/pi/.emulationstation/slideshow/audio/slideshow_bg.wav" SlideshowScreenSaverImageDir: "/home/pi/.emulationstation/slideshow/image" SlideshowScreenSaverImageFilter: ".png,.jpg" StartupSystem: "" ThemeSet: "dark-steel" TransitionStyle: "fade" UIMode: "Full" UIMode_passkey: "uuddlrlrba" } -themes: { stretch-carbon: true stretch-clean-look: true stretch-crt: true stretch-cygnus: true stretch-material: true stretch-tronkyfran: true } systems: [ ] -themes_list: [ -{ name: "famicom-mini" } -{ name: "carbon" } -{ name: "pixel" } -{ name: "ComicBook" } -{ name: "workbench" } -{ name: "snes-mini" } -{ name: "art-book" } -{ name: "dark-steel" } -{ name: "ComicBook_SE-Wheelart" } -{ name: "nes-mini" } -{ name: "material" } -{ name: "mini-psx" } ] }
-
@darknior thanks, I think it's going to turn out to be a permissions problem, does your web server run as a user that can read the gamelists files ?
-
@kixut It's work before ... i don't know. I supose Apache use root user, how can i verify this ? i use you script copy from here.
And i install your script i think at good place in : /opt/retropie/supplementary/WebtroPie/ with root user
-
if ($_GET['get'] & SYSTEMS) { echo($_GET['get']); echo(SYSTEMS);
result :
- 25532
- ... systems":[]," ....
It is strange because your application is installed by part as ROOT and some other files PI
I always have execute it with root user for installation, maybe it's bad ?
But /opt/retropie/supplementary/ is a user root directory. -
@darknior it should work from anywhere, there is no hard coded path to where it's installed.
I would just open a tab to http://192.168.1.31/app/svr/config.php?get=255 and edit the config.php and temporarily add some echo commands (see below), then refresh your tab, the list of systems should be every system from your es_systems.cfg, and the ones that have a true file_exists are the ones that go back to the client, if the path look right and the ones that you know exist say that they don't exist then it would be permissions, but maybe it's not getting the list from es_systems, or maybe there something wrong with the pathsecho "<pre>\n"; print_r($systems['system']); echo "</pre>"; for($i=0; $i<count($systems['system']);$i++) { $system_name = $systems['system'][$i]['name']; echo "<pre>\n"; echo $system_name."\n"; echo "[".$systems['system'][$i]['path']."/gamelist.xml"."]"; echo file_exists($systems['system'][$i]['path']."/gamelist.xml")."\n"; echo "[".ROMSPATH.'/'.$system_name."/gamelist.xml"."]"; echo file_exists(ROMSPATH.'/'.$system_name."/gamelist.xml")."\n"; echo "[".HOME_ES."/gamelists/".$system_name."/gamelist.xml"."]"; echo file_exists(HOME_ES."/gamelists/".$system_name."/gamelist.xml")."\n"; echo "[".ES_PATH."/gamelists/".$system_name."/gamelist.xml"."]"; echo file_exists(ES_PATH."/gamelists/".$system_name."/gamelist.xml")."\n"; echo "</pre>"; if (file_exists($systems['system'][$i]['path']."/gamelist.xml") || file_exists(ROMSPATH.'/'.$system_name."/gamelist.xml") || file_exists(HOME_ES."/gamelists/".$system_name."/gamelist.xml") || file_exists(ES_PATH."/gamelists/".$system_name."/gamelist.xml") ) { $systems['system'][$i]['has_gamelist'] = true; if (filesize($systems['system'][$i]['path']."/gamelist.xml") > 40 || filesize(ROMSPATH.'/'.$system_name."/gamelist.xml") > 40 || filesize(HOME_ES."/gamelists/".$system_name."/gamelist.xml") > 40 || filesize(ES_PATH."/gamelists/".$system_name."/gamelist.xml") > 40 ) $systems['system'][$i]['has_games'] = true; } $config['systems'][$system_name] = $systems['system'][$i]; } exit; // this is all we're interested in at the moment
... never mind ... lets add another last one "/opt/retropie/configs/all/emulationstation/"
Edit: Ive added /opt/retropie/configs/all/emulationstation and pushed, I feel dumb now
-
If i understand fine :
if ($_GET['get'] & SYSTEMS) { $array_types = array('system'=>true); if (file_exists(HOME_ES."/es_systems.cfg")) $systems = load_file_xml_as_array(HOME_ES."/es_systems.cfg"); else $systems = load_file_xml_as_array(ES_PATH."/es_systems.cfg"); $config['systems'] = array(); echo "<pre>\n"; print_r($systems['system']); echo "</pre>"; for($i=0; $i<count($systems['system']);$i++) { $system_name = $systems['system'][$i]['name']; echo "<pre>\n"; echo $system_name."\n"; echo "[".$systems['system'][$i]['path']."/gamelist.xml"."]"; echo file_exists($systems['system'][$i]['path']."/gamelist.xml")."\n"; echo "[".ROMSPATH.'/'.$system_name."/gamelist.xml"."]"; echo file_exists(ROMSPATH.'/'.$system_name."/gamelist.xml")."\n"; echo "[".HOME_ES."/gamelists/".$system_name."/gamelist.xml"."]"; echo file_exists(HOME_ES."/gamelists/".$system_name."/gamelist.xml")."\n"; echo "[".ES_PATH."/gamelists/".$system_name."/gamelist.xml"."]"; echo file_exists(ES_PATH."/gamelists/".$system_name."/gamelist.xml")."\n"; echo "</pre>"; if (file_exists($systems['system'][$i]['path']."/gamelist.xml") || file_exists(ROMSPATH.'/'.$system_name."/gamelist.xml") || file_exists(HOME_ES."/gamelists/".$system_name."/gamelist.xml") || file_exists(ES_PATH."/gamelists/".$system_name."/gamelist.xml") ) { $systems['system'][$i]['has_gamelist'] = true; if (filesize($systems['system'][$i]['path']."/gamelist.xml") > 40 || filesize(ROMSPATH.'/'.$system_name."/gamelist.xml") > 40 || filesize(HOME_ES."/gamelists/".$system_name."/gamelist.xml") > 40 || filesize(ES_PATH."/gamelists/".$system_name."/gamelist.xml") > 40 ) $systems['system'][$i]['has_games'] = true; } $config['systems'][$system_name] = $systems['system'][$i]; } exit; // this is all we're interested in at the moment }
I have an empty page :(
<pre> </pre>
I don't understand fine for /opt/retropie/configs/all/emulationstation ?
-
/opt/retropie/configs/all/emulationstation is PI user
/opt/retropie/configs/all/emulationstation/gamelists PI
Each system and gamelist.xml PI user too.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.