Skip to content
This repository has been archived by the owner on Jul 10, 2023. It is now read-only.

Reicast won't start on Armbian64 #1902

Open
pepitomaraja opened this issue Apr 28, 2020 · 3 comments
Open

Reicast won't start on Armbian64 #1902

pepitomaraja opened this issue Apr 28, 2020 · 3 comments

Comments

@pepitomaraja
Copy link

pepitomaraja commented Apr 28, 2020

Hi guys, my system is a tv box with s905x cpu and 2 gb ram. I've installed armbian64 bionic 5.7.0 and everything work fine. I've installed reicast latest version from source but when I launch ./reicast.elf it print the following error:

Personality: 00000000
Updated personality: 00000000
Linux paging: 4096 00001000 00000FFF

Config dir is: /home/pepito/.config/reicast/
Data dir is: /home/pepito/.local/share/reicast/
GLX: Found 12 matching FB configs.
GLX: Chosen visual ID = 0x21
Screen DPI is 96, size 0 x 0. Scaling by 1.00
CreateContext
GLX: Open GL 4.3 not supported
GLX: init OK
OpenGL version: 3.1 Mesa 19.2.8
CreateContext Done
CreateFontsTexture
terminate called after throwing an instance of 'std::out_of_range'
what(): basic_string::substr: __pos (which is 1) > this->size() (which is 0)
Aborted

How I can fix it?

@skmp
Copy link
Owner

skmp commented May 25, 2020

Peculiar error. Can you get us a backtrace w/ GDB?

@chanleyuu
Copy link

I've been having a similar problem here's the backtrace I got

#0 0x00007ffff7732641 in raise () from /lib64/libc.so.6
#1 0x00007ffff771b538 in abort () from /lib64/libc.so.6
#2 0x00007ffff7b30876 in ?? () from /usr/lib64/libstdc++.so.6
#3 0x00007ffff7b3c0ec in ?? () from /usr/lib64/libstdc++.so.6
#4 0x00007ffff7b3c157 in std::terminate() () from /usr/lib64/libstdc++.so.6
#5 0x00007ffff7b3c409 in __cxa_throw () from /usr/lib64/libstdc++.so.6
#6 0x00007ffff7b3331f in ?? () from /usr/lib64/libstdc++.so.6
#7 0x000000000054f33f in std::string::_M_check (__s=0x119af64 "basic_string::substr", __pos=,
this=0x7fffffffda00) at /usr/include/c++/10/ext/atomicity.h:84
#8 std::string::substr (__n=18446744073709551615, __pos=, this=0x7fffffffda00)
at /usr/include/c++/10/bits/basic_string.h:5736
#9 gui_welcome (font64=0x1c3d7b0)
at /home/aquadoff/Desktop/reicast-emulator-r20.04/reicast/linux/../../libswirl/gui/gui_welcome.cpp:68
#10 0x0000000000545e24 in GUIRenderer_impl::tryUIFrame (this=0x1c01970) at /usr/include/c++/10/bits/unique_ptr.h:421
#11 GUIRenderer_impl::UIFrame (this=0x1c01970)
at /home/aquadoff/Desktop/reicast-emulator-r20.04/reicast/linux/../../libswirl/gui/gui_renderer.cpp:497
#12 0x0000000000545721 in GUIRenderer_impl::UILoop (this=)
at /home/aquadoff/Desktop/reicast-emulator-r20.04/reicast/linux/../../libswirl/gui/gui_renderer.cpp:575
#13 GUIRenderer_impl::UILoop (this=0x1c01970)
at /home/aquadoff/Desktop/reicast-emulator-r20.04/reicast/linux/../../libswirl/gui/gui_renderer.cpp:565
#14 0x0000000000411f23 in main (argc=1, argv=0x7fffffffdc48)
at /home/aquadoff/Desktop/reicast-emulator-r20.04/reicast/linux/../../libswirl/linux-dist/main.cpp:456

@skah-6
Copy link

skah-6 commented Feb 11, 2021

As i understand, you are using a device with relatively limited capabilities, so you did not installed "git", and downloaded an archive file generated by the "Github" website directly via HTTP. ("Code", then "Download" buttons from the web interface.)

But you needed the "git" program while having downloaded the sources with it, because the build process retrieve the version string with the "git" program, and the "git" program retrieve it from the files generated while downloading trough it. These are missing requirements not mentioned in the "README.md" to the Linux building process.

I guess that when you start Reicast, the "substr" function call require at least one character, and Reicast can not find any version related acceptable string, so it return:
__pos (which is 1) > this->size() (which is 0)

Size is 0. So it can't launch just because of one missing char related to the version string.

This thing can be located at STDOUT, at the very beginning of the "make" process under Linux... but everything could seem fine since the program can be compiled anyway.

As a workaround you can modify, properly, those lines from the "libswirl/core.mk" file:

$(VERSION_HEADER):
	echo "#define REICAST_VERSION \"`git describe --tags --always`\"" > $(VERSION_HEADER)
	echo "#define GIT_HASH \"`git rev-parse --short HEAD`\"" >> $(VERSION_HEADER)
	echo "#define BUILD_DATE \"`date '+%Y-%m-%d %H:%M:%S %Z'`\"" >> $(VERSION_HEADER)

to:

$(VERSION_HEADER):
	echo "#define REICAST_VERSION \"MyVersion\"" > $(VERSION_HEADER)
	echo "#define GIT_HASH \"aaaaaaaa\"" >> $(VERSION_HEADER)
	echo "#define BUILD_DATE \"`date '+%Y-%m-%d %H:%M:%S %Z'`\"" >> $(VERSION_HEADER)

I just modified the 2 lines from the middle.

I believe the leader of the project will agree to update this...

Thanks to him for every hours i spent on "De La Jet Set Radio"!
But i don't like the WEBUI for security reasons and minimalism principles.

Hi guys, my system is a tv box with s905x cpu and 2 gb ram. I've installed armbian64 bionic 5.7.0 and everything work fine. I've installed reicast latest version from source but when I launch ./reicast.elf it print the following error:

Personality: 00000000
Updated personality: 00000000
Linux paging: 4096 00001000 00000FFF

Config dir is: /home/pepito/.config/reicast/
Data dir is: /home/pepito/.local/share/reicast/
GLX: Found 12 matching FB configs.
GLX: Chosen visual ID = 0x21
Screen DPI is 96, size 0 x 0. Scaling by 1.00
CreateContext
GLX: Open GL 4.3 not supported
GLX: init OK
OpenGL version: 3.1 Mesa 19.2.8
CreateContext Done
CreateFontsTexture
terminate called after throwing an instance of 'std::out_of_range'
what(): basic_string::substr: __pos (which is 1) > this->size() (which is 0)
Aborted

How I can fix it?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants