Author Topic: Emulation Station  (Read 47679 times)

xXFrostXx (OP)

  • * Former Staff
  • Posts: 234
Emulation Station
« on: January 14, 2015, 03:12:07 am »
Hey everyone,

I've been pitching this idea around one or two other threads, but I feel it needs a thread of its own.

Emulation Station is a program that allows you to scroll through polished menus that include all of your ROMS and ISOS, without having to open an emulator. It also includes things like cover art, release dates, summaries, etc. which you add yourself.


I'm currently working on creating my first game for the Zero, and truth be told I would have no idea where to start with this, but I would really like to see this on the Zero if someone is willing to take a look. I would be willing to help create a version from scratch if this port isn't possible, but I would like to see if it is possible first.
So far, ES has had releases on Windows, Pi, Debian, and Arch.

The source is located here: https://github.com/Aloshi/EmulationStation/tree/unstable#building


(I don't know what it is, but I love organization programs like these. Looking forward to feedback on this.)
« Last Edit: January 19, 2015, 05:45:06 pm by xXFrostXx »
Dingoonity is the place to be!

Nebuleon

  • Guest
Re: Emulation Station
« Reply #1 on: January 14, 2015, 03:36:38 am »
Is this thread about Emulation Station or about your game?

In either case, I say do it.

xXFrostXx (OP)

  • * Former Staff
  • Posts: 234
Re: Emulation Station
« Reply #2 on: January 14, 2015, 03:48:44 am »
The topic is regarding Emulation Station.

I'm going to try and look at the source using Eclipse.


The built in metadata scraper for ES may be a problem. (The Zero would need an internet browser for that.) But it is possible to add the information in manually. I would have to remove the scraper feature.

---

Update: Requesting this thread be moved to Development, please.
« Last Edit: January 14, 2015, 04:14:00 am by xXFrostXx »
Dingoonity is the place to be!

com64

  • *
  • Posts: 80
    • 0x64.ca
Re: Emulation Station
« Reply #3 on: January 15, 2015, 08:11:06 am »
GCW Zero does have a port of QT, from which you can run a working web browser; you could also compile lynx/links/links2, or use wget if you just need to download a file, I don't know what the implementation is like.

xXFrostXx (OP)

  • * Former Staff
  • Posts: 234
Re: Emulation Station
« Reply #4 on: January 16, 2015, 06:42:10 pm »
Update: Com64 and I are teaming up on this project.

He has configured CMake to use OpenGL ES, and will be posting a new thread soon.
Dingoonity is the place to be!

com64

  • *
  • Posts: 80
    • 0x64.ca
Re: Emulation Station
« Reply #5 on: January 17, 2015, 02:34:33 am »
I figure it's best to just post here to avoid too many threads.

Code: Just forked on GitHub.
Check my commits once I post them.

Extra packages needed:
Code: [Select]
libssh2
curl
eigen
FreeImage

Two compatibility issues so far:
1) C++11 features (std::string std::to_string(long long), and float std::stof(std::string), I think)
Some features of C++11 don't seem to be implemented in the toolchain; I'll comment their implementations out for now, or implement my own functions.

2) libiconv

com64

  • *
  • Posts: 80
    • 0x64.ca
Re: Emulation Station
« Reply #6 on: January 17, 2015, 03:39:53 am »
Bypassing the string functions that aren't working, here's the compile error message:
Code: [Select]
Linking CXX executable ../../emulationstation
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o): In function `boost::locale::conv::impl::iconv_between::open(char const*, char const*, boost::locale::conv::method_type)':
codepage.cpp:(.text._ZN5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE[_ZN5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE]+0x44): undefined reference to `libiconv_close'
codepage.cpp:(.text._ZN5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE[_ZN5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE]+0x48): undefined reference to `libiconv_close'
codepage.cpp:(.text._ZN5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE[_ZN5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE]+0x58): undefined reference to `libiconv_open'
codepage.cpp:(.text._ZN5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE[_ZN5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE]+0x60): undefined reference to `libiconv_open'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o): In function `boost::locale::conv::impl::iconverter_base::~iconverter_base()':
codepage.cpp:(.text._ZN5boost6locale4conv4impl15iconverter_baseD2Ev[_ZN5boost6locale4conv4impl15iconverter_baseD5Ev]+0x20): undefined reference to `libiconv_close'
codepage.cpp:(.text._ZN5boost6locale4conv4impl15iconverter_baseD2Ev[_ZN5boost6locale4conv4impl15iconverter_baseD5Ev]+0x24): undefined reference to `libiconv_close'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o): In function `boost::locale::conv::impl::iconverter_base::~iconverter_base()':
codepage.cpp:(.text._ZN5boost6locale4conv4impl15iconverter_baseD0Ev[_ZN5boost6locale4conv4impl15iconverter_baseD5Ev]+0x34): undefined reference to `libiconv_close'
codepage.cpp:(.text._ZN5boost6locale4conv4impl15iconverter_baseD0Ev[_ZN5boost6locale4conv4impl15iconverter_baseD5Ev]+0x38): undefined reference to `libiconv_close'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o): In function `boost::locale::conv::impl::iconv_between::~iconv_between()':
codepage.cpp:(.text._ZN5boost6locale4conv4impl13iconv_betweenD2Ev[_ZN5boost6locale4conv4impl13iconv_betweenD5Ev]+0x20): undefined reference to `libiconv_close'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o):codepage.cpp:(.text._ZN5boost6locale4conv4impl13iconv_betweenD2Ev[_ZN5boost6locale4conv4impl13iconv_betweenD5Ev]+0x24): more undefined references to `libiconv_close' follow
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o): In function `boost::locale::conv::impl::iconv_from_utf<wchar_t>::open(char const*, boost::locale::conv::method_type)':
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIwE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl14iconv_from_utfIwE4openEPKcNS1_11method_typeE]+0x54): undefined reference to `libiconv_open'
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIwE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl14iconv_from_utfIwE4openEPKcNS1_11method_typeE]+0x5c): undefined reference to `libiconv_open'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o): In function `boost::locale::conv::impl::iconv_to_utf<wchar_t>::open(char const*, boost::locale::conv::method_type)':
codepage.cpp:(.text._ZN5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE]+0x34): undefined reference to `libiconv_close'
codepage.cpp:(.text._ZN5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE]+0x38): undefined reference to `libiconv_close'
codepage.cpp:(.text._ZN5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE]+0x50): undefined reference to `libiconv_open'
codepage.cpp:(.text._ZN5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE]+0x54): undefined reference to `libiconv_open'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o): In function `boost::locale::conv::impl::iconv_from_utf<char>::open(char const*, boost::locale::conv::method_type)':
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE]+0x3c): undefined reference to `libiconv_close'
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE]+0x40): undefined reference to `libiconv_close'
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE]+0x54): undefined reference to `libiconv_open'
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE]+0x5c): undefined reference to `libiconv_open'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o): In function `boost::locale::conv::impl::iconv_to_utf<char>::open(char const*, boost::locale::conv::method_type)':
codepage.cpp:(.text._ZN5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE]+0x34): undefined reference to `libiconv_close'
codepage.cpp:(.text._ZN5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE]+0x38): undefined reference to `libiconv_close'
codepage.cpp:(.text._ZN5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE]+0x50): undefined reference to `libiconv_open'
codepage.cpp:(.text._ZN5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE]+0x54): undefined reference to `libiconv_open'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o): In function `boost::locale::conv::impl::iconv_from_utf<char>::convert(char const*, char const*)':
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIcE7convertEPKcS6_[_ZN5boost6locale4conv4impl14iconv_from_utfIcE7convertEPKcS6_]+0xbc): undefined reference to `libiconv'
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIcE7convertEPKcS6_[_ZN5boost6locale4conv4impl14iconv_from_utfIcE7convertEPKcS6_]+0xcc): undefined reference to `libiconv'
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIcE7convertEPKcS6_[_ZN5boost6locale4conv4impl14iconv_from_utfIcE7convertEPKcS6_]+0x144): undefined reference to `libiconv'
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIcE7convertEPKcS6_[_ZN5boost6locale4conv4impl14iconv_from_utfIcE7convertEPKcS6_]+0x154): undefined reference to `libiconv'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o): In function `boost::locale::conv::impl::iconv_from_utf<wchar_t>::convert(wchar_t const*, wchar_t const*)':
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIwE7convertEPKwS6_[_ZN5boost6locale4conv4impl14iconv_from_utfIwE7convertEPKwS6_]+0xc0): undefined reference to `libiconv'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o):codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIwE7convertEPKwS6_[_ZN5boost6locale4conv4impl14iconv_from_utfIwE7convertEPKwS6_]+0xd0): more undefined references to `libiconv' follow
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libfreeimage.a(dec.o): In function `VP8DspInit':
dec.c:(.text+0x4d38): undefined reference to `VP8DspInitMIPS32'
dec.c:(.text+0x4d3c): undefined reference to `VP8DspInitMIPS32'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libfreeimage.a(upsampling.o): In function `WebPInitSamplers':
upsampling.c:(.text+0x9038): undefined reference to `WebPInitSamplersMIPS32'
upsampling.c:(.text+0x903c): undefined reference to `WebPInitSamplersMIPS32'
collect2: error: ld returned 1 exit status
es-app/CMakeFiles/emulationstation.dir/build.make:862: recipe for target '../emulationstation' failed
make[2]: *** [../emulationstation] Error 1
CMakeFiles/Makefile2:246: recipe for target 'es-app/CMakeFiles/emulationstation.dir/all' failed
make[1]: *** [es-app/CMakeFiles/emulationstation.dir/all] Error 2
Makefile:137: recipe for target 'all' failed
make: *** [all] Error 2

xXFrostXx (OP)

  • * Former Staff
  • Posts: 234
Re: Emulation Station
« Reply #7 on: January 17, 2015, 03:51:19 am »
Bypassing the string functions that aren't working, here's the compile error message:
Code: [Select]
Linking CXX executable ../../emulationstation
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o): In function `boost::locale::conv::impl::iconv_between::open(char const*, char const*, boost::locale::conv::method_type)':
codepage.cpp:(.text._ZN5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE[_ZN5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE]+0x44): undefined reference to `libiconv_close'
codepage.cpp:(.text._ZN5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE[_ZN5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE]+0x48): undefined reference to `libiconv_close'
codepage.cpp:(.text._ZN5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE[_ZN5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE]+0x58): undefined reference to `libiconv_open'
codepage.cpp:(.text._ZN5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE[_ZN5boost6locale4conv4impl13iconv_between4openEPKcS5_NS1_11method_typeE]+0x60): undefined reference to `libiconv_open'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o): In function `boost::locale::conv::impl::iconverter_base::~iconverter_base()':
codepage.cpp:(.text._ZN5boost6locale4conv4impl15iconverter_baseD2Ev[_ZN5boost6locale4conv4impl15iconverter_baseD5Ev]+0x20): undefined reference to `libiconv_close'
codepage.cpp:(.text._ZN5boost6locale4conv4impl15iconverter_baseD2Ev[_ZN5boost6locale4conv4impl15iconverter_baseD5Ev]+0x24): undefined reference to `libiconv_close'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o): In function `boost::locale::conv::impl::iconverter_base::~iconverter_base()':
codepage.cpp:(.text._ZN5boost6locale4conv4impl15iconverter_baseD0Ev[_ZN5boost6locale4conv4impl15iconverter_baseD5Ev]+0x34): undefined reference to `libiconv_close'
codepage.cpp:(.text._ZN5boost6locale4conv4impl15iconverter_baseD0Ev[_ZN5boost6locale4conv4impl15iconverter_baseD5Ev]+0x38): undefined reference to `libiconv_close'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o): In function `boost::locale::conv::impl::iconv_between::~iconv_between()':
codepage.cpp:(.text._ZN5boost6locale4conv4impl13iconv_betweenD2Ev[_ZN5boost6locale4conv4impl13iconv_betweenD5Ev]+0x20): undefined reference to `libiconv_close'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o):codepage.cpp:(.text._ZN5boost6locale4conv4impl13iconv_betweenD2Ev[_ZN5boost6locale4conv4impl13iconv_betweenD5Ev]+0x24): more undefined references to `libiconv_close' follow
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o): In function `boost::locale::conv::impl::iconv_from_utf<wchar_t>::open(char const*, boost::locale::conv::method_type)':
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIwE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl14iconv_from_utfIwE4openEPKcNS1_11method_typeE]+0x54): undefined reference to `libiconv_open'
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIwE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl14iconv_from_utfIwE4openEPKcNS1_11method_typeE]+0x5c): undefined reference to `libiconv_open'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o): In function `boost::locale::conv::impl::iconv_to_utf<wchar_t>::open(char const*, boost::locale::conv::method_type)':
codepage.cpp:(.text._ZN5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE]+0x34): undefined reference to `libiconv_close'
codepage.cpp:(.text._ZN5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE]+0x38): undefined reference to `libiconv_close'
codepage.cpp:(.text._ZN5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE]+0x50): undefined reference to `libiconv_open'
codepage.cpp:(.text._ZN5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12iconv_to_utfIwE4openEPKcNS1_11method_typeE]+0x54): undefined reference to `libiconv_open'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o): In function `boost::locale::conv::impl::iconv_from_utf<char>::open(char const*, boost::locale::conv::method_type)':
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE]+0x3c): undefined reference to `libiconv_close'
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE]+0x40): undefined reference to `libiconv_close'
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE]+0x54): undefined reference to `libiconv_open'
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl14iconv_from_utfIcE4openEPKcNS1_11method_typeE]+0x5c): undefined reference to `libiconv_open'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o): In function `boost::locale::conv::impl::iconv_to_utf<char>::open(char const*, boost::locale::conv::method_type)':
codepage.cpp:(.text._ZN5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE]+0x34): undefined reference to `libiconv_close'
codepage.cpp:(.text._ZN5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE]+0x38): undefined reference to `libiconv_close'
codepage.cpp:(.text._ZN5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE]+0x50): undefined reference to `libiconv_open'
codepage.cpp:(.text._ZN5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE[_ZN5boost6locale4conv4impl12iconv_to_utfIcE4openEPKcNS1_11method_typeE]+0x54): undefined reference to `libiconv_open'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o): In function `boost::locale::conv::impl::iconv_from_utf<char>::convert(char const*, char const*)':
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIcE7convertEPKcS6_[_ZN5boost6locale4conv4impl14iconv_from_utfIcE7convertEPKcS6_]+0xbc): undefined reference to `libiconv'
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIcE7convertEPKcS6_[_ZN5boost6locale4conv4impl14iconv_from_utfIcE7convertEPKcS6_]+0xcc): undefined reference to `libiconv'
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIcE7convertEPKcS6_[_ZN5boost6locale4conv4impl14iconv_from_utfIcE7convertEPKcS6_]+0x144): undefined reference to `libiconv'
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIcE7convertEPKcS6_[_ZN5boost6locale4conv4impl14iconv_from_utfIcE7convertEPKcS6_]+0x154): undefined reference to `libiconv'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o): In function `boost::locale::conv::impl::iconv_from_utf<wchar_t>::convert(wchar_t const*, wchar_t const*)':
codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIwE7convertEPKwS6_[_ZN5boost6locale4conv4impl14iconv_from_utfIwE7convertEPKwS6_]+0xc0): undefined reference to `libiconv'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libboost_locale.a(codepage.o):codepage.cpp:(.text._ZN5boost6locale4conv4impl14iconv_from_utfIwE7convertEPKwS6_[_ZN5boost6locale4conv4impl14iconv_from_utfIwE7convertEPKwS6_]+0xd0): more undefined references to `libiconv' follow
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libfreeimage.a(dec.o): In function `VP8DspInit':
dec.c:(.text+0x4d38): undefined reference to `VP8DspInitMIPS32'
dec.c:(.text+0x4d3c): undefined reference to `VP8DspInitMIPS32'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libfreeimage.a(upsampling.o): In function `WebPInitSamplers':
upsampling.c:(.text+0x9038): undefined reference to `WebPInitSamplersMIPS32'
upsampling.c:(.text+0x903c): undefined reference to `WebPInitSamplersMIPS32'
collect2: error: ld returned 1 exit status
es-app/CMakeFiles/emulationstation.dir/build.make:862: recipe for target '../emulationstation' failed
make[2]: *** [../emulationstation] Error 1
CMakeFiles/Makefile2:246: recipe for target 'es-app/CMakeFiles/emulationstation.dir/all' failed
make[1]: *** [es-app/CMakeFiles/emulationstation.dir/all] Error 2
Makefile:137: recipe for target 'all' failed
make: *** [all] Error 2

Looks like this is all linked to libiconv.

As for C++11, those can be re-implemented for the toolchain, correct? Originally, I was going to compile to Linux without the toolchain, but since we switched to it, and I have Mint on my old laptop, I can bring up the toolchain here.

For dependencies, Aloshi (the dev) did tell me that we need all of the following:
-Boost
-Eigen3
-cURL
-FreeImage
-FreeType2
-SDL2
-CMake

He told me that CMake and SDL2 are the most important for getting ES to run, which may be why we're getting errors.
« Last Edit: January 17, 2015, 03:53:26 am by xXFrostXx »
Dingoonity is the place to be!

com64

  • *
  • Posts: 80
    • 0x64.ca
Re: Emulation Station
« Reply #8 on: January 18, 2015, 03:08:08 am »
Added some linker options, now: (I might have to rebuild libfreeimage)
Code: [Select]
Linking CXX executable ../../emulationstation
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libfreeimage.a(dec.o): In function `VP8DspInit':
dec.c:(.text+0x4d38): undefined reference to `VP8DspInitMIPS32'
dec.c:(.text+0x4d3c): undefined reference to `VP8DspInitMIPS32'
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib/libfreeimage.a(upsampling.o): In function `WebPInitSamplers':
upsampling.c:(.text+0x9038): undefined reference to `WebPInitSamplersMIPS32'
upsampling.c:(.text+0x903c): undefined reference to `WebPInitSamplersMIPS32'
collect2: error: ld returned 1 exit status
es-app/CMakeFiles/emulationstation.dir/build.make:862: recipe for target '../emulationstation' failed
make[2]: *** [../emulationstation] Error 1
CMakeFiles/Makefile2:246: recipe for target 'es-app/CMakeFiles/emulationstation.dir/all' failed
make[1]: *** [es-app/CMakeFiles/emulationstation.dir/all] Error 2
Makefile:133: recipe for target 'all' failed
make: *** [all] Error 2

xXFrostXx (OP)

  • * Former Staff
  • Posts: 234
Re: Emulation Station
« Reply #9 on: January 18, 2015, 07:34:43 pm »
Something that I just realized here.

Once we do get the program compiled correctly, we will need to add entries for every console the GCW-Zero can run. I believe Aloshi told me I need to edit the .cfg file for that.

If someone could provide us with a list of all consoles that can be emulated, that would be great. Even though there's no PSX emulator yet, we'll go ahead and add that as well.
Dingoonity is the place to be!

David Knight

  • **
  • Posts: 577

xXFrostXx (OP)

  • * Former Staff
  • Posts: 234
Re: Emulation Station
« Reply #11 on: January 18, 2015, 10:05:17 pm »
http://boards.dingoonity.org/gcw-releases/gcw-zero-release-index/  ;)

Well, yes, there's that. I have a lot of emulators on my GCW-Zero. It's just that I found Temper (TurboGrafx 16) the other day, which isn't listed anywhere, and I was wondering if there are any others that aren't shown.
Dingoonity is the place to be!

howie_k

  • *
  • Posts: 153
Re: Emulation Station
« Reply #12 on: January 18, 2015, 10:09:07 pm »
There is also Vice (C64) and Unreal Speccy Portable.

xXFrostXx (OP)

  • * Former Staff
  • Posts: 234
Re: Emulation Station
« Reply #13 on: January 18, 2015, 10:13:31 pm »
There is also Vice (C64) and Unreal Speccy Portable.

Alright. Just making sure so we eventually add entries for all of the consoles.
Thanks!
Dingoonity is the place to be!

com64

  • *
  • Posts: 80
    • 0x64.ca
Re: Emulation Station
« Reply #14 on: January 18, 2015, 11:22:41 pm »
Good news: I have it running now! Also added an archive of some required toolchain libraries; just copy those over and you shouldn't need to compile any.

opk here
libs here
git repository here

Complains about system entries, buy I'll let you handle that.

xXFrostXx (OP)

  • * Former Staff
  • Posts: 234
Re: Emulation Station
« Reply #15 on: January 19, 2015, 12:06:25 am »
Good news: I have it running now! Also added an archive of some required toolchain libraries; just copy those over and you shouldn't need to compile any.

opk here
libs here
git repository here

Complains about system entries, buy I'll let you handle that.

Ran a test, but there's no way to get past the config error. Paths are correct as far as I know. I suggest we add a pre-configured file, which is why I'm gathering GCW-Zero emulators. Looking into it now.

I also noticed ES is under emulators. We'll need to move it to applications. The aim of the program is so one may delete the emulators section on the home screen and still access their games. It saves space.

---

Update: I now have a working config thanks to Aloshi. Ran the test for fceux, but after selecting a game, the screen fades out and back in. It may not recognize .opk. We may need to add that.

For those of you who want to check out the progress so far, keep these issues in mind:
ES is under the emulators section. We'll move it to applications.

1. Scraper doesn't work. (We have yet to implement this.)
2. Sound settings does nothing. (We need to program it to change the Zero's volume, or remove it.) If anyone knows how we can accomplish this one, let us know. I haven't seen it used in an app on the GCW-Zero.
3. Emulators don't load. Choosing a game does nothing. (This is because the emulators terminate themselves after ES loads them.)
4. Restart System and Shutdown System in QUIT do nothing. We'll likely remove these.
« Last Edit: January 19, 2015, 03:07:01 am by xXFrostXx »
Dingoonity is the place to be!

xXFrostXx (OP)

  • * Former Staff
  • Posts: 234
Re: Emulation Station
« Reply #16 on: January 19, 2015, 03:27:46 am »
I now have a theme working, which will take place of the boring white background with blue text. The emulators still terminate on booting, but we'll figure out why that is.
Dingoonity is the place to be!

com64

  • *
  • Posts: 80
    • 0x64.ca
Re: Emulation Station
« Reply #17 on: January 19, 2015, 07:25:29 am »
The correct way to run an application would be,
Code: [Select]
opkrun /data/apps/example.opk
Changing the category is trivial; just need to edit the default.gcw0.desktop file inside the OPK.

I'll have to take a look at how ES tries to change the volume, but power+up/down should work.

Could you post up the config file so I can take a look at everything?

Edit: Got something to load, however PicoDrive and a few other emulators don't seem to accept command-line args for input files. (I've only tried PicoDrive so far)

« Last Edit: January 19, 2015, 07:54:31 am by com64 »

ruffnutts

  • ****
  • Posts: 2671
Re: Emulation Station
« Reply #18 on: January 19, 2015, 09:08:54 am »
Sounds like you making progress well done guys I just loaded up on my zero to see it boot ;)

Thanks
ruffnutts  8)

xXFrostXx (OP)

  • * Former Staff
  • Posts: 234
Re: Emulation Station
« Reply #19 on: January 19, 2015, 05:40:14 pm »
https://drive.google.com/folderview?id=0B81YUCHooq0IaUJDcmxDbkRULXc&usp=sharing

Here's the config I wrote for testing. It should show NES, GB, GBC, and GBA, though the emulators don't load.
I also uploaded a preview of the theme, however the text and cover art are too small to read.

We'll need to swap out the text and do some navigational editing to perfect this. Perhaps the list could be shown by itself like in the sneslist image I uploaded. Then, when you select a game, an additional screen could pop up showing the cover art, description, etc. covering the full screen instead of half of the screen. From there, you can select from two options. "Play" and "Back to list".
This would work better on the Zero and will make the text eligible.

The theme itself is fine, but the font and layout need some editing in the code.
« Last Edit: January 19, 2015, 05:43:04 pm by xXFrostXx »
Dingoonity is the place to be!