Notice: Updating Allegro to 4.4.4

OpenZC Development Topics
Post Reply
User avatar
ZoriaRPG
ZC Developer
Posts: 67
Joined: Sat Feb 08, 2020 9:42 pm

Notice: Updating Allegro to 4.4.4

Post by ZoriaRPG »

The next ZC releases should be built on Allegro 4.4.4, with libs built by me, not by DarkDragon. I am curious if the malware issues go away after this, as we have been using his allegro libs since 2017.

We were previously on a modified version of 4.4.2, so, this makes us current. It could also break things, but thus far it seems be behaving.

My apologies for the slow release schedule, but it took me two weeks to properly set up and build allegro in a way that was compliant with ZC.

This process is now automated, with its own repo if we ever need to update allegro again:

https://github.com/ArmageddonGames/allegro4

Inocudom
Posts: 2
Joined: Thu Oct 01, 2020 4:53 pm
PureZC Username: Inocudom

Re: Notice: Updating Allegro to 4.4.4

Post by Inocudom »

It looks like the most recent version of Allegro is 5.2.6. How well would that one work out?

User avatar
ZoriaRPG
ZC Developer
Posts: 67
Joined: Sat Feb 08, 2020 9:42 pm

Re: Notice: Updating Allegro to 4.4.4

Post by ZoriaRPG »

Inocudom wrote:
Fri Oct 02, 2020 4:44 pm
It looks like the most recent version of Allegro is 5.2.6. How well would that one work out?
It wouldn't:

Allegro 5 and Allegro 4 are entirely incompatible. The first digit defines the API. Allegro 4.4.4 is the latest of the AG4 API, 4.2.6 may be the latest for AG5. During the AG5 dev process, the Allegro team decided to break compatibility with Allegro 4, with two very big, notable breaks: Allegro 5 does not support normal RAM memory video bitmaps, it does not support packfiles, it does not support AG4 MIDI, it does not support Ag4 input methods, and it does not support 8bbp graphics (at all!), with a minimum of 24bbp; so, absolutely everything in ZC would break if we blindly converted to Allegro 5.

There is a WIP compatibility layer (Allegro Legacy; 'AL') that we plan to use for ZC 3,0. e.g., This allows using AG4 and AG5 at the same time. This would allow us to pipe video out to OpenGL, and still use Allegro 4 graphics routines such as RAM bitmaps, rather than VRAM/GPU. We rely on all of these features, so v3.0 will still rely on AG4, but it will be able to make use of new features of AG5 as extensions to what we use at present.

The update to AG 4.4.4 is not a trivial thing. I spent a lot of time ensuring that we can easily rebuild Allegro 4 with any future updates of changes in MSVC by making a repo for it. This was a mentally debilitating task, but it ensures that ZC uses the latest version of AG4, whatever it may be, and it makes it easier to patch as needed.

Post Reply