GL4ES: Round 2

Date 3-Jul-2019 18:14:28
Topic: software OS4


Today there is few more releases which builded with usage of GL4ES wrapper which mean to give us OpenGL1.x , 2.x and some of 3.x over ogles2.library and warp3dnova.

Introduction...:

For make those games works you need as necessary minimum ogles2.library v2.8 , and warp3dnova.library v1.65. Those requirements are 100% necessary.
You can get them from latest Enhancer Software update v1.5, or via from Updater. If you will have anything lower than requested, you will have bugs, crushes and errors.
So before making any bugreport later, be sure that you have those versions at minimum. And if you sure, then anyway recheck again that you have it installed :)

Of course it is understandable that you also should have modern gfx card, with latest radeonHD drivers.

Everything is compiled via gcc 8.2.0, latest SDL2 with necessary fixes to make it rendered through ogles2.library and GL4ES.

At this time there is 2 new titles and one update, all of them can be downloaded from os4depot. At moment they all in upload query. All the videos and screenshots below taken from my x5k/aos4fe.


Foobillard++...:



That one are complex OpenGL game that uses cascaded display list, line stipple, TexGen and co. Previously we have some old MiniGL port of pure Foobillard (not ++), which is slow and buggy.
New ++ version also can be build over MiniGL with some small changes, but its so slow even on x5k that it not worth of try. See the FPS numbers in 1024x768 on my x5k.

minigl 2.21: ~10fps
ogles2 2.8: ~60fps

Port based on the latest, v3.42beta, stable source release and original code of the game was quite buggy, so it take some time to fix those bugs (thanks to Georg & Daniel).
I also had to rewrite SDL1 to SDL2 and fix some endian issues. There is full list of changes of v1 release:

-- added SDL2 support via --enable-sdl2. This port builds over SDL2.
-- gl4es is used for OpenGL (so ogles2/warp3dnova)
-- amigaos4 pathes, stack cookie
-- builded with gcc 8.2.0 and enabled LTO.
-- added big-endian changes in place where loading of ball_ball.raw happens and it expected to be in LE format
-- when you choice in menu "manual", "game_history" or "touranment_history" Odyssey is used, but you can change it to any browser you need (or by changing config file, or by changing ViewOptions/Browser in menu).
-- running of external commands (such as browser) done via aos4's IDOS->SystemTags() in Async mode (thanks to Salas00 for code which works when run game and from shell and from wb icon)
-- original game's code bug: in billard3d.c/load_config() forgotten fclose(), because of which save_config() on exit didn't works
-- original game's code bug: in sound_stuff.c/strsound() there was some typo from author strcpy(s,&s[strlen(s)-4]) , while should be strcpy(s,&s1[strlen(s1)-4]), which cause heavy memory issues in end (c) Daytona
-- original game's code bug: parent_entry in the menu_new() wasn't initialized, which cause crashes later in some situation in the menu_choose(); visually it just crashes when you choice some of menus (c) Georg
-- original game's code bug: when blitting menu entries, sometime blitting happens outside of left bounds and thus trashing memory and cause heap corruption, which in end lead to crash on free(textdata) later (c) Georg
-- original game's code bug: initially checking on minimum screenmode was wrong and thus skip some modes which can fits.



Youtube video, full HD 1920x1080: https://youtu.be/hQVabA_ReoQ

Actual code with all the AmigaOS4 and other changes listed below can be found at https://github.com/kas1e/FoobillardPlusPlus

If you find any bug , plz report it on the same page there: https://github.com/kas1e/FoobillardPlusPlus/issues/new


Neverball/Neverputt 1.6.0...:




Previously we have some older 1.5.4 version of neverball games compiled over minigl, but it's quite dated and as usuall for minigl : slow. The new version use SDL2, latest PhysFS, and
compiled over gl4es (so ogles2/warp3dnova) , which give us quite boost in the speed in compare with 1.5.4 version. Have a look at those FPS numbers (be sure you have ogles2 2.8 and w3dnova 1.65):


minigl neverball 1.5.4 level1 1024x768: 27 FPS
gl4es neverball 1.6.0 level1 1024x768: 75 FPS

minigl neverputt 1.5.4 level1 1024x768: 60 FPS
gl4es neverputt 1.6.0 level1 1024x768: 285 FPS

The minigl version of 1.6.0 probabaly possible only after some code changes (and maybe in MiniGL itself as well): at least from brief tests when i tried to compile 1.6.0 version for minigl,
it just crashed in some minigl functions, so it can be that minigl no more fits in.




Youtube, full HD 1920x1080: https://youtu.be/TSug2SePrSs


Friking shark update...:





Friking shark was released before, but some bugs since then was fixed as well as some new functionality added:

-- fixed iconification support
-- enabled FPS counter code (press "f4" in game), ogles2.library 2.8 minimum or you will have crashes.
-- rebuilt with enabled LTO
-- by default start in window mode (to swith back to fullscreen change in Resources/Scripts/GameGUI.cfg , fullscreen=0 to fullscreen=1)


Youtube, full HD 1920x1080: https://youtu.be/eA9txj_P38I

Final notes

Thanks to Daniel for OpenGL ES2 and all his help with everything : http://www.goldencode.de/
Thanks to Hans for Warp3DNova and all his help with everything : https://keasigmadelta.com/
Thanks to AEON who actually pay developers (yes, unusual in amiga world) , so we have OpenGL ES2 and Warp3DNova.
Thanks to ptitSeb for GL4ES and all his help with everything : https://github.com/ptitSeb/gl4es/
Thanks to Capehill (and others) for actual SDL2 port and all his help with everything : https://github.com/AmigaPorts/SDL




This article comes from AmigaWorld - Amiga Community Portal
https://amigaworld.net

The URL for this story is:
https://amigaworld.net/article.php?storyid=8394