-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgetting-started.html
More file actions
138 lines (120 loc) · 6.17 KB
/
Copy pathgetting-started.html
File metadata and controls
138 lines (120 loc) · 6.17 KB
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<!DOCTYPE html>
<html lang="en" data-theme="light">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Getting Started — Free Eggbert Documentation</title>
<link rel="stylesheet" href="assets/style.css">
</head>
<body data-depth="0">
<div id="page-wrapper">
<header id="site-header"></header>
<div id="content-wrapper">
<aside id="sidebar"></aside>
<main id="main-content">
<div class="content-inner">
<nav class="breadcrumb">
<a href="index.html">Home</a>
<span class="sep">/</span>
<span class="current">Getting Started</span>
</nav>
<h1>Getting Started</h1>
<p>This guide walks you through cloning, building, and running Free Eggbert for the first time.</p>
<h2 id="prerequisites">Prerequisites</h2>
<p>To build Free Eggbert using the recommended CMake + FreeDirect path, you need:</p>
<ul>
<li><strong>Git</strong> — with submodule support</li>
<li><strong>CMake 3.20+</strong></li>
<li><strong>A C++20 compiler</strong> — GCC 11+, Clang 12+, or MSVC v143</li>
<li><strong>A C++ build environment</strong> — make/ninja on Linux/macOS, or MSBuild on Windows</li>
<li><strong>Game asset files</strong> — DATA, IMAGE08, IMAGE16, SOUND directories from an original copy of Speedy Eggbert 2</li>
</ul>
<div class="callout note">
<span class="callout-icon">ℹ️</span>
<div class="callout-body">
<div class="callout-title">No System SDL Required</div>
By default, CMake builds vendored SDL3, SDL_image, and SDL_mixer from git submodules.
You do not need to install SDL packages from your system package manager.
</div>
</div>
<h2 id="step1-clone">Step 1: Clone the Repository</h2>
<pre><code><span class="cmt"># Clone the repository</span>
git clone <repository-url> free-eggbert
cd free-eggbert
<span class="cmt"># Initialize all submodules (SDL3, SDL_image, SDL_mixer, dxsdk3)</span>
git submodule update --init --recursive</code></pre>
<div class="callout warning">
<span class="callout-icon">⚠️</span>
<div class="callout-body">
<div class="callout-title">Submodules Required</div>
The <code>third_party/SDL</code>, <code>third_party/SDL_image</code>, and
<code>third_party/SDL_mixer</code> submodules must be initialized before building.
Without them, CMake configuration will fail.
</div>
</div>
<h2 id="step2-assets">Step 2: Add Game Assets</h2>
<p>
Free Eggbert requires the original game asset files. These are <strong>not included</strong>
in the repository. Obtain them from a legal copy of Speedy Eggbert 2 and place them under
<code>gamefiles/</code>:
</p>
<div class="file-tree">
<span class="dir">free-eggbert/gamefiles/</span>
├── <span class="dir">DATA/</span> <span class="note">~110 .blp world/demo/config files</span>
├── <span class="dir">IMAGE08/</span> <span class="note">~68 8-bit palette image files</span>
├── <span class="dir">IMAGE16/</span> <span class="note">~55 16-bit true-color image files</span>
└── <span class="dir">SOUND/</span> <span class="note">~103 music and SFX files</span>
</div>
<p>See <a href="assets.html">Assets & Files</a> for the full directory contents.</p>
<h2 id="step3-build">Step 3: Build</h2>
<pre><code><span class="cmt"># Configure (using FreeDirect / SDL3 backend)</span>
cmake -S . -B build -DSPEEDY_BLUPI_BACKEND=FREEDIRECT
<span class="cmt"># Build (using all available CPU cores)</span>
cmake --build build -j</code></pre>
<p>The compiled executable will be at <code>build/bin/SPEEDY_BLUPI_WINDOWS</code>
(or <code>SPEEDY_BLUPI_WINDOWS.exe</code> on Windows).</p>
<h2 id="step4-run">Step 4: Run</h2>
<pre><code><span class="cmt"># Run from the project root (so relative paths to gamefiles/ work)</span>
./build/bin/SPEEDY_BLUPI_WINDOWS</code></pre>
<div class="callout warning">
<span class="callout-icon">⚠️</span>
<div class="callout-body">
<div class="callout-title">Working Directory</div>
The game reads assets using relative paths like <code>gamefiles/DATA/config.def</code>.
Run the executable from the root of the repository, not from inside the build directory.
</div>
</div>
<h2 id="clean-rebuild">Clean Rebuild</h2>
<p>If you have build problems or a stale CMake cache, perform a clean rebuild:</p>
<pre><code>rm -rf build
git submodule update --init --recursive
cmake -S . -B build -DSPEEDY_BLUPI_BACKEND=FREEDIRECT
cmake --build build -j</code></pre>
<h2 id="other-platforms">Other Platforms</h2>
<p>
For platform-specific instructions, see the dedicated build documentation:
</p>
<ul>
<li><a href="build.html#visual-studio">Windows (Visual Studio 2022)</a></li>
<li><a href="build.html#emscripten">WebAssembly (Emscripten)</a></li>
<li><a href="platform-support.html#android">Android</a></li>
</ul>
<h2 id="next-steps">Next Steps</h2>
<ul>
<li><a href="build.html">Full Build System Documentation</a> — all build options and flags</li>
<li><a href="running.html">Running the Game</a> — configuration, command-line options</li>
<li><a href="architecture.html">Architecture Overview</a> — understand the codebase</li>
<li><a href="project-structure.html">Project Structure</a> — directory and file layout</li>
</ul>
<div class="page-nav">
<a class="page-nav-link" href="overview.html">← <span class="pnl-label">Project Overview</span></a>
<a class="page-nav-link next" href="build.html"><span class="pnl-label">Build & Compile</span> →</a>
</div>
</div>
</main>
</div>
</div>
<script src="assets/script.js"></script>
<script>initPage('getting-started');</script>
</body>
</html>