Git Product home page Git Product logo

frodesolheim / fs-uae Goto Github PK

View Code? Open in Web Editor NEW
465.0 42.0 91.0 71.42 MB

Cross-platform Amiga emulator with a slight focus on gaming, but also with solid support for productivity apps including just-in-time (JIT) compilation.

Home Page: https://fs-uae.net/

License: GNU General Public License v2.0

Shell 0.25% Python 0.26% C 39.82% C++ 57.46% Assembly 0.81% GLSL 0.85% Makefile 0.25% M4 0.25% Batchfile 0.02% HLSL 0.01% Meson 0.02%
emulator amiga

fs-uae's People

Contributors

bmwiedemann avatar borb avatar chewi avatar cnvogelg avatar enverex avatar erique avatar ezrec avatar frodesolheim avatar glaubitz avatar jens-maus avatar keirf avatar markcox avatar rsn8887 avatar sgtatham avatar sonnenscheinchen avatar temisu avatar vanfanel 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fs-uae's Issues

Segfault on Debian testing with Nvidia driver 340.32

When running fs-uae on current Debian testing x86_64 (KDE), it always segfaults. Here is the backtrace from gdb:

Program received signal SIGSEGV, Segmentation fault.
__memmove_ssse3_back () at ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S:1698
1698    ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S: No such file or directory.
(gdb) bt
#0  __memmove_ssse3_back () at ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S:1698
#1  0x00007ffff27b8137 in ?? () from /usr/lib/libnvidia-glcore.so.340.32
#2  0x00007ffff27b8218 in ?? () from /usr/lib/libnvidia-glcore.so.340.32
#3  0x00007ffff69e06ad in ?? () from /usr/lib/libGL.so.1
#4  0x00007ffff7dea9bd in call_init (l=0x7ffff7fcf9f0, argc=argc@entry=1, argv=argv@entry=0x7fffffffe168, env=env@entry=0x7fffffffe178) at dl-init.c:64
#5  0x00007ffff7deaae3 in call_init (env=0x7fffffffe178, argv=0x7fffffffe168, argc=1, l=) at dl-init.c:36
#6  _dl_init (main_map=0x7ffff7ffe1a8, argc=1, argv=0x7fffffffe168, env=0x7fffffffe178) at dl-init.c:126
#7  0x00007ffff7ddd1ca in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
#8  0x0000000000000001 in ?? ()
#9  0x00007fffffffe474 in ?? ()
#10 0x0000000000000000 in ?? ()

Floppy swapper shortcuts

Currently, you cannot assign keyboard shortcuts to insert next/previous floppy. This enhancement proposal is to implement some kind of feature where disks from the floppy list can be inserted by using keyboard shortcuts and/or buttons mapped to gamepads.

Add MIDI support in FS-UAE?

Several people have voiced interest in MIDI support in FS-UAE (http://eab.abime.net/showthread.php?t=68356). There's currently no plans for this, but you can subscribe to this issue if you want to help with it, should it be implemented in the future - or just to get notifications if anything exciting happens in this regard.

Compilation fails on OSX 10.10

It fails to compile on os x 10.10 (and, probably 10.9), due OS X own htonl() implementation.
There's a patch making it compile.
Patch was only checked at 10.10, so be careful.

diff --git a/prowizard/include/extern.h b/prowizard/include/extern.h
index 7ac6cbb..d1a6d52 100644
--- a/prowizard/include/extern.h
+++ b/prowizard/include/extern.h
@@ -331,7 +331,10 @@ extern short test_smps ( long, long, long, Uchar, Uchar );
extern long PWGetFileSize ( char * );
extern FILE * PW_fopen ( char *, char * );
extern void fillPTKtable ( Uchar[37][2] );
+
+#if __MAC_OS_X_VERSION_MAX_ALLOWED < 1090
extern int htonl(int);
+#endif

/* globals /
/
Some say it's badly coding when using Globals ... sure it is, now what's the solution ? */
diff --git a/prowizard/misc/misc.c b/prowizard/misc/misc.c
index f93e527..d510cac 100644
--- a/prowizard/misc/misc.c
+++ b/prowizard/misc/misc.c
@@ -509,8 +509,10 @@ void fillPTKtable (Uchar poss[37][2])
}

#ifndef _WIN64
+#if __MAC_OS_X_VERSION_MAX_ALLOWED < 1090
int htonl(int v)
{
return ((v >> 24) & 0x000000ff) | ((v >> 8) & 0x0000ff00) | ((v << 8) & 0x00ff0000) | ((v << 24) & 0xff000000);
}
#endif
+#endif

Pressing X using joystick leaves the arcarde gui

When pressing the X button in the top right corner of the F12 menu while playing a game, fs-uae-arcarde does not return to the overview page but closes the program.

Doing the same using keyboard only, acts as expected.

Save state feature compatible with directory hard drives

Currently, save states are disabled by FS-UAE Launcher when you run WHDLoad games / use directory hard drives. This is currently done because without further work, the save states can corrupt the directory hard drives (lose saved games).

FS-UAE on OS X does not receive mouse motion events when window is not focused

FS-UAE on OS X does not get mouse move events when window is inactive. This is normally not a problem, but with mouse integration enabled, this is a bit annoying. It would be best if the window receives mouse motion events even while inactive, so you can "interact" with it as it were a native application (i.e. move cursor over windows inside Workbench and click on them to activate the window (and FS-UAE)).

libmpeg2 should not be installed

I am trying to get the makefiles not to install libmpeg2, since pkgsrc already has a package for it and therefore people would already have it. fs-uae trying to install a private copy on top of that is not a nice thing to do.

Activating the second joypad (port 0) disables the keyboard

Reported by TCD (moved from Trac):

"When the second joypad is activated in FS-UAE (after the game was started), the keyboard stops to work (no keypresses are recognised within emulation anymore). After switching the second joypad back to mouse, the keyboard works again.

Good test subject is Gauntlet III. For example the 't +3 MLS' trainer choice can't be made once the second joypad is active."

"Another reproducable with the +17 ATX trainer menu of Joe & Mac: With both joypads activated the keyboard doesn't respond, changing the second joypad back to mouse re-activates the keyboard."

"After some more testing I found the real problem: Pressing start + select on my first joypad disables the keyboard. Sorry for the confusion, just hard to notice in most games :)"

OS X: Mouse pointer behaves strange if moving from and back to fullscreen space

If you are using FS-UAE in fullscreen on OS X, and switch "virtual desktop" with e.g. Ctrl+Left, then the Amiga mouse pointer may start to behave strangely when returning to FS-UAE. In particular, you may not be able to move it all the way to the top (and it'll look like the pointer is hitting an invisible border).

One workaround to fix the issue when it occurs is to use F12 + g twice (to ungrab and grab the mouse pointer).

This is probably not a bug in FS-UAE, but rather an issue with SDL2 + OS X. But it is possible it could be worked around automatically in FS-UAE by automatically ungrabbing/regrabbing focus if it can be detected that application has lost + regained focus.

Don't load default config, and/or don't complain about missing config when lauching with options

When launching FS-UAE with options (other than just path to config file):

  • don't load Default.fs-uae (etc) if it exists, or
  • don't complain about missing config file if not.

Since in this case, you have done configuration via the command line. Currently, you can use --end-config to enforce this (but note: that also prevents Host.fs-uae from being loaded), but it should be default behavior when command line arguments are used.

(There are some options, such as --fullscreen, where it still could make sense to load the default configuration, this should be considered in more detail before an implementation is done).

Problem with FS-UAE Launcher and non-ascii characters in dir names on OS X?

"I'd found a little bug in the latest FS-UAE build (maybe only in Mac OS X 10.10)

It a folder have a special character (ö, ä, ü) the path doesn't work in FS-UAE Launcher. I tried this for a floppy path for my special config, which points to a folder named "Amiga Classic hochgerüstet". The selected images aren't displayed in FS-UAE. Only as I renamed the folder to "...hochgeruestet", the images appears..."

http://eab.abime.net/showpost.php?p=982119&postcount=753

Autodetect RDB mode with VHD format hard drive images

FS-UAE automatically reads the first four bytes in the file and automatically enables RDB mode if the bytes are "RDSK", but presumably, the .vhd file starts with some VHD headers instead.

VHD functions from the UAE core can probably be used to find the first 4 data bytes in the .vhd file to compare with

FS-UAE crashes on exit in some circumstances

from jbl007:
"crashes with a chance of 95% on exit if "window_width" and/or "window_height" is in the config.

It seems to crash at random positions. Here is one example (gdb):"

amiga_quit
UAE emulation core is quitting
[Thread 0xbfafab40 (LWP 8216) exited]
[Thread 0xc26fbb40 (LWP 8215) exited]
[Thread 0xf34e4b40 (LWP 8214) exited]

Program received signal SIGSEGV, Segmentation fault.
luaH_getstr (t=0xc3329b0, key=0xc333290) at libfsemu/src/lua/ltable.c:470
470     if (ttisshrstring(gkey(n)) && eqshrstr(rawtsvalue(gkey(n)), key))
(gdb) bt
#0  luaH_getstr (t=0xc3329b0, key=0xc333290) at libfsemu/src/lua/ltable.c:470
#1  0x08525993 in luaH_get (t=0xc3329b0, key=0xc333180) at libfsemu/src/lua/ltable.c:484
#2  0x085275a1 in luaV_gettable (L=0xc333608, t=0xc332b80, key=0xc333180, val=0xc333180) at libfsemu/src/lua/lvm.c:117
#3  0x08510332 in lua_getglobal (L=0xc333608, var=0x870ab87 "on_fs_emu_render_frame") at libfsemu/src/lua/lapi.c:605
#4  0x084d0031 in fs_emu_lua_run_handler (name=0x870ab87 "on_fs_emu_render_frame") at libfsemu/src/emu/emu_lua.c:20
#5  0x084d7050 in render_frame (alpha=1, perspective=313534184) at libfsemu/src/emu/render.c:915
#6  0x084d8c88 in fs_emu_video_render_function () at libfsemu/src/emu/render.c:1980
#7  0x0852baab in render_frame () at libfsemu/src/ml/render.c:222
#8  fs_ml_render_iteration () at libfsemu/src/ml/render.c:648
#9  0x0852cfb3 in fs_ml_main_loop () at libfsemu/src/ml/sdl.c:992
#10 0x084cfcb1 in fs_emu_run (function=0x8601ef0 <main_function>) at libfsemu/src/emu/emu.c:455
#11 0x08050360 in main (argc=3, argv=0xffffd564) at src/fs-uae/main.c:1155
(gdb) c
Continuing.

Program received signal SIGSEGV, Segmentation fault.
luaH_getstr (t=0xc3329b0, key=0xc333290) at libfsemu/src/lua/ltable.c:470
470     if (ttisshrstring(gkey(n)) && eqshrstr(rawtsvalue(gkey(n)), key))
(gdb) c
Continuing.
[Thread 0xbebf9b40 (LWP 8237) exited]
[Thread 0xf68aeb40 (LWP 8212) exited]

Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
(gdb) q

Support joystick hotplugging

When joysticks are connected while running the emulator, the joysticks should become available in the on-screen menu.

Support portable mode directly by FS-UAE

Portable mode is implemented in FS-UAE Launcher and not in FS-UAE. FS-UAE Launcher configures the emulator so that when running from the launcher, it uses the "portable directories".

However, when manually starting FS-UAE, it will use Documents/FS-UAE as normal, which is quite confusing. It would be better if FS-UAE too picks up the portable directory on its own.

New option fullscreen_spaces = 0

Allow the user to set fullscreen_spaces = 0
(SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES="0")

Users may not want to use the fullscreen spaces feature, nor see the annoying OS X stretch animation on startup.

Support for loading .uae files?

For several reasons, FS-UAE uses its own .fs-uae config file format. An important reason for this was that FS-UAE started out without a configuration interface, and it was deemed important to have simpler and more readable/memorable options.

But it is also useful to be able to read legacy .uae config files, at least for users which have lots of existing setups with .uae files.

FS-UAE could be extended to read .uae files too, it would then do two things:

  • Options which are UAE hardware options would be sent to the UAE core directly.
  • Options which are host settings (such as video options, etc) would be parsed and changed to FS-UAE options. This includes options such as fullscreen, window sizes, audio options and input options (selected device). This would be a best-effort, since not necessarily all options have a modern equivalent in FS-UAE.

An alternative, which also would work well is to create a wrapper script (e.g. a python) script, say "fuae" which loads uae config files and support uae-style command line options, which then processes options like above, creates a new temporary .fs-uae files and execs fs-uae.

Github-generated releases don't contain git submodules

(aside: qemu-uae has no issue tracker? I would have put it there if I had found one)
I realise that the following is most likely a limitation of github (maybe they need a feature request?).

I was starting to package qemu-uae, using the released file https://github.com/FrodeSolheim/qemu-uae/archive/v2.0.2.tar.gz . However, it turns out that such files as generated by github don't contain the git submodules. In particular I miss the dtc submodule. For pixman I already have a package, so that would be no problem I expect.

Support for write-protecting disk images

Currently, there is no way to write-protect disk images. Disk image overlay files are used, so whether the original file is write-protected or not does not affect the write-protected status in emulation.

HRTmon Support

"Please add the option to use the HRTmon freezer cartridge that is built into winUAE :) This is very useful for WHDload programming. Thanks!" (Issue imported from trac).

Inserting additional floppies when running

Currently you can only add floppies to a list before actually starting fs-uae itself, and while it is running you can only swap between floppies from that list.
Choosing an unforeseen floppy requires stopping and starting the emulation, which is kind of inconvenient when you're not just working with a short list of floppies which van be foreseen beforehand.
A nice enhancement would be the ability to temporarily pause the emulator and choose a new floppy image.

Makefile not BSD-make compatible any more

It seems that there is a small thing in the Makefiles that isn't BSD-make-compatible any more. This is what I get if I make with bmake (with gmake it builds fine).

mkdir -p share/locale/cs/LC_MESSAGES
/usr/bin/msgfmt --verbose -o share/locale/cs/LC_MESSAGES/fs-uae.mo
/usr/bin/msgfmt: no input file given
Try `/usr/bin/msgfmt --help' for more information.
*** Error code 1

Stop.
make: stopped in /home/tmp/wip/fs-uae-dev/work.x86_64/fs-uae-2.5.8dev

Define a system-wide location for FS-UAE plugins

Define a system-wide location for FS-UAE plugins and look for plugins there in addition to the user-specific plugins folder.

Considerations must be made how this will work together with future FS-UAE Launcher plugin-downloading-on-demand (perhaps the launcher will simply disallow updating plugins which are installed system-wide, since this should probably rather be updated via the host package system).

Compatibility setting

The WinUAE GUI has this slider that allows you to adjust "Compatibility vs Required CPU Power":
http://guide.abime.net/gguides/winuaea.htm
Is there a similar option in fs-uae?

I've found some games that are compatible with vanilla WinUAE freeze after the flashtro in fs-uae, so maybe this setting is the cause...

round() call in src/emu/video.c and src/fs-uae/video.c

In src/emu/video.c and src/fs-uae/video.c there are calls to long double roundl(long double). I noticed this because NetBSD doesn't seem to have it. Fortunately it isn't needed: roundl() is called with a plain double argument, and the result is assigned to an int. So using plain double round(double x) is good enough.

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.