English Amiga Board


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

 
 
Thread Tools
Old 18 April 2020, 14:58   #21
StingRay
move.l #$c0ff33,throat
 
StingRay's Avatar
 
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,863
Quote:
I also downloaded the demo version of the ReSource
You can find the full 6.06 version including manual on my webspace: http://stingray.untergrund.net/resource/

Quote:
I also started to think about Winuae debugger, that could be a valuable tool?
It is quite a powerful tool which, unfortunately, is a bit hard to use for a beginner.

Quote:
The main game file is in the Zone now (fred).
I had a quick look and if you disassemble the binary using ReSource you'll even get meaningful label names as debug symols are still present in the code. I'd recommend trying to create a patch using the Kickstart 1.3 emulation code first as you'd need to write code to emulate AllocMem if you want to do it without Kickstart emulation.
StingRay is offline  
Old 18 April 2020, 18:19   #22
emuola
Registered Whdload user
 
emuola's Avatar
 
Join Date: Oct 2006
Location: Finland
Age: 48
Posts: 532
Quote:
Originally Posted by StingRay View Post
You can find the full 6.06 version including manual on my webspace: http://stingray.untergrund.net/resource/



It is quite a powerful tool which, unfortunately, is a bit hard to use for a beginner.



I had a quick look and if you disassemble the binary using ReSource you'll even get meaningful label names as debug symols are still present in the code. I'd recommend trying to create a patch using the Kickstart 1.3 emulation code first as you'd need to write code to emulate AllocMem if you want to do it without Kickstart emulation.
Col, thanks I'll Start with the manual
emuola is offline  
Old 18 April 2020, 18:51   #23
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,162
WinUAE debugger is very good. If you can use a cartridge (action replay or such) you'll have no issues. And even copy paste of addresses instead of copying them (wrong) on paper

Note that addresses in memory will be different from the ones in the executable.

If the code has only one code segment (the easiest), you can write the segment start in $100.W at startup, then when debugging in memory if you have address $45600 for instance, and there's $21000 in base ($100), then subtract and at offset $24600 of your executable you'll find the same code.
jotd is offline  
Old 21 April 2020, 08:47   #24
emuola
Registered Whdload user
 
emuola's Avatar
 
Join Date: Oct 2006
Location: Finland
Age: 48
Posts: 532
Ok, started digging around the code with ReSource and also the WinUAE debugger. I think I'm onto something, but I'll report a bit later
emuola is offline  
Old 24 April 2020, 17:56   #25
Leander
Registered User
 
Join Date: Apr 2016
Location: Catania
Posts: 85
Thumbs up

Quote:
Originally Posted by jotd View Post
If you're patching an installable game (with executable), modifying a generic kick slave may do the trick. Sometimes you just need to add some assigns.
Really interesting tip, thanks but the big question is: how can i add these assings, and where i have to add them? I need this thing for ADOS games in two or more floppies: sometimes labels must be assigned to the copied contents of the floppies, otherwise the game will not start, but GenericKick slave doesn't use a startup sequence but only the CUSTOM parameter in the slave tooltype, a parameter that unfortunately does not seem to recognize scripts but only real Amiga executable files, so any suggest to bypass this limit would be highly appreciated
Leander is offline  
Old 24 April 2020, 18:14   #26
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,162
okay. Define

DOSASSIGN

then declare

assign
dc.b "df0",0

and in _bootdos just add:

Code:
	;assigns
		lea	assign(pc),a0
		sub.l	a1,a1
		bsr	_dos_assign
This assigns game file root dir to "df0:". Repeat for all other assigns. If you need a subdir as target, LEA it in a1.

Check Moktar whdload source code for a full example for instance.
jotd is offline  
Old 25 April 2020, 20:28   #27
Leander
Registered User
 
Join Date: Apr 2016
Location: Catania
Posts: 85
Thumbs up

Quote:
Originally Posted by jotd View Post
okay. Define

DOSASSIGN

then declare

assign
dc.b "df0",0

and in _bootdos just add:

Code:
	;assigns
		lea	assign(pc),a0
		sub.l	a1,a1
		bsr	_dos_assign
This assigns game file root dir to "df0:". Repeat for all other assigns. If you need a subdir as target, LEA it in a1.

Check Moktar whdload source code for a full example for instance.
Thanks for this little tutorial, really appreciated!
Just downloaded Motkar source code, and for apply this to generic kick13 slave i suppose to put above code into GenericKick13HD.asm, but (you could find my question stupid but i don't know) how can i simply compile this source code into slave file? Again, thanks for yor help and patience!
Leander is offline  
Old 25 April 2020, 21:01   #28
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,162
yes. And putting DF0 in generic slave doesn't hurt. To compile a slave you need a whdload dev environment. On PC put whdload include files somewhere and download vasm.

The command line is something like:

Code:
vasmm68k_mot -Iyour_whdload_dir/include -Isystem_headers -devpac -nosym -Fhunkexe -o GenericKick.slave GenericKick.asm
your_whdload_dir/include should contain whdload.i and also possibly kick13.s/kickfs.s all available in whdload developper package.

You also need "system_headers" directory containing the amiga .i files else you can't use Amiga OS calls.
jotd is offline  
Old 25 April 2020, 21:18   #29
Leander
Registered User
 
Join Date: Apr 2016
Location: Catania
Posts: 85
Quote:
Originally Posted by jotd View Post
yes. And putting DF0 in generic slave doesn't hurt. To compile a slave you need a whdload dev environment. On PC put whdload include files somewhere and download vasm.

The command line is something like:

Code:
vasmm68k_mot -Iyour_whdload_dir/include -Isystem_headers -devpac -nosym -Fhunkexe -o GenericKick.slave GenericKick.asm
your_whdload_dir/include should contain whdload.i and also possibly kick13.s/kickfs.s all available in whdload developper package.

You also need "system_headers" directory containing the amiga .i files else you can't use Amiga OS calls.
Ok thanks for detailed and clear info, i will try and report you my results and (hoping few) issues, my first working whd generic slave game version will be uploaded on The Zone!
Leander is offline  
Old 26 April 2020, 00:32   #30
Leander
Registered User
 
Join Date: Apr 2016
Location: Catania
Posts: 85
Quote:
Originally Posted by jotd View Post
You also need "system_headers" directory containing the amiga .i files else you can't use Amiga OS calls.
I see some .i files inside src folder on Whdload dev package (cpu.i, devices.i, dosio.i and so on), are these the files that I have to put in the folder "system_headers"?
Leander is offline  
Old 26 April 2020, 01:07   #31
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,162
no, system headers are ... classic amiga system headers: http://eab.abime.net/showthread.php?t=79916
jotd is offline  
Old 26 April 2020, 09:59   #32
Leander
Registered User
 
Join Date: Apr 2016
Location: Catania
Posts: 85
Stick out tongue

Quote:
Originally Posted by jotd View Post
no, system headers are ... classic amiga system headers: http://eab.abime.net/showthread.php?t=79916
Ok thanks, just downloaded them but inside Include_I folder there are a ton of subfolders (one for each i files category), i have to include all of these or only a specific ones?
Sorry for my multiple questions but i'm noob about amiga programming, please have patience with me
Leander is offline  
Old 26 April 2020, 10:09   #33
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,162
just extract all files, keep tree intact, and use -Iyour_I_master_dir. Includes usually go like "include dos/dos.i" so if you're including the directory containing "dos" directory it's okay.

Once you have your dev env ready, you'll be able to create simple slaves or even change complex ones to add features like trainers, etc.

Noone is expecting that you create a MFM game installation with crack, trainer, joypad support, 680x0 & cpu timing & blitter fix next week
jotd is offline  
Old 26 April 2020, 10:31   #34
Leander
Registered User
 
Join Date: Apr 2016
Location: Catania
Posts: 85
Happy

Quote:
Originally Posted by jotd View Post
just extract all files, keep tree intact, and use -Iyour_I_master_dir. Includes usually go like "include dos/dos.i" so if you're including the directory containing "dos" directory it's okay.

Once you have your dev env ready, you'll be able to create simple slaves or even change complex ones to add features like trainers, etc.

Noone is expecting that you create a MFM game installation with crack, trainer, joypad support, 680x0 & cpu timing & blitter fix next week
LOL, thanks for info and comprension
It could be great if i will learn at least skills to create a slave for NDOS games that miss it (for example recent games like Little Princess and so on), but for now i have to fly down, step by step beginning from the simplest like the one above..Again, thanks and i will report you my results
Leander is offline  
Old 26 April 2020, 10:39   #35
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,162
Of course I cannot recommend a game to work on where the work is simple (else it would already had been done ).

You can check source code of some simple unprotected games, like Qwak for instance (my first hd install in 1995)

MFM/NDOS are trickier because the loading routines need reverse engineering. There are standard loading routines which are very widespread: Rob Northen loader is widely used for maybe hundreds of games. Once you located such a file/track based routine and you know where and what it loads, it's easy.

With an emulator, run the floppy, break at start of loading routine, break after it, and check what zone has been changed, and relate it to the parameters that were passed / the data on the disk files. You can for instance dump the (chip) memory before and after and use a compare utility.
jotd is offline  
Old 28 December 2021, 18:59   #36
sir_leon
Registered User
 
Join Date: Sep 2020
Location: Italy
Posts: 10
Hello everyone, in case there are games for which a slave has not yet been made, how can I do to make it?

They are all games that start from the workbench by clicking on the relative icon or automatically from the disk (DOS disks).

Where can I find a full tutorial?

Obviously I have already searched the net but I have not found anything useful unfortunately.

Some of the unsupported games are:
Dylan Dog and Diabolik series by Simulmondo
Extasy by Trecision
Etc
sir_leon is offline  
Old 28 December 2021, 19:16   #37
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,162
... please read the start of the post that's a good start.
jotd is offline  
Old 29 December 2021, 10:40   #38
sir_leon
Registered User
 
Join Date: Sep 2020
Location: Italy
Posts: 10
Yes, surely this post was inspiring and useful.
I'll start from here to try to figure out if I can go it alone.
Unfortunately there are many games of the Italian scene that have never been ported to WHDLoad, and it's a real shame because they have a great historical value (at least here in Italy).

Just a few questions:
- GenericKick doesn't need to be builded again with every game right? Is it enough to set the CUSTOM parameter?

- what is the difference between GenericKick13 and GenericKick13HD? Does the ToolTypes have to be configured in the same way? (I can't get it to read s / startup-sequence)
sir_leon is offline  
Old 29 December 2021, 13:57   #39
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,162
good questions! will try to answer later
jotd is offline  
Old 29 December 2021, 18:49   #40
Aardvark
Registered User
 
Join Date: Jan 2019
Location: Finland
Posts: 634
You can use Workbench slaves if you want it to process s/startup-sequence http://www.whdload.de/apps/Workbench13.html
Aardvark 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
Help with creating Slave (for Journey to the center of the earth). puppe project.WHDLoad 8 16 January 2016 21:53
Creating an empty hdf file Harko33 support.WinUAE 1 25 September 2011 23:46
WinUAE WHDLoad Install Problem Kitty project.WHDLoad 97 29 September 2009 04:16
whdload game install problem Unregistered New to Emulation or Amiga scene 4 23 September 2005 22:38
problem install games using whdload Unregistered New to Emulation or Amiga scene 2 16 December 2004 11:17

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 06:09.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.12174 seconds with 14 queries