Development
-
@Arcuza said in Development:
Pity I don't have a Linux PC...
You should solve this issue first!
Just kidding... but it would help to get more confident with this environment.
[Edit: I suggest you to try Linux Mint.]Is there a "Hello world" sample existing for adding to ES as an example?
I don't think so.
What languages are you comfortable with?
-
@meleu said in Development:
What languages are you comfortable with?
C, C++, C#, Java, Javascript, F#, R, T-SQL, RegEx, XPath, Assembler. Markup languages as HTML, XML, XSLT.
-
@Arcuza said in Development:
@meleu said in Development:
What languages are you comfortable with?
C, C++, C#, Java, Javascript, F#, R, T-SQL, RegEx, XPath, Assembler. Markup languages as HTML, XML, XSLT.
If I were the manager I would put you in the emulationstation team, for sure! :D
I'm not sure if those guys develop ES stuff on Windows. Maybe @Zigurana can give some light here...
-
source code for emulationstation: https://github.com/Aloshi/EmulationStation
(retropie actually uses a fork, and there are various other forks currently under development right now, but yeah)the readme has build instructions. don't see why you couldn't use visual studio as your IDE.
have fun! :)
-
@Arcuza said in Development:
Pity I don't have a Linux PC...
You could run Linux in a Virtual Machine if you have a Windows computer. I would imagine Macs can do similar.
-
@mattrixk it's also pretty simple to set up a dual boot
-
It would be great if you want to help with developing the RetroPie platform! I think you have the following options:
The RetroPie scripts these are mostly written in bash, and form the core of the RetroPie system they are the glue that makes other programs such as EmulationStation and RetroArch work together nicely.
RetroArch or one of the other emulator systems is not directly developed here, but might be cool to work on if you are insterested in learning how to simulate the workings of old hardware on new. I would suggest you talk to @dankcushions to see what developments are currently of interest for the RetroPie project.
EmulationStation is the frontend that we currently use to show the available games and console-systems. It actually does nothing more than creating a pretty menu to select your game of choice. It is currently a bit of an orphan, as the original dev has quit. Others are trying to reboot the efforts (i.e. Herdinger, and our own @ben_thatmustbeme (repo). See also the wiki for more info on ES.There is not a lot of documentation, I would suggest crawling through the github issues, to see what people are wanting / trying to do.
-
@Zigurana when you play with the ES vode, what is your environment? (IDE and OS)
-
@meleu said in Development:
@Zigurana when you play with the ES vode, what is your environment? (IDE and OS)
Ah yes, well, thats a bit embarassing actually.
I've been trying to get a proper toolchain up and running so I could code on my PC and compile/debug on the Pi, but I only got 75% there.
I use netbeans to have a nice IDE with code formatting and tracing (it can read the makefiles to interpret the dependencies).
Then I copy the altered files to the pi and compile by calling make. Now in principle it should be possible to compile (and debug!) natively on the pi from within netbeans, but I can't get the pi to access the sources over my network.
The whole process is painfully slow, and debugging is reduced to adding logging statements all over the place.I would much rather code in visual Studio and compile on PC to debug and test, but there dependency hell (and a redefinition of the round() function if you can believe it) is preventing from getting any work done.
This is one of the issues that the herdinger fork was trying to fix. I hope that @ben_thatmustbeme plans to keep compilation on PC intact, as it would simplify development/testing of ES quite a bit (even if the final goal is only to run it on the RPi).Add to that my very spotty understanding of github, and me trying to tie the original Aloshi, the Retropie, Herdingers and my own EmulationStation repositories together, and you get a nice big mess of code.
So yeah, there you have it, there must be better ways to do it, but I rather focus on adding functionality, than on getting the infrastructure in better shape. (I'm open for suggestions though!)
-
@Zigurana said in Development:
This is one of the issues that the herdinger fork was trying to fix. I hope that @ben_thatmustbeme plans to keep compilation on PC intact, as it would simplify development/testing of ES quite a bit (even if the final goal is only to run it on the RPi).
As I don't have a PC, I am entirely on Linux, its not a top priority for me, mainly as I cannot test it. Many of the changes introduced from herdinger's fork were PC specific things, so I kept anything that looked like it would help. If anyone wants to test compiling on PC, go ahead, I would certainly accept any PRs that improve windows compiling without causing issues for linux/pi compiling.
-
Wait a minute guys. When you say PC you mean Windows?
Because RetroPie runs on Linux PC as well. Wen I say Linux PC I mean Linux running on a computer with x86 (32 or 64 bits) processor. Is there some problem to develop/compile/test emulationstation on a Linux PC?
-
@meleu yes, PC has just become something of a shorthand term for Windows PC. PC as' personal computer' is pretty much everything that is a computer that isn't shared today.
-
@Zigurana Wow, I've scanned through the source and my first notice is that libraries on Linux and Windows differs quite a bit. However, I've tried to locate where ES dumps metadata to see why it takes 5 minutes to save 1 MB file (which of course comes from a coding mistake).
To proceed I would like to work with an IDE that supports intellisense, and where I can debug code with step-trough and watches.
Which IDE should I start looking at? Is there a PI emulator I can debug on, if I convert a Windows PC to a Linux PC? Which Linux distro should I choose?
Thank you for your support!
-
@Arcuza
Motivated by the discussion here I gave VS2015 (on a windows PC) another try yesterday. I cloned @ben_thatmustbeme's repo and manage to get at least the release version to build.If you want to I could try to do a write-up on that, while its still fresh (sorta).
Of course this only helps during development cycles, and you will need to rebuild on the pi itself for the more extensive testing.
-
@Arcuza said in Development:
if I convert a Windows PC to a Linux PC? Which Linux distro should I choose?
This is a matter of oppinion, but mine is: Linux Mint Cinnamon edition (this one is the most recent). I suggest it to all my friends that have a Windows background and they are very satisfied.
Go google for "linux mint 18 review" and see what they are saying about it.
-
@Zigurana Will it be possible to have debugging and watches in any way?
-
@Arcuza you can call emulationstation with
emulationstation --debug
which will give some info and I presume you can code in more debugging along with development if you needed explicit details on changes -
@herb_fargus said in Development:
@Arcuza you can call emulationstation with
emulationstation --debug
which will give some info and I presume you can code in more debugging along with development if you needed explicit details on changesYeah, that's been the way I 've been doing it up until now. it works, but it makes the cycles really slow. What I'm hoping is that via the VS route, I can not only use the intellisense l, but also all the debugger functionality that comes with it.
I' m not sure, but it seems like I'll need to recompile one of the dependency libraries (FreeImage) to match the type (debug dynamic multithreaded). I'll let you know how that works out.
Like I said, the release version is already compiling, so nearly there, I hope.
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.