AMIGA alive

AMIGA alive

Sunday, March 16, 2025

ISS has an Amiga compatible display

Astronauts of the International Space Station can plug in an Amiga 600, 1200, or CD32 and play games on a beamer!

A beamer with composite video input aboard the ISS

15.6kHz analog-video compatible displays are a bit of a rarity these days, but of course the ISS, being the pinnacle of human achievement, has one, with a composite video input. It is very unlikely, though, that Amiga hardware is available in space.

;-)

(Picture: Arrival of additional/rotating crew at the ISS, March 2025)

Wednesday, March 12, 2025

Amiga on MTV: "Shades" by House Of Usher (1992)

Another nice example of how the Amiga was used as a low-cost video production workhorse.

According to an article in a 1993 issue of "Amiga Kickstart" magazine (see links below), the music video for House Of Usher's techno track "Shades" was created on an Amiga 500+, using DeluxePaint IV.

And you don't need glasses to immediately recognize somehow familiar colors and shapes. This looks very much like a production from the Amiga demo scene, only the sound quality is better, and the animation clips are more random. Nowadays, the visuals may seem a little naive. But at the time, this was pretty hip stuff, yeah, you would see something like this at a rave party. The music video in its entirety doesn't run on an Amiga 500 - there's some video editing, and obviously CD-quality audio. "Shades" was a little hit in the German techno scene, and the video was shown on MTV and some other channels.

Here's a capture of "Shades" by House Of Usher (1992) playing on MTV:


"Shades" by House Of Usher (1992) music video clip
video source: https://www.youtube.com/watch?v=fj7MC1oYzno

Amiga Kickstart 1993-01 article at archive.org:
https://archive.org/details/amiga-kickstart-93-01/page/100/mode/2up 


Saturday, March 8, 2025

Grind - new demo! (Dev Arena v0.6)

Yet another preview of "Grind" - the grown up brother of Amiga 500 Doom-clone "Dread" - just popped up on YouTube.

"Dread" was a super impressive project that spawned full-game-release project "Grind", and it's looking better than ever. 

Here's the latest video, that was uploaded just minutes ago to famous retro-gaming channel Saberman RetroNews:

Check out Saberman RetroNews YouTube channel, and make sure you visit IndieRetroNews website for latest retro-gaming news!


Thursday, December 26, 2024

Floppy drive disk detection repair - as not expected

A surprisingly simple repair to a microscopic, but essential problem with an Amiga 1200's floppy drive. 

This drive didn't work reliably, and at some point failed completely, not detecting disk media anymore. Only with a little bit of extra pushing on the disk, it would click and start reading, but immediately stop when released. A more thorough inspection was required.

The mechanism didn't feel very snappy when inserting the disk, so some dirt, lack of lubrication, or worn out spring was the first guess. But it turned out everything moves nicely. Next, the "disk inserted" switch was inspected, drenched in isopropyl alcohol, tested, even resoldered, it was fine, but the drive still didn't work. Suspecting a worn out disk "sledge", that prevents the switch from getting fully pressed down, a little bending was applied to some of the metal side pieces - with no success.

Amiga 1200 floppy drive without cover plate - the slightest touch would make it work.

Basically everything about this floppy drive was fine, only it still required some pressure on the top of the disk. With more inspection, cleaning, etc. it became a little bizarre: Only minimum pressure was required, the weight of a finger, creating microscopic movement.

The solution was found when looking at another, very similar floppy drive: The disk guides at the drive's front aren't supposed to be tilted to the inside. On the other drive, they're perfectly horizontal, parallel to the top edge.

That was a little unexpected. Amiga computers are old, this Amiga 1200's drive had the guides slightly bent, tilted towards the inside, for decades, and worked fine. But it makes sense, bent guides could prevent the disk "sledge" from fully touching down on the drive's base plate, thus not triggering the disk detection signal properly.

Bending the guides back to a (near) perfect horizontal position indeed fixed the problem.

Open drive, and disk "sledge" (top part), with straightened guides at the front.
A similar drive, used for comparison, on the left.

The lesson learned is that these guides wear out, and they were worn out on this drive. Who would've thought. They seem to hang in the air when no disk is inserted, and they're hard to see when a disk is in the drive. If you've never consciously looked at them, or even if you have, you assume they're build this way. And you probably don't expect that when they're bent down another 10th of a millimeter, they prevent the drive from working. 

It might have worked for decades, and it wasn't even expected to be wrong, but still: If it's bent, it's probably broken!

Missing screw on the backside - that's acceptable.

While at it, the casing of the drive was checked, so the sledge has no unnecessary action. This drive is missing a screw on the backside, but with a little straightening (bending... ;-) ) of the top piece, and making sure its sides fully snap into place on the drive's body, a tight fit can still be achieved.

Floppy drive immediately detects floppy disk again. Very good.

That was a very unexpectedly simple repair. The drive disassembly was unnecessary, it probably could've been done even without opening the Amiga computer. And it even was totally analog. Awesome.

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