[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-106586":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":12,"stars7d":15,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":16,"compositeScore":17,"rankGlobal":8,"rankLanguage":8,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":8,"pushedAt":23,"updatedAt":24,"readmeContent":25,"aiSummary":8,"trendingCount":14,"starSnapshotCount":14,"syncStatus":11,"lastSyncTime":26,"discoverSource":27},106586,"StrikeHDCollection","Icedomega13\u002FStrikeHDCollection","Icedomega13",null,"C",55,2,1,16,0,3,5,42.23,"Other",false,"main",true,[],"2026-10-30 14:57:20","2026-11-02 17:01:10","# Strike Remastered Collection HD\n\nNative PC versions of the three Sega Genesis Strike games: *Desert Strike: Return to the Gulf* (1992), *Jungle Strike* (1993) and *Urban Strike* (1994). They are static recompilations, with modern features added:\n\n- **The original game code, recompiled to C.** It is verified instruction-exact against a reference 68000 emulator (the Musashi core) in lockstep tests. Sound is the real YM2612\u002FPSG hardware, emulated with ymfm.\n- **Widescreen**: 16:10, 16:9, 21:9 and 32:9, plus \"Match window\". The battlefield is drawn from each game's own map data beyond the console's 512-pixel limit. Menus, maps and cutscenes stay 4:3.\n- **HD graphics packs**, with a one-click builder. The game extracts its own graphics, upscales them 4× with xBRZ (keeping dithered textures crisp), and loads the result.\n- **Status HUD**: armor, fuel, load, lives and ammo.\n- **Minimap and status HUD**: each in any corner and at any size. The minimap is the pause map, live, with the objectives (and, optionally, nearby enemy guns); LB \u002F RB (Q \u002F E) step through them like the pause menu.\n- **Pause menu**: save\u002Fload slots with thumbnails, full keyboard and gamepad rebinding, display, picture, audio and system settings.\n- **Cheats**: god mode, unlimited fuel, ammo and lives, campaign select.\n- **Rewind** (hold the left trigger), **autosave** on mission start and each completed objective, **gamepad rumble**, and **career stats**.\n- **Game Speed**: Smooth (no slowdown) or Original (the console's slowdown).\n- **Difficulty (prototype, Desert Strike)**: chosen on New Game. *Remastered* keeps the full speed and every bullet on screen but rebalances the damage (bullets sting less than missiles, and a crossfire can't empty your armour in an instant); *Recruit* is gentler; *Original* is the Genesis as shipped, slowdown included. See `docs\u002F14-difficulty.md`.\n- **Launcher**: the games' intros play live behind a gamepad-friendly game picker, and a Continue \u002F Load Game \u002F New Game screen picks up where you left off.\n- **Amiga edition for Desert Strike (work in progress)**: add your own Amiga Desert Strike disks and the game can use the Amiga's sound effects (weapons, rotor that follows your speed, rescue calls, voice lines), its ProTracker music, its title photos, and its cutscenes, including the animated ones, which run as the original Amiga programs in a small built-in Amiga emulator. Pick Genesis, Amiga or a mix under Settings → Audio → Edition. The mapping of sounds is still being tuned; the **Sound Lab** and `tools\u002Famiga\u002Fsound_labeler.html` let you choose your own.\n- **Installer**: Inno Setup, with a ROM page that checks your dumps.\n\n**No game data is included.** You need your own ROM dumps. They are checked by SHA-1:\n\n| Game | SHA-1 (USA\u002FEurope) |\n|---|---|\n| Desert Strike: Return to the Gulf | `d7e7d8c358eb845b84fb08f904cc0b95d0a4053d` |\n| Jungle Strike | `7a7568e39341b1bb218280ee05c2b37c273317b5` |\n| Urban Strike | `897a8f6a08d6d7d6e5316f8047532b3e4603e705` |\n\nThe recompiled C (`generated\u002F`) is produced from your ROM on your machine and is not part of this repository.\n\n## Screenshots\n| | |\n|---|---|\n| ![Widescreen gameplay](docs\u002Fscreenshots\u002Fgameplay-widescreen.png) | ![A strike on an air base](docs\u002Fscreenshots\u002Fgameplay-airfield.png) |\n| ![Hellfire strike](docs\u002Fscreenshots\u002Fgameplay-strike.png) | ![Campaign briefing with the Amiga briefing room](docs\u002Fscreenshots\u002Fbriefing-amiga-room.png) |\n| ![Amiga cutscene: the frigate](docs\u002Fscreenshots\u002Fcutscene-amiga-frigate.png) | ![Amiga cutscene: the refinery](docs\u002Fscreenshots\u002Fcutscene-amiga-refinery.png) |\n| ![Amiga cutscene: game over](docs\u002Fscreenshots\u002Fcutscene-amiga-game-over.png) | ![Amiga cutscene: the ending](docs\u002Fscreenshots\u002Fcutscene-amiga-ending.png) |\n\nGameplay is 16:9 widescreen with the status HUD and minimap. The Amiga pictures need your own Amiga disks.\n\n## Download\nThe Windows installer and a portable zip are on the [Releases](https:\u002F\u002Fgithub.com\u002FIcedomega13\u002FStrikeHDCollection\u002Freleases) page. Both need your own ROMs.\n\n## Playing\n1. Run the installer, or `StrikeCollectionHD.exe`. Point it at your ROMs; they are copied to `%APPDATA%\\DesertStrikeHD\\DesertStrikeHD\\roms\\`.\n2. Pick a game. **Settings** on the game picker, or **Esc \u002F Back** in game, opens the menu.\n\n| Genesis | Keyboard | Gamepad |\n|---|---|---|\n| D-pad | Arrows \u002F WASD | D-pad \u002F left stick |\n| A \u002F B \u002F C | J K L or Z X C | West \u002F South \u002F East |\n| Start | Enter | Start |\n\nHost keys:\n- **F5 \u002F F7:** quick save \u002F load.\n- **F11** or **Alt+Enter:** fullscreen.\n- **Tab** or **right trigger:** fast forward.\n- **Q \u002F E** or **LB \u002F RB:** step through the objectives on the minimap.\n- **Backspace** or **left trigger** (hold): rewind.\n- **Left Shift** or **Y** (hold): strafe, Desert Strike's hold-A sidestep, without firing a Hellfire. Press A while strafing to fire a Hellfire and keep strafing. The right stick strafes too (left or right). **Strafe Speed** (Settings > System) can make the sidestep 1.5x or 2x faster.\n- **M**, or hold **Esc \u002F Back**: show or hide the minimap.\n- **Esc** or **Back:** pause menu.\n\nEverything can be rebound under **Controls**.\n\n**Amiga edition:** Settings → Audio → **Add Amiga Disks**, and choose your Amiga *Desert Strike* `.adf` files (they are copied to `%APPDATA%\\DesertStrikeHD\\DesertStrikeHD\\amiga\\`). Nothing from the Amiga version is included. See `docs\u002F13-amiga-ultimate.md`.\n\n**HD graphics:** Settings → System → **Build HD Pack**, once per game. It takes a few minutes. See `docs\u002F09-hd-packs.md`.\nOn Linux, choose the rendering backend in Settings → Display → **Renderer (restart)**. OpenGL (GPU) is the default; enable **Show FPS** to see the active SDL renderer. Software rendering remains available as a fallback.\n\n## Building\n### Linux (Ubuntu\u002FDebian)\n\nInstall the compiler, CMake, SDL3 development files, and Python tooling:\n\n```sh\nsudo apt update\nsudo apt install build-essential cmake python3 python3-venv python3-pip libsdl3-dev\n```\n\nCreate a virtual environment for the ROM analysis tools and install their Python dependencies:\n\n```sh\npython3 -m venv .venv\n. .venv\u002Fbin\u002Factivate\npython -m pip install --upgrade pip\npython -m pip install capstone pillow\n```\n\nPlace your own supported ROM dumps in `rom\u002F` as `desert_strike.bin`, `jungle_strike.bin` and `urban_strike.bin`. Then generate each game's C source and build the launcher:\n\n```sh\npython tools\u002Ftrace.py --game desert\npython tools\u002Frecomp.py --game desert\npython tools\u002Ftrace.py --game jungle\npython tools\u002Frecomp.py --game jungle\npython tools\u002Ftrace.py --game urban\npython tools\u002Frecomp.py --game urban\n\ncmake -S . -B build -DDS_SYSTEM_SDL=ON -DDS_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release\ncmake --build build --parallel\n```\n\nThe executable is `build\u002FStrikeCollectionHD`; the HD pack upscaler is `build\u002Fhdpack_xbrz`. `DS_SYSTEM_SDL=ON` uses the installed SDL3 package. To let CMake fetch and build SDL3 instead, omit that option; this requires network access during configuration and SDL's Linux development dependencies.\n\nThe generated game sources are derived from the ROMs and are not committed. Keep the Python virtual environment active when running the trace and recompilation tools.\n\n### Windows\n\nRequirements:\n- Python 3.10+ with `capstone` and `pillow`;\n- CMake 3.16+;\n- a C\u002FC++17 compiler (Visual Studio 2022, MinGW\u002Fllvm-mingw, gcc or clang).\n\n```\ncopy \"\u003Cyour roms>\" rom\\desert_strike.bin, rom\\jungle_strike.bin, rom\\urban_strike.bin\npython tools\u002Ftrace.py  --game desert   (and jungle, urban)\npython tools\u002Frecomp.py --game desert   (and jungle, urban)\ncmake -S . -B build\ncmake --build build --config Release\n```\n\n- CMake downloads SDL3 if `third_party\u002FSDL3` is missing.\n- Outputs:\n  - `StrikeCollectionHD`: the game.\n  - `hdpack_xbrz`: the HD pack upscaler.\n  - `ds_test` and `ds_ref` (with `-DDS_BUILD_TESTS=ON`): the headless recompiled build and the Musashi reference.\n- **Cross-compiling for Windows from Linux:** add `-DCMAKE_TOOLCHAIN_FILE=cmake\u002Fmingw-w64-x86_64.cmake -DMINGW_ROOT=\u003Cllvm-mingw>`.\n- **Installer:** install Inno Setup 6, put the built programs in `dist\\`, then run `installer\\build_installer.bat`.\n\n## Testing\n```\ntools\u002Flockstep_suite.sh build      # every game and scenario, recompiled vs Musashi, frame by frame\n```\nFor headless runs of the game: `StrikeCollectionHD \u003Crom> --frames N --inputs file --shot-every N dir`. To extract graphics for all games: `--extract`.\n\n## Layout\n```\ngames\u002F\u003Cid>\u002F        per-game config (game.json, hints.json: jump tables, patches) and module\ngames\u002Fstrike_*     shared Strike-engine code: playfield test, ultrawide map painter, HUD, cheats\nsrc\u002Fhw\u002F            Genesis hardware: bus, VDP + renderer (incl. HD compose), Z80, YM2612, PSG\nsrc\u002Fruntime\u002F       CPU state, dispatch, interrupts, frame stepping, test runner\nsrc\u002Fhost\u002F          SDL3 program: launcher, menus, input, settings, HD packs, extractor\ntools\u002F             tracer, recompiler, lockstep tools, xBRZ pack tool, helpers\nharness\u002F           Musashi reference runner + input scripts\ninstaller\u002F         Inno Setup script\ndocs\u002F              design notes and findings (start with docs\u002FHANDOFF.md)\n```\n\n## How it was made\nThis project was developed with heavy use of AI: the reverse engineering, recompiler, PC host and features were written by Anthropic's Claude, working with the project's maintainer, who directs, tests and plays it. The recompiled code is checked instruction for instruction against an independent 68000 emulator (see Testing), so the games run exactly as on the console.\n\n## License\nThe project's own code is under the MIT license (`LICENSE`). Third-party components keep their own licenses (below).\n\n## Third-party\n- Musashi 68000 core (MIT): the lockstep reference, and the CPU of the built-in Amiga that runs the Amiga cutscene programs.\n- ymfm (BSD-3, Aaron Giles).\n- z80 by Nicolas Allemand (MIT; one local fix: `BIT n,(HL)` no longer writes back).\n- SDL3 (zlib).\n- stb_image, stb_image_write, stb_truetype (public domain \u002F MIT).\n- Chakra Petch font (SIL OFL 1.1).\n- Capstone (BSD), used by the tools only.\n- xBRZ (GPL-3, Zenju). It is used only in the separate `hdpack_xbrz` tool; see `tools\u002Fxbrz\u002FLicense.txt`.\n\n*Desert Strike*, *Jungle Strike* and *Urban Strike* are trademarks of Electronic Arts. This is an unofficial fan project, not affiliated with or endorsed by EA or Sega.\n","2026-11-03 04:32:24","CREATED_QUERY"]