![]() |
![]() |
#1 |
Registered User
Join Date: Jan 2009
Location: london
Posts: 12
|
Some Gemus Fields not being set
Sorry for the boring post, enourmous respect for everyone here!
Lately i've been more and more drawn to Amiga, only to find I think i've always had this problem with my Gamebase setup (why oh why didn't I spot this and fix it years ago!) and I just can't figure it out, so I need one of you to be kind enough to try and help..... Gamebase Amiga 1.6 - I'm mainly using WHDLoad with a WHDLoad.uae in my "Gamebase Amiga" directory. When I load a WHD game, I can see that my WHDLoad.uae is modified each time, and SOME of the values from my, mostly sensible looking, WinUAE Emulator GEMUS script, are being copied across, but some are being set to some other value. For instance, let's load Alien Breed 3D, whose Key-value fields in the Gamebase database are thus: Code:
kickstart_rom=v3.1 A1200 nr_floppies=2 floppy0type=0 floppy1type=0 floppy2type=-1 floppy3type=-1 immediate_blits=true ntsc=false chipset=AGA collision_level=playfields fastmem_size=4 bogomem_size=0 chipmem_size=4 cpu_speed=max finegrain_cpu_speed=max cpu_type=68020 cpu_compatible=false cpu_cycle_exact=false blitter_cycle_exact=false statefile=savestates\Alien Breed 3D (AGA).uss now here's an example of one value that works fine, and one that doesn't: my GEMUS Script contains these two lines: Code:
Set_CFG_Value(%dbpath%\WHDLoad.uae||immediate_blits||%immediate_blits_value%) Set_CFG_Value(%dbpath%\WHDLoad.uae||cpu_speed||%cpu_speed_value%) BEFORE: Code:
immediate_blits=false cpu_speed=real AFTER: Code:
immediate_blits=false cpu_speed=max Code:
immediate_blits= cpu_speed=real Code:
immediate_blits=false cpu_speed=max I also often get the variable name being written back in, so with this game if before I have Code:
cpu_type= Code:
cpu_type=%cpu_type_value% but the fields which DO get written in correctly, suggest that the settings are following the game, for instance above we really do need the speed set to max for obvious reasons! And the hard-disk data values are always written correctly: the game always loads, its just that things are always wrong... So, if in my WHDLoad.uae, before running Alien Breed 3D, I blank all the values for the gemus key-value pairs (ie: those I posted for Alien Breed 3D above from the db), what I get in my WHDLoad.uae after running the game up is the following: Kickstart_rom - stays blank immediate_blits = gets wrong boolean ntsc - gets set correctly chipset - stays blank collision_level - gets set correctly fastmem_size - stays blank bogomem_size - stays blank chipmem_size - stays blank cpu_speed - gets set correctly finegrain_cpu_speec - gets wrong value '512' cpu_type - gets set to literally %cpu_type_value% cpu_compatible - gets wrong boolean cpu_cycle_exact - gets set correctly blitter_cycle_exact - gets set correctly the blanks are expected, because below you see there's no command in the gemus script to change them in the WHDLoad file (thing is i'm not sure why, surely the script should be changing all relevant fields from each game in the database for both of the .uae files? I haven't altered the script, I got it from here somewhere ie: the 'official' WHDLoad Gamebase setup files from some years ago....) Can't see any syntax errors, errant spaces, or anything else that could be causing some fields to get odd values I haven't noticed any problems like this in any of my other gamebases Please help (btw I know 1.6 is out of date, I know upgrading might fix my issue, but I have reasons to want to fix this in situ atm, should that be possible....) thanks in advance. My gemus script included now: Code:
If Control = JoyPort1 Set_CFG_Value(%dbpath%\GameBase Amiga.uae||joyport0||kbd2) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||joyport1||kbd3) Set_CFG_Value(%dbpath%\WHDLoad.uae||joyport0||kbd2) Set_CFG_Value(%dbpath%\WHDLoad.uae||joyport1||kbd3) Else Set_CFG_Value(%dbpath%\GameBase Amiga.uae||joyport0||mouse1) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||joyport1||kbd2) Set_CFG_Value(%dbpath%\WHDLoad.uae||joyport0||mouse1) Set_CFG_Value(%dbpath%\WHDLoad.uae||joyport1||kbd2) End If Set_CFG_Value(%dbpath%\GameBase Amiga.uae||kickstart_rom||%kickstart_rom_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||floppy1type||%floppy1type_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||floppy2type||%floppy2type_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||floppy3type||%floppy3type_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||nr_floppies||%nr_floppies_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||sound_output||%sound_output_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||immediate_blits||%immediate_blits_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||ntsc||%ntsc_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||chipset||%chipset_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||chipset_compatible||%chipset_compatible_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||collision_level||%collision_level_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||fastmem_size||%fastmem_size_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||bogomem_size||%bogomem_size_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||chipmem_size||%chipmem_size_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||cpu_speed||%cpu_speed_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||finegrain_cpu_speed||%finegrain_cpu_speed_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||cpu_type||%cpu_type_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||cpu_model||%cpu_type_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||fpu_model||%fpu_model_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||cpu_compatible||%cpu_compatible_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||fpu_strict||%fpu_strict_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||cpu_24bit_addressing||%cpu_24bit_addressing_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||cpu_cycle_exact||%cpu_cycle_exact_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||blitter_cycle_exact||%blitter_cycle_exact_value%) Set_CFG_Value(%dbpath%\GameBase Amiga.uae||statefile||%statefile_value%) If VersionComment CONTAINS(WHD) Set_CFG_Item(%dbpath%\WHDLoad.uae||filesystem2=rw,DH0:DH0||:||%dbpath%\whd,0) Set_CFG_Item(%dbpath%\WHDLoad.uae||filesystem=rw,DH0||:||%dbpath\whd) Set_CFG_Item(%dbpath%\WHDLoad.uae||filesystem2=rw,DH1:DH1||:||%gbgamepath%\rezip\%gamefilenoext%,0) Set_CFG_Item(%dbpath%\WHDLoad.uae||filesystem=rw,DH1||:||%gbgamepath%\rezip\%gamefilenoext%) Set_CFG_Item(%dbpath%\WHD\s\user-startup||cd||||%cd_value%) Set_CFG_Item(%dbpath%\WHD\s\user-startup||whdload||||%whdload_value%) Set_CFG_Value(%dbpath%\WHDLoad.uae||immediate_blits||%immediate_blits_value%) Set_CFG_Value(%dbpath%\WHDLoad.uae||chipset_compatible||%chipset_compatible_value%) Set_CFG_Value(%dbpath%\WHDLoad.uae||collision_level||%collision_level_value%) Set_CFG_Value(%dbpath%\WHDLoad.uae||z3mem_size||%z3mem_size_value%) Set_CFG_Value(%dbpath%\WHDLoad.uae||cpu_speed||%cpu_speed_value%) Set_CFG_Value(%dbpath%\WHDLoad.uae||finegrain_cpu_speed||%finegrain_cpu_speed_value%) Set_CFG_Value(%dbpath%\WHDLoad.uae||cpu_type||%cpu_type_value%) Set_CFG_Value(%dbpath%\WHDLoad.uae||fpu_model||%fpu_model_value%) Set_CFG_Value(%dbpath%\WHDLoad.uae||cpu_compatible||%cpu_compatible_value%) Set_CFG_Value(%dbpath%\WHDLoad.uae||fpu_strict||%fpu_strict_value%) Set_CFG_Value(%dbpath%\WHDLoad.uae||cpu_24bit_addressing||%cpu_24bit_addressing_value%) Set_CFG_Value(%dbpath%\WHDLoad.uae||cpu_cycle_exact||%cpu_cycle_exact_value%) Set_CFG_Value(%dbpath%\WHDLoad.uae||blitter_cycle_exact||%blitter_cycle_exact_value%) Run_Program(%dbpath%\whdrun.exe||%gamepathfile% %gbgamepath%\rezip\%gamefilenoext%/ "%emupath%\winuae64.exe" "%dbpath%\WHDLoad.uae" "%dbpath%\WHD\s\user-startup||nowait) If PalNTSC = NTSC Set_CFG_Value(%dbpath%\WHDLoad.uae||ntsc||true) Else Set_CFG_Value(%dbpath%\WHDLoad.uae||ntsc||false) End If Else Add_CLP(-f "%dbpath%\GameBase Amiga.uae" -0%gamepathfile% -1%gamepathfile(1)% -2%gamepathfile(2)% -3%gamepathfile(3)% -s diskimage0=%gamepathfile% -s diskimage1=%gamepathfile(1)% -s diskimage2=%gamepathfile(2)% -s diskimage3=%gamepathfile(3)% -s diskimage4=%gamepathfile(4)% -s diskimage5=%gamepathfile(5)% -s diskimage6=%gamepathfile(6)% -s diskimage7=%gamepathfile(7)% -s diskimage8=%gamepathfile(8)% -s diskimage9=%gamepathfile(9)% -s diskimage10=%gamepathfile(10)% -s diskimage11=%gamepathfile(11)% -s diskimage12=%gamepathfile(12)% -s diskimage13=%gamepathfile(13)% -s diskimage14=%gamepathfile(14)% -s diskimage15=%gamepathfile(15)% -s diskimage16=%gamepathfile(16)% -s diskimage17=%gamepathfile(17)% -s diskimage18=%gamepathfile(18)% -s diskimage19=%gamepathfile(19)%) Run_Emulator() End If Last edited by butter100fly; 01 February 2020 at 21:01. Reason: spaces |
![]() |
![]() |
#2 | |
Registered User
Join Date: Nov 2014
Location: Italy
Posts: 2,525
|
Quote:
Gemus for WHD version of Alien Breed 3D is this: Code:
cd=dh1:AlienBreed3DAGAFixed; whdload=AlienBreed3DAGAFixed.slave PRELOAD; collision_level=playfields cpu_speed=max finegrain_cpu_speed=512 immediate_blits=false cpu_compatible=false cpu_cycle_exact=false blitter_cycle_exact=false Last edited by Seiya; 30 January 2020 at 12:21. Reason: more information |
|
![]() |
![]() |
#3 |
Registered User
Join Date: Jan 2009
Location: london
Posts: 12
|
aha!
{right click on game} -> extras -> (double click) WHDLoad -> Gemus Fields/Use These Fields/(click) Edit -> Keys & Values Got you thank you so much! The first step is always the greatest: to be assured that you aren't seeing something impossible! So some external process is causing the same variable name in a single gemus-emulator config file, to lead to two different values depending on context Code:
Set_CFG_Value(%dbpath%\GameBase Amiga.uae||cpu_type||%cpu_type_value%) Set_CFG_Value(%dbpath%\WHDLoad.uae||cpu_type||%cpu_type_value%) ![]() So, if you would please, what options do I have/is this still a current problem for people? In particular the lack of cpu_type/cpu_model in (seemingly any?) WHDLoad Gemus config, means that a lot of games run wrong, because uae sees the value in the config file it was passed over command line (literally '%cpu_type_value%') is invalid, so it defaults to whatever its previous setting was. So even if, say, we make a gemus script that first sets a sensible highest-common-denominator default for cpu_type (which, of course, still isn't the right thing to do in many circumstances), and THEN sets the value from the WHDLoad Gemus k-v pairs, that will STILL get the value in WHDLoad.uae overridden with (literally) '%cpu_type%' in the cases where the value doesn't exist in the WHDLoad Gemus K-Vs (I guess in this instance we're missing an IF (%cpu_type_value%) { Set_CFG_Value(%dbpath%\WHDLoad.uae||cpu_type||%cpu_type_value%) } but then which cpu_type_value would we be referring to in the IF - the one for floppy or the one for whd?!!!!) Irrespective: in particular, something is making games run much to fast for me when run as WHD, but run fine as Floppy games, I assume this is some combo of cpu_type, chipset and speed, but i can't quite track it down....what would people advise I do to get me out of this situation? I probably require contextualising...Thanks again Last edited by butter100fly; 01 February 2020 at 21:05. |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
gamebase noob needs basic tutorial for gemus scripts | kirk | project.GameBase Amiga | 1 | 14 April 2009 21:26 |
Problems with GB Amiga -GEMUS Emulator Setup Wizard, etc... | Port_H | project.GameBase Amiga | 17 | 22 September 2008 13:52 |
What happened to Magnetic Fields | T.R.Schmidt | Nostalgia & memories | 0 | 25 November 2002 21:52 |
Tracks&Fields | cosmiq | request.Apps | 3 | 09 April 2002 09:53 |
|
|