-
Notifications
You must be signed in to change notification settings - Fork 0
aranym_incompatibility
An unexpected article, hopefully short. It was inspired by few men who assumed that ARAnyM is emulator of Atari Falcon and expected that their dirty-written applications are working under ARAnyM. This article is about reasons why their expectations aren't real.
Some of you know about mail to Atari ST newsgroup. Yes, it's possible that somebody with poorly nerves could write something like it. That man reported some problems with ARAnyM a few times but he didn't read ARAnyM documentation before his poor reports even. Despite this some our users wanted to help him. But their help wasn't successful.Why? Because that man believed that ARAnyM is a poor emulator of Atari Falcon, probably. No, it isn't.
ARAnyM wasn't developed as emulator of some real Atari computer. We wanted to develop a successor of Atari computers, not some emulator. That's the reason why we are calling ARAnyM virtual machines and users could stand against our view. We wrote something what is quite close to Atari Falcon computer (maybe quite close to never sold Falcon040) but it cannot be considered as Falcon. Why?
Because :-) There is a few reasons for it. Timers and caches and JITc and HW. Those are the most important.
At first timer. This reason is based on our emulation of 200Hz timer. As the source of timer ARAnyM use SDL functions SDL_xxxTimer. And this timer hasn't enough small granularity on most platforms today because many operating systems provide only 100Hz timer for user space programs and even it isn't accurate (it depends on multitasking management of host OS). Actually there is possibility to have 200Hz timer on some platforms (Joy is studying the situation from time to time and in the last days he implemented more accurate solution based on /dev/rtc in Linux). Thanks this inaccurate timer some (typically system) programs and games and demos have troubles under ARAnyM. But these programs often also depend on 16MHz CPU of Falcon. And we want to have much quicker CPU, not emulation of Falcon.
At second CPU caches and JIT compiler. If you need much power you should try Just-in_Time compiler core in ARAnyM. But don't forget that all applications developed on original Atari computers know nothing about CPU caches. Even original Atari TOS (which was patched by Joy with Douglas' patches for AB040). It means that every self-modifying code cannot run under this mode because this type of code must tell to CPU that after code modifications CPU's caches should be invalidated and the code should be downloaded from memory again. Also under JITc the timer is less accurate than in normal mode. You must pay for speed.
And the last big problem is HW emulation. Many system utilities have troubles under ARAnyM. Why? Because HW is emulated insomuch EmuTOS/TOS and FreeMiNT can boot. Under FreeMiNT we can use our own drivers for all new features. E.g. ARAnyM Ethernet card isn't emulation of some real HW Ethernet card for Atari. It is virtual Ethernet card developed by STan and Joy with NatFeats. It was easier and better solution than emulated something old and possibly unstable.
Those described reasons aren't the only one but they can show you that ARAnyM isn't emulator of Atari Falcon nor other Atari based machine. And there are also other sources of incompatibility - AFROS components. EmuTOS, fVDI and XaAES (or MyAES). EmuTOS isn't TOS, fVDI isn't NVDI (but thanks Johan and STan it is closer and closer) and XaAES isn't N.AES. And FreeMiNT isn't MagiC. The man who kicked me to this article impeded that Papyrus X isn't working under ARAnyM. I don't know why. I have no license of Papyrus. The reason could be in ARAnyM directly or in AFROS component. Did the man try ARAnyM in normal mode with Atari TOS 4.04 and NVDI and N.AES? I have no license for MagiC and actually no good Net connectivity, those are reasons why I cannot find the reason why MagiC isn't booting under ARAnyM (it booted a few years ago). Maybe it could work under MagiC (is MagiC 040 ready?).
Should be modified software or machine? Papyrus X is newer than ARAnyM. HDDriver was modified to work under ARAnyM better (thanks a lot, Mr. Seimet). FreeMiNT has even a special support for ARAnyM (thanks a lot, Frank and Konrad). If somebody would tell us what is wrong in ARAnyM we could try to find bugs. If somebody declares that ARAnyM is piece of shit and I should give my hands off programming, I cannot help him.
If you find some software not working under ARAnyM, please, put report to comments of this article or send to our e-mail lists or put report to our SF.net Bugzilla or contact somebody of ARAnyM developers privately. And don't forget to leave some contact on you. And be ready to help us with bug hunting and hope that somebody of us has free time. We want to help. ARAnyM is so good (it's my personal view, your view can be different) thanks our users with valid reports. Thank you.
Few comments from Joy and Milan:
Milan must have been smoking some dirt when writing this article. Let me correct some of the most obvious mistakes he made:
First, Ludwig (that crazy guy) didn't report anything. Reporting a problem in ARAnyM means contacting the authors of ARAnyM - otherwise it's just plain complaining. Ludwig didn't write to our mailing list, neither he used the bugzilla. That's first very important mistake.
Second, ARAnyM works perfectly well with TOS 4.04 ROM image so Ludwig plain lies. Milan's explanation of inaccurate timers (?? our timer is precise) and system utilities having problems with hardware sounds like he hasn't been using ARAnyM in last couple years. In fact there are no problems worth mentioning. I don't know about any general system utility that wouldn't be working because of a problem in ARAnyM.
Third, and most important, Ludwig complains about problems with applications (Papyrus X) and Milan tries to defend ARAnyM by explaining its internals. That's completely irrelevant - I bet Papyrus X is simply not compatible with the FreeMiNT/XaAES operating system and ARAnyM has nothing to do with that. I know I tried to present AFROS as a complete solution of GEM desktop on any hardware but it's worth explaining that we ARAnyM developers are responsible for the virtual machine (ARAnyM) only. If application software doesn't work on AFROS it's most likely problem of the application not being compatible with the operating system components. So such bug report will be welcomed by developers of EmuTOS, FreeMiNT, fVDI or XaAES but cannot (and shouldn't) shed bad light on ARAnyM itself.
I feel the necessity of writing a complete article explaining how the AFROS fits together and where to report problems users might face.
Petr
Joy, if you read the article carefully, you should read also about AFROS vs. Papyrus.
And about system utilities, not sure, but is Videlity working now?
Milan
You must have missed the HUGE difference between FreeMiNT (or HDDRIVER) and Papyrus. The former is kernel, the core of an operating system. Such thing runs on the (virtual) hardware directly and so it makes sense to adapt it to a new hardware (though it's worth mentioning that in ARAnyM case FreeMiNT wasn't modified in order to run but rather extended to make use of some new features not available on other machines). Similarly for harddisk driver that is talking to IDE and SCSI via direct hardware access (though HDDRIVER is not needed on ARAnyM but if you insist on using it then even older versions, unaware of ARAnyM, work properly).
Anyway, the main thing I've been missing in your article, Milan, is to clearly define that Papyrus and other 80% of programs Ludwig is using on his MagicMac do not have problem with ARAnyM itself, but with the differences between MagicMac and FreeMiNT/fVDI/XaAES.
As for Videlity, it's a Falcon screen enhancer - something you don't need to run on ARAnyM because screen output is accelerated thanks to fVDI ARAnyM driver (and fVDI allows you to define any screen size and color depth, much better than Videlity would ever do). But again, thanks to ARAnyM flexibility it is possible to run in old VIDEL mode where Falcon screen enhancers allow you to change the resolution - and Videlity should now run with the /dev/rtc driven TimerC - eventhough I proved it's a dirty written software with a logical bug in the waiting loop).
When I said "general system utilities" I meant it - Videlity is a Falcon-only (not general) software which with no doubt belongs to the "ARAnyM is not Falcon emulator" category. So do NOT complain about Falcon drivers not working on ARAnyM - it's like complaining that they don't work on Hades, Milan040 or MagicMac. Isn't it clear?
I am tired to explain such well known things to you. Let me visit you in Prague and explain it face2face in a serious beer session :-)
Petr
You missed something also. Papyrus was only an example. There are lots of software on Atari platform which are doing more than they should. They are doing things which should be doing only by OS (like FreeMiNT). If they are doing it (maybe also Papyrus), they should correct their works on ARAnyM. I don't want to modified ARAnyM for every SW.
Hey, Joy, the article is about "Sources of incompatibility", it means why we aren't developing Falcon emulator. That's why I wrote about Videlity. Because ARAnyM isn't Falcon, as you wrote, it's a side effect.
Milan
Frankly, I have no idea what you mean by "modifying ARAnyM for every SW" - ARAnyM has never been modified for a particular application software. We are working on the hardware emulation and slowly approaching better and better hardware level compatibility to old Atari machines because some developers enjoy it (they might like state machines, or are simply interested in getting as much dirty written software running as possible). But this cannot make any difference to application (GEM) software. It must always be running, and most already has been since the early 0.0.x versions of ARAnyM.
For users out there - if you want to check whether a particular software is written cleanly enough to work on ARAnyM, try to run it on Milan040 and CT60 under the operating system you want to run on ARAnyM (probably FreeMiNT/fVDI/XaAES). If the particular software works on Milan and CT60 then it will work on ARAnyM as well. And if it doesn't work there then you'll know that application is badly written and needs to be corrected (or replaced with a newer, better written application).
Petr
- ARAnyM main documentation
- ARAnyM Development
- How to install ARAnyM/AFROS system from scratch
- TOS/GEM Software Compatibility
- Various ARAnyM host platforms and their problems
- Host<->Atari communication: Native Features
- Speed tests
- Articles from aranym.xylab
- Architecture of ARAnyM video subsystem
- Links page