Skip to content

Commit 41f7545

Browse files
committed
retrofw port
1 parent 260213a commit 41f7545

File tree

4 files changed

+67
-3
lines changed

4 files changed

+67
-3
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
anarch
22
anarch.sav
3+
anarch.opk

anarch.retrofw.desktop

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
[Desktop Entry]
2+
Name=Anarch
3+
Comment=The suckless FPS game
4+
Exec=anarch
5+
Terminal=false
6+
Type=Game
7+
StartupNotify=true
8+
Icon=icon
9+
Categories=games;
10+
Version=20220601
11+
X-OD-Manual=README.md

main_sdl1.c

Lines changed: 41 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
// #define GAME_LQ
3333

3434
#ifndef __EMSCRIPTEN__
35-
#ifdef MIYOO
35+
#if defined(MIYOO) || defined(RETROFW)
3636
#define SFG_FPS 60
3737
#define SFG_LOG(str) puts(str);
3838
#define SFG_SCREEN_RESOLUTION_X 320
@@ -66,7 +66,7 @@
6666
#define SFG_RAYCASTING_MAX_STEPS 18
6767
#define SFG_RAYCASTING_MAX_HITS 8
6868
#endif
69-
#endif /* MIYOO */
69+
#endif
7070
#else
7171
// emscripten
7272
#define SFG_FPS 35
@@ -130,7 +130,14 @@ uint32_t SFG_getTimeMs()
130130

131131
void SFG_save(uint8_t data[SFG_SAVE_SIZE])
132132
{
133+
#ifdef RETROFW
134+
const char *home = getenv("HOME");
135+
char path[256];
136+
sprintf(path, "%s/anarch.sav", home);
137+
FILE *f = fopen(path, "wb");
138+
#else
133139
FILE *f = fopen("anarch.sav","wb");
140+
#endif
134141

135142
puts("SDL: opening and writing save file");
136143

@@ -148,7 +155,14 @@ void SFG_save(uint8_t data[SFG_SAVE_SIZE])
148155
uint8_t SFG_load(uint8_t data[SFG_SAVE_SIZE])
149156
{
150157
#ifndef __EMSCRIPTEN__
158+
#ifdef RETROFW
159+
const char *home = getenv("HOME");
160+
char path[256];
161+
sprintf(path, "%s/anarch.sav", home);
162+
FILE *f = fopen(path, "rb");
163+
#else
151164
FILE *f = fopen("anarch.sav","rb");
165+
#endif
152166

153167
puts("SDL: opening and reading save file");
154168

@@ -207,7 +221,7 @@ void SFG_processEvent(uint8_t event, uint8_t data)
207221
{
208222
}
209223

210-
#ifdef MIYOO
224+
#if defined(MIYOO)
211225
int8_t SFG_keyPressed(uint8_t key)
212226
{
213227
#define k(x) sdlKeyboardState[SDLK_ ## x]
@@ -231,6 +245,30 @@ int8_t SFG_keyPressed(uint8_t key)
231245

232246
#undef k
233247
}
248+
#elif defined(RETROFW)
249+
int8_t SFG_keyPressed(uint8_t key)
250+
{
251+
#define k(x) sdlKeyboardState[SDLK_ ## x]
252+
253+
switch (key)
254+
{
255+
case SFG_KEY_UP: return k(UP); break;
256+
case SFG_KEY_RIGHT: return k(RIGHT); break;
257+
case SFG_KEY_DOWN: return k(DOWN); break;
258+
case SFG_KEY_LEFT: return k(LEFT); break;
259+
case SFG_KEY_A: return k(LCTRL); break;
260+
case SFG_KEY_B: return k(LALT); break;
261+
case SFG_KEY_C: return k(SPACE); break;
262+
case SFG_KEY_JUMP: return k(LSHIFT); break;
263+
case SFG_KEY_STRAFE_LEFT: return k(TAB); break;
264+
case SFG_KEY_STRAFE_RIGHT: return k(BACKSPACE); break;
265+
case SFG_KEY_MAP: return k(ESCAPE); break;
266+
case SFG_KEY_MENU: return k(RCTRL) || k(RETURN); break;
267+
default: return 0; break;
268+
}
269+
270+
#undef k
271+
}
234272
#else
235273
int8_t SFG_keyPressed(uint8_t key)
236274
{

make.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,20 @@ elif [ $1 = "miyoo" ]; then
119119
echo ${COMMAND}
120120

121121
${COMMAND}
122+
elif [ $1 = "retrofw" ]; then
123+
# SDL 1.2 build for retrofw, requires:
124+
# - mipsel-linux-g++
125+
# - SDL 1.2 (dev) package
126+
127+
COMPILER="mipsel-linux-g++"
128+
SYSROOT=`${COMPILER} --print-sysroot`
129+
SDL_FLAGS=`${SYSROOT}/usr/bin/sdl-config --libs`
130+
COMMAND="${COMPILER} ${C_FLAGS} main_sdl1.c ${SDL_FLAGS} -DRETROFW"
131+
132+
echo ${COMMAND}
133+
134+
${COMMAND}
135+
mksquashfs anarch icon.png LICENSE README.md anarch.retrofw.desktop anarch.opk -noappend -no-xattrs
122136
else
123137
echo "unknown parameter: $1"
124138
fi

0 commit comments

Comments
 (0)