Use of "Amiga Files" in Amiga Forever for Windows
TOPIC
This article describes the rationale behind the use of the "Amiga Files" folder, introduced in the Windows version of Amiga Forever 2005. In C64 Forever, "CBM Files" follows the same logic.
DISCUSSION
1997: Amiga Forever 1.0
When Amiga Forever 1.0 was released in 1997, the Windows operating system did generally not limit write access or execution privileges to files based on the directory in which a file was stored. This was consistent with the way the Amiga operating system itself handled file access privileges, and made it natural to install emulation executables for Windows, plus Windows and Amiga data files, and Amiga executable files, in the same "Amiga Forever" directory inside the "Program Files" system folder.
2005: Preparing for Windows Vista and Beyond
In 2005 not only has it become a more common and accepted safety practice on a variety of operating systems (e.g. GNU/Linux, macOS) not to perform "user mode" operations with administrative privileges, but the increasing diffusion of malicious applications ("virus" software) on Windows has made this change an imperative. What has long been a recommended but rarely used possibility on Windows NT 4.0, Windows 2000, Windows XP and Windows Server 2003, becomes a more strict setting in Windows Vista. Although we understand that this may require some technical skills on versions of Windows prior to Windows Vista, we do agree and recommend that everyday operations should not be performed under an account with administrative privileges, which allows malicious software to install and execute itself, or to modify system files.
In practice, these recommendations and changes mean that under a strict security scenario, either desired by the user or set by the system or by local network policies, the operating system (and/or antivirus applications) may prevent non-administrative users from having write access to the "Program Files" directory, and it may similarly restrict Windows binary execution privileges in directories such as "My Documents" and "Shared Documents" ("Documents", in Windows Vista). This brings with it the requirement of a separation of the emulation-related data files, which need to be written even by non-administrative users (e.g. to save an Amiga file, or simply to use the Amiga operating system itself).
Moving the Amiga and the emulation-related data files into the "Amiga Files" folder and leaving emulation-related Windows executable files inside "Program Files" enforces a clear and functional separation between data files, which require write access, and files that require Windows installation and execution privileges. It also satisfies the guidelines set for Microsoft's Designed for Windows Logo Program in 2005, while ensuring compatibility with Windows Vista, set for release in 2006.
The following articles explains how to locate the Amiga Forever installation files:
Technical Implementation: Amiga Forever
The Amiga Forever installer takes care of creating an "Amiga Files" physical directory, which is accessible by all users in the "Public\Documents" system folder ("Shared Documents" on older versions of Windows). For convenience, also because the icon of this public folder may not be present on the system (it can be disabled in different ways), a shortcut link to "Amiga Files" is also placed in the "Documents" system folder ("My Documents", in older versions of Windows).
Additionally, the installer:
- Adds an Amiga-specific icon for the folder
- Creates localized versions of the folder name for certain languages (for display purposes only, with no change to the physical directory name)
- Sets the %AMIGAFOREVERDATA% environment variable to point to the folder (typically a path like "C:\Users\Public\Documents\Amiga Files", or "C:\Documents and Settings\All Users\Documents\Amiga Files" on older versions of Windows)
The "Amiga Files" folder contains directories such as "Shared", "Titles", "WinFellow" and "WinUAE". The "Titles" directory contains the folders and titles that are displayed in the main player window. The "WinFellow" and "WinUAE" directories contain configuration, log and other data files (rather than Windows executable files).
The above applies after hard disk installation, and on the CD or DVD directory structure on Amiga Forever 2008 and higher. On older versions of Amiga Forever CDs and DVDs both executable and data files are contained in the same "Emulation" directory on the medium, which in turn contains directories such as "Shared", "Demoscene", "Games", "WinFellow" and "WinUAE").
To open the Amiga Files folder from within Amiga Forever select Open Folder/Amiga Files from the File menu.
Technical Implementation: WinFellow and WinUAE
Before its introduction, the use of "Amiga Files" was discussed and agreed with the developers of the WinFellow and WinUAE emulation applications for Windows.
WinUAE (version 1.0 and higher) and WinFellow (version 0.5.1 and higher) check for the existence of "Amiga Files", which, as installed by Amiga Forever (version 2005 and higher), already contains "WinFellow" and "WinUAE" subdirectories. Future versions of WinFellow and WinUAE may create these directories directly themselves.
If the respective directories exist or can be created, hard-disk installed versions of WinFellow and WinUAE do the following:
- All log, configuration and other files that are normally written by the software are written to the respective ("WinFellow" or "WinUAE") directory in "Amiga Files", rather than to the software installation directory;
- All relative paths (e.g. "floppy0=..\Shared\adf\amiga-os-120-workbench.adf") in the configuration files and in command line arguments are relative to the "WinFellow" or "WinUAE" software directory in "Amiga Files", rather than the software installation directory; this means that, since all emulation-specific and Amiga-general data files are moved in parallel, no change is required for relative paths used in previous versions of the software.
If launched from CD or DVD, the emulation software should ignore the Amiga Files directory on the hard disk, and maintain relative paths as references to the directory containing the emulation executables ("old" behavior).
Multi-User Access
"Amiga Files" is a public (shared) resource, meaning that:
- All users can read all files (as in the Amiga operating system)
- Only administrators and the user who installed or modified a file can modify that file
If, in a multi-user environment, it becomes desirable to grant several non-administrator users write access to all Amiga files, then the security of the "Amiga Files" directory should be changed accordingly.
Programmatic Access
The Windows CSIDL for the folder which by default contains the "Amiga Files" directory is CSIDL_COMMON_DOCUMENTS. It is valid for Windows NT 4.0, Windows 2000, Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10, Windows 11 and equivalent Windows Server editions, and for Microsoft Windows 95 and Windows 98 systems with Shfolder.dll installed.
Programmatic access to the default location of the folder is possible via SHGetFolderPath() (if Shfolder.dll is installed), or via SHGetSpecialFolderLocation(), which is available in Windows 95 and in newer versions of Windows.
Because a location different from the default may have been set at installation time (or later, via Change Folder Location), it is recommended to use the %AMIGAFOREVERDATA% environment variable to locate the folder.
Changing the Folder Location
The initial installation directory can be specified by selecting the Advanced options in the software installer.
To move the entire content of the Amiga Files (or CBM Files, etc.) directory to a new location after it has already been installed, right-click the folder in the player, and select Change Folder Location. This will move the files and also update internal references, such as system registry values and the %AMIGAFOREVERDATA% environment variable.
Related Links
ARTICLE INFORMATION
Article ID: | 15-112 |
---|---|
Platform: | All |
Products: | Amiga Forever |
Additional Keywords: | None |
Last Update: | 2022-07-30 |
It is safe to link to this page.