sobota, 30 kwietnia 2016

AMIcast - Text Interview 5 - Toni Wilen

Another text interview and another great guest! I'm very proud to have Toni Wilen as my guest! The guy that makes for us WinUAE, even with PowerPC emulation. And before there were more tools. Do you remember FileMaster?
It's great to have you on You are very know person, maybe after releasing PowerPC support in WinUAE even more than ever.

1. So let's start with something easy. Your first contact with computers. And was it Amiga or something else?

I don't remember which was my first contact with computers but my first computer was Spectravideo SVI 328 MK2 (I think it was 1985 when I got it, when I was 10 or 11 years old). Next was Commodore C64 few years later and then second hand A1000 (1988 I guess). If I remember correctly, all of them were christmas presents.
2. Your first Amiga. Type and configuration? There were some other models too? Are you using Amiga nowadays?

Second hand A1000 with front panel 256k expansion. No other expansions. Few years later I got A500 and again few years later A1200. Only much later (2005+ or so) I started buying other models for emulation compatibility comparison purposes.
Today I practically only "use" my Amigas for compatibility testing.

3. When did you start programming and why?

I started with SVI-328 using BASIC. I learned 6510 assembly with C64 and 68k assembly and C (slightly later) after I got my first Amiga. Dice-C was small enough to work nicely with A1000 internal RAM expansion and 2 floppy drives... Why? I don't remember, it happened about 30 years ago..

4. You are and were inspirations for many Amiga users. Your portfolio has such amazing and know programs like FileMaster and SysInfo. What was the inspiration for you to creat so good software for our computer?

I don't know. I just did something I wanted to do and it needed to be something I want and can use without getting annoyed. I also rarely check or test "competing" programs because it would mean too easy way to add features that I would never use or need and they would only slowly rot away after being implemented.
5. Programs mentioned above are "cult software". Did you expect it? Did it influence somehow on your future work? Now you are involved in WinUAE, how did you start this project?

I don't remember how FileMaster started, it is has been far too long ago but I do remember how my UAE work started. It was time when it was "common knowledge" that AGA can't be emulated. (Believe it or not! Amiga community was and still is weird.). I learned how UAE worked and extended it with (basic) AGA support. I think it was 1997 or so when I started.
6. Tell us something about developing of WinUAE? All is based on reverse engineering of real hardware? Or you are using some documentation?

When I started working with UAE, most of basic documented features were already implemented by Bernd Schmidt. Of course it was far from accurate A500 emulation (I don't think it was even the goal of UAE originally, just to get it working) but most system friendly software worked fine.

Most common debugging method for me is to simply run programs (usually scene demos) that work incorrectly and debug what they do and then try to find out why does it work differently on real hardware. Usually it also means writing short test programs to minimize unknown variables. Slow and boring.

Also really big help was logic analyzer I bought long time ago, it allowed me to see exact DMA cycle sequences and all odd undocumented corner cases.

Low level documentation is non-existing. Only documentation that would explain still unknown undocumented features would be Agnus schematics. Biggest unknown part is blitter internals, odd things happen when blitter channel enable bits are modified when blitter is active. Some demos accidentally forgot to wait for the blitter but work correctly only because blitter did something unexpected. (For example blitter cycle sequence can change to something that never exists in normal operation!)

Another big missing part is cycle-exact 68020 CPU. Internal cycle usage diagrams are not documented. (No, official 68020/030 documentation cycle-usage listings are useless for accurate emulation)

In my opinion all "serious" single platform emulator coders do it because it is a great coding challenge to do something that was supposedly difficult or even "impossible" and make it as good as possible. You have well defined sandbox, you can easily experiment without breaking someone elses work or doing something "wrong". There is no limits.

Even if "single platform" includes strange CPU expansions with "alien" CPUs..
7. To develop such complex emulation is not easy. What knowledge is must have for this type of job? Are you alone or there is a small team supporting you?

I have done all low level chipset emulation improvents alone since Bernd disappeared. Some CPU features, like MMU, are not UAE original features. (680x0 CPUs were used in many 80s/90s platforms)

It seems no one can answer my tricky chipset questions and most old assumptions are wrong or imcomplete. External help comes from testing and finding programs that don't work. Boring but really helpful.

8. What about FS-UAE, are you in touch with author of this software? Do you think is it possible to port WinUAE to other non-Microsoft Windows systems?

Yes, for example 64-bit JIT and QEMU PPC would not have happened without Frode. I originally had some plans for portable WinUAE GUI but then FS-UAE happened.

I prefer hacking emulation core, not to support different ports or different APIs, supporting single platform is already boring... Only exception is WinUAE GUI that MUST support nearly all options, only because it makes really easy and quick for me to test different configurations.

User interface is the most common think I don't like in most portable emulators because they usually have extreme lowest common denominator designed GUIs that usually also don't have native look, hides or don't even have any "advanced" options or at least it requires manual configuration file editing.
9. Few years ago you said no PowerPC in WinUAE. Why did you change your mind? It was hard to add this functionality?

There was no useful/good enough existing easy to use PPC emulators back in the day, PPC Amiga "community" was very annoying, no UAE framework for expansion devices, I also had absolutely no interest in supporting any kind of expansion boards. No interest = not going to happen.

Then few years ago expansion devices become interesting, I started adding expansion device support (hd controllers and accelerators), later PPC support started to make sense, actually original reason for PPC support was to emulate PPC just enough to get BlizzardPPC to boot, BPPC has PPC code in its boot rom and it won't boot without PPC CPU. It was extremely good starting point: very easy and quick to duplicate 100%. I don't think PPC would have happened (or at least so quickly) if BPPC didn't require working PPC CPU.

(I'd like you to mention to contact me if anyone reading this has any HD controller or other expansion device with non-dumped ROM. They need to be preserved) has wanted list. Most of them can be dumped using software, without ROM readers or other hardware.

I generally hate to debug programs that run under AmigaOS, there is far too many unknown variables and it is practically impossible to duplicate exact same timing between test runs.

10. Now support for emulation of AmigaOS 4.1 is getting better and better. Is it possible that it could be a future for AmigaOS (4.1)? Even before people was saying that WinUAE is the best Amiga ever.

I don't know. I don't use Amigas for anything productive. Real Amiga is retro hobby for me, I use high end PC setup for everything else, including gaming (Triple monitor NVidia surround setup and so on..). Even current generation game consoles have too low performance.
11. Are you getting support from rest of Amiga companies (like Cloanto, Hyperion, A-EON or Elbox) to help develop better emulation? At the end everybody get a lot of from your work: like A.L.I.C.E project or Hyperion.

Cloanto has supported me and still does (Cloanto was one major reason for UAE expansion OS4 compatibility happening so quickly). Haven't heard anything from other companies. (Does not include A.L.I.C.E, because it is not a company :))

12. Amiga community is now divided. We have tree Next Generation systems and of course AmigaOS 3.x based systems. In this situation can Amiga survive or even get more popular? Or this is only retro computing for "old boys"?

Retro for me. Divided community is not the worst part, it is each part of community expecting that you are either part of "our" community only, not any others. And if you are, you should go away. At least it is less worse now, 10+ years ago you were killing the Amiga if you used or mentioned emulators. Different "OS camps", real hardware, emulators. They are not mutually exclusive!

13. Do you use Amiga NG? If yes, which system?


14. What about PowerPC? It was great architecture. But now future belong to Intel or ARM. Or I'm wrong?

I never really cared about PPC. IMHO PPC was result of RISC hype and as an unfortunately side-effect it killed nice M68K which Motorola could have been improved just like Intel managed to improve x86. Today CPU should not matter that much, it is software that matters.

15. Vampier (FPGA) II for Amiga 600 is now available. Can it give rebirth of Amiga? Of course like a hobby/retro computer? Probably Amiga is the most powerful retro machine. Or there are betters possibilities?

Very fast 68k based Amiga (with optional RTG support) is probably what most people who use real m68k Amigas want. But unfortately this project (and any larger hardware project, it seems..) has "natami syndrome": all kinds of impossible and pointless promises that some future version is supposed do, from users that usually don't know what they are talking about. It is extremely annoying and only ends in disappoinment. Even if final hardware does exactly what it was supposed to do!

16. What do you think about AROS Vision (68k)? It can bring for classic hardware modern OS.

I have only used it to debug some AROS issues but can't really say more. As I said, I don't "use" Amigas for anything useful :) Unfortunately I have lost interest with AROS fixing/updating, hopefully it will come back someday...

17. Where did you get your knowledge about Amiga and programming? Learning by doing?Now we don't have a lot of such great developers. Do you think situation will be better? The retro movement is getting more popular now.

Learning by doing and finding out how others did it and reading local magazines and books (Finnish C-lehti and Jukka Marin's Amiga/M68k books were great and of course Hardware Reference Manual).

18. AmigaOne X5000 is coming. What do you think? And what do you think about A1222 Tabor? Makes it sense to try "save"/develop new Amiga nowadays?

Both probably have usual bad price/performance ratio. But as I said, for me Amiga is retro, anything non-retro for me means latest and fastest PC hardware.

19. Or maybe only Amiga 68k is the best choice? For sure you heard about Amiga Reloaded. Is it good approach or we can  have something better?

Best choice is in the eye of the beholder. Some only want 100% A500 compatible Amiga with optional expansions, it is the best option if you only want to run A500 demos/games and do something retro stuff. Some want 100% A1200 compatible hardware with some optional expansions. Some want extreme fast CPU and chipset that is still AGA compatible in register level and don't care if technically badly coded programs break because CPU or blitter is too fast. Some don't care about AGA and want fast RTG board.

Reloaded probably is good option for A1200 compatible with optional expansions group. ACA500plus may be good option for first group. Vampire may be good option for 3rd/4th group. Some may only accept original Commodore hardware. There is no single option that fits all groups. There are too many users that fail to understand this.

20. For newcomers. What Amiga can you advise? Classic or maybe NG? Or emulator?

I have no idea if there are even newcomers or what they are thinking about Amiga. Emulator probably is quickest way to see what it is but not necessarily the best.

21. New guys should start with AmigaOS from scratch or better is to use one of packs like: ClassicWB, AmiKit?

I'd recommend using something ready-made at first, Amiga OS HD installing is not that simple if you haven't done it previously. It is too easy to get it wrong.

22. Future plans? Can WinUAE be even more powerful? Is it possible to creat emulator of other PowerPC computer like Pegasos II or Mac Mini? It could be good solution for MorphOS and AmigaOS 4.

Plans? Remaining expansion boards (when/if ROM dumps can be found). More compatibility. Support for multiple RTG boards active at the same time. CDTV-CR full 4510 microcontroller emulation.

It probably would not be that difficult to create compatible QEMU based emulator. I have repeatedly said that it would be more correct solution to create "NG" Amiga PPC emulator than trying to use UAE with PPC emulation. Obviously I am not interested. They are boring PC boards with more or less standard PC chips with PPC CPU plugged in.

23. Greetings.

I don't do greetings :)


6 komentarzy:

  1. Thank you very much for this interview! And many thanx to Toni as well - you are GOD! :-)

  2. Taka tam propaganda w stylu wczesnego Gebbelsa.
    Nowe amigi to niby płyt pc.
    Jakby coś blitter był warty to może.
    Ale na amidze od 1200 w górę wszystko i tak się robi procem bo szybszy.

    1. Tak nowe Amigi to nic innego jak płyty PC z PPC, jak by nie patrzeć, prócz układów SoC, każdy współczesny komputer, nawet konsole to gier korzystają z tych samych rozwiązań czyli grafiką zajmuje się karta graficzna, a muzyką karta muzyczna (tak w uproszczeniu). Absolutnie nikt nie ma szans w dzisiejszych czasach (tym bardziej hobbysta) aby stworzyć "custom" chipset, który przerastałby obecne rozwiązania jeśli nie ma miliardów na koncie. Nawet nie ma sensu się w coś takiego pchać, ponieważ dzisiejsze rozwiązania nie mają takich ograniczeń jakie były w latach 80-90, gdzie procesory, pamięci i chipsety były zbyt powolne by obsługiwać tysiące kolorów bez większego wpływu na wydajność.

    2. Ale czym się nowe amigi różnią od amigi 1200 z fastem?
      Blittera od commodore nie warto używać na amidze 1200 z fastem bo cpu jest w stanie rysować linie szybciej.
      W niskiej rozdzielczości.
      O wyższych rozdzielczościach, czy monitorze vga nie wspominając.

  3. Na Amidze 1200 się robi procem dopiero gdy ten ma powyżej 28MHz, bo będzie wolniej. Blitter działa po prostu zawsze z tą samą prędkością, bo płyty głównej oraz RAM w Amidze nie podkręcisz, dlatego robi się coraz wolniejszy przy coraz szybszym procesorze.

    1. Bzdura.
      Jak się postarasz to nawet na 020 z fastem cpu jest w stanie rysować linie szybciej.