Allegro.cc - Online Community

Allegro.cc Forums » Allegro Development » Allegro 4.4.3 released!

This thread is locked; no one can reply to it. rss feed Print
 1   2 
Allegro 4.4.3 released!
SiegeLord
Member #7,827
October 2006
avatar

{"name":"611898","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/b\/b\/bb5e43b061b96236cd5a2dd22beab35c.png","w":532,"h":696,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/b\/b\/bb5e43b061b96236cd5a2dd22beab35c"}611898

Hard to believe this, but Allegro 4 is getting a new release! This is mostly bugfixes accumulated over the past 8(!) years. You can download it from GitHub downloads.

Changes from 4.4.3 to 4.4.3.1 (March 2019)

  • Fix a regression with the dat tool not working with plugins (SiegeLord).

Changes from 4.4.2 to 4.4.3 (February 2019)

  • Allow building the dependencies as shared libraries. (Michał Cichoń, Edgar Reynaldo)

  • Fix typo preventing get_executable_name from using System V procfs correctly. (Peter Wang)

  • Relicense loadpng under ZLib license.

  • Fix spelling of endianness in textconv (Andreas Rönnquist).

  • Fix format string warnings (Andreas Rönnquist).

  • Add Linux console tslib mouse "touch screen" driver. (Tobi Vollebregt)

  • Don't define a duplicate DLLMain. (SiegeLord)

  • Fix Allegro crashes/compilation under 64 bit Windows. (Sven Eden, David Capello)

  • Fix possible random crashes on Windows restoring DirectDraw surfaces. (David Capello)

  • Make internal function get_value in jpgalleg static. (Trent Gamblin)

  • Implemented load_midi_pf, play_fli_pf, open_fli_pf. (Ivan Mogilko)

  • Make use of <stdint.h> in MSVS 2010 and higher. (Ivan Mogilko)

  • Fixes several issues related to fullscreen mode in Windows. (Etienne Vouga)

  • Windows: fixed TAB key getting stuck in key buffer when held before ALT. (Ivan Mogilko)

  • Fix building with Mesa 18.2.5 and later. (Andreas Rönnquist)

  • Remove f* variants of fixed math functions. (Andreas Rönnquist)

  • Fix complilation of datedit. (rofl0r)

  • Modernize and fix release zipup script. (rofl0r)

SHA256 SUMS:

67981ff3e1dcc785c3cde93e07200f319ff85ab47c33752c03dcbd4b7e818022  allegro-4.4.3.7z
1e096e435e49e2dfd924d9c54ed7325caa1b06cecd28c3307146dd0de3d0bcb4  allegro-4.4.3.tar.gz
2740f951dfc6a7d2ca8fdec808042c899d742e1a04d5571abe60ea5debc1797f  allegro-4.4.3.zip
3b471b2db278c5c0e84b6f285c4280d937c5eb762559c368a10529affc4eff57  allegro-4.4.3.1.7z
ec19dbc9a021244582b4819b3583ee594b50141f9fcf6944a4ed8069cbf8d4d4  allegro-4.4.3.1.tar.gz
8d1e716a9b6f74fa44b801fb84a63432f74ea9178c219584c3d10793a9fb4520  allegro-4.4.3.1.zip

"For in much wisdom is much grief: and he that increases knowledge increases sorrow."-Ecclesiastes 1:18
[SiegeLord's Abode][Codes]:[DAllegro5]:[RustAllegro]

AMCerasoli
Member #11,955
May 2010
avatar

I'm also undead

Chris Katko
Member #1,881
January 2002
avatar

I had to check to make sure it wasn't April 1st...

also, great picture

Any chance we can get a C++ Allegro 4 with OpenGL and Kinect support???

-----sig:
“Programs should be written for people to read, and only incidentally for machines to execute.” - Structure and Interpretation of Computer Programs
"Political Correctness is fascism disguised as manners" --George Carlin

raynebc
Member #11,908
May 2010

Interesting. I'd occasionally run into repeated tab press detection issues, but it's pretty rare.

ZoriaRPG
Member #16,714
July 2017
avatar

@Seige Lord

I'll push our fix for the keyboard input race condition, if you'll accept it into the build. It corrects an issue on Windows where input becomes frozen based on allegro games being left runing for an extensive time.

The patch is here, if you want to review it:
https://github.com/ArmageddonGames/allegro5

Branch: 4.4-ZCFixes

Did anyone look at OSX 64b compilation, and is Linux 64b safe now, too?

It would also be nice to see precompiled libs for each platform made available with the release. A set of precompiled bins would always be helpful, at least for gccon OSX and Linux.

Windows, you'd need MinGW and MSVC bins.

We have someone (in theory) going through ag4.4 on OSX and fixing its deps. Quicktime.library is deprecated, and IDK what's happened with Quartz over the last few years.

Perhaps in a year or so, we can get some momentum on Allegro Legacy and turn it into 4.5. (IDR if you used that version designation before shifting the primary digit to 5.xx.)

SiegeLord
Member #7,827
October 2006
avatar

Anything can be accepted as long as its in a reasonable state. At least on our side, we consider A4 to be in maintenance mode so we're not really doing any new development... personally, I'm happy to continue merging other people's work though. If someone wishes to create binaries, I'm willing to put them up on github as long as they're of reasonable quality.

"For in much wisdom is much grief: and he that increases knowledge increases sorrow."-Ecclesiastes 1:18
[SiegeLord's Abode][Codes]:[DAllegro5]:[RustAllegro]

ZoriaRPG
Member #16,714
July 2017
avatar

Very good. I put in a pull request.

Looks like we need to rebuild for MSVC in order for our static lib to be current with your latest fixes.

I'm unsure about this commit, though, as I recall this having been fixed in the past:

Quote:

This fixes an issue of TAB key code getting stuck in the key buffer after ALT+TAB.
Steps to reproduce:
1) you hold TAB; since ALT is not pressed yet, the press event is registered.
2) you hold ALT and then release TAB or ALT & TAB simultaneously, and release event is skipped, making program think that TAB is still pressed.

We have not encountered this since shifting to 4.4.2. Good to know that there was another fix, though. Perhaps the KB mutex also solved it. IDK.

GullRaDriel
Member #3,861
September 2003
avatar

Incredible.

"Code is like shit - it only smells if it is not yours"
Allegro Wiki, full of examples and articles !!

Elias
Member #358
May 2000

Did someone test it in DOS? :)

--
"Either help out or stop whining" - Evert

Frank Drebin
Member #2,987
December 2002
avatar

NiteHackr
Member #2,229
April 2002

Elias said:

Did someone test it in DOS? :)

;D

--
Deluxe Pacman 1 & 2 (free) with source code available
https://nitehackr.github.io/games_index.html

Edgar Reynaldo
Member #8,592
May 2007
avatar

I will be glad to build binaries when I get the time.

EDIT BUMP
When Allegro 5.2.5 comes out I will build binaries for both using the latest MinGW-W64. Who wants 64 bit? Anyone still want 32 bit? I'll provide both if I can manage it.

;D

NiteHackr
Member #2,229
April 2002

When Allegro 5.2.5 comes out I will build binaries for both using the latest MinGW-W64. Who wants 64 bit? Anyone still want 32 bit? I'll provide both if I can manage it.

Yeah, I think we can finally wave goodbye to 32bit. I thought about messing around with my next project and making it 100% 64bit, never done that before.

I was going to build this for DOS, just for shits and giggles, but I realized this version uses CMAKE instead of the trusty old fix.bat files. :(

And I am not THAT interested in messing around with DOS! :)

--
Deluxe Pacman 1 & 2 (free) with source code available
https://nitehackr.github.io/games_index.html

Edgar Reynaldo
Member #8,592
May 2007
avatar

If you want to build for Dos, you need Allegro 4.2 . 4.4 dropped support for DOS and assembly as far as I know.

EDIT
Will https://github.com/liballeg/allegro5/pull/997 be included in the 4.4 branch anytime soon? Seems pretty important.

NiteHackr
Member #2,229
April 2002

4.4 dropped support for DOS and assembly as far as I know.

Than I honestly don't see any reason to even bother with it. DOS nostalgia is on the rise lately, check out the MS-DOS Gaming page (https://www.facebook.com/groups/2209352733/) on Facebook sometime! There's a surge in people buying old hardware to build DOS machines again. The cost of older hardware is going up in fact because of this.

As much as DOS has been long gone, I still see Allegro 4 as part of that era and seeing as how an update to it like this is rare and not expected at all, I don't see why support should have been dropped when we have Allegro 5 for newer things.

I do have 4.2 around here somewhere. Thinking about messing around with it and DOSBOX for kicks. Heck, there are people making money selling new games made for old platforms like the C64 and DOS, if you follow The 8-bit Guy on Youtube, he is. It's quite interesting.

--
Deluxe Pacman 1 & 2 (free) with source code available
https://nitehackr.github.io/games_index.html

Edgar Reynaldo
Member #8,592
May 2007
avatar

DOS and assembly were a nightmare they couldn't keep up with. Maintaining assembly code for multiple platforms is just a bad idea, and your compiler is most likely far far better at generating it than you are.

Allegro 4.4 also added 4 common addons, AllegroGL, loadpng, logg, and jpgalleg and bundled them with the cmake build.

Allegro 4.2.1 hasn't seen any development since then, but 4.4.3 has had numerous patches and changes over the years. It was the precursor to Allegro 5, and dropping DOS support made things much easier to maintain.

Note : now that there are modern versions of gcc available in djgpp flavor, Allegro 4.2.1 could easily be revived if there was truly interest in DOS again.

Note 2 : Allegro 4.2.1 is the only version of Allegro to support both DOS and OpenGL through AllegroGL. I don't think anyone else supports that combination. And it still builds using the old platform makefiles and fix.bat or fix.sh .

SiegeLord - any news on this pull request? https://github.com/liballeg/allegro5/pull/997

SiegeLord
Member #7,827
October 2006
avatar

I've released 4.4.3.1, which fixes the dat tool which was broken by the 4.4.3 release.

"For in much wisdom is much grief: and he that increases knowledge increases sorrow."-Ecclesiastes 1:18
[SiegeLord's Abode][Codes]:[DAllegro5]:[RustAllegro]

Edgar Reynaldo
Member #8,592
May 2007
avatar

SiegeLord - any news on this pull request? https://github.com/liballeg/allegro5/pull/997

?

It was supposed to fix a race condition in the keyboard handler. It does leak a mutex though. Just wonder whether I should include it in my build?

roger levy
Member #2,513
July 2002

Does it work on Windows 10?

I will deadass consider moving back to 4 just to simplify my life.

SiegeLord
Member #7,827
October 2006
avatar

SiegeLord - any news on this pull request? https://github.com/liballeg/allegro5/pull/997

No news. I'll take a look at it when I have time.

"For in much wisdom is much grief: and he that increases knowledge increases sorrow."-Ecclesiastes 1:18
[SiegeLord's Abode][Codes]:[DAllegro5]:[RustAllegro]

Chris Katko
Member #1,881
January 2002
avatar

I will deadass consider moving back to 4 just to simplify my life.

I honestly don't understand how this is still a thing. I mean, there's some boilerplate that is silly in retrospect but it's fairly small!

Like manually having to attach timers to a queue instead of having a starter queue and attach them to it by default (who would ever use the timer addon but NOT timers?), having to init all kinds of addons (who uses allegro 5 but DOESN'T use the primitive library? If I needed that savings I'd just rip out the code myself.) (But SDL is full of that crap too, which I bring up because it's a very popular alternative and nobody complains enough to not use SDL.) Allegro 5's API suffers from over-generalization instead of "optimize for the most common case." But it's FAR FROM TERRIBLE.

Either way, once you either write an Allegro 5 program out 10 times, or make a starter template with the code, you remember the boilerplate gotchas and coding is not bad at all. I just fork a previous project of mine, grab the setup bits, and move on. The only annoying thing is that I have to provide a font instead of using the default "FONT" but I started just giving it a path to a Linux system font (instead of packaging it myself) and I'm fine now.

The act of actually making the games is far harder than anything Allegro related. Make an OpenGL / GLEW application (read an old NeHe tutorial!) and you will recoil in horror at the complexity of just getting a triangle on the screen with all the windows messaging, device context, graphics context, opengl context (all separate!) boilerplate crap.

http://nehe.gamedev.net/tutorial/creating_an_opengl_window_(win32)/13001/ <--This isn't even a triangle yet, it's JUST the window! The triangle comes in the next tutorial in the series! And, NeHe tutorials are horribly outdated and the proper way of vertex buffers, display lists, and such are even more complex.

-----sig:
“Programs should be written for people to read, and only incidentally for machines to execute.” - Structure and Interpretation of Computer Programs
"Political Correctness is fascism disguised as manners" --George Carlin

Edgar Reynaldo
Member #8,592
May 2007
avatar

NeHe is horribly outdated, and you're better off learning from https://opengl.org/ .

There are some awesome tutorials I found not that long ago. I'm sure I bookmarked them one sec...

Yep, here it is : https://learnopengl.com/

Their shader example is premium. https://learnopengl.com/Getting-started/Shaders

But yeah, if I had to do everything allegro does I would go insane.

It's just the boilerplate factor that sucks about it. That's why pretty much everyone has their own game engine / library / framework for working with Allegro. But really it could be far worse.

NiteHackr
Member #2,229
April 2002

http://nehe.gamedev.net/tutorial/creating_an_opengl_window_(win32)/13001/ <--This isn't even a triangle yet, it's JUST the window! The triangle comes in the next tutorial in the series! And, NeHe tutorials are horribly outdated and the proper way of vertex buffers, display lists, and such are even more complex.

Most of what you see there is standard boilerplate Windows code you will see for ANY windows app. That's not OpenGL for the most part and you don't have to memorize most of it. I done this myself, with Windows, you can pretty much copy and paste most of that code for just about every project you make. Heck, make a function, throw most of that code into it with a couple parameters for changing minor things and you can reuse it in every project you make pretty much.

While NeHe is outdated, I didn't see the old way as complex at all. I learned OpenGL and done my own 3D program with it using straight Windows code + OpenGL, with display lists which I found really fast, at least for the time.

Here's some simple code I used to create a display list using the older immediate mode:

GLuint listSkybox = glGenLists(1);
glNewList(listSkybox, GL_COMPILE);

// insert code to draw skybox here

glEndList();

That's it!

After this, you simply call glCallList(listSkybox); to draw the skybox whenever you wish to draw that object. I don't know how you see that as complex. If you find that complex, stick to 2D as shaders will really confuse you. And don't even think of looking at Vulcan which forces you to do EVERYTHING which is insane (powerful, but... it makes that Windows code you hated look like a walk in the park in comparison).

I may try doing things with just straight Windows code + OpenGL again, only this time with modern opengl shaders.

Agreed, GREAT site for learning modern opengl properly. It's where I learned to make this (video of some code I learned from that site and have added to since)...

video

--
Deluxe Pacman 1 & 2 (free) with source code available
https://nitehackr.github.io/games_index.html

Chris Katko
Member #1,881
January 2002
avatar

I'm not talking about OpenGL boilerplate... I'm talking about Windows boilerplate. But I can see the misunderstanding in my wording.

-----sig:
“Programs should be written for people to read, and only incidentally for machines to execute.” - Structure and Interpretation of Computer Programs
"Political Correctness is fascism disguised as manners" --George Carlin

NiteHackr
Member #2,229
April 2002

I think the main problem is that many libraries we use do all this for us so we become accustomed to not having to do much, which can be really misleading. There's a lot that is important in the Windows code that needs to be done. Much of it allows you to adjust absolutely everything. Most of the time we don't need to, but it is important and your opinion of it probably underscores the problems with libraries simplifying things so much without understanding what is going on under the hood.

This is why I programmed some stuff where I vowed not to use any libraries, just Windows code + opengl and I was able to do it all and gained a good understanding of how Windows works.

The windows boilerplate is pretty simple honestly. You can create functions which you will never have to touch again. In fact, NEHE created a header which has some functions for setting up all the Windows stuff, you just include it and then call his functions and you never have to look at that Windows code again.

It reminds me a little of OpenGL shaders which has a lot of boilerplate code which you can reuse once you coded it once. All you need to do is program your code to load and compile your shaders then shove them into reusable function and you never have to program that code again. I think some libraries have functions to load and compile shaders for you.

Speaking of modern opengl shaders, I found a great siggraph video explaining how to do them for the beginner, it's a really good talk, going to watch it a couple times I think.

video

--
Deluxe Pacman 1 & 2 (free) with source code available
https://nitehackr.github.io/games_index.html

 1   2 


Go to: