AMIGA alive

AMIGA alive

Tuesday, December 28, 2021

P96 3.2.1 is out!

Jens Schoenfeld / Individual Computers says Merry Christmas with an update to P96 (Picasso96) that happens to match AmigaOS's latest version number.

According to the announcement (see link below), it's a bugfix release that addresses many little issues that were reported by users via P96's support forum.

Among the changes are updates to blitter emulation, improved use of hardware sprites (mouse pointer) that increases performance, and added support for the ZZ9000 graphics cards' dual-palette feature, removing artifacts when dragging Intuition screens.

For more details, go to Individual Computer's website:
https://icomp.de/shop-icomp/de/newsreader/items/p96-v3-2-1-herausgegeben.html

Additional sources:
http://amiga-news.de/en/news/AN-2021-12-00087-EN.html

Saturday, December 25, 2021

AmigaAMP 3.30 is out!

Thomas Wenzel has release a new version of his audio player "AmigaAmp" with a decent set of bugfixes and new features. This is the list of changes, as published on AmigaAmp's website on Dec. 23rd:

Bug fixes:

  • Pulldown menus now work across all ReAction windows
  • If a datatype can't load the cover image from memory then AmigaAMP will write it to T: as a file and try to load it from there. 
  • Fixed radio station name taken from stream metadata in playlist.
  • Up to ten reconnect attempts when shoutcast server reports 'unavailable'.
  • Fixed handling ID3v2 tags in front of FLAC files.
  • Fixed loading / adding whole directories.
  • Fixed initial state of EQ/Playlist buttons in skin mode.
  • Automatically save current equalizer setting when saving prefs.
  • Reworked visualisation routines for better synchronicity.
  • Fixed SSL connections that require Server Name Indication.

New features:

  • Automatic fallback from MHI to AHI for uncompressed audio and tracker modules (68k version).
  • Multi-select playlist in ReAction mode.
  • Snapshot windows directly via pulldown menu entry.
  • Popup menu for "Add..." button in ReAction playlist window.
  • ARexx macro support. Macros must have .rexx extension and start with a line saying /* AmigaAMP ARexx Macro */
  • Automatic adding of .pls to saved playlist filename.
  • Now using octave-spaced equalizer band frequencies.

Thanks, Mr. Wenzel, and Merry Christmas, too!

Go to AmigaAmp's website to download your copy:

http://www.amigaamp.de

Additional sources:
http://amiga-news.de/en/news/AN-2021-12-00067-EN.html

Wednesday, December 22, 2021

AADevLog #2 - Sprites, tiles, scrolling... a game!

Another project I've been working on is slowly taking shape, and there was quite some headache involved to get it going.

In my pursuit of creating... a game! ...I've arrived at VSprites, tiles, and scrolling. The Amiga is a technical marvel, but it has it's pitfalls. So you read the docs, set up your default, low-res PAL display "View", create a "ViewPort", adjust ViewPort offsets, re-read the docs, adjust the ViewPort offsets properly, read the docs again, re-adjust... and it still behaves weirdly. At some point you try a high-res display mode. Either way, in the end result some VSprites are missing, or the scroll offset is wrong. Well, after hours and hours of experimenting, it turns out that ViewPort->RxOffset and ViewPort->RyOffset are indeed the correct variables that need to be changed to move around a larger source bitmap, but they get interpreted differently by different Kickstart/OS/chipset versions - it looks as if KS3.0 on AGA chipset, and KS3.1 SetPatch'd by OS3.9 on AGA chipset, might be messing up VSprites when scrolling, and earlier KS versions always scroll by low-res pixels, regardless of actual display (high) resolution. As a quick fix I'm focusing on what is probably still the most common Amiga configuration: Amiga 500, OCS chipset, Kickstart 1.3. I'll work on compatibility or maybe a separate version of the game later.

Basic screen mockup, to get an idea of object's sizes, and screen layout

And a "bug" in the docs was discovered: When using VSprites, you "reserve" some hardware sprites from VSprite usage by setting/clearing bits in GelsList->sprRsrvd. The docs give contradictory information about what "reserve" actually means - bit set or clear? It has now been proven and confirmed that bits need to be set to allow VSprite usage of that hardware sprite, and bits need to be cleared to "reserve" the corresponding hardware sprite from VSprite usage. Einstein-alike.

Anyway - after overcoming these obstacles it's beginning to look like... a game!

ViewPorts are a great thing, by the way. There are a couple of limitations, but whenever you run low on colors, need a different origin for your drawing coordinates, or maybe are thinking about an alternative to a dual-playfield, a new ViewPort might solve the problem.

So now it's got a scrollable bitmap, separate status bar, sprites, tiles, game map files, and a rudimentary "physics" engine that allows sideways movement and drops. That's a huuuge step forward!

No, that's not the... game! Just an early tileset.

Linux IFF picture viewer xiffview, which was created as a side-product of game development, now really comes in handy. I use it regularly, it has become part of my makefiles, and I add features as I need them.

When writing software that's handles data for different architectures, you have to pay attention to a lot of details. The reversed endianness (MSB on m68k vs. LSB on x86) has been mentioned many times. Also different compilers on different CPU architectures may have different data storage types - an "int" on a modern x86 machine is not be the same size as an "int" on Amiga. I encountered this just recently, when adding some code to xiffview that writes Amiga UWORD values to a text file, using something like fprintf("0x%04x", value). The UWORDs written had too many digits, too large for an Amiga 16-bit number. It looks like a bug on first sight, but the Linux x86 compiler is simply made to handle larger numbers (by default) than an Amiga C compiler. The solution is simple: you have to explicitly cast the value to a 16-bit data type, like this: fprintf("0x%04x", (short int) value).

Thanks for reading, c u next time!

AmigaOS 3.2.1 is out!

Great news from the operating system side of Amiga things: Hyperion has released AmigaOS update 3.2.1, for registered users, and for free.

In a press release published on 21st Dec. 2021 the availability of the first update to AmigaOS 3.2 was announced, along with a list of highlighted features:

  • Fixes to almost every single gadget and image class
  • Fix to clipboard.device that since AmigaOS 3.1.4 would not handle clips above 16KB in some cases
  • Important fix to locale.library that would convert signed values to unsigned
  • New IconEdit with support for colorful icons (like the “GlowIcons”)
  • TextEdit has gained an ARexx port per open document
  • ShowConfig had its GUI reworked, and can now make reports in AmigaGuide format
  • The RAM disk linking feature have been changed a bit so it seems more like AmigaOS 3.1.4 while still being copy on read as in AmigaOS 3.2
  • Dropping files on console will now activate the console window
  • The screen will no longer remain black if you start up without any attached drive
  • Eject menu item in Workbench 

Go to Hyperion's website to download the update:
https://www.hyperion-entertainment.com/index.php/downloads?view=files&parent=42

Additional sources:
http://amiga-news.de/de/news/AN-2021-12-00061-DE.html