gbserial_receive/wait_data() had issues but the functions are
not used, just "if 0" rather than make sense of them.

https://bugs.gentoo.org/858641
https://bugs.gentoo.org/874999
--- a/src/fileio.h
+++ b/src/fileio.h
@@ -42,4 +42,9 @@
 int gngb_file_eof(GNGB_FILE *f);
 
+#ifdef HAVE_LIBZ
+#include "unzip.h"
+int zip_file_open_next_rom(unzFile file);
+#endif
+
 #endif
 
--- a/src/memory.c
+++ b/src/memory.c
@@ -32,4 +32,5 @@
 #include "serial.h"
 #include "message.h"
+#include "save.h"
 #include "sgb.h"
 
@@ -72,5 +73,8 @@
 Sint16 joy_x_min=0;joy_x_max=0;joy_y_min=0;joy_y_max=0;
 */
-Sint16 joy_x_min=-32767;joy_x_max=32767;joy_y_min=-32767;joy_y_max=32767;
+Sint16 joy_x_min=-32767;
+Sint16 joy_x_max=32767;
+Sint16 joy_y_min=-32767;
+Sint16 joy_y_max=32767;
 
 void (*select_rom_page)(Uint16 adr,Uint8 v);
--- a/src/rom.h
+++ b/src/rom.h
@@ -55,5 +55,8 @@
 extern ROM_TIMER *rom_timer;
 
+int check_dir(char *dir_name);
 int open_rom(char *filename);
+void get_ext_nb(char *r,int n);
+void get_bmp_ext_nb(char *r,int n);
 
 #endif
--- a/src/save.c
+++ b/src/save.c
@@ -1,2 +1,3 @@
+#include <time.h>
 #include "emu.h"
 #include "fileio.h"
@@ -6,4 +7,5 @@
 #include "interrupt.h"
 #include "cpu.h"
+#include "sound.h"
 
 #define FILENAME_LEN 1024
@@ -646,5 +648,5 @@
 /* Movie */
 
-GNGB_MOVIE gngb_movie={NULL,0,NULL};
+GNGB_MOVIE gngb_movie={{0},0,NULL};
 
 void begin_save_movie(void) {
--- a/src/serial.c
+++ b/src/serial.c
@@ -218,4 +218,5 @@
 }
 
+#if 0
 Sint8 gbserial_receive(void) {
 #ifndef WIN32
@@ -237,4 +238,5 @@
 #endif
 }
+#endif
 
 Uint8 gbserial_check2(void) {
@@ -259,4 +261,5 @@
 }
 
+#if 0
 Uint8 gbserial_wait_data(void) {
   Uint8 b;
@@ -284,4 +287,5 @@
   return 0;
 }
+#endif
 
 /* New GbSerial */
--- a/src/serial.h
+++ b/src/serial.h
@@ -42,4 +42,6 @@
 Sint8 gbserial_receive(void);
 char gbserial_check(void);
+Uint8 gbserial_read(void);
+void gbserial_write(Uint8 b);
 Uint8 gbserial_wait_data(void);
 
