PORTCLUB
Port nativo

HyperBlade

Port nativo de HyperBlade para PC.

HyperBlade

Port nativo basado en su ficha de origen.

README del repositorio

hyperblade-20XX

HyperBlade (1996), rebuilt and improved for modern systems. Built on top of hyperblade-decomp.

You need your own copy of the game. Not affiliated with Activision or WizBang! Software Productions.

Features

  • Drops into any HyperBlade install: v1.0.0.0, v1.0.0.1, with or without the Voodoo2 launcher
  • 64-bit Windows and Linux builds
  • New hardware renderer with realtime soft shadows, smooth shading and a light on the rok, or the original software renderer
  • Widescreen, HUD and menu scaling, and an uncapped frame rate over the 30 Hz simulation
  • Xbox, PlayStation and Switch controllers
  • Music from local rips instead of the CD
  • Fixed AI plans, so AI carriers pass and shoot (docs/plan_bugs.md)
  • Goalie control: G or left shoulder sends your goalie after the rok and back
  • Bot spectator mode: -b, or Tab for the side view
  • Lifetime stats for dromers and teams, saved beside the executable
  • Debug menu on F2, with every cheat and a switch for each new feature
  • The original's menu bar and dialogs, rebuilt, plus a model viewer, sound player and image browser
  • Skippable intro, and many bug and crash fixes

TODO

  • Update menus to support controller button re-binding
  • Play-test the Linux build, which builds and passes its tests but has not been run on a desktop
  • Mac and browser builds via Emscripten
  • Net and local multiplayer
  • AI balance fixes
  • The original RC, debug and plan menus in the debug menu

Install

Download hyperblade_20XX.zip for Windows, or hyperblade_20XX-linux.tar.gz for Linux, from Releases and unpack it into your HyperBlade folder, beside HYPERX.EXE. Then run hyperblade_20XX. Keep 20XX_data.pak beside it: it holds our fonts and controller icons.

The first run reads the game's text out of HYPERX.EXE into hyperblade_20XX_strings.txt, and later runs load that file.

To play the music without the CD, rip the audio tracks to Data/Music/Track02.flac, Track03.flac etc. FLAC, MP3 and WAV are all supported. On Linux the rips are the only music, as the CD drive is read on Windows alone.

Simulating matches

-sim plays AI-only matches with no window or sound, about 2,000 times faster than real time on one core, and writes every player's match stats to sim_results.csv beside the executable:

hyperblade_20XX -sim LOSAN SEATTLE 100 1 fixed

The arguments are the home team, the away team, the number of matches, the first seed (each match adds one), fixed or shipped plans, optionally arena=TEAM to play in that team's drome rather than the home team's, and optionally a file ending in .csv to write in place of sim_results.csv. A team can play itself. A team is its file name, its name or its index; an unknown team lists them all. The match settings in booie.ini, such as difficulty and period length, still apply, and a simulation never writes the file. Each row is one player in one match, with the difficulty and period length it was played at, their health at the end (100 is unhurt), the score, and the game's own match stats. A seed does not yet replay a match exactly. Errors print instead of opening a dialog. A fatal one ends the run with exit code 3 and keeps the matches already written.

Build

The build needs nothing from the game. Each preset in CMakePresets.json configures, builds and tests, and the package target writes the drop-in archive to packages/ in its build folder.

Windows

You need Visual Studio 2022 or later with the C++ x64 tools, CMake 3.25 or later, and Ninja. From an x64 Developer Command Prompt:

cmake --preset msvc-x64
cmake --build --preset msvc-x64
ctest --preset msvc-x64
cmake --build --preset msvc-x64 --target package

Linux

docker/linux.Dockerfile holds GCC 14, Clang 20 and SDL's build dependencies. It builds, tests and packages with the preset PRESET names, linux-gcc by default:

docker build -t hyperblade-linux -f docker/linux.Dockerfile docker
docker run --rm -e PRESET=linux-gcc -v "$PWD:/src:ro" -v "$PWD/.cpm-cache-linux:/cpm" -v "$PWD/build-linux:/build" hyperblade-linux

On a Linux machine with those tools, the linux-gcc and linux-clang presets work as the Windows one does. GCC and Clang build with -Wall -Werror, and MSVC with /W4 /WX.

Tests

The unit checks need nothing. gpu draws through SDL's GPU API and reports itself skipped with no device. The data checks read the game's own files and run only when HYPERX_GAME_DATA names your HyperBlade folder, which also links its folders in beside the built image:

cmake --preset msvc-x64 -DHYPERX_GAME_DATA=C:/Games/HyperBlade
ctest --preset msvc-x64 -L data

Tools

These need Python 3.12 or later. Some read your HYPERX.EXE, so copy hyperx-user.example.yml to hyperx-user.yml and point it there.

python tools/extract_rc.py          # menu, dialogs, strings, version and icon, as an .rc script
python tools/extract_mdm1.py --png  # every MDM1-packed bitmap in Data, as BMP and PNG
python tools/plan_dump.py           # the AI plans, printed as pseudo-source
python tools/make_icon.py           # redraws the Rok icon into res/

docs/ holds what we know about the game: the class hierarchy, the other files on the disc, and the bugs in the shipped AI plans.

Legal

This project is for preservation, research and interoperability. It holds no original binary, game data or disassembly. Don't attach any of these to an issue or a pull request, and don't ask for a copy of the game.

LGPL-3.0-only for this project's own work. NOTICE says what the licence covers. HyperBlade belongs to its rights holders.

20XX_data.pak carries two CC0 sets: the Pixel Operator fonts and Kenney's Input Prompts.

Comentarios (0)

Inicia sesión para dejar un comentario.

Sé el primero en comentar sobre este juego.