Suggestions for playing multiplayer doom on Rasperry Pi

Discuss anything ZDoom-related that doesn't fall into one of the other categories.

Suggestions for playing multiplayer doom on Rasperry Pi

Postby bfready » Wed Apr 08, 2020 9:13 pm

Hey, guys.

Little backgroud:
I have a Raspberry Pi 4 with 4 gigs of ram and running Raspbian Buster.
I currently play Doom with various different mods.
My favorite mod to play is Pandemonium. I like how the monsters are random.
I think it would be a lot better if I could play it multiplayer. Invasion coop gameplay.
I used to do this on a desktop PC using Zandronum and Doomseeker.

The problem I am facing now is that although it's possible to compile Zandronum on the RPi, I can not get the latest version to work (so none of the games I see on the master server work). Can't get the sound to work either.
You can play multiplayer on GZDoom (through the command line), but it's not like Zandronum (joining a game in progress... client/server), you have join the game before starting (peer to peer? not sure what it's called).
I don't know anyone locally/personally that owns a Raspberry Pi and wants to play multiplayer doom on it, and I can't find any forums or groups that are interested in doing something like this.

Here's my questions:
Has anyone here ever successfully used Doomseeker and Zandronum on a Raspberry Pi?

Is there any one else who owns a Raspberry Pi, has Gzdoom 3.6 (the highest ARMHF version of gzdoom) and is interested in playing multiplayer doom? Or is there a group on FB, Reddit, whatever that does stuff like this (schedules mutlplayer matches on weekends or something)?

Is there any other Doom source port that can play all the cool mods, but also have multplayer I could use?

I'm open to suggestions. I'll probably get the suggestion to "play zandronum on a regular PC," and I may do that again if I give this up.
The thing is, I got this all set up in the garage so I can BBQ, drink beer, and play Doom (and other videogames). It's looks cool, small, and easy to move around. The PC won't do so well in the garage.

I appreciate any help.
Thanks, guys!
Last edited by bfready on Wed Apr 08, 2020 10:35 pm, edited 1 time in total.
bfready
 
Joined: 08 Apr 2020

Re: Suggestions for playing multiplayer doom on Rasperry Pi

Postby bfready » Wed Apr 08, 2020 10:33 pm

Oh! I would also be interested in any splitscreen "couch coop" alternatives. Then I could force let my kids to play.

I saw Doom Legacy, and the Eternity Engine, but I could not get either of those to work on the Rpi.

If anyone has any experience with getting any Doom source port with splitscreen multiplayer working on the Raspberry Pi (especially with mods, but beggars can't be choosers, I guess).

Thanks again!
bfready
 
Joined: 08 Apr 2020

Re: Suggestions for playing multiplayer doom on Rasperry Pi

Postby Rachael » Thu Apr 09, 2020 2:53 am

Since about GZDoom 4.3 or so, GZDoom definitely works on the Raspberry Pi again but not fully - you will have to use the softpoly backend though and activate the software renderer. Eventually, the Pi 4 will support Vulkan and GZDoom should work on that just fine.

However, the big issue obviously is Zandronum. I think it merits you more to get that working on the Pi, if Multiplayer is truly your thing. So I'd like to know - what errors are you getting with Zandronum?
User avatar
Rachael
Admin
 
Joined: 13 Jan 2004
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle
Operating System: Windows 10/8.1/8/201x 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: nVidia with Vulkan support

Re: Suggestions for playing multiplayer doom on Rasperry Pi

Postby drfrag » Thu Apr 09, 2020 5:23 am

I know LZDoom runs on the Rasp Pi and has fake splitscreen, it works on PC and should on the Rasp Pi. You need a gamepad (or two), the trickier part is to configure several gamepads (but not much) so it's better to use keyboard and mouse for the first player. ZDoom32 should work there too and it's faster (it's older but also has fake splitscreen).
And then there's RUDE but it's a Chocolate Doom fork (limit removing), has fake splitscreen too but without viewport scaling. The good part is that you can share backpacks and stimpacks in coop and there's an extra skill setting with double the monsters. It's easier to setup. So for recent mods LZDoom.
https://github.com/drfrag666/gzdoom/tree/g3.3mgw
https://github.com/drfrag666/gzdoom/tree/gzdoom32
https://github.com/drfrag666/RUDE
More details here: viewtopic.php?f=231&t=62157
User avatar
drfrag
Os voy a romper a pedazos!
Vintage GZDoom Developer
 
Joined: 23 Apr 2004
Location: Spain
Discord: drfrag#3555
Github ID: drfrag666

Re: Suggestions for playing multiplayer doom on Rasperry Pi

Postby bfready » Thu Apr 09, 2020 9:42 am

Rachael wrote:Since about GZDoom 4.3 or so, GZDoom definitely works on the Raspberry Pi again but not fully - you will have to use the softpoly backend though and activate the software renderer. Eventually, the Pi 4 will support Vulkan and GZDoom should work on that just fine.

However, the big issue obviously is Zandronum. I think it merits you more to get that working on the Pi, if Multiplayer is truly your thing. So I'd like to know - what errors are you getting with Zandronum?




Wow! Thanks for the info. I knew the Rpi couldn't run the newer GZDooms because of the version of Open GL it's using, but didn't stop to think I could just run it using SW rendering.. I am defineatly going to try this.

Regarding Zandronum...
On an older version of Zandronum (Ptitseb's build: https://bitbucket.org/ptitSeb/zandronum/src/default/ ), I was able to compile and run, but once you started a game, it would crash:

Playing /tmp/zmidb2s8s7
MIDI file: /tmp/zmidb2s8s7
Format: 0 Tracks: 1 Divisions: 140
-: Broken pipe
Playing /tmp/zmidb2s8s7
MIDI file: /tmp/zmidb2s8s7
Format: 0 Tracks: 1 Divisions: 140

It's related to the sound, so I was able to run the game with no issue when running with the "-nosound" parameter.

I was unable to compile the latest version of Zandronum. For the life of me, I don't recall exactly where it failed in the compilation. I do recall is was something to do with FMOD? I use CCMAKE to configure and I found nothing to bypass it if I remember correctly... I may try to compile Zandronum again, but I'm pretty sure the sound issue (above) will remain. Would you know how to fix that?

I am still pretty new to compiling and troubleshooting compilation issues, so this may be an easy fix and I wouldn't know.

Thanks again for your suggestions, Rachael!
bfready
 
Joined: 08 Apr 2020

Re: Suggestions for playing multiplayer doom on Rasperry Pi

Postby bfready » Thu Apr 09, 2020 9:45 am

drfrag wrote:I know LZDoom runs on the Rasp Pi and has fake splitscreen, it works on PC and should on the Rasp Pi. You need a gamepad (or two), the trickier part is to configure several gamepads (but not much) so it's better to use keyboard and mouse for the first player. ZDoom32 should work there too and it's faster (it's older but also has fake splitscreen).
And then there's RUDE but it's a Chocolate Doom fork (limit removing), has fake splitscreen too but without viewport scaling. The good part is that you can share backpacks and stimpacks in coop and there's an extra skill setting with double the monsters. It's easier to setup. So for recent mods LZDoom.
https://github.com/drfrag666/gzdoom/tree/g3.3mgw
https://github.com/drfrag666/gzdoom/tree/gzdoom32
https://github.com/drfrag666/RUDE
More details here: viewtopic.php?f=231&t=62157


Thanks for your reply, drfrag.

I had no idea LZDoom does splitscreen! I'll check Youtube for examples, but what do you mean by "fake" splitscreen? Some hack I assume. Hey if it works, great! Can you add mods to LZDoom? I have never used it.
bfready
 
Joined: 08 Apr 2020

Re: Suggestions for playing multiplayer doom on Rasperry Pi

Postby drfrag » Thu Apr 09, 2020 12:11 pm

It's running several instances of the engine from different folders (a network game on the same machine), the other ones run in the background and must use a game controller.
LZDoom runs most mods and still supports GL2, it's the legacy engine. Check the changelog in that thread for instructions.
User avatar
drfrag
Os voy a romper a pedazos!
Vintage GZDoom Developer
 
Joined: 23 Apr 2004
Location: Spain
Discord: drfrag#3555
Github ID: drfrag666

Re: Suggestions for playing multiplayer doom on Rasperry Pi

Postby Rachael » Thu Apr 09, 2020 1:50 pm

For the Pi2/3/4 - you should (with most commits anyway) be able to compile it perfectly without changes (but you should do cmake -DCMAKE_BUILD_TYPE=Release).

Once compiled, this will get GZDoom running:

./gzdoom +vid_preferbackend 2 +vid_rendermode 0 +vid_scalemode 1
(truecolor works too, but you should do it only on the pi4 - you can set rendermode to 1 instead of 0)

As for Zandronum, it's a bit harder than I thought to get it compiled properly, so not sure how to fix that here, sorry. It would require to get either a ARM version of FMod, or to find some way to patch FMod out to place in OpenAL. I had initially thought Zandronum was already supported on Pi - so sorry. Alternatively, you can run the Intel version of Zandronum with QEMU's Binary translation, but performance will likely be very poor if you try that.

GZDoom with Softpoly+SWRender or LZDoom seem like your best bets for now.
User avatar
Rachael
Admin
 
Joined: 13 Jan 2004
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle
Operating System: Windows 10/8.1/8/201x 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: nVidia with Vulkan support

Re: Suggestions for playing multiplayer doom on Rasperry Pi

Postby bfready » Thu Apr 09, 2020 8:54 pm

drfrag wrote:It's running several instances of the engine from different folders (a network game on the same machine), the other ones run in the background and must use a game controller.
LZDoom runs most mods and still supports GL2, it's the legacy engine. Check the changelog in that thread for instructions.



I just compiled LZDoom 3.85 and set up the "splitscreen" multiplayer. That is some duct tape and bailing wire stuff right there, man! I love it. It works great! Still trying to figure out how to configure my xbox controllers for it, but I'm sure I'll figure that out.

So, is LZDoom a lighter weight version of GZDoom? I assumed so, but never got it because I always assume none of the newer mods worked on it. I was able to run pandemoneum and the Doom 2 Darkworld maps just fine. I didn't get to far though. Curious to see if my Pi starts choking. I have it overclocked to 2 ghz, but mods that have a lot of 3d models, large map size, etc. will make the frame rate crawl on GZDoom.

I'm going to try and re-compile Zandronum this week. Thanks for your help, ma
bfready
 
Joined: 08 Apr 2020

Re: Suggestions for playing multiplayer doom on Rasperry Pi

Postby bfready » Thu Apr 09, 2020 9:09 pm

Rachael wrote:For the Pi2/3/4 - you should (with most commits anyway) be able to compile it perfectly without changes (but you should do cmake -DCMAKE_BUILD_TYPE=Release).

Once compiled, this will get GZDoom running:

./gzdoom +vid_preferbackend 2 +vid_rendermode 0 +vid_scalemode 1
(truecolor works too, but you should do it only on the pi4 - you can set rendermode to 1 instead of 0)

As for Zandronum, it's a bit harder than I thought to get it compiled properly, so not sure how to fix that here, sorry. It would require to get either a ARM version of FMod, or to find some way to patch FMod out to place in OpenAL. I had initially thought Zandronum was already supported on Pi - so sorry. Alternatively, you can run the Intel version of Zandronum with QEMU's Binary translation, but performance will likely be very poor if you try that.

GZDoom with Softpoly+SWRender or LZDoom seem like your best bets for now.


Wow! This is great stuff, Rachael. Thanks for this. I've seen QEMO run various Windows games on the Pi 4, and I think you are right about the performance most likely being bad.
I just tried running the 32bit linux version of zandronum using BOX86. It TRIED to run it, but failed.
I'm going to try to compile the source code this weekend again. See if I can get it running.
Thanks for all youre help, Rachael!

Just in case anyone feels like looking at the errors.. :)

Code: Select allExpand view
pi@raspberrypi:~/zandronum3/zandronum3.0-linux-x86 $ box86 zandronum
Dynarec for ARM, with extension: HALF FAST_MULT EDSP NEON VFPv4 IDIVA
Using default BOX86_LD_LIBRARY_PATH: ./:lib/:lib32/:x86/
Using default BOX86_PATH: ./:bin/
Counted 42 Env var
Looking for zandronum
Using native(wrapped) libgtk-x11-2.0.so.0
Using native(wrapped) libgdk-x11-2.0.so.0
Using native(wrapped) libgobject-2.0.so.0
Using native(wrapped) libglib-2.0.so.0
Using native(wrapped) libgio-2.0.so.0
Using native(wrapped) libgmodule-2.0.so.0
Using native(wrapped) libgdk_pixbuf-2.0.so.0
Using native(wrapped) libSDL-1.2.so.0
Using native(wrapped) libm.so.6
Using native(wrapped) libdl.so.2
Using native(wrapped) librt.so.1
Using native(wrapped) libpthread.so.0
Using native(wrapped) libGLU.so.1
Using native(wrapped) libGL.so.1
Using native(wrapped) libz.so.1
Using emulated libfmodex-4.24.16.so
Using emulated /usr/lib/i386-linux-gnu/libstdc++.so.6
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux.so.2
Using emulated /usr/lib/i386-linux-gnu/libgcc_s.so.1
Using native(wrapped) libcrypto.so.1
Warning: Weak Symbol _ZGTtnaj not found, cannot apply R_386_JMP_SLOT @0xb29f219c (0x6b506)
Warning: Weak Symbol _ZGTtdlPv not found, cannot apply R_386_JMP_SLOT @0xb29f2478 (0x6c076)
Error: Symbol fts_set not found, cannot apply R_386_JMP_SLOT @0x88972c0 (0x816b406)
Zandronum 3.0 - 170901-1140 - SDL version
Compiled on Sep  1 2017
Using video driver x11

M_LoadDefaults: Load system defaults.
Gameinfo scan took 0 ms
W_Init: Init WADfiles.
 adding /home/pi/zandronum3/zandronum3.0-linux-x86/zandronum.pk3, 689 lumps
 adding ./DOOM2.WAD, 2919 lumps
I_Init: Setting up machine state.
CPU Vendor ID: GenuineIntel
  Family 1, Model 0, Stepping 1
  Features: MMX SSE SSE2
I_InitSound: Initializing FMOD
FMOD Sound System, copyright � Firelight Technologies Pty, Ltd., 1994-2009.
Loaded FMOD version 4.24.16
Cannot read ELF Header
Error: reading elf header of /home/pi/zandronum3/zandronum3.0-linux-x86/liboutput_sdl.so
Warning: Cannot dlopen("/home/pi/zandronum3/zandronum3.0-linux-x86/liboutput_sdl.so"/0xb5405f1e, 1)
Cannot read ELF Header
Error: reading elf header of liboutput_sdl.so
Warning: Cannot dlopen("liboutput_sdl.so"/0x8794580, 1)
OSS could not be initialized. Trying ALSA.
Warning: Cannot dlopen("libasound.so"/0xb2b6fa1e, 101)
Using native(wrapped) libasound.so.2
V_Init: allocate screen.
Using in-memory database. The database will not be saved on exit.
S_Init: Setting up sound.
ST_Init: Init startup screen.
Checking cmd-line parameters...


*** Fatal Error ***
Dynarec for ARM, with extension: HALF FAST_MULT EDSP NEON VFPv4 IDIVA
Using default BOX86_LD_LIBRARY_PATH: ./:lib/:lib32/:x86/
Using default BOX86_PATH: ./:bin/
Counted 43 Env var
Looking for /home/pi/zandronum3/zandronum3.0-linux-x86/./zandronum
Segmentation fault
pi@raspberrypi:~/zandronum3/zandronum3.0-linux-x86 $ Using native(wrapped) libgtk-x11-2.0.so.0
Using native(wrapped) libgdk-x11-2.0.so.0
Using native(wrapped) libgobject-2.0.so.0
Using native(wrapped) libglib-2.0.so.0
Using native(wrapped) libgio-2.0.so.0
Using native(wrapped) libgmodule-2.0.so.0
Using native(wrapped) libgdk_pixbuf-2.0.so.0
Using native(wrapped) libSDL-1.2.so.0
Using native(wrapped) libm.so.6
Using native(wrapped) libdl.so.2
Using native(wrapped) librt.so.1
Using native(wrapped) libpthread.so.0
Using native(wrapped) libGLU.so.1
Using native(wrapped) libGL.so.1
Using native(wrapped) libz.so.1
Using emulated libfmodex-4.24.16.so
Using emulated /usr/lib/i386-linux-gnu/libstdc++.so.6
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux.so.2
Using emulated /usr/lib/i386-linux-gnu/libgcc_s.so.1
Using native(wrapped) libcrypto.so.1
Warning: Weak Symbol _ZGTtnaj not found, cannot apply R_386_JMP_SLOT @0xb2a8719c (0x6b506)
Warning: Weak Symbol _ZGTtdlPv not found, cannot apply R_386_JMP_SLOT @0xb2a87478 (0x6c076)
Error: Symbol fts_set not found, cannot apply R_386_JMP_SLOT @0x88972c0 (0x816b406)
Zandronum 3.0 - 170901-1140 - SDL version
Compiled on Sep  1 2017
Using video driver x11

M_LoadDefaults: Load system defaults.
Gameinfo scan took 0 ms
W_Init: Init WADfiles.
 adding /home/pi/zandronum3/zandronum3.0-linux-x86/zandronum.pk3, 689 lumps
 adding ./DOOM2.WAD, 2919 lumps
I_Init: Setting up machine state.
CPU Vendor ID: GenuineIntel
  Family 1, Model 0, Stepping 1
  Features: MMX SSE SSE2
I_InitSound: Initializing FMOD
FMOD Sound System, copyright � Firelight Technologies Pty, Ltd., 1994-2009.
Loaded FMOD version 4.24.16
Cannot read ELF Header
Error: reading elf header of /home/pi/zandronum3/zandronum3.0-linux-x86/liboutput_sdl.so
Warning: Cannot dlopen("/home/pi/zandronum3/zandronum3.0-linux-x86/liboutput_sdl.so"/0xb549ae7e, 1)
Cannot read ELF Header
Error: reading elf header of liboutput_sdl.so
Warning: Cannot dlopen("liboutput_sdl.so"/0x8794580, 1)
OSS could not be initialized. Trying ALSA.
Warning: Cannot dlopen("libasound.so"/0xb2c04a1e, 101)
Using native(wrapped) libasound.so.2
V_Init: allocate screen.
Using in-memory database. The database will not be saved on exit.
S_Init: Setting up sound.
ST_Init: Init startup screen.
Checking cmd-line parameters...


*** Fatal Error ***
!!! Failed to exec debug process
bfready
 
Joined: 08 Apr 2020

Re: Suggestions for playing multiplayer doom on Rasperry Pi

Postby Rachael » Fri Apr 10, 2020 6:14 am

You're welcome, hope you get it working. I'll continue poking at this and see if I can find anything on my end.
User avatar
Rachael
Admin
 
Joined: 13 Jan 2004
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle
Operating System: Windows 10/8.1/8/201x 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: nVidia with Vulkan support

Re: Suggestions for playing multiplayer doom on Rasperry Pi

Postby bfready » Sat Apr 11, 2020 12:30 pm

Hey, Rachael.

I tried recompiling zandronum 3. I couldn't recall what problem I had the last time (a few months ago), but I can confirm that is was FMOD that was giving me the compilation errors. I have the fmod libraries and include files, It didn't initially find the FMOD include directory in cmake, so I used ccmake to update the path. There were no errors in the cmake after this. Once I started make, it got up to 27%.. Erroring out for something related to FMOD. Unrecognized name-types? FMOD_CAP was the first one. Maybe I don't have FMOD fully installed or there's a library file missing or something...?

Code: Select allExpand view
ere
 case op + 0x00: /* zp */\
 ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:570:2: note: in expansion of macro ‘ARITH_ADDR_MODES’
  ARITH_ADDR_MODES( 0x05 ) // ORA
  ^~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:189:44: warning: this statement may fall through [-Wimplicit-fallthrough=]
 #define HANDLE_PAGE_CROSSING( lsb ) s_time += (lsb) >> 8;
                                     ~~~~~~~^~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:222:2: note: in expansion of macro ‘HANDLE_PAGE_CROSSING’
  HANDLE_PAGE_CROSSING( data );\
  ^~~~~~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:570:2: note: in expansion of macro ‘ARITH_ADDR_MODES’
  ARITH_ADDR_MODES( 0x05 ) // ORA
  ^~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:223:1: note: here
 case op + 0x08: /* abs */\
 ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:570:2: note: in expansion of macro ‘ARITH_ADDR_MODES’
  ARITH_ADDR_MODES( 0x05 ) // ORA
  ^~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:22:40: warning: this statement may fall through [-Wimplicit-fallthrough=]
 #define CACHE_TIME()    (void) (s_time = s.time)
                                ~~~~~~~~^~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:228:2: note: in expansion of macro ‘CACHE_TIME’
  CACHE_TIME();\
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:570:2: note: in expansion of macro ‘ARITH_ADDR_MODES’
  ARITH_ADDR_MODES( 0x05 ) // ORA
  ^~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:229:1: note: here
 case op + 0x04: /* imm */\
 ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:570:2: note: in expansion of macro ‘ARITH_ADDR_MODES’
  ARITH_ADDR_MODES( 0x05 ) // ORA
  ^~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:212:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
  data = uint8_t (data + x);\
  ~~~~~^~~~~~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:599:2: note: in expansion of macro ‘ARITH_ADDR_MODES’
  ARITH_ADDR_MODES( 0xE5 ) // SBC
  ^~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:213:1: note: here
 case op + 0x00: /* zp */\
 ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:599:2: note: in expansion of macro ‘ARITH_ADDR_MODES’
  ARITH_ADDR_MODES( 0xE5 ) // SBC
  ^~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:189:44: warning: this statement may fall through [-Wimplicit-fallthrough=]
 #define HANDLE_PAGE_CROSSING( lsb ) s_time += (lsb) >> 8;
                                     ~~~~~~~^~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:222:2: note: in expansion of macro ‘HANDLE_PAGE_CROSSING’
  HANDLE_PAGE_CROSSING( data );\
  ^~~~~~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:599:2: note: in expansion of macro ‘ARITH_ADDR_MODES’
  ARITH_ADDR_MODES( 0xE5 ) // SBC
  ^~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:223:1: note: here
 case op + 0x08: /* abs */\
 ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:599:2: note: in expansion of macro ‘ARITH_ADDR_MODES’
  ARITH_ADDR_MODES( 0xE5 ) // SBC
  ^~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:22:40: warning: this statement may fall through [-Wimplicit-fallthrough=]
 #define CACHE_TIME()    (void) (s_time = s.time)
                                ~~~~~~~~^~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:228:2: note: in expansion of macro ‘CACHE_TIME’
  CACHE_TIME();\
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:599:2: note: in expansion of macro ‘ARITH_ADDR_MODES’
  ARITH_ADDR_MODES( 0xE5 ) // SBC
  ^~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:229:1: note: here
 case op + 0x04: /* imm */\
 ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:599:2: note: in expansion of macro ‘ARITH_ADDR_MODES’
  ARITH_ADDR_MODES( 0xE5 ) // SBC
  ^~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:212:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
  data = uint8_t (data + x);\
  ~~~~~^~~~~~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:604:2: note: in expansion of macro ‘ARITH_ADDR_MODES’
  ARITH_ADDR_MODES( 0x65 ) // ADC
  ^~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:213:1: note: here
 case op + 0x00: /* zp */\
 ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:604:2: note: in expansion of macro ‘ARITH_ADDR_MODES’
  ARITH_ADDR_MODES( 0x65 ) // ADC
  ^~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:189:44: warning: this statement may fall through [-Wimplicit-fallthrough=]
 #define HANDLE_PAGE_CROSSING( lsb ) s_time += (lsb) >> 8;
                                     ~~~~~~~^~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:222:2: note: in expansion of macro ‘HANDLE_PAGE_CROSSING’
  HANDLE_PAGE_CROSSING( data );\
  ^~~~~~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:604:2: note: in expansion of macro ‘ARITH_ADDR_MODES’
  ARITH_ADDR_MODES( 0x65 ) // ADC
  ^~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:223:1: note: here
 case op + 0x08: /* abs */\
 ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:604:2: note: in expansion of macro ‘ARITH_ADDR_MODES’
  ARITH_ADDR_MODES( 0x65 ) // ADC
  ^~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:22:40: warning: this statement may fall through [-Wimplicit-fallthrough=]
 #define CACHE_TIME()    (void) (s_time = s.time)
                                ~~~~~~~~^~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:228:2: note: in expansion of macro ‘CACHE_TIME’
  CACHE_TIME();\
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:604:2: note: in expansion of macro ‘ARITH_ADDR_MODES’
  ARITH_ADDR_MODES( 0x65 ) // ADC
  ^~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:229:1: note: here
 case op + 0x04: /* imm */\
 ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:604:2: note: in expansion of macro ‘ARITH_ADDR_MODES’
  ARITH_ADDR_MODES( 0x65 ) // ADC
  ^~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:620:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
   c = 0;
   ~~^~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:621:2: note: here
  case 0x6A: // ROR A
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:644:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data += x;
   ~~~~~^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:645:2: note: here
  case 0x4E: // LSR abs
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:646:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
   c = 0;
   ~~^~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:647:2: note: here
  case 0x6E: // ROR abs
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:662:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data += x;
   ~~~~~^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:663:2: note: here
  case 0x0E: // ASL abs
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:664:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
   c = 0;
   ~~^~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:665:2: note: here
  case 0x2E: // ROL abs
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:686:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = uint8_t (data + x);
   ~~~~~^~~~~~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:687:2: note: here
  case 0x46: // LSR zp
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:688:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
   c = 0;
   ~~^~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:689:2: note: here
  case 0x66: // ROR zp
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:702:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = uint8_t (data + x);
   ~~~~~^~~~~~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:703:2: note: here
  case 0x06: // ASL zp
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:704:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
   c = 0;
   ~~^~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:705:2: note: here
  case 0x26: // ROL zp
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:720:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = uint8_t (data + x);
   ~~~~~^~~~~~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:721:2: note: here
  case 0xE6: // INC zp
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:726:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = uint8_t (data + x);
   ~~~~~^~~~~~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:727:2: note: here
  case 0xC6: // DEC zp
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:189:44: warning: this statement may fall through [-Wimplicit-fallthrough=]
 #define HANDLE_PAGE_CROSSING( lsb ) s_time += (lsb) >> 8;
                                     ~~~~~~~^~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:915:3: note: in expansion of macro ‘HANDLE_PAGE_CROSSING’
   HANDLE_PAGE_CROSSING( data + x );
   ^~~~~~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:916:2: note: here
  case 0x0C:
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:917:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
   pc++;
   ~~^~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Sap_Cpu.cpp:919:2: note: here
  case 0x74: case 0x04: case 0x14: case 0x34: case 0x44: case 0x54: case 0x64:
  ^~~~
[ 14%] Building C object dumb/CMakeFiles/dumb.dir/src/helpers/riff.o
[ 14%] Building CXX object game-music-emu/gme/CMakeFiles/gme.dir/Sap_Emu.cpp.o
[ 14%] Building C object dumb/CMakeFiles/dumb.dir/src/helpers/sampbuf.o
[ 15%] Building C object dumb/CMakeFiles/dumb.dir/src/helpers/silence.o
[ 15%] Building CXX object game-music-emu/gme/CMakeFiles/gme.dir/Snes_Spc.cpp.o
[ 15%] Building C object dumb/CMakeFiles/dumb.dir/src/helpers/stdfile.o
[ 15%] Building CXX object tools/re2c/CMakeFiles/re2c.dir/main.o
[ 15%] Building C object dumb/CMakeFiles/dumb.dir/src/it/itload.o
[ 15%] Building C object dumb/CMakeFiles/dumb.dir/src/it/itload2.o
[ 15%] Building C object dumb/CMakeFiles/dumb.dir/src/it/itmisc.o
[ 16%] Building CXX object game-music-emu/gme/CMakeFiles/gme.dir/Spc_Cpu.cpp.o
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.cpp: In member function ‘void Snes_Spc::cpu_write(int, int, Snes_Spc::rel_time_t)’:
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.cpp:438:39: warning: left shift of negative value [-Wshift-negative-value]
    if ( ((~0x2F00 << (bits_in_int - 16)) << reg) < 0 ) // 36%
                                       ^
In file included from /home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.cpp:565:
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h: In member function ‘BOOST::uint8_t* Snes_Spc::run_until_(Snes_Spc::time_t)’:
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:298:40: warning: left shift of negative value [-Wshift-negative-value]
     if ( ((~0x2F00 << (bits_in_int - 16)) << i) < 0 ) // 12%
                                        ^
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:350:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data += x;\
   ~~~~~^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:359:2: note: in expansion of macro ‘ADDR_MODES_’
  ADDR_MODES_( op )\
  ^~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:371:2: note: in expansion of macro ‘ADDR_MODES_NO_DP’
  ADDR_MODES_NO_DP( 0xE8 ) // MOV A,addr
  ^~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:331:21: note: here
 #define CASE( n )   case n:
                     ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:351:2: note: in expansion of macro ‘CASE’
  CASE( op - 0x03 ) /* abs */\
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:359:2: note: in expansion of macro ‘ADDR_MODES_’
  ADDR_MODES_( op )\
  ^~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:371:2: note: in expansion of macro ‘ADDR_MODES_NO_DP’
  ADDR_MODES_NO_DP( 0xE8 ) // MOV A,addr
  ^~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:388:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = (uint8_t) (data + y);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:389:2: note: here
  case 0xF8: // MOV X,dp
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:396:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = READ( 0, data );
        ^
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:397:2: note: here
  case 0xCD: // MOV X,imm
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:403:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = (uint8_t) (data + x);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:404:2: note: here
  case 0xEB: // MOV Y,dp
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:350:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data += x;\
   ~~~~~^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:359:2: note: in expansion of macro ‘ADDR_MODES_’
  ADDR_MODES_( op )\
  ^~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:425:2: note: in expansion of macro ‘ADDR_MODES_NO_DP’
  ADDR_MODES_NO_DP( 0xC8 ) // MOV addr,A
  ^~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:331:21: note: here
 #define CASE( n )   case n:
                     ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:351:2: note: in expansion of macro ‘CASE’
  CASE( op - 0x03 ) /* abs */\
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:359:2: note: in expansion of macro ‘ADDR_MODES_’
  ADDR_MODES_( op )\
  ^~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:425:2: note: in expansion of macro ‘ADDR_MODES_NO_DP’
  ADDR_MODES_NO_DP( 0xC8 ) // MOV addr,A
  ^~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:443:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = (uint8_t) (data + y);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:444:2: note: here
  case 0xD8: // MOV dp,X
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:449:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = (uint8_t) (data + x);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:450:2: note: here
  case 0xCB: // MOV dp,Y
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:350:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data += x;\
   ~~~~~^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:364:2: note: in expansion of macro ‘ADDR_MODES_’
  ADDR_MODES_( op )\
  ^~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:494:2: note: in expansion of macro ‘ADDR_MODES’
  ADDR_MODES( op ) /* addr */\
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:517:2: note: in expansion of macro ‘LOGICAL_OP’
  LOGICAL_OP( 0x28, & ); // AND
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:331:21: note: here
 #define CASE( n )   case n:
                     ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:351:2: note: in expansion of macro ‘CASE’
  CASE( op - 0x03 ) /* abs */\
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:364:2: note: in expansion of macro ‘ADDR_MODES_’
  ADDR_MODES_( op )\
  ^~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:494:2: note: in expansion of macro ‘ADDR_MODES’
  ADDR_MODES( op ) /* addr */\
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:517:2: note: in expansion of macro ‘LOGICAL_OP’
  LOGICAL_OP( 0x28, & ); // AND
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:356:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = (uint8_t) (data + x);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:364:2: note: in expansion of macro ‘ADDR_MODES_’
  ADDR_MODES_( op )\
  ^~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:494:2: note: in expansion of macro ‘ADDR_MODES’
  ADDR_MODES( op ) /* addr */\
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:517:2: note: in expansion of macro ‘LOGICAL_OP’
  LOGICAL_OP( 0x28, & ); // AND
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:331:21: note: here
 #define CASE( n )   case n:
                     ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:365:2: note: in expansion of macro ‘CASE’
  CASE( op - 0x04 ) /* dp */\
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:494:2: note: in expansion of macro ‘ADDR_MODES’
  ADDR_MODES( op ) /* addr */\
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:517:2: note: in expansion of macro ‘LOGICAL_OP’
  LOGICAL_OP( 0x28, & ); // AND
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:495:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = READ( 0, data );\
        ^
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:517:2: note: in expansion of macro ‘LOGICAL_OP’
  LOGICAL_OP( 0x28, & ); // AND
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:496:2: note: here
  case op: /* imm */\
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:517:2: note: in expansion of macro ‘LOGICAL_OP’
  LOGICAL_OP( 0x28, & ); // AND
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:350:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data += x;\
   ~~~~~^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:364:2: note: in expansion of macro ‘ADDR_MODES_’
  ADDR_MODES_( op )\
  ^~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:494:2: note: in expansion of macro ‘ADDR_MODES’
  ADDR_MODES( op ) /* addr */\
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:519:2: note: in expansion of macro ‘LOGICAL_OP’
  LOGICAL_OP( 0x08, | ); // OR
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:331:21: note: here
 #define CASE( n )   case n:
                     ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:351:2: note: in expansion of macro ‘CASE’
  CASE( op - 0x03 ) /* abs */\
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:364:2: note: in expansion of macro ‘ADDR_MODES_’
  ADDR_MODES_( op )\
  ^~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:494:2: note: in expansion of macro ‘ADDR_MODES’
  ADDR_MODES( op ) /* addr */\
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:519:2: note: in expansion of macro ‘LOGICAL_OP’
  LOGICAL_OP( 0x08, | ); // OR
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:356:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = (uint8_t) (data + x);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:364:2: note: in expansion of macro ‘ADDR_MODES_’
  ADDR_MODES_( op )\
  ^~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:494:2: note: in expansion of macro ‘ADDR_MODES’
  ADDR_MODES( op ) /* addr */\
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:519:2: note: in expansion of macro ‘LOGICAL_OP’
  LOGICAL_OP( 0x08, | ); // OR
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:331:21: note: here
 #define CASE( n )   case n:
                     ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:365:2: note: in expansion of macro ‘CASE’
  CASE( op - 0x04 ) /* dp */\
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:494:2: note: in expansion of macro ‘ADDR_MODES’
  ADDR_MODES( op ) /* addr */\
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:519:2: note: in expansion of macro ‘LOGICAL_OP’
  LOGICAL_OP( 0x08, | ); // OR
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:495:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = READ( 0, data );\
        ^
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:519:2: note: in expansion of macro ‘LOGICAL_OP’
  LOGICAL_OP( 0x08, | ); // OR
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:496:2: note: here
  case op: /* imm */\
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:519:2: note: in expansion of macro ‘LOGICAL_OP’
  LOGICAL_OP( 0x08, | ); // OR
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:350:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data += x;\
   ~~~~~^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:364:2: note: in expansion of macro ‘ADDR_MODES_’
  ADDR_MODES_( op )\
  ^~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:494:2: note: in expansion of macro ‘ADDR_MODES’
  ADDR_MODES( op ) /* addr */\
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:521:2: note: in expansion of macro ‘LOGICAL_OP’
  LOGICAL_OP( 0x48, ^ ); // EOR
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:331:21: note: here
 #define CASE( n )   case n:
                     ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:351:2: note: in expansion of macro ‘CASE’
  CASE( op - 0x03 ) /* abs */\
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:364:2: note: in expansion of macro ‘ADDR_MODES_’
  ADDR_MODES_( op )\
  ^~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:494:2: note: in expansion of macro ‘ADDR_MODES’
  ADDR_MODES( op ) /* addr */\
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:521:2: note: in expansion of macro ‘LOGICAL_OP’
  LOGICAL_OP( 0x48, ^ ); // EOR
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:356:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = (uint8_t) (data + x);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:364:2: note: in expansion of macro ‘ADDR_MODES_’
  ADDR_MODES_( op )\
  ^~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:494:2: note: in expansion of macro ‘ADDR_MODES’
  ADDR_MODES( op ) /* addr */\
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:521:2: note: in expansion of macro ‘LOGICAL_OP’
  LOGICAL_OP( 0x48, ^ ); // EOR
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:331:21: note: here
 #define CASE( n )   case n:
                     ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:365:2: note: in expansion of macro ‘CASE’
  CASE( op - 0x04 ) /* dp */\
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:494:2: note: in expansion of macro ‘ADDR_MODES’
  ADDR_MODES( op ) /* addr */\
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:521:2: note: in expansion of macro ‘LOGICAL_OP’
  LOGICAL_OP( 0x48, ^ ); // EOR
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:495:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = READ( 0, data );\
        ^
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:521:2: note: in expansion of macro ‘LOGICAL_OP’
  LOGICAL_OP( 0x48, ^ ); // EOR
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:496:2: note: here
  case op: /* imm */\
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:521:2: note: in expansion of macro ‘LOGICAL_OP’
  LOGICAL_OP( 0x48, ^ ); // EOR
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:350:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data += x;\
   ~~~~~^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:364:2: note: in expansion of macro ‘ADDR_MODES_’
  ADDR_MODES_( op )\
  ^~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:525:2: note: in expansion of macro ‘ADDR_MODES’
  ADDR_MODES( 0x68 ) // CMP addr
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:331:21: note: here
 #define CASE( n )   case n:
                     ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:351:2: note: in expansion of macro ‘CASE’
  CASE( op - 0x03 ) /* abs */\
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:364:2: note: in expansion of macro ‘ADDR_MODES_’
  ADDR_MODES_( op )\
  ^~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:525:2: note: in expansion of macro ‘ADDR_MODES’
  ADDR_MODES( 0x68 ) // CMP addr
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:356:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = (uint8_t) (data + x);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:364:2: note: in expansion of macro ‘ADDR_MODES_’
  ADDR_MODES_( op )\
  ^~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:525:2: note: in expansion of macro ‘ADDR_MODES’
  ADDR_MODES( 0x68 ) // CMP addr
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:331:21: note: here
 #define CASE( n )   case n:
                     ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:365:2: note: in expansion of macro ‘CASE’
  CASE( op - 0x04 ) /* dp */\
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:525:2: note: in expansion of macro ‘ADDR_MODES’
  ADDR_MODES( 0x68 ) // CMP addr
  ^~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:526:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = READ( 0, data );
        ^
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:527:2: note: here
  case 0x68: // CMP imm
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:541:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = READ_DP( -3, data );
        ^
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:542:2: note: here
  case 0x78: // CMP dp,imm
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:555:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = READ( 0, data );
        ^
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:556:2: note: here
  case 0xC8: // CMP X,imm
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:569:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = READ( 0, data );
        ^
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:570:2: note: here
  case 0xAD: // CMP Y,imm
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:644:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = (uint8_t) (data + x);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:645:2: note: here
  case 0x8B: // DEC dp
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:662:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
   c = 0;
   ~~^~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:663:2: note: here
  case 0x7C:{// ROR A
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:671:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
   c = 0;
   ~~^~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:672:2: note: here
  case 0x3C:{// ROL A
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:685:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
   c = 0;
   ~~^~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:686:2: note: here
  case 0x3B: // ROL dp+X
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:687:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = (uint8_t) (data + x);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:688:2: note: here
  case 0x2B: // ROL dp
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:692:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
   c = 0;
   ~~^~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:693:2: note: here
  case 0x2C: // ROL abs
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:707:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
   c = 0;
   ~~^~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:708:2: note: here
  case 0x7B: // ROR dp+X
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:709:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
   data = (uint8_t) (data + x);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:710:2: note: here
  case 0x6B: // ROR dp
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:714:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
   c = 0;
   ~~^~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/game-music-emu/gme/Spc_Cpu.h:715:2: note: here
  case 0x6C: // ROR abs
  ^~~~
[ 16%] Building C object dumb/CMakeFiles/dumb.dir/src/it/itorder.o
[ 17%] Building C object dumb/CMakeFiles/dumb.dir/src/it/itread.o
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/dumb/src/it/itread.c: In function ‘it_load_sigdata’:
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/dumb/src/it/itread.c:1000:6: warning: variable ‘cwt’ set but not used [-Wunused-but-set-variable]
  int cwt, cmwt;
      ^~~
[ 17%] Building CXX object game-music-emu/gme/CMakeFiles/gme.dir/Spc_Dsp.cpp.o
[ 17%] Building C object dumb/CMakeFiles/dumb.dir/src/it/itread2.o
[ 17%] Building C object dumb/CMakeFiles/dumb.dir/src/it/itrender.o
[ 17%] Building CXX object game-music-emu/gme/CMakeFiles/gme.dir/Spc_Emu.cpp.o
[ 17%] Building CXX object game-music-emu/gme/CMakeFiles/gme.dir/Spc_Filter.cpp.o
[ 17%] Building CXX object game-music-emu/gme/CMakeFiles/gme.dir/Vgm_Emu.cpp.o
[ 17%] Building CXX object tools/re2c/CMakeFiles/re2c.dir/mbo_getopt.o
[ 17%] Building CXX object game-music-emu/gme/CMakeFiles/gme.dir/Vgm_Emu_Impl.cpp.o
[ 17%] Building CXX object tools/re2c/CMakeFiles/re2c.dir/parser.o
[ 18%] Building CXX object game-music-emu/gme/CMakeFiles/gme.dir/Ym2413_Emu.cpp.o
[ 18%] Linking CXX static library libgme.a
[ 18%] Built target gme
[ 18%] Building CXX object tools/re2c/CMakeFiles/re2c.dir/scanner.o
[ 18%] Building C object dumb/CMakeFiles/dumb.dir/src/it/itunload.o
[ 18%] Building C object dumb/CMakeFiles/dumb.dir/src/it/load669.o
[ 18%] Building C object dumb/CMakeFiles/dumb.dir/src/it/load6692.o
Scanning dependencies of target arithchk
[ 18%] Building C object gdtoa/CMakeFiles/arithchk.dir/arithchk.o
[ 18%] Linking C executable arithchk
[ 18%] Built target arithchk
Scanning dependencies of target protocolspec
[ 19%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loadasy.o
[ 19%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loadasy2.o
[ 19%] Building CXX object tools/re2c/CMakeFiles/re2c.dir/substr.o
[ 19%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loadmod.o
[ 19%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loadmod2.o
[ 19%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loadmtm.o
network/servercommands.h written
network/servercommands.cpp written
[ 19%] Built target protocolspec
[ 19%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loadmtm2.o
Scanning dependencies of target output_sdl
[ 19%] Building C object output_sdl/CMakeFiles/output_sdl.dir/output_sdl.o
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/output_sdl/output_sdl.c:86:86: error: unknown type name ‘FMOD_CAPS’; did you mean ‘FMOD_TAG’?
 MOD_RESULT F_CALLBACK GetDriverCaps(FMOD_OUTPUT_STATE *output_state, int id, FMOD_CAPS *caps)
                                                                              ^~~~~~~~~
                                                                              FMOD_TAG
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/output_sdl/output_sdl.c:197:2: warning: initialization of ‘unsigned int’ from ‘char *’ makes integer from pointer without a cast [-Wint-conversion]
  "SDL Output",  // name
  ^~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/output_sdl/output_sdl.c:197:2: note: (near initialization for ‘Desc.apiversion’)
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/output_sdl/output_sdl.c:198:2: warning: initialization of ‘const char *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
  1,     // version
  ^
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/output_sdl/output_sdl.c:198:2: note: (near initialization for ‘Desc.name’)
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/output_sdl/output_sdl.c:200:2: warning: initialization of ‘unsigned int’ from ‘FMOD_RESULT (*)(FMOD_OUTPUT_STATE *, int *)’ {aka ‘enum FMOD_RESULT (*)(struct FMOD_OUTPUT_STATE *, int *)’} makes integer from pointer without a cast [-Wint-conversion]
  GetNumDrivers,
  ^~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/output_sdl/output_sdl.c:200:2: note: (near initialization for ‘Desc.method’)
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/output_sdl/output_sdl.c:201:2: warning: initialization of ‘FMOD_RESULT (*)(FMOD_OUTPUT_STATE *, int *)’ {aka ‘enum FMOD_RESULT (*)(struct FMOD_OUTPUT_STATE *, int *)’} from incompatible pointer type ‘FMOD_RESULT (*)(FMOD_OUTPUT_STATE *, int,  char *, int)’ {aka ‘enum FMOD_RESULT (*)(struct FMOD_OUTPUT_STATE *, int,  char *, int)’} [-Wincompatible-pointer-types]
  GetDriverName,
  ^~~~~~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/output_sdl/output_sdl.c:201:2: note: (near initialization for ‘Desc.getnumdrivers’)
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/output_sdl/output_sdl.c:202:2: error: ‘GetDriverCaps’ undeclared here (not in a function); did you mean ‘GetDriverName’?
  GetDriverCaps,
  ^~~~~~~~~~~~~
  GetDriverName
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/output_sdl/output_sdl.c:203:2: warning: initialization of ‘FMOD_RESULT (*)(FMOD_OUTPUT_STATE *, int,  FMOD_INITFLAGS,  int *, FMOD_SPEAKERMODE *, int *, FMOD_SOUND_FORMAT *, int,  int,  void *)’ {aka ‘enum FMOD_RESULT (*)(struct FMOD_OUTPUT_STATE *, int,  unsigned int,  int *, enum FMOD_SPEAKERMODE *, int *, enum FMOD_SOUND_FORMAT *, int,  int,  void *)’} from incompatible pointer type ‘FMOD_RESULT (*)(FMOD_OUTPUT_STATE *, int,  FMOD_INITFLAGS,  int *, int,  FMOD_SOUND_FORMAT *, int,  int,  void *)’ {aka ‘enum FMOD_RESULT (*)(struct FMOD_OUTPUT_STATE *, int,  unsigned int,  int *, int,  enum FMOD_SOUND_FORMAT *, int,  int,  void *)’} [-Wincompatible-pointer-types]
  Init,
  ^~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/output_sdl/output_sdl.c:203:2: note: (near initialization for ‘Desc.init’)
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/output_sdl/output_sdl.c:206:2: warning: initialization of ‘FMOD_RESULT (*)(FMOD_OUTPUT_STATE *)’ {aka ‘enum FMOD_RESULT (*)(struct FMOD_OUTPUT_STATE *)’} from incompatible pointer type ‘FMOD_RESULT (*)(FMOD_OUTPUT_STATE *, void **)’ {aka ‘enum FMOD_RESULT (*)(struct FMOD_OUTPUT_STATE *, void **)’} [-Wincompatible-pointer-types]
  GetHandle,
  ^~~~~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/output_sdl/output_sdl.c:206:2: note: (near initialization for ‘Desc.close’)
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/output_sdl/output_sdl.c:212:1: error: unknown type name ‘F_DECLSPEC’; did you mean ‘DECLSPEC’?
 F_DECLSPEC F_DLLEXPORT FMOD_OUTPUT_DESCRIPTION * F_API FMODGetOutputDescription()
 ^~~~~~~~~~
 DECLSPEC
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/output_sdl/output_sdl.c:212:23: error: expected ‘;’ before ‘FMOD_OUTPUT_DESCRIPTION’
 F_DECLSPEC F_DLLEXPORT FMOD_OUTPUT_DESCRIPTION * F_API FMODGetOutputDescription()
                       ^~~~~~~~~~~~~~~~~~~~~~~~
                       ;
make[2]: *** [output_sdl/CMakeFiles/output_sdl.dir/build.make:63: output_sdl/CMakeFiles/output_sdl.dir/output_sdl.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1130: output_sdl/CMakeFiles/output_sdl.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 20%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loadokt.o
[ 21%] Building CXX object tools/re2c/CMakeFiles/re2c.dir/translate.o
[ 21%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loadokt2.o
[ 21%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loadoldpsm.o
[ 21%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loadoldpsm2.o
[ 21%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loadpsm.o
[ 22%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loadptm.o
[ 22%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loadpsm2.o
[ 22%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loadptm2.o
[ 22%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loadriff.o
[ 22%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loadriff2.o
[ 22%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loads3m.o
[ 22%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loads3m2.o
[ 22%] Linking CXX executable re2c
[ 23%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loadstm.o
[ 23%] Built target re2c
[ 23%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loadstm2.o
[ 23%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loadxm.o
[ 23%] Building C object dumb/CMakeFiles/dumb.dir/src/it/loadxm2.o
[ 23%] Building C object dumb/CMakeFiles/dumb.dir/src/it/ptmeffect.o
[ 23%] Building C object dumb/CMakeFiles/dumb.dir/src/it/read669.o
[ 24%] Building C object dumb/CMakeFiles/dumb.dir/src/it/read6692.o
[ 24%] Building C object dumb/CMakeFiles/dumb.dir/src/it/readam.o
[ 24%] Building C object dumb/CMakeFiles/dumb.dir/src/it/readasy.o
[ 24%] Building C object dumb/CMakeFiles/dumb.dir/src/it/readdsmf.o
[ 24%] Building C object dumb/CMakeFiles/dumb.dir/src/it/readmod.o
[ 24%] Building C object dumb/CMakeFiles/dumb.dir/src/it/readmod2.o
[ 25%] Building C object dumb/CMakeFiles/dumb.dir/src/it/readmtm.o
[ 25%] Building C object dumb/CMakeFiles/dumb.dir/src/it/readokt.o
[ 25%] Building C object dumb/CMakeFiles/dumb.dir/src/it/readokt2.o
[ 25%] Building C object dumb/CMakeFiles/dumb.dir/src/it/readoldpsm.o
[ 25%] Building C object dumb/CMakeFiles/dumb.dir/src/it/readpsm.o
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/dumb/src/it/readpsm.c: In function ‘it_psm_process_sample’:
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/dumb/src/it/readpsm.c:61:6: warning: variable ‘panpos’ set but not used [-Wunused-but-set-variable]
  int panpos;
      ^~~~~~
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/dumb/src/it/readpsm.c: In function ‘it_psm_load_sigdata’:
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/dumb/src/it/readpsm.c:475:6: warning: variable ‘first_pattern’ set but not used [-Wunused-but-set-variable]
  int first_pattern;
      ^~~~~~~~~~~~~
[ 25%] Building C object dumb/CMakeFiles/dumb.dir/src/it/readptm.o
[ 26%] Building C object dumb/CMakeFiles/dumb.dir/src/it/readriff.o
[ 26%] Building C object dumb/CMakeFiles/dumb.dir/src/it/reads3m.o
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/dumb/src/it/reads3m.c: In function ‘it_s3m_load_sigdata’:
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/dumb/src/it/reads3m.c:464:6: warning: variable ‘flags’ set but not used [-Wunused-but-set-variable]
  int flags, ffi;
      ^~~~~
[ 26%] Building C object dumb/CMakeFiles/dumb.dir/src/it/reads3m2.o
[ 26%] Building C object dumb/CMakeFiles/dumb.dir/src/it/readstm.o
[ 26%] Building C object dumb/CMakeFiles/dumb.dir/src/it/readstm2.o
In function ‘it_stm_load_sigdata’,
    inlined from ‘dumb_read_stm_quick’ at /home/pi/Torr_Samaho-zandronum-c11f78a5b028/dumb/src/it/readstm.c:399:12:
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/dumb/src/it/readstm.c:351:15: warning: argument 1 value ‘2147483649’ exceeds maximum object size 2147483647 [-Walloc-size-larger-than=]
  data_block = malloc( p - o );
               ^~~~~~~~~~~~~~~
In file included from /home/pi/Torr_Samaho-zandronum-c11f78a5b028/dumb/src/it/readstm.c:21:
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/dumb/src/it/readstm.c: In function ‘dumb_read_stm_quick’:
/usr/include/stdlib.h:539:14: note: in a call to allocation function ‘malloc’ declared here
 extern void *malloc (size_t __size) __THROW __attribute_malloc__ __wur;
              ^~~~~~
[ 26%] Building C object dumb/CMakeFiles/dumb.dir/src/it/readxm.o
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/dumb/src/it/readxm.c: In function ‘it_xm_read_sample_data’:
/home/pi/Torr_Samaho-zandronum-c11f78a5b028/dumb/src/it/readxm.c:766:6: warning: variable ‘n_channels’ set but not used [-Wunused-but-set-variable]
  int n_channels;
      ^~~~~~~~~~
[ 27%] Building C object dumb/CMakeFiles/dumb.dir/src/it/readxm2.o
[ 27%] Building C object dumb/CMakeFiles/dumb.dir/src/it/xmeffect.o
[ 27%] Linking C static library libdumb.a
[ 27%] Built target dumb
[ 27%] Linking C static library libsqlite3.a
[ 27%] Built target sqlite3
make: *** [Makefile:84: all] Error 2
bfready
 
Joined: 08 Apr 2020

Re: Suggestions for playing multiplayer doom on Rasperry Pi

Postby drfrag » Sun Apr 12, 2020 2:25 am

Looks like you're using the wrong FMod version, you need an older one. The official release is built with 4.24.
User avatar
drfrag
Os voy a romper a pedazos!
Vintage GZDoom Developer
 
Joined: 23 Apr 2004
Location: Spain
Discord: drfrag#3555
Github ID: drfrag666

Re: Suggestions for playing multiplayer doom on Rasperry Pi

Postby Rachael » Sun Apr 12, 2020 5:45 am

Are there ARM FMod libraries anywhere that would actually work?
User avatar
Rachael
Admin
 
Joined: 13 Jan 2004
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle
Operating System: Windows 10/8.1/8/201x 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: nVidia with Vulkan support

Re: Suggestions for playing multiplayer doom on Rasperry Pi

Postby bfready » Sun Apr 12, 2020 8:07 am

Hi, Rachael.

Rachael wrote:Are there ARM FMod libraries anywhere that would actually work?


I thought so.

/usr/local/include <-- this is where FMOD h and hpp files are:
Code: Select allExpand view
-rw-r--r-- 1 root root 17554 Apr 11 12:06 fmod_studio.hpp
-rw-r--r-- 1 root root 22885 Apr 11 12:06 fmod_studio.h
-rw-r--r-- 1 root root 13073 Apr 11 12:06 fmod_studio_common.h
-rw-r--r-- 1 root root  7808 Apr 11 12:28 fmod_output.h
-rw-r--r-- 1 root root 36072 Apr 11 12:28 fmod.hpp
-rw-r--r-- 1 root root 49549 Apr 11 12:28 fmod.h
-rw-r--r-- 1 root root 12357 Apr 11 12:28 fmod_errors.h
-rw-r--r-- 1 root root 21827 Apr 11 12:28 fmod_dsp.h
-rw-r--r-- 1 root root 13974 Apr 11 12:28 fmod_dsp_effects.h
-rw-r--r-- 1 root root 35672 Apr 11 12:28 fmod_common.h
-rw-r--r-- 1 root root  4376 Apr 11 12:28 fmod_codec.h



/usr/local/lib <-- this is where the FMOD so files are:
Code: Select allExpand view
-rwxr-xr-x  1 root root  1501064 Apr 11 12:03 libfmodL.so
-rwxr-xr-x  1 root root  1501064 Apr 11 12:03 libfmodL.so.12
-rwxr-xr-x  1 root root  1501064 Apr 11 12:03 libfmodL.so.12.0
-rwxr-xr-x  1 root root  1262952 Apr 11 12:03 libfmod.so
-rwxr-xr-x  1 root root  1262952 Apr 11 12:03 libfmod.so.12
-rwxr-xr-x  1 root root  1262952 Apr 11 12:03 libfmod.so.12.0
-rwxr-xr-x  1 root root  2261376 Apr 11 12:04 libfmodstudioL.so
-rwxr-xr-x  1 root root  2261376 Apr 11 12:04 libfmodstudioL.so.12
-rwxr-xr-x  1 root root  1266032 Apr 11 12:04 libfmodstudio.so
-rwxr-xr-x  1 root root  2261376 Apr 11 12:04 libfmodstudioL.so.12.0
-rwxr-xr-x  1 root root  1266032 Apr 11 12:04 libfmodstudio.so.12.0
-rwxr-xr-x  1 root root  1266032 Apr 11 12:04 libfmodstudio.so.12



Here's the 2 paths in CCMAKE:

Code: Select allExpand view
FMOD_INCLUDE_DIR                 /usr/local/include                           
FMOD_LIBRARY                         /usr/local/lib                               



All of the library files I have are owned by root, so I'm pretty sure this is right.
But, permissions are a bit different on the lib files, compared to the include files.
Do you think the "x" permission is important on include files?

If you or drfrag don't see anything obvious, I may try to look for the 4.24 version of FMOD drfrag pointed out.

I really appreciate the help from both of you!
bfready
 
Joined: 08 Apr 2020

Next

Return to General

Who is online

Users browsing this forum: No registered users and 1 guest