GodLib

Speaking with the gods about their latest releases or various subjects

Moderators: Moderator Team, Reservoir Gods

Post Reply
User avatar
sh3-rg
Captain Atari
Captain Atari
Posts: 438
Joined: Thu May 08, 2003 1:33 pm
Location: bolton - england
Contact:

GodLib

Post by sh3-rg »

A guy quoted pink's PM on Atari Age so I thought I'd post the link here, too:
pinkie wrote:I've started to put the latest version of GodLib and a bunch of example code onto GitHub. You can find the code here:

https://github.com/ReservoirGods

CiH
Atari God
Atari God
Posts: 1150
Joined: Wed Feb 11, 2004 4:34 pm
Location: Middle Earth (Npton) UK
Contact:

Re: GodLib

Post by CiH »

Cheers to you both!

Good to hear Monsieur Pink is still gently simmering in the background.
"Where teh feck is teh Hash key on this Mac?!"

User avatar
calimero
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2324
Joined: Thu Sep 15, 2005 10:01 am
Location: STara Pazova, Serbia
Contact:

Re: GodLib

Post by calimero »

nice :)

I remember long time ago that I asked Mr.Pink for library that he use for Reservoir Gods games.

Back in days, I was working on Centipede clone for Falcon (I just made some graphics) and I needed starting point for game (in programming sense). Since all Reservoir Gods was very polished I assume that Mr. Pink have proven library for games :) and I was right. Unfortunately my project fell apart due 'lack of time' and life :( but it is nice to see that other peoples are interested in GodLib!
using Atari since 1986.http://wet.atari.orghttp://milan.kovac.cc/atari/software/ ・ Atari Falcon030/CT63/SV ・ Atari STe ・ Atari Mega4/MegaFile30/SM124 ・ Amiga 1200/PPC ・ Amiga 500 ・ C64 ・ ZX Spectrum ・ RPi ・ MagiC! ・ MiNT 1.18 ・ OS X

tat
Atariator
Atariator
Posts: 17
Joined: Wed Nov 12, 2014 10:07 am
Contact:

Re: GodLib

Post by tat »

CiH wrote:Cheers to you both!

Good to hear Monsieur Pink is still gently simmering in the background.
I managed to catch up with Pink in March in San Francisco (at Games Developers Conference). He seems well :)

Steve

User avatar
lotek_style
Mod(ul)erator
Mod(ul)erator
Posts: 2479
Joined: Sat May 11, 2002 2:39 pm
Location: germany
Contact:

Re: GodLib

Post by lotek_style »

Oh wow and even Mr. Tattersall is still alive :)
lotek style / the sirius cybernetics corporation
- musician - ascii-artist - swapper - archivist -

.tSCc. - low-tech atari cyberpunks since 1990
http://www.tscc.de/ | http://demozoo.org/ | http://www.lotekstyle.de/ | http://ymrockerz.atari.org/

CiH
Atari God
Atari God
Posts: 1150
Joined: Wed Feb 11, 2004 4:34 pm
Location: Middle Earth (Npton) UK
Contact:

Re: GodLib

Post by CiH »

I managed to catch up with Pink in March in San Francisco (at Games Developers Conference). He seems well :)
The even rarer Mr Tattersall, can be found in hedgerows and things... 8)
"Where teh feck is teh Hash key on this Mac?!"

tat
Atariator
Atariator
Posts: 17
Joined: Wed Nov 12, 2014 10:07 am
Contact:

Re: GodLib

Post by tat »

CiH wrote:The even rarer Mr Tattersall, can be found in hedgerows and things... 8)
That was never proved, officer. :angel:

Anyway, Pink seemed in rude health and very busy, as anyone who works for Ubisoft can expect to be.

User avatar
Anima
Atari Super Hero
Atari Super Hero
Posts: 693
Joined: Fri Mar 06, 2009 9:43 am
Contact:

Re: GodLib

Post by Anima »

I will not miss the opportunity to say hi to tat as well. :D

tat
Atariator
Atariator
Posts: 17
Joined: Wed Nov 12, 2014 10:07 am
Contact:

Re: GodLib

Post by tat »

Anima wrote:I will not miss the opportunity to say hi to tat as well. :D
Hello Anima! Your sprite routine looks very nice.

(Thread derailment now complete -- sorry!)

CiH
Atari God
Atari God
Posts: 1150
Joined: Wed Feb 11, 2004 4:34 pm
Location: Middle Earth (Npton) UK
Contact:

Re: GodLib

Post by CiH »

Hello Anima! Your sprite routine looks very nice.
Those would be the "Who inserted a state of the art Japanese console in my Falcon?!" routines. :cheers:
(Thread derailment now complete -- sorry!)
No need to apologise!
"Where teh feck is teh Hash key on this Mac?!"

tschak909
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 138
Joined: Mon Mar 26, 2018 9:29 pm

Re: GodLib

Post by tschak909 »

Is it possible to use godlib with m68k-atari-mint-gcc ?

-Thom

MegatronUK
Atariator
Atariator
Posts: 23
Joined: Fri Jan 04, 2019 11:11 am

Re: GodLib

Post by MegatronUK »

tschak909 wrote:Is it possible to use godlib with m68k-atari-mint-gcc ?

-Thom
I'd also like to know this. I've tried compiling godlib.a using m68-atari-mint-gcc (both 4.6.4 and 8.2.0) and it's a bit of a pain just getting things into a point where all of the hardcoded uppercase filenames work. I've updated GODLIB.MAK into a slightly more standard layout too.

Of course all of the standard library references are to uppercase header names as well: <STDIO.H>, for example, which isn't the case for gcc based compilers.

I'll struggle on getting it to state where make and gcc don't complain about the filenames, then it's a case of debugging the actual code, since I'm guessing this won't have had a pass through gcc in some time.

simonsunnyboy
Moderator
Moderator
Posts: 5225
Joined: Wed Oct 23, 2002 4:36 pm
Location: Friedrichshafen, Germany
Contact:

Re: GodLib

Post by simonsunnyboy »

The assembler files need lots of interface changes. They all use Pure C calling convention using registers while GCC needs the classic stack based parameter passing.

I once started it and then decided it was not worth the time for me.
Simon Sunnyboy/Paradize - http://paradize.atari.org/

Stay cool, stay Atari!

1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

MegatronUK
Atariator
Atariator
Posts: 23
Joined: Fri Jan 04, 2019 11:11 am

Re: GodLib

Post by MegatronUK »

First pass through looks like there's a lot to fix:

- References to system headers are all uppercase: <STDIO.H> and not <stdio.h>
- A mix of directory separators; some include paths use <GODLIB/DIR/HEADER.H>, whereas some use <GODLIB\DIR\HEADER.H>

Those system headers I'm finding I'm wrapping in an #ifdef so that a compile-time flag can use the new gcc system headers (in lowercase), or revert to Pure-C or whatever other standard C library headers if left undefined. e.g.

Code: Select all

#ifdef HEADERS_LOWER
#include <stdio.h>
#else
#include <STDIO.H>
#endif
I'm standardising all the <GODLIB\DIR\HEADER.H> references as I come to them with forward slashes.

Outside of that, gcc generates huge amounts of warnings for the code - it successfully generates about 4-5 object files, but blows up half way through the ASSETS/ directory:

Code: Select all

m68k-atari-mint-gcc -c -Wall -g -Os -I/usr/m68k-atari-mint/include -DHEADERS_LOWER -DdGODLIB_PLATFORM_ATARI -DdGODLIB_COMPILER_GCC ACHIEVE/ACH_DISP.C -o ACHIEVE/ACH_DISP.o
ACHIEVE/ACH_DISP.C: In function 'void Achieve_Display_ScoreTable_Render()':
ACHIEVE/ACH_DISP.C:277:105: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'S32 {aka int}' [-Wformat]
ACHIEVE/ACH_DISP.C:299:35: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'U32 {aka unsigned int}' [-Wformat]
ACHIEVE/ACH_DISP.C: In function 'void Achieve_Display_Stats_Render()':
ACHIEVE/ACH_DISP.C:465:35: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'U32 {aka unsigned int}' [-Wformat]
m68k-atari-mint-gcc -c -Wall -g -Os -I/usr/m68k-atari-mint/include -DHEADERS_LOWER -DdGODLIB_PLATFORM_ATARI -DdGODLIB_COMPILER_GCC ACHIEVE/ACH_GFX.C -o ACHIEVE/ACH_GFX.o
m68k-atari-mint-gcc -c -Wall -g -Os -I/usr/m68k-atari-mint/include -DHEADERS_LOWER -DdGODLIB_PLATFORM_ATARI -DdGODLIB_COMPILER_GCC ACHIEVE/ACH_GOD.C -o ACHIEVE/ACH_GOD.o
m68k-atari-mint-gcc -c -Wall -g -Os -I/usr/m68k-atari-mint/include -DHEADERS_LOWER -DdGODLIB_PLATFORM_ATARI -DdGODLIB_COMPILER_GCC ACHIEVE/ACH_LOGN.C -o ACHIEVE/ACH_LOGN.o
m68k-atari-mint-gcc -c -Wall -g -Os -I/usr/m68k-atari-mint/include -DHEADERS_LOWER -DdGODLIB_PLATFORM_ATARI -DdGODLIB_COMPILER_GCC ACHIEVE/ACH_MAIN.C -o ACHIEVE/ACH_MAIN.o
ACHIEVE/ACH_MAIN.C: In function 'void Achieve_Delocate(sAchieveHeader*)':
ACHIEVE/ACH_MAIN.C:1217:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1224:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1225:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1226:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1229:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1246:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1247:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1248:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1253:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1259:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1262:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1263:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1264:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C: In function 'U8 Achieve_Relocate(sAchieveHeader*)':
ACHIEVE/ACH_MAIN.C:1328:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1329:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1330:4: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1334:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1335:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1336:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1349:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1354:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1363:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1364:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1365:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1366:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
ACHIEVE/ACH_MAIN.C:1371:6: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
m68k-atari-mint-gcc -c -Wall -g -Os -I/usr/m68k-atari-mint/include -DHEADERS_LOWER -DdGODLIB_PLATFORM_ATARI -DdGODLIB_COMPILER_GCC ACHIEVE/ACH_SHOW.C -o ACHIEVE/ACH_SHOW.o
ACHIEVE/ACH_SHOW.C:112:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
ACHIEVE/ACH_SHOW.C:112:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
ACHIEVE/ACH_SHOW.C: In function 'void Achieve_Show_ButtonRender(sGraphicCanvas*, sGraphicPos*, U16)':
ACHIEVE/ACH_SHOW.C:648:64: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'U32 {aka unsigned int}' [-Wformat]
ACHIEVE/ACH_SHOW.C: In function 'void Achieve_Show_TaskPointsDraw(sGraphicCanvas*, U16)':
ACHIEVE/ACH_SHOW.C:695:71: warning: format '%ld' expects argument of type 'long int', but argument 4 has type 'U32 {aka unsigned int}' [-Wformat]
m68k-atari-mint-gcc -c -Wall -g -Os -I/usr/m68k-atari-mint/include -DHEADERS_LOWER -DdGODLIB_PLATFORM_ATARI -DdGODLIB_COMPILER_GCC ACHIEVE/ACH_SIGN.C -o ACHIEVE/ACH_SIGN.o
ACHIEVE/ACH_SIGN.C:197:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
ACHIEVE/ACH_SIGN.C:197:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
m68k-atari-mint-gcc -c -Wall -g -Os -I/usr/m68k-atari-mint/include -DHEADERS_LOWER -DdGODLIB_PLATFORM_ATARI -DdGODLIB_COMPILER_GCC ACHIEVE/ACH_UNLK.C -o ACHIEVE/ACH_UNLK.o
m68k-atari-mint-gcc -c -Wall -g -Os -I/usr/m68k-atari-mint/include -DHEADERS_LOWER -DdGODLIB_PLATFORM_ATARI -DdGODLIB_COMPILER_GCC ASSERT/ASSERT.C -o ASSERT/ASSERT.o
m68k-atari-mint-gcc -c -Wall -g -Os -I/usr/m68k-atari-mint/include -DHEADERS_LOWER -DdGODLIB_PLATFORM_ATARI -DdGODLIB_COMPILER_GCC ASSET/ASSET.C -o ASSET/ASSET.o
m68k-atari-mint-gcc -c -Wall -g -Os -I/usr/m68k-atari-mint/include -DHEADERS_LOWER -DdGODLIB_PLATFORM_ATARI -DdGODLIB_COMPILER_GCC ASSET/CONTEXT.C -o ASSET/CONTEXT.o
ASSET/CONTEXT.C: In function 'void Context_AssetClient_Remove(sAssetClient*)':
ASSET/CONTEXT.C:118:92: error: invalid conversion from 'void*' to 'const sContext*' [-fpermissive]
ASSET/CONTEXT.C:73:22: error:   initializing argument 1 of 'sAssetClient* Context_AssetClient_Find(const sContext*, U32)' [-fpermissive]
Makefile.godlib:148: recipe for target 'ASSET/CONTEXT.o' failed
make: *** [ASSET/CONTEXT.o] Error 1
Looks like it could be a long slog to get all objects to build on a modern version of the cross compiler.

MegatronUK
Atariator
Atariator
Posts: 23
Joined: Fri Jan 04, 2019 11:11 am

Re: GodLib

Post by MegatronUK »

simonsunnyboy wrote:The assembler files need lots of interface changes. They all use Pure C calling convention using registers while GCC needs the classic stack based parameter passing.

I once started it and then decided it was not worth the time for me.
Bah, that's beyond what I'm willing to do. I'll look at some other method of getting stuff on to the screen!

Post Reply

Return to “Reservoir Gods”