EMBUSCADE 1.2.1 — BROWSER PORT This build executes the original application's compiled Java classes from Embuscade-v1_2_1.apk, converted from DEX using dex2jar 2.4 and compiled to JavaScript with TeaVM 0.16.0. It does not use the previous recreated JS engine. All 62 recovered application class files are retained without edits, including MainActivity, MainView, MainThread, gameplay, menus, graphics, achievements, settings and saving. Source hashes are in src/embuscade/original-bytecode-manifest.json. The Android compatibility code in src/embuscade implements the APIs used by this game: Canvas/Bitmap/Paint, touch events, fonts, audio, resource loading, app-private files and scheduling. The original drawing routines determine the game's appearance. Original fonts, images, level files and all sounds are used. Two malformed font character tables are re-encoded for browser compatibility; their glyph outlines are unchanged. Browser and Android rasterization can differ. Original tutorial/challenge progression, menu behavior, language selection, nine colors, skin unlocks, secret skin, saved game and score files are retained. The original timed mode is level 10, reached through normal progression. Browser changes: - One Play click satisfies browser audio requirements. - The original portrait viewport is 540 x 960, scaled to fit the browser. - Mouse/touch gestures are delivered to the original swipe detector. - Arrow keys, WASD/ZQSD and Space synthesize swipe/tap gestures. - Pause, hidden-tab suspension and fullscreen are browser controls. - Original app-private files persist in localStorage under embuscade-original:. - Website links open a separate tab. - No Android OS installation, server-side emulator or external CDN is required. The old recreation is archived outside the upload tree in originals/superseded-embuscade-recreation and is not part of this release. Original game and assets: NiCobra / Maniacobra. TeaVM runtime: Apache License 2.0; see ../licenses/teavm-LICENSE.txt.