So I picked up an abandoned Wii port of Xash3D FWGS (the open source GoldSrc engine reimplementation) and got it to the point where it actually plays Half-Life. Figured people here might find it interesting.
Where it's at right now:
* boots to the menu with the proper background and music
* plays from Black Mesa Inbound through We've Got Hostiles
* locked 30fps at 320x240, the Wii's video hardware scales that up to the TV
* Wii remote pointer aiming. Point near the middle of the screen and it aims without dragging the camera around, push toward the edges and the view turns. Nunchuk stick to move. The gun leans toward wherever you're pointing which looks quite nice in motion
* sound works, GameCube pad and Wiimote plus Nunchuk both detected
Being upfront about this: every screenshot here is from Dolphin. I have not put it on a real Wii yet, that is literally the next thing I'm doing. So treat it as "this exists and runs" rather than "this is finished".
What doesn't work yet:
* only the opening chapters are verified. Everything from Blast Pit onward is untested, which is most of the game
* saves and level transitions are untested
* software rendering only. There is a hardware renderer that uses the Wii's actual GPU, which would look a lot better and let me push the resolution up, but it hangs during map load and I haven't cracked it yet
* one map (c1a3c) refuses to load and I have no idea why
A few of the more annoying things I hit, in case anyone likes this sort of thing:
* the engine was being compiled unoptimised the entire time. The devkitPro toolchain puts -O2 on every target, then the engine target appended -Og, and later flags win in GCC. Took me a while to spot that one
* the heap was living in MEM1 alongside the executable, so maps ran out of memory partway through loading and hung in a different place on every build. Moving it to MEM2, the Wii's other 64MB that was just sitting unused, fixed an entire family of weird bugs
* logging to a USB Gecko debug cable stalled the game if you didn't have one plugged in. Every test I'd run had one configured, so I never noticed that on an actual Wii it couldn't even reach a single frame
Repo and a setup guide are here: (https://github.com/twixerisss/xash3d-fwgs)
You need your own copy of Half-Life, no game data included obviously.
WARNING: AI has been a big help in this project. I have used and have had a lot of help from AI. I'm an experienced developer but I am nowhere near capable enough to work on this architecture comfortably XD