Skip to content

v0.0.1: Port Warcraft 1 to Sega 32X using Arena

Choose a tag to compare

@haroldo-ok haroldo-ok released this 01 Aug 10:19
27af827

What's Changed

New Contributors

Full Changelog: https://github.com/haroldo-ok/warcraft-32x/commits/v0.0.1

The game is somewhat playable, but there's still lots to do.

image image image image image image

Key Technical & Architectural Highlights

  • Dual SH-2 Task Architecture: Splitting the load between the twin Hitachi SH-2 RISC processors---delegating main gameplay, rendering, and logic to the Primary SH-2 while offloading command/cache servicing to the Secondary SH-2---is the exact design pattern needed to keep target frame rates stable on 32X hardware.

  • Efficient Memory & Video Pipeline:

    • Leveraging the 32X's 320×224 8-bit indexed double-buffered video mode allows accurate rendering of Warcraft's PC color palette directly to hardware framebuffers.

    • Storing unit states, construction queues, and sparse forest depletion into compact SRAM data structures is a slick solution for preserving campaign progress within standard cartridge limits.

  • Deterministic Pathfinding & Sub-Tile Smoothness:

    • Running 8-direction A pathfinding with an octile heuristic* on 64×64 grids while handling dynamic unit collision directly addresses the biggest hurdle in retro RTS ports.

    • Adding 12-frame sub-tile visual interpolation ensures movement looks smooth and modern without desynchronizing the underlying deterministic grid collisions.

  • Complete RTS Engine Loop: Bringing fog of war (Unknown/Fog/Visible), worker resource collection cycles (gold & lumber depletion), building assembly progress, and multi-state death animations over to native C/SH-2 code without reliance on original DOS executables is a massive engineering feat.

Controller Mapping Quick Reference

For playtesters, here is a quick-reference summary of the control mapping:

Action 3-Button Controller 6-Button Shortcut
Select Unit / Menu Option A A
Issue Order / Cancel / Back B B
Cycle Worker Command / Train Unit C C
Build Farm at Cursor Select Worker $\rightarrow$ C $\rightarrow$ B X (Direct)
Build Barracks at Cursor Select Worker $\rightarrow$ C $\times 2 \rightarrow$ B Y (Direct)
Pause / Resume Start Start
Save Game (In Pause Menu) Start $\rightarrow$ A Start $\rightarrow$ A
Load Game (In Pause Menu) Start $\rightarrow$ C Start $\rightarrow$ C

Note on Asset Generation: Because this port requires the original DATA.WAR asset file from the PC Warcraft demo, ensure your host asset processing pipeline is run prior to building the final 1.5 MiB .32x ROM image!