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
BACK
Last Update: 22/02/2003
|