And another feature request!
The Verify Available Files checks if all needed files can be found and generates a text file with all files it needs, but are not found at the locations where they need to be.
Can this be expanded with an option to look for redundant files?
In a collection there could be too many game images, screenshots, or extras that are not accessed from any database entry.
They can be removed to keep the directories clean, but there isn't an easy way to find them.
Welcome to the Gamebase 64 forums. An attempt to document ALL Commodore 64 gameware before it's too late!
New GB version coming... feature requests, anyone?
Moderator: Jimbo
- Jimbo
- GB64 Team
Post
As briefly mentioned before, I've added a way to import your favourites and other personal info from another database (e.g. a previous version of GB64): -

Other updates...
Basically you create a folder in your DB folder called "Gemus", putting in there text files containing key=value pairs: -
C:\GameBase\GameBase Amiga\Gemus\_global.txt
C:\GameBase\GameBase Amiga\Gemus\kick12.txt
C:\GameBase\GameBase Amiga\Gemus\kick13.txt
C:\GameBase\GameBase Amiga\Gemus\kick20.txt
C:\GameBase\GameBase Amiga\Gemus\mouse.txt
the _global.txt file is read into the Gemus script first, then the per-game ones are interpreted, looking for any sets to load: -
mem=512
kvset=kick20
kvset=mouse
foo=%gamepath%
Wherever a key called "kvset" is found in the per-game pairs, it will be replaced with those in the respective "set" file in your \Gemus folder. (the amiga values above are just examples to show you that you can group related key=values now in sets.)
At the moment, there is no UI in GameBase for the global/set key=value pairs, you have to create the files yourself.
hindsight is a wonderful thing!
ciao!

Other updates...
Done!It would be handy if I could use GEMUS environment variables in key=value pairs.
I've gone one better: You can now have global key=value pairs, and also create "sets". per-game key=values overwrite a set's key=values, which overwrite the global ones.Request: Global key=value pairs!
Basically you create a folder in your DB folder called "Gemus", putting in there text files containing key=value pairs: -
C:\GameBase\GameBase Amiga\Gemus\_global.txt
C:\GameBase\GameBase Amiga\Gemus\kick12.txt
C:\GameBase\GameBase Amiga\Gemus\kick13.txt
C:\GameBase\GameBase Amiga\Gemus\kick20.txt
C:\GameBase\GameBase Amiga\Gemus\mouse.txt
the _global.txt file is read into the Gemus script first, then the per-game ones are interpreted, looking for any sets to load: -
mem=512
kvset=kick20
kvset=mouse
foo=%gamepath%
Wherever a key called "kvset" is found in the per-game pairs, it will be replaced with those in the respective "set" file in your \Gemus folder. (the amiga values above are just examples to show you that you can group related key=values now in sets.)
At the moment, there is no UI in GameBase for the global/set key=value pairs, you have to create the files yourself.
Yes this would be nice, I'll see what I've got time for. Might not make 1.3 tho.A sub title for the games would be nice.
Another good idea. How would it be stored/displayed though? As a percentage? as a 5-star rating? a 10-star rating?A review rating field to aggregate review scores from magazines in addition to the rating field in the personal tab.
These "multiple" field type requests would mean a lot of fundamental changes to the frontend which will take lots of time and even more testing - not something I'm keen on doing right now, but maybe in a future version.Possibility to have multiple control types in the games tab. Possibility to have multiple programmers / musicians / graphic artist. That would allow to filter by unique artists instead of just one big clump of artists.
Again, this needs a complete overhaul, with ONE ini setting per field - there's quite a few per field now, which is shit I knowAbility to rename the fields without messing around the INI files.

Hmm... does putting an empty value in not work? (I've not tried, that's off the top of my head). If it doesn't work I'm sure I can work something out.Aside from that, I have a small question about Gamebase. I use the GEMUS to modify a field (Autotype=) in the CPCE emulator INI. Is there a way to reset the value of Autotype to nothing (no value, symbol,...) ? If not, I would greatly appreciate if you added a way to do it.
Yeah I can see why this would be useful. I've added it to the list, but it might not make v1.3.The Verify Available Files checks if all needed files can be found and generates a text file with all files it needs, but are not found at the locations where they need to be. Can this be expanded with an option to look for redundant files?
ciao!
- K.C.
- Cool Member
- Location: The Netherlands
Post
The global key=value pairs and kvsets are a very welcome addition for me.
The way you implemented it should do the trick, but wouldn't it be better to store all kvsets in one file, for example kvsets.ini or kvsets.txt?
This file could be stored in the database folder itself (creating a subfolder is not needed) and could have the following contents:
In this example, section names could be interpreted as kvsets.
Storing the sets this way will make it look a bit more organized. Also I guess you could use a big part of the code you used for setting the paths for games and screenshots for creating a GUI, because it uses the same system: storing all games paths in a single text file, a new button for an extra path etc.
I'm not a (VB) programmer, so this is a wild guess.
I'm asking this right now, because I think it's not easy to change it after the way you implemented it is included in the official release.
Another request (does this ever end???):
Could you add a couple more environment variables in GEMUS?
I would like to see variables pointing to the paths you specified in the Gamebase paths section.
Variable names could be:
The only options I have now are:
The way you implemented it should do the trick, but wouldn't it be better to store all kvsets in one file, for example kvsets.ini or kvsets.txt?
This file could be stored in the database folder itself (creating a subfolder is not needed) and could have the following contents:
Code: Select all
[global]
; Comments about the Global settings
fullscreen=true
setting1=abc
setting2=123
Setting3=%emupath%
machine=svga_s3
[cgasystem]
; Comments about the CGA section
fullscreen=false
setting1=xyz
machine=cga
[hercsystem]
;Some comments
fullscreen=false
machine=hercules
setting2=456
Storing the sets this way will make it look a bit more organized. Also I guess you could use a big part of the code you used for setting the paths for games and screenshots for creating a GUI, because it uses the same system: storing all games paths in a single text file, a new button for an extra path etc.
I'm not a (VB) programmer, so this is a wild guess.
I'm asking this right now, because I think it's not easy to change it after the way you implemented it is included in the official release.
Another request (does this ever end???):
Could you add a couple more environment variables in GEMUS?
I would like to see variables pointing to the paths you specified in the Gamebase paths section.
Variable names could be:
- storedgames(n)
storedmusic
storedpictures(n)
storedextras(n)
storedphotos
The only options I have now are:
- storing the ISO's under the Emulator folder (not very logical, and it would only work if you have one emulator), or
- storing them under the database folder, but for all my collections I want to keep the database folder clean and don't want to fill the Program Files folder with data.
- ldaneels
- Keen Member
Post
Hi there,
For the review aggregate field, percentages would be easier to handle (star ratings are easy to convert to percentages). As for the way to store it, I was thinking we can calculate the aggregate manually, but if there is a way to enter multiple review scores that can be calculated automatically, that would be awesome.
Gamebase shows an error message (invalid function parameter 4. Expected: VALUE) when you don't put anything for value. This is the line I am trying to set no value to :
Set_INI_Value(%emupath%\cpce.ini||CPCE||autotype|| )
This line has a space for a value while I would like to have:
Set_INI_Value(%emupath%\cpce.ini||CPCE||autotype||)
Thanks for your hard work,
Loic
For the review aggregate field, percentages would be easier to handle (star ratings are easy to convert to percentages). As for the way to store it, I was thinking we can calculate the aggregate manually, but if there is a way to enter multiple review scores that can be calculated automatically, that would be awesome.
Gamebase shows an error message (invalid function parameter 4. Expected: VALUE) when you don't put anything for value. This is the line I am trying to set no value to :
Set_INI_Value(%emupath%\cpce.ini||CPCE||autotype|| )
This line has a space for a value while I would like to have:
Set_INI_Value(%emupath%\cpce.ini||CPCE||autotype||)
Thanks for your hard work,
Loic
- Jimbo
- GB64 Team
Post
- Added the following new GEMUS environment vars:
%dbdriveletter%
%storedgames(n)%
%storedpictures(n)%
%storedextras(n)%
%storedmusic%
%storedphotos%
- Fixed GEMUS to allow empty values in key=value pairs, and in all Set_* functions.
- Changed the global/kvsets pairs to use single file (Gemus.ini) in database folder.
- @.mad... fixed that screenshot resizing bug!
more soon...
%dbdriveletter%
%storedgames(n)%
%storedpictures(n)%
%storedextras(n)%
%storedmusic%
%storedphotos%
- Fixed GEMUS to allow empty values in key=value pairs, and in all Set_* functions.
- Changed the global/kvsets pairs to use single file (Gemus.ini) in database folder.
- @.mad... fixed that screenshot resizing bug!
more soon...
- .mad.
- Honoured Member
- Location: Lancashire
Post
Thanks,
When using the personal settings / rating for each game.
if you select rating as classic, the game is then shown in a bold font.
would it be possible to use colours in these settings??
Red = poor
Blue = ok
Green = good
this option could then be used as a visual marker for certain games.
Missing Games in BLUE
Denied Games in RED
Need installing in GREEN
i know your very busy.
if it's easy for you to do, then it's a good idea.
When using the personal settings / rating for each game.
if you select rating as classic, the game is then shown in a bold font.
would it be possible to use colours in these settings??
Red = poor
Blue = ok
Green = good
this option could then be used as a visual marker for certain games.
Missing Games in BLUE
Denied Games in RED
Need installing in GREEN
i know your very busy.
if it's easy for you to do, then it's a good idea.

- Jimbo
- GB64 Team
Post
Ok, finally got Run_Emulator_Send_Keys() Gemus function working (thanks for the tip AAG).
Tested on WinVICE, works a charm. Works on DOS apps too: -
Run_Emulator_Send_Keys([5]HELLO{ENTER}[2]JIMBO||100)
The above will wait 5 seconds, then send "HELLO" keys and enter key, then wait 2 seconds, then send "JIMBO". It works with Function keys etc, and shift/alt/control combos work.
The ||100 param is the duration to hold each key down, in milliseconds. Some apps (e.g. WinVICE) seem to ignore the keypresses if they aren't held down for long enough - its as if they are too quick that they don't get registered. That's the reason for this param. I found that 100ms worked best. Just be careful with this param - if you specify a long duration, key-repeat may come into effect (it did for me at 400ms).
@.mad.... Nice idea for the colours, but the listbox in VB can't do that by default so its a lot of work to implement it - I won't be doing that just yet.
Cheers
Tested on WinVICE, works a charm. Works on DOS apps too: -
Run_Emulator_Send_Keys([5]HELLO{ENTER}[2]JIMBO||100)
The above will wait 5 seconds, then send "HELLO" keys and enter key, then wait 2 seconds, then send "JIMBO". It works with Function keys etc, and shift/alt/control combos work.
The ||100 param is the duration to hold each key down, in milliseconds. Some apps (e.g. WinVICE) seem to ignore the keypresses if they aren't held down for long enough - its as if they are too quick that they don't get registered. That's the reason for this param. I found that 100ms worked best. Just be careful with this param - if you specify a long duration, key-repeat may come into effect (it did for me at 400ms).
@.mad.... Nice idea for the colours, but the listbox in VB can't do that by default so its a lot of work to implement it - I won't be doing that just yet.
Cheers
- Jimbo
- GB64 Team
Post
A new beta will be released as soon as I have done: -
- rezip using 7-zip
- sort option for custom views
- add game as copy of existing game
I also have to keep my wife happy, so I imagine it will be a week or two yet!
It will also take longer the more features you guys keep giving me
- rezip using 7-zip
- sort option for custom views
- add game as copy of existing game
I also have to keep my wife happy, so I imagine it will be a week or two yet!
It will also take longer the more features you guys keep giving me

- Mayhem
- GB64 Team
- Contact:
- Location: Londonish
Post
I heartily agree with this feature suggestion... it was a pain in the rear trying to find and remove all the superfluous files for the release of GB20... want to make sure I got them all...K.C. wrote:Can this be expanded with an option to look for redundant files?
Lie with passion and be forever damned...
- K.C.
- Cool Member
- Location: The Netherlands
Post
With the list of changes in mind, I don't think this is not going to be version 1.3, I would surely name it Gamebase 2.0!
A few small questions:

A few small questions:
- A lot of Yes/No fields have been changed to Yes/No/Unknown.
Is there a way to check for Unknown in GEMUS? - In GEMUS you can check if a variable contains some text, but is there also a way to check if it DOESN'T contain a (sub)string?
The only workaround I know is this one:It works, but it would be more elegant if this code would work also:Code: Select all
If %testvar_value% CONTAINS (*text*) Else Show_Message(testvar doesn't contain the word text!) EndIf
Code: Select all
If %testvar_value% NOT CONTAINS (*text*) Show_Message(testvar doesn't contain the word text!) EndIf
- K.C.
- Cool Member
- Location: The Netherlands
Post
As far as I can see it, this code looks if the second character of the path is a colon ( : ) to determine if a path is absolute or relative.
But what if games, screenshots, extras or photos are stored on a shared network drive?
For example \\NAS\Emulation\Gamebase\C64\Games is an absolute path, but hasn't a colon at the second position. So it seems that it is treated as a relative path.
If I've not misunderstood this code, it should at least check if the path starts with a double backslash ( \\ ) to determine if a UNC path is specified.
I couldn't test this, so excuse me if this isn't correct...
Thanks again for all the great improvements!
I'm not affected by this and I'm not a VB programmer, so if I misinterpret this code, don't blame me for that please.Jimbo wrote:Just looking at the relative paths thing and came across this code in the global GetPathInfo() function: -
Code: Select all
'convert relative path to absolute If Mid$(.strRealPath, 2, 1) <> ":" Then .strRealPath = g_strAppPathWithBackslash & .strRealPath iLen = Len(.strRealPath) 'let filesystem convert relative path to qualified directory name (remove "..", etc.) If g_xobjFunc.DirExists(.strRealPath) = True Then .strRealPath = CurDir() End If End If
As far as I can see it, this code looks if the second character of the path is a colon ( : ) to determine if a path is absolute or relative.
But what if games, screenshots, extras or photos are stored on a shared network drive?
For example \\NAS\Emulation\Gamebase\C64\Games is an absolute path, but hasn't a colon at the second position. So it seems that it is treated as a relative path.
If I've not misunderstood this code, it should at least check if the path starts with a double backslash ( \\ ) to determine if a UNC path is specified.
I couldn't test this, so excuse me if this isn't correct...
Thanks again for all the great improvements!
Return to “The GameBase Frontend”
Who is online
Users browsing this forum: No registered users and 4 guests