English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   support.FS-UAE (https://eab.abime.net/forumdisplay.php?f=122)
-   -   fs-uae - a new multi-platform amiga emulator for games! (https://eab.abime.net/showthread.php?t=63007)

FrodeSolheim 04 February 2012 13:40

fs-uae - a new multi-platform amiga emulator for games!
 
I am pleased to announce the first public release of fs-uae :)

fs-uae is a multi-platform Amiga emulator based on UAE/WinUAE, with a focus on emulating floppy-disk and CD-ROM based games. The current version is based on the emulation core from WinUAE 2.4.0 beta.

An important feature of the emulator is that it is fully controllable with a gamepad, with an on-screen GUI, which means that you can easily swap floppies and load save states with your gamepad. Because of this, fs-uae is well suited to be started from an emulator frontend running on a HTPC, but will work equally great on your personal computer.

The emulator uses the cycle-exact emulation code from WinUAE and requires a moderately fast computer with accelerated graphics (OpenGL) to work.

The emulator has been tested on Linux (32-bit), Windows and Mac OS X (64-bit).

I hope you find this project useful. Please bear in mind that this is the first public release, and there may be errors in the README or associated documentation. Please let me know if you encounter any issues with running the emulator. I will be glad to answer your questions if you have any, or help you get the emulator running.

More detailed information:
http://fengestad.no/fs-uae/README.html

A screenshot (of the menu mode):
http://fengestad.no/fs-uae/screenshot

Download Windows, Mac OS X and Debian binaries, or source code for Linux/Mac/Windows here:
http://fengestad.no/fs-uae/

Leffmann 04 February 2012 14:20

Looks neat, I think it could be really popular on HTPC setups. Would be cool to see a finished integration with game selector with screenshots etc.

FrodeSolheim 04 February 2012 14:59

Quote:

Originally Posted by Leffmann (Post 800444)
Looks neat, I think it could be really popular on HTPC setups. Would be cool to see a finished integration with game selector with screenshots etc.

Glad you think so! -Actually, I have a game center-project with integrates nicely with fs-uae (and a handful of other emulators. -I know... -there isn't actually any shortage on such frontends :)).

Here is a screenshot: http://fengestad.no/fs-game-center/screenshot.png
(this project is not quite production-ready yet, but works very well, and is also multi-platform)

nexusle 04 February 2012 15:24

WOW!!! This is the Emu I've searched for my HTPC!! Thanks guy!!

FrodeSolheim 04 February 2012 16:11

Quote:

Originally Posted by nexusle (Post 800461)
WOW!!! This is the Emu I've searched for my HTPC!! Thanks guy!!

It's nice to get such a response -I hope it works for you when you test it. While this is my own pet project, and I developed it to satisfy my own needs, it is nice when others find it useful.

I have probably made a mistake or two when documentation and packaging the project for release, so do not hesitate to post here if something does not work as expected.

General_Faliure 04 February 2012 17:40

Great, I'll see if i can integrate it in my arcade cab.

FrodeSolheim 04 February 2012 18:04

I added a precompiled debian package for Ubuntu/Debian. It is now available on http://fengestad.no/fs-uae/.

FrodeSolheim 04 February 2012 18:45

Here are a few more options which was not documented in example.conf in version 0.9.0:

Code:

[video]

## Open the emulator in fullscreen or windowed mode (1 = fullscreen,
## 0 = window). The default is windowed mode.
# fullscreen = 1

## Enable full-scene anti-aliasing (reduces jagged edges in menu-mode).
## Specify 2 for 2x, 4 for 4x, etc.
# fsaa = 4

[application]

## You can override the title displayed in menu mode
# title = Custom Title

## You can also override the sub-title displayed in menu mode
# sub_title = Custom Sub-Title

In the next version, you should also be able to specify aspect correction on/off in the configuration file.

FrodeSolheim 04 February 2012 19:11

Another omission from the README is this bit of information:

"With gamepads, you enter the menu either by using the dedicated "menu" button, if the gamepad has one, or you press and hold "start" and "selected" at the same time (or equivalent buttons).

You use the same key/button to dismiss the menu.

In the menu, you use the following keys for navigation:
Cursor keys
Enter (choose item, enter sub-menu)
Back-space (leave sub-menu)

On the game pad, you can use either the hat or the primary analog stick
for navigation. You choose items and enter sub-menus with the "primary"
button on the game pad. This is generally the "south" button on the right
side of the controller. The back button is the "east" button (Just like
you would navigate on the Xbox)."

Controllers supported out of the box in version 0.9.0:

Logitech Cordless Rumblepad 2
Logitech Dual Action Gamepad
Logitech Extreme 3D Pro
Logitech G27 Racing Wheel
Logitech Gamepad F310 (DInput mode)
Logitech Gamepad F310 (XInput mode)
Logitech Wireless Gamepad F710 (DInput mode)
Logitech Wireless Gamepad F710 (XInput mode)
Sony PlayStation 3 Controller (Wired)
Sony PlayStation 3 Controller (Wireless)
Speed-Link Competition Pro
Xbox 360 Controller (with Wireless Receiver)

Addition controllers supported in the next release:

Logitech PS3/USB Cordless Gamepad
Logitech Rumblepad 2
Logitech Rumble Gamepad F510 (DInput mode)
Logitech Rumble Gamepad F510 (XInput mode)
Saitek P380 Gamepad
Saitek P880 Gamepad
Thrustmaster 2 in 1 DT

If you have another controller you would like supported, please post a message here or PM me.

FrodeSolheim 04 February 2012 22:52

I have released version 0.9.1 which fixes a compilation issue (and a couple of other issues) for Mac OS X.

For Mac OS X users: With this version, you should run make in the "macosx" subdirectory. This will create an fs-uae.app bundle!

Support for additional game pad devices have been included in this version.

nexusle 04 February 2012 23:06

Mac OS X building end with errors:

Code:

make -C ..
make -C libfsemu
gcc  -DMACOSX -DWITH_SDL_VIDEO -DWITH_SDL_INPUT -DWITH_SDL_AUDIO -std=c99 -Wall -Werror=implicit-function-declaration -Iinclude `sdl-config --cflags` `pkg-config --cflags glib-2.0` -g -O2 -c src/libfsemu.c -o obj/libfsemu.o
/bin/sh: sdl-config: command not found
/bin/sh: pkg-config: command not found
src/libfsemu.c:4:17: error: SDL.h: No such file or directory
In file included from src/libfsemu.c:6:
include/fs/ml.h:4:18: error: glib.h: No such file or directory
In file included from src/libfsemu.c:6:
include/fs/ml.h:106: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fs_ml_event’
include/fs/ml.h:108: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
include/fs/ml.h:109: error: expected ‘)’ before ‘*’ token
include/fs/ml.h:112: error: expected ‘)’ before ‘*’ token
include/fs/ml.h:113: error: expected ‘)’ before ‘*’ token
include/fs/ml.h:122: error: expected specifier-qualifier-list before ‘gchar’
In file included from src/libfsemu.c:7:
include/fs/emu.h:32: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
include/fs/emu.h:34: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
include/fs/emu.h:37: error: expected ‘)’ before ‘*’ token
include/fs/emu.h:109: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fs_emu_event’
include/fs/emu.h:111: error: expected ‘)’ before ‘*’ token
include/fs/emu.h:113: error: expected ‘)’ before ‘*’ token
include/fs/emu.h:137: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
include/fs/emu.h:256: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fs_emu_is_pointer_visible’
include/fs/emu.h:282: error: expected specifier-qualifier-list before ‘gchar’
include/fs/emu.h:321: warning: type defaults to ‘int’ in declaration of ‘gchar’
include/fs/emu.h:321: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
include/fs/emu.h:335: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
In file included from src/libfsemu.c:9:
src/video.h:9: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘g_fs_emu_video_debug’
src/video.h:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘g_fs_emu_video_fullscreen’
src/video.h:11: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘g_fs_emu_video_fullscreen_window’
src/video.h:12: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
src/video.h:13: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘g_fs_emu_video_vsync’
src/video.h:14: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘g_fs_emu_video_crop_mode’
src/libfsemu.c:20: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
src/libfsemu.c:22: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
src/libfsemu.c:23: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
src/libfsemu.c:111: error: expected ‘)’ before ‘*’ token
src/libfsemu.c: In function ‘fs_emu_set_title’:
src/libfsemu.c:148: warning: implicit declaration of function ‘g_free’
src/libfsemu.c:150: warning: implicit declaration of function ‘g_strdup’
src/libfsemu.c:150: warning: assignment makes pointer from integer without a cast
src/libfsemu.c: In function ‘fs_emu_set_sub_title’:
src/libfsemu.c:163: warning: assignment makes pointer from integer without a cast
src/libfsemu.c: In function ‘fs_emu_set_window_title’:
src/libfsemu.c:172: warning: assignment makes pointer from integer without a cast
src/libfsemu.c: At top level:
src/libfsemu.c:237: error: expected ‘)’ before ‘*’ token
src/libfsemu.c:284: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
src/libfsemu.c:368: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘entries’
src/libfsemu.c:385: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
src/libfsemu.c:420: error: expected ‘)’ before ‘*’ token
src/libfsemu.c: In function ‘fs_emu_init’:
src/libfsemu.c:425: warning: implicit declaration of function ‘g_thread_init’
src/libfsemu.c:426: error: ‘g_fs_emu_config’ undeclared (first use in this function)
src/libfsemu.c:426: error: (Each undeclared identifier is reported only once
src/libfsemu.c:426: error: for each function it appears in.)
src/libfsemu.c:427: warning: implicit declaration of function ‘g_key_file_new’
src/libfsemu.c:430: warning: implicit declaration of function ‘SDL_Init’
src/libfsemu.c:430: error: ‘SDL_INIT_EVERYTHING’ undeclared (first use in this function)
src/libfsemu.c:440: error: ‘g_event_queue’ undeclared (first use in this function)
src/libfsemu.c:440: warning: implicit declaration of function ‘g_queue_new’
src/libfsemu.c:441: error: ‘g_event_queue_mutex’ undeclared (first use in this function)
src/libfsemu.c:441: warning: implicit declaration of function ‘SDL_CreateMutex’
src/libfsemu.c:445: warning: implicit declaration of function ‘read_config’
src/libfsemu.c: At top level:
src/libfsemu.c:475: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘emulation_thread_entry’
src/libfsemu.c: In function ‘fs_emu_run’:
src/libfsemu.c:507: error: ‘GError’ undeclared (first use in this function)
src/libfsemu.c:507: error: ‘error’ undeclared (first use in this function)
src/libfsemu.c:509: warning: implicit declaration of function ‘g_thread_create’
src/libfsemu.c:509: error: ‘emulation_thread_entry’ undeclared (first use in this function)
src/libfsemu.c:509: error: ‘FALSE’ undeclared (first use in this function)
src/libfsemu.c:536: warning: implicit declaration of function ‘SDL_CloseAudio’
make[2]: *** [obj/libfsemu.o] Error 1
make[1]: *** [libfsemu/out/libfsemu.a] Error 2
make: *** [bundle] Error 2

Seems that SDL is missing. What I must install, to get it working?

nexusle 04 February 2012 23:07

Quote:

Originally Posted by FrodeSolheim (Post 800527)
I have released version 0.9.1 which fixes a compilation issue (and a couple of other issues) for Mac OS X.

For Mac OS X users: With this version, you should run make in the "macosx" subdirectory. This will create an fs-uae.app bundle!

Support for additional game pad devices have been included in this version.

Can you provide this ".app" bundle?

FrodeSolheim 04 February 2012 23:11

Quote:

Originally Posted by nexusle (Post 800530)
Mac OS X building end with errors:
Seems that SDL is missing. What I must install, to get it working?

Yes, you need SDL among other libraries (this is listed in the INSTALL file). The easiest way to install the dependencies on Mac OS X i.m.o. is to install Macports and install the libraries with the port command.

FrodeSolheim 04 February 2012 23:15

Quote:

Originally Posted by nexusle (Post 800532)
Can you provide this ".app" bundle?

Currently, the app bundle is not self-contained (it does not contain the libraries), so it will only work on the computer where it is compiled.

But I can try to make a self-contained app bundle and post here. -Must first create a script to find all dependencies and rewrite the dynamic link section of the program.

EDIT: Mac OS X app bundle is now available from the project home page.

FrodeSolheim 04 February 2012 23:54

Quote:

Originally Posted by nexusle (Post 800532)
Can you provide this ".app" bundle?

By popular demand :) -I have created a self-contained app bundle (well, I hope it is anyway -I haven't got a separate computer to test it on). You can download it here:

http://fengestad.no/fs-uae/files/fs-...-macosx.tar.gz

Even though fs-uae is now an app-bundle, you can still run it with command-line arguments from the terminal, for instance (after unpacking):

$ fs-uae.app/Contents/MacOS/fs-uae -c /path/to/config

It will almost certainly require at least Mac OS X 10.6 (because that's what I compiled it on), but hopefully it will work on 10.7 as well.

UPDATE: I have been informed that example.conf was missing from the source distribution (thanks finrock). I have posted it here:
http://fengestad.no/fs-uae/example.conf

(it was not included in the Mac and Linux binary packages either)

Amiga1992 05 February 2012 01:12

THis is interesting for same reasons mentioned (htpc), thanks!! I will tryu it as soon as I get a controller for my PC that is not a wiimote :)

gary 05 February 2012 01:51

On-Screen virtual keyboard?
 
I had a quick look through the README but I didn't see a mention of a virtual keyboard. This is a feature I miss on C64 and Amiga emulators. Sure, we can change the keyboard layout but that is very time consuming for individual games and can be too limited with the typical USB joypad (not enough buttons).

Can this be looked at in the future?
1. Virtual keyboard to send keystrokes (include left/right mouse buttons)
2. Option to turn on/off joypad->mouse emulation on the fly.

fs-uae looks great, but until this is done you will still require a keyboard to play many games. I'm not talking about flight simulators, I'm talking about games that play with a joystick but require keys to change settings on the title screen / enter high scores / pause / cheat / quit to title / etc.

Mequa 05 February 2012 02:17

Nice. Is this based on PUAE source for cross-platform capabilities?

FrodeSolheim 05 February 2012 02:34

Quote:

Originally Posted by gary (Post 800557)
I had a quick look through the README but I didn't see a mention of a virtual keyboard. This is a feature I miss on C64 and Amiga emulators. Sure, we can change the keyboard layout but that is very time consuming for individual games and can be too limited with the typical USB joypad (not enough buttons).

Can this be looked at in the future?
1. Virtual keyboard to send keystrokes (include left/right mouse buttons)
2. Option to turn on/off joypad->mouse emulation on the fly.

fs-uae looks great, but until this is done you will still require a keyboard to play many games. I'm not talking about flight simulators, I'm talking about games that play with a joystick but require keys to change settings on the title screen / enter high scores / pause / cheat / quit to title / etc.

It is very late here in Norway, but I could not sleep, so why not post some replies instead :)

The virtual keyboard is actually a great idea!! I can promise this feature! I see in my head a semi-transparent keyboard overlay toggled on/off by a gamepad button.

Regarding your second point, I am planning to allow switching input devices in the joystick ports from the GUI (and perhaps even hot-plugging joysticks). And from the README, mouse emulation with gamepad is on the todo list :)

(Regarding C64, I am _thinking_ about porting Vice to my emulator framework - I too am missing an easy-to-control C64 emulator. However, this is not on the short term todo list...)

FrodeSolheim 05 February 2012 02:46

Quote:

Originally Posted by Mequa (Post 800564)
Nice. Is this based on PUAE source for cross-platform capabilities?

No. I wanted the most up-to-date emulator core possible, so I started with the WinUAE code. I then removed features and massaged the code until it compiled on Linux. The WinUAE code (even some of the core UAE emulation code) is quite Windows-specific (and Visual Studio-specific) nowadays.

Anyway, to be able to incorporate updates from WinUAE regularly and with ease, I have coded fs-uae with as little changes to the WinUAE code as possible, among other things with a lot of defines to "translate" windows-specific code to POSIX. If could solve something with a define, I probably did it (so I had to make minimal changes to the code from WinUAE).

Earlier, about a year ago, I used additional code from E-UAE and PUAE to get the Linux version up and running (video, audio, threading code, etc). But when the emulator evolved, I wanted to have fs-uae instead of WinUAE on my Windows box as well, and for several reasons, I started writing libfsemu (which handles video, audio, and input for fs-uae).

Some of the code borrowed from E-UAE/PUAE is therefore now removed again, but there is some code from E-UAE and PUAE left still, and they are credited the README and startup notice.

The cross-platform capabilities codes from the fact the UAE was originally cross-platform, and libfsemu which handles platform-specific details (with good help of SDL and glib).

When the ball was rolling, I threw in Mac OS X support for good show :)

The UAE/WinUAE code is somewhat messy (GCC gives a lot of warnings), and I would like to clean it up a bit, but it is also good to be able to copy changes from WinUAE easily. (I will probably ask Toni if he would accept some cleanup patches at some time).


All times are GMT +2. The time now is 22:55.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.

Page generated in 0.08238 seconds with 11 queries