1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
# RTS (working title)
## Overview
**RTS** is a cross-platform, sprite-based real-time strategy video game
in the likes of several other entries from the mid 90's.
**The game is under heavy development, and very far from being playable.**

## Platforms
The following platforms are either supported or support is expected in
the future:
- Sony® PlayStation® 1, using a forked version of
[PSXSDK](https://git.disroot.org/xavi92/psxsdk).
- Microsoft® Win9x, using a `i386-mingw32` cross-toolchain and SDL-1.2.
A `i386-mingw32` cross-toolchain must be already available on the
system.
- POSIX-compliant operating systems such as GNU/Linux® or *BSD, using
SDL-1.2 (if available).
- Possibly, modern Microsoft® Windows® versions, too (currently
untested).
## Design goals
- Keep source code as simple and clean as possible.
- Keep platform-specific code separated so common code can be shared
between platforms without modifications.
- Use C99 features for better portability.
- Use modern CMake features for a simplified build process and
availability of the `compile_commands.json` database.
- Implement any multiplayer capabilities provided by the platform.
- Support a wide range of screen resolutions, even portrait resolutions
typically used by mobile platforms.
- And, above all, provide a fun game that can run even on low-end
hardware.
## Building from source
### Native build
A native version of **RTS** can be built using the typical CMake build
process:
```sh
mkdir build
cd build
cmake ..
make -j$(nproc --all)
```
### Cross-compilation
[`CMAKE_TOOLCHAIN_FILE`](https://cmake.org/cmake/help/latest/variable/CMAKE_TOOLCHAIN_FILE.html)
can be used to set up the cross-toolchain. Files labeled as
`cmake/*-toolchain.cmake` can be used as values.
#### Sony® PlayStation® 1
For example, the Sony® PlayStation® 1 version can be built using:
```sh
mkdir build
cd build
cmake .. \
-DCMAKE_TOOLCHAIN_FILE=../cmake/ps1-toolchain.cmake \
-DVIDEO_MODE=VMODE_PAL # VMODE_NTSC can be otherwise used
make -j$(nproc --all)
```
This will generate a `.bin`/`.cue` file pair in `build` that can be
played on an emulator or burnt into a CD-r in order to play the game
on real hardware.
#### Microsoft® Win9x
```sh
mkdir build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/win9x-toolchain.cmake
make -j$(nproc --all)
```
A stripped version of the executable, as well as game assets, will be
located in `build/cdimg`.
## License
Unless stated otherwise, **RTS** follows the license described by the
`LICENSE` file, which currently is the GNU General Public License v3
or later. Original versions of other works under various licenses are
also distributed in this project, that are located inside the
`res/orig` directory. This directory also contains a `LICENSE`
describing the source and license of each individual file.
Derivative works have been also created from these files for this
project, that are located inside the `res` directory. A `LICENSE`
file is also provided to describe the relationship between the
original and derived works.
## Copyright notice
Microsoft®, Linux®, Sony® and PlayStation® are registered trademarks of
their respective owners.
|