English Amiga Board


Go Back   English Amiga Board > Other Projects > project.MAGE

 
 
Thread Tools
Old 30 January 2020, 11:44   #1
butter100fly
Registered User

butter100fly's Avatar
 
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%)
If I compare my WHDLoad.uae before and after loading this game:

BEFORE:
Code:
immediate_blits=false
cpu_speed=real

AFTER:
Code:
immediate_blits=false
cpu_speed=max
BUT a clue to what's actually happening, if before it says:

Code:
immediate_blits=
cpu_speed=real
I get the same 'after' as before:

Code:
immediate_blits=false
cpu_speed=max
so immediate_blits has had the wrong value written in, somehow. Obviously this isn't happening with just this value in this game, its happening all over the place, ruining everything....

I also often get the variable name being written back in, so with this game if before I have

Code:
cpu_type=
after running, I will get:

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 22:01. Reason: spaces
butter100fly is offline  
Old 30 January 2020, 13:18   #2
Seiya
Registered User

Seiya's Avatar
 
Join Date: Nov 2014
Location: Italy
Posts: 1,172
Quote:
Originally Posted by butter100fly View Post
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
this is the gemus for Floppy game.

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
so, if you run WHD game these entries are the same "before" and "after" in Whdload.uae

Last edited by Seiya; 30 January 2020 at 13:21. Reason: more information
Seiya is offline  
Old 31 January 2020, 10:21   #3
butter100fly
Registered User

butter100fly's Avatar
 
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%)
what's doing that? (that's worth a code comment )

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 22:05.
butter100fly is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
gamebase noob needs basic tutorial for gemus scripts kirk project.MAGE 1 14 April 2009 22:26
Problems with GB Amiga -GEMUS Emulator Setup Wizard, etc... Port_H project.MAGE 17 22 September 2008 14:52
What happened to Magnetic Fields T.R.Schmidt Nostalgia & memories 0 25 November 2002 22:52
Tracks&Fields cosmiq request.Apps 3 09 April 2002 10:53

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 05:11.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, vBulletin Solutions Inc.
Page generated in 0.07597 seconds with 15 queries