mirror of
https://github.com/digarok/gsplus.git
synced 2025-02-01 14:31:42 +00:00
latest sdl options and first try of win sdl with new libs
This commit is contained in:
parent
3a6d272a50
commit
5c945e8bff
@ -185,6 +185,7 @@ package-win-sdl:
|
|||||||
- cp /bin/cygjbig-2.dll .
|
- cp /bin/cygjbig-2.dll .
|
||||||
- cp /bin/cyglzma-5.dll .
|
- cp /bin/cyglzma-5.dll .
|
||||||
- cp /bin/cygwebp-5.dll .
|
- cp /bin/cygwebp-5.dll .
|
||||||
|
- cp /cygdrive/c/mingw/bin/SDL2.dll .
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,6 +22,18 @@ git config --global user.email "dagenbrock@gmail.com"
|
|||||||
# I also search for and add any SDL2 or FreeType libs just in case.
|
# I also search for and add any SDL2 or FreeType libs just in case.
|
||||||
|
|
||||||
|
|
||||||
|
# UPDATE FOR PROPER SDL2 BUILDS ON WINDOWS!!!
|
||||||
|
# I used to link the libraries that were installed with all this environment,
|
||||||
|
# but I had problems with it ever having a working driver. Now we download
|
||||||
|
# the devel libraries for SDL2 and link to them directly.
|
||||||
|
# Latest is something like: SDL2-devel-2.0.8-mingw.tar.gz
|
||||||
|
# Unpack that where CI can see it on the builder, our standard is c:\mingw
|
||||||
|
# So something like:
|
||||||
|
tar -xvzf SDL2-devel-2.0.8-mingw.tar.gz
|
||||||
|
cd SDL2-2.0.8
|
||||||
|
mkdir /cygdrive/c/mingw
|
||||||
|
mv x86_64-w64-mingw32/* /cygdrive/c/mingw/
|
||||||
|
|
||||||
## SOME NOTES ON SETTING UP GITLAB RUNNER TO BUILD ON WINDOWS
|
## SOME NOTES ON SETTING UP GITLAB RUNNER TO BUILD ON WINDOWS
|
||||||
|
|
||||||
## STEP 1 - Install Gitlab Runner
|
## STEP 1 - Install Gitlab Runner
|
||||||
|
29
src/config.c
29
src/config.c
@ -10,9 +10,7 @@
|
|||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "glog.h"
|
#include "glog.h"
|
||||||
#include "imagewriter.h"
|
#include "imagewriter.h"
|
||||||
#if defined(__OS2__)
|
#if defined(_MSC_VER)
|
||||||
#include "arch\os2\src\dirport.h"
|
|
||||||
#elif defined(_MSC_VER)
|
|
||||||
#include "arch\win32\dirent-win32.h"
|
#include "arch\win32\dirent-win32.h"
|
||||||
#else
|
#else
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
@ -565,7 +563,6 @@ config_init()
|
|||||||
void
|
void
|
||||||
cfg_exit()
|
cfg_exit()
|
||||||
{
|
{
|
||||||
/* printf("In cfg exit\n"); */
|
|
||||||
if(g_rom_version >= 1) {
|
if(g_rom_version >= 1) {
|
||||||
g_config_control_panel = 0;
|
g_config_control_panel = 0;
|
||||||
}
|
}
|
||||||
@ -592,7 +589,7 @@ cfg_text_screen_dump()
|
|||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
filename = "gsplus.screen.dump";
|
filename = "gsplus.screen.dump";
|
||||||
printf("Writing text screen to the file %s\n", filename);
|
glogf("Writing text screen to the file %s\n", filename);
|
||||||
ofile = fopen(filename, "w");
|
ofile = fopen(filename, "w");
|
||||||
if(ofile == 0) {
|
if(ofile == 0) {
|
||||||
fatal_printf("Could not write to file %s, (%d)\n", filename,
|
fatal_printf("Could not write to file %s, (%d)\n", filename,
|
||||||
@ -764,8 +761,7 @@ config_parse_option(char *buf, int pos, int len, int line)
|
|||||||
*strptr = gsplus_malloc_str(&buf[pos]);
|
*strptr = gsplus_malloc_str(&buf[pos]);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
printf("Config file variable %s is unknown type: %d\n",
|
glogf("Config file variable %s is unknown type: %d\n", nameptr, type);
|
||||||
nameptr, type);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -914,7 +910,7 @@ config_load_roms()
|
|||||||
"read %d bytes\n", &g_cfg_tmp_path[0], errno, len, ret);
|
"read %d bytes\n", &g_cfg_tmp_path[0], errno, len, ret);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
printf("Read: %d bytes of ROM in slot %d from file %s.\n", ret, i, &g_cfg_tmp_path[0]);
|
glogf("Read: %d bytes of ROM in slot %d from file %s.\n", ret, i, &g_cfg_tmp_path[0]);
|
||||||
fclose(file);
|
fclose(file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1038,18 +1034,6 @@ config_parse_config_gsplus_file()
|
|||||||
// not really a fan of that either and think it should be take out.
|
// not really a fan of that either and think it should be take out.
|
||||||
// Especially now that you can pass a filename.
|
// Especially now that you can pass a filename.
|
||||||
|
|
||||||
// #ifndef __OS2__
|
|
||||||
// if(g_cfg_cwd_str[0] != 0) {
|
|
||||||
// ret = chdir(&g_cfg_cwd_str[0]);
|
|
||||||
// if(ret != 0) {
|
|
||||||
// printf("chdir to %s, errno:%d\n", g_cfg_cwd_str, errno);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// /* In any case, copy the directory path to g_cfg_cwd_str */
|
|
||||||
// (void)getcwd(&g_cfg_cwd_str[0], CFG_PATH_MAX);
|
|
||||||
// #endif
|
|
||||||
|
|
||||||
|
|
||||||
fconf = fopen(g_config_gsplus_name, "r");
|
fconf = fopen(g_config_gsplus_name, "r");
|
||||||
if(fconf == 0) {
|
if(fconf == 0) {
|
||||||
perror("ERROR");
|
perror("ERROR");
|
||||||
@ -2652,7 +2636,7 @@ cfg_str_match(const char *str1, const char *str2, int len)
|
|||||||
void
|
void
|
||||||
cfg_file_readdir(const char *pathptr)
|
cfg_file_readdir(const char *pathptr)
|
||||||
{
|
{
|
||||||
#ifndef __OS2__
|
|
||||||
struct dirent *direntptr;
|
struct dirent *direntptr;
|
||||||
struct stat stat_buf;
|
struct stat stat_buf;
|
||||||
DIR *dirptr;
|
DIR *dirptr;
|
||||||
@ -2779,7 +2763,6 @@ cfg_file_readdir(const char *pathptr)
|
|||||||
g_cfg_dirlist.curent = i;
|
g_cfg_dirlist.curent = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -3072,7 +3055,6 @@ cfg_file_update_ptr(char *str)
|
|||||||
void
|
void
|
||||||
cfg_file_selected(int select_dir)
|
cfg_file_selected(int select_dir)
|
||||||
{
|
{
|
||||||
#ifndef __OS2__
|
|
||||||
struct stat stat_buf;
|
struct stat stat_buf;
|
||||||
char *str;
|
char *str;
|
||||||
int fmt;
|
int fmt;
|
||||||
@ -3126,7 +3108,6 @@ cfg_file_selected(int select_dir)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -25,6 +25,12 @@ extern int g_use_bw_hires; // defined in video.c
|
|||||||
// Set starting X/Y positions
|
// Set starting X/Y positions
|
||||||
extern int g_startx; // defined in video.c
|
extern int g_startx; // defined in video.c
|
||||||
extern int g_starty; // defined in video.c
|
extern int g_starty; // defined in video.c
|
||||||
|
// Use High DPI (Retina) display - SDL2
|
||||||
|
extern int g_highdpi; // defined in video.c
|
||||||
|
// Create borderless window - SDL2
|
||||||
|
extern int g_borderless; // defined in video.c
|
||||||
|
// Allow window resizing, dragging to scale - SDL2
|
||||||
|
extern int g_resizeable; // defined in video.c
|
||||||
// Enable Dagen's scanline simulator (SDL2)
|
// Enable Dagen's scanline simulator (SDL2)
|
||||||
extern int g_scanline_simulator; // defined in sim65816.c
|
extern int g_scanline_simulator; // defined in sim65816.c
|
||||||
// Ethernet (interface?)
|
// Ethernet (interface?)
|
||||||
@ -89,6 +95,15 @@ int parse_cli_options(int argc, char **argv) {
|
|||||||
} else if(!strcmp("-fullscreen", argv[i])) {
|
} else if(!strcmp("-fullscreen", argv[i])) {
|
||||||
glogf("%s Starting emulator in fullscreen", parse_log_prefix);
|
glogf("%s Starting emulator in fullscreen", parse_log_prefix);
|
||||||
g_fullscreen = 1;
|
g_fullscreen = 1;
|
||||||
|
} else if(!strcmp("-highdpi", argv[i])) {
|
||||||
|
glogf("%s Creating window in High DPI mode", parse_log_prefix);
|
||||||
|
g_highdpi = 1;
|
||||||
|
} else if(!strcmp("-borderless", argv[i])) {
|
||||||
|
glogf("%s Creating borderless window", parse_log_prefix);
|
||||||
|
g_borderless = 1;
|
||||||
|
} else if(!strcmp("-resizeable", argv[i])) {
|
||||||
|
glogf("%s Window will be resizeable", parse_log_prefix);
|
||||||
|
g_resizeable = 1;
|
||||||
} else if(!strcmp("-noignbadacc", argv[i])) {
|
} else if(!strcmp("-noignbadacc", argv[i])) {
|
||||||
glogf("%s Not ignoring bad memory accesses", parse_log_prefix);
|
glogf("%s Not ignoring bad memory accesses", parse_log_prefix);
|
||||||
g_ignore_bad_acc = 0;
|
g_ignore_bad_acc = 0;
|
||||||
@ -254,6 +269,9 @@ void help_exit() {
|
|||||||
printf(" -bw Force B/W modes\n");
|
printf(" -bw Force B/W modes\n");
|
||||||
printf(" -dhr140 Use simple double-hires color map\n");
|
printf(" -dhr140 Use simple double-hires color map\n");
|
||||||
printf(" -fullscreen Attempt to start emulator in fullscreen\n");
|
printf(" -fullscreen Attempt to start emulator in fullscreen\n");
|
||||||
|
printf(" -highdpi Attempt to open window in high DPI\n");
|
||||||
|
printf(" -borderless Attempt to create borderless window\n");
|
||||||
|
printf(" -resizeable Allow you to resize window (non-integral scaling to pixel)\n");
|
||||||
printf(" -mem value Set memory size to value\n");
|
printf(" -mem value Set memory size to value\n");
|
||||||
printf(" -skip value Set skip_amt to value\n");
|
printf(" -skip value Set skip_amt to value\n");
|
||||||
printf(" -audio value Set audio enable to value\n");
|
printf(" -audio value Set audio enable to value\n");
|
||||||
|
@ -44,6 +44,9 @@ int screenshot_index = 0; // allows us to save time by not scanning from 0 each
|
|||||||
char screenshot_filename[256];
|
char screenshot_filename[256];
|
||||||
|
|
||||||
extern int g_fullscreen; // only checked at start if set via CLI, otherwise it's set via function call x_full_screen()
|
extern int g_fullscreen; // only checked at start if set via CLI, otherwise it's set via function call x_full_screen()
|
||||||
|
extern int g_highdpi;
|
||||||
|
extern int g_borderless;
|
||||||
|
extern int g_resizeable;
|
||||||
extern int g_scanline_simulator;
|
extern int g_scanline_simulator;
|
||||||
extern int g_startx;
|
extern int g_startx;
|
||||||
extern int g_starty;
|
extern int g_starty;
|
||||||
@ -291,6 +294,16 @@ void dev_video_init_sdl() {
|
|||||||
if (g_fullscreen) {
|
if (g_fullscreen) {
|
||||||
more_flags |= SDL_WINDOW_FULLSCREEN_DESKTOP;
|
more_flags |= SDL_WINDOW_FULLSCREEN_DESKTOP;
|
||||||
}
|
}
|
||||||
|
if (g_highdpi) {
|
||||||
|
more_flags |= SDL_WINDOW_ALLOW_HIGHDPI;
|
||||||
|
}
|
||||||
|
if (g_borderless) {
|
||||||
|
more_flags |= SDL_WINDOW_BORDERLESS;
|
||||||
|
}
|
||||||
|
if (g_resizeable) {
|
||||||
|
more_flags |= SDL_WINDOW_RESIZABLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
window = SDL_CreateWindow(
|
window = SDL_CreateWindow(
|
||||||
window_title, // window title (GSport vX.X)
|
window_title, // window title (GSport vX.X)
|
||||||
|
@ -5,8 +5,8 @@ FSTOBJ = win32_host_fst.o
|
|||||||
|
|
||||||
OBJECTS = sdl2_driver.o $(OBJECTS1) $(FSTOBJ) sdl2snd_driver.o
|
OBJECTS = sdl2_driver.o $(OBJECTS1) $(FSTOBJ) sdl2snd_driver.o
|
||||||
|
|
||||||
CCOPTS = -O2 -DGSPLUS_LITTLE_ENDIAN -DHAVE_SDL -DWIN_SDL -DTOGGLE_STATUS -I/usr/include/SDL2
|
CCOPTS = -O2 -DGSPLUS_LITTLE_ENDIAN -DHAVE_SDL -DWIN_SDL -DTOGGLE_STATUS -I/usr/include/SDL2 -L/cygdrive/c/mingw/lib -I/cygdrive/c/mingw/include/SDL2/
|
||||||
CPPOPTS = -O2 -DGSPLUS_LITTLE_ENDIAN -DHAVE_SDL -DWIN_SDL -DTOGGLE_STATUS -I /usr/include/freetype2 -I/usr/include/SDL2
|
CPPOPTS = -O2 -DGSPLUS_LITTLE_ENDIAN -DHAVE_SDL -DWIN_SDL -DTOGGLE_STATUS -I/usr/include/freetype2 -L/cygdrive/c/mingw/lib -I/cygdrive/c/mingw/include/SDL2/
|
||||||
|
|
||||||
SUFFIX = ".exe"
|
SUFFIX = ".exe"
|
||||||
EXTRA_LIBS = -Larch/win32 -lSDL2main -lSDL2 -lfreetype -lcomdlg32 -lShlwapi -lIPHlpApi -lcygwin
|
EXTRA_LIBS = -Larch/win32 -lSDL2main -lSDL2 -lfreetype -lcomdlg32 -lShlwapi -lIPHlpApi -lcygwin
|
||||||
|
@ -91,6 +91,9 @@ int g_use_dhr140 = 0;
|
|||||||
int g_use_bw_hires = 0;
|
int g_use_bw_hires = 0;
|
||||||
int g_startx = WINDOWPOS_UNDEFINED;
|
int g_startx = WINDOWPOS_UNDEFINED;
|
||||||
int g_starty = WINDOWPOS_UNDEFINED;
|
int g_starty = WINDOWPOS_UNDEFINED;
|
||||||
|
int g_highdpi = 0;
|
||||||
|
int g_borderless = 0;
|
||||||
|
int g_resizeable = 0;
|
||||||
|
|
||||||
int g_a2_new_all_stat[200];
|
int g_a2_new_all_stat[200];
|
||||||
int g_a2_cur_all_stat[200];
|
int g_a2_cur_all_stat[200];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user