Maximum RAM Supported by Amiga Emulation
Q: How much RAM does the Amiga emulation support?
In general, the maximum memory of all Amiga systems mirrors the limitations of the original hardware. As some applications and system functions may fail when using more RAM than was possible on the original Amiga hardware (e.g. 2 MB Chip RAM or 128 MB of Zorro III RAM), the original configurations are set to avoid unsafe settings, or to display a warning triangle with an explanatory note in some cases.
In accordance with the original specifications, the Amiga Chip RAM is limited to 2 MB on newer Amiga systems (AGA chipset), and to 512 KB on early models (OCS chipset).
Amiga Forever automatically replaces custom chips as needed, if Chip RAM is set to exceed the original specification.
The maximum amount of Fast RAM is 8 MB on all systems except the Amiga 3000 and Amiga 4000, where it is 64 MB. This is a special case that is possible only with an emulated environment, as the physical motherboards could only be expanded by inserting memory chips up to 16 MB.
On systems where Zorro III RAM can be added, Fast RAM is generally not used, in order to limit memory fragmentation. However, if the goal is to maximize the total amount of RAM, it is possible to use Fast RAM and Zorro III RAM at the same time.
Zorro III (Z3) RAM
Beginning with the Amiga 3000, systems with a 68020 or higher CPU featured the Zorro III bus, which made it possible to attach 32-bit expansions to the motherboard, replacing the 16-bit Zorro II bus used in the Amiga 2000.
The total hardware memory space defined by the Amiga Zorro III expansion bus specification is 1792 MB. This is shared by RAM expansions, RTG video memory, and other peripherals. If for example an RTG display card has 128 MB of video memory, that has to be subtracted from the maximum address space.
The Amiga Autoconfig mechanism supports Zorro III RAM expansion boards with memory totals being an exact power of 2, between 64 KB and 1 GB. When a different value is set, Amiga Forever generates the correct number of boards to achieve the desired goal. Up to four boards are added in this way, ordered from largest to smallest to optimize allocation in consideration of alignment requirements (which may otherwise leave gaps of unusable memory space).
On A-4000 class systems (e.g. Workbench 3.X, Amiga 4000, AROS and WHDLoad configurations), the emulation can for example achieve 1.5 GB Zorro III RAM by emulating two Zorro III expansion boards (1024 MB + 512 MB), if peripherals like the RTG video memory leave room for it.
On the Edge: 1024 MB vs. 1792 MB
Originally, when physical RAM expansions featured at most 128 MB, the address space available to Zorro III expansion boards was documented as being 1024 MB (1 GB, from 0x40000000 to 0x7FFFFFFF).
In an emulated environment, the entire Zorro III address space (1792 MB) can be configured. However, not all operating systems and applications can make use of this entire space.
On the software side, PowerPC-based operating systems like AmigaOS 4.1 FE enforce the restriction imposed by the original documentation, ignoring any Zorro III boards (RAM or other types) which fall outside of the original 1 GB range. Additionally, because memory is virtualized, memory expansion boards need to be mapped into the heap (i.e. memory set aside for dynamic allocation), which is limited to 768 MB, including both Zorro III RAM expansion boards and other types of memory (Chip RAM, PowerPC RAM).
If you see Zorro devices "disappear" after increasing the RAM to more than 512 MB, it probably means that the operating system does not support Zorro expansion boards above the first GB of address space, or RAM beyond the 768 MB heap address space.
Older 68K versions of the operating system do not enforce the 1 GB limit, nor do they need to work with virtual addresses and related heap requirements. They therefore also support Zorro III boards (RAM and other types) in the address space upwards of 0x80000000 (2 GB).
32-Bit vs. 64-Bit Host Environment
The process address space of the host environment also has an impact on the maximum contiguous memory that can be allocated. On 32-bit versions of Windows the maximum size of Zorro III RAM expansions may be about 512 MB. On 64-bit versions of Windows, the practical limit when using 32-bit versions of the emulation software (which is the current default) may be about 1 GB or 1.5 GB.
In order to allocate the maximum Amiga address space, Amiga Forever (7 and newer) must be set to use the 64-bit version of the emulation. This can be achieved by setting the Use 64-bit version option in the Emulation settings (under Tools/Options in Amiga Forever).
In all cases, since the host environment's virtual memory functionality is inherited, it is possible to emulate an Amiga having more RAM than is actually available on the computer in which the emulation is run.
It is safe to link to this page.