So I followed the instructions here http://wololo.net/miki/index.php/Wagic/Compiling
and the first problem I encountered was that fmod3.75 is no longer supported at fmod.org so all links to that library were broken. I was able to find the libfmod-3.75.so inside some Wiinstrument-thingy package someone was distributing.
Yes, unfortunately we still use this library. We have plans to get rid of it, but someone has to do it...
Anyway, the build system automatically detects if you have it or not now. So even without it, you can compile and run the game. The drawback is of course, you will not have any sound. On 64-bit architectures, firelight technologies just do not provide support, and they do not give accesses to the source, so we can only complain to them.
But anyway, if you don't care too much about sound, you can just skip using fmod.
oviorus wrote:When trying to compile JGE library got some error about printf not receiving a literal string inside JLogger.cpp. It seems that doing something like this is now considered a security risk
Indeed, it is. Many developers in the project use tools that do not report this error, so they do not notice and commit possibly erroneous code that will not compile on a platform with more thorough checks. When we notice them, we do fix them though ; I remember having fixed the one you mentioned a few days before the 0.12 release.
By the way, your way to fix it was right.
oviorus wrote:but even after recompiling nothing happened. Long after that I found a file mtg/bin/Res/settings/options.txt that contains some bindings but even after changing those nothing would happen.
I'm a little surprised by this :
- Binding are handled platform-by-platform, so you can't have bindings from your PSP getting in the way of your linux installation even if you copy the whole directory.
- The options.txt file does not contain any key binding in the svn - actually the file isn't even inside
So basically you having a keybindings_x in the file means you probably copied the file from another unix where you already had key bindings. And it happens the two machines do not use the same values for the keys.
This would not have happened with a fresh install - I think ; actually it raises the issue of, if you don't have the same values for X keysyms as the place the stuff was compiled, the default keys would not work. Whatever the values are, you could still rebind them however you like and it would work, but that's if you can reach the menu...
I'm not sure whether there really are places with different values for the keysyms - I never encountered one. But the possibility does exist.
Maybe we should either use extremely stable values for default keys (like, A B C - those are pretty much guaranteed to have the same values everywhere) or the symbol names instead of the numbers, which are presumably more stable and less prone to variation from one machine to another...
Anyway, I'm sorry you had that problem, and glad you could solve it
/usr/include/X11/keysymdef.h contain :
CODE: SELECT ALL
#define XK_A 0x0041 /* U+0041 LATIN CAPITAL LETTER A */
#define XK_B 0x0042 /* U+0042 LATIN CAPITAL LETTER B */
#define XK_C 0x0043 /* U+0043 LATIN CAPITAL LETTER C */
How i can translate one to another?
This cryptic line basically is a comma-separated list of "localkey:function". The first number is the local key, it is what you see in your keysymdef.h. The second one is the function in the game ; the list can be found in the source, in JGE/include/JTypes.h at line 221. Left and right trigger are 14 and 15, respectively.
So as you see 0x0041, that means 41 in hexadecimal, which is just another way of saying 4*16+1 = 65.
So if you want to change the binding for left trigger to the A key, you could search for the place where it says <some number>:14 and change the number with 65. For example, in the file you posted, you would replace 65505:14 with 65:14.
It's convoluted, but it's meant to be easy for a computer to read, not for humans, who are supposed to use the game interface