Part of the #AmigaZeux World HomePage | BugTracker

#AmigaZeux

OS4Emu
Features - Requirements - Compatibility - History - Download

2.0 (13.07.2008)

  • Enhanced newlib.library
  • Implements OS 4.1 64bit DOS functionality
  • Implements OS 4.1 Exec functionality
  • Implements OS 4.1 Picasso96 functionality
  • Improved general compatibility
  • Fixed ELF loader

64bit DOS calls are supported in MorphOS 1.x but file size is limited to 2GB. In MorphOS 2.x native 64bit DOS calls are used.

AltiVec is supported only in MorphOS 2.

Old ELF loader had lots of bugs and certain relocations in executables were calculated incorrectly causing runtime crashes. It also supports more relocation types and "file not executable" problem should be gone now. Dynamic linking is not supported.

Picasso96 now implements p96WritePixelArray() and emulation is now complete.

1.9 (05.09.2006)

  • Added newlib.library
  • Added warp3d.library
  • Added application.library
  • Improved general compatibility

Newlib.library allows running most programs requiring newlib.library and starting from version 1.9 OS4Emu also inherits pr_CLibData properly when spawning new processes with NP_Child tag.

Warp3d.library allows running some OS4 native Warp3D programs. It only covers functions up to version 4 and new functions in Warp3D V5 are not supported yet.

Application.library is only experimental and provides is included for testing purposes only.

General compatibilty has been improved and OS4Emu can handle most of known anti-OS4Emu checks.

1.8 (26.07.2005)

Use PPC native AmigaOS4 libraries from MorphOS

Support for PPC native AmigaOS4 libraries is reworked for version 1.8. It is now possible to use PPC native AmigaOS4 libraries in MorphOS like they were native ones. In order to enable this feature there is new switch in PatchLoadSegOS4 utility: OPENLIBPATCH. When used os4kernel.library is permanently locked to memory and MorphOS can succesfully open and manage all PPC native AmigaOS4 libraries.

-- usage --

Rename AmigaOS4 libraries to have '.os4' extension and copy them to 'SYS:OS4Emu/Libs'. To enable them execute following commands:

Assign LIBS: SYS:OS4Emu/Libs ADD
PatchLoadSegOS4 OPENLIBPATCH

-- notes --

AmigaOS4 libraries always appear to MorphOS with '.os4' extension. Therefore it is possible to have two similarly named libraries in the system. I.e. you can have libraries 'foobar.library' and 'foobar.library.os4'. The first one is real MorphOS library and the second is AmigaOS4 library. When real MorphOS library is not available system can use AmigaOS4 native library.

-- limitations (for those who care) --

Not all libraries are callable, usable or compatible to the MorphOS. Currently only certain crosscalls between MorphOS <--> AmigaOS4 are supported. The direct object interface (DoMethod(), SetAttrs() etc) do work but hook interface (CallHookPkt()) doesnt.

Thus following AmigaOS4 libraries wont work from MorphOS side:

MUI custom classes
BOOPSI classes (3rd party reaction classes)
mpega.library (has another issue also)

Datatypes might or might not work.

Other enhancements

Fixed MatchFirst(), MatchNext(), MatchEnd(), AllocDosObject(), FreeDosObject() calls in dos.library (I didnt know AnchorPath structure had changed). This fixes LOCCounter.

Fixes and additions to intuition.library, gadtools.library, exec.library and Reaction emulation classes. GadTools fixes fixed SGrab OS4 but there is still menu trouble.

Added EncodeColor() function to P96 wrapper.

1.7 (07.05.2005)

Support for PPC native AmigaOS4 libraries

OS4EMU can now load and initialise AmigaOS4 native libraries.

The emulation kernel looks for libraries from different locations in this order:
PROGDIR:
PROGDIR:Libs
SYS:OS4EMU/Libs
SYS:OS4EMU/Classes

If corresponding library is found the kernel loads and initializes library for use in the emulation.

Only PPC native autoinit libraries are supported and possible 68k jump tables are discarded.

Limitations

AmigaOS4 libraries are private to the emulation kernel and not visible nor accessible to MorphOS programs.

AmigaOS4 native devices, datatypes or MUI custom classes are not supported.

PPC native Reaction classes are useless since the kernel always uses internal versions of those.

Other improvements

Added new interfaces:

- expansion.library (pci interface only)
- usergroup.library
- slider.gadget, colorwheel.gadget
- drawlist.image

It is now possible to run some PCI related utilities, i.e. pciscan.
Drivers are not supported.

More improvements:

- added interrupt support
- fixed P96 emulation (Zero from Universe had wrong colours)
- fixed MUI emulation
- fixed layers.library interface
- improved datatypes.library compatibility

1.6 (05.02.2005)

Few new interfaces were added:

asyncio.library, lowlevel.library, bevel.image, fuelgauge.gadget, glyph.image, integer.gadget

Most of changes are internal to for better ClassAct->Reaction compatibility. It is now possible to run AntiGrain demos using ClassAct classes.

Added some public API calls to detect and load OS4 binaries. See accompanied API documentation for details.

1.5 (16.01.2005)

Implemented AmigaInput wrapper using lowlevel.library calls. It should be possible to use game controllers connected to USB, built-in analog joystick port or Catweasel Mk3 controller. Keyboard as an input device is not supported.

Added input.device wrapper which is needed to support IND_ADDHANDLER command.

Asl.library and utility.library is now internally promoted to version 51.0.

AllocVec() now aligns memory to 32 bytes boundary.

1.4 (19.12.2004)

It is now possible to run some of OS4 native ClassAct/Reaction software by using ClassAct 2 demo from Aminet. It is not perfect but seems to be good enough to get something displayed.

There are now three new library interfaces for iffparse.library, commodities.library and rexxsyslib.library.

Fixed stupid bug in RawDoFmt(): parameters were not redirected for OS4 native PutChProc() which caused nice havoc.

Another stupid bug was in AllocSysObject() emulation. Signal bit was not allocated for message port (except in very rare cases) resulting in seemingly crashed emulation.

OS4Emu launcher tool now recognizes "??" parameter which is passed as "?" for launched OS4 binary.

1.3 (12.12.2004)

Added MUI wrapper and OS4 native software using MUI is mapped to use MorphOS MUI now. Added emulation interface for bsdsocket.library but utilities like NetMon wont work and wont be supported either.

Other new interfaces are for icon.library, diskfont.library and console.device.

Fixed small bugs in dos and exec again.

1.2 (05.12.2004)

Apparently emulation was not working under MorphOS 1.4. The problem was in dos.library/GetProgramName() function which returned DOSFALSE always (AROS bug?). Apparently it was fixed in 1.5 and I couldn't notice problem. Sorry...

Another problem was in IExec/NewList() emulation. Although it worked just fine I managed to trash some innocent memory... Yes, really!

My implementation initialized list->lh_Type field always (since input is struct List *, there is IExec->NewMinList() for struct MinList *) but GCC startup code called NewList() for struct MinList * too. Funky.

Added new command PatchLoadSegOS4. This command permanently patches InternalLoadSeg() in MorphOS. With this patch you can start OS4 native programs directly from Ambient or Shell. The patch needs very little ram (about 7kB) and OS4 kernel emulation is loaded on demand.

From GUI libraries only GadTools is supported right now. In the future MUI will be supported.

1.1 (28.11.2004)