![]() |
![]() |
#41 | ||
2 contact me: email only!
Join Date: May 2001
Location: Auckland / New Zealand
Posts: 3,187
|
![]() Quote:
From my experience with hacking 300+ games, they all pretty much test for a block of 512k of extra memory, and if found will run and if not, will bail out. There are sod all that require 1Mb of chip and then an optional extra 512k or whatever. I'm sure all the other WHDLoad slave authors will back me up on this. Quote:
Anyway since I do not play sims (except F-18 Interceptor!) it sounds to me that the Dogfight slave itself is junk, so why doesn't someone just change/fix that rather than going through all the hassle of WHDLoad changes? Wepl's very busy, I'm sure does not want to risk breaking WHDLoad for this kind of feature unless there really is a lot of installs that will benefit from it, and I don't believer there is! |
||
![]() |
![]() |
#42 | ||
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,863
|
Quote:
Quote:
As it is now: chipmem size is defined in the header using dc.l chipmemsize Flexible allocation: have an additional longword in the header, if it's empty, nothing changes, if it contains a value than that is interpreted as offset to a routine which does nothing more than setting the chipmemsize! So, please, tell me, only Wepl knows how to do this? Now: _chipmemsize dc.l $80000 ; fixed, can't be changed at runtime my approach: _chipmemsize dc.l 0 _memroutine dc.l offset_to_memcfg_routine ; fills chipmemsize And that just has to be checked ONCE when the slave is started. There really is absolutely NOTHING complex here. And even though I am not Wepl I think I can say that as I actually thought about these things before posting them. Last edited by StingRay; 22 July 2007 at 01:13. |
||
![]() |
![]() |
#43 |
2 contact me: email only!
Join Date: May 2001
Location: Auckland / New Zealand
Posts: 3,187
|
I'm sure if it was a 1 minute change and was worth doing, Wepl would. I don't believe you have thought it all through though:
- New header files needed - Extra code to test for WHDLoad 17 specific flags - Code to handle slaves with bogus values in the new field - Possible change of tooltypes/prefs file - Check/adjust all the MMU/memory protection code - Heavy testing of a selection of slaves to make sure the existing 1000+ slaves still work - Docs changes for all the languages - Reissue all the user/dev WHDLoad packages - Website update (copy into history, other archive into older versions, news item etc) As you can see, this is no 5 minute fix. And I still think my 10 installs that use it wouldn't be too far off the mark. Demos are just the same as games, they usually want 512k chip, or 512k chip + 512k other mem. In fact I can't think of any demos off hand that even have multiple slaves for different memory configs! This whole argument is pointless anyway, Wepl is the boss, he said it wasn't worth doing, seems the majority of the WHDLoad guys agree so life goes on. |
![]() |
![]() |
#44 | ||
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,863
|
Quote:
- New header files needed Yes, but that I said right from the beginning! - Check/adjust all the MMU/memory protection code Why? Totally NOT needed! - Possible change of tooltypes/prefs file Why? Totally NOT needed! - Docs changes for all the languages Why? I am sure the developers of the slaves all understand english. And user documentation is not needed for a feature like that! - Heavy testing of a selection of slaves to make sure the existing 1000+ slaves still work - Website update (copy into history, other archive into older versions, news item etc) - Reissue all the user/dev WHDLoad packages Would have to be done for other changes too so it's irrelevant! Quote:
As said, I can live w/o that feature. But your reasons why it's not worth to have are just as pointless as this argument then. Also I DO know that this is not a "high priority" feature and Wepl most probably works on more important fixes/changes. However, that doesn't automatically mean this feature is useless! Last edited by StingRay; 22 July 2007 at 02:47. Reason: move.l #$4e714e71,typo ;) |
||
![]() |
![]() |
#45 | ||
Moderator
Join Date: Jan 2002
Location: France
Posts: 491
|
Quote:
![]() Quote:
![]() |
||
![]() |
![]() |
#46 | ||
Moderator
Join Date: Nov 2001
Location: Germany
Posts: 874
|
Quote:
Quote:
Did you ever wrote a Slave? Sorry, I dont remeber... |
||
![]() |
![]() |
#47 |
2 contact me: email only!
Join Date: May 2001
Location: Auckland / New Zealand
Posts: 3,187
|
Even if this feature was added to WHDLoad, I would not modify my existing installs. I think it's easier for the user to double click the correct icon to choose whether they want speech in Walker and Mortal Kombat 2 respectively.
Stingray: If Dogfight is so important as to warrant WHDLoad changes, why don't you make a single slave without the 16 versions or whatever it is? Maybe Dr Zarkov didn't know how much memory the game required exactly so just put all these questions when in reality it's probably a standard 1Mb game. |
![]() |
![]() |
#48 |
Lesser Talent
Join Date: Jan 2003
Location: UK
Age: 42
Posts: 7,957
|
Maybe I should have just kept my mouth shut....
![]() |
![]() |
![]() |
#49 |
Mostly Harmless
Join Date: Aug 2004
Location: Northern Ireland
Posts: 1,149
|
Wow, what a lot of discussion!
I guess this is academic as Wepl doesn't think it's worth the effort to implement anyway, but I have to comment. "You are all entitled to my opinion" in other words ![]() ![]() ![]() Firstly, Stingray and I were proposing different things I think. My suggestion was a way for the slave author to specify a list of choices of base/expmem configurations for WHDLoad to try to get at startup time. Instead of trying just the single config, it would try multiple ones in order of preference and fill in the header base/expmem fields with the first one that was successful. After that WHDLoad would continue as if the slave had been hardcoded with that configuration from the outset, so what's the big scary risk? It wouldn't need an extension to the slave header and I still don't see how it would need recompilation or retesting of existing slaves, alteration of the MMU code etc. Sure, it would need a documentation / web update, but it could have been released along with any WHDLoad point release when these things would have been done anyway. Secondly, IIRC this was proposed a looong time ago, before the optional expmem allocation was added to WHDLoad (I think that may have resulted from the discussion, but it was a long time ago and I don't recall exactly). But now that optional expmem allocation has been around for a long time, how difficult, risky or non-backwardly-compatible would it be really to add a form of optional basemem allocation as well in a similar manner? That's a rehtorical question really, but I don't understand what everyone is so worried about ![]() ![]() |
![]() |
![]() |
#50 |
2 contact me: email only!
Join Date: May 2001
Location: Auckland / New Zealand
Posts: 3,187
|
Girv: What actual benefit will you gain from what you have suggested?
If a game works with 512k chip and 512k other mem, the slave will have that memory config set in the slave anyway. If it needs 1Mb chip, it will have that as the requirement. Nobody has been able to name any software that will benefit from any of these changes therefore the whole argument is pointless. You could add hundreds of optional features to WHDLoad that will never be used by anyone, but what's the point? It'd be used about as much as a tooltype that forces you to click the left mouse button 50 times between loading each file. Psygore (the demo master) hasn't noticed any demos that will benefit from this, and the handful of games we have identified work perfectly fine with a couple of icons so why bother? If someone rewrote the Dogfight slave correctly I'm sure it would only need a single slave anyway, rendering this thread useless! Also I fail to see how you can implement all this multiple memory configs stuff without expanding the header or using up the reserved longword. How would you ask for 512k chip + 1Mb fast, or 1Mb chip and 512k fast mem without further fields? |
![]() |
![]() |
#51 | ||||
Mostly Harmless
Join Date: Aug 2004
Location: Northern Ireland
Posts: 1,149
|
Quote:
Quote:
The benefit is to do away with multiple slaves for alternate memory configurations, and the associated build and install script complexities. IMHO it's more elegant and less error prone to have this ability centralised in WHDLoad itself. Quote:
Quote:
There's also a few obsolete fields in the header as well, aren't there (not sarcasm, I can't look up the headers right now)? The new slave would break on old WHDLoads, but you'd have set the required version to higher than that anyway. But, working within the current header, what I'd maybe propose is to define some flags as special values for ws_basemem to identify which sizes of basemem the slave can utilise: 0.5, 1.0 or 2.0Mb (are there any others?) WHDLoad would try to allocate the sizes specified in decreasing size order and then store the actual size allocated back into ws_basemem for your slave code (and the rest of WHDLoad) to use. eg: WHDLMEM_BASE512: equ 1 WHDLMEM_BASE1024: equ 2 WHDLMEM_BASE2048: equ 4 OR these together as required. 1-7 are not valid basemem sizes so this style of usage can be easily and robustly detected. It's not as flexible as specifying the exact basemem size you require, but do you ever specify anything other than 0.5, 1.0 or 2.0Mb ? And by your own argument this would only be used by a small number of installs in any case. Another, possibly simpler suggestion is using a negative basemem value to specify the -maximum size the slave can use. WHDLoad would allocate 0.5, 1.0 or 2.0Mb depending on the requested size and the available memory. A problem is you could get the situation where you need 1.0 or 2.0Mb, ask for 2.0Mb-max but only get 0.5Mb. The slave would have to check for this and bug out if it didnt get its minimum requirement, but how hard is that? cmp.l #512k, ble fail ? On a subset of a subset of slaves? Cripes, I need a lie down now. I can't believe this would be a complex change to WHDLoad either. Check a few flags at startup, calculate and store the basemem value and proceed as normal. What am I missing? As for the slave authors, are you saying that changing a single dc.l in the header is more complex than building, distributing and installing multiple slaves? I know which I'd rather do. These are hacks and it would be cleaner to bump to v17 and extend the header with an offset to a "ws_memconfig" choice table or something. As you say it's probably not worth bumping just for this, but what's the harm in including it if/when v17 comes anyway ? I don't think its a useless feature at all. I think it's an improvement, useful and worth the small effort I imagine it would take to implement. The only arguments against I'm hearing is that you don't like the speech in Walker (so code a skip-on-fire!) and mainly "it's too much bother". Well OK fair enough, that's Wepl's call. I respect your opinions, but I disagree. It's not the first time. Doesn't mean we all can't still be friends though ![]() ![]() ![]() |
||||
![]() |
![]() |
#52 | |
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,863
|
Quote:
For WHDLoad, no, at least no released one. But I have fixed countless demos and have made my WHDLoad like patching system as well (which I don't use these days anymore though), so if your question was if I know about patching/fixing, yes, I definitely do. And I might do some whd slaves in the future, most probably for demos only. ![]() Edit: you might want to check out this thread http://eab.abime.net/showthread.php?t=28148 just in case you still think "no slave released, no clue"... Last edited by StingRay; 23 July 2007 at 19:19. |
|
![]() |
![]() |
#53 | |
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,863
|
Quote:
![]() ![]() |
|
![]() |
![]() |
#54 | ||
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,863
|
Quote:
Quote:
![]() |
||
![]() |
![]() |
#55 | |
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,863
|
Quote:
![]() ![]() ![]() |
|
![]() |
![]() |
#56 |
2 contact me: email only!
Join Date: May 2001
Location: Auckland / New Zealand
Posts: 3,187
|
I was hassled by Stingray for guessing 10 slaves might benefit out of about 1300, and we have come up with a definite list of 4. 6 if Psygore could remember his 2.
The no-speech version of Walker is much smarter than you are giving credit for anyway, as the no-speech version deliberately sets all the speech files as not needing to be buffered which speeds up loading etc. The slaves are certainly not identical. And as for the complexity of maintaining 2 files, only one source file builds both slaves anyway! Don't tell me you have multiple source files for the 2 games you have identified? This whole issue is a bit like an install script upgrade. You can put all the extra features in that you wish, but nobody is going to go back and redo existing installs that work perfectly fine in their current form! |
![]() |
![]() |
#57 |
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,863
|
Update: I've disassembled the Dogfight slave now and it seems as if Dr.Zarkov tried to use the "CUSTOM" tooltypes to set basememsize+extmemsize (CUSTOM4/5). At least there are (unused) parts in the code that look very much like he tried to do that. Will resource the game now and check if it makes use of extended mem.
|
![]() |
![]() |
#58 | |
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,863
|
Quote:
I have to comment on this as you contradict yourself here. You say added complexity to whdload is bad but it's ok to have install scripts that are more complex than they need to be? |
|
![]() |
![]() |
#59 |
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,863
|
I've updated the slave now, turns out Codetapper was right! As far as I could see the game just needs ~256k chip ram and makes use of extended mem if it's available. The slave now requires $80000 bytes basemem and $80000 bytes extended mem. The slave now also removes the copyprotection so that it won't be necessary to modify the gamefile during installation. I also added that the slave first checks for OSEmu400 in the game datadir and if it's not available there it tries to load C:OSEmu400. This way it's possible to use a special version of OSEmu only for that very game as I heard there are several buggy versions around. Unused code has been removed as well. Slave attached to this post, can you please test it, Killergorilla? If it works, I'll create an updated installer script which can then be uploaded to the whdload site.
Last edited by StingRay; 24 July 2007 at 01:52. Reason: small bugfix, used wrong whdload function to check if file exists |
![]() |
![]() |
#60 |
Moderator
Join Date: Jan 2002
Location: France
Posts: 491
|
|
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Dogfight II | taa2609 | request.Old Rare Games | 33 | 10 September 2021 01:16 |
Dogfight Probs ! | Foul | project.WHDLoad | 8 | 14 June 2013 23:17 |
Dogfight by Microprose | brett71 | support.Games | 8 | 04 July 2012 20:47 |
Dogfight: 80 Years Of Aerial Warfare | Reynolds | request.Modules | 1 | 10 December 2009 17:57 |
[Found] -> Skychase. (Was: Dogfight or ACE game) | T_hairy_bootson | Looking for a game name ? | 8 | 30 September 2003 15:49 |
|
|