From 64196bd5e79fb04bbad9ffe3ed6d9b623fa85a15 Mon Sep 17 00:00:00 2001 From: Shinovon Date: Tue, 11 Nov 2025 19:10:30 +0500 Subject: [PATCH 1/3] Symbian: fix build config after recent changes --- misc/symbian/ClassiCube_s60v3.mmp | 3 +-- misc/symbian/ClassiCube_s60v5.mmp | 2 +- misc/symbian/common.mmh | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/misc/symbian/ClassiCube_s60v3.mmp b/misc/symbian/ClassiCube_s60v3.mmp index cbe01af95..6cd0b3f52 100644 --- a/misc/symbian/ClassiCube_s60v3.mmp +++ b/misc/symbian/ClassiCube_s60v3.mmp @@ -2,8 +2,7 @@ TARGET ClassiCube_s60v3.exe MACRO CC_BUILD_SYMBIAN_S60V3 MACRO CC_GFX_BACKEND=CC_GFX_BACKEND_GL1 -MACRO CC_DISABLE_ANIMATIONS -MACRO CC_DISABLE_HELDBLOCK +MACRO CC_BUILD_FPU_MODE=CC_FPU_MODE_MINIMAL ARMFPU softvfp diff --git a/misc/symbian/ClassiCube_s60v5.mmp b/misc/symbian/ClassiCube_s60v5.mmp index 9362153bf..730300bbf 100644 --- a/misc/symbian/ClassiCube_s60v5.mmp +++ b/misc/symbian/ClassiCube_s60v5.mmp @@ -2,7 +2,7 @@ TARGET ClassiCube_s60v5.exe MACRO CC_BUILD_SYMBIAN_S60V5 MACRO CC_GFX_BACKEND=CC_GFX_BACKEND_GL1 -MACRO CC_DISABLE_ANIMATIONS +MACRO CC_BUILD_FPU_MODE=CC_FPU_MODE_MINIMAL ARMFPU softvfp diff --git a/misc/symbian/common.mmh b/misc/symbian/common.mmh index 6eb175c40..33885a733 100644 --- a/misc/symbian/common.mmh +++ b/misc/symbian/common.mmh @@ -15,7 +15,7 @@ SYSTEMINCLUDE . USERINCLUDE ../../third_party/bearssl #ifdef ARMCC -OPTION ARMCC -Otime --diag_suppress 1296 --diag_suppress 1293 --diag_suppress 66 +OPTION ARMCC -Otime --diag_suppress 1296,1293,66,61 #ifndef ARMV5 OPTION_REPLACE ARMCC --cpu 6 OPTION_REPLACE ARMCC --fpu softvfp+vfpv2 --fpmode fast From b79e19e9015072fd422ac86e0182eb3467889ba5 Mon Sep 17 00:00:00 2001 From: Shinovon Date: Tue, 11 Nov 2025 19:11:11 +0500 Subject: [PATCH 2/3] Symbian: default key mappings --- src/symbian/Window_Symbian.cpp | 118 +++++++++++++++++++++------------ 1 file changed, 77 insertions(+), 41 deletions(-) diff --git a/src/symbian/Window_Symbian.cpp b/src/symbian/Window_Symbian.cpp index b95b3e204..7093cd5c9 100644 --- a/src/symbian/Window_Symbian.cpp +++ b/src/symbian/Window_Symbian.cpp @@ -18,7 +18,8 @@ #include #include #include - +#include +#include extern "C" { #include #include @@ -46,45 +47,54 @@ const TUid KUidClassiCube = {0xE212A5C2}; static CCContainer* container; -static const BindMapping symbian_binds[BIND_COUNT] = { - { CCKEY_UP, 0 }, // BIND_FORWARD - { CCKEY_DOWN, 0 }, // BIND_BACKWARDS - { CCKEY_LEFT, 0 }, // BIND_LEFT - { CCKEY_RIGHT, 0 }, // BIND_RIGHT - { CCKEY_SPACE, 0 }, // BIND_JUMP - { 'R', 0 }, // BIND_RESPAWN - { CCKEY_ENTER, 0 }, // BIND_SET_SPAWN - { 'T', 0 }, // BIND_CHAT - { 'B', 0 }, // BIND_INVENTORY - { 'F', 0 }, // BIND_FOG - { CCKEY_ENTER, 0 }, // BIND_SEND_CHAT - { CCKEY_TAB, 0 }, // BIND_TABLIST - { '7', 0 }, // BIND_SPEED - { '8', 0 }, // BIND_NOCLIP - { '9', 0 }, // BIND_FLY - { CCKEY_Q, 0 }, // BIND_FLY_UP - { CCKEY_E, 0 }, // BIND_FLY_DOWN - { CCKEY_LALT, 0 }, // BIND_EXT_INPUT - { 0, 0 }, // BIND_HIDE_FPS - { CCKEY_F12, 0 }, // BIND_SCREENSHOT - { 0, 0 }, // BIND_FULLSCREEN - { CCKEY_F5, 0 }, // BIND_THIRD_PERSON - { 0, 0 }, // BIND_HIDE_GUI - { CCKEY_F7, 0 }, // BIND_AXIS_LINES - { 'C', 0 }, // BIND_ZOOM_SCROLL - { CCKEY_LCTRL, 0 },// BIND_HALF_SPEED - { '4', 0 }, // BIND_DELETE_BLOCK - { '5', 0 }, // BIND_PICK_BLOCK - { '6', 0 }, // BIND_PLACE_BLOCK - - { 0, 0 }, { 0, 0 }, /* BIND_AUTOROTATE, BIND_HOTBAR_SWITCH */ - { 0, 0 }, { 0, 0 }, /* BIND_SMOOTH_CAMERA, BIND_DROP_BLOCK */ - { 0, 0 }, { 0, 0 }, /* BIND_IDOVERLAY, BIND_BREAK_LIQUIDS */ - { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, /* BIND_LOOK_UP, BIND_LOOK_DOWN, BIND_LOOK_RIGHT, BIND_LOOK_LEFT */ - { 0, 0 }, { 0, 0 }, { 0, 0 }, /* BIND_HOTBAR_1, BIND_HOTBAR_2, BIND_HOTBAR_3 */ - { 0, 0 }, { 0, 0 }, { 0, 0 }, /* BIND_HOTBAR_4, BIND_HOTBAR_5, BIND_HOTBAR_6 */ - { 0, 0 }, { 0, 0 }, { 0, 0 }, /* BIND_HOTBAR_7, BIND_HOTBAR_8, BIND_HOTBAR_9 */ - { '1', 0 }, { '3', 0 } /* BIND_HOTBAR_LEFT, BIND_HOTBAR_RIGHT */ +// 12 keys +const BindMapping symbian_binds_12[BIND_COUNT] = { + { '2', 0 }, { '8', 0 }, { '4', 0 }, { '6', 0 }, /* BIND_FORWARD - BIND_RIGHT */ + { CCKEY_ENTER, 0 }, { '3', 0 }, /* BIND_JUMP, BIND_RESPAWN */ + { 0, 0 }, { 0, 0 }, /* BIND_SET_SPAWN, BIND_CHAT */ + { '1', 0 }, { 0, 0 }, /* BIND_INVENTORY, BIND_FOG */ + { 0, 0 }, { 0, 0 }, /* BIND_SEND_CHAT, BIND_TABLIST */ + { 0, 0 }, { '7', 0 },{ '9', 0 }, /* BIND_SPEED, BIND_NOCLIP, BIND_FLY */ + { 0, 0 }, { '0', 0 }, /* BIND_FLY_UP, BIND_FLY_DOWN */ + { 0, 0 }, { 0, 0 }, /* BIND_EXT_INPUT, BIND_HIDE_FPS */ + { 0, 0 }, { 0, 0 }, /* BIND_SCREENSHOT, BIND_FULLSCREEN */ + { 0, 0 }, { 0, 0 }, /* BIND_THIRD_PERSON, BIND_HIDE_GUI */ + { 0, 0 }, { 0, 0 }, { 0, 0 }, /* BIND_AXIS_LINES, BIND_ZOOM_SCROLL, BIND_HALF_SPEED */ + { '5', 0 }, { 0, 0 },{ CCKEY_F1, 0}, /* BIND_DELETE_BLOCK, BIND_PICK_BLOCK, BIND_PLACE_BLOCK */ + { 0, 0 }, { 0, 0 }, /* BIND_AUTOROTATE, BIND_HOTBAR_SWITCH */ + + { 0, 0 }, { CCKEY_BACKSPACE, 0 }, /* BIND_SMOOTH_CAMERA, BIND_DROP_BLOCK */ + { 0, 0 }, { 0, 0 }, /* BIND_IDOVERLAY, BIND_BREAK_LIQUIDS */ + { CCKEY_UP, 0 }, { CCKEY_DOWN, 0 }, { CCKEY_RIGHT, 0 }, { CCKEY_LEFT, 0 }, /* BIND_LOOK_UP, BIND_LOOK_DOWN, BIND_LOOK_RIGHT, BIND_LOOK_LEFT */ + { 0, 0 }, { 0, 0 }, { 0, 0 }, /* BIND_HOTBAR_1, BIND_HOTBAR_2, BIND_HOTBAR_3 */ + { 0, 0 }, { 0, 0 }, { 0, 0 }, /* BIND_HOTBAR_4, BIND_HOTBAR_5, BIND_HOTBAR_6 */ + { 0, 0 }, { 0, 0 }, { 0, 0 }, /* BIND_HOTBAR_7, BIND_HOTBAR_8, BIND_HOTBAR_9 */ + { CCKEY_LWIN, 0 }, { CCKEY_BACKSLASH, 0 } /* BIND_HOTBAR_LEFT, BIND_HOTBAR_RIGHT */ +}; + +// QWERTY +const BindMapping symbian_binds_qwerty[BIND_COUNT] = { + { 'W', 0 }, { 'S', 0 }, { 'A', 0 }, { 'D', 0 }, /* BIND_FORWARD - BIND_RIGHT */ + { CCKEY_SPACE, 0 }, { 'I', 0 }, /* BIND_JUMP, BIND_RESPAWN */ + { 0, 0 }, { 'K', 0 }, /* BIND_SET_SPAWN, BIND_CHAT */ + { CCKEY_F1, 0 }, { 'L', 0 }, /* BIND_INVENTORY, BIND_FOG */ + { CCKEY_ENTER, 0 }, { CCKEY_TAB, 0 }, /* BIND_SEND_CHAT, BIND_TABLIST */ + { CCKEY_LSHIFT, 0 }, { 'X', 0}, { 'Z', 0 }, /* BIND_SPEED, BIND_NOCLIP, BIND_FLY */ + { 'C', 0 }, { 'D', 0 }, /* BIND_FLY_UP, BIND_FLY_DOWN */ + { CCKEY_LALT, 0 }, { 0, 0 }, /* BIND_EXT_INPUT, BIND_HIDE_FPS */ + { 0, 0 }, { 0, 0 }, /* BIND_SCREENSHOT, BIND_FULLSCREEN */ + { 0, 0 }, { 0, 0 }, /* BIND_THIRD_PERSON, BIND_HIDE_GUI */ + { 0, 0 }, { 0, 0 }, { CCKEY_LCTRL, 0 }, /* BIND_AXIS_LINES, BIND_ZOOM_SCROLL, BIND_HALF_SPEED */ + { 'E', 0 }, { 0, 0 },{ 'Q', 0}, /* BIND_DELETE_BLOCK, BIND_PICK_BLOCK, BIND_PLACE_BLOCK */ + { 0, 0 }, { 0, 0 }, /* BIND_AUTOROTATE, BIND_HOTBAR_SWITCH */ + + { 0, 0 }, { CCKEY_BACKSPACE, 0 }, /* BIND_SMOOTH_CAMERA, BIND_DROP_BLOCK */ + { 0, 0 }, { 0, 0 }, /* BIND_IDOVERLAY, BIND_BREAK_LIQUIDS */ + { CCKEY_UP, 0 }, { CCKEY_DOWN, 0 }, { CCKEY_RIGHT, 0 }, { CCKEY_LEFT, 0 }, /* BIND_LOOK_UP, BIND_LOOK_DOWN, BIND_LOOK_RIGHT, BIND_LOOK_LEFT */ + { '1', 0 }, { '2', 0 }, { '3', 0 }, /* BIND_HOTBAR_1, BIND_HOTBAR_2, BIND_HOTBAR_3 */ + { '4', 0 }, { '5', 0 }, { '6', 0 }, /* BIND_HOTBAR_4, BIND_HOTBAR_5, BIND_HOTBAR_6 */ + { '7', 0 }, { '8', 0 }, { '9', 0 }, /* BIND_HOTBAR_7, BIND_HOTBAR_8, BIND_HOTBAR_9 */ + { 'O', 0 }, { 'P', 0 } /* BIND_HOTBAR_LEFT, BIND_HOTBAR_RIGHT */ }; // Event management @@ -804,7 +814,33 @@ static void ShowDialogL(const char* title, const char* msg) { // Window implementation void Window_PreInit(void) { - //NormDevice.defaultBinds = symbian_binds; TODO only use on devices with limited hardware + TInt keyboardType = -1; + TUid categoryUid = { 0x101F876E }; // KCRUidAvkon + RProperty::Get(categoryUid, 0x0000000B /* KAknKeyBoardLayout */, keyboardType); + + switch (keyboardType) { + case 0: // ENoKeyboard + break; + case 1: // EKeyboardWith12Key, + case 5: // EHalfQWERTY + NormDevice.defaultBinds = symbian_binds_12; + break; + case 2: // EQWERTY4x12Layout + case 3: // EQWERTY4x10Layout + case 4: // EQWERTY3x11Layout + case 6: // ECustomQWERTY + NormDevice.defaultBinds = symbian_binds_qwerty; + break; + default: // unknown or platform is older than s60v3.2 + if (HAL::Get(HAL::EKeyboard, keyboardType) == KErrNone) { + if (!(keyboardType & EKeyboard_Full)) { + NormDevice.defaultBinds = symbian_binds_12; + } else { + NormDevice.defaultBinds = symbian_binds_qwerty; + } + } + break; + } } void Window_Init(void) { From 2eb4ee2302fefa5e8b4216e9ce2b42c9e12abcc5 Mon Sep 17 00:00:00 2001 From: Shinovon Date: Thu, 13 Nov 2025 17:11:36 +0500 Subject: [PATCH 3/3] Symbian: fpu mode limited instead of minimal --- misc/symbian/ClassiCube_s60v3.mmp | 2 +- misc/symbian/ClassiCube_s60v5.mmp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/misc/symbian/ClassiCube_s60v3.mmp b/misc/symbian/ClassiCube_s60v3.mmp index 6cd0b3f52..0dfc3a98a 100644 --- a/misc/symbian/ClassiCube_s60v3.mmp +++ b/misc/symbian/ClassiCube_s60v3.mmp @@ -2,7 +2,7 @@ TARGET ClassiCube_s60v3.exe MACRO CC_BUILD_SYMBIAN_S60V3 MACRO CC_GFX_BACKEND=CC_GFX_BACKEND_GL1 -MACRO CC_BUILD_FPU_MODE=CC_FPU_MODE_MINIMAL +MACRO CC_BUILD_FPU_MODE=CC_FPU_MODE_LIMITED ARMFPU softvfp diff --git a/misc/symbian/ClassiCube_s60v5.mmp b/misc/symbian/ClassiCube_s60v5.mmp index 730300bbf..015228138 100644 --- a/misc/symbian/ClassiCube_s60v5.mmp +++ b/misc/symbian/ClassiCube_s60v5.mmp @@ -2,7 +2,7 @@ TARGET ClassiCube_s60v5.exe MACRO CC_BUILD_SYMBIAN_S60V5 MACRO CC_GFX_BACKEND=CC_GFX_BACKEND_GL1 -MACRO CC_BUILD_FPU_MODE=CC_FPU_MODE_MINIMAL +MACRO CC_BUILD_FPU_MODE=CC_FPU_MODE_LIMITED ARMFPU softvfp