MinGW-W64-GCC 7.1 i686-posix-dwarf binaries for A4.4 and A5.2
Edgar Reynaldo

EDIT 06/13/2017
The static binaries had some dynamic dependencies. I fixed that and rebuilt both static libs for Allegro 5.2.2. The link now points to the new archive.

Hi people,

I recently finished upgrading my compiler to mingw-w64-gcc 7.1 and I'm lovin it. I got stand alone binaries for MinGW-W64 from here :

https://sourceforge.net/projects/mingw-w64/files/

Specifically, these :

https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/7.1.0/threads-posix/dwarf/i686-7.1.0-release-posix-dwarf-rt_v5-rev0.7z

And I built Allegro 4.4.3 and 5.2.2 with it, along with all of their dependencies. Binaries come with libs, html and chm docs, dynamic debugging examples, demos, and tests, and all includes. .bat script in the allegro folder will start the environment to run the examples. Perfect way to start developing with Allegro 4 or 5 today.

Get your classic Allegro 4.4.3 binaries here :

https://bitbucket.org/bugsquasher/unofficial-allegro-5-binaries/downloads/Allegro443_MinGW71.7z

Get your modern day Allegro 5.2.2 binaries here :

https://bitbucket.org/bugsquasher/unofficial-allegro-5-binaries/downloads/Allegro522_MinGW71v2.7z

Enjoy!!!

Edgar

Neil Roy

I don't know if I should, something always seems to turn up with me. ;)

But I will anyhow as my game seems to be a good test for these builds. ;D I'm not sure if that's a good thing or not. ;)

Well, I don't disappoint... got some build errors. :)

Looks like a JPG library wasn't included?

||=== Build: Debug in Deluxe Pacman 2 (compiler: GCC GNU Compiler) ===|
C:\MinGW_Dev_Lib\lib\liballegro_monolith-debug-static.a(jpg.c.obj)||In function `jpeg_packfile_src':|
E:\LIBS\LIBS71Build\allegro\addons\image\jpg.c|115|undefined reference to `jpeg_resync_to_restart'|
C:\MinGW_Dev_Lib\lib\liballegro_monolith-debug-static.a(jpg.c.obj)||In function `load_jpg_entry_helper':|
E:\LIBS\LIBS71Build\allegro\addons\image\jpg.c|176|undefined reference to `jpeg_std_error'|
E:\LIBS\LIBS71Build\allegro\addons\image\jpg.c|190|undefined reference to `jpeg_CreateDecompress'|
E:\LIBS\LIBS71Build\allegro\addons\image\jpg.c|192|undefined reference to `jpeg_read_header'|
E:\LIBS\LIBS71Build\allegro\addons\image\jpg.c|193|undefined reference to `jpeg_start_decompress'|
E:\LIBS\LIBS71Build\allegro\addons\image\jpg.c|237|undefined reference to `jpeg_read_scanlines'|
E:\LIBS\LIBS71Build\allegro\addons\image\jpg.c|248|undefined reference to `jpeg_read_scanlines'|
E:\LIBS\LIBS71Build\allegro\addons\image\jpg.c|261|undefined reference to `jpeg_finish_decompress'|
E:\LIBS\LIBS71Build\allegro\addons\image\jpg.c|264|undefined reference to `jpeg_destroy_decompress'|
C:\MinGW_Dev_Lib\lib\liballegro_monolith-debug-static.a(jpg.c.obj)||In function `save_jpg_entry_helper':|
E:\LIBS\LIBS71Build\allegro\addons\image\jpg.c|305|undefined reference to `jpeg_std_error'|
E:\LIBS\LIBS71Build\allegro\addons\image\jpg.c|319|undefined reference to `jpeg_CreateCompress'|
E:\LIBS\LIBS71Build\allegro\addons\image\jpg.c|326|undefined reference to `jpeg_set_defaults'|
E:\LIBS\LIBS71Build\allegro\addons\image\jpg.c|328|undefined reference to `jpeg_start_compress'|
E:\LIBS\LIBS71Build\allegro\addons\image\jpg.c|343|undefined reference to `jpeg_write_scanlines'|
E:\LIBS\LIBS71Build\allegro\addons\image\jpg.c|347|undefined reference to `jpeg_finish_compress'|
E:\LIBS\LIBS71Build\allegro\addons\image\jpg.c|350|undefined reference to `jpeg_destroy_compress'|
||error: ld returned 1 exit status|
||=== Build failed: 17 error(s), 0 warning(s) (0 minute(s), 6 second(s)) ===|

Got similar problems with the release build...

||=== Build: Release32 in Deluxe Pacman 2 (compiler: GCC GNU Compiler) ===|
C:\MinGW_Dev_Lib\lib\liballegro_monolith-static.a(jpg.c.obj):jpg.c|| undefined reference to `jpeg_std_error'|
C:\MinGW_Dev_Lib\lib\liballegro_monolith-static.a(jpg.c.obj):jpg.c|| undefined reference to `jpeg_destroy_compress'|
C:\MinGW_Dev_Lib\lib\liballegro_monolith-static.a(jpg.c.obj):jpg.c|| undefined reference to `jpeg_CreateCompress'|
C:\MinGW_Dev_Lib\lib\liballegro_monolith-static.a(jpg.c.obj):jpg.c|| undefined reference to `jpeg_set_defaults'|
C:\MinGW_Dev_Lib\lib\liballegro_monolith-static.a(jpg.c.obj):jpg.c|| undefined reference to `jpeg_start_compress'|
C:\MinGW_Dev_Lib\lib\liballegro_monolith-static.a(jpg.c.obj):jpg.c|| undefined reference to `jpeg_write_scanlines'|
C:\MinGW_Dev_Lib\lib\liballegro_monolith-static.a(jpg.c.obj):jpg.c|| undefined reference to `jpeg_finish_compress'|
C:\MinGW_Dev_Lib\lib\liballegro_monolith-static.a(jpg.c.obj):jpg.c|| undefined reference to `jpeg_finish_compress'|
C:\MinGW_Dev_Lib\lib\liballegro_monolith-static.a(jpg.c.obj):jpg.c|| undefined reference to `jpeg_std_error'|
C:\MinGW_Dev_Lib\lib\liballegro_monolith-static.a(jpg.c.obj):jpg.c|| undefined reference to `jpeg_destroy_decompress'|
C:\MinGW_Dev_Lib\lib\liballegro_monolith-static.a(jpg.c.obj):jpg.c|| undefined reference to `jpeg_CreateDecompress'|
C:\MinGW_Dev_Lib\lib\liballegro_monolith-static.a(jpg.c.obj):jpg.c|| undefined reference to `jpeg_resync_to_restart'|
C:\MinGW_Dev_Lib\lib\liballegro_monolith-static.a(jpg.c.obj):jpg.c|| undefined reference to `jpeg_read_header'|
C:\MinGW_Dev_Lib\lib\liballegro_monolith-static.a(jpg.c.obj):jpg.c|| undefined reference to `jpeg_start_decompress'|
C:\MinGW_Dev_Lib\lib\liballegro_monolith-static.a(jpg.c.obj):jpg.c|| undefined reference to `jpeg_finish_decompress'|
C:\MinGW_Dev_Lib\lib\liballegro_monolith-static.a(jpg.c.obj):jpg.c|| undefined reference to `jpeg_read_scanlines'|
C:\MinGW_Dev_Lib\lib\liballegro_monolith-static.a(jpg.c.obj):jpg.c|| undefined reference to `jpeg_read_scanlines'|
||error: ld returned 1 exit status|
||=== Build failed: 18 error(s), 0 warning(s) (0 minute(s), 8 second(s)) ===|

Edgar Reynaldo

Neil : Add -ljpeg or -ljpeg.dll to your link line. You're not linking to libjpeg. If you static link you shouldn't have a problem if you don't use it.

Neil Roy

Neil : Add -ljpeg or -ljpeg.dll to your link line. You're not linking to libjpeg. If you static link you shouldn't have a problem if you don't use it.

Like last time, I changed nothing, just recompiled. It compiled last time without trouble. But... I will try again, just to make you happy, 'cause that's the kind of sucker I am.

(time passes)

Okay, that solved the problem with JPGs, just know that this will pop up with some other people as the last build you did, didn't give me problems with not linking in jpeg.

The game compiled okay, but there is a problem loading OGGs... now remember, NONE OF THESE PROBLEMS EXISTED IN THE LAST BUILD, so do not blame me. I really don't care if my game compiles with this as I am done working on t his particular game, I am only doing this to find errors in the current build. If I am to be blamed everytime something in a build is changed, I will stop testing as my game worked with the last build, no problems. Anyhow, here's my game's debug output...

{"name":"610927","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/0\/a\/0ab4c3228579d890e3e83b992c8fa44c.jpg","w":677,"h":342,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/0\/a\/0ab4c3228579d890e3e83b992c8fa44c"}610927

That was some sort of warning with PNGs, and there was an error loading an OGG. I think it made it past these warnings though... sec, let me take another screen cap and copy the code where the error happened.

Okay, here's the screen (my editor, console window + game screen and error...

{"name":"610928","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/c\/4\/c4e330924eab724b8e8870deb7f9b93a.jpg","w":1920,"h":1041,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/c\/4\/c4e330924eab724b8e8870deb7f9b93a"}610928

Here's the code that loads the Pill ogg sound file...

   sfx_pill = al_load_sample("Sound/Pill.ogg");
   if(!sfx_pill) {
      a5_error(AT, setting.screen, "Failed to load Pill.ogg");
      shut_down();
      exit(1);
   }

AND here's a screencap of my data file containing the file in question just to show it is actually in there...

{"name":"610929","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/e\/5efc7be4391c354efd3575094a6abdd6.jpg","w":1065,"h":562,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/e\/5efc7be4391c354efd3575094a6abdd6"}610929

And let me repeat, this all worked with the last build you did. Nothing has changed because I am done working on this game. Repeat this out loud to yourself before you reply. ;)

The PNG did load, even with that warning, as the "Loading..." characters are in a PNG. That MAY be due to a driver change (removed old, updated a new, perhaps a profile changed with my video? But this shouldn't appear as the game will run on many different systems) but I can't see what the problem with the OGG audio file failing to load is. That is inside a ZIP file and uses Physfs to load it.

Edgar Reynaldo

Neil,

I tested a modified ex_physfs.c that loaded an ogg file from ex_physfs.zip that I also modified to include air_0.ogg, which loaded and played correctly.

Attach your Pill.ogg file so I can test it, and debug why it's not loading.

Edgar

PS
As to needing libjpeg, perhaps I linked to the dynamic jpeg library accidentally when building the static version. There are a lot of options in there I might have missed one.

Neil Roy

Actually, if you download my game, the "Deluxe Pacman 2.pak" file is just a ZIP file renamed. You can open it using 7zip (what I use) or whatever and check out any of the files you wish. Nothing has changed in it. The last time I touched this project was when I compiled it for the newer version of Allegro you built. I added some level files, but that is not related to the game code, just edited and added more levels to the ZIP (PAK) file.

The current Deluxe Pacman 2 game online is from your last Allegro 5 build.

Edgar Reynaldo

Neil,

Not sure what's up with your Pill.ogg file not loading. I added it to a zip file and loaded it successfully from within and played it. Sounds like a water drop. I also loaded and played it directly from your .pak file after renaming it to pacman.zip .

If I can't reproduce your problem on my machine I can't debug it. Can you make a debugging build of your Deluxe Pacman 2 game?

Neil Roy

I attached a debug build I just did.

I tried loading straight from the file folder itself, outside of the zip, but this time around that didn't work either. So it isn't physfs this time. I tried loading other OGG files I have and they also failed.

Edgar Reynaldo

Neil, I get all kinds of warnings from your debug build, but it loads and plays the first two levels successfully without crashing or error.

I can also load and play .ogg files after extracting them from your .pak file using ex_audio_simple.

Does ex_audio_simple work for you to play ogg files?

What about ex_physfs? Does that correctly output the contents of your .pak file?

Like I said, it doesn't crash for me. Something's different.

Neil Roy

UPDATE!!: I just browsed through the Allegro.log that was generated and found this...

acodec   I E:\LIBS\LIBS71Build\allegro\addons\acodec\ogg.c:204  _al_load_ogg_vorbis              [   4.09710] Loading sample Sound/Pill.ogg.
system   W E:\LIBS\LIBS71Build\allegro\src\win\wsystem.c:775  _al_win_safe_load_library        [   4.09828] PathFindOnPath failed to find libvorbisfile-3.dll
acodec   W E:\LIBS\LIBS71Build\allegro\addons\acodec\ogg.c:97   init_dynlib                      [   4.09833] Could not load libvorbisfile-3.dll

Considering this is a static build, I would say the fact that this is looking for a DLL is the problem.

You see, on my system, NONE of the DLLs are EVER in my path unless my project uses them. This way my projects will never run if a DLL is needed and it is a static build. It helps me find problems. You need to remove the DLLs from your path as this is probably why these are running for you okay.

UPDATE2: I just tested my game again, this time with the DLLs requested in the path and it ran just fine. The following DLLs were needed for my game...

libogg-0.dll
libvorbis-0.dll
libvorbisfile-3.dll

I looked over everything again, I don't see the problem so I put together my source code, Code::Blocks project file etc... into a 7Zip and threw it up on Dropbox. I tested it and it compiled up with the same problems. Anyhow, I sent you a private message with the link to it. I haven't been coding much of anything lately, and definitely not this game, so... I am stumped. As I said, the last build you made worked fine.

Edit: Updated the dropbox zip with a corrected CBP file.

Does ex_audio_simple work for you to play ogg files?

Sorry I didn't test this right away, but no, it just flickers a window on my screen briefly and exits. Be nice to see an error message window.

Quote:

What about ex_physfs? Does that correctly output the contents of your .pak file?

It appears to, but it scrolls by really fast then exits before I can see, no error message. :-/

Edgar Reynaldo

I fixed my static libraries (they depended on a few dlls). Here's the new upload :

https://bitbucket.org/bugsquasher/unofficial-allegro-5-binaries/downloads/Allegro522_MinGW71v2.7z

Neil Roy

Yay! Compiled and worked like a charm. Thanks again. :)

Edgar Reynaldo

Thanks Neil for testing. ;)

Neil Roy
Quote:

Thanks Neil for testing. ;)

No problem.

Arthur Kalliokoski

Gee, thanks Edgar! An extra slice of raisin pie for you! Don't know when I'll try these though.

Edgar Reynaldo

Nice to see you Commander. ;)

All you have to do is run the .bat file and it will put the dlls on the path and give you a command prompt to run the examples.

Arthur Kalliokoski

All you have to do is run the .bat file and it will put the dlls on the path and give you a command prompt to run the examples.

OK, thanks again! I'll have to wait until I have the initiative to move a good mobo out of a slimline case into an older fullsize case so I'll have the room to use a decent video card and power supply again though.

Thread #616935. Printed from Allegro.cc