New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Scale for generic sdl build? #74
Comments
I was wondering about 2x scaling on Ubuntu 18.04 x86-64. Best I could come up with was a patch to build the opengl output which normally scales that way. Not being a programmer, I constructed the LDFLAGS based on various stackexchange questions regarding how to build GL/GLES. Using this patch is something like: git apply picogl.patch
patch -p1 < picogl.patch diff --git a/Makefile b/Makefile
index 2903a68..956cadc 100644
--- a/Makefile
+++ b/Makefile
@@ -86,10 +86,14 @@ OBJS += platform/libpicofe/gl_platform.o
USE_FRONTEND = 1
endif
ifeq "$(PLATFORM)" "generic"
+CFLAGS += -DHAVE_GLES
+LDFLAGS += -ldl -lpthread -lGL -lGLU -lglut -lEGL -lGLESv2
OBJS += platform/linux/emu.o platform/linux/blit.o # FIXME
OBJS += platform/common/plat_sdl.o
OBJS += platform/libpicofe/plat_sdl.o platform/libpicofe/in_sdl.o
OBJS += platform/libpicofe/plat_dummy.o
+OBJS += platform/libpicofe/gl.o
+OBJS += platform/libpicofe/gl_platform.o
USE_FRONTEND = 1
endif
ifeq "$(PLATFORM)" "pandora"
diff --git a/platform/libpicofe/gl.c b/platform/libpicofe/gl.c
--- a/platform/libpicofe/gl.c 2018-07-07 20:00:32.282290503 -0600
+++ b/platform/libpicofe/gl.c 2018-07-07 19:52:54.322950774 -0600
@@ -2,7 +2,7 @@
#include <stdlib.h>
#include <EGL/egl.h>
-#include <GLES/gl.h>
+#include <GL/gl.h>
#include "gl_platform.h"
#include "gl.h"
diff --git a/platform/libpicofe/gl_platform.c b/platform/libpicofe/gl_platform.c
--- a/platform/libpicofe/gl_platform.c 2018-07-07 20:00:32.282290503 -0600
+++ b/platform/libpicofe/gl_platform.c 2018-07-07 19:52:45.643114431 -0600
@@ -1,7 +1,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <EGL/egl.h>
-#include <GLES/gl.h>
+#include <GL/gl.h>
#include "gl.h"
#include "gl_platform.h" Includes would be like: |
Is freeglut strictly needed? I managed to compile using your patch on one of my systems that didn't had freeglut3-dev installed by just leaving -lglut out. |
Oh, I haven't used that for awhile I guess. You can view my current patch at Picodrive patch. The relevant part is is limited and extends joystick functionality to the d-pad. The full patch also makes picodrive system install possible on debian with checkinstall: diff --git a/Makefile b/Makefile
index 2903a68..a06c5b4 100644
--- a/Makefile
+++ b/Makefile
@@ -86,10 +86,14 @@ OBJS += platform/libpicofe/gl_platform.o
USE_FRONTEND = 1
endif
ifeq "$(PLATFORM)" "generic"
+CFLAGS += -DHAVE_GLES
+LDFLAGS += -ldl -lpthread -lGL -lEGL
OBJS += platform/linux/emu.o platform/linux/blit.o # FIXME
OBJS += platform/common/plat_sdl.o
OBJS += platform/libpicofe/plat_sdl.o platform/libpicofe/in_sdl.o
OBJS += platform/libpicofe/plat_dummy.o
+OBJS += platform/libpicofe/gl.o
+OBJS += platform/libpicofe/gl_platform.o
USE_FRONTEND = 1
endif
ifeq "$(PLATFORM)" "pandora"
diff --git a/platform/libpicofe/gl.c b/platform/libpicofe/gl.c
--- a/platform/libpicofe/gl.c 2018-07-07 20:00:32.282290503 -0600
+++ b/platform/libpicofe/gl.c 2018-07-07 19:52:54.322950774 -0600
@@ -2,7 +2,11 @@
#include <stdlib.h>
#include <EGL/egl.h>
-#include <GLES/gl.h>
+#if defined(__arm__)
+ #include <GLES/gl.h>
+#else
+ #include <GL/gl.h>
+#endif
#include "gl_platform.h"
#include "gl.h"
diff --git a/platform/libpicofe/gl_platform.c b/platform/libpicofe/gl_platform.c
--- a/platform/libpicofe/gl_platform.c 2018-07-07 20:00:32.282290503 -0600
+++ b/platform/libpicofe/gl_platform.c 2018-07-07 19:52:45.643114431 -0600
@@ -1,7 +1,11 @@
#include <stdio.h>
#include <stdlib.h>
#include <EGL/egl.h>
-#include <GLES/gl.h>
+#if defined(__arm__)
+ #include <GLES/gl.h>
+#else
+ #include <GL/gl.h>
+#endif
#include "gl.h"
#include "gl_platform.h"
diff --git a/platform/libpicofe/in_sdl.c b/platform/libpicofe/in_sdl.c
--- a/platform/libpicofe/in_sdl.c 2018-07-29 08:38:02.016564259 -0600
+++ b/platform/libpicofe/in_sdl.c 2018-07-29 08:37:06.309806921 -0600
@@ -300,6 +300,34 @@
}
break;
+ case SDL_JOYHATMOTION:
+ if (event->jhat.which != state->joy_id)
+ return -2;
+ if (event->jhat.value == SDL_HAT_CENTERED) {
+ kc = state->axis_keydown[event->jhat.hat];
+ state->axis_keydown[event->jhat.hat] = 0;
+ ret = 1;
+ }
+ else if (event->jhat.value & SDL_HAT_UP || event->jhat.value & SDL_HAT_LEFT) {
+ kc = state->axis_keydown[event->jhat.hat];
+ if (kc)
+ update_keystate(state->keystate, kc, 0);
+ kc = (event->jhat.value & SDL_HAT_UP) ? SDLK_UP : SDLK_LEFT;
+ state->axis_keydown[event->jhat.hat] = kc;
+ down = 1;
+ ret = 1;
+ }
+ else if (event->jhat.value & SDL_HAT_DOWN || event->jhat.value & SDL_HAT_RIGHT) {
+ kc = state->axis_keydown[event->jhat.hat];
+ if (kc)
+ update_keystate(state->keystate, kc, 0);
+ kc = (event->jhat.value & SDL_HAT_DOWN) ? SDLK_DOWN : SDLK_RIGHT;
+ state->axis_keydown[event->jhat.hat] = kc;
+ down = 1;
+ ret = 1;
+ }
+ break;
+
case SDL_JOYBUTTONDOWN:
case SDL_JOYBUTTONUP:
if (event->jbutton.which != state->joy_id) |
As a sort of patch while this isn't implemented, in Linux you can use
where |
I want to use this emulator with 2x scale. Is it possible? If not, can you add the option please?
The text was updated successfully, but these errors were encountered: