Release F-1 Spirit


ptitSeb

Serial Porter
Joined
Aug 15, 2012
Messages
9,195
Age
49
Location
France, near Lyon
Here is F-1 Spirit, the remake of the classic MSX game from Konami
preview01.png

The game use gl4es and is smooth on the pyra. Keymap is adapted to the Pyra (similar to the Pandora version), and the "Arcade mode" is also present.

History log
=========

Build 01
-----------

  • Initial build
 

cjam

Still Fresh
Joined
Jul 19, 2021
Messages
60
A charming game reminiscent of early 90s arcade racers.

With only minor changes it runs great on the A311D:

Makefile:
Code:
CFLAGS = -g3 -O2 -mcpu=native -ffast-math -ftree-vectorize -fno-strict-overflow -funsafe-math-optimizations -march=armv8-a+crypto+crc+aes+sha2  -Wall `sdl-config --cflags` `curl-config --cflags` -I/usr/X11R6/include -Ithirdparty -DHAVE_GLES -D__USE_SDL_GLES__ -DUSE_EGL_SDL -fdiagnostics-color=auto
LDFLAGS = `sdl-config --libs` `curl-config --libs` -L/usr/X11R6/lib/ -lSDL_image -lSDL_mixer -lSDL_net -lm -lstdc++ -lGLESv1_CM -lEGL

sources/main.cpp
Code:
+ #include "eglport.h"

sources/F1SpiritApp.cpp
Code:
+ #include "eglport.h"

sources/3DStuff.h
Code:
#include <GLES/glu.h>

For dependencies needed to apt-install libglm-dev, for SDL_glutaux.cpp:#include <glm/glm.hpp>

For Omap4 I set:
Code:
CFLAGS = -g3 -O2 -Wall `sdl-config --cflags` `curl-config --cflags` -I/usr/X11R6/include -Ithirdparty -DHAVE_GLES -D_
_USE_SDL_GLES__ -DUSE_EGL_SDL -fdiagnostics-color=auto
CFLAGS += -mcpu=cortex-a9 -mtune=cortex-a9 -mfloat-abi=hard -mtune=native -mfpu=neon-vfpv4 -ffast-math -ftree-vectori
ze -fno-strict-overflow -mno-unaligned-access -funsafe-math-optimizations
LDFLAGS = `sdl-config --libs` `curl-config --libs` -L/usr/X11R6/lib/ -lSDL_image -lSDL_mixer -lSDL_net -lm -lstdc++ -
lGLESv1_CM -lEGL

This builds and the eglport reports no erros, but crashed with "Illegal instruction" after EGLport: Complete
Experimentally commenting-out sources/eglport.cpp
Code:
//    CheckEGLErrors( __FILE__, __LINE__ );
Doesn't get me past the error... and my funtime time is used-up for today.

[EDIT] I should add subsequent runs can return:
Code:
EGLport: Initializing
[xcb] Too much data requested from _XRead
[xcb] This is most likely caused by a broken X extension library
[xcb] Aborting, sorry about that.
f1spirit: ../../src/xcb_io.c:742: _XRead: Assertion `!xcb_xlib_too_much_data_requested' failed.
...
EGLport: Found 4 available configs
EGLport: Using Config 0
EGLport: Binding API
EGLport: Creating Context
EGLport: Creating window surface
[xcb] Extra reply data still left in queue
[xcb] This is most likely caused by a broken X extension library
[xcb] Aborting, sorry about that.
f1spirit: ../../src/xcb_io.c:581: _XReply: Assertion `!xcb_xlib_extra_reply_data_left' failed.


Aborted
 
Last edited:

ptitSeb

Serial Porter
Joined
Aug 15, 2012
Messages
9,195
Age
49
Location
France, near Lyon
A charming game reminiscent of early 90s arcade racers.

With only minor changes it runs great on the A311D:

Makefile:
Code:
CFLAGS = -g3 -O2 -mcpu=native -ffast-math -ftree-vectorize -fno-strict-overflow -funsafe-math-optimizations -march=armv8-a+crypto+crc+aes+sha2  -Wall `sdl-config --cflags` `curl-config --cflags` -I/usr/X11R6/include -Ithirdparty -DHAVE_GLES -D__USE_SDL_GLES__ -DUSE_EGL_SDL -fdiagnostics-color=auto
LDFLAGS = `sdl-config --libs` `curl-config --libs` -L/usr/X11R6/lib/ -lSDL_image -lSDL_mixer -lSDL_net -lm -lstdc++ -lGLESv1_CM -lEGL

sources/main.cpp
Code:
+ #include "eglport.h"

sources/F1SpiritApp.cpp
Code:
+ #include "eglport.h"

sources/3DStuff.h
Code:
#include <GLES/glu.h>

For dependencies needed to apt-install libglm-dev, for SDL_glutaux.cpp:#include <glm/glm.hpp>

For Omap4 I set:
Code:
CFLAGS = -g3 -O2 -Wall `sdl-config --cflags` `curl-config --cflags` -I/usr/X11R6/include -Ithirdparty -DHAVE_GLES -D_
_USE_SDL_GLES__ -DUSE_EGL_SDL -fdiagnostics-color=auto
CFLAGS += -mcpu=cortex-a9 -mtune=cortex-a9 -mfloat-abi=hard -mtune=native -mfpu=neon-vfpv4 -ffast-math -ftree-vectori
ze -fno-strict-overflow -mno-unaligned-access -funsafe-math-optimizations
LDFLAGS = `sdl-config --libs` `curl-config --libs` -L/usr/X11R6/lib/ -lSDL_image -lSDL_mixer -lSDL_net -lm -lstdc++ -
lGLESv1_CM -lEGL

This builds and the eglport reports no erros, but crashed with "Illegal instruction" after EGLport: Complete
Experimentally commenting-out sources/eglport.cpp
Code:
//    CheckEGLErrors( __FILE__, __LINE__ );
Doesn't get me past the error... and my funtime time is used-up for today.

[EDIT] I should add subsequent runs can return:
Code:
EGLport: Initializing
[xcb] Too much data requested from _XRead
[xcb] This is most likely caused by a broken X extension library
[xcb] Aborting, sorry about that.
f1spirit: ../../src/xcb_io.c:742: _XRead: Assertion `!xcb_xlib_too_much_data_requested' failed.
Aborted
You can do a pull request, adding A311D build option.
 

cjam

Still Fresh
Joined
Jul 19, 2021
Messages
60
I can't because I don't understand what is happening with the ifeq / else stuff in the Makefile from git repo. For me, make LINUX=1 || make ODROID=1 returns
Code:
Makefile:52: extraneous text after 'else' directive
gcc -mcpu=cortex-a15 -mfpu=neon-vfpv4 -marm -mfloat-abi=hard -g3 -O3 -Wall `sdl-config --cflags` `curl-config --cflags` -I/usr/X11R6/include -Ithirdparty -DPYRA  -Wno-write-strings -c sources/2DCMC.cpp -o sources/2DCMC.o
gcc: error: unrecognized command-line option ‘-mfpu=neon-vfpv4’
gcc: error: unrecognized command-line option ‘-marm’
gcc: error: unrecognized command-line option ‘-mfloat-abi=hard’
Why is it using the pyra CFLAGS despite LINUX=1? To compile I removed the ifeq / else blocks entirely,
 
Last edited:
Top