Updated EmulationStation for Windows
-
@jdrassa "Theme"... obviouly...
I Switched to quads because I didn't find a way to make a vert gradient with triangles. What a pity they'll remove it in 3.1 because quads are 10% faster. It's the first time I work with OpenGl, so If someone finds a better way...
@jero do u use one of these command line switches : "--monitor" or "--windowed" ? I added a special treatment with these. tell me.
@drcnyc About the startup problem : Do you have a particular command line, too ? About the gamelist : I added a security because sometimes my gamelists where 0kb. I 1st write gamlist in a .xml.tmp file, then If everything went ok, I rename files -> .xml becomes .xml.old and .xml.tmp becomes .xml... Something on your PC is locking the .xml file... Why ? Antivirus software ???? Or maybe... Did U update the exe with my github's continuous version ? One of my past releases had a random bug in File::exists() ?// Secure XML writing if ((int) Utils::FileSystem::getFileSize(tmpFile) > 0) { std::string savFile = xmlWritePath + ".old"; // remove previous gamelist.xml.old file if (Utils::FileSystem::exists(savFile)) Utils::FileSystem::removeFile(savFile); // rename gamelist.xml to gamelist.xml.old if (Utils::FileSystem::exists(xmlWritePath)) std::rename(xmlWritePath.c_str(), savFile.c_str()); // rename gamelist.tmp.xml to gamelist.xml std::rename(tmpFile.c_str(), xmlWritePath.c_str()); }
-
@f-caruso NO use , where is file for this change. "--monitor" or "--windowed"
@f-caruso Another thing, it would be possible to launch an application, for example kodi or another program, from the systems carousel or first level.
It could at some point for example have in the first level of systems the possibility of entering a system and lower another similar level in which returns to see systems as in the first snow. I put an example in the carrousel I have Arcade, when pressing I go to the list of games that's the job now. What I want to say is to go into Arcade and on the screen I get systems again, in this case I will be for example mame, neogeo, naomi and more. Then there may be more systems or lists. Would it be in the Theme or should it be implemented in (ES)? I hope I have explained well hehehehehe
-
@jero and... Do U use my emulationportable.exe ? Or a .bat file to run ES ?
Also : You can launch what U want with ES ;-) In es_systems.cfg, create a system called.. whatever U canna call it ( windows, retropie... ) with .lnk & .bat extentions, and create as many batch files as you want in its roms folder. I personnaly use this :<system> <name>windows</name> <fullname>Windows</fullname> <path>~\..\roms\windows</path> <extension>.lnk .LNK .bat .BAT</extension> <command>%ROM%</command> <platform>windows</platform> <theme>moonlight</theme> </system>
-
@jero My problem isn't focus related, it is the controller, I am able to use any of the other three controllers to navigate ES, but if I then Launch a game and exit it will not work for that controller and I can use the original ones again (most times, not always). It's like controls are disabled so it doesn't attempt to move once the game is launched and then not reactivated until control is returned to ES, but I am just guessing that is whats happening. ES doesn't set focus when it returns, which is fine for dual screens on a PC, not so fun when your on the couch and have to go over to fix it, might be a good option to include in the future, return focus when exiting a game.
-
@f-caruso Thanks, I already use that system. I said that it starts without entering the screen of selection of roms. That it was direct from the first level, that is from system.Now I understand that he was referring to window or winoned I do not use bat to start directly with his exe of his version of ES
Another thing that seems a possibility that there were several levels in the menu and was not only the level of systems at the level of roms. Well, I name it that way because I do not really know how it is named.
@LiveFreeDead Thank you now I understand your problem, let's say it's like it happens to me and if it's funny when it happens on the sofa hehehehe
-
@f-caruso I am using the 2.10.0.5 build, but the emulationstationportable.exe file is from an older release (I didn’t see it in any of the more recent builds). Should I update to the continuous build? Is there a more recent version of the portable exe available?
-
@jero @LiveFreeDead Whats the status of your "HIDE WHEN LAUNCH" option ?
-
@drcnyc Yes (portable.exe is older - but it is the most recent version, no new release planned yet, it's not in the continuous build), and Yes (update with continuous build)
-
@jero "from the first level" -> No way. SystemView is not designed 4 that. Plus, addin things in the menus can only be done by code...
-
@jero @LiveFreeDead I've just commited changes for your problems (this is a try), update with the continuous build and tell me...
-
@f-caruso If you talk about option when launching game, I have OFF
About the idea of starting from the first level I think it's a good idea, I understand the changes and problems was just an idea, thanks for commenting.
As soon as I can under and check the last complilacion
-
@jero Is it the same with the option ON ?
-
@f-caruso in ON, no have problem , but I will try new update
-
@f-caruso
(--Monitor 1) reverts perfectly to (Monitor 0) if no (Monitor 1) found.Hide When Running Game now works perfectly, no more work needed here
- I still have the bug where if I run Cemu and Alt + F4 out to quit the game (Super Mario 3D world) that I can not use my GamePad I used to launch the game, it is probably related to CEmu stealing the Controller to use and not with ES tho, I'll figure that one out when I get to it tho.
Linux Fails at Grid View: (Settings not declared)
I still can not get it to compile in windows or Linux, I just can't get it to run through without an error, I'll try re-installing my computer later today and try fresh, maybe I have old VS2010 components getting in the way, I'll only use VS 2015 as instructed and try my luck.
But your doing great work today, so not much need for me to help with the code when you got it ;)
-
@f-caruso problem fixed with the continuous build - gamelists now updating properly - thanks!
Separate and unrelated question - is there any way ES can deliver joypad autoconfig files to retroarch? It seems retropie does this when controllers are configured in ES, and would be a nice feature in windows too.
Lastly what are the chances you can improve scraping, perhaps with some kind of auto retry on error? I am trying to scrape a large number of roms and it always seems to crash out with a message about disk space possibly being full, but on further research seems this has to do with a timeout with connecting to the scraping DB servers. It requires manual intervention to resume scraping which can be tough with large lists coupled with the slow scraping speed.
-
problem fixed with the continuous build - gamelists now updating properly - thanks!
Mmm... I didn't change a line of code....
is there any way ES can deliver joypad autoconfig files to retroarch
That's not ES role. Retropie & Recalbox use a "launcher" tool to do that & the "command" runs the launcher instead of the emulator. This is the good way to make it...
Someone has to develop such a launcher...Lastly what are the chances you can improve scraping..
I have no personnal interest in improve ES scraping : I personnaly never use ES scaping. I have my own ( but private ) gamelist editor because I use screenshot for images, box2d for thumbnails and I have videos... Plus, I use custom thumbnails for several systems ( wii use wiitdb arts, ps2 custom 3d boxes I found on a forum which are beautiful, + some system are not scrapable : windows games.. )
I do recommand using an external scraping tool like Skraper.net -
@f-caruso drcnyc started using the continuous builds, so maybe that was enough to correct if XML update bug.
I managed to get ES to compile in windows, I had to use NuGet to grab rapidjson.1.0.2 and I updated the compile paths etc
c: cd \src git clone https://github.com/fabricecaruso/EmulationStation.git EmulationStation cd EmulationStation git submodule update --init c: cd \src cd EmulationStation mkdir build cd build set ES_LIB_DIR=c:\src\lib cmake -g "Visual Studio 14 2015 x86" .. -DEIGEN3_INCLUDE_DIR=%ES_LIB_DIR%\eigen -DFREETYPE_INCLUDE_DIRS=%ES_LIB_DIR%\freetype-2.7\include -DFREETYPE_LIBRARY=%ES_LIB_DIR%\freetype-2.7\objs\vc2010\Win32\freetype27.lib -DFreeImage_INCLUDE_DIR=%ES_LIB_DIR%\FreeImage\Source -DFreeImage_LIBRARY=%ES_LIB_DIR%\FreeImage\Dist\x32\FreeImage.lib -DSDL2_INCLUDE_DIR=%ES_LIB_DIR%\SDL2-2.0.5\include -DSDL2_LIBRARY=%ES_LIB_DIR%\SDL2-2.0.5\build\Release\SDL2.lib;%ES_LIB_DIR%\SDL2-2.0.5\build\Release\SDL2main.lib;Imm32.lib;version.lib -DBOOST_ROOT=%ES_LIB_DIR%\boost_1_61_0 -DBoost_LIBRARY_DIR=%ES_LIB_DIR%\boost_1_61_0\lib32-msvc-14.0 -DCURL_INCLUDE_DIR=%ES_LIB_DIR%\curl-7.50.3\include -DCURL_LIBRARY=%ES_LIB_DIR%\curl-7.50.3\builds\libcurl-vc14-x86-release-dll-ipv6-sspi-winssl\lib\libcurl.lib -DVLC_INCLUDE_DIR=%ES_LIB_DIR%\libvlc-2.2.2\include -DVLC_LIBRARIES=%ES_LIB_DIR%\libvlc-2.2.2\lib\msvc\libvlc.lib;%ES_LIB_DIR%\libvlc-2.2.2\lib\msvc\libvlccore.lib -DVLC_VERSION=1.0.0 -DRAPIDJSON_INCLUDE_DIRS=%ES_LIB_DIR%\rapidjson.1.0.2\build\native\include
I could remove boost etc, but the fact it worked for me is a big plus :), I noticed my build is smaller than yours, I think it is due to not being able to get LibCEC to work. I don't think I'll be as much help as I thought, maybe I should go back to a hello world project and get to a scalable workflow, I don't even know where to access cpp from within VS2015, or maybe I am just meant to use a good text editor and not use VS for edits, I never realized how basic VB.NET really was compared to the rest.
-EDIT-
I don't use a Launcher, but I do use a nice Batch File instead of a Emulator, it will only ever work in Windows tho:
Roms{System}{Game Name Here}.cmd (eg Roms\MicrosoftWindows\Angry Birds.cmd)
@echo off REM Set Name of Game Set GamePath=%~n0 REM Change To Correct Drive and Path %~d0 cd "%~dp0" cd %GamePath% REM Run the JoyToKey And With Correct Config start "" "..\..\..\JoyToKey\JoyToKey.exe" -r "%GamePath%.cfg" REM Find first .EXE to RUN Game FOR /f "delims=?" %%a IN ('dir /b *.exe') DO ( "%%a" REM Kill JoyToKey "..\..\..\JoyToKey\pskill.exe" JoyToKey.exe exit )
What it does is uses the name Angry Birds and opens a folder with the same name, running the first found .exe in that folder. You can manually edit it to be the actual file if you notice it's not the first .exe you needed to run.
Here is my System for reference:
<system> <name>MicrosoftWindows</name> <fullname>Microsoft Windows</fullname> <path>.\roms\MicrosoftWindows</path> <extension>.cmd .CMD</extension> <command>"%ROM_RAW%"</command> <platform>windows</platform> <theme>windows</theme> </system>
I have a copy of \JoyToKey\JoyToKey.exe in the folder alongside EmulationStation.exe, and in that folder I have a JoyToKey config file with the same name "Angry Birds.cfg", if I know a new game I add uses the same Keys/Mouse config I can copy it and rename the file to the new game and it'll use the same config, or just use JoyToKey to edit the new one manually.
*Don't forget to add pskill.exe to the joytokey path too
LOL - I can see why someone would want a launcher for such things, the above makes sense to me, but not sure who else could follow it, I am sure I could make the same scripts in Linux work, but they don't have a easy JoyToKey built in.
-
@LiveFreeDead Useless complexity ;-)
- JoyToKey is not freeware...
- U could have use JoyToKey "associate configuration with application" feature to avoid all this batch complexity.
- What U did is precisely the reason why I have my written the Joy to key feature in my emulationportable exe -> Simplfy this...
- This does not send ES configuration in games like retroarch as @drcnyc supposed : it simply converts gamepad to keyboard for a game that does not supports gamepad.
- VB.Net.... No comment ;-)
- Don't try to work with VS2010, only >= 2015.
-
@f-caruso Sorry if this has been answered before but the thread is pretty long. When I scrape game info your ES doesn't actually save the image and game description, nor can I edit it in the metadata like in Jrassa's version. Is this something thats work in progress or do we have to edit this by hand in the xml?
-
@duiz About the gamelist.xml : Do you have a gamelist.xml.tmp in the same folder ?
I added a security because sometimes my gamelists where 0kb. I first write an .tmp file, then I rename it when ok. I looks like renaming files fails sometimes. Sadly, I can't reproduce on my systems. If the .tmp is present, simply delete the old xml and rename the .tmp file.About the metadatas : On a Pi, with only a gamepad, scraping function is necessary ( with an onscreen keyboard ). People don't have mouses nor keyboards.
I assumed that on a Windows platform, this is totally different : there are good external scraping & gamelist editor tools that can do the work really really better than ES ( you can't even choose what image you prefer- screenshot, mix, box2d, box3d ?? Download video, set thumbnails for gridview ), and editing metadata in ES is not convenient at all. I considered that only the rating & the possibility to change emulator & core where truly important to be handled with the gamepad. So I filtered the list of metadatas to display only the relevants.
If most of the users want those metadatas back, I'll restore them...
Please vote ;-) lol
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.