AMIGA alive

AMIGA alive

Sunday, November 24, 2024

AMIGA alive "Quick Clips"

"Quick clips" are a number of quickly recorded and little edited videos of what you might call "everyday Amiga issues" - installing a software package, fixing some C code, transcoding a file from one format to another, and the likes.

So far, these "quick clips" can be found on the YouTube channel:

Rewriting AMOS code in C

Some "live" examples of how to translate AMOS code to C code. 

https://www.youtube.com/watch?v=_jRAXVnV6cg

How to run AmigaAMP 3 on AmigaOS 3.0

With a little bit of manual effort, AmigaAMP 3 is nearly fully usable on OS3.0.

https://www.youtube.com/watch?v=bTu3J9nA8tk

Speech synthesis with "say"

Some experimentation, and a little story, with AmigaOS' "say", translator.library, and narrator.device.

https://www.youtube.com/watch?v=4e4m2Yqt51A

How to sleep() with AmigaOS

How to substitute an eventually missing POSIX sleep() function in AmigaOS. 

https://www.youtube.com/watch?v=yBYEGYFmmhA

 

...with more to come. Is there anything specific you'd like to see? Leave a comment - here, or on one of the videos' pages.

"Quick Clips" full playlist:

https://www.youtube.com/playlist?list=PLFqkmsX-uEeIA7uBhdPvHLV1QCO27hU5l


Subscriptions to the channel are highly appreciated. :-)

Thanks for watching!


Friday, November 8, 2024

A little odd: TAG_DONE and TAG_END

Sometimes one might get confused when to use TAG_DONE in AmigaOS C-code, and when to use TAG_END. The answer is very simple: They're one and the same. But it turns out there might be a little bit of an unknown story to these two widely used tokens.

TAG_DONE showed up before TAG_END, in NDK1.3, along with struct TagItem, but not as part of the system includes, and the TagItem system wasn't used in system functions.

Or was it? This is a section of code from the file Read-Me1.3/A2024Docs/OpenA2024.c, which is part of NDK1.3.

#define NONEWINCLUDES       1   /* don't have 1.3 includes yet  */

#if NONEWINCLUDES       /* Some additional definitions  */

/********** from intuition/screens.h ************/

#define NS_EXTENDED     0x1000  /* NewScreen.Extension is valid     */

struct TagItem
{
    ULONG   ti_Tag;     /* identifies the type of this item */
    ULONG   ti_Data;    /* type-specific data, can be a pointer */
};

/* ---- system tag values ----------------------------- */
#define TAG_DONE   (0L) /* terminates array of TagItems. ti_Data unused */
#define TAG_IGNORE (1L) /* ignore this item, not end of array       */
#define TAG_MORE   (2L) /* ti_Data is pointer to another array of TagItems
             * note that this tag terminates the current array
             */

Note the condition "#if NONEWINCLUDES". It looks as if these definitions were part of some "new includes" that weren't part of the distribution (yet?). 

There appears to be a nice little oddity here:

NS_EXTENDED (and TagItem) can't be found in intuition/screens.h, while other sections of the code (not shown here) can. The code contains a copy of NewScreen structure definition, only extended with an extra field, type TagItem pointer. It then creates an instance of that NewScreen structure, with type NS_EXTENDED, and calls OpenScreen() with that structure. There's no mentioning of NS_EXTENDED, or a TagItem pointer field in the Autodocs of OpenScreen() in this version of the NDK.

Does that mean that AmigaOS1.3 already had an (almost) undocumented feature, that would only be made (really) public with AmigaOS2?

TAG_END appears in NDK2.0, in new system include file utility/tagitem.h, as a clone of TAG_DONE, along with struct TagItem etc.:

NDK2.0-4/include/utility/tagitem.h

#define TAG_DONE   (0L) /* terminates array of TagItems. ti_Data unused */
#define TAG_END TAG_DONE

This NDK's version of intuition/screens.h also defines an ExtNewScreen structure that has the extra TagItem pointer field. 

Looking at the usage of TAG_DONE and TAG_END, across all files that are supplied with NDK2.0, there seems to be no preference. Maybe TAG_END was really just introduced to avoid interruptions in workflow, because many developers would intuitively think, and type, "end" instead of "done"?

Another tiny oddity is a change that appears in NDK3.1. It has a slightly different definition of TAG_END: It's still identical, but for some unexplainable reason, TAG_END isn't bound to TAG_DONE anymore. Instead, a comment explains why both use the same value.

Includes\&Libs/include_h/utility/tagitem.h

#define TAG_DONE (0L) /* terminates array of TagItems. ti_Data unused */
#define TAG_END (0L) /* synonym for TAG_DONE */

We'll probably never find out what happened, precisely.
But that's ok. Fortunately, TAG_DONE and TAG_END are either synonyms, or simply the same. ;-)



Thursday, October 31, 2024

Great Amiga Demos!

Just in case you didn't notice: There's a growing number of Amiga demo videos on the YouTube channel.

Amiga demos are just fun to watch, and oftentimes feature some fantastic music. 

This is a collection of classic Amiga "multimedia", featuring demos by Ephidrena, Capsule, The Black Lotus, Spaceballs, Digital, Parallax, etc., captured from real hardware. Part of the mission is to preserve and expose the Amiga's somehow unique video capabilities, with lots of different screen resolutions, different bitmap color modes, interlaced and non-interlaced screens, changes in screen size (aka overscan), and programming of the Copper video co-processor, which results in some effects that are normally hidden beyond borders of the screen. (See for example the pink spinning shape in Digital's "Lethal Exit", that expands for a couple of seconds - nifty.)

To get you started, here's Spaceballs' "State of the Art" from 1992:


Spaceballs - State of the Art (1992) demo

Maybe you wanna subscribe to the channel to get notified of new uploads?

"Great Amiga Demos" YouTube playlist:
https://youtube.com/playlist?list=PLFqkmsX-uEeK9ij8dvSnpTiY24ZZ7LbhS

 

Friday, October 25, 2024

"It’s a reckoning": Worms 30th anniversary

In 2025, Cult game "Worms" by Team17 will have its 30th birthday. To celebrate the occasion, a new, free release of the game is planned - with levels created by the Amiga demo scene!

"Worms - The Directors Cut" (1997) cover artwork

According to sources (see end of article) "Worms" developer Andy Davidson has announced a reimagining of "Worms DC" ("Director's Cut") 1.5, that is set for release in January 2025, and for free. That's a very nice gift to the Amiga scene. 

Actually, he doesn't refer to the occasion a celebration, but a reckoning - which is quite fitting for the game.

To make the new release really special, Amiga demo groups are encouraged to submit their level designs, via a forum thread at amigans.net - which is a nice, and interesting idea. Graphics artists that are active in the demo scene have created some of the most stunning visuals ever seen on Amiga screens, so some eye candy can certainly be expected. "Worms" isn't a very complex game, but maybe, given the deep understanding of maths, bits, and bytes, in these circles, even some unusual, challenging designs might show up, that give the gameplay an unexpected twist.

"Worms - The Director's Cut" (1997) in-game screen

Basically, "Worms" levels are just bitmap images, so all that's required to create one is a paint program such as Deluxe Paint or Personal Paint. A couple of details regarding color palette and depth have to be respected, obviously. 

More details, and your place to submit your application (well, there's no specific process - just leave a note) can be found at this URL:

https://www.amigans.net/modules/news/article.php?storyid=3282

Additional sources:
http://amiga-news.de/de/news/AN-2024-10-00078-DE.html

Thursday, August 29, 2024

Amiga in the movies: Robot Ninja (1989)

An Amiga 500 was spotted in 1989 splatter-comic movie "Robot Ninja" - both on screen, and behind the scenes.

Robot Ninja (1989) poster artwork (see end of article)

The movie is a very gory, but also funny and slightly tragic low-budget sci-fi/horror production. If this fits your taste, it's really enjoyable, with a lot of handdrawn comic panels thrown in, goofy, but (very) rough characters, and some actually quite ambitious, visionary storytelling, complete with dream sequence, Terminator rip-off scene, and everything.

"Robot Ninja" was written, produced, directed, and edited by J. R. Bookwalter, who also supplied some of the music. 

The opening credits might look somehow familiar to longtime Amiga users.

A couple of frames from the opening credits

The comic panel sections of the opening sequence feature some animated text - could this be some Deluxe Paint animations that we're looking at?

A couple of frames from the opening sequence, with comic panels, and animation

Only a few minutes into the movie, we get a little news report that features some sort of artwork of the "Robot Ninja". 

Is Robot Ninja connected to the Ridgeway Murders... ?

So far, all of this feels very much like something Amiga. It wouldn't be surprising if one shows up in the movie... and indeed, soon a machine can be seen that looks remarkably like an Amiga 500.

Someone is playing a game...

...on a computer with some extra equipment...

...that looks very much like an Amiga 500...

...and runs a GUI with a blue background.

So after this character has played a round of "Lords of the Rising Sun", he returns to what seems to be AmigaOS Workbench 1.x.

More artwork shows up during the movie - isn't there a faint title bar, that maybe says "Deluxe Paint"? And there's another news report, that uses a font that just looks all familiar.

The "Robot Ninja" shown on the computer display - with title bar.

The font used by this TV station looks very familiar.

We get to see more of the computer equipment. There seems to be a dot matrix printer on the left side (maybe a Star LC-10?), and a floppy drive right next to the keyboard. And is there another, bigger printer, on the right side?

1989 computer workstation in "Robot Ninja"

In this sequence, the movie's anti-hero is in very bad shape after a heavy fight - he tries to decipher what's written on the computer display, but he's dizzy, and his vision is blurry.

Robot Ninja can't properly see the computer display.

But then, finally, all doubts are dispelled: Yes, this is an Amiga 500. With a red LED. 

It's really an Amiga 500, with PSU, 1010 floppy drive, and 1084 monitor!

The movie's ending credits feature some digitized images with a little bit of animation.

A couple of frames from the pictures during the ending credits.

When the credits' text (Topaz font? Opal font?) begins to roll, it gives more clues about Amiga usage during production, and some enthusiastic praise for the computer.

Amiga 500 in "Robot Ninja" ending credits

The titles, and we can pretty safely assume also the digital artwork in the movie, were indeed created on an Amiga 500, as was the music by Mr. Bookwalter. Maybe the entire editing was done with some gen-locking, VHS-recorder-controlling Amiga setup, at "The Imagination Industry" and Richard B. Perrine?

"Robot Ninja" is a very nice example of Amiga usage in movie production. Looking at its imaginative, bold style, it's a perfect tie-in with the idea of the allround-creative Amiga user. Mr. Bookwalter obviously is one such person. He felt he had to put the machine into the movie, give it big credit, and the fact that he did the work for "Robot Ninja" on an Amiga 500 is pretty cool in itself. It's proof that even the lowest-cost model, a literal bedroom-computer, can be a (low-res) film industry workhorse. 

Now, why isn't there a "Robot Ninja" game for the Amiga?

*

https://www.imdb.com/title/tt0100503/

https://en.wikipedia.org/wiki/Robot_Ninja

"Robot Ninja" poster image:
https://en.wikipedia.org/wiki/Robot_Ninja#/media/File:Robot_Ninja_(1989)_poster.jpg
https://theschlockpit.com/2020/03/29/in-praise-of-robot-ninja-1989/


Monday, August 19, 2024

A techno music album created with OctaMED SoundStudio (and Camouflage)

"Breathless" is an album of electro/techno music created on an Amiga computer over the latter half of the 1990s. All tracks were composed with OctaMED SoundStudio, using Amiga samples and MIDI sound devices.

I had learned that Amiga computers are great for sound and video. Demos like "Desert Dream" and "Lethal Exit", and esp. the intro music of the game "Epic" had left me very impressed. So I got an Amiga 600 and started playing with OctaMED. A MIDI interface and a Roland Juno 106 analog keyboard were added soon after, then a Yamaha FB-01 synth module, followed by a lot of other devices.  

Over a couple of years, many pieces of synth music were created, all of which were more or less experimental. Until a handful stood out, and I thought it would be nice to put together an album. A few more tracks were created on-the-fly, to give the album more playing time - I just like music to have a little extra time to develop.

Around 1999, when finishing the album, I had expanded my setup to an Amiga 4000 with graphics, network, and Prelude 16-bit soundcard, and added a PC for recording and post-production. I had also upgraded the software in use to the latest version of OctaMED, called SoundStudio, and great audio/MIDI program Camouflage.

The music was initially composed with OctaMED SoundStudio (OMSS), using a mix of entering notes step-by-step, live jamming with MIDI-recording, and a few longer audio samples. Some of the tracks were then played back in OMSS, and recorded as audio tracks in Camouflage, to free up MIDI instruments and add more sounds.

A couple of notes on individual tracks:

Track 1, "Where the sun shines", features the Amiga playing back a catchy synth riff sampled from a Roland Juno 60 keyboard, and some speech samples.

Track 3, "Too hoppin' mad", is a spiced-up remake of an older track called "Hoppin' at the spot", and it has a funny story: The idea was to have some rhythmic chords, played on a Roland JX8P keyboard, enter on the first breakdown, and continue over the groove. But I forgot to switch on OMSS' "chord mode" - when MIDI-recording the chords, all (most) notes ended up on one track in OMSS in near-random order. When listening to the result for the first time, I was pleasantly surprised, and added distortion from a guitar effects processor to intensify the effect. The string/pad segment was mostly created in Camouflage, using OMSS as a "looper" for the MIDI instruments. 

Track 4, "Into the ominous" features some random bleeps: These are created by just some random notes played on a Yamaha DX7 II keyboard: The battery was old, it had lost its memory. The sound is the result of an undefined state of one of the synth's memory slots. (Except for a handful that I had restored or overwritten, they all sounded pretty much the same at that point: random bleeps. lol.)

Track 7, "Breathless" is the most Amiga of the tracks on the album. The idea was to create an "epic" (?) acid track, it was initially called "Hildesheim", and it's a bit noisy. OMSS is playing back sampled synth sounds, and controlling a Kawai XD-5 drum synthesizer. Lots of samples were taken, in an attempt to recreate the filter sweeps of an analog synth. There's also a tiny bit of live filter mixing - you can probably recognize it by the better sound quality.

Track 9, "Farewell" is a groovy, simple track, that serves as a basis for some acoustic guitar solo jamming.

All tracks were recorded and "mastered" on a PC using Samplitude. I'd have loved to finalize the tracks using the Amiga version, but at the time PCs had become so fast, that they could handle a handful of audio effects in realtime, whereas an Amiga would require minutes to do the calculations. EQ-ing, compression, extra panning, and reverb was added, and the final tracks exported, stored, and burnt to CD.

In hindsight, everything could've been done better. The reverb is too much, it makes everything sound quite muddy. But it also enhances the hi-resonance synth sounds on nr. 7, "Breathless". The mixing and mastering has lots of flaws - there's some heavy banging, around 500Hz or so, on some tracks, sometimes created by individual sounds, sometimes by the mix. And so on - but overall, and as an entity of different compositions, I think it turned out somehow listenable, and, in parts, even a little catchy or moody.

The entire album has just been uploaded to YouTube. The videos were created with Blender in 2024, as a little "visualizer" for the music.

"Breathless" CD cover front / inlay / back

"Breathless" album playlist on YouTube:

https://www.youtube.com/playlist?list=PL7Gy7PSuZtfIULzpMRIN2RU_JwjGSheOv

YouTube channel:

https://www.youtube.com/@SchwabingDeepSpace

"SchwabingDeepSpace" blog:

http://schwabingdeepspace.blogspot.com


One of the few physical copies of "Breathless"