Thread: My idea...
View Single Post
Old 14 September 2009, 19:47   #33
Registered User
Join Date: Sep 2009
Location: UK
Posts: 144
For my own reference as much as anything, I'll put what things I need to make (or get someone to make), and which are already done:

Originally Posted by Muzer View Post
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.
That sort of goes without saying...

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.
Ubuntu Minimal install - check

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:
X - Check. Amiga mouse and topaz font - check.

* A desktop application (to display icons, wallpaper etc).
That's easy - use rox. Wallpaper, I found a lovely AmigaOS4-like wallpaper on Icons, not so easy. There must be an icon set around somewhere. For .info icons, infotopam (unfortunately not available as a DEB) can be called on the fly by a hacked Rox.

The top panel can easily be created in something lightweight such as pypanel.

* 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)
There are plenty of suitable DirOpus replacements.

WB's file manager has proved a lot more difficult to find a replacement for - Rox springs to mind as looking quite a bit like it. Rox has trillions upon trillions of features, but doesn't support .info again - I think the format is floating around on the internet, so I could try to hack Rox to fully support .info files. Arbitrary icons are unlikely to be supportable.

* A Window decorator + manager (to manage the windows and add their borders)

* A widget engine, to uhm, make widgets...
GTK with Amiga-Bluetabs-Brushed theme (looks like AmigaOS4, which is no bad thing)

* 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)
I can:

* Use symlinks and aliases to get most of the standard file management commands - they will behave like the Unix varieties however unless I feel like rewriting them.
* xterm is a suitable terminal emulator
* As for the Shell's own functions - I could hack bash, or just leave it as it is (how many of you would still prefer typing #? instead of * - I need opinions.)

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.
Having the Amiga-style directories symlinked is one thing. Hiding the Linux ones is quite another, and I don't feel like wading through the kernel yet!

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.
Easy enough, just make a mime type (or use the existing one if one exists)

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).
It depends how easy the emulator is to hack. In fact, thinking about it, it doesn't sound easy at all. The emulated system would need to communicate in some way to the real system - possibly with the filesystem somehow, possibly with an emulator hack that sends something to the running OS. I could probably pull this off. As for mounting images, that should be easier than launching programs - just an emulator hack would be needed. The requester could be host-side.

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).
The installer sounds easy to make. .info files, maybe a little harder. I should be able to manage.

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!
GTK theme - already sorted.
Qt - I seem to remember there's a way of forcing GTK to draw Qt widgets. I have to wrack my brains for this one...

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.
It sure does

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
Hooray! That doesn't sound too hard after all.
Muzer is offline  
Page generated in 0.13351 seconds with 9 queries