Code Monkey home page Code Monkey logo

gsplus's People

Contributors

digarok avatar ksherlock avatar sicklittlemonkey avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gsplus's Issues

FreeType not found when launching on OSX

Similar dynamic linking issues to Issue #2 ...

./gsplus
dyld: Library not loaded: /usr/local/opt/freetype/lib/libfreetype.6.dylib
  Referenced from: /Users/dbrock/Google Drive/appleiigs/rwiii/./gsplus
  Reason: image not found
Trace/BPT trap: 5

Can resolve, if brew is installed, using brew install freetype.

SDL2 not found when launching OSX build.

If user doesn't have SDL2 libs installed in correct location the error occurs:

./gsplus
dyld: Library not loaded: /usr/local/lib/libSDL2-2.0.0.dylib
  Referenced from: /Users/dbrock/Google Drive/appleiigs/rwiii/./gsplus
  Reason: image not found
Trace/BPT trap: 5

Either switch to App Bundle (probably better in the long run, though I morally disagree with Apple's stance on static linking), or try to static link.

I've heard this is possible on OSX with:
sdl-config --static-libs

Diff reduction in SDL2 vars

I was comparing the SDL2 builds for the GSPlus experimental branch, which is where you seem to be working at this point. Here's a diff of a couple of vars files:

--- vars_osx_sdl2	2016-12-28 12:03:39.187811433 -0800
+++ vars_x86linux_sdl2	2016-12-28 12:03:39.187811433 -0800
@@ -1,21 +1,21 @@
 TARGET = gsplus
 NAME = gsplus
 PERL = perl
-CC = clang
-LD = clang++
+CC = gcc
+LD = gcc
 AS = cc
 
 OBJECTS = $(OBJECTS1) $(TFEOBJ) $(ATOBJ) $(PCAPOBJ) sdl2_driver.o sdl2snd_driver.o
-ARCHS = ppc, i386, ppc64, x86_64
 
-# OPTIONS FOR COMPILING C SOURCE
-CCOPTS = -O2 -Wall -fomit-frame-pointer -std=gnu99 -DHAVE_ICON -DHAVE_SDL -DTOGGLE_STATUS -I/usr/local/include/SDL2
-# OPTIONS FOR COMPILING C++ SOURCE
-CPPOPTS = -O2 -DHAVE_TFE -DHAVE_SDL -DTOGGLE_STATUS -I/usr/local/include/freetype2 -I/usr/local/include/SDL2
+# C Compiler Options
+CCOPTS = -O2 -Wall -fomit-frame-pointer -std=gnu99 -DHAVE_SDL -DHAVE_TFE -DHAVE_ATBRIDGE -DTOGGLE_STATUS -I/usr/include/SDL2 -I/usr/include/freetype2
+# C++ Compiler Options
+CPPOPTS = -O2 -DHAVE_TFE -DHAVE_SDL -DTOGGLE_STATUS -DHAVE_ATBRIDGE -I/usr/include/freetype2 -I/usr/include/SDL2
 
-EXTRA_LIBS =  -lSDL2 -lSDL2_image -lfreetype
-OPTS = -DGSPLUS_LITTLE_ENDIAN -g -O0
+
+EXTRA_LIBS = -lfreetype -lSDL2 -lSDL2_image -ldl -lm -lstdc++ 
+OPTS = -DGSPLUS_LITTLE_ENDIAN
 SUFFIX =
-LDFLAGS = `sdl2-config --static-libs` -L/usr/local/lib
+LDFLAGS =
 LDOPTS = -I.
 EXTRA_SPECIALS =

There's some genuine changes there, but there's also some superficial differences. And some of the changes are things resolved by the use of pkg-config --libs sdl2 SDL2_image or pkg-config --static --libs sdl2 SDL2_image on Mac.

My suggestion then is to make those changes (and branching out to make similar changes for other files if they're still expected to work) as a first step toward making the build system ... more conventional. I dunno if you wanna go full GNU autoconf--I think you said before you weren't opposed to that, but IMO that's best done as a somewhat incremental process anyway.

Crash on screenshot when config name not passed via command line.

When you press shift-F5, it is suppose to take a screenshot. The screenshot filename is supposed to be based on the config name.
Example, command line is:
./gsplus -config loderunner.gsp
Should take screenshots like:
loderunner0001.png
loderunner0002.png
... etc.

But when you don't pass a config name (which is valid to do because it searches for default configs like "config.txt"), it segfaults in function:
void make_next_screenshot_filename()

Compile error: printer.h

gcc -O2 -DHAVE_TFE -DHAVE_SDL -DTOGGLE_STATUS -DHAVE_ATBRIDGE -I/usr/include/freetype2 -I/usr/include/SDL2  -c -DGSPLUS_LITTLE_ENDIAN -I. printer.cpp
In file included from printer.cpp:43:0:
printer.h:57:10: fatal error: ft2build.h: No such file or directory                                
 #include <ft2build.h>
          ^~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:131: printer.o] Error 1

No freetype? I can fix that.

Wait.

#ifdef HAVE_SDL
#include "SDL.h"

#include <ft2build.h>
#include FT_FREETYPE_H
#endif // HAVE_SDL

I think that's not how you C. :) FT_FREETYPE_H isn't set as a macro anywhere or anything. (It's also in imagewriter.h.)

Mouse tracking in full screen not correct (4K display)

Using GSPlus on Windows 10, with a 4K display (3840x2160), in full screen mode works, however, mouse movement does not track the display, properly.

Also, in lieu of this, can we get a window that can be resized arbitrarily? :)

-Thom

Can't open GS control panel in Windows

I'm trying to hit OpenApple-Control-Escape to reach the GS's control panel, and in Windows 10 it doesn't seem possible.

According to the docs, both Alt and F1 are recognized as the OA key. So...

When I hit Alt(OA)-Control(Control)-Escape(Escape), it just moves the gsplus window to the back of my active windows.

When I hit F1(OA)-Control(Control)-Escape(Escape), it opens the Windows start menu.

Am I missing something obvious?

Release tag

Hello,

I see version 0.14 has been released on the website. Can you create a release/tag her as well ?

Thanks.

Can't move with joystick after making a hole in Lode Runner

Okay, so this is kind of oddly specific. If you play Lode Runner with joystick controls (Ctrl+J to turn them on), you can move left, right, and climb ladders with the analog stick, but as soon as you make a hole with the buttons you get stuck there until you're hit by an enemy (or hit Ctrl+A). That is to say, you're not in the hole but rather standing next to it, frozen.

It does work okay with keyboard controls (Ctrl+K).

Dialogs are not implemented but functions look like they are

This is not just in the SDL2 driver, even the X driver seems to be a bit out of spec here:

x_dialog_create_gsport_conf(const char *str)

I think it'd be nice to just remove these? Otherwise we may have to consider only doing SDL2 dialogs for now. This brings up the larger issue of debug display lines and other built-in text UI rough spots.

I can't install GSPLUS on a Raspeery Pi 3+

Attention I am a beginner, but interested in the apple II Gs.
Gsplus works but not very good with Catalina on mac floppy disk management 3.5 so I can not install Gsplus with Raspbian "Buster" there is a problem with "make" or "cmake" and if I want to install the package it there is an error with the instaleur. A complete image for Raspberry would be a good idea for the neophytes. thank you

Enhancement request- RetroArch/libretro integration

First, thanks for the hardwork.. This is my go to A2 emulator, on multi host OSes! (I dabble in Linux/Ubuntu).

Now to my feature enhancement request. I just found a thing called RetroPi for my RaspberryPi, and have been playing with it this weekend. In that project there is the LinApple emulator. And a huge drawback of LinApple is the fact it's an A2e emulator and not a A2gs emulator! Early A2 games are fun,, but the //gs being absent from a project like RetroPi, is a glaring oversight. Leading to my feature request here.

My feature request: Integrate your great emulator with the RetroArch/libretro project. Which is utilized by RetroPi.

Keep up the excellent work and attention.

Paul

Enhancement request - Option to disable right-click speed change

With a laptop touchpad, it's far too easy to right-click and alter the system speed. I'd love an option to disable this feature.

It's in adb.c. Search for adb_increment_speed. If I figure out how the configuration system works, I'll do it myself. For now, I've just commented it out in my build. :-)

Add fullscreen to CLI/config

It seems like you can only launch in windowed mode and hit F11 to fullscreen after it starts.

There are a lot of cases where it would be nice to be able to launch it and explicitly tell the emulator whether you want it to start in full-screen or windowed mode.

(Note: Scanline simulator is also a potential candidate for this.)

Possible issue with firmware hang

It may not be "wrong", per se, but you can cause an interesting hang with the following steps:
-start gsplus
-go to basic monitor (call -151)
-type "uuu" and hit enter (u is toolbox call I think)
System hangs and console logs a ton of "MVP but not native m or x!"

Now that may be exactly what the GS is trying to do (MVP in 8-bit mode). But would like to verify that a real system doesn't behave differently here.

Entering config after boot on Windows 10 is causing crash

After trying to turn ethernet on and Host FST on and failing, I've now got to the point where starting GSPlus on Windows 10 and trying to enter config after booting into Finder is killing the GSPlus process and it instantly goes away.

Unwriteable config files cause error spamming

The documentation recommends the read-only strategy (see: Modulae) for config files.

This causes the emulator to continually whine about not being able to write config file after it tries to eject the disk.

At the least, let it fail gracefully.

OSX key handling issue - OpenApple (modifiers?)

Using "816/Paint" art program, can't use keys normally. Seems as though Open-Apple key is depressed. Example, hit the "O" key and the Open File Dialog opens which is supposed to be "Open-Apple + O".

I think it is probably more widespread. I've seen another issue with GSBug where stepping is messed up that might be related.

I know of one other program that was having issues, but I can't remember which one right now.

Release .14a Appleworks GS .2mg Disks

Thank you for your work on GSPlus!

Here is the issue I have run into.

Using .config.gsp
screen shot 2018-10-20 at 4 36 04 pm

I have set s5d1 and s5d2 as shown.

screen shot 2018-10-20 at 4 37 36 pm

When it asks for another disk such as tools or program I have not been able to drag it into the emulator or change the setting via F4 to set the disk the GS installer needs to continue.

I read the GSPlus Manual and could not find anything to resolve the issue.

If I remember correctly for actual hardware, you could daisy chain unto 4 drives.

If I am correct is this something that could be added to the emulator and or the config.gsp file to fix what I am finding with multiple disks required for a hard drive install.

Thank you.

Leon Sargent

Move CLI parsing

Currently the code that parses all of the command line flags is in sim65816.c. I suppose the original reasoning is that this is where those flags need to be set when starting the simulation. However, it's a crazy bad code smell. I'm almost certain that it would be better to move all of the config parsing out and make those global flags better defined outside of the simulator code.

Windows catches keypresses making some key combinations impossible

In Windows it's impossible to enter the Apple IIgs control panel, because the key combination Alt-Ctrl-Escape (=Open-Apple-Control-Escape) is used by Windows to switch focus to another window. F1-Ctrl-Escape doesn't work either because Ctrl-Escape opens the Start-menu. Same thing in GSPort and KEGS32.

Raspberry Pi image

While Deb is nice, there is a paradigm for releasing emulators as prebuilt IMG file for Raspberry Pi. This would be a nice addition for GSplus releases.

Character keeps going in one direction

Does this game works for you? http://www.whatisthe2gs.apple2.org.za/immortal-the

For me, that wizard keeps going down-right when nothing is pressed. People tell me to calibrate my joystick, but I'm not sure how to do it on windows 7. Had the same thing with ActiveGS. My joystick is very simple, 4 direction buttons, no sticks, 10 other buttons. Seems to work somewhat okay in other (not ][gs related) games, so it looks like an emulator bug.

I also have very little idea what those parameters in F4 -> Joystick Configuration are supposed to mean.

Rasp pi SDL2 install

Listed instructions from your documentation.

When building on Raspberry Pi, you need to get the hardware

accelerated graphics driver enabled with SDL2.

We borrow the SDL2 build from RetroPie which takes care of this for us.

Could I not just apt-get this

sudo apt-get install libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev libsdl2-mixer-dev

This seems to install a good amount of the SDL Library or is the accelerated Graphics specific to RetroPie and not in the packages above?

Thank you.

Leon Sargent

CLI vs KB Shortcuts vs Config Files - No parity

There is a big gap in what is supported via CLI, keyboard shortcut, and config options.

Would like to get all options supported everywhere possible (some emulator options are probably only adjustable prior to starting engine.) Also want 100% documentation coverage on all options, including supported platforms.

Add tests to CI

As per this post: https://about.gitlab.com/2016/07/29/the-basics-of-gitlab-ci/

We should start adding some sanity testing, but also consider how we want to do larger automated testing of the emulation itself.

I think for completion of this one, it would be adequate to at least run a CLI version check or something simple for feedback from the finished executable on each platform.

OSX build requires 10.11

This can probably easily be built for older versions. Look into building against earlier SDKs.

SSDIR has no default

From user Alex Lee on FB:
Dagen: In using GSPlus, if you haven't set a screen shot directory, function-3 doesn't save a screen shot?
image

Joystick Button Press Interrupts Functionality

Hi There,

I've attached an Xbox One controller to my MacBook Pro running 10.14.6 (18G87) and launch gsplus which seems to recognize the joystick. However, any game I try will respond to the joystick up until the moment I press a joystick button. The button press is recognized, but then no further input from the joystick appears to be registered.

Please let me know if I can provide any needed information.

Thanks,

Levi

Windows 10 UI for Host FST config is broken

The config dialog for choosing a Host FST location on Windows 10 is not working properly.

  1. Selecting ../ multiple times in a row creates a path with lots of ../../.. but the file display does not go up more than once so I can't actually go higher and then choose other directories to use from those higher levels.
    host_fst_config2

  2. If I do select a directory, it displays in the path but then there's no way that I can see to exit the dialog and keep the selection I have made. If I hit ESC i return to the config menu but the choice is not kept. And there's a spurious inverse block appearing in the directory tree area too.
    host_fst_config

Dependency check for readline

On Linux, gsplus has a dependency on readline, but this dependency is not documented or checked by cmake

[  5%] Building C object bin/CMakeFiles/partls.dir/partls.c.o
[  7%] Linking C executable partls
[  7%] Built target partls
Scanning dependencies of target x_readline
[  8%] Building C object bin/CMakeFiles/x_readline.dir/readline.c.o
/home/cas/src/gsplus/src/readline.c:90:10: fatal error: readline/readline.h: No such file or directory
   90 | #include <readline/readline.h>
      |          ^~~~~~~~~~~~~~~~~~~~~

config.txt, config.gsp and .config.gsp

From the GSPlus Manual.

screen shot 2018-10-20 at 4 58 15 pm

This section is really not clear other than there are possibly 3 config files, I have found 2. One in the application package config.txt and the other at User called config.gsp.

The one in the apps package appears not to change only the config.gsp in my user account.

I would submit to you a clarification on the Default configuration files section on page 10 of the PDF if you explain their purpose and how they are used.

I would really like to understand the difference between the two and how they are used as compared to Multiple custom configuration files which is a very clear section page 10 of the PDF.

Thank you.

Leon Sargent

Wrong aspect ratio?

Shouldn't the aspect ratio of the picture be 4:3 (which it isn't if you don't run fullscreen in a 4:3 resolution without -fulldesk)?
I guess the IIgs doesn't have square pixels. But I have never used a real IIgs so I may be wrong.

Intl. Keyboard Mapping wrong

German user with QWERTZ layout reports:

I can't enter a / within GS+. ๐Ÿ™‚
On my German PC keyboard, the / is when I press Shift+7. On older versions, like 0.12, the / character appeared when I pressed #. But now it is gone.
The ร–ร„รœ keys did something in previous GS+, now nothing.

img_20180831_161649

source code version is behind the binary

It looks like you've got the version in the window title bar, and the github source code version is 0.10a but the github binary release version is 0.13a. So maybe we're missing some source code. The github source code version doesn't seem to support host-fst, and GSplus deletes the g_cfg_host_path line out of the conf file upon startup. The github binary release version works fine. Thank you!

Segmentation fault (core dumped)

I built GSPlus from source on my Fedora laptop and tried running ./gsplusx in it's own folder, but got a segmentation fault. Not sure if it's an issue on my system or in the code, but nothing I've Googled has helped. Any ideas what could be causing this?
Full output:

Trying 'config.txt'
Parsing configuration file
Read: 262144 bytes of ROM
Patching ROM 03 smartport bug
RAM size is 0 - 900000 (9.00MB)
Preparing X Windows graphics system
Visual 0
    id: 00000020, screen: 0, depth: 24, class: 4
    red: 00ff0000, green: 0000ff00, blue: 000000ff
    cmap size: 256, bits_per_rgb: 8
Chose visual: 0, max_colors: -1
Will use shared memory for X
Segmentation fault (core dumped)

Joystick button's don't register on some platforms

For the SDL and Linux joystick drivers, the button detection code is in joystick_update rather than joystick_update_buttons. At least on my machine, this results in buttons not actually working.

I didn't look too deeply into why that's the case because I saw the empty functions and just assumed that they hadn't been implemented yet. Throwing the SDL code at the top so it has precedence over the Linux code and implementing joystick_update_buttons fixed the issue for me.

For the SDL driver, you can just cut and paste the button code from joystick_update to get the same effect. Looking at the code, it doesn't look like multiple joysticks are supported in the Linux driver, and I wonder if there's any reason to keep it over the SDL driver?

Actually, it looks like supporting two gamepads in the SDL driver would be trivial, but I don't actually have a second gamepad to test. At that point, all that platform-specific code could be dropped, unless I'm missing something.

crash unimp write

Reproduce, enter monitor from boot.

enter 1
enter m

Result:

UNIMP WRITE to addr 0000cffe, val: 0084
UNIMP WRITE to addr 0000cffd, val: 0000
UNIMP WRITE to addr 0000cffb, val: 0086
UNIMP WRITE to addr 0000cffc, val: 0002
UNIMP WRITE to addr 0000cffa, val: 0084
UNIMP WRITE to addr 0000cff9, val: 0000
UNIMP WRITE to addr 0000cff7, val: 0086
UNIMP WRITE to addr 0000cff8, val: 0002
UNIMP WRITE to addr 0000cff6, val: 0084
UNIMP WRITE to addr 0000cff5, val: 0000
UNIMP WRITE to addr 0000cff3, val: 0086
UNIMP WRITE to addr 0000cff4, val: 0002
UNIMP WRITE to addr 0000cff2, val: 0084
UNIMP WRITE to addr 0000cff1, val: 0000
UNIMP WRITE to addr 0000cfef, val: 0086
 ... trimmed ...
UNIMP WRITE to addr 0000c0c5, val: 0000
UNIMP WRITE to addr 0000c0c3, val: 0086
UNIMP WRITE to addr 0000c0c4, val: 0002
UNIMP WRITE to addr 0000c0c2, val: 0084
UNIMP WRITE to addr 0000c0c1, val: 0000
WRite loc: c0bf
$ 

Paperboy loads extremely slowly

This is reproducible in the original KEGS emulator also. If you load Paperboy, after the title screen appears, the next screen (the newspaper) will come up slowly, line-by-line. The music is also affected and becomes drawn-out beeps.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.