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?

Discuss GameBase, the Universal Emulator Frontend!

Moderator: Jimbo

User avatar
K.C.
Cool Member
Cool Member
Location: The Netherlands
Posts: 416
Joined: Mon Sep 29, 2003 9:57 am

Thu Jan 07, 2010 8:13 pm

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.
Jimbo
GB64 Team
Posts: 256
Joined: Tue Nov 16, 2004 3:50 pm

Thu Jan 07, 2010 10:58 pm

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): -

Image

Other updates...
It would be handy if I could use GEMUS environment variables in key=value pairs.
Done!
Request: Global 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.

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.
A sub title for the games would be nice.
Yes this would be nice, I'll see what I've got time for. Might not make 1.3 tho.
A review rating field to aggregate review scores from magazines in addition to the rating field in the personal tab.
Another good idea. How would it be stored/displayed though? As a percentage? as a 5-star rating? a 10-star rating?
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.
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.
Ability to rename the fields without messing around the INI files.
Again, this needs a complete overhaul, with ONE ini setting per field - there's quite a few per field now, which is shit I know ;) hindsight is a wonderful thing!
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.
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.
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?
Yeah I can see why this would be useful. I've added it to the list, but it might not make v1.3.

ciao!
User avatar
K.C.
Cool Member
Cool Member
Location: The Netherlands
Posts: 416
Joined: Mon Sep 29, 2003 9:57 am

Fri Jan 08, 2010 7:47 am

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:

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
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:
  • storedgames(n)
    storedmusic
    storedpictures(n)
    storedextras(n)
    storedphotos
Reason I ask is that I want to be able to start a zipped game and mounting a CD ISO file that is stored outside the ZIP file (would take too long to extract and eventually rezip it).
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.
Using %gamesstore(1)%\ISOs in a GEMUS script, I could point to a subfolder at the location where my games collection is stored.
Jimbo
GB64 Team
Posts: 256
Joined: Tue Nov 16, 2004 3:50 pm

Fri Jan 08, 2010 7:58 am

Hi

Yes it should be quite easy to change the kvsets to use a single ini file in the database folder.

I'll add those ether environment variables too.
ldaneels
Keen Member
Keen Member
Posts: 106
Joined: Wed Sep 10, 2003 3:30 pm

Fri Jan 08, 2010 9:47 am

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
Jimbo
GB64 Team
Posts: 256
Joined: Tue Nov 16, 2004 3:50 pm

Sun Jan 10, 2010 11:54 am

- 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...
User avatar
.mad.
Honoured Member
Honoured Member
Location: Lancashire
Posts: 2354
Joined: Sun Jun 19, 2005 3:30 pm

Sun Jan 10, 2010 1:24 pm

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. :wink:
hardmanm
Cool Member
Cool Member
Location: Lancashire, England
Posts: 455
Joined: Wed Jul 05, 2006 8:03 am

Mon Jan 11, 2010 7:54 am

Will a new Beta be released soon?
Gamebase Developer
Jimbo
GB64 Team
Posts: 256
Joined: Tue Nov 16, 2004 3:50 pm

Mon Jan 11, 2010 8:04 am

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
Jimbo
GB64 Team
Posts: 256
Joined: Tue Nov 16, 2004 3:50 pm

Mon Jan 11, 2010 8:09 am

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 ;)
User avatar
Mayhem
GB64 Team
Contact:
Location: Londonish
Posts: 824
Joined: Mon Sep 08, 2003 7:44 am

Mon Jan 11, 2010 12:22 pm

K.C. wrote:Can this be expanded with an option to look for redundant files?
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...
Lie with passion and be forever damned...
Jimbo
GB64 Team
Posts: 256
Joined: Tue Nov 16, 2004 3:50 pm

Mon Jan 11, 2010 12:36 pm

Michael Plate just reminded me that years ago I wrote a tool for the GB64 team that does exactly this but only for screenshots. Since I found the sourcecode for it, I think I'll amend it to also check for games/music/extras/photos too, and then release that.
User avatar
K.C.
Cool Member
Cool Member
Location: The Netherlands
Posts: 416
Joined: Mon Sep 29, 2003 9:57 am

Tue Jan 12, 2010 8:48 am

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! :D

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:

    Code: Select all

    If %testvar_value% CONTAINS (*text*)
    Else
            Show_Message(testvar doesn't contain the word text!)
    EndIf
    It works, but it would be more elegant if this code would work also:

    Code: Select all

    If %testvar_value% NOT CONTAINS (*text*)
            Show_Message(testvar doesn't contain the word text!)
    EndIf
Jimbo
GB64 Team
Posts: 256
Joined: Tue Nov 16, 2004 3:50 pm

Tue Jan 12, 2010 7:09 pm

I added an EXCLUDES function, instead of NOT CONTAINS, as it was easier :)

Will look at the Yes/No/Unknown thing!

bye!
User avatar
K.C.
Cool Member
Cool Member
Location: The Netherlands
Posts: 416
Joined: Mon Sep 29, 2003 9:57 am

Tue Jan 12, 2010 8:51 pm

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
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.

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 6 guests