English Amiga Board


Go Back   English Amiga Board > Support > support.OtherUAE

 
 
Thread Tools
Old 13 February 2012, 14:55   #1
modrobert
old bearded fool

modrobert's Avatar
 
Join Date: Jan 2010
Location: Bangkok
Age: 53
Posts: 572
Happy Ramblings about E-UAE with Amikit on 64bit Linux

I've been optimizing and tweaking my E-UAE Amiga emulator setup on Ubuntu 11.04 64bit (Linux) for gaming, also got the JIT compiler running by using the 32bit version of E-UAE which improves performance a lot, will get back to that later in this post. I thought it would be a good idea to share my findings with newcomers and perhaps get some feedback from other EAB members.

My approach was to use Amikit as a high-end Amiga and within that use WHDLoad to load the games in a compatible way on the selected 68020 CPU required for JIT operation. In my setup this gives a much better performance compared to booting the games (ADF floppy images) directly in E-UAE, not to mention the excellent compatibility and performance when loading games from hard drive using WHDLoad. The 64bit (amd64) version of E-UAE which can be installed directly from the Ubuntu repository does not support JIT option (Just In Time compiler), and that really makes Amikit a lot slower, so that's why I installed the 32bit version instead. I think this is the main reason WinUAE remains 32bit as well.

In order to run 32bit programs under 64bit Ubuntu (or other Linux distributions) in general you need ia32-libs installed, which can be installed like this:

Code:
sudo apt-get install ia32-libs
This command will install a lot of stuff to please the dependencies, so it might take some time to install, but well worth it.

The E-UAE x86 32bit (i586) binaries can be found at the author Richard Drummond's website here (scroll down). There will probably be some GTK warnings when loading E-UAE (the GUI) before it finds the 32bit libs, just ignore those, it will not affect functionality.

You can find Amikit for download here, and check this excellent guide for the Linux installation.

I kind of like tweaking the E-UAE config file manually (default name: .e-uaerc), but also find it frustrating at times, especially when you realize not all the stuff is implemented. Here is my config:

Code:
config_description=UAE default configuration
config_hardware=false
config_host=false
config_version=0.8.29
unix.rom_path=~/
unix.floppy_path=~/
unix.hardfile_path=~/
unix.savestate_path=~/
unix.cpu_idle=0
x86.use_tsc=yes
sdl.map_raw_keys=true
sdl.use_gl=false
alsa.device=default
alsa.verbose=false
use_gui=no
use_debugger=false
kickstart_rom_file=/foo/kick.rom
kickstart_ext_rom_file=
kickstart_key_file=
flash_file=
cart_file=
kickshifter=false
floppy0=
floppy0type=0
floppy1=
floppy1type=0
floppy2=
floppy2type=-1
floppy3=
floppy3type=-1
nr_floppies=2
floppy_speed=100
parallel_on_demand=false
serial_on_demand=false
serial_hardware_ctsrts=true
serial_direct=false
scsi=true
scsi_device=/dev/cdrom
sound_output=exact
sound_bits=16
sound_channels=stereo
sound_stereo_separation=7
sound_stereo_mixing_delay=0
sound_frequency=44100
sound_interpol=none
sound_adjust=0
sound_volume=0
sound_latency=100
comp_trustbyte=indirect
comp_trustword=indirect
comp_trustlong=indirect
comp_trustnaddr=indirect
comp_nf=true
comp_constjump=true
comp_oldsegv=false
comp_flushmode=soft
compforcesettings=true
compfpu=true
cachesize=16384
joyport0=mouse
joyport1=joy0
bsdsocket_emu=true
synchronize_clock=no
maprom=0x0
gfx_framerate=1
gfx_width=720
gfx_height=568
gfx_width_windowed=720
gfx_height_windowed=568
gfx_width_fullscreen=800
gfx_height_fullscreen=600
gfx_refreshrate=0
gfx_vsync=false
gfx_lores=false
gfx_linemode=double
gfx_correct_aspect=false
gfx_fullscreen_amiga=false
gfx_fullscreen_picasso=false
gfx_center_horizontal=none
gfx_center_vertical=none
gfx_colour_mode=8bit
immediate_blits=true
ntsc=false
hide_cursor=true
show_leds=false
keyboard_leds=numlock:none,capslock:none,scrolllock:none
chipset=aga
collision_level=playfields
fastmem_size=8
a3000mem_size=0
z3mem_size=128
bogomem_size=4
gfxcard_size=32
chipmem_size=4
cpu_speed=max
cpu_type=68020/68881
cpu_compatible=false
cpu_cycle_exact=false
blitter_cycle_exact=false
log_illegal_mem=false
catweasel_io=0x0
kbd_lang=se
state_replay=no
state_replay_rate=250
state_replay_buffer=20971520
filesystem2=rw,dh0:AmiKit:/foo/AmiKit/AmiKit,0
filesystem=rw,AmiKit:/foo/AmiKit/AmiKit
input.config=1
input.joymouse_speed_analog=20
input.joymouse_speed_digital=10
input.joymouse_deadzone=33
input.joystick_deadzone=33
input.mouse_speed=100
input.autofire=10
input.1.joystick.0.disabled=0
input.1.joystick.0.axis.0=JOY2_HORIZ.0
input.1.joystick.0.axis.1=JOY2_VERT.0
input.1.joystick.0.button.0=KEY_NP_MUL.0
input.1.joystick.0.button.1=SPC_TOGGLEFULLSCREEN.0
input.1.joystick.0.button.2=SPC_ENTERGUI.0
input.1.joystick.0.button.3=KEY_F10.0
input.1.joystick.0.button.4=JOY2_UP.0
input.1.joystick.0.button.5=JOY2_RIGHT.0
input.1.joystick.0.button.6=JOY2_DOWN.0
input.1.joystick.0.button.7=JOY2_LEFT.0
input.1.joystick.0.button.8=KEY_SHIFT_LEFT.0
input.1.joystick.0.button.9=KEY_SHIFT_RIGHT.0
input.1.joystick.0.button.10=KEY_K.0
input.1.joystick.0.button.11=KEY_B.0
input.1.joystick.0.button.14=JOY2_FIRE_BUTTON.0
input.1.joystick.0.button.13=JOY2_2ND_BUTTON.0
input.1.joystick.0.button.12=JOY2_3RD_BUTTON.0
input.1.joystick.0.button.15=KEY_SPACE.0
input.1.joystick.0.button.16=SPC_PAUSE.0
input.1.mouse.0.disabled=0
input.1.mouse.0.axis.0=MOUSE1_HORIZ.0
input.1.mouse.0.axis.1=MOUSE1_VERT.0
input.1.mouse.0.axis.2=MOUSE1_WHEEL.0
input.1.mouse.0.button.0=JOY1_FIRE_BUTTON.0
input.1.mouse.0.button.1=JOY1_2ND_BUTTON.0
input.1.mouse.0.button.2=JOY1_3RD_BUTTON.0
I have button mapped my DUALSHOCK 3 PS3 controller connected to the PC via USB as joy0. In order to find the right buttons I used this command:

Code:
jstest --normal /dev/input/js0
...then just pressed the buttons to see their respective logic numbers.

If you don't have the 'jstest' command, it can be installed like this:

Code:
sudo apt-get install joystick
The selected config, button number and SDL input event name can be explained like this color coded example:

input.1.joystick.0.button.16=SPC_PAUSE.0

The example above from my config maps E-UAE emulator pause function to PS3 controller button 16 in input config 1. Don't forget you need to set which input config you want to enable, this line from the config file does that:

Code:
input.config=1
I found some posts by Hungry Horace over at Ultimate Amiga which made me understand the logic behind the joystick setup in the E-UAE config file, but where did he find those interesting "functions" to map the buttons to? After a while searching around I realized these function names were in the source code, specifically the SDL part of the code to handle input events. You can find them listed in this file, please note that some of the interesting emulator control related events there can't be mapped, nothing happens. Also keep in mind that savestates will not work when emulating hard drive in E-UAE.

Basically what I mapped to the PS3 controller besides d-pad and three fire buttons (some games like Turrican 2 support more than one fire button) was WHDLoad exit keys mapped (F10 and num pad *) to [select] and [start], then emulation pause for the round Playstation logo button, emulator fullscreen toggle for the left analog thumb push down switch and some regular keyboard keys (spacebar is useful) mapped to the shoulder buttons.

When testing new config file settings I recommend launching 'uae' in a terminal like this example:

Code:
uae -f .myconfig_test
This way you can easily launch with different config files as well, and you can see the emulator output properly.

Using Amikit makes it very easy to add new games, just copy the files directly from the Linux side using your favorite tools to the Amikit 'Games' directory, no need to do any of that within the Amiga emulation. I highly recommend Killergorilla's WHD packs for instant game action.

I hope this helps someone. Feel free to reply with suggestions or if you have any questions.

Last edited by modrobert; 13 February 2012 at 16:52.
modrobert is offline  
Old 14 February 2012, 08:25   #2
kriz
Junior Member
kriz's Avatar
 
Join Date: Sep 2001
Location: No(R)Way
Age: 39
Posts: 2,785
Really great guide !! Im going to use this when I install Linux 64bit here aswell .. !! THX
kriz is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
FS-UAE 2.0.1 on Win7-64bit elowan support.FS-UAE 9 17 January 2013 11:44
G-FS-UAE (GUI/Frontend for Linux FS-UAE) Speedvicio support.FS-UAE 12 05 November 2012 20:14
IPF In LInUx UAE Muzer support.OtherUAE 6 22 October 2009 19:46
E-UAE on Linux :) digit01 New to Emulation or Amiga scene 23 05 May 2009 14:39
WinUAE vs Linux UAE? kckelleher support.WinUAE 0 04 May 2002 23:29

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 14:45.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, vBulletin Solutions Inc.
Page generated in 0.07631 seconds with 15 queries