Coder Social home page Coder Social logo

jakz / retro8 Goto Github PK

View Code? Open in Web Editor NEW
244.0 16.0 28.0 1.16 MB

PICO-8 implementation with SDL2/SDL1.2 and RetroArch back-ends

License: GNU General Public License v3.0

Makefile 0.60% C++ 81.93% Lua 0.21% C 15.20% CMake 1.98% Shell 0.08% Perl 0.01%
pico-8 cpp cpp11 opendingux emulator sdl2 retroarch sdl1

retro8's Introduction

Introduction

This is an attempt to have an open source reimplementation of PICO-8 fantasy console to be used on Desktop platforms but especially wherever you want to compile it.

It was born as an attempt to make PICO-8 games playable on OpenDingux devices (GCW0, RG350, ..). It has now been extended to be compiled as a RetroArch core too.

Implementation

The emulator is written in C++11 and embeds Lua source code (to allow extensions to the language that PICO-8 has). It has a SDL2.0 back-end but a SDL1.2 back-end wouldn't be hard to implement.

Status

Currently much of the API is already working with good performance, even basic sound and music are working.

Many demos already work and even some full games.

  • All graphics functions have been implemented but not all their subfeatures,
  • All math functions have been implemented,
  • Sound functions have been implemented together with an audio renderer stack but many effects still missing
  • Common platform functions have been implemented
  • Some Lua language extensions have been implemented
  • Many quirks of the Lua extensions are implemented but some of most obscure things are still missing

Fixed arithmetic support is still missing.

Screenshots

Building

If you want to build a libretro backend:

make

If you want to build a local binary you can run:

cmake .
make

If you want to cross-compile for OpenDingux:

cmake -DOPENDINGUX=ON .
make

If you want to compile for retrofw (assuming your compiler is installed per retrofw instructions):

CROSS=/opt/mipsel-linux-uclibc/bin/mipsel-buildroot-linux-uclibc- cmake -DRETROFW=ON .
make

To build an OpenDingux OPK file once your binary is built:

mkdir -p projects/opendingux
cp -a retro8 projects/opendingux/
cd projects
./build_opk_od.sh

retro8's People

Contributors

glebm avatar gouchi avatar inactive123 avatar jakz avatar jstine35 avatar kivutar avatar leolobato avatar mibus avatar p-sam avatar phcoder 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  avatar  avatar  avatar  avatar  avatar

Watchers

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

retro8's Issues

Games with special characters inside code don't work

I wasn't being able to run my game on Pocket8 using Retro8 and now i've figured it out. Special characters as variables inside the code are not able to run.

From the image below: the code on the right doesn't work but the one on the left does.

image

error: ‘size_t’ has not been declared

When compiling using make I keep getting the error: ./src/common.h:56:147: error: ‘size_t’ has not been declared

But adding #include <stddef.h> or using std::size_t; to src/common.h fixes it, I think it's because stddef.h guarantees to define size_t in the global namespace, I am not sure why this error seems to trigger only in systems running Manjaro Linux though. In my case I'm running the Kernel 6.3.5.

Developing a game and it suddenly stopped working

Hello! I'm developing a platformer. I've been testing it on Pico8 itself and it has been running pretty smoothly.

Tried playing it on my pocketgo with retroarch and retro8 core and it worked pretty fine. I've added a bunch of code and now it suddenly no longer boots on my pocketgo. I don't even know where to start to debug this. I thought the cause could be the time() function or the amount of sprites but it's not. Maybe it's one of the newer versions of pico8's additions that broke it?

Can anyone help me with this? I don't even know where to start 😅

This is the game btw.

inline if with return create problems with parsing

The parser greedily searches for expression to match with return statement, which creates problem in the following situation:

if (x == 0) return
y = 5

Here return is parsed erroneously as return y.

How to install on a LDK

Hello,

I have this LDK console but I have no idea where to start or how to make this work to try pico-8 games in it.

Can you point me to what I need to learn to make it run?

Thanks!

RG350m - does not boot games. does boot itself though.

as the title says. i can boot into menu when i select via directory the opk itself, which gives me menu access, but no way to select or load a game... unless keyboard support exists, then i need to plug my keyboard in.

when loading a rom though, it just shuts itself down immediately. ]

would love to get pico8 running on the rg350m. any idea what i can do?

New operators for 0.2.0

BAND(A,B)   A & B
BOR(A,B)    A | B
BXOR(A,B)   A ^^ B
SHL(A,B)    A << B
SHR(A,B)    A >> B
LSHR(A,B)   A >>> B
ROTL(A,B)   A <<> B
ROTR(A,B)   A >>< B
BNOT(A)     ~A
FLR(A/B)   A \ B
PEEK(A)    @A
PEEK2(A)   %A
PEEK4(A)   $A

Compiling Fails (OSX)

Perhaps it's too early to create an issue for this, so if so feel free to close/delete this.

Attempting to compile on OSX fails as follows:

xxxs-MacBook-Pro:~ xxx$ cd /Volumes/xxx/GIT/retro8/
xxxs-MacBook-Pro:retro8 xxx$ make -j$(nproc)
-bash: nproc: command not found
CC src/lua/lapi.c
CC src/lua/lauxlib.c
CC src/lua/lbaselib.c
CC src/lua/lbitlib.c
CC src/lua/lcode.c
CC src/lua/lcorolib.c
CC src/lua/lctype.c
CC src/lua/ldblib.c
CC src/lua/ldebug.c
CC src/lua/ldo.c
CC src/lua/ldump.c
CC src/lua/lfunc.c
CC src/lua/lgc.c
CC src/lua/linit.c
CC src/lua/liolib.c
CC src/lua/llex.c
CC src/lua/lmathlib.c
CC src/lua/lmem.c
CC src/lua/loadlib.c
CC src/lua/lobject.c
CC src/lua/lopcodes.c
CC src/lua/loslib.c
CC src/lua/lparser.c
CC src/lua/lstate.c
CC src/lua/lstring.c
CC src/lua/lstrlib.c
CC src/lua/ltable.c
CC src/lua/ltablib.c
CC src/lua/ltests.c
CC src/lua/ltm.c
CC src/lua/lundump.c
CC src/lua/lutf8lib.c
CC src/lua/lvm.c
CC src/lua/lzio.c
CXX src/io/loader.cpp
CXX src/io/picopng.cpp
CXX src/io/stegano.cpp
CXX src/retroarch/libretro.cpp
CXX src/vm/gfx.cpp
CXX src/vm/lua_bridge.cpp
CXX src/vm/machine.cpp
CXX src/vm/memory.cpp
CXX src/vm/sound.cpp
In file included from src/io/picopng.cpp:2:
./src/common.h:7:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u32 = uint32_t;
            ^
./src/common.h:8:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u16 = uint16_t;
            ^
./src/common.h:10:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s32 = int32_t;
            ^
./src/common.h:11:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s64 = int64_t;
            ^
./src/common.h:13:14: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using byte = uint8_t;
             ^
./src/common.h:18:17: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using utype = typename std::underlying_type<T>::type;
                ^
In file included from src/vm/sound.cpp:1:
In file included from ./src/vm/sound.h:3:
./src/vm/defines.h:7:8: error: ISO C++ forbids forward references to 'enum' types
  enum color_t : uint8_t
       ^
./src/vm/defines.h:7:16: error: expected unqualified-id
  enum color_t : uint8_t
               ^
./src/vm/defines.h:15:8: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
  enum class button_t
       ^
In file included from src/vm/gfx.cpp:1:
In file included from ./src/vm/gfx.h:3:
./src/vm/defines.h:7:8: error: ISO C++ forbids forward references to 'enum' types
  enum color_t : uint8_t
       ^
./src/vm/defines.h:7:16: error: expected unqualified-id
  enum color_t : uint8_t
               ^
./src/vm/defines.h:15:8: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
  enum class button_t
       ^
./src/vm/defines.h:25:10: error: unknown type name 'constexpr'
  static constexpr size_t BUTTON_COUNT = 6;
         ^
./src/vm/defines.h:25:26: error: expected ';' after top level declarator
  static constexpr size_t BUTTON_COUNT = 6;
                         ^
                         ;
./src/vm/defines.h:25:10: error: unknown type name 'constexpr'
  static constexpr size_t BUTTON_COUNT = 6;
         ^
./src/vm/defines.h:25:26: error: expected ';' after top level declarator
  static constexpr size_t BUTTON_COUNT = 6;
                         ^
                         ;
./src/vm/defines.h:26:10: error: unknown type name 'constexpr'
  static constexpr size_t PLAYER_COUNT = 2;
         ^
./src/vm/defines.h:26:26: error: expected ';' after top level declarator
  static constexpr size_t PLAYER_COUNT = 2;
                         ^
                         ;
./src/vm/defines.h:28:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using coord_t = int32_t;
                  ^
./src/vm/defines.h:29:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using amount_t = int32_t;
                   ^
./src/vm/defines.h:30:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using index_t = uint32_t;
                  ^
./src/vm/defines.h:31:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_index_t = uint8_t;
                         ^
./src/vm/defines.h:32:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_flags_t = uint8_t;
                         ^
./src/vm/defines.h:33:22: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using integral_t = int32_t;
                     ^
./src/vm/defines.h:34:25: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using color_index_t = uint8_t;
                        ^
./src/vm/defines.h:35:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using palette_index_t = size_t;
                          ^
./src/vm/defines.h:26:10: error: unknown type name 'constexpr'
  static constexpr size_t PLAYER_COUNT = 2;
         ^
./src/vm/defines.h:26:26: error: expected ';' after top level declarator
  static constexpr size_t PLAYER_COUNT = 2;
                         ^
                         ;
./src/vm/defines.h:28:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using coord_t = int32_t;
                  ^
./src/vm/defines.h:29:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using amount_t = int32_t;
                   ^
./src/vm/defines.h:30:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using index_t = uint32_t;
                  ^
./src/vm/defines.h:31:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_index_t = uint8_t;
                         ^
./src/vm/defines.h:35:27: error: unknown type name 'size_t'
./src/vm/defines.h./src/vm/defines.h::3236::2621::  warningwarning: : aliasalias  declarationsdeclarations  areare  aa  C++11C++11  extensionextension  [-Wc++11-extensions][-Wc++11-extensions]

  using address_t = int32_t;
  using sprite_flags_t = uint8_t;
                    ^                         ^

./src/vm/defines.h:33:22: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using integral_t = int32_t;
                     ^
./src/vm/defines.h:34:25: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using color_index_t = uint8_t;
                        ^
./src/vm/defines.h:35:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using palette_index_t = size_t;
                          ^
./src/vm/defines.h:35:27: error: unknown type name 'size_t'
./src/vm/defines.h:36:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using address_t = int32_t;
                    ^
./src/vm/defines.h:39:10: error: unknown type name 'constexpr'
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
         ^
./src/vm/defines.h:39:27: error: expected ';' after top level declarator
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
                          ^
                          ;
In file included from src/vm/gfx.cpp:1:
./src/vm/gfx.h:12:12: error: unknown type name 'constexpr'
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
           ^
./src/vm/gfx.h:12:28: error: expected ';' after top level declarator
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
                           ^
                           ;
./src/vm/gfx.h:14:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_WIDTH = 8;
           ^
./src/vm/gfx.h:14:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_WIDTH = 8;
                           ^
                           ;
./src/vm/gfx.h:15:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_HEIGHT = 8;
           ^
./src/vm/gfx.h:15:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_HEIGHT = 8;
                           ^
                           ;
./src/vm/gfx.h:17:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_WIDTH = 4;
           ^
./src/vm/gfx.h:17:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_WIDTH = 4;
                           ^
                           ;
./src/vm/defines.h:39:10: error: unknown type name 'constexpr'
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
         ^
./src/vm/defines.h:39:27: error: expected ';' after top level declarator
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
                          ^
                          ;
In file included from src/retroarch/libretro.cpp:3:
./src/common.h:7:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u32 = uint32_t;
            ^
./src/common.h:8:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u16 = uint16_t;
            ^
./src/common.h:10:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s32 = int32_t;
            ^
./src/common.h:11:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s64 = int64_t;
            ^
./src/common.h:13:14: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using byte = uint8_t;
             ^
./src/common.h:18:17: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using utype = typename std::underlying_type<T>::type;
                ^
In file included from src/retroarch/libretro.cpp:4:
In file included from ./src/vm/gfx.h:3:
./src/vm/defines.h:7:8: error: ISO C++ forbids forward references to 'enum' types
  enum color_t : uint8_t
       ^
./src/vm/defines.h:7:16: error: expected unqualified-id
  enum color_t : uint8_t
               ^
./src/vm/defines.h:15:8: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
  enum class button_t
       ^
./src/vm/gfx.h:18:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_HEIGHT = 6;
           ^
./src/vm/gfx.h:18:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_HEIGHT = 6;
                           ^
                           ;
fatal error: too many errors emitted, stopping now [-ferror-limit=]
./src/vm/defines.h:25:10: error: unknown type name 'constexpr'
  static constexpr size_t BUTTON_COUNT = 6;
         ^
./src/vm/defines.h:25:26: error: expected ';' after top level declarator
  static constexpr size_t BUTTON_COUNT = 6;
                         ^
                         ;
./src/vm/defines.h:26:10: error: unknown type name 'constexpr'
  static constexpr size_t PLAYER_COUNT = 2;
         ^
./src/vm/defines.h:26:26: error: expected ';' after top level declarator
  static constexpr size_t PLAYER_COUNT = 2;
                         ^
                         ;
./src/vm/defines.h:28:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using coord_t = int32_t;
                  ^
./src/vm/defines.h:29:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using amount_t = int32_t;
                   ^
./src/vm/defines.h:30:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using index_t = uint32_t;
                  ^
./src/vm/defines.h:31:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_index_t = uint8_t;
                         ^
./src/vm/defines.h:32:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_flags_t = uint8_t;
                         ^
./src/vm/defines.h:33:22: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using integral_t = int32_t;
                     ^
./src/vm/defines.h:34:25: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using color_index_t = uint8_t;
                        ^
./src/vm/defines.h:35:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using palette_index_t = size_t;
                          ^
./src/vm/defines.h:35:27: error: unknown type name 'size_t'
./src/vm/defines.h:36:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using address_t = int32_t;
                    ^
./src/vm/defines.h:39:10: error: unknown type name 'constexpr'
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
         ^
./src/vm/defines.h:39:27: error: expected ';' after top level declarator
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
                          ^
                          ;
In file included from src/io/stegano.cpp:1:
In file included from ./src/io/stegano.h:3:
./src/common.h:7:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u32 = uint32_t;
            ^
./src/common.h:8:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u16 = uint16_t;
            ^
./src/common.h:10:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s32 = int32_t;
            ^
./src/common.h:11:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s64 = int64_t;
            ^
./src/common.h:13:14: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using byte = uint8_t;
             ^
./src/common.h:18:17: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using utype = typename std::underlying_type<T>::type;
                ^
In file included from src/io/stegano.cpp:1:
In file included from ./src/io/stegano.h:5:
In file included from ./src/vm/machine.h:4:
./src/vm/defines.h:7:8: error: ISO C++ forbids forward references to 'enum' types
  enum color_t : uint8_t
       ^
./src/vm/defines.h:7:16: error: expected unqualified-id
  enum color_t : uint8_t
               ^
./src/vm/defines.h:15:8: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
  enum class button_t
       ^
./src/vm/defines.h:25:10: error: unknown type name 'constexpr'
  static constexpr size_t BUTTON_COUNT = 6;
         ^
./src/vm/defines.h:25:26: error: expected ';' after top level declarator
  static constexpr size_t BUTTON_COUNT = 6;
                         ^
                         ;
In file included from src/io/loader.cpp:1:
In file included from ./src/io/loader.h:1:
./src/common.h:7:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u32 = uint32_t;
            ^
./src/common.h:8:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u16 = uint16_t;
            ^
./src/common.h:10:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s32 = int32_t;
            ^
./src/common.h:11:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s64 = int64_t;
            ^
./src/common.h:13:14: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using byte = uint8_t;
             ^
./src/common.h:18:17: warning: alias declaraIn file included from src/retroarch/libretro.cpp:4:
./src/vm/gfx.h:12:12: error: unknown type name 'constexpr'
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
           ^
./src/vm/gfx.h:12:28: error: expected ';' after top level declarator
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
                           ^
                           ;
tions are a C++11 extension [-Wc++11-extensions]
  using utype = typename std::underlying_type<T>::type;
                ^
./src/vm/gfx.h:14:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_WIDTH = 8;
           ^
./src/vm/gfx.h:14:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_WIDTH = 8;
                           ^
                           ;
./src/vm/gfx.h:15:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_HEIGHT = 8;
           ^
./src/vm/gfx.h:15:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_HEIGHT = 8;
                           ^
                           ;
./src/vm/gfx.h:17:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_WIDTH = 4;
           ^
./src/vm/gfx.h:17:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_WIDTH = 4;
                           ^
                           ;
In file included from src/io/loader.cpp:1:
In file included from ./src/io/loader.h:3:
In file included from ./src/vm/machine.h:4:
./src/vm/defines.h:7:8: error: ISO C++ forbids forward references to 'enum' types
  enum color_t : uint8_t
       ^
./src/vm/defines.h:7:16: error: expected unqualified-id
  enum color_t : uint8_t
               ^
./src/vm/defines.h:15:8: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
  enum class button_t
       ^
./src/vm/defines.h:26:10: error: unknown type name 'constexpr'
  static constexpr size_t PLAYER_COUNT = 2;
         ^
./src/vm/defines.h:26:26: error: expected ';' after top level declarator
  static constexpr size_t PLAYER_COUNT = 2;
                         ^
                         ;
./src/vm/defines.h:28:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using coord_t = int32_t;
                  ^
./src/vm/defines.h:29:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using amount_t = int32_t;
                   ^
./src/vm/defines.h:30:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using index_t = uint32_t;
                  ^
./src/vm/defines.h:31:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_index_t = uint8_t;
                         ^
./src/vm/defines.h:32:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_flags_t = uint8_t;
                         ^
./src/vm/defines.h:33:22: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using integral_t = int32_t;
                     ^
./src/vm/defines.h:34:25: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using color_index_t = uint8_t;
                        ^
./src/vm/defines.h:35:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using palette_index_t = size_t;
                          ^
./src/vm/defines.h:35:27: error: unknown type name 'size_t'
./src/vm/defines.h:36:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using address_t = int32_t;
                    ^
./src/vm/defines.h:39:10: error: unknown type name 'constexpr'
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
         ^
./src/vm/defines.h:39:27: error: expected ';' after top level declarator
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
                          ^
                          ;
In file included from src/vm/memory.cpp:1:
In file included from ./src/vm/memory.h:3:
./src/common.h:7:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u32 = uint32_t;
            ^
./src/common.h:8:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
./src/vm/gfx.h:18:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_HEIGHT = 6;
           ^
./src/vm/gfx.h:18:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_HEIGHT = 6;
                           ^
                           ;
using u16 = uint16_t;
            ^
./src/common.h:10:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s32 = int32_t;
            ^
./src/common.h:11:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s64 = int64_t;
            ^
./src/common.h:13:14: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using byte = uint8_t;
             ^
./src/common.h:18:17: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using utype = typename std::underlying_type<T>::type;
                ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
./src/vm/defines.h:25:10: error: unknown type name 'constexpr'
  static constexpr size_t BUTTON_COUNT = 6;
         ^
./src/vm/defines.h:25:26: error: expected ';' after top level declarator
  static constexpr size_t BUTTON_COUNT = 6;
                         ^
                         ;
./src/vm/defines.h:26:10: error: unknown type name 'constexpr'
  static constexpr size_t PLAYER_COUNT = 2;
         ^
./src/vm/defines.h:26:26: error: expected ';' after top level declarator
  static constexpr size_t PLAYER_COUNT = 2;
                         ^
                         ;
./src/vm/defines.h:28:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using coord_t = int32_t;
                  ^
./src/vm/defines.h:29:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using amount_t = int32_t;
                   ^
./src/vm/defines.h:30:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using index_t = uint32_t;
                  ^
./src/vm/defines.h:31:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_index_t = uint8_t;
                         ^
./src/vm/defines.h:32:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_flags_t = uint8_t;
                         ^
./src/vm/defines.h:33:22: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using integral_t = int32_t;
                     ^
./src/vm/defines.h:34:25: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using color_index_t = uint8_t;
                        ^
./src/vm/defines.h:35:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using palette_index_t = size_t;
                          ^
./src/vm/defines.h:35:27: error: unknown type name 'size_t'
./src/vm/defines.h:36:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using address_t = int32_t;
                    ^
In file included from src/vm/sound.cpp:1:
In file included from ./src/vm/sound.h:4:
./src/common.h:7:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u32 = uint32_t;
            ^
./src/common.h:8:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u16 = uint16_t;
            ^
./src/common.h:10:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s32 = int32_t;
            ^
./src/common.h:11:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s64 = int64_t;
            ^
./src/common.h:13:14: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using byte = uint8_t;
             ^
./src/common.h:18:17: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using utype = typename std::underlying_type<T>::type;
                ^
./src/vm/defines.h:39:10: error: unknown type name 'constexpr'
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
         ^
./src/vm/defines.h:39:27: error: expected ';' after top level declarator
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
                          ^
                          ;
In file included from src/io/loader.cpp:1:
In file included from ./src/io/loader.h:3:
In file included from ./src/vm/machine.h:5:
./src/vm/gfx.h:12:12: error: unknown type name 'constexpr'
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
           ^
./src/vm/gfx.h:12:28: error: expected ';' after top level declarator
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
                           ^
                           ;
./src/vm/gfx.h:14:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_WIDTH = 8;
           ^
./src/vm/gfx.h:14:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_WIDTH = 8;
                           ^
                           ;
In file included from src/io/stegano.cpp:1:
In file included from ./src/io/stegano.h:5:
In file included from ./src/vm/machine.h:5:
./src/vm/gfx.h:12:12: error: unknown type name 'constexpr'
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
           ^
./src/vm/gfx.h:12:28: error: expected ';' after top level declarator
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
                           ^
                           ;
./src/vm/gfx.h:14:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_WIDTH = 8;
           ^
./src/vm/gfx.h:14:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_WIDTH = 8;
                           ^
                           ;
In file included from src/vm/memory.cpp:1:
In file included from ./src/vm/memory.h:4:
./src/vm/defines.h:7:8: error: ISO C++ forbids forward references to 'enum' types
  enum color_t : uint8_t
       ^
./src/vm/defines.h:7:16: error: expected unqualified-id
  enum color_t : uint8_t
               ^
./src/vm/defines.h:15:8: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
  enum class button_t
       ^
./src/vm/gfx.h:15:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_HEIGHT = 8;
           ^
./src/vm/gfx.h:15:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_HEIGHT = 8;
                           ^
                           ;
./src/vm/defines.h:25:10: error: unknown type name 'constexpr'
  static constexpr size_t BUTTON_COUNT = 6;
         ^
./src/vm/defines.h:25:26./src/vm/gfx.h:: 17:12error::  expectederror : ';' afterunknown  toptype  levelname  declarator'constexpr'

    static constexpr size_t GLYPH_WIDTH = 4;
           ^
  static constexpr size_t BUTTON_COUNT = 6;
                         ^
                         ;
./src/vm/gfx.h:17:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_WIDTH = 4;
                           ^
                           ;
./src/vm/defines.h:26:10: error: unknown type name 'constexpr'
  static constexpr size_t PLAYER_COUNT = 2;
         ^
./src/vm/defines.h:26:26: error: expected ';' after top level declarator
  static constexpr size_t PLAYER_COUNT = 2;
                         ^
                         ;
./src/vm/defines.h:28:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using coord_t = int32_t;
                  ^
./src/vm/defines.h:29:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using amount_t = int32_t;
                   ^
./src/vm/defines.h:30:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using index_t = uint32_t;
                  ^
./src/vm/defines.h:31:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_index_t = uint8_t;
                         ^
./src/vm/defines.h:32:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_flags_t = uint8_t;
                         ^
./src/vm/defines.h:33:22: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using integral_t = int32_t;
                     ^
./src/vm/defines.h:34:25: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using color_index_t = uint8_t;
                        ^
./src/vm/defines.h:35:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using palette_index_t = size_t;
                          ^
./src/vm/defines.h:35:27: error: unknown type name 'size_t'
./src/vm/defines.h:36:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using address_t = int32_t;
                    ^
./src/vm/defines.h:39:10: error: unknown type name 'constexpr'
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
         ^
./src/vm/defines.h:39:27: error: expected ';' after top level declarator
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
                          ^
                          ;
In file included from src/vm/memory.cpp:1:
In file included from ./src/vm/memory.h:5:
./src/vm/gfx.h:12:12: error: unknown type name 'constexpr'
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
           ^
./src/vm/gfx.h:12:28: error: expected ';' after top level declarator
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
                           ^
                           ;
In file included from src/vm/machine.cpp:1:
In file included from ./src/vm/machine.h:3:
./src/common.h:7:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u32 = uint32_t;
            ^
./src/common.h:8:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u16 = uint16_t;
            ^
./src/common.h:10:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s32 = int32_t;
            ^
./src/common.h:11:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s64 = int64_t;
            ^
./src/common.h:13:14: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using byte = uint8_t;
             ^
./src/common.h:18:17: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using utype = typename std::underlying_type<T>::type;
                ^
./src/vm/gfx.h:15:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_HEIGHT = 8;
           ^
./src/vm/gfx.h:15:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_HEIGHT = 8;
                           ^
                           ;
./src/vm/gfx.h:18:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_HEIGHT = 6;
           ^
./src/vm/gfx.h:18:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_HEIGHT = 6;
                           ^
                           ;
In file included from src/vm/machine.cpp:1:
In file included from ./src/vm/machine.h:4:
./src/vm/defines.h:7:8: error: ISO C++ forbids forward references to 'enum' types
  enum color_t : uint8_t
       ^
./src/vm/defines.h:7:16: error: expected unqualified-id
  enum color_t : uint8_t
               ^
./src/vm/defines.h:15:8: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
  enum class button_t
       ^
./src/vm/gfx.h:17:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_WIDTH = 4;
           ^
./src/vm/gfx.h:17:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_WIDTH = 4;
                           ^
                           ;
fatal error: too many errors emitted, stopping now [-ferror-limit=]
./src/vm/gfx.h:18:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_HEIGHT = 6;
           ^
./src/vm/gfx.h:18:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_HEIGHT = 6;
                           ^
                           ;
fatal error: too many errors emitted, stopping now [-ferror-limit=]
./src/vm/gfx.h:14:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_WIDTH = 8;
           ^
./src/vm/gfx.h:14:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_WIDTH = 8;
                           ^
                           ;
./src/vm/gfx.h:15:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_HEIGHT = 8;
           ^
./src/vm/gfx.h:15:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_HEIGHT = 8;
                           ^
                           ;
10 warnings and 20 errors generated.
./src/vm/gfx.h:17:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_WIDTH = 4;
           ^
./src/vm/gfx.h:17:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_WIDTH = 4;
                           ^
                           ;
./src/vm/gfx.h:18:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_HEIGHT = 6;
           ^
make: *** [src/vm/gfx.o] Error 1
make: *** Waiting for unfinished jobs....
./src/vm/gfx.h:18:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_HEIGHT = 6;
                           ^
                           ;
./src/vm/defines.h:25:10: error: unknown type name 'constexpr'
  static constexpr size_t BUTTON_COUNT = 6;
         ^
./src/vm/defines.h:25:26: error: expected ';' after top level declarator
  static constexpr size_t BUTTON_COUNT = 6;
                         ^
                         ;
./src/vm/defines.h:26:10: error: unknown type name 'constexpr'
  static constexpr size_t PLAYER_COUNT = 2;
         ^
./src/vm/defines.h:26:26: error: expected ';' after top level declarator
  static constexpr size_t PLAYER_COUNT = 2;
                         ^
                         ;
./src/vm/defines.h:28:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using coord_t = int32_t;
                  ^
./src/vm/defines.h:29:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using amount_t = int32_t;
                   ^
./src/vm/defines.h:30:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using index_t = uint32_t;
                  ^
./src/vm/defines.h:31:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_index_t = uint8_t;
                         ^
./src/vm/defines.h:32:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_flags_t = uint8_t;
                         ^
./src/vm/defines.h:33:22: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using integral_t = int32_t;
                     ^
./src/vm/defines.h:34:25: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using color_index_t = uint8_t;
                        ^
./src/vm/defines.h:35:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using palette_index_t = size_t;
                          ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
./src/vm/defines.h:35:27: error: unknown type name 'size_t'
./src/vm/defines.h:36:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using address_t = int32_t;
                    ^
./src/vm/defines.h:39:10: error: unknown type name 'constexpr'
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
         ^
./src/vm/defines.h:39:27: error: expected ';' after top level declarator
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
                          ^
                          ;
In file included from src/vm/machine.cpp:1:
In file included from ./src/vm/machine.h:5:
./src/vm/gfx.h:12:12: error: unknown type name 'constexpr'
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
           ^
./src/vm/gfx.h:12:28: error: expected ';' after top level declarator
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
                           ^
                           ;
./src/vm/gfx.h:14:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_WIDTH = 8;
           ^
./src/vm/gfx.h:14:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_WIDTH = 8;
                           ^
                           ;
./src/vm/gfx.h:15:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_HEIGHT = 8;
           ^
./src/vm/gfx.h:15:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_HEIGHT = 8;
                           ^
                           ;
./src/vm/gfx.h:17:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_WIDTH = 4;
           ^
./src/vm/gfx.h:17:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_WIDTH = 4;
                           ^
                           ;
./src/vm/gfx.h:18:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_HEIGHT = 6;
           ^
./src/vm/gfx.h:18:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_HEIGHT = 6;
                           ^
                           ;
fatal error: too many errors emitted, stopping now [-ferror-limit=]
In file included from src/vm/lua_bridge.cpp:3:
In file included from ./src/vm/machine.h:3:
./src/common.h:7:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u32 = uint32_t;
            ^
./src/common.h:8:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u16 = uint16_t;
            ^
./src/common.h:10:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s32 = int32_t;
            ^
./src/common.h:11:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s64 = int64_t;
            ^
./src/common.h:13:14: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using byte = uint8_t;
             ^
./src/common.h:18:17: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using utype = typename std::underlying_type<T>::type;
                ^
In file included from src/vm/lua_bridge.cpp:3:
In file included from ./src/vm/machine.h:4:
./src/vm/defines.h:7:8: error: ISO C++ forbids forward references to 'enum' types
  enum color_t : uint8_t
       ^
./src/vm/defines.h:7:16: error: expected unqualified-id
  enum color_t : uint8_t
               ^
./src/vm/defines.h:15:8: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
  enum class button_t
       ^
./src/vm/defines.h:25:10: error: unknown type name 'constexpr'
  static constexpr size_t BUTTON_COUNT = 6;
         ^
./src/vm/defines.h:25:26: error: expected ';' after top level declarator
  static constexpr size_t BUTTON_COUNT = 6;
                         ^
                         ;
./src/vm/defines.h:26:10: error: unknown type name 'constexpr'
  static constexpr size_t PLAYER_COUNT = 2;
         ^
./src/vm/defines.h:26:26: error: expected ';' after top level declarator
  static constexpr size_t PLAYER_COUNT = 2;
                         ^
                         ;
./src/vm/defines.h:28:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using coord_t = int32_t;
                  ^
./src/vm/defines.h:29:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using amount_t = int32_t;
                   ^
./src/vm/defines.h:30:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using index_t = uint32_t;
                  ^
./src/vm/defines.h:31:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_index_t = uint8_t;
                         ^
./src/vm/defines.h:32:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_flags_t = uint8_t;
                         ^
./src/vm/defines.h:33:22: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using integral_t = int32_t;
                     ^
./src/vm/defines.h:34:25: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using color_index_t = uint8_t;
                        ^
./src/vm/defines.h:35:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using palette_index_t = size_t;
                          ^
./src/vm/defines.h:35:27: error: unknown type name 'size_t'
./src/vm/defines.h:36:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using address_t = int32_t;
                    ^
./src/vm/defines.h:39:10: error: unknown type name 'constexpr'
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
         ^
./src/vm/defines.h:39:27: error: expected ';' after top level declarator
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
                          ^
                          ;
In file included from src/vm/lua_bridge.cpp:3:
In file included from ./src/vm/machine.h:5:
./src/vm/gfx.h:12:12: error: unknown type name 'constexpr'
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
           ^
./src/vm/gfx.h:12:28: error: expected ';' after top level declarator
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
                           ^
                           ;
./src/vm/gfx.h:14:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_WIDTH = 8;
           ^
./src/vm/gfx.h:14:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_WIDTH = 8;
                           ^
                           ;
./src/vm/gfx.h:15:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_HEIGHT = 8;
           ^
./src/vm/gfx.h:15:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_HEIGHT = 8;
                           ^
                           ;
./src/vm/gfx.h:17:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_WIDTH = 4;
           ^
./src/vm/gfx.h:17:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_WIDTH = 4;
                           ^
                           ;
./src/vm/gfx.h:18:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_HEIGHT = 6;
           ^
./src/vm/gfx.h:18:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_HEIGHT = 6;
                           ^
                           ;
fatal error: too many errors emitted, stopping now [-ferror-limit=]
In file included from src/vm/sound.cpp:1:
./src/vm/sound.h:18:22: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
    using volume_t = int32_t;
                     ^
./src/vm/sound.h:19:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
    using pitch_t = int32_t;
                    ^
./src/vm/sound.h:20:25: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
    using frequency_t = int32_t;
                        ^
./src/vm/sound.h:21:29: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
    using channel_index_t = int32_t;
                            ^
./src/vm/sound.h:22:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
    using sound_index_t = int32_t;
                          ^
./src/vm/sound.h:23:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
    using music_index_t = int32_t;
                          ^
./src/vm/sound.h:25:10: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
    enum class Waveform
         ^
./src/vm/sound.h:30:10: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
    enum class Effect
         ^
./src/vm/sound.h:35:10: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
    enum class Tone { C, CS, D, DS, E, F, FS, G, GS, A, AS, B };
         ^
./src/vm/sound.h:39:7: error: unknown type name 'constexpr'
      constexpr static std::array<float, 12> frequencies = {
      ^
./src/vm/sound.h:39:17: error: expected member name or ';' after declaration specifiers
      constexpr static std::array<float, 12> frequencies = {
      ~~~~~~~~~ ^
./src/vm/sound.h:46:76: error: use of undeclared identifier 'frequencies'; did you mean 'frequency'?
      static frequency_t frequency(Tone tone, int32_t octave = 1) { return frequencies[size_t(tone)] * octave; };
                                                                           ^~~~~~~~~~~
                                                                           frequency
./src/vm/sound.h:47:28: note: 'frequency' declared here
        static frequency_t frequency(pitch_t pitch) { return frequencies[pitch % 12] / 2 * (1 << (pitch / 12)); }
                           ^
./src/vm/sound.h:47:62: error: use of undeclared identifier 'frequencies'
        static frequency_t frequency(pitch_t pitch) { return frequencies[pitch % 12] / 2 * (1 << (pitch / 12)); }
                                                             ^
./src/vm/sound.h:52:14: error: unknown type name 'constexpr'
      static constexpr uint16_t EffectMask = 0x7000;
             ^
./src/vm/sound.h:52:32: error: expected ';' at end of declaration list
      static constexpr uint16_t EffectMask = 0x7000;
                               ^
                               ;
./src/vm/sound.h:53:14: error: unknown type name 'constexpr'
      static constexpr uint16_t VolumeMask = 0x0E00;
             ^
./src/vm/sound.h:53:32: error: expected ';' at end of declaration list
      static constexpr uint16_t VolumeMask = 0x0E00;
                               ^
                               ;
./src/vm/sound.h:54:14: error: unknown type name 'constexpr'
      static constexpr uint16_t WaveformMask = 0x01C0;
             ^
./src/vm/sound.h:54:32: error: expected ';' at end of declaration list
      static constexpr uint16_t WaveformMask = 0x01C0;
                               ^
                               ;
fatal error: too many errors emitted, stopping now [-ferror-limit=]
16 warnings and 20 errors generated.
16 warnings and 20 errors generated.
make: *** [src/io/stegano.o] Error 1
make: *** [src/retroarch/libretro.o] Error 1
16 warnings and 20 errors generated.
make: *** [src/vm/memory.o] Error 1
16 warnings and 20 errors generated.
16 warnings and 20 errors generated.
make: *** [src/io/loader.o] Error 1
make: *** [src/vm/machine.o] Error 1
25 warnings and 20 errors generated.
make: *** [src/vm/sound.o] Error 1
16 warnings and 20 errors generated.
make: *** [src/vm/lua_bridge.o] Error 1
6 warnings generated.
In file included from src/io/picopng.cpp:2:
./src/common.h:7:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u32 = uint32_t;
            ^
./src/common.h:8:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u16 = uint16_t;
            ^
./src/common.h:10:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s32 = int32_t;
            ^
./src/common.h:11:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s64 = int64_t;
            ^
./src/common.h:13:14: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using byte = uint8_t;
             ^
./src/common.h:18:17: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using utype = typename std::underlying_type<T>::type;
                ^
6 warnings generated.

Anything specific to configure for compiling?

[Libretro] Celeste crashes when reaching the 1200m screen

Hey!

The issue doesn't happen upstream but I'm posting here since issues aren't opened on the Libretro repo, I hope this is fine!

Celeste crashes with the Libretro core when reaching the 1200m screen, this one:

image

Bisected already and it started with libretro@f128a4d , so I guess I should ping @phcoder about this.

I have no idea if it happens in other games, I've only tried Celeste so far.

No idea if it helps but here's the GDB output:

Thread 1 received signal SIGFPE, Arithmetic exception.
0x00007ffbffc389aa in retro8::sfx::DSP::noise (this=0x1615ad65d48,
    frequency=164, amplitude=0, position=25800, dest=0x1615ad1e2b6,
    samples=660) at src/vm/sound.cpp:141
141         dest[i] += lfsr_state % amplitude - (amplitude / 2);
(gdb) bt full
#0  0x00007ffbffc389aa in retro8::sfx::DSP::noise (this=0x1615ad65d48,
    frequency=164, amplitude=0, position=25800, dest=0x1615ad1e2b6,
    samples=660) at src/vm/sound.cpp:141
        i = 0
        lfsr_state = 3669164065
        polytable = "\000\001\002\003\005\004\a\006\v\n\t\b\016\017\f\r\006\a\004\005\003\002\001\000\r\f\017\016\b\t\n\v\f\r\016\017\t\b\v\n\a\006\005\004\002\003\000\001\n\v\b\t\017\016\r\f\001\000\003\002\004\005\006\a\b\t\n\v\r\f\017\016\003\002\001\000\006\a\004\005\016\017\f\r\v\n\t\b\005\004\a\006\000\001\002\003\004\005\006\a\001\000\003\002\017\016\r\f\n\v\b\t\002\003\000\001\a\006\005\004\t\b\v\n\f\r\016\017\000\001\002\003\005\004\a\006\v\n\t\b\016\017\f\r\006\a\004\005\003\002\001\000\r\f\017\016\b\t\n\v\f\r\016\017\t\b\v\n\a\006\005\004\002\003\000\001\n\v\b\t\017\016\r\f\001\000\003\002\004\005\006\a\b\t\n\v\r\f\017\016"...
#1  0x00007ffbffc1e1b8 in retro8::sfx::APU::renderSound (this=0x1615ad65d40,
    channel=..., buffer=0x1615ad1e2b6, samples=660) at src/vm/sound.cpp:399
        sample = @0x1615ad6103e: {static EffectMask = 28672,
          static VolumeMask = 3584, static WaveformMask = 448,
          static PitchMask = 63, static EffectShift = 12,
          static VolumeShift = 9, static WaveformShift = 6, value = 400}
        maxVolume = 4096
        volume = 0
        frequency = 164
#2  0x00007ffbffc1e36c in retro8::sfx::APU::renderSounds (this=0x1615ad65d40,
    dest=0x1615ad1e220, totalSamples=735) at src/vm/sound.cpp:429
        available = 660
        samplePerTick = 1032
        buffer = 0x1615ad1e2b6
        samples = 660
        channel = @0x1615ad65de0: {sound = 0x1615ad6100c, soundIndex = 0,
          sample = 25, position = 25800, end = 31}
        music = 0x1615ad60eb8
        i = 2
#3  0x00007ffbffc16925 in retro_run () at src/libretro/libretro.cpp:349
        audioBuffer2 = 0x1615ad33aa8
#4  0x00007ff72dd74049 in core_run ()
No symbol table info available.
#5  0x00007ff72dd76535 in runloop_iterate ()
No symbol table info available.
#6  0x00007ff72dd6abe8 in rarch_main ()
No symbol table info available.
#7  0x00007ff72e4b62fa in main_getcmdline ()
No symbol table info available.
#8  0x00007ff72dd613c1 in __tmainCRTStartup ()
    at C:/_/M/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:321
        lock_free = <optimized out>
        fiberid = <optimized out>
        nested = <optimized out>
        lpszCommandLine = <optimized out>
        StartupInfo = {cb = 104, lpReserved = 0x161591e16f0 "",
          lpDesktop = 0x161591e15a0 "Winsta0\\Default",
          lpTitle = 0x161591b62e0 "G:\\msys64\\home\\B-S\\build\\retroarch.exe", dwX = 0, dwY = 0, dwXSize = 0, dwYSize = 0, dwXCountChars = 0,
          dwYCountChars = 0, dwFillAttribute = 0, dwFlags = 0,
          wShowWindow = 0, cbReserved2 = 0, lpReserved2 = 0x0,
          hStdInput = 0xffffffffffffffff, hStdOutput = 0xffffffffffffffff,
          hStdError = 0xffffffffffffffff}
        inDoubleQuote = <optimized out>
#9  0x00007ff72dd614d6 in WinMainCRTStartup ()
    at C:/_/M/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexe.c:176
        ret = 255

Happening on Windows 10 and my Linux Mint VM, haven't tried on any other devices.

Build instructions?

It'd be really useful to have some build instructions (esp. for different platforms) in the README.

e.g. there's a Makefile in the git repository, but it builds a .so file rather than a binary. cmake && make stomps over the Makefile but builds a binary.

Is there a makefile for building against SDL1.2 with my cross-compiler in /opt/mipsel-linux-uclibc? (I want to build an opk for retrofw).

Thanks!!

Want't start on OSX M1 Pro

Retro8 wan't start on my laptop after successful buit:

Initializing color table
Using renderer pixel format: SDL_PIXELFORMAT_ARGB8888
Loading extended PICO-8 Api
libc++abi: terminating with uncaught exception of type std::bad_alloc: std::bad_alloc
zsh: abort      ./retro8

The output of cmake:

-- The C compiler identification is AppleClang 14.0.0.14000029
-- The CXX compiler identification is AppleClang 14.0.0.14000029
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found SDL2: /opt/homebrew/lib/libSDL2main.a;/opt/homebrew/lib/libSDL2.dylib;-framework Cocoa
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/me/git/retro8

Assertion failed! with Visual C++ Runtime Library

Whenever I try to load a cart that I downloaded from Lexaloffle BBS site (.PNG files, not .P8 files), I get the following error..

Microsoft Visual C++ Runtime Library

Assertion failed!
Program: retroarch.exe
File: src/io/stegano.cpp
Line: 63

Expression: magic == expected

.P8 files work just fine though. Not sure if I should open the issue with RetroArch or not. Please let me know if that is the case, and I will close this one.

Upload demos to repo

Hi!
I've also been building a Pico8 implementation but it's aimed towards embedded.
Could you upload your demos to the repo? seems like they'd be super useful to validate implementations / run tests against

Pico8 games on RPi 4 runs very poorly

Hello! First off, thank you for working on this project! It's much appreciated. I first submitted an issue to the batocera issue tracker and they informed me that this was the project emulating the pico8 platform.

I'm trying to run Pico8 games on Batocera on a RPi 4B 8GB and I experience great distortions, both visually and the audio, if I'm able to boot the cartridge at all. Apparently it runs quite well for others so I wonder if it might be something due to the ARM architecture and if that isn't supported? Celeste Classic manages to boot but lags and has slightly distorted audio, Tiny Fisher however has such great visual distortions that it's unplayable (find the cartridge here).

If this isn't a known issue, please let me know how I can help troubleshoot!

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.