Skip to content

[Client] Mobile - #21

Draft
MaatheusGois wants to merge 167 commits into
GregHib:mainfrom
MaatheusGois:main
Draft

[Client] Mobile#21
MaatheusGois wants to merge 167 commits into
GregHib:mainfrom
MaatheusGois:main

Conversation

@MaatheusGois

@MaatheusGois MaatheusGois commented Aug 23, 2026

Copy link
Copy Markdown

Test the android app: https://github.com/MaatheusGois/void-client-mobile/blob/main/resources/app-debug.apk

Android.x.iOS.mp4
ps4_control.mp4
Adaptative_Chat.mp4
DEFAULT_CLICK.mp4
Apple_TV.mp4
Joystick_shortcut.mp4

Read more: https://github.com/MaatheusGois/void-client-mobile/blob/main/ARCHITECTURE.md

MaatheusGois and others added 6 commits August 23, 2026 03:20
Scaffold an Android Gradle app that hosts the desktop client via software rendering, stubbed native libraries, and a voidawt compatibility layer.

Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the client filling the phone, wire touch/keyboard, and add a RoboVM host so the 634 client can boot on iOS.

Co-authored-by: Cursor <cursoragent@cursor.com>
Stop the keyboard from resizing the game surface, and hide system bars so the viewport stays full-screen.

Co-authored-by: Cursor <cursoragent@cursor.com>
Replace silent javax.sound stubs with ByteRing + AudioTrack (Android) and AudioQueue (iOS) so the 634 mixer can play music/SFX; document the path in ARCHITECTURE.

Co-authored-by: Cursor <cursoragent@cursor.com>
@MaatheusGois
MaatheusGois marked this pull request as draft August 23, 2026 18:43
MaatheusGois and others added 23 commits August 23, 2026 16:47
Detect UI presses that need typing (key listeners / login text widgets), hide the keyboard FAB, and bridge through AwtHost so the system IME opens without a floating button.

Co-authored-by: Cursor <cursoragent@cursor.com>
Expand the READMEs with server prerequisites, install/launch commands, adb reverse, arm64 JDK notes for Simulator, and updated touch/keyboard controls.

Co-authored-by: Cursor <cursoragent@cursor.com>
Document desktop/Android/iOS from void-client only: how to launch and how to point each client at the game server IP, without monorepo server targets.

Co-authored-by: Cursor <cursoragent@cursor.com>
Wire launcher mipmaps / adaptive icons and iOS AppIcon assets from the branding 1024px source so both mobile clients show the Void mark on the home screen.

Co-authored-by: Cursor <cursoragent@cursor.com>
Ignore transient SurfaceView shrinks from system-bar flashes and re-apply the last stable size on resume/focus so the game does not stick at roughly half size.

Co-authored-by: Cursor <cursoragent@cursor.com>
Opens/closes the console without relying on the ` key, shows the soft keyboard after open, and dismisses the IME early on multi-touch so close gestures can finish.

Co-authored-by: Cursor <cursoragent@cursor.com>
Desktop keeps the classic 350px band; Android/iOS use 175px so the purple overlay covers less of the game.

Co-authored-by: Cursor <cursoragent@cursor.com>
Phones have no desktop pointer, so joystick aim needs a drawn sprite instead of the old crosshair.

Co-authored-by: Cursor <cursoragent@cursor.com>
The arrow stayed on screen after DualShock unplug because padActive never cleared.

Co-authored-by: Cursor <cursoragent@cursor.com>
Open IME only on real text fields, lift the chatbox above the keyboard without resizing the canvas, persist server hosts, harden Android FS present/resume, switch iOS fonts to CoreText, and document the physical-device workflow.

Co-authored-by: Cursor <cursoragent@cursor.com>
UIRequiresFullScreen is off so Stage Manager / Split View can resize the game window.

Co-authored-by: Cursor <cursoragent@cursor.com>
…ve the IME.

Co-authored-by: Cursor <cursoragent@cursor.com>
…io focus.

Declare all iPad orientations and drop UIRequiresFullScreen so Stage Manager can resize; settle display size after 3s idle. MixWithOthers keeps PiP/other audio alive, and iOS login lift gets extra IME padding.

Co-authored-by: Cursor <cursoragent@cursor.com>
Added a new asset link to the README.
Persist preferred NPC/object/item actions for tap, auto-login with saved
creds, and DualShock/Xbox mapping on iOS to match Android.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Avoid JAWT Finalizer crashes and noisy ha_Sub2 probe failures by forcing
the pure-Java software renderer during Auto Setup and toolkit switches.

Co-authored-by: Cursor <cursoragent@cursor.com>
Skip toolkit benchmark on mac but still dismiss the Auto Setup overlay
so pending login can proceed without a manual click.

Co-authored-by: Cursor <cursoragent@cursor.com>
Ports a Microbot-shaped bot layer into src-microbot (Rs2* facades, combat script, VirtualMouse) plus clarifying 634 renames and a clickable canvas panel for combat/pause toggles.

Co-authored-by: Cursor <cursoragent@cursor.com>
Rename Class373/Class324 (and backends) to MouseHandler/BitmapFont*,
expose clear draw/input helpers, and organize Void/Microbot/Rs2 files
into sibling Gradle source roots while staying in the default package.

Co-authored-by: Cursor <cursoragent@cursor.com>
Gives packet Buffer / shaders / caches readable names, resolves the jaclib.memory.Buffer clash in s_Sub3, and replaces Microbot lambdas/BooleanSupplier so device builds can AOT.

Co-authored-by: Cursor <cursoragent@cursor.com>
- Update client/editor/SceneEditorUi.java
# Conflicts:
#	build/reports/problems/problems-report.html
#	client/build/tmp/compileJava/previous-compilation-data.bin
#	client/components/Component197.java
#	client/components/Component2.java
#	client/components/Component212.java
#	client/components/Component251.java
#	client/components/Component289.java
#	client/components/Component349.java
#	client/components/Component366.java
#	client/components/ObjectDefinition.java
#	client/components/ObjectDefinitionProvider.java
#	client/defs/DefinitionSub21.java
#	client/media/video/JagTheoraDecoder.java
#	client/misc/DisplayModeManagerContainer229.java
#	client/misc/DisplayModeManagerContainer74.java
#	client/misc/DisplayModeManagerContainer96.java
#	client/misc/GameType.java
#	client/net/packet/PacketReader.java
#	client/net/socket/InputStream_Sub2.java
#	client/net/socket/OutputStream_Sub2.java
#	client/nodes/HashTable.java
#	client/nodes/NodeSub14.java
#	client/nodes/NodeSub41.java
#	client/rs2/Rs2GameObject.java
#	client/scene/graph/RenderableSub2.java
#	client/script/ClientScriptExecutor.java
#	client/text/ColoredText.java
@stevefan1999-personal

stevefan1999-personal commented Sep 8, 2026

Copy link
Copy Markdown

While I agree on the results and money and time and the effort to program the LLM, I disagree with the process it is taken. The code is really too big to review and needs to be chunked down, and plus it is still not deobfuscated at all.

By deobfuscation I means we can fully recover its original control flow and simplifying it to the shortest possible code, and since the code is heavily wrapped around, I believe we even need some high level control flow reconstruction as a code lift (in the likes of LLVM or Cranelift).

Then we simplify the final SSA and recover the obfuscated code in that way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants