Thread: My idea...
View Single Post
Old 14 September 2009, 01:23   #26
Registered User
Join Date: Sep 2009
Location: UK
Posts: 144
If you really want to have an Amiga look and feel in a modern environment (which is essentially what you're asking, even if you don't quite realise it), What I would do if I could code better than I can (and had a LOT of time, I never said this would be easy):

1) Set up a bog-standard PC for today, maybe with some extras like Catweasel, etc. so you can use real Amiga floppies.
2) Get a minimal Linux distro (Linux is a brilliant place to start for an OS as long as you don't need a new kernel (which we don't), since it is so hackable, and can be made to do whatever you want to do), preferably Debian - for the reason, see one of the paragraphs below.
3) Write workbench from scratch. I would do it on top of X since that's already there and most apps support it. You could also use some pieces of existing software for some components, maybe modify it a little. If parts or versions of workbench are open-source, you could probably directly lift those with minimal modifications, but I believe none are. You would need:

* A desktop application (to display icons, wallpaper etc).
* A file manager (to manage files - this could be based on the desktop. It would be just like WB's file manager, supporting INFO files, etc)
* A Window decorator + manager (to manage the windows and add their borders)
* A widget engine, to uhm, make widgets...
* Most of the old Amiga programs remade and/or renamed to allow you to get into it: xterm would be Shell, and all the commands (cp, mv, etc) would have Amiga symlinks (copy, rename, etc)

Then you would have your "base system" if you like. It would have a Linux filesystem layout, but as we've seen from some distros (like that one that has a Windows-like FS layout that I forget the name of), this is changeable, by having application directories, each of them having a mini linux FS inside them, and symlinks from the "real" filesystem to each program that are invisible by default via hacking the filesystem drivers to report them as hidden. This way you could have most of the Amiga directories - Devs (symlink to /lib/modules/`uname -r`, for device drivers), C (symlink to /bin), S (symlink to /bin again, or possibly a dedicated /bin/scripts), Fonts (symlink to wherever fonts decide to be kept, possibly (/etc/fonts), libs to /lib, Utilities, System, Prefs, Games, Programs (symlinks to special directories that just have info files and no actual programs), the list goes on.

For the truly old-school, there would be an emulated Amiga system, with the help of E-UAE, that loads in the background either at boot or when needed (depending on prefs). This would use a subordinate Amiga FS (possibly at /retro-amiga or something) as the boot device, and have the root FS mounted as DH1:. When an app is loaded that is an old Amiga binary, disk image or HDD image:

If the emulator isn't running, it's started, and the binary loaded, or the image mounted and booted from.

If the emulator is running, using a hack to the emulator, it would just load the program in the currently-running system, or just mount the image (and maybe a requester pops up asking if you want to reboot into it).

If possible (which I doubt), some real complex hackery will be written to allow the emu'd Amiga's windows to be moved freely around Linux's. This would require severe hacks to X, UAE and the emulated system.

Now you would have a base system with the ability to run most Amiga apps and games as integrated as possible. Native Linux apps (which there are loads of) would of course be installable - I would base it on debian myself since, thanks to Ubuntu, Debian packages are the most commonplace. You would simply have to double-click a package and a retro Amiga-style installer would pop up (most of the steps in the installer will easily correspond to Debian packages - they would be installed in the real path, as normal with debian packages, and symlinks and info files automatically generated by the Amiga installer where necessary, based on .desktop files and their icons). RPM packages would also be installable via an alien frontend that works just as seamlessly as deb packages - other than the dependencies of course, which the user would be manually prompted to check the presence of if they aren't found (which is likely since RPM packages are named quite differently).

A new format would also be created for Amiga-specific packages, with specially designed info files and Prefs modules, etc. This would be exactly the same as Debian packages but maybe with a small change so the amiga knows, and different extensions.

Then you would add the finishing touches - install some basic packages needed by modern programs (I'm thinking GTK and Qt, which for Linux non-users are like the Windows API or the Amiga Tool Kit; they are the things that generate the widgets like buttons, scroll bars, text boxes etc), write some themes to make these use workbench icons and looks and feels, possibly even hack GTK and Qt to draw widgets with your widget engine you made above. Then, install firefox or Opera, an e-mail client, IRC, etc. and you're good to go!

So now we have a base system with the ability to install pretty much any program you want that exists for Linux. It has the ability to install its own packages for Amiga-specific changes, and old Amiga packages would easily work. And, most importantly, it will have 100% the look and feel of an old Amiga, but with all the advantages of today's desktop.

I hope this thorough explanation is what you were after (well, not quite, since what you would really be after is for someone to do it ). Is anyone up for the challenge? :P

Last edited by Muzer; 14 September 2009 at 01:29.
Muzer is offline  
Page generated in 0.07146 seconds with 10 queries