31 October 2021, 02:22 | #1 |
Registered User
Join Date: Jun 2020
Location: Germany
Posts: 370
|
Some WHDLoad questions
Hi, I was tinkering with some games which don't have a slave already (at least I couldn't find any). They are all on dos disks (or available as lha packages on Aminet), so I tried the generic slave and the Workbench slaves.
The first one doesn't really fits my needs because you have to specify the binary in the tooltypes. Although I have not tried to use a disk image and I would like to avoid those anyway. The Workbench 1.3 slave mostly works, but I have come across an issue that requires a bit more work to resolve. It is about when a game needs a certain disk name. I surely can add a line to the startup-sequence and, if needed, copy the assign binary. The default name of the disk is WHDLoad, and I was wondering if it would be possible to change that. Either in the source or maybe with a tooltype. Speaking of assign, there is the following line in the source code: Code:
;DOSASSIGN ;enable _dos_assign routine And I would also like to know if it would be possible to set slv_name, slv_copy and slv_info by using tooltypes. So that it would be possible to create an even more generic slave which can be simply altered without the need to compile the source. |
31 October 2021, 05:38 | #2 |
Registered User
Join Date: Nov 2016
Location: France
Posts: 853
|
add assign in your startup-sequence in data/s
|
31 October 2021, 05:43 | #3 |
Registered User
Join Date: Jun 2020
Location: Germany
Posts: 370
|
Yeah, I mentioned that I could do that. But I wanted to know if there was a way to avoid that.
|
31 October 2021, 10:37 | #4 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,161
|
DOSASSIGN enables the code that allows assigns
Enabling DOSASSIGN alone does nothing. you have to add this code Code:
lea assign(pc),a0 sub.l a1,a1 bsr _dos_assign A1 is null: means you're assigning to root dir (data dir) |
31 October 2021, 12:15 | #5 |
Registered User
Join Date: Jun 2020
Location: Germany
Posts: 370
|
I'm still not getting it sorry. In your example what volume name is assigned to which dir?
I don't have much knowledge about coding anything. I'm more the copy/paste type of guy, but I don't even know where to start with this cryptic source. There is basically no telling off how/where a Directory /File is determined. Everything seems to be just be short (hex?) values. I mean, for example: How does the Workbench slave know that it should be reading the startup-sequence? It is just mentioned in a comment that one part is suppose to do that (at least that's how I understand it). I guess I'm just to stupid to understand this or can not find a better example which would help me. |
31 October 2021, 18:21 | #6 | ||
Moderator
Join Date: Nov 2001
Location: Germany
Posts: 866
|
Quote:
Code:
assign dc.b "volname",0 Quote:
There are many installs which include the source. There is also the whdload/src/sources/whdload/kick.readme in the dev package. |
||
31 October 2021, 21:13 | #7 | ||
Registered User
Join Date: Jun 2020
Location: Germany
Posts: 370
|
Quote:
Code:
lea (_name,pc),a0 sub.l a1,a1 bsr _dos_assign ... _name dc.b "DataDisk",0 But I couldn't see any difference when I un-/commented the DOSASSIGN line. Shouldn't SYS: have the name DataDisk in this case? Quote:
I actually was kinda surprised by that, because it was pretty easy to set up the dev environment with all the sources/includes/compiler and what not. But the code is something I can't figure out. |
||
31 October 2021, 21:42 | #8 | ||
Moderator
Join Date: Nov 2001
Location: Germany
Posts: 866
|
Quote:
Quote:
|
||
01 November 2021, 09:39 | #9 | ||
Registered User
Join Date: Jun 2020
Location: Germany
Posts: 370
|
Quote:
But that does not answer my initial question. Is it possible to define a name for the mounted drive? Quote:
I mean if it's OK, I can write a list of what I want to achieve and someone who knows that can tell me if it would work. I'm not expecting that someone writes such a slave. |
||
01 November 2021, 10:29 | #10 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,161
|
I suggest that you check various slaves using kickstart emulation, learn assembly, use a disassembler to understand executables & the way they are patched, read whdload documentation, practice assembly language, loops, tests, registers...
You can't learn all that stuff in 1 week. Not possible sorry. |
01 November 2021, 11:35 | #11 |
68k
Join Date: Sep 2005
Location: Somewhere
Posts: 828
|
Can you just post some example games, I should find time to patch at least one of them. Thanks.
|
01 November 2021, 17:42 | #12 |
Registered User
Join Date: Jun 2020
Location: Germany
Posts: 370
|
I understand that and I don't have a problem with it. But like I said, I would prefer it if I would know what even is possible with whdload. And since the couldn't find any slave/documentation about those things (I might have missed it or didn't understand that some bit of code does what I want), I thought asking would be fine.
I don't want to sound rude, but so far nobody has answered any of my questions/things I want to achieve from my first post. The discussion ended up talking about assigns which wasn't something I was looking for. At this point, I'm giving up because I must assume that it's just not possible. I appreciate the efforts to help. Thanks for the offer but that's not the point here. |
01 November 2021, 17:46 | #13 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,161
|
I think you imagine that a whdload asm file is a configuration file where you add/remove stuff. That's not it
That's a driver code to intercept the program at crucial points and redirect loading from ram. And you can also fix stuff at the same time You seem to see it as a config file, rather see it as a driver. |
01 November 2021, 19:27 | #14 |
Registered User
Join Date: Jun 2020
Location: Germany
Posts: 370
|
I was expecting there to be some sort of functions which can easily be shared between different slaves. Like for loading stuff either from a diskfile or use the data folder. Or to set a specific name for the mounted data folder.
My current target is/was not to patch anything in particular. I just wanted a simple(r) slave to start an 1.3/3.1 environment from a data folder. Plus some additional information if certain things could be done to make it even more generic and easy to use for others. For example, the wb 1.3 slave seems to work fine for games like Soul Crystal and Sim City Deluxe. The setup requires some manual work, like adding assigns for Soul Crystal, but they at least can run the games. People asked for slaves for those games. If it would be easier to set stuff like the name by using tooltypes for example (so that we don't end up with tons of workbench entries in iGame), maybe people would try such a slave beforehand and, I think, for a dev like you it would make things easier as well if people could tell you that something already works. But maybe you are fine to start over and over again for each game. Or you have an workflow which makes this already easy enough. |
01 November 2021, 20:05 | #15 |
Registered User
Join Date: Nov 2016
Location: France
Posts: 853
|
I put 2500 games in Generic WHDL on the FTP server
|
01 November 2021, 22:33 | #16 | ||||
Moderator
Join Date: Nov 2001
Location: Germany
Posts: 866
|
Quote:
Quote:
Quote:
Besides that you can use the wb13/31-slaves and build something using the startup-sequence. Quote:
Usually games also need fixes to make it work on all configs. Because of that a custom slave is the standard way. |
||||
01 November 2021, 23:54 | #17 | |
Registered User
Join Date: Jun 2020
Location: Germany
Posts: 370
|
Alright, so basically what I want is either not supported or requires extra work.
That was all I wanted to know. Maybe I will try to learn more but for now I don't have a reason. I can stop spending time looking for something that doesn't exists. Quote:
I have seen some tutorials but they all skip stuff for beginners. Like, use this code to load a binary directly or use this to use the startup-sequence, then continue by adding assigns with this and so on. Instead it's about making a disk image, use a disassembler and what not. |
|
02 November 2021, 10:30 | #18 |
This cat is no more
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,161
|
kickstart emulation slaves are specific (and sometimes easier because no or very little hardware banging, no disk image to create, and sometimes no disassembly)
doesn't generic kick assign DF0 ? in that case just duplicate those lines to assign something else. What would be cool would be a better generic kick with a config file where assigns and maybe some other stuff are configurable. |
02 November 2021, 11:04 | #19 | |
Moderator
Join Date: Nov 2001
Location: Germany
Posts: 866
|
Quote:
|
|
11 November 2021, 06:45 | #20 |
Registered User
Join Date: Jun 2020
Location: Germany
Posts: 370
|
I have another question.
Is there a way to quit whdload from within whdload? Like a command I could run manually or add to the startup-sequence of games which normally would quit to workbench. |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Some questions about WHDLoad | nittamituaki | support.Apps | 0 | 30 January 2016 01:48 |
Questions on WHDLOAD !!! | synchro | Amiga scene | 26 | 13 March 2013 11:29 |
WHDLoad questions.... | W4r3DeV1L | project.WHDLoad | 7 | 21 October 2008 11:55 |
WHDLoad noob questions | beanz | project.WHDLoad | 9 | 17 May 2008 12:58 |
WHDLoad questions | Flexinoodle | support.WinUAE | 3 | 03 January 2006 17:39 |
|
|