Amiga.org

Amiga computer related discussion => General chat about Amiga topics => Topic started by: gdanko on May 27, 2010, 07:17:48 PM

Title: More seamless e-uae integration with Linux
Post by: gdanko on May 27, 2010, 07:17:48 PM
My goal was to be able to play my old games pretty seamlessly without having to mess with .uaerc, GUI configs, etc. I wanted to be able to doubleclick on an .adf image and start playing my game.  Using OS4 would require an expensive investment in hardware and software. MorphOS is not ready for day to day use and I can't justify 150 EU for it.

This is what I've gotten so far.

I created a custom build of uae, both 32 and 64 bit,  that does not include the GUI. What I noticed is that if I close the UAE window when I am finished with the game the GUI would pop up. I don't want this.

I configured Gnome to open .adf files with /usr/local/e-uae/scripts/launch.sh. The name of the adf is passed to the shell script. The shell script then looks at the filename and maps it to df0. It looks for any other disks of the same name (Disk 1, Disk 2, etc) and maps them to df1, df2, etc.

Common configuration options (cpu, memory, etc) are set as variables in the script.

Your game is launched with all of the drives mounted and you can play away. When you're finished with your game you close the UAE window and you're all finished.

Would anybody be interested in testing this? For now you have to manually do the mapping of the .adf file type to the launch.sh script. I am going to find out how to do this and make it automatic.
Title: Re: More seamless e-uae integration with Linux
Post by: koshman on May 27, 2010, 07:49:41 PM
You bet we we would be interested. This sounds awesome. Great work!
Title: Re: More seamless e-uae integration with Linux
Post by: gdanko on May 27, 2010, 07:52:57 PM
Quote from: koshman;561385
You bet we we would be interested. This sounds awesome. Great work!


Thanks, koshman. Once I am confident the multi disk thing is working correctly I will create an install script and make both versions available. I will have a shell script installer so I don't have to maintain packages for every distro out there.

I think it's basically how AROS and MorphOS handle it. I am told you have to install e-uae on MorphOS to be able to play the old games. This is kind of silly. I had been led to believe the support existed and all you had to do was 2x click the game's binary.

Send me a PM if interested in getting a copy.
Title: Re: More seamless e-uae integration with Linux
Post by: Amiga_Nut on May 27, 2010, 09:08:01 PM
Fantastic work, sounds like a fantastic idea :)

I'd offer to help but I don't have a Linux box now.
Title: Re: More seamless e-uae integration with Linux
Post by: Piru on May 27, 2010, 09:21:11 PM
Quote from: gdanko;561386
I am told you have to install e-uae on MorphOS to be able to play the old games. This is kind of silly.
Do you have any suggestion on as how this should be handled by MorphOS itself? Mind you, KS ROM is copyrighted material so even if UAE was included in the OS itself you still wouldn't be able to run any old games out of the box.
Quote
I had been led to believe the support existed and all you had to do was 2x click the game's binary.
You can easily configure E-UAE so that doubleclicking the adf launches the game.

Wait, doesn't that sound exactly like what you're doing for linux here? How silly!
Title: Re: More seamless e-uae integration with Linux
Post by: Karlos on May 27, 2010, 09:27:31 PM
Quote from: Piru;561407
Do you have any suggestion on as how this should be handled by MorphOS itself? Mind you, KS ROM is copyrighted material so even if UAE was included in the OS itself you still wouldn't be able to run any old games out of the box.


Isn't there an open kickstart replacement being developed as part of the AROS project?
Title: Re: More seamless e-uae integration with Linux
Post by: Piru on May 27, 2010, 09:28:32 PM
Quote from: Karlos;561410
Isn't there an open kickstart replacement being developed as part of the AROS project?
Not that I am aware. It has been planned for a decade I bet.
Title: Re: More seamless e-uae integration with Linux
Post by: Karlos on May 27, 2010, 09:31:13 PM
Quote from: Piru;561411
Not that I am aware. It has been planned for a decade I bet.


I dunno, I recall someone talking about it, though I can't recall who or how long ago. Getting old sucks :lol:
Title: Re: More seamless e-uae integration with Linux
Post by: Karlos on May 27, 2010, 09:33:59 PM
Hmm, this posting is recent:

http://utilitybase.com/forum/index.php?action=vthread&forum=6&topic=1967 (http://utilitybase.com/forum/index.php?action=vthread&forum=6&topic=1967)
Title: Re: More seamless e-uae integration with Linux
Post by: gdanko on May 27, 2010, 09:44:35 PM
Quote from: Piru;561407
You can easily configure E-UAE so that doubleclicking the adf launches the game.

Wait, doesn't that sound exactly like what you're doing for linux here? How silly!



I tried that, it did not work. I was told by a MorphOS developer that you have to do a few things in order for this work. Even moreso than simply associated .adf files with e-uae. Also, how do I suppress the GUI? How do I get e-uae to mount all the other disks? I am open to your suggestions as it would seem you one up on all of us here. :P
Title: Re: More seamless e-uae integration with Linux
Post by: Piru on May 27, 2010, 10:11:05 PM
Quote from: gdanko;561414
I tried that, it did not work

I bet you'll make it work every time out of the box in no time. Have fun with end-users :-)
Title: Re: More seamless e-uae integration with Linux
Post by: AmigaHeretic on May 27, 2010, 10:41:25 PM
Quote from: gdanko;561414
I tried that, it did not work. I was told by a MorphOS developer that you have to do a few things in order for this work. Even moreso than simply associated .adf files with e-uae. Also, how do I suppress the GUI? How do I get e-uae to mount all the other disks? I am open to your suggestions as it would seem you one up on all of us here. :P


I may be way off base and don't know cmd line options of euae so if I sound like an idiot ignore this post.


What I would think is a small script xIcon style or something.  Take Agony, for example, which I think was 4 disks?

something like, e-uae -ECS  -1megchip -1megfast -windowed -640x400 -disk1=agony1.adf -disk2=agony2.adf -disk3=agony3.adf -disk4=agony4.adf


Obviously those arguments of completely made up, but I'd imagine there is something close.  Make an icon for the script and have the adf's in the same drawer and bam!  Just double click to run Agony.  

This would require a script file for each game, so maybe you are thinking of something not so tedious?  I like to do stuff the hardware I suppose.  :-)
Title: Re: More seamless e-uae integration with Linux
Post by: Crumb on May 28, 2010, 12:10:18 AM
@gdanko

did you read my reply? Yahoo works perfectly on OWB http://www.amiga.org/forums/showpost.php?p=560904&postcount=11
Title: Re: More seamless e-uae integration with Linux
Post by: gdanko on May 28, 2010, 06:26:31 PM
At this point everything is working. If I doubleclick on, say, "Pirates! Gold (Disk 1 of 2).adf", the script goes and finds all of the other disks and adds them to the list of disks to open. The game fires up and all the disks are there.

I am having one small hurdle that I would appreciate input on. Some games are using WB 1.3 so KS 3.1 will not work. I could assume AGA globally and it should be able to play ECS games (or can it?). In a MorphOS or even OS 4.1 scenario, how do you accommodate the myriad of combinations?

Perhaps I can have something like launch13.pl and launch31.pl. Both could be associated with type .adf and you could choose the one you think you need? Hmmm...
Title: Re: More seamless e-uae integration with Linux
Post by: runequester on May 28, 2010, 06:51:56 PM
I imagine the simplest would either be some sort of "system select" screen, or just have different executables.
Title: Re: More seamless e-uae integration with Linux
Post by: gdanko on May 28, 2010, 07:30:34 PM
Well I don't want to have a menu but I suppose I could. Maybe the options could be:
1) A2000 68030 KS 1.3 ECS
2) A4000 68040 KS 3.2 AGA

Global options could be kept in /usr/local/e-uae/var/uaerc and platform-specific options would be appended to the command string, based on your selection.
Title: Re: More seamless e-uae integration with Linux
Post by: gdanko on May 28, 2010, 07:35:29 PM
@AmigaHeretic
I have down a way to select the disks I want to use. So now if you doubleclick on any of the three disks from a set, they're all mounted with disk 1 going in df0.
Title: Re: More seamless e-uae integration with Linux
Post by: vidarh on May 28, 2010, 07:59:16 PM
Quote from: gdanko;561373
Would anybody be interested in testing this? For now you have to manually do the mapping of the .adf file type to the launch.sh script. I am going to find out how to do this and make it automatic.


Sounds great. I'd definitively like to test this.
Title: Re: More seamless e-uae integration with Linux
Post by: gdanko on May 28, 2010, 08:03:52 PM
Quote from: vidarh;561723
Sounds great. I'd definitively like to test this.


I'll implement the menu runequester suggested, iron out a couple kinks, and post both 32 and 64 bit versions.
Title: Re: More seamless e-uae integration with Linux
Post by: desiv on May 28, 2010, 09:40:39 PM
What you might want to do is have the option for a config file, if found, to be read that can have some other options.
So, if your first disk is Pirates_disk1.adf, you could create a file called Pirates_disk1.cfg that would have game specific configs. (Which kickstart, PAL/NTSC, memory, etc..)
Then, your script could just do something like:
if [ -f "$filename".cfg ]
..and you can load the options if they exist.

That way, most of your games would work with the defaults (KS 1.3, 512K chip, 512K fast), but you can add configs for the games that need it.

An nicer way might be a database with pre-configured options, based on tosec names probably.  
And a web service for said configs would be REALLY nice, but I'm thinking that's WAY too complicated...  :-)

desiv
Title: Re: More seamless e-uae integration with Linux
Post by: gdanko on May 28, 2010, 10:51:05 PM
Quote from: gdanko;561727
I'll implement the menu runequester suggested, iron out a couple kinks, and post both 32 and 64 bit versions.


There is some weird bug in Ubuntu Lucid that will not let me run:
gnome-terminal -x "/path/to/my/script.pl"

I will not keep fighting this. For now I will create launch_a2000.pl and launch_a4000.pl. You right click and select the one you want.

Once Ubuntu gets their act together I will create a menu.
Title: Re: More seamless e-uae integration with Linux
Post by: kolla on May 28, 2010, 11:11:57 PM
Quote from: gdanko;561769
There is some weird bug in Ubuntu Lucid that will not let me run:
gnome-terminal -x "/path/to/my/script.pl"

I will not keep fighting this. For now I will create launch_a2000.pl and launch_a4000.pl. You right click and select the one you want.

Once Ubuntu gets their act together I will create a menu.


What do you need gnome-terminal for?
Title: Re: More seamless e-uae integration with Linux
Post by: gdanko on May 28, 2010, 11:15:21 PM
Quote from: kolla;561773
What do you need gnome-terminal for?


To launch a menu, the action for .adf files would be:

gnome-terminal -t "E-UAE Launcher" -x "/usr/local/e-uae/scripts/launch.pl"

You have to tell Gnome to launch the terminal, otherwise you'd never see any of the output of the script.
Title: Re: More seamless e-uae integration with Linux
Post by: TheBilgeRat on May 28, 2010, 11:16:57 PM
Quote from: gdanko;561774
To launch a menu, the action for .adf files would be:

gnome-terminal -t "E-UAE Launcher" -x "/usr/local/e-uae/scripts/launch.pl"

You have to tell Gnome to launch the terminal, otherwise you'd never see any of the output of the script.


When you create a launcher, just tell it to "run in terminal".  There's a checkbox for it.
Title: Re: More seamless e-uae integration with Linux
Post by: kolla on May 29, 2010, 12:55:41 AM
Quote from: TheBilgeRat;561775
When you create a launcher, just tell it to "run in terminal".  There's a checkbox for it.


And as a bonus it works with other desktops than gnome. But I still dont see the point, why would I want to see output in a terminal window?
Title: Re: More seamless e-uae integration with Linux
Post by: gdanko on May 29, 2010, 06:42:07 AM
Almost ready!  I have both 2000 and 4000 launch scripts. I test "UFO - Enemy Unknown" which is a four disk AGA game. I right clicked on disk 3 and UAE was launched with all 4 disks mounted in order. The game came up perfectly.

Last things I want to do:
* Clean up the method of scanning for all disks.
* Create an install script.
* Optimize uae command line switches.

I will be ready to send this out to folks. If interested, tell me if you want 32 or 64 bit.
Title: Re: More seamless e-uae integration with Linux
Post by: gdanko on May 29, 2010, 09:33:54 PM
64 bit build + install script is ready. This is a test version but so far works okay.
Title: Re: More seamless e-uae integration with Linux
Post by: runequester on May 29, 2010, 11:09:32 PM
Im on 64 bit ubuntu Lucid, and I am dying to give this a swirl :)
Title: Re: More seamless e-uae integration with Linux
Post by: gdanko on May 29, 2010, 11:22:41 PM
Quote from: runequester;561957
Im on 64 bit ubuntu Lucid, and I am dying to give this a swirl :)


It's a 3.3m tgz. I will try to send it.
Be aware you still need to manually map .adf files to the scripts. You can right click, get properties, and click open with. Add both uae_A2000.pl and uae_4000.pl.
Title: Re: More seamless e-uae integration with Linux
Post by: gdanko on May 29, 2010, 11:25:16 PM
Ugh I cannot send a file. PM me your email address and I will email it.
Title: Re: More seamless e-uae integration with Linux
Post by: gdanko on May 30, 2010, 06:15:07 PM
The scripts are now in Perl because of some bash limitations. Here are my two biggest issues.
1) Some games have > 4 disks so my goal of dumping the GUI completely may be compromised since uae only allows you to mount 4 drives. I am guessing the Amigas only allowed df0-df3. This is particularly frustrating to me because when you close a game, even with the gui disabled in uaerc, the GUI still comes up. Is there a way to suppress the GUI from coming up after closing the game's windows?

2) I unpacked all my TOSEC stuff to start testing, but their naming conventions don't make sense to me. For example, Silent Service II is two disks but on TOSEC I see this:

Silent Service II (1990)(MicroProse)(Disk 1 of 2).adf
Silent Service II (1990)(MicroProse)(Disk 2 of 2).adf
(original uncracked game?)

Silent Service II (1990)(MicroProse)[a](Disk 1 of 2).adf
Silent Service II (1990)(MicroProse)[a](Disk 2 of 2).adf
(what is [a]?)

Silent Service II (1990)(MicroProse)[cr Paxnt Box].adf
(no idea what this means)

Silent Service II (1990)(MicroProse)[cr SKR](Disk 1 of 2).adf
Silent Service II (1990)(MicroProse)[cr SKR](Disk 1 of 2)[a].adf
Silent Service II (1990)(MicroProse)[cr SKR](Disk 1 of 2)[m TSB].adf
Silent Service II (1990)(MicroProse)[cr SKR](Disk 2 of 2).adf
Silent Service II (1990)(MicroProse)[cr SKR][a2](Disk 1 of 2).adf
Silent Service II (1990)(MicroProse)[cr SKR][a2](Disk 2 of 2).adf
Silent Service II (1990)(MicroProse)[cr SKR][a](Disk 1 of 2).adf
Silent Service II (1990)(MicroProse)[cr SKR][a](Disk 2 of 2).adf
Silent Service II (1990)(MicroProse)[cr SKR][h LGD].adf

(what is all the SKR stuff???)

If I can better understand what all of this means I can make the routines to find the necessary disks a little more sane.

Any ideas?
Title: Re: More seamless e-uae integration with Linux
Post by: runequester on May 30, 2010, 08:23:35 PM
SKR would refer to the group that cracked that particular version of the game.
The a usually just indicates a different version of the same disks.
 
And yes, only 4 floppy drives possible.
 
Quote from: gdanko;562099
The scripts are now in Perl because of some bash limitations. Here are my two biggest issues.
1) Some games have > 4 disks so my goal of dumping the GUI completely may be compromised since uae only allows you to mount 4 drives. I am guessing the Amigas only allowed df0-df3. This is particularly frustrating to me because when you close a game, even with the gui disabled in uaerc, the GUI still comes up. Is there a way to suppress the GUI from coming up after closing the game's windows?
 
2) I unpacked all my TOSEC stuff to start testing, but their naming conventions don't make sense to me. For example, Silent Service II is two disks but on TOSEC I see this:
 
Silent Service II (1990)(MicroProse)(Disk 1 of 2).adf
Silent Service II (1990)(MicroProse)(Disk 2 of 2).adf
(original uncracked game?)
 
Silent Service II (1990)(MicroProse)[a](Disk 1 of 2).adf
Silent Service II (1990)(MicroProse)[a](Disk 2 of 2).adf
(what is [a]?)
 
Silent Service II (1990)(MicroProse)[cr Paxnt Box].adf
(no idea what this means)
 
Silent Service II (1990)(MicroProse)[cr SKR](Disk 1 of 2).adf
Silent Service II (1990)(MicroProse)[cr SKR](Disk 1 of 2)[a].adf
Silent Service II (1990)(MicroProse)[cr SKR](Disk 1 of 2)[m TSB].adf
Silent Service II (1990)(MicroProse)[cr SKR](Disk 2 of 2).adf
Silent Service II (1990)(MicroProse)[cr SKR][a2](Disk 1 of 2).adf
Silent Service II (1990)(MicroProse)[cr SKR][a2](Disk 2 of 2).adf
Silent Service II (1990)(MicroProse)[cr SKR][a](Disk 1 of 2).adf
Silent Service II (1990)(MicroProse)[cr SKR][a](Disk 2 of 2).adf
Silent Service II (1990)(MicroProse)[cr SKR][h LGD].adf
 
(what is all the SKR stuff???)
 
If I can better understand what all of this means I can make the routines to find the necessary disks a little more sane.
 
Any ideas?
Title: Re: More seamless e-uae integration with Linux
Post by: CSixx on May 31, 2010, 12:33:32 AM
There are multi-disk games that will only use df0 also.
I remember this being an annoyance back in the day. May need to keep the UI around for this.
Title: Re: More seamless e-uae integration with Linux
Post by: runequester on May 31, 2010, 01:36:08 AM
Quote from: CSixx;562149
There are multi-disk games that will only use df0 also.
I remember this being an annoyance back in the day. May need to keep the UI around for this.

This is true. Psygnosis seems to have been particularly bad about this
Title: Re: More seamless e-uae integration with Linux
Post by: TheBilgeRat on May 31, 2010, 03:17:17 AM
Quote from: runequester;562159
This is true. Psygnosis seems to have been particularly bad about this


Also bad when using adfblitz to move games back to floppy. :(
Title: Re: More seamless e-uae integration with Linux
Post by: runequester on May 31, 2010, 03:25:27 AM
Quote from: TheBilgeRat;562172
Also bad when using adfblitz to move games back to floppy. :(

It gives trouble with that ? Any ways around it?
Title: Re: More seamless e-uae integration with Linux
Post by: amigadave on May 31, 2010, 04:44:06 AM
Hello Gary,

Great to see you still interested in the Amiga.  I was afraid that you were losing all interest in it. UAE of any flavor sure takes a lot less space than all the Classic hardware that you used to have (thanks again).

I hope you and your family (or without them if they do not want to come with you) can make it up to my place some time over the 24th & 25th of July to celebrate the 25th Anniversary of the Amiga's presentation at the Lincoln Center in 1985.

Edit: Almost forgot, congratulations on your work with E-UAE mentioned in this thread.  I would love to have you e-mail me both the 32bit and 64bit versions once you are done working on them.
Title: Re: More seamless e-uae integration with Linux
Post by: gdanko on June 01, 2010, 03:46:43 PM
I am going to adhere to the TOSEC naming convention and leave it up to the user to properly organize things. I will search for (Disk x of x).adf at the end of the filename. If that exists, the rest will be the basis for which I will add disks.

It's a pain to try and cover every possible scenario. Perhaps I can modify the uae source and have it NOT call up the configurator when the game window closes.

Hmmmmm
Title: Re: More seamless e-uae integration with Linux
Post by: adolescent on June 01, 2010, 03:51:28 PM
Should also try PUAE as E-UAE is not updated.
Title: Re: More seamless e-uae integration with Linux
Post by: gdanko on June 01, 2010, 03:52:16 PM
Quote from: amigadave;562180
Hello Gary,

Great to see you still interested in the Amiga.  I was afraid that you were losing all interest in it.


No, you saw my garage. I had to organize it.
I am keeping a 3500, 1200, 600, 2500 (loaded), TT030, Falcon.
Title: Re: More seamless e-uae integration with Linux
Post by: gdanko on June 01, 2010, 04:52:34 PM
No luck with puae:

root@gdanko-desktop:/usr/local/puae/bin# ./uae -f ../var/uaerc
------------------------------------------------------------------------------------
P-UAE 2.2.0
Build date: Jun  1 2010 08:23:56
------------------------------------------------------------------------------------
Copyright 1995-2002 Bernd Schmidt
          1999-2010 Toni Wilen
          2003-2007 Richard Drummond
          2006-2010 Mustafa Tufan

See the source for a full list of contributors.
This is free software; see the file COPYING for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
------------------------------------------------------------------------------------
Found 0 joystick(s)
X11GFX: Raw key-mapping disabled.
X11GFX: Initialized.
Max Z3FastRAM 1536M. Total physical RAM 2005 0M
Found 0 joystick(s)
X11GFX: Raw key-mapping disabled.
Opening cfgfile '/home/gdanko/.uaerc': failed
failed to load config '/home/gdanko/.uaerc'
Found 0 joystick(s)
X11GFX: Raw key-mapping disabled.
Opening cfgfile '.uaerc': failed
Opening cfgfile '../var/uaerc': okay.
Opening cfgfile '../var/uaerc': okay.
Testing the RDTSC instruction ... done.
TSC frequency: 2394.000000 MHz
Found 0 joystick(s)
X11GFX: Raw key-mapping disabled.
Xlib:  extension "RANDR" missing on display ":1.0".
NATMEM: Our special area: 0x0xa781e000-0x0xb781e000 (10000000 256M)
shmget of size 65536 (64k) for rtarea
SHMAddr rtarea 0xf00000 = 0x0xa871e000 - 0x0xa781e000
VirtualAlloc 00F00000 - 00F10000 10000 (64k) ok
Segmentation fault
Title: Re: More seamless e-uae integration with Linux
Post by: gdanko on June 11, 2010, 04:46:25 PM
Sorry guys for lagging. Been playing with MorphOS 2.5 on my Mini. Here is the udpate.

* I've worked with Fab1 to get some nice custom a500 and a1200 configs.
* The scripts now work this way: When you double click on a file, the script looks for "(Disk x of y).adf" at the very end. If that string exists, the script will hunt for all files in the disk set. ie; "Silent Service 2 (Disk 1 of 2).adf", "Silent Service 2 (Disk 2 of 2).adf", etc. If you have a non-standard disk filename "Silent Service 2 Disk 1.adf" then only THAT disk will be mounted. I wanted to conform to TOSEC's naming convention.. Deal with it. :)
* The install script is ready. It will detect 32 and 64 bit and install the correct version.
* I still have not scripted the mapping of the adf files to the perl scripts yet. Been busy.

I've sent the 32 bit version to a couple folks to test. If you would like to try it out, PM me.
Title: Re: More seamless e-uae integration with Linux
Post by: gdanko on June 13, 2010, 04:39:09 AM
I was able to patch e-uae so that when you close a game, the GTK GUI configurator doesn't come up. If your game takes more than four disks you can still use F12 - F[1-4] to switch disks into DF[0-3]. We're almost ready for prime time.
Title: Re: More seamless e-uae integration with Linux
Post by: gdanko on June 13, 2010, 05:55:52 AM
I have a new 64 bit tarball ready. It includes the latest scripts, timestamps for the log, and an install script. Monday morning I will build a 32 bit binary and add it to the tarball. Anyone who wants to try the 64 bit binary, PM me and I will send it off. No more stupid GUI to deal with. Double click your ADF and go.
Title: Re: More seamless e-uae integration with Linux
Post by: gdanko on June 14, 2010, 04:53:13 PM
A have put a tarball online with both 32 and 64 bit binaries.
The install script determines your arch with uname -m. i386 or i686 = 32 bit. x86_64 = 64 bit. If you have a different 32 bit uname -m output then let me know and I will add it in. I should have put in i586, too. Anyway.

http://www.gdanko.net/uae-linux.tgz

DNS is still propagating so if you get a timeout add a hosts entry with the IP: 208.179.76.5

Let me know how it works for you. Don't forget, you need to add your own ROMs.
kick13.rom for A500 and kick.rom for A1200.