Giter Club home page Giter Club logo

homeworldsdl's Introduction

Homeworld SDL

๐Ÿ“ฃ Play in your browser! Try our experimental wasm port here: Gardens of Kadesh

Source port of Homeworld 1 for Linux.

๐Ÿ›ˆ This repo is the central hub for the HomeworldSDL projects. There are different forks focused on different platforms.

Homeworld is a 3D space real-time strategy game released in 1999. It's source code was released in 2003 by Relic Entertainment, allowing a small but dedicated community of fans to port it to SDL, enabling native versions for Linux, MacOS, and more recently, web browsers.

๐Ÿ’ฌ Join our matrix space or discord

Installing

Requirements

This repository contains only the source code for Homeworld's engine (metaphorically, the skeleton). In order to have a playable game, you will need the original assets (artwork, textures, sounds, meshes, ... Metaphorically again, the flesh).

So make sure you have:

Asset checklist

To sum it up, here are the files required for the game to run:

  • Homeworld.big

    sha256: af9dcc06e3f99404334a0a8ec17e399876080e85feb5b47858382dc715136040

  • Update.big (This comes from the official 1.05 Patch)

    sha256: c71b07758ee7696b3a19c1d75c946cbd68830e03b30cd3c2888f2f6d22b7c976

  • HW_Comp.vce

    sha256: 15c4b988adb09b0969b0dc288b21ddc10ca9d42a2064d15b46b53dcf02fc2e44

  • HW_Music.wxd

    sha256: b909c2cdbc8c8db67be168f6005bf8e8facaa9857263b16d186c824a0c4eed4f

  • HomeworldSDL.big (This file should be included in the [releases])

Usually you will find these files in your installation folder. For more detailed instructions, read on.

Linux

Extracting game assets with wine

Install the game and patch with wine (tested with wine 4.1)

wine HWSetup.EXE
wine si_homeworld_update_105.exe

Open the game installation folder (usually ~/.wine/drive_c/Sierra/Homeworld). This is where you'll find the required files. We'll be getting back at them later on.

Installing the binary distribution

  1. Download [the latest release][releases]. (Extract it if necessary)
  2. Copy the files you gathered earlier in the folder you just downloaded
  3. Run the game
  4. Jump to Configuring the OpenGL renderer

Compiling from source

Please refer to Linux/BUILD.md.

Configuring the OpenGL renderer

The first time you run the game, you'll have to configure the renderer to use OpenGL. This will be saved in your ~/.homeworld, so you won't have to do it every time you run the game.

Once the game has launched, you need to:

  • Select "Options" from the main game menu.
  • Select "Video" from the available option sub-menus listed on the right side of the screen.
  • Select "(GL) Default OpenGL" from the "Rendering System" box.
  • Choose a resolution from the "Resolution" box (any resolution you choose will do fine).
  • Click on the "Accept!" button in the bottom-right corner of the screen.

The game will now attempt to switch to the OpenGL renderer.
If everything goes okay, you should be presented with a confirmation that the settings you requested were changed. Select "Yes", and you should be ready to go!

Mac

  • Copy assets listed above into the Root repo directory.
  • Open Xcode project in Mac directory.
  • Run from Xcode or build.
  • Assets are copied into App bundle
  • config file is at ~Library/Application Support/Homeworld/Homeworld.cfg

About

If you want to know more about this project (and see some screenshots!), please head over to the wiki.

homeworldsdl's People

Contributors

andrewzirkel avatar dkodnik avatar heckendorfc avatar kajitetsushi avatar ohemelaar avatar shinra-electric avatar thibaultlemaire avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

homeworldsdl's Issues

Issues running in raspberry OS (pi 4/400) in 32 and 64 bit

Managed to compile de engine for both armhf (compiled in Buster) and arm64 (compiled in Bullseye) (with a few minor changes I think, just to make it compile successfully).
Everything is generally ok, however there are a few issues:

  • Sound gets distorted in 32 bit but it doesn't happen in raspbian 64 bit
  • Also with the arm64 executable when changing the speaker settings (clicking change) HomeworldSDL crashes with the following message: (null) (0): Fatal error - regVerify: invalid region 0xb3893c80 has validation key 0x56 (That doesn't happen in the 32 bit arm executable but it was compiled in buster rather than in bullseye)
  • And if the arm64 executable is compiled with the option --enable-movies I get a segmentation fault with the following warning: [swscaler @ 0x55848d38e0] No accelerated colorspace conversion found from yuv420p to rgb24 (probably because of ffmpeg or the limitations of the pi).

[macOS] [ARM] Mouse pointer misaligned

I managed to build Homeworld in Xcode 13 for Arm, using Monterey 12.4. (Although Raider Retreat did not build).

The game ran, but the mouse pointer disappeared after a few seconds. I was able to start a new game using the keyboard, but was not able to play without the mouse...

Compiling on ARM Linux

Hi there,
I've tried to compile on a aarch64 linux machine (Pinebook Pro) but I've received some errors. As far as I can see there are some hardcoded fix to make it build on x86_64 compilers. Do you think is possible to make it work on aarch64? do I need to compile on armhf (32bit) on a multiarch environment?

Steam Classic Version?

I was wondering if it was possible for this version to support the steam release of the homeworld 1 classic assets.

It contains a Homeworld.big and HW_Comp.vce and HW_Music.wxd, although the Homeworld.big is different.

It also does not contain the Update.big, which I've tried both using the Update.big from the official 1.05 patch, and copying Homeworld.big to Update.big.

Either way, I get the following error when trying to load:

./homeworld
memClearSetting=0x3c6ef361, memFreeSetting=0x3717bd79
     930 files found in HomeworldSDL.big
   13887 files found in Update.big
   13887 files found in Homeworld.big

(null) (0): Fatal error - fileOpen: cannot open file AIShip.script

Good to find the code again.

Hi,
I'm pleased to find the code survives beyond the old defunct SVN repository.
Thought I'd recompile and play through for old times sake, and see what changes have been made since I worked on it many years ago.
Aunxx

[macOS] [ARM] Freeze when using Command-Q to quit

Quitting in-game using the quit game option works fine ("Quit game, baby!" is printed in console)

However quitting with Command+Q or through the dock causes HomeworldSDL to become unresponsive.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.