sobota, 12 marca 2016

AMIcast - Text Interview 4 - Frank Wille

Frank Wille - man behind so many great projects: Solid Gold and Sqrxz games, but even more impressive things are: ppclibemu, vbcc, vasm, phxasm and the last but not least NetBSD for 68k Amiga! And it's not enough, he was also involved in beta-testing AmigaOS4.1 for the Pegasos 2.
How are you Frank? I’m very happy to have you here. It’s not easy to find some information about you and your great work for Amiga community. In this situation I will have a lot questions to you. Let start it!

1. First questions is standard. How have you started with computers? Was Amiga your first computer?

I started in 1983 with the Commodore VIC–20. There have been only few games for it, so there was nothing else to do than writing programs. It was the time when computer magazines contained lots of listings to type in into your computer.
18 months later I got the C64, which offered a broad selection of games, but I was already good enough in BASIC and 6502 assembler to spend half of my time writing programs for it.

2. When did you get Amiga? Can you share with us type and configuration? Are you still using Amiga (or other Amiga-like machine) as your main computer?

I got my first Amiga in January 1987. I knew long before that this will be my dream computer. It became an A1000 with A1081 monitor, which was so expensive that I had to buy it together with my brother. Later my brother got his own A500 and I expanded the A1000 with 2 MB Fast RAM, external disk drive, 30 MB hard disk and a Multivision flicker fixer.
Today I’m using a Pegasos 2 running MorphOS as my main computer. I have my mail client on it and do most development there. Additionally I’m using multiple NetBSD machines (mostly PPC based).
But also classic Amigas are still in use, at least for testing purposes. I have my A3000/CSPPC on the desk besides my Pegasos 2.

3. How did you start coding on Amiga? Was that connected with passion for Amiga or yo have started it earlier?

It started much earlier on the VIC–20, so it was quite normal for me to do the same on the Amiga. In the first week of my A1000 I already got a book about 68000 assembler programming (from the german publisher Data Becker), and a few weeks later I got the Aztec-C compiler and wrote my first C programs. The early Amiga magazines still had some C listings included.

4. You have created or been involved in so many project like: game Solid Gold and Sqrxz, but even more impressive things are: ppclibemu, vbcc, vasm, phxasm and the last but not least NetBSD for 68k Amiga. How you can do so many things and which of your project is most favorite?

I have been nearly 30 years together with my Amigas, so it is a long time to do something. ;)
Although I have a University degree in IT I always worked in jobs with lower qualification and made sure to have sufficient free time for my hobbies.
There is not really a favourite project as there are many interesting areas in programming and I like the variety.

5. Let’s talk about games. In 2013 you have created Solid Gold. The game was received very warmly in the community. Where did the idea to make this game come from? And are the other people involved in making this game?

After so many years of mainly next-generation Amiga and NetBSD coding I was yearning for some low-level Amiga custom chip hacking in 68000 assembler, like more than 20 years ago. I always wanted to make a technically perfect 8-way soft-scrolling game. So the technical direction was set. The rest was provided by my brother, who had the idea for the type of game and the name, while writing all the music and drawing all the graphics. A friend of my brother did the background story.

Solid Gold 1

6. Previously, you mostly worked on development tools and software for high end classics and NG Amigas. What made you go back to programming in assembly for stock Amiga 500 configuration? How have you achieved excellent engine offering smooth 8-way scrolling and 50FPS animation. Did you have to use a lot of programming tricks to achieve this kind of performance on A500? Was it difficult to make the game compatible with all Amigas?
I worked a lot on Amiga games in the past, together with my brother in the golden Amiga years around 1990. But we were young and lacked experience. So most games were unfinished and we never released anything.
During this time I also started to develop my own assembler, PhxAss. The reason for this was not that I like working on development tools, but to have better tools for our game projects. ;)
The key for the scrolling engine was an excellent example by Georg Steger on Aminet (dev/src/ScrollingTrick.lha), which I used as inspiration. It describes a combination of Blitter- and Copper-aided scrolling without using much memory. I added background and foreground tile animation, sprites for overlay texts and a BOB engine, which was straightforward to implement. I also had to write a new, optimized Protracker module player, because the existing versions cannot play one or more sound effects at the same time a four-channel music module is playing.
Providing compatibility between all Amiga models was no issue, as I already learned to do that in the early years when my A1000 got 2 MB Fast RAM and an 68010 CPU. It has always been a sign of quality to me, when software is compatible with all models.
7. How much time did it take to code Solid Gold? What software tools were used to make Solid Gold? Can you share how looks your development environment?
It took exactly one year to make Solid Gold, including the beta testing phase. Of course we didn’t work every day on it. But on average a few evenings every week.
The development evironment was completely portable. I used the portable vasm M68k assembler, the vlink linker and a simple Makefile. I wrote tools in portable ANSI-C for converting BMP and WAV files and included them in the project. Any native C compiler will do.
Although I did most of the development and tests under MorphOS I also built the project under NetBSD several times.
E-UAE has been a valuable debugging tool for the game, which allows you to set a breakpoint in any situation. Something you could only dream of 25 years ago.
Solid Gold 2

8. You were also involved in the remake of Sqrxz for classic Amiga. Can you tell us the story behind this project? Did you write any other games? Do you plan a sequel of Solid Gold?

The remake of Sqrxz for the A500 even predates Solid Gold. But the first version had a bad scrolling engine and didn’t reach 50 fps. Not even 25 fps in the intro.
My connection with the guys of Retroguru, who are responsible for Sqrxz, Giana’s Return, Xump, Fruit’Y and many more, started in 2010. I was playing Giana’s Return on the GP2X and wanted to see that on my Amigas. They supported so many platforms, but no Amiga. So I contacted the team leader, Shahzad Sahaib, and offered to do a port. First I was allowed to port Sqrxz to OS4 and MorphOS, and after that I appeared to be trustworthy enough to port Giana’s Return.
Retroguru
Over the time it turned out that Shahzad is still an Amiga fan, and even owns a real A500. So I’m frequently encouraged to do classic Amiga ports of Retroguru games. Sqrxz3 was the first game I did using an enhanced Solid Gold engine.
Sqrxz4 is more or less finished since last summer, but we wanted to let our graphics specialist, Simon Butler, optimize the graphics for 32 colors again.
There may also be a successor to Solid Gold from my brother and me, some day, but no information about that before it’s finished. :)
Sqrxz3

9. Let’s jump to more “seriously” stuff. You are probably best known in the community, as co-author of vbcc suite of development tools. The vbcc compiler was originally written by Dr. Volker Barthelmann, how did you start the cooperation with Volker?

I think it was around 1995 when Volker contacted me with questions about the PhxAss assembler, which he intended to use for his new C compiler.
From there on I began using vbcc myself and did some developments for it. In 1997 I provided vlink as our new portable linker (replacing PhxLnk or BLink on the Amiga) and in 2002 we started together a new portable assembler, called vasm.
Volker left the Amiga during the 90s and moved to Linux. So I got the permission to build and release AmigaOS, MorphOS and Atari versions of the whole vbcc development environment.

10. Some new Amiga projects still use the old tools like SAS/C, AsmOne, DICE. They are no longer maintained. Wouldn’t it make more sense to use vbcc/vasm that are actively developed?

Not necessarily. The portable nature of vbcc and vasm make them appear slow and resource hungry on underpowered M68k systems. It is impossible to use them on a 7 MHz 68000 system (also because I compiled them for 68020). A 030 system makes not much fun either. A 060 Amiga might be acceptable.
Compilers like SAS/C and DICE are certainly better suited for native 68k Amiga development, and the SAS/C code generator is really good. But they are lacking modern features like C99 or 64-bit arithmetics.
Also some developers prefer the GUI of AsmOne, which has everything included. That’s a matter of taste.
vbcc and vasm have their strengths in cross development. They also work nicely as native compilers under AmigaOS4 and MorphOS.

11. Even though vbcc and vasm support a lot of different architectures, it seems like Amiga is the best known platform for it. At least when you check Google, first thing that pops up is your page about Amiga version. Do you know any other platforms where vbcc is popular?

It is a little bit used in the Atari scene, although there is still much room for improvement in vbcc’s Atari and MiNT targets.
Much more popular is the vasm assembler, which is frequently used for Atari projects as a cross assembler. I also know of a few developers who use vasm’s Jaguar-RISC backend.

12. I heard you were involved in project AmigaOS 4 for Pegasos II. What responsibilities you had? The most difficult part of porting AmigaOS 4 to Pegasos II?

I was just involved in beta-testing OS4.1 for the Pegasos 2. The only code from me in OS4 might be the 68k and PPC disassembler, which appears when you see the Grim Reaper. ;)
I remember we had a few problems with the network interface, but otherwise it worked very well from the beginning.
Grim Reaper
13. Do you know or can say who made decision to port AmigaOS 4 for Pegasos II? I think it was smart move, it was quite good computer at that time.

Unfortunately I don’t remember. It has been many years now and I don’t want to say anything wrong.
In my opinion it was a very good move, because it was the only option at that time to have MorphOS and OS4 running on the same machine.

14. What do you think about Pegasos II? It was good computer or maybe still is not so bad for AmigaOS 4.1 or MorphOS?

It’s great hardware, with all of the problems from the first model removed. Note that the Pegasos is more than 12 years old now, and it is still a very usable platform for AmigaOS4 and MorphOS.

15. What do you think about AmigaOne X1000? And of course about X5000, that should be soon available to buy. For sure X-series is very expensive, could the small A1222 Tabor be alternative? Or OS4 camp should do something else, like MOS Team did with Apple hardware?

I love to see that new hardware is developed. The X1000 and X5000 is very expensive and Apple hardware is powerful and nice, but owning something new and rare, which will hardly lose its value over the time, is appealing.
I saw the A1222 Tabor at the Amiga30 in Neuss and I like the idea to use QorIQ PowerPC cores in the new models, which are more common than the X1000’s PA6T. Should also make Linux and BSD support easier.
From the user perspective it would certainly be desirable to have OS4 running on as many hardware platforms as possible, but I guess that it wouldn’t be fair in regard to A-Eon or ACube, who invested a lot to make new hardware possible.

16. How was the cooperation with Hyperion? What do you think about NDAs and orders imposed by Hyperion on developers and beta testers? Are they really necessary? Do you plan to have more projects with Hyperion together?

The episode with Hyperion was special. I was neither a real developer nor a beta-tester. I like my freedom and never wanted to join a development team or have any obligations. Timothy de Groote tried very hard to convince me to join, and finally I accepted a state without any obligations, but being on the developer mailing list and having access to the source code.
Maybe I did one or two minor commits in these years, but most of the time I regarded it as my task to watch out for potential problems with vbcc.
AmigaOS is closed source, so NDAs are important. Although I didn’t leave the team for good, many years ago, I will always follow the NDA I signed.
I prefer not to start any more projects. No matter with whom. I have really enough to do and to support for the next decade. ;)

17. Again hardware… You are developer, in you opinion PowerPC is right solution for AmigaNG or we should change architecture? For example now we have problem with fixing WebKit (Odyssey) for PPC, on platform x64 there is no problem.

The PowerPC has a modern and clean instruction set and architecture, unlike x86 and x64. It is also superiour and more modern than ARM, but unfortunately the development over the last years has given x86 and ARM an unhealthy market share.
As a developer you can either accept that or continue to work with obsolete architectures for your own entertainment. As it is my hobby I chose the latter.
But the consequences of a limited choice will have negative effects for all of us. We will slowly be losing the possibility to do with our hardware what we want to. UEFI is the first step into this direction. Additionally, techniques like TPM endanger our privatesphere.
Freedom needs alternative architectures and operating systems!

18. Other Amiga like system is MorphOS and AROS. I’m really impressed with achievements for our tree NG systems. But this separation is not so good for Amiga and users. Or am I wrong?

The advantage is that you have the choice. But as few Amiga users as we are, it would be desirable not to split forces.
The best you can do as a developer is to support all of them. But not everybody wants that or is able to do it. Also the operating systems themselves make that unnecessary hard to achieve (e.g. OS4 interfaces or AROS gcc-only).

19. AROS works on Intel. And I must admit is very fast. What do you think about AROS Vision (68k)? It can bring for classic hardware modern OS?

AROS Vision looks very nice, but I am not really used to it to give qualified comments. I’m asking myself whether recompiled AROS programs will run on it without modification?
Otherwise, from the description it looks like a patched OS3.1 installation, which still has a few problems. I’m a developer, so I don’t spend much time to enhance the look of my Workbench. I would rather avoid everything which might introduce any new instability.

20. Did you hear about the SonnetAmiga project - WarpOS reimplementation for Sonnet Crescendo 7200? They are extensively using your toolchain. Did you have to add any special features for them?

I am frequently in contact with Radoslaw Kujawa and already implemented new features in vasm and vlink to support the required memory attributes for the Sonnet board. It makes sure that WarpOS programs are loaded into the PCI memory, which can be accessed by the Sonnet.
Some may know that AmigaOS hunk format executables offer the possibility to choose whether a section hunk is loaded into Chip- or Fast-memory. But only few may know that you can also specify a full 32-bit word to select RAM with arbitrary memory attributes. I don’t think there was any development tool supporting those, before my modifications.

21. Vampier (FPGA) II for Amiga 600 is very exciting project. Can FPGA (FPGA Arcade, Minimig, MiST, Apollo Core) technology give another life for Classic Amiga?

Yes, to some degree. This is completely my personal opinion, but I have the feeling that an Amiga is no longer real when it loses its heart, the M68k CPU. So I regard the Minimig as a real Amiga computer, although the custom chips are emulated through FPGA, but the 68SEC000 is real.

22. You are also a developer of the NetBSD operating system. How did you get involved with NetBSD? Is there anything in NetBSD that Amiga user could find interesting?

I knew NetBSD since a very long time, as it was the first free Unix available for the Amiga, long before Linux. I played with it on my Amigas and learned a lot about Unix through it.
When I got my Pegasos 2 I was fascinated by the idea to have NetBSD running on such powerful hardware. I made first attempts around 2004 - 2006, with some help from a developer from Denmark and from Spain, but we failed due to lack of experience.
In 2007 I noticed that the NetBSD developer Tim Rightnour started to renovate all PPC ports, and also committed some initial code to make the Pegasos 2 work under the “ofppc” port. This was a good starting point for my experiments and contributions, and together we made the port work after a few weeks. Tim then offered me to become NetBSD developer, which I accepted.
NetBSD/amiga is in my opinion still the best Unix available for 68k Amigas, which supports by far the most hardware. Although we have a hard time to keep it from bit-rotting, so even I, who otherwise prefers to work on the PPC ports, did a lot of changes for it over the last years. But most new drivers during this time were done by Radoslaw Kujawa.
An experienced Amiga user should feel more comfortable with NetBSD than with Linux, because you have to build the system from scratch yourself. It doesn’t immediately start into a bloated Gnome or KDE GUI, like most Linux distributions do, but you have to understand and configure everything yourself on the command line. And then you can also install Gnome, KDE, Firefox and whatever you need. But you know what you did!
NetBSD
23. Apple used NetBSD as a basic (kernel) for new (Mac)OS X. Maybe for Amiga(NG) is better to try do the same for speed up development and get such stuff like: memory protection, multi core etc.?

No. Then you have a Unix system and no longer AmigaOS. When I want a Unix then I already have several other options, including OS X.

24. It seems that a lot of software you wrote is available with source. It is quite unusual in Amiga community. Typically leading developers prefer to keep their software closed. Do you think the open source model is better suited for Amiga software, especially now when community is very small?

In the past it has been a little bit of a tradition that even free or shareware programs are rarely released with source text included.
It is everybody’s personal decision. I didn’t publish the source for all of my programs either, partly because it is obsolete, irrelevant or useless, or because it is so bad that it would be embarassing. :)
For my portable development tools the source is mandatory, otherwise nobody can port it. With the source for games like Solid Gold I am hoping to see more homebrew games, when not everybody has to reinvent the wheel.

25. Do you think some old technology or maybe even AmigaOS 3.1 should be opened for community? Now we have a lot of troubles like: ROM of CyberStrom PPC, CGX4 or Picasso’96 or other closed stuff.

I fear that open access to all sources will create even more different AmigaOS clones. If it ever happens, then only a few trusted people from the Amiga community should get full access to the sources and decide about who else gets access.
AmigaOS 3.1 sources have been leaked several times, so there is no danger that they will be lost. And there are many people with access to P96 and CGX sources.
A real problem are the ROMs on third party hardware, or even worse, the CPLDs and FPGAs on it. When they are lost, then all the hardware will die sooner or later.

26. For newcomers. What Amiga can you advise? Classic or maybe NG? Or emulator? Now, emulation of PPC in WinUAE is getting to be better and better. Or maybe just wait for Amiga Reloaded project?

First of all there will be no newcomers who didn’t experience the Amiga during the golden age. Which means we will rarely see people who are born after 1990 (except they have been made Amiga-aware by their parents).
I guess that NG Amiga systems only appeal to hard-core users who never really lost touch with the community.
A real newcomer usually remembers the classic Amiga and wants to relive the days of his childhood. For everything else he has better and cheaper options. Usually an A500, A1200 or Minimig (also Amiga Reloaded, when it happens) will be the best choice, when he wants real hardware. Otherwise UAE is always a good start to get in touch again.

27. Should our developers try to sell for small money apps/games to get some cash for hobby? In my opinion yes. What do you think about this?

It is everybody’s free decision to do so. In my opinion Amiga is a pure hobby platform and there is no real software market anymore.
A hobby is something you do for fun, without being payed.

28. What is your current roadmap or plan for new features?

I try to avoid terms like “roadmap” as it tends to impose obligations, which conflict with “hobby” and “fun” (see above). :)
Currently in the pipeline, ordered by priority, are: vbcc 0.9e, Sqrxz4 OCS, more NetBSD/amiga Xorg/wscons graphics cards.
And I hope to start a new game project with my brother this year

29. Greetings.

Fairlight, Skid Row, Scoopex, Crystal, Vision Factory, Quartex, Paradox, Bamiga Sector One, …er…oh, sorry! ;)
Greetings to all active Amiga users in the world! May the Amiga be with us for the next 30 years!
And check your board’s batteries and capacitors, before it’s too late!

Links:

1 komentarz:

  1. "A real newcomer usually remembers the classic Amiga and wants to relive the days of his childhood. For everything else he has better and cheaper options."

    So girls and women can't use AmigaOS systems??! *sigh* It's 2016. We shouldn't have to hear this. It makes me so sick. If anything, the platform needs a lot more women. *sigh*

    OdpowiedzUsuń