From 7440e66d07ae04f9276bf6994bcf53f4aa870388 Mon Sep 17 00:00:00 2001 From: "Azamat H. Hackimov" Date: Fri, 29 May 2020 20:23:14 +0300 Subject: [PATCH] Fix compilation for GCC10 (-fno-common) --- src/emu.c | 4 ++++ src/emu.h | 6 +++--- src/interrupt.c | 4 ++++ src/interrupt.h | 6 +++--- src/menu.c | 2 ++ src/menu.h | 2 +- src/message.c | 2 +- src/message.h | 2 +- src/rom.c | 3 +++ src/rom.h | 4 ++-- src/serial.c | 4 ++++ src/serial.h | 10 ++++++---- src/sgb.c | 6 ++++++ src/sgb.h | 8 ++++---- src/sound.c | 10 ++++++++++ src/sound.h | 16 ++++++++-------- src/video_std.c | 4 ++++ src/video_std.h | 6 +++--- src/video_yuv.c | 6 ++++++ src/video_yuv.h | 12 +++++++----- src/vram.c | 4 ++++ src/vram.h | 6 +++--- 22 files changed, 89 insertions(+), 38 deletions(-) diff --git a/src/emu.c b/src/emu.c index 91d4b88..cdbde0d 100644 --- a/src/emu.c +++ b/src/emu.c @@ -54,6 +54,10 @@ Uint8 jmap[8]={1,1,0,0,3,2,0,1}; Sint16 *joy_axis; Uint8 *joy_but; +GNGB_CONF conf; +SDL_Joystick *sdl_joy; +Uint16 key[SDLK_LAST]; + /* Configuration File */ #define UINTEGER8 1 diff --git a/src/emu.h b/src/emu.h index cb83289..bd4e466 100644 --- a/src/emu.h +++ b/src/emu.h @@ -64,11 +64,11 @@ typedef struct { Sint32 pal[5][4]; }GNGB_CONF; -GNGB_CONF conf; +extern GNGB_CONF conf; -SDL_Joystick *sdl_joy; +extern SDL_Joystick *sdl_joy; -Uint16 key[SDLK_LAST]; +extern Uint16 key[SDLK_LAST]; extern Sint16 *joy_axis; extern Uint8 *joy_but; diff --git a/src/interrupt.c b/src/interrupt.c index 0a736a2..a18814a 100644 --- a/src/interrupt.c +++ b/src/interrupt.c @@ -34,6 +34,10 @@ static const Uint16 lcd_cycle_tab[2][5]={{204,456,80,172,80}, /* GB Uint32 nb_cycle=0; Uint32 key_cycle=0; Uint8 vram_init_pal=0; +GBLCDC *gblcdc; +Uint8 vram_pal_line_temp[160][4]; +GBTIMER *gbtimer; + Uint32 get_nb_cycle(void) { diff --git a/src/interrupt.h b/src/interrupt.h index 5dca287..cbec97f 100644 --- a/src/interrupt.h +++ b/src/interrupt.h @@ -68,9 +68,9 @@ typedef struct { Uint8 *vram_pal_line[160]; }GBLCDC; -GBLCDC *gblcdc; +extern GBLCDC *gblcdc; -Uint8 vram_pal_line_temp[160][4]; +extern Uint8 vram_pal_line_temp[160][4]; extern Uint8 vram_init_pal; #define gb_set_pal_bck(v) { \ @@ -98,7 +98,7 @@ typedef struct { Sint32 cycle; }GBTIMER; -GBTIMER *gbtimer; +extern GBTIMER *gbtimer; void gblcdc_init(void); void gblcdc_reset(void); diff --git a/src/menu.c b/src/menu.c index ee3a831..2879dd7 100644 --- a/src/menu.c +++ b/src/menu.c @@ -45,6 +45,8 @@ int stop_all=0; +MENU *current_menu; + Uint8 radio_group[256]; SDL_Color buttonpal[]={{255,255,255},{214,214,214},{150,150,150},{0,0,0},{195,195,195}}; diff --git a/src/menu.h b/src/menu.h index bf4d713..160ccac 100644 --- a/src/menu.h +++ b/src/menu.h @@ -49,7 +49,7 @@ typedef struct MENU{ #define DRAW_WHEN_ACTIVE 1 extern MENU main_menu; -MENU *current_menu; +extern MENU *current_menu; void loop_menu(MENU *m); void display_menu(MENU *m); diff --git a/src/message.c b/src/message.c index af52efc..f409767 100644 --- a/src/message.c +++ b/src/message.c @@ -29,7 +29,7 @@ SDL_Surface *fontbuf=NULL; -//int wl,hl,xm,ym; +int wl,hl,xm,ym; static int tempo_mes; #define BUF_ALPHA 240 diff --git a/src/message.h b/src/message.h index 534a7a0..d893525 100644 --- a/src/message.h +++ b/src/message.h @@ -21,7 +21,7 @@ #include -int wl,hl,xm,ym; +extern int wl,hl,xm,ym; //extern void (*draw_message)(int x,int y,char *mes); extern SDL_Surface *fontbuf; diff --git a/src/rom.c b/src/rom.c index ff57a45..ba01473 100644 --- a/src/rom.c +++ b/src/rom.c @@ -48,9 +48,12 @@ #define FILENAME_LEN 1024 +char *rom_name; Sint16 rom_type=UNKNOW_TYPE; Uint8 rom_gb_type=UNKNOW; +ROM_TIMER *rom_timer; + int check_dir(char *dir_name) { #ifdef WIN32 BOOL res; diff --git a/src/rom.h b/src/rom.h index def6e6e..6befec1 100644 --- a/src/rom.h +++ b/src/rom.h @@ -37,7 +37,7 @@ #define SRAM 0x200 #define HUC1 0x400 -char *rom_name; +extern char *rom_name; extern Sint16 rom_type; // rom_gb_suport @@ -52,7 +52,7 @@ typedef struct { Uint8 regl[5]; // register locked }ROM_TIMER; // MBC3 -ROM_TIMER *rom_timer; +extern ROM_TIMER *rom_timer; int open_rom(char *filename); diff --git a/src/serial.c b/src/serial.c index 8d5fbbe..cec41f5 100644 --- a/src/serial.c +++ b/src/serial.c @@ -54,6 +54,10 @@ SDL_Thread *thread; int thread_fun(void *data); +serial gbserial; +Sint16 serial_cycle_todo; +Sint8 gblisten; + SOCKET dest_socket=-1; SOCKET listen_socket=-1; diff --git a/src/serial.h b/src/serial.h index 888d09b..c253a1f 100644 --- a/src/serial.h +++ b/src/serial.h @@ -21,7 +21,7 @@ #include "global.h" -struct { +typedef struct serial { Sint16 cycle_todo; Uint16 p; Uint8 b; @@ -29,10 +29,12 @@ struct { Uint8 check; Uint8 wait; Uint8 ready2read; -}gbserial; +} serial; -Sint16 serial_cycle_todo; -Sint8 gblisten; +extern serial gbserial; + +extern Sint16 serial_cycle_todo; +extern Sint8 gblisten; void gbserial_init(int server_side,char *servername); void gbserial_close(void); diff --git a/src/sgb.c b/src/sgb.c index ffdc6e0..9fc7308 100644 --- a/src/sgb.c +++ b/src/sgb.c @@ -32,6 +32,12 @@ Uint8 sgb_tiles[256*32]; Uint8 sgb_map[32*32]; Uint8 sgb_att[32*32]; +Uint16 sgb_pal[4][4]; /* 4 pallete of 4 colour */ +Uint8 sgb_pal_map[20][18]; /* Map of Pallete Tiles */ +Uint8 sgb_mask; + +SGB sgb; + SDL_Surface *sgb_buf=NULL; extern Uint16 Filter[32768]; diff --git a/src/sgb.h b/src/sgb.h index 71aea6a..fd9b8f9 100644 --- a/src/sgb.h +++ b/src/sgb.h @@ -39,12 +39,12 @@ typedef struct { Uint8 player; }SGB; -SGB sgb; +extern SGB sgb; -Uint16 sgb_pal[4][4]; /* 4 pallete of 4 colour */ -Uint8 sgb_pal_map[20][18]; /* Map of Pallete Tiles */ +extern Uint16 sgb_pal[4][4]; /* 4 pallete of 4 colour */ +extern Uint8 sgb_pal_map[20][18]; /* Map of Pallete Tiles */ -Uint8 sgb_mask; +extern Uint8 sgb_mask; extern SDL_Surface *sgb_buf; diff --git a/src/sound.c b/src/sound.c index ecc6e1f..8b7bce4 100644 --- a/src/sound.c +++ b/src/sound.c @@ -32,6 +32,16 @@ #define HZ_M3(x) ((double)(4194304.0)/(64.0*(double)(2048-x))) // #define LOG_SOUND +Uint32 sample_rate; +Uint8 bit_per_sample; +Uint16 sample_per_update; + +SoundM1 snd_m1; +SoundM2 snd_m2; +SoundM3 snd_m3; +SoundM4 snd_m4; +SoundG snd_g; + Sint8 *playbuf; FILE *fsound; /* diff --git a/src/sound.h b/src/sound.h index 56f58ce..6ef3bd8 100644 --- a/src/sound.h +++ b/src/sound.h @@ -22,9 +22,9 @@ #include "global.h" -Uint32 sample_rate; -Uint8 bit_per_sample; -Uint16 sample_per_update; +extern Uint32 sample_rate; +extern Uint8 bit_per_sample; +extern Uint16 sample_per_update; typedef struct SoundM1 { @@ -61,7 +61,7 @@ typedef struct SoundM1 float sample_env_per_step; float cp; }SoundM1; -SoundM1 snd_m1; +extern SoundM1 snd_m1; typedef struct SoundM2 { @@ -92,7 +92,7 @@ typedef struct SoundM2 float sample_env_per_step; float cp; }SoundM2; -SoundM2 snd_m2; +extern SoundM2 snd_m2; typedef struct SoundM3 { @@ -120,7 +120,7 @@ typedef struct SoundM3 Uint16 sample_len; // durée en samples float cp; }SoundM3; -SoundM3 snd_m3; +extern SoundM3 snd_m3; typedef struct SoundM4 { @@ -149,7 +149,7 @@ typedef struct SoundM4 float env_per_step; float sample_env_per_step; }SoundM4; -SoundM4 snd_m4; +extern SoundM4 snd_m4; /* Control general */ typedef struct SoundG @@ -177,7 +177,7 @@ typedef struct SoundG Uint8 Sound3_On_Off ; Uint8 Sound4_On_Off ; }SoundG; -SoundG snd_g; +extern SoundG snd_g; #define LEFT 1 diff --git a/src/video_std.c b/src/video_std.c index 1a81e90..b894443 100644 --- a/src/video_std.c +++ b/src/video_std.c @@ -35,6 +35,10 @@ SDL_Surface *back=NULL; Sint8 rb_tab[2][RB_SIZE]={{0,-2,2,-2,2}, {0,-1,-1,1,1}}; +Uint8 rb_shift; +SDL_Rect dstR; +SDL_Rect scrR; + VIDEO_MODE video_std; SDL_Rect clip_rct; diff --git a/src/video_std.h b/src/video_std.h index 4a78d7e..05a0fd1 100644 --- a/src/video_std.h +++ b/src/video_std.h @@ -27,9 +27,9 @@ extern Sint8 rb_tab[2][RB_SIZE]; extern SDL_Surface *back; -Uint8 rb_shift; -SDL_Rect dstR; -SDL_Rect scrR; +extern Uint8 rb_shift; +extern SDL_Rect dstR; +extern SDL_Rect scrR; void draw_screen_sgb_std(void); void draw_screen_wb_std(void); diff --git a/src/video_yuv.c b/src/video_yuv.c index 0c05a81..cba9e0f 100644 --- a/src/video_yuv.c +++ b/src/video_yuv.c @@ -25,6 +25,12 @@ #include "memory.h" #include "message.h" +SDL_Overlay *overlay; +SDL_Rect ov_rect; +Uint32 yuv_flag; +yuv rgb2yuv[65536]; + + void init_message_yuv(void) { } diff --git a/src/video_yuv.h b/src/video_yuv.h index c0d7c25..4d85ce9 100644 --- a/src/video_yuv.h +++ b/src/video_yuv.h @@ -21,16 +21,18 @@ #include "global.h" -SDL_Overlay *overlay; -SDL_Rect ov_rect; -Uint32 yuv_flag; +extern SDL_Overlay *overlay; +extern SDL_Rect ov_rect; +extern Uint32 yuv_flag; -struct yuv{ +typedef struct yuv{ Uint16 y; Uint8 u; Uint8 v; Uint32 yuy2; -}rgb2yuv[65536]; +} yuv; + +extern yuv rgb2yuv[65536]; void init_message_yuv(void); void init_rgb2yuv_table(void); diff --git a/src/vram.c b/src/vram.c index 206b625..8a333be 100644 --- a/src/vram.c +++ b/src/vram.c @@ -30,6 +30,7 @@ SDL_Surface *gb_screen=NULL; +int scxoff,scyoff; Uint16 grey[4]; Uint8 pal_bck[4]={0,3,3,3}; @@ -45,6 +46,9 @@ Uint8 back_col[170][170]; Uint8 nb_spr; +GB_SPRITE gb_spr[40]; +Uint8 rb_on; + struct mask_shift tab_ms[8]={ { 0x80,7 }, { 0x40,6 }, diff --git a/src/vram.h b/src/vram.h index d64a3d4..db9d061 100644 --- a/src/vram.h +++ b/src/vram.h @@ -62,7 +62,7 @@ struct mask_shift { extern struct mask_shift tab_ms[8]; extern Uint32 video_flag; -int scxoff,scyoff; /* shift of the screen */ +extern int scxoff,scyoff; /* shift of the screen */ extern Uint16 grey[4]; extern Uint8 pal_bck[4]; @@ -89,10 +89,10 @@ typedef struct { Uint8 priority; }GB_SPRITE; -GB_SPRITE gb_spr[40]; +extern GB_SPRITE gb_spr[40]; extern Uint8 nb_spr; -Uint8 rb_on; +extern Uint8 rb_on; extern void (*draw_screen)(void); -- 2.26.2