Welcome, Guest. Please login or register.

Author Topic: Mac and 586 emulation on Emplant, how good is it?  (Read 11298 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline JimDrew

  • Lifetime Member
  • Full Member
  • ***
  • Join Date: Jun 2012
  • Posts: 241
    • Show all replies
Re: Mac and 586 emulation on Emplant, how good is it?
« on: June 24, 2012, 06:56:34 PM »
Quote from: spirantho;697576
I'd like to send him some choice messages about iFusion and why he never finished it, just took our money and gave us unfinished software. I'm sure I'm not alone in this either.

The least he could do would be to release the source.

I did finish this project, and it was sold to Blittersoft.  They continued to work on it, and I am not sure what happened there after.  I went into the PC market with FUSION-PC.
 

Offline JimDrew

  • Lifetime Member
  • Full Member
  • ***
  • Join Date: Jun 2012
  • Posts: 241
    • Show all replies
Re: Mac and 586 emulation on Emplant, how good is it?
« Reply #1 on: June 24, 2012, 07:01:13 PM »
The EMPLANT board was basically a Mac-II motherboard on a Zorro card.  It contained the 5380 SCSI controller, 8530 serial chip, ROM sockets, AppleTalk ports, etc.

The timing was exact, which was something that proved rather difficult to accomplish with a software-only emulation.  I was able to find quite a few programs that worked fine with EMPLANT's Mac emulation that would not work with our Fusion software when other Amiga tasks were running. Audio was the biggest problem, because OS7.5 and later used the Mac's VIAs for direct timing and so it was critical or you would get out of sync Quicktime movies.

The e586DX emulator required a change of one PEEL (custom logic chip).  This enabled one of the extra VIAs on the board that was used for the PC timing (also critical for certain aspects).  The emulation could run Windows (slow but sure), DOOM and other games that used the mystical "MODE X" for graphics, and pretty much everything.  Speed was really based on how graphically intense things were.  For DOS stuff, it was quite speedy because the BIOS was our own (after licensing a real BIOS for awhile), written in 68K assembly - just like everything else we did.  So, anything that made BIOS calls worked exceptionally well.  As things progressed more and more towards Windows, we started supporting the various video cards like we did for the Mac emulation.  This really helped speed up things.  I made one sample driver for the Retina board that mapped the Retina's registers as a PCI card and so there was no copying/converting the PC display to the Amiga display.  Instead, the PC emulation wrote directly to the Retina.  It was easily 25 times faster.  Instead of watching the Windows logo be drawn, it instantly appeared.  The mouse was smooth, you could play solitaire and basic games with real speed.  DOOM also flew!  The Retina was the only card we did this with because other card manufacturers would not give the info on how to access the hardware directly.
« Last Edit: June 24, 2012, 07:09:26 PM by JimDrew »
 

Offline JimDrew

  • Lifetime Member
  • Full Member
  • ***
  • Join Date: Jun 2012
  • Posts: 241
    • Show all replies
Re: Mac and 586 emulation on Emplant, how good is it?
« Reply #2 on: June 25, 2012, 06:43:07 AM »
Quote from: Motormouth;697861
@JimDrew

Cool, it is nice to see you responding to this thread.  I have always been a fan of your emulation products, particularly Emplant Pro and Fusion.  :D

I hope I got half of my post about Emplant correct.

I do have two questions:  One, does the emplant board help the accuracy of emulation in Fusion.  I have tried timing set both to amiga and to emplant and could not really tell a difference (I was using at the time, an A3000, A3640, PII+, 16 meg fast, and A2065).

Second what does the 3.11 patch for Fusion Fix over 3.1?   Is there a way to buy or obtain this Fusion 3.11 patch?  I have original disks for Fusion 3.1 (together with PCx).

Yes, your info was basically correct!

Yes, the EMPLANT board does improve the accuracy and compatibility.  Some programs (like benchmark programs and some games) use the VIA timers directly, and even though the Amiga is pretty accurate, you can detect if the VIA emulation is being used vs. the real thing.  When applications were banging on the VIA bits, things could get off when you don't have the real hardware.  Quicktime was one thing that poked at the hardware directly.

I went through my source code, and found the changes.txt file:

Changes to V3.2 (04/03/2000)
--------------------------------------------------------------------------
* Work-around for DEVPAC flognp1 bug.

* Added ICP Transfer Priority.  You can now specify the priority the Mac
  runs at while the drives are accessed from the Amiga side though ICP.

* Fixed OpenDevice problem with ethernet.

* Fixed ethernet query bug.

* Added TD64 support.  A partition that is partially or completely above
  the 4G point will cause FUSION to fail to start if TD64 support is not
  available.  Partitions are still limited to 4G in size.

* Added support for block sizes other than 512.  Up to 64K valid.

* Fixed ICP MacBinary file copy hang. Thanks go to Fred Wright for being
  the first person to accurately describe a method of reproducing the
  bug so i could track it down.

* Auto-start doesn't auto-quit if you change the ICP or cpu settings.

* Added tooltype and cli switch for specifying parameter ram file.


**************************************************************************

Changes to V3.12 (02/18/2000)
--------------------------------------------------------------------------
* Changed ethernet from software loaded to a hardware card for Open
  Transport support.  Cleaned up ethernet for better Amiga ethenet card
  support; Ariadne card now works.

* Fixed cursor problem with old Lucas Arts games.

* Fixed problem with QD based video drivers.

* Fixed slight problem with autosense SCSI data.

* New ADB drivers with (nearly) all Mac keys mapped.

* Added tooltype support; switches from cli now have Workbench tooltype
  equivalents.

* Auto-start now also implies auto-quit

* Changed 060 initial settings; now starts with only SuperScalar off.


**************************************************************************

Changes to V3.11 (xx/xx/99)
--------------------------------------------------------------------------
* Fixed misc. problems with the interface related to the auto-iconify
  feature (Tall thin windows on WB fixed).

* Fixed Timer interrupt bug that prevented QueBase from playing.

* Added support for a couple more ROMs.

* Updates to video drivers.  Released to public.

* Updates to RsrvCold, and RsrvWarm which is now called RsrvKick.
  Released to public.
 
**************************************************************************

Changes to V3.1 (02/14/98)
--------------------------------------------------------------------------
* Fixed MonitorID gadget setting.  The value was set and saved in the
  config file correctly, but not displayed after loading a new config
  or starting the emulation setup.

* Added Store Buffer option to the CPU cache control window.  This is
  an 060 only cache option.

* Fixed a major problem with the emulated SCSI support.  If you did not
  have an EMPLANT board installed (and selected for use by FUSION), you
  could not boot from any non-EMPLANT SCSI device.  If you had an
  EMPLANT board installed (and selected as the hardware type), then you
  could boot from ANY SCSI device even if you did not have a drive
  connected to EMPLANT's SCSI port.

* Fixed a problem with the Direct video drivers when an invalid monitor
  ID was given.

* Added support for the floppy eject/insert icons for thousands and
  millions display modes.  Also corrected placement problems when the
  screen's mod was not the same as its width.

* Added new gadget 'Start Delay' to ADVANCED setup and renamed the gadget
  'Iconify on startup' to 'Auto-Iconify'.  The Start Delay checkbox
  defaults to ON (checked).  Having this gadget checked will insert a
  3 second delay before the startup sound.  This gives you extra time to
  press (and HOLD) either SHIFT key to disable extensions.  Having this
  gadget unchecked boots the MAC as normal, with no additional delay.

* Fixed AmiDirectXL startup in 640x480 mode.  The autoscroll flag was not
  being set correctly, so ECS machines would lose the bottom part of the
  display until you re-opened the mode in the Monitors control panel

* Changed serial port code to open/close an AmigaDOS device only when the
  MAC actually opens/closes its serial port driver.  This leaves the serial
  and parallel ports available for use by the Amiga when the MAC is not
  trying to access them.

* Changed keyboard emulation to be an extended keyboard.  You can use
  'KeyCaps' to see all of the new keys available.
 

Offline JimDrew

  • Lifetime Member
  • Full Member
  • ***
  • Join Date: Jun 2012
  • Posts: 241
    • Show all replies
Re: Mac and 586 emulation on Emplant, how good is it?
« Reply #3 on: June 25, 2012, 05:40:25 PM »
The FUSION software was a bit faster than the standard EMPLANT software because of a few changes we made to the multitasking code, MMU page swapping (in Mac OS), Mac OS patch code, and a few improvements to our already blazingly fast math.

Go compare Shapeshifter benchmarks to ours.  You will find, especially in math, that FUSION is faster.  In fact, until Speedometer 4.0 came out, we were breaking just about every Mac benchmark's math test.  We replaced Packs 4 and 5 (Apples math packages) with our own 68K/FPU hand optimized code.  The difference was so extreme that Hollywood production studios such as Amblin Entertainment were using our emulation in place of real Macs for rendering and running Avid video systems.
 

Offline JimDrew

  • Lifetime Member
  • Full Member
  • ***
  • Join Date: Jun 2012
  • Posts: 241
    • Show all replies
Re: Mac and 586 emulation on Emplant, how good is it?
« Reply #4 on: June 27, 2012, 06:24:00 AM »
That info seems correct to me.  Although those are PEELs, not GALs or PALs.
 

Offline JimDrew

  • Lifetime Member
  • Full Member
  • ***
  • Join Date: Jun 2012
  • Posts: 241
    • Show all replies
Re: Mac and 586 emulation on Emplant, how good is it?
« Reply #5 on: June 28, 2012, 08:53:18 PM »
The EMPLANT board took about a week to work out and create.  The software seemed to take ages, but since were reverse engineering the Mac that was not much of a surprise.  Every time Apple released a new version of the OS, we had to go figure out what changed and how to patch it.

Commodore didn't want the headache of dealing with Apple for licensing ROMs.  They were very supportive of our efforts, giving us permission to take and alter the multitasking code.  We were the only company that actually had this permission.

I wasn't really friends with Simon Douglas in the sense where we hung out (he was in Canada as far as I recall).  However, we did chat a few times and I believe their was a mutual respect for our capabilities.  Simon was just on the wrong end of the stick with our mission to destroy Readysoft over their breach of contract.  Simon and I talked more about the a theif stealing a huge amount of his code for Shapeshifter.