Crazy Taxi Classic (Switch)
Crazy Taxi
TecnologíaPort Nativo C/C++ (Reimplementación de Motor)
Ver proyecto oficialSobre el proyecto
Crazy Taxi (クレイジータクシー) es el primer videojuego de la saga del mismo nombre creado por Hitmaker y distribuido por Sega. Fue lanzado en su versión arcade en 1999 y para Dreamcast en 2000, posteriormente fue versionado para las consolas PlayStation 2 y GameCube y para PC en el año 2001.
Información oficial del proyecto
A wrapper/port of the Android version of Crazy Taxi (com.sega.CrazyTaxi). It
loads the original game engine (libgl2jni.so — SEGA's "Magic" engine plus the
F2F social layer), patches it and runs it: the real Android .so runs natively
inside a minimal emulated Android environment.
This loader is based on fgsfds' max_nx and NaGaa95' ffd_nx.
How to install
You need the game files from your own legally-owned copy of the Android apk.
In the switch folder on your SD card, create a folder called crazytaxi, so
that /switch/crazytaxi/ contains:
libgl2jni.so— fromlib/arm64-v8a/in the apk.assets/— the entireassets/folder from the apk (the AFS archives, textures, shaders, font and audio; ~260 MB).crazytaxi_nx.nro— this build.
config.txt and your save data are created in /switch/crazytaxi/.
Notes
This will not work in applet/album mode. Use a game override (hold R on a title) or a forwarder, so the wrapper gets the full memory map and the code-memory syscalls it needs.
Controls (tunable)
Crazy Taxi's driving model is a gear you flip between Drive and Reverse plus a gas pedal (the same two on-screen touch buttons). This port maps that to the pad and adds analog steering on the left stick. In handheld mode the touchscreen still works directly.
| Switch | Role |
|---|---|
| Left stick | steering (drives the same left/right the D-pad does) |
| ZR | gas — accelerate in the current gear (hold) |
| ZL | gear swap — one press flips Drive ⇄ Reverse |
| A | set Reverse gear (and menu confirm) |
| B | set Drive gear (and menu back/cancel) |
| X / Y / L | engine defaults |
| + / − | START / SELECT — pause / menu |
| D-pad | steering / menu navigation |
| Touchscreen | full on-screen UI |
So normal play is ZR to go, ZL to flip into reverse, ZR again to back up;
A/B are always there as a direct Drive/Reverse override so you can't get stuck.
Steering, gas and the gear swap live in update_drive() / update_steer() in
main.c — remap there if you prefer a different layout.
config.txt:
screen_width/screen_height— render resolution;-1picks 1280×720 handheld / 1920×1080 docked.language—-1leaves the engine default.tilt_strength— left-stick → steering scale, 0–100 (default 100).target_fps— loop/step pacing (default 30). The engine's physics is per-frame and was authored for 30 fps, so running at the Switch's native 60 Hz makes the car accelerate, turn and collide at ~2×.30restores the intended feel; set60for smoother visuals if you don't mind the faster physics, or0to leave it uncapped. Values map to an EGL swap interval (60/fps).
How to build
You need devkitA64 plus the devkitPro packages:
switch-mesaswitch-libdrm_nouveauswitch-sdl2
Then make (or, on a split Git-Bash/dkp-msys2 setup, sh build.sh).
Legal
No affiliation with SEGA. "Crazy Taxi" is a trademark of its respective owner. No assets or program code from the original game are included in this project; users must supply their own legally-owned copy. Source under the MIT License (see LICENSE).