|
|||||||||||||||||||||||||||||||||||||||||||||
|
Today we have the honour of welcoming Kari-Pekka Koljonen, developer of HippoPlayer, one of the Amiga's most popular audio players. ![]() I work as a software developer, something I've done for quite a many years already. I live in Tampere, Finland, near a large forest area and some nearby lakes. My family consists of a wife.device and two children, 11 and 12 years. Besides trying to keep the family alive and the house liveable, I like physical exercise. Nowadays mostly gym, walking, and mountain biking. In the past, I used to do quite a lot of martial arts, too. Sometimes I tinker with the A1200, usually watch some demos or do some testing, play some games on the C64 and do some Amiga programming on the laptop. I mostly listen to heavy metal and like horror and sci-fi movies. ![]() I got a C64 at around 9 years of age and played games with it. I also did some basic programming. Then after some years a friend got an A500. I played Hybris, Garrison, Backlash and Gauntlet and was floored. These had amazing sound and graphics. I needed to have an Amiga too, and eventually with the help of my parents I got an A500 with Kickstart 1.2. I remember booting up Workbench and marvelling at it. I had some Fish disks I think, and the Juggler demo. Later some copied games and demos, too. I don't remember what was the first game I played on my own A500. ![]() The A500 with Kickstart 1.2 received a 0.5 MB expansion and an extra drive. I then manipulated my parents to buy me an A590 with a 20 MB HD which was relatively affordable at the time. This didn't work on my A500, probably because I had poured some juice on it and some connections weren't exactly right anymore. Even the repairman couldn't help. So I had to get another A500. This worked with the A590 and it was amazing to have a hard drive instead of floppies. I had a dual boot with Kickstart 1.3 and 3.1. It had 2 MB of fast memory and 68010 also at some point. I also did the 1 MB chip mod to it. This was faster than just a plain A500 and I was quite happy with it. Until the new AGA Amigas came and I really wanted one so I could run the AGA demos and do some AGA programming. At this point Commodore was already bankrupt and I had to buy a 2nd hand A1200, which I remember was not an easy task. I also got an 68030/28MHz accelerator and a 4MB memory expansion, as the plain A1200 was really not very good without any expansions. I purchased an Eizo multisync 14" monitor with my summer job earnings, this was able to display both games, demos and high resolution Workbench screen nicely. Around the year 2000 I stopped using Amiga. Then, much later, the A1200 was serviced and I replaced the still working HD with a memory card, and added a TF1260. I also had purchased a PCMCIA Ethernet card at some point for Internet connectivity. I also have the A500/Kickstart 1.2 and some C64 stuff. ![]() Programming. At first, I played games, but soon started coding demo effects, as I loved watching demos. I also learned how to do systems programming, this was useful later for HippoPlayer development. I did a lot of smaller utilities for fun (also a virus, just to see how that would work). I also listened to a lot of modules, most of my disks were actually just full of modules. I also composed some mods of my own using ProTracker, it was fun but the results were not super good. I still have my old mods safely stored. ![]() Back then, I was friends with Guru, who programmed PS3M, which was able to play PC-multichannel modules on Amiga using an efficient mixer. I decided to make a good module player that also incorporated PS3M in it. I enjoyed listening to modules and didn't like any of the existing players that were available, so this would solve two problems. I remember wanting to make Hippo fully keyboard controllable. If you know the keyboard shortcuts the user interface can be incredibly easy and powerful to use. On the other hand, there are a lot of quite weird UI decisions in there, it didn't really follow the Amiga style completely. Due to using AsmOne, the main application was built from just one assembler source file which was about 450 kB in size. It was big and quite messy. This was when the original development stopped in 2000. Now, the same main source file is over one megabyte! Due to having both Kickstart 1.3 and 3.1 on my A500, I wanted to make Hippo work on Kickstart 1.3, which it still does. Some other possibly interesting things:
![]() HippoPlayer 2.61 and 1.01 ![]() Some friends and I formed a "demo group" and came up with this name, as it sounded funny and silly. The logo was drawn by a friend in this group, and it ended up in HippoPlayer as well. The artist probably never knew this as he wasn't much into Amiga at this point. ![]() I used AsmOne on A500 and A1200, then later vasm + FS-UAE on the laptop. ![]() Yes, I haven't really considered getting help for the actual coding. There's a Discord channel with some Amiga guys who have been helpful in other ways. Patrik (of the UHC team) helped when doing network support using his "aget" tool. Erique implemented SIDBlaster support to playsid.library and also fixed some other issues in the lib. Spot/UpRough has been very active with feature ideas, testing, and pushing me to do stuff. :-) ![]() I think in lines of code the sample player support was quite a lot of work back in the day. This is responsible for IFF, WAV, AIFF, MP3 playback and their variations. There's a lot of conversions that need to be done here, depending on the input data. A module format has a replay code written by the format author, so integrating this is usually not too much trouble, if you have the code available. For the TFMX format, I think I ripped the replay code out of some games where they were used. Possibly Hollywood Poker Pro. ![]() At this moment, I don't actually have a lot of ideas to proceed with. ![]() I mostly remember DeliTracker and EaglePlayer, both of which are very impressive architecturally. They are very similar. But from the usability point of view, I didn't like them. ![]() I had some email conversations with Peter Kunath of DeliTracker back in the day. I think I asked him to send me some replay routines for some formats, which he kindly did. ![]() I've heard that HippoPlayer kind of works on AmigaOS 4 with PowerPC, but not without problems. I think Hippo is for the classic Amiga only. Technically it is a Kickstart 1.3 application. ![]() There's a favourites list I made which is available in the web browser in Michael Rupp's excellent TAWS: https://hippoplayer.se in folder "Playlists". If using an Amiga with network and HippoPlayer, the same can be found by going to the Search View using the list mode toggle button and selecting "Shared lists". For testing, I don't have any specific mods, I just try to have one or two of every format that is supported. I could mention a ProTracker module called "the ultimate beeper.mod". It does not have any samples at all, yet still it makes a sound by corrupting memory cleverly. ![]() I think I was just not doing computer related hobbies much, but concentrated on other stuff. I remember learning Haskell a little bit and thought that was quite an interesting language. Around 2010, I got an idea to do some demo effects again as it suddenly started bothering me why I never managed to do the shade bobs effect back in the day. I set up an emulator and coded a bunch of effects, also the shaded bobs thing. Which was a lot of fun. It was weird that I had not forgotten anything about programming on the Amiga while having a long break. I think I was also aware of the English Amiga Board, and sometimes browsed and maybe searched for mentions of HippoPlayer. I remember someone at EAB complained that the playlist was not able to hold enough modules in it, the limit was around 16 000 modules. Around 2017, someone requested the sources of HippoPlayer, so I put them up at GitHub. In 2019 (based on git history), I increased the module list size to about 30 000 but there was no new release. Then in the spring of 2021, I started playing around the source again, just for fun. I wanted to make the internal multitasking work properly as I didn't really know much about threads when I originally created Hippo. I also wanted to remove the old playlist size limits, which was quite a lot of work, actually. At this point, Spot/UpRough contacted me and started presenting improvement ideas for new supported module formats. Then the thing started rolling. It's been fun, and it seems there are still some interested users as well. Also I think Hippo is now much better than before. :-) ![]() Sormelus started as an idea to make a simple game around typing speed. It had to have music and vectors of course, and sound effects. I recently uploaded it to Aminet for preservation purposes. A very silly one, this. Tankkk was born because I played the MS-DOS Tankkk at a friend's place. It was nice but poorly implemented. I decided to make a better version for the Amiga, in 1993 or so. It turned out pretty good and was meant for 2-4 players. In 2023, I tried it on my Kickstart 1.2 A500 and noticed it actually does not work. I had left a bug there which made it crash on 68000 but work on 68020. I fixed this and reuploaded it on Aminet. Then I got contacted by Ztronzo of AmigaLive, which I knew nothing about. It turned out that there are people still playing the game after all these years, using AmigaLive, which allows network play of classic Amiga games. This was a big surprise to me! Ztronzo had a lot of good improvement ideas and there were also many enthusiastic people on AmigaLive. New fields and music modules were produced this way. A recent big improvement was single player support so you can play against the computer. It now supports up to 7 simultaneous players, too. ![]() ![]() TankX ![]() We set up a group with some old friends for making an intro, but this has been progressing very slowly. There's a logo, music and fonts already, but effects are still mostly missing, which I should be doing. :-) ![]() It makes me happy to see the classic Amiga alive and well! It's quite incredible really, new games, software and hardware are being developed. ![]() Those are not interesting to me. I think the appeal of Amiga now is to relive the fun times of the past, which can be done on the original hardware and original(ish) OS versions. On the A1200, I have my original MagicWB desktop which I set up in the 1990s, it's nice to boot up into that. ![]() Nothing comes to mind at this point. ![]() Have fun with you Amigas!
|