.m2(Track Data): Custom container. Part 0: Width (byte). Part 1: Map grid data (bytes). Part 2: Waypoint pathing data. Map width for Track 0 is 142. Tiles are rendered at 10x7 px..img(Sprite Containers): A custom binary wrapper around standard PNG data. UseparseBinary(VarInt length-prefixed parts) to extract the raw PNG bytes.coords.bin: Contains the frame metadata for all sprites. Each frame is 6 bytes:[srcX, srcY, width, height, offsetX, offsetY].game_menu.bin/ms.bin: Likely contain menu structures and mission data (not yet parsed).
- Standardized to Y-UP: The engine uses native LibGDX (0,0 is Bottom-Left).
- Sprite Mapping:
- J2ME offsets are from Top-Left.
- LibGDX_X = targetX - offsetX.
- LibGDX_Y = targetY + offsetY - height.
- Car Physics: Player car uses frames 309 to 324 (16 frames). Original code had 48 but player car specific texture
12.pngaligns with the 16-frame cycle.
class_10->GameCanvas/MenuScreen/GameScreenclass_3->GameEngine/CarsGameclass_8->SpriteManager/GameRendererclass_9->CarEntityclass_2->Settings/ConfigParser
- Create project structure (
qc.aeonis.cars) - Migrate assets to
remaster/assets/ - Set up root
build.gradleand subprojects - Initialize
PROGRESS.md
- Create base
CarsGameandDesktopLauncher - Create Screen management system (
LoadingScreen,MenuScreen,GameScreen) - Implement native LibGDX asset loading for PNGs
- Implement custom binary parser for
.m2and.binfiles - Implement initial
InputHandlerwith Keyboard + Mouse mapping - Enforce Nearest-Neighbor filtering for all textures (HD clarity)
- Reverse-engineer and implement
TrackDataloading - Reverse-engineer and implement
CarEntityphysics (ACCEL/FRICTION) - Implement
SpriteManagerwith.imgcontainer support - Implement
GameRendererfor track/car drawing - Implement rotation-to-frame mapping for cars (Fixed to 16 frames)
- Implement initial
CarAIskeleton - Implement collision detection (Track tiles & Borders)
- Implement camera follow logic
- Support landscape resolution scaling (
ExtendViewport) - Implement mouse-click car steering (Target-based rotation)
- Rebuild Menu system (
MenuScreenwithscene2d.ui) - Implement Hybrid Font System (TrueType HD default)
- Implement
SettingsScreenwith GUI Scale and Language - Implement
PauseOverlay(ESC to pause)
- Audio Engine: Convert
.midto.oggor implement MIDI synth to restore music. - Entity Placement: Parse
coords.bin/ms.binto place coins, obstacles, and enemy cars. - Story/Flow: Implement race logic (laps, countdown, finish line) and mission transitions.
- Physics Polish: Refine car handling (less "floaty") and add drift/skid effects.
- UI Refinement: Reduce HUD text size (currently too large) and add more vibrant race-day UI.
Updated on 2026-05-20 by Cdx CLI