Umilator Feature List
Although this product will almost certainly never see the light of day
(given the distinct lack of miracles in the current Amiga market), I have
received numerous requests to provide a list of features of The Product
Formerly Known As Amithlon2, or "Umilator". So here is that list.
This just lists the differences between Umilator and the original
Amithlon --- features already available in Amithlon are only mentioned if
there have been improvements (or at least changes :). It should also be
noted that a number of the improvements have been made available for the
original Amithlon in the form of updates and contrib packs... so if you
think "Hey, I already got that!", that might be why...
Drivers/PCI system
One of the big problems in Amithlon was the scarcity of drivers,
especially for sound and network cards. Umilator addresses this
by facilitating the drivers available for the underlying linux kernel.
- AmigaOS SANA-2 driver wrapping around linux networking drivers.
Please note that this is very different from the bsdsocket
way of wrapping that can be found in WinUAE and AmigaXL. The
Umilator driver sends and receives ethernet frames just like any
other SANA-2 driver. Only the lowest level hardware access
is handled by the linux drivers, for everything else, you still
run an Amiga side networking stack (e.g. Miami, Genesis, Envoy)
or network utilities. Full support for multiple network cards.
- AmigaOS AHI driver wrapping around linux sound drivers. Special
care has been taken to avoid an extra layer of buffering (and thus
increased sound latency) being introduced through this wrapping.
The linux driver is used only to set up the card and handle the
low level hardware interrupts; The AHI driver writes directly
into the card's playback buffer, just as it would on, say, a
Toccata card on a "real" Amiga. Full support for multiple sound
cards, as well as both playback and recording.
- AmigaOS serial device wrapping around linux serial driver.
Linux's UART initialization code has been refined and debugged
for years, and can optimally handle a plethora of different chips
and multi-port cards, and possibly even USB-to-serial converters
(although that is completely untested). Support for up to 8 serial
ports.
- Automatic hardware detection system. At bootup, a small utility is
run that scans the system's PCI bus and loads the appropriate linux
driver modules for the sound and network cards found.
Hardware-to-module mapping is defined in an editable config file,
and modules are loaded from the Amiga-side filesystem, so they
can easily be upgraded or added to.
- Hardware accesses to the Amiga's parallel port are transparently
translated into accesses to the PC's parallel port. No more need
for custom devices, the AmigaOS parallel.device works.
- IDE/SCSI hard disk driver now uses linux "raw disk" devices for
increased throughput, lower CPU load, and increased responsiveness.
Also improved support for removable disks (ZIP, LS120).
- Integrated wheel and multi-button mouse support, with
overridable auto-detection for the number of mouse wheels present.
- Keyboard support more robust in the presence of non-OS programs
that directly read CIA registers (e.g. the "Matrix" screen saver,
and possibly MCP). Also fixed Caps-Lock and Right-Ctrl handling,
and optional support for keyboard LED setting.
- PuhDerBaer (Paula-to-AHI redirection) now provides stereo sound.
- Support for outputting sound at arbitrary pitch and length through the
PC's internal speaker, and a utility to patch AmigaOS's "DisplayBeep"
function to make use of it (DisplayBeep can only flash the display
in 8 bit modes, not in 16 or 24 bit modes).
Graphics system
- Full 2-D accellerated support for additional graphics cards
(e.g. GeForce3, GeForce4-MX, Voodoo3/4/5, Matrox G550).
- Improved 2-D accelleration, massively improving opaque window
moves and other off-screen bitmap uses.
- Support for Matrox multihead cards, and for multiple cards in
the same computer. Support for individual configuration of
all found cards/heads.
- Support for changing resolution, bit depth and display timings
even on cards only supported through VESA bios.
- Support for hardware big-endian display modes on Matrox and
Voodoo cards at full speed. Support for software-emulated
big-endian modes on other cards (at the cost of some performance).
- Improved calculation of display timings, and improved support
for user-supplied timings.
- Support for limiting amount of gfx memory reported, to avoid
bitmap and/or pointer corruption while lots of off-screen
bitmaps are in use.
- More descriptive modenames, based on the type of gfx card.
- Improved detection of gfx card parameters.
Booting/Installation
- Graphical boot menu, allowing easy setting of configuration
options during CD boot.
- Included thorough memory tester as boot option.
- Support for overriding boot priorities from boot menu,
orividing "rescue mode" boot (forcing boot from known-good
minimal OS3.9 install included on the CD).
- Default resolution when booting from CD now 1024x768x16bpp.
Looks much better than 640x480x8 :)
- New and improved early bootup screen, with all the functionality
implemented within the emulator itself. This overcomes the problem
where the SetPatch-caused reboot ignores the boot selection made
in the ESM.
- "mbr.device" pseudo-device, allowing manipulation and creation of
MBR (aka "PC standard") partition tables using AmigaOS
HD-Toolbox.
- Support for a new type of "virtual disk" that holds both the
files required to boot the PC as well as space to be used as
a hard drive by AmigaOS. Thus, a full Umilator install can now
fit into a single partition.
- Ability to install Umilator fully self-booting on a previously
empty hard drive completely from within AmigaOS, using only
standard AmigaOS tools. Such an install has a graphical boot
menu identical to that on the CD.
- Patch applicator with full checking for patches obsoleted by
updated main executable or later patches, allowing for
convenient application of in-the-field fixes.
CPU Emulation/JIT Compiler
- Pentium4 compatible (Intel changed the way the BSF and BSR
instructions work in the Pentium4, and thus broke the JIT compiler
on P4 equipped machines).
- Many bugfixes and improvements in the FPU emulation. Imagine
version 5 now seems to run correctly.
- JIT cache size can be specified as a percentage of available
memory, and defaults to 12%. Specifying an absolute size in
kilobyte is still possible.
- Improved safety-net fallback mechanism for JIT compiler, making
it more tolerant towards software using the same instructions both
to access real memory as well as custom chip registers
(e.g. PGP).
- Much improved statistics are gathered and can be viewed regarding
many aspects of JIT compiler.
Distribution
- Distribution as freely downloadable and redistributable
ISO image.
- By default, CD boots in "Demo mode", which has the following
restrictions:
- No support for writing to hard disks, floppies or
CD-R/RW. Writing to ram disks (and the minimal
OS 3.9 installation kept inside a linux ramdisk)
is not restricted.
- After a timeout period of 20 minutes, emulation speed
will be gradually reduced.
- Screen refresh limited to 65Hz or less.
- Through the purchase of an individualized registration key,
the demo version can be upgraded to full functionality.
- Registration keys can easily and transparently stored on the
hard drive, making entering them a one-time-only hassle.
- Systems for both online and dealer distribution of registration
keys have been designed and implemented.
- Kickstart Image has been modified in various ways, preventing
abuse of Umilator-included IP outside it.
- Except for P96, Kickstart and partial OS 3.9 (which are required
to get anything running), no force-bundled commercial software,
allowing for low retail price.
- Attractive default OS 3.9 install that has been enhanced
through numerous free add-ons, providing a modern look
and functionality to WB 3.9.
- Various freeware and demo versions included on CD ready to run,
to allow for convenient testing/demoing of emulated Amiga.
Miscalleneous
- Workaround for OS3.9BB2 resident tag memory corruption bug.
- Massive rework of internal ELF loader for x86,
dramatically improving load speed for large modules.
- Support for an additional 68k->x86 call mechanism designed by
Martin Blom to allow for faster library calling in code generated
by his big-endian x86 compiler.
- Improved "setconfig" mechanism, generally avoiding the need for
a setconfig-caused reboot.
- Improved support for directly user-accessible high-resolution
timers (as opposed to only providing the same functionality through
cumbersome CIA emulation).
- Added OS3.9BB2 stacksize cookies to all included tools that
require increased stack.
- GPL'ed debugger running "beside" the emulation, with support
for viewing/watching/protecting arbitrary areas of memory
(including segtracker support),
disassembling as either 68k or x86 code and watching the
emulation-internal log file. Debugger is used through a telnet
interface from a second PC --- thus it can be used for
post-mortem work after an AmigaOS crash. Extremely handy for
AmigaOS as well as x86 code development.
Linux kernel
- Reworked PCI remapping strategy overcoming boot failures common
on DELL machines (their BIOS initializes the PCI bus in a
bizarre way!).
- Mechanism to boost emulation thread's priority over other I/O
related threads during times when rapid emulation response is
required.
- Support for powering off machine under software control (requires
cooperation of motherboard's APM BIOS).
- Timing and speed improvements for gfx accelleration.
- Support for gathering and retreiving emulation performance
statistics.
- Kernel updated to version 2.4.20pre4.
- No more green square around boing ball when booting in
16 or 24 bpp VESA modes :)
Last Updated: Tuesday 14 January 2003 13:19:50
© Bernd Meyer 2002-2003
Design © Kymberly Fergusson
Logo © Lasse Bodilsen