Closed shamazmazum closed 4 years ago
Steam, gog, humble, ambrosia, whatever version based on 1.1 will work. Some files were updated later but those are included in the repo. (The very first windows-only 1.0 release comes with packaged data, but this version is long obsolete.)
Crash is weird. It checks some data files directly at startup before even opening the window, so if it passes that then something else is up. Paste your debug.log plz.
Seems like a packaging issue, maybe @jbeich can help?
Do you maintain the game on Steam?
No, and i doubt it'll ever receive an update. I have no idea who maintains the steam version.
Can you tell is there any difference?
Difference between what? Don't understand the question.
Seems like a packaging issue, maybe @jbeich can help?
I've only tested game data from HIB version for Linux (see pkg-message). Still works fine here: played on FreeBSD 13.0 amd64 and within 11.3 i386 jail for a few minutes.
Some news. The game is crashing because I have ru_RU.UTF-8 locale set and override/locales/ru/data/stringbank.txt
is definitely is NOT unicode. This is something FTGL cannot handle correctly. After setting english locale I have this (white boxes follow the mouse pointer):
Sadly, I am not acquainted with legacy OpenGL, so I cannot help here. Seems like textures are not bound while rendering or something like that. BTW, I use amdgpu driver + mesa 19.0.8 + sway + SDL2
UPD:
My log:
DSQ init
Init VFS...
Done
Using autodetected system locale: C
Mipmaps Enabled
DeveloperKeys Disabled
VoiceOvers Enabled
Init Graphics Library...
setting vsync: 1
Video Driver Name [wayland]
virtual(800, 600)
virtual(800, 600)
Loading EXT_framebuffer_object (1024, 1024)
Done
OK
Init Sound Library...
Creating SoundManager
system::create
getVersion
driver caps
set speaker mode
check caps
init
Using 128 sound channels.
set file system
create channel group vox
create channel group sfx
create channel group mus
getMasterChannelGroup
createDSPByType flange
FMODEX error: 1: Unknown error code
createDSPByType reverb
FMODEX error: 1: Unknown error code
Done
Set Voice Fader
OK
Init Input Library...
OK
I have received the following letter on my email:
I use amdgpu driver + mesa 19.0.8 + sway + SDL2
SDL_VIDEODRIVER=wayland should work fine but may not respect keyboard layout set in Sway
graphics/mesa-devel can be installed (in addition to mesa-dri) to check for OpenGL driver bugs (unlikely)
My log:
Looks incomplete. After Init Input Library Aquaria should start loading game assets. Try removing ~/.Aquaria.
Strange, I do not see the same reply here. Maybe it was removed for some reason. Firstly, other games work fine, ergo SDL is fine. Secondly, I have just checked aquaria on another computer that runs X. Sadly, result is the same. Can you show me a correct log? Would be a nice starting point for searching for bugs. I still suspect game assets)
White boxes means it doesn't find textures. Pretty sure it's not a driver problem on your end; that's just what the game does. Ok, so this means some data files are found but textures are not. weird. Try compiling the code yourself and drop the resulting binary next to the windows Aquaria.exe, and don't forget to update script files with those from the repo. If that doesn't work i dunno. Bonus points if you can get me the file+line where it crashes with your locale problem.
Can you show me a correct log?
Bonus points if you can get me the file+line where it crashes with your locale problem.
I can reproduce. It crashes after intro movies in main menu. uchardet says WINDOWS-1251
but using LANG=ru_RU.CP1251
doesn't make a difference.
$ LANG=ru_RU.UTF-8 aquaria
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
Process 83687 stopped
* thread #1, name = 'aquaria', stop reason = signal SIGSEGV: invalid address (fault address: 0x1c0000031a)
frame #0: 0x0000000800a853fb libftgl.so.2`FTCharToGlyphIndexMap::find(this=0x000000080440f818, c=4294959079) at FTCharToGlyphIndexMap.h:115:21
112 }
113
114 const FTCharToGlyphIndexMap::GlyphIndex *ptr = &this->Indices[pos.quot][pos.rem];
-> 115 if(*ptr == FTCharToGlyphIndexMap::IndexNotFound)
116 {
117 return 0;
118 }
(lldb) bt
* thread #1, name = 'aquaria', stop reason = signal SIGSEGV: invalid address (fault address: 0x1c0000031a)
* frame #0: 0x0000000800a853fb libftgl.so.2`FTCharToGlyphIndexMap::find(this=0x000000080440f818, c=4294959079) at FTCharToGlyphIndexMap.h:115:21
frame #1: 0x0000000800a85136 libftgl.so.2`FTCharmap::GlyphListIndex(this=0x000000080440f800, characterCode=4294959079) at FTCharmap.cpp:86:20
frame #2: 0x0000000800a88523 libftgl.so.2`FTGlyphContainer::Glyph(this=0x0000000809374f40, charCode=4294959079) const at FTGlyphContainer.cpp:81:35
frame #3: 0x0000000800a91956 libftgl.so.2`FTFontImpl::CheckGlyph(this=0x0000000803e61100, characterCode=4294959079) at FTFont.cpp:524:19
frame #4: 0x0000000800a91e09 libftgl.so.2`FTBBox FTFontImpl::BBoxI<unsigned char>(this=0x0000000803e61100, string=", len=-1, position=FTPoint @ 0x00007fffffff41c0, spacing=FTPoint @ 0x00007fffffff41d8) at FTFont.cpp:405:16
frame #5: 0x0000000800a91523 libftgl.so.2`FTFontImpl::BBox(this=0x0000000803e61100, string=", len=-1, position=FTPoint @ 0x00007fffffff4260, spacing=FTPoint @ 0x00007fffffff4278) at FTFont.cpp:427:12
frame #6: 0x0000000800a90b27 libftgl.so.2`FTFont::BBox(this=0x000000080927e080, string=", len=-1, position=FTPoint @ 0x00007fffffff4310, spacing=FTPoint @ 0x00007fffffff4328) at FTFont.cpp:193:18
frame #7: 0x00000000006029bb aquaria`FTFont::BBox(this=0x000000080927e080, string=", llx=0x00007fffffff4650, lly=0x00007fffffff464c, llz=0x00007fffffff4648, urx=0x00007fffffff4644, ury=0x00007fffffff4640, urz=0x00007fffffff463c) at FTFont.h:254:24
frame #8: 0x0000000000601b9d aquaria`TTFText::updateFormatting(this=0x000000080a3d3f00) at TTFFont.cpp:176:16
frame #9: 0x00000000006017a4 aquaria`TTFText::setText(this=0x000000080a3d3f00, txt=" 1") at TTFFont.cpp:73:2
frame #10: 0x00000000004477a0 aquaria`Game::createInGameMenu(this=0x00000008020001c0) at Game.cpp:3603:15
frame #11: 0x000000000046869d aquaria`Game::applyState(this=0x00000008020001c0) at Game.cpp:6795:2
frame #12: 0x00000000005f856b aquaria`StateManager::pushState(this=0x00007fffffffb010, s="Game") at StateManager.cpp:220:25
frame #13: 0x00000000005f8314 aquaria`StateManager::jumpState(this=0x00007fffffffb010, state="Game") at StateManager.cpp:169:3
frame #14: 0x00000000005f8b1e aquaria`StateManager::onUpdate(this=0x00007fffffffb010, dt=0.00100000005) at StateManager.cpp:336:4
frame #15: 0x0000000000592ef3 aquaria`Core::onUpdate(this=0x00007fffffffb010, dt=0.00100000005) at Core.cpp:1737:16
frame #16: 0x00000000003f9df7 aquaria`DSQ::onUpdate(this=0x00007fffffffb010, dt=0.00100000005) at DSQ.cpp:4275:8
frame #17: 0x000000000059775a aquaria`Core::main(this=0x00007fffffffb010, runTime=-1) at Core.cpp:3112:3
frame #18: 0x00000000004a8315 aquaria`main(argc=1, argv=0x00007fffffffe100) at Main.cpp:112:18
frame #19: 0x0000000000328e0f aquaria`_start(ap=<unavailable>, cleanup=<unavailable>) at crt1_c.c:75:7
(lldb) f 7
frame #7: 0x00000000006029bb aquaria`FTFont::BBox(this=0x000000080927e080, string=", llx=0x00007fffffff4650, lly=0x00007fffffff464c, llz=0x00007fffffff4648, urx=0x00007fffffff4644, ury=0x00007fffffff4640, urz=0x00007fffffff463c) at FTFont.h:254:24
251 void BBox(const char* string, float& llx, float& lly, float& llz,
252 float& urx, float& ury, float& urz)
253 {
-> 254 FTBBox b = BBox(string);
255 llx = b.Lower().Xf(); lly = b.Lower().Yf(); llz = b.Lower().Zf();
256 urx = b.Upper().Xf(); ury = b.Upper().Yf(); urz = b.Upper().Zf();
257 }
Hurra, it works! The game is not fool-proof enough. I thought I need only data
directory from the original game and skipped gfx
, vox
etc. Hence the absence of textures. I fixed that and also removed override/locales
to avoid crashes.
Thanks for helping me. Also do you thing re-encoding translations to UTF-8 is a good idea? I think UTF-8 is now mainstream on UNIX-like OSes, but Windows is stuck somewhere in y2k regarding unicode support. Also I don't know if FTGL has a support for Unicode.
Aquaria does not understand utf-8 at all. Don't do it.
Neither the game itself does (path handling just happens to work, or not, i have no idea), nor the external libs (fonts, most notably).
The game is not fool-proof enough. I thought I need only data directory from the original game and skipped gfx, vox etc.
Duh. Ok, will improve the README for the next version update (still got a few things to merge first)...
Aquaria does not understand utf-8 at all. Don't do it.
That's bad, but not critical. OK, I close the issue as the problem is solved. Thanks!
Hello. Can I or can I not use data files downloaded from Steam with these sources? I have installed the game from FreeBSD port (version 1.002.22). The game starts and crashes after a few seconds (showing some startup cinematic). I suspect that the assets are from another version.
Do you maintain the game on Steam? Can you tell is there any difference?