- MtFrameRate setting (30 / 60 default / display max) as app.Get/SetFrameRateMode,
with a "画面帧率" row injected into the system option dialog (mt_framerate); saved
in the SDL pref path.
- FrameRatePolicy in the live loop: 30 fps after 15 s without input (not while auto
hunting), display switched to 60 Hz unless the highest mode, ADPF
setPreferPowerEfficiency, vsync pacing when the display already runs at the target.
--fps-mode / --idle-fps / --idle-after; --fps-cap / --refresh-rate still pin a test run.
- Perf log: battery current/voltage/power, plugged, fps_mode, idle columns;
perf_summary groups power by mode.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Auto hunt (client-only): PythonPlayerAutoHunt.cpp + AutoHuntScript.inc as the
embedded mt_autohunt module, AUTO touch button, F9/F8.
- Account registration: tools/40250/register_server.py (rc.d mt_register, :11080)
inserts into account.account; net.RegisterAccount/GetRegisterAccountResult
(PythonAccountRegister.cpp) and the mt_register login-window dialog
(RegisterScript.inc).
- --py-exec also runs in --login-screen mode for scripted login-screen tests.
- Touch controller, window manager and render command updates for the
Android native client.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- FreeType: add the cff/psaux/pshinter modules (from the pinned 2.13.3
tarball, same sha256). Android's only CJK font is the CFF2
NotoSansCJK-Regular.ttc, which the TrueType-only build could not open,
so every Chinese glyph drew as a box.
- Font oversample rounds the UI density up: Android's 1760x800 UI on a
2376x1080 screen is 1.35, which rounded to 1x bilevel glyphs stretched
1.35x. Now 2x anti-aliased glyphs are scaled down. macOS 2.0 unchanged.
- MainActivity: a launcher start (no intent args) opens the login screen
against 192.168.21.203 instead of auto-logging into the in-process fake
server; explicit args still select the fake-server smoke flow.
- build-android-native.sh: ANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON for SDL3
and libmain (LOAD alignment 0x1000 -> 0x4000), with a stamp that
rebuilds a cached pre-flag SDL3. Clears Android's 16 KB compat warning.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
build-android-native.sh downloads SDL 3.4.16 (sha256-checked), builds
libSDL3.so and libmain.so (native_render + port_platform + embedded
Python) at API 24, and wraps them in the SDLActivity shell under
android-native/ (package org.metin2port.client). push-android-client.sh
copies the 40250 Client directory into the app's files/ with run-as
(--locale XX selects locale_XX.cfg). port_logic links with
--no-dependent-libraries on ELF targets so the verbatim
`#pragma comment(lib, ...)` lines do not break lld.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>