Gamebase 64 Forum
| View previous topic :: View next topic |
| Author |
Message |
K.C. Cool Member

Joined: 29 Sep 2003 Posts: 362 GB64-Points: 364 Location: The Netherlands
|
Posted: Thu Jan 07, 2010 8:13 pm Post subject: |
|
|
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. |
|
| Back to top |
|
 |
Jimbo Cool Member

Joined: 16 Nov 2004 Posts: 226 GB64-Points: 226
|
Posted: Thu Jan 07, 2010 10:58 pm Post subject: |
|
|
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...
| Quote: | | It would be handy if I could use GEMUS environment variables in key=value pairs. |
Done!
| Quote: | | 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.
| Quote: | | 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.
| Quote: | | 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?
| Quote: | | 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.
| Quote: | | 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!
| Quote: | | 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.
| Quote: | | 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! |
|
| Back to top |
|
 |
K.C. Cool Member

Joined: 29 Sep 2003 Posts: 362 GB64-Points: 364 Location: The Netherlands
|
Posted: Fri Jan 08, 2010 7:47 am Post subject: |
|
|
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: | [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. |
|
| Back to top |
|
 |
Jimbo Cool Member

Joined: 16 Nov 2004 Posts: 226 GB64-Points: 226
|
Posted: Fri Jan 08, 2010 7:58 am Post subject: |
|
|
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. |
|
| Back to top |
|
 |
ldaneels Keen Member

Joined: 10 Sep 2003 Posts: 100 GB64-Points: 100
|
Posted: Fri Jan 08, 2010 9:47 am Post subject: |
|
|
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 |
|
| Back to top |
|
 |
Jimbo Cool Member

Joined: 16 Nov 2004 Posts: 226 GB64-Points: 226
|
Posted: Sun Jan 10, 2010 11:54 am Post subject: |
|
|
- 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... |
|
| Back to top |
|
 |
.mad. Outstanding Member


Joined: 19 Jun 2005 Posts: 997 GB64-Points: 2777 Location: Lancashire, England
|
Posted: Sun Jan 10, 2010 1:24 pm Post subject: |
|
|
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.  |
|
| Back to top |
|
 |
hardmanm Cool Member

Joined: 05 Jul 2006 Posts: 419 GB64-Points: 419 Location: Lancashire, England
|
Posted: Mon Jan 11, 2010 7:54 am Post subject: |
|
|
Will a new Beta be released soon? _________________ Gamebase Developer of:
AcornMania, AmstradMania, Atari800, Apple II, SpeccyMania, GamebaseBBC, Gamebase Electron, Apple2GS, Sam Coupe, Gamebase GX4000, Memotech MTX, NEC PC98, Fujitsu FM-7 and Sharp X1. |
|
| Back to top |
|
 |
Jimbo Cool Member

Joined: 16 Nov 2004 Posts: 226 GB64-Points: 226
|
Posted: Mon Jan 11, 2010 8:04 am Post subject: |
|
|
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 |
|
| Back to top |
|
 |
Jimbo Cool Member

Joined: 16 Nov 2004 Posts: 226 GB64-Points: 226
|
Posted: Mon Jan 11, 2010 8:09 am Post subject: |
|
|
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  |
|
| Back to top |
|
 |
Mayhem GB64 Team

Joined: 08 Sep 2003 Posts: 705 GB64-Points: 705 Location: Londonish
|
Posted: Mon Jan 11, 2010 12:22 pm Post subject: |
|
|
| 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... |
|
| Back to top |
|
 |
Jimbo Cool Member

Joined: 16 Nov 2004 Posts: 226 GB64-Points: 226
|
Posted: Mon Jan 11, 2010 12:36 pm Post subject: |
|
|
| 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. |
|
| Back to top |
|
 |
K.C. Cool Member

Joined: 29 Sep 2003 Posts: 362 GB64-Points: 364 Location: The Netherlands
|
Posted: Tue Jan 12, 2010 8:48 am Post subject: |
|
|
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 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: | 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: | If %testvar_value% NOT CONTAINS (*text*)
Show_Message(testvar doesn't contain the word text!)
EndIf |
|
|
| Back to top |
|
 |
Jimbo Cool Member

Joined: 16 Nov 2004 Posts: 226 GB64-Points: 226
|
Posted: Tue Jan 12, 2010 7:09 pm Post subject: |
|
|
I added an EXCLUDES function, instead of NOT CONTAINS, as it was easier
Will look at the Yes/No/Unknown thing!
bye! |
|
| Back to top |
|
 |
K.C. Cool Member

Joined: 29 Sep 2003 Posts: 362 GB64-Points: 364 Location: The Netherlands
|
Posted: Tue Jan 12, 2010 8:51 pm Post subject: |
|
|
| Jimbo wrote: | Just looking at the relative paths thing and came across this code in the global GetPathInfo() function: -
| Code: | '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! |
|
| Back to top |
|
 |
|
|
Cannot post new topics Cannot reply to topics Cannot edit your posts Cannot delete your posts Cannot vote in polls in this forum
|
Powered by phpBB © phpBB Group
|
|
|