Closed ghost closed 5 years ago
No this option is not present to change the default for this.
68000 is not ideal for WHDLoad, with a less common kickstart file even being required. It is preferred to keep a very common kickstart requirement (1200 3.1) to suit a larger number of users “out of the box”
Whdload is designed to run on fast Amiga’s, so in some cases it may be preferable to request an update to the installer, adding the necessary waits (rather than dbf loops etc which cause timing issues)
If you can list the affected games they can be priority to update on the database when available.
I have run tests in this area and most games do run normally with 020/7mhz , just that in some cases “wait for blitter” should be enabled, which I think is default.
@ZappaUtopia As @HoraceAndTheSpider mentioned, this is not available, by design. The database configs will have updates and the aim is to have them driven by the community (so you can submit optimal settings per title), so that they will improve over time.
If you have specific titles that need corrections, please list those for now - otherwise please wait until the work with the online database is completed.
I just meant as a global optional file that will overide the XML like the hostconfig does. There are several games that need cycle accuracy and still play too fast in the current config but can be worked around by setting the CPU to 68000 7Mhz like Blinkydoos did with Barbarian (Palace version).
TBH, I can't see many people contributing to this as only about 2 people contributed to the UAE Config Maker settings (from what I see on Github). There are also several games that have the wrong resolution set and the vertical offset has made the picture slightly off screen. I'd rather have the original 640x256 res than 640x216 which stretches the image off the screen.
Because you've set the default at 68020 and 7Mhz (which is a hybrid anyway) most people probably won't notice if the speed is different, but Amiga enthusiasts like myself do ! I think a list of all WHDLoad games that need Cycle Accuracy would be a good group effort so those can be set to 68000.
I tested Magic Pockets on my A600 and I don’t think the original is as slow as people think?
I posted some videos of New Zealand Story on another issue which demonstrated that 020/7 is surprisingly spot-on when the correct waits are in place.
I’m afraid the pros of a 68000 default are outweighed by the commonality of the kickstart requirements. Setting up a host preference for this is not as simple as it sounds, because of the potential for users to not have the right files available, so it needs added fall-backs.
6 games is not many to account for and I would still suggest that if running too fast on a faster CPU the WHDLoad slave should be updated to account for this.
I will not rule it out as an option, but there are other areas that will need working on first before it’s looked at, and I think the DB will cover most cases pretty well.
The WHDLoad files are not going to be updated as they work correctly on REAL Amiga's which is what they are intended for, they are not going to add Blitter Waits so it runs correctly on an emulator that doesn't have cycle accuracy. Those few games are what I found today, there are probably a lot more but I can see you're not really interested anyway. :(
Please, I do not wish to cause any kind of problems here. I'm interested in a good user experience for the majority, and the most practical solution to achieve what is needed.
As i said, I will not rule anything out.
I would like to keeep this issue open, so that the games specified can be looked at with the DB update please.
Just want to comment that WHDLoad demos and games can run fine on 68000 cpu both on real Amiga and emulated. WHDLoad quit key requires 68010 or better to work.
There's some WHDLoad options that can be used to control speed of demos and games. The interesting ones are:
I have done tests to verify a lot of games work on plain A500+, A600 and A1200, but its of course without preload so there will be screen blinking when games are loading data.
For WHDLoad running in general I would recommend at 68020 cpu, which should cover most classic games. Emulators do support setting cpu speed to 7mhz even though a real 68020 would run at 14mmhz.
That’s what the preset does. Uses 68020 but sets ECS games to 7mhz.
Flashing screen for non-preloaded games is of course unacceptable for this, but that is only about providing enough fast ram.
For a generic loader like this it is very difficult to set bespoke WHDLoad options without doing them manually (Which is beyond the capability of most users) so finding the right emulator tweeks is preferable.
Right, blinking can easily be solved by adding more fast ram and 8mb zorro ii is enough for classic games.
For WHDLoad games I have good experience running them with cpu set to 68020, chipset to AGA and speed to 25mhz.
I have created a launcher menu with AGS2 that has game screenshots, details and settings options than can easily be used to turn WHDLoad options on and off. Here a link to EAB WHDLoad Games Menu https://github.com/henrikstengaard/eab-whdload-games-aga-menu-package, so you can read about it and see the screenshots.
I have integrated this in Amibian and made a beta release here http://hstwb.firstrealize.com called "Amibian v1.4.1001 img preconfigured with HstWB self install HDF image v1.2.0-BETA3". HstWB Installer self install images are an attempt to simplify installation of Workbench and software required for running demos and games. It only requires users to provide Workbench adf and Kickstart rom files. For WHDLoad games users must download then and run a script to prepare installation of them during installation. The installation process is mostly watching HstWB Installer run and select what it should install, so it's hopefully compatible with most users. Here's a tutorial https://github.com/henrikstengaard/hstwb-installer/wiki/Run-self-install-tutorial that describes how to run the self install.
I had many complaints regarding speed with non-Aga games above 7mhz, so this this based on user feedback.
Our WHDLoad solution uses files either built by myself or AROS workbench replacements, making it easier for the end user because no manual installation is required.
Whilst you are free to use what you like ita getting a bit off topic here.
I agree, its two different approaches to run WHDLoad games so it's a bit off topic for this issue.
Sorry for interfering.
I've found that amiberry should support CPU=68000 (or 68010) in the .whd override files, but crashes horribly, apparently when it tries to load Kickstart 2.05 (37.350) for the A600HD (whether it's present or not).
That's too bad, because there are games (like One on One) that are essentially unplayable with any other CPU, regardless of clock speed.
Given how many slaves have been updated in the past six months specifically to allow quits on 68000 processors, I'd argue strongly against the notion that "WHDLoad is meant for fast machines". It's meant for Amigas, period, and there's no more prevalent configuration in the world than the 7MHz 68000.
I'd argue strongly against the notion that "WHDLoad is meant for fast machines".
i'd argue strong for the notion, but its not really needed or appropriate to enter a debate on the topic here.
apparently when it tries to load Kickstart 2.05 (37.350) for the A600HD (whether it's present or not).
That's not what the default behaviour should be. It should use it only if available, and if not, revert to a 68020 option with the standard (required) A1200 kickstart. I'll look into whether there is a bug with the way this is operating if you are experiencing crashes.
That's too bad, because there are games (like One on One) that are essentially unplayable with any other CPU, regardless of clock speed.
These particular games will have a 68000 option for them. The point in the above discussion was why the decision has been made not to make this a default for ECS games. Certain games (Frontier, or any other 3D game) will benefit from not having 68000, so there is never going to be a 'one size fits all' answer to this.
I suspect some users here wil think i am being dismissive of this matter - i am genuinely not. I am trying very hard to create the easiest end-user focused solution to fit a wide variety of variables, based largely on many considerations, including my own experience (20 years of using, and coding for, WHDLoad), the practicality of implementation, and user feedback.
It should be kept in mind that any user who doesnt like the defaut options given always has the opportunity to change the game settings and create a bespoke .uae file the way they want it.... just as it was before the WHDBooter feature was added.
Unfortunately there is little benefit in pushing down any particualr changes/accomodations other than the bugfixes at present until we have the long-term solution (the online database) up and running.
I appreciate the well-written and insightful response. I'll agree to disagree on the more common WHDLoad processor. ;)
The crash is specifically a SIGSEGV in SEGV_MAPERR where a NULL pointer is being dereferenced (that's all I got from an strace so far), but only when CPU=68000. It works fine if set up that way in a .uae file (without using WHDBooter), the issue is only with CPU=68000 (or CPU=68010) in a .whd file. It reads hostprefs.conf, then the whd override, and crashes while parsing before it ever tries to load the A600HD Kickstart. This occurs in the github tip commit.
I apologize for the misunderstanding on my part - I came into this issue actually looking to report the 68K crash and mistook it for the same problem. Certainly, I see no issue with defaulting to 020@7MHz, as it does work in the vast majority of cases...so long as it doesn't crash when you deliberately downthrottle to 68000. ;)
Unfortunately, I don't know that I share your vision of panacea w.r.t. the online database, for one simple reason - PAL vs. NTSC. Americans remember many titles VERY differently than their European counterparts - for instance, ask any random person what the Powermonger title tune sounds like. I'm willing to bet the way I remember it doesn't match the memories of many. There's no "right" answer here, unfortunately - even doing NTSC or PAL as a global in hostprefs (and then letting the user case-by-case their games) isn't going to work w.r.t. resolution. I honestly don't see a way of effectively handling this, though I'll submit that the DB is better than nothing.
A quick aside, I despise using github issues as a general 'help forum' - is there a proper place to ask technical questions about Amiberry? There's a number of things (like moving LINE_DOUBLING from hostprefs to whd, the Amiberry 'splash screen' colors, proper directory layout for WHDBooter installs, etc.) I'd like to inquire about that don't really seem to belong here. The only actual bug I wanted to report was with the 68000/WHDBooter crash.
The crash is specifically a SIGSEGV in SEGV_MAPERR where a NULL pointer is being dereferenced (that's all I got from an strace so far), but only when CPU=68000. It works fine if set up that way in a .uae file (without using WHDBooter), the issue is only with CPU=68000 (or CPU=68010) in a .whd file. It reads hostprefs.conf, then the whd override, and crashes while parsing before it ever tries to load the A600HD Kickstart. This occurs in the github tip commit.
Thanks, i will look into this. Can you provide a CRC of your kickstart for this, so i can see if it matches mine also?
Unfortunately, I don't know that I share your vision of panacea w.r.t. the online database, for one simple reason - PAL vs. NTSC. Americans remember many titles VERY differently than their European counterparts - for instance, ask any random person what the Powermonger title tune sounds like. I'm willing to bet the way I remember it doesn't match the memories of many. There's no "right" answer here, unfortunately - even doing NTSC or PAL as a global in hostprefs (and then letting the user case-by-case their games) isn't going to work w.r.t. resolution.
I'm probably misunderstanding or missing some part of the concern here, but i dont really get this. The WHDLoad installs for NTSC and PAL versions of games (where i assume you are referring to differences) have seperate installs so the database will be able to handle specific settings for each version, e.g. if they fit better in the screen or need bespoke changes to tailor the speed. IIRC NTSC mode can be set in the game .whd file (and therefore the database) and this would/should be set for each NTSC version of a game.
I despise using github issues as a general 'help forum' - is there a proper place to ask technical questions about Amiberry?
As you've noted I (but not @midwan ) do reply in the RetroPie forum, but this is really the best place to get a reply, and there is no problem having an issue marked as just a 'question'.
The A600HD 2.05 37.350 Kickstart is 0x43b0df7b, which matches what Amiberry seems to be expecting (in fact, I have images of every Kickstart dump ever, including bad/overdumps, visible to Amiberry).
What's interesting to me is that this 'special' 68000 Kickstart isn't being softlinked (and it's clear in amiberry_whdbooter.cpp that it isn't), and even though Amiberry can clearly see the images in the BIOS directory (because that's what it softlinks to), for whatever reason it seems like Amiberry is crashing on the pointer dereference before it even tries to load the Kickstart...strace shows that prior to reading the .whd file, it scans all the files in the BIOS directory, but after reading whd and parsing the CPU=68000 entry, it dies immediately without even attempting to load the A600HD Kickstart at all.
PowerMonger is an interesting case because there is no NTSC or PAL installation (or floppy) - there was only one. Since it ties timing to VBLANK, it really does play at different speed on US vs. European machines, so how people remember it is entirely a matter of what they were used to. Graphics, naturally, were fixed at 200px high, so you did have the "black bar" syndrome on PAL machines, but my point is that there's a largish number of games out there for which there were no separate PAL and NTSC releases. For those, which setting is 'correct'? It's a perspective/experience thing then, not a fixed binary decision.
The A600HD 2.05 37.350 Kickstart is 0x43b0df7b, which matches what Amiberry seems to be expecting
Thanks - I have them also, i just want to ensure i am testing like-for-like.
What's interesting to me is that this 'special' 68000 Kickstart isn't being softlinked (and it's clear in amiberry_whdbooter.cpp that it isn't), and even though Amiberry can clearly see the images in the BIOS directory
This I have explained on the RetroPIe forum also. There is no need for it to be symlinked, as it isnt needed in the Amiga environment. The 'issue' here is with the Amiberry selection of the rom which is what I will investigate.
The kickstarts used by WHDLoad in the amiga environment are the ones from : http://aminet.net/package/util/boot/skick346 which have an accompanying .rtb file
As you will see from the code, the only ones which are not symlinked are beta files. I am not aware that any WHDLoad slave requires these, and they are not readily checked for in the Amiberry code. Since there is no .rtb for kick37350.A600
I dont create a link, and shouldn't need to. I suspect WHDLoad will probably get what it needs from kick37175.A500
I have a suspicion about what might be causing the crash, and will hopefully test later today. I did encounter a crash with Barbarian, which i did not have when developing originally, so hopefully can be fixed easily.
For those, which setting is 'correct'? It's a perspective/experience thing then, not a fixed binary decision.
Agreed. However, for universal(ish) appeal a preferred 'out of the box' solution will likely be applied, as the purpose of this auto booting is to minimse user input. However, the default value can be superceded in the menu and a user-preferred setting saved instead, so i dont see a major issue here, since I am not anticipating much feedback in respect of this from users (famous last words perhaps...)
It is likely we will only use the NTSC setting for games that require it specified to run. Or set it to FALSE for games that require PAL specifically. Perhaps, if there is demand for it, the hostprefs.conf
can allow the user to select their prefered default.
Problem solved.
For some reason it was not fond of the '2meg chipram' option being applied directly after the A600 quickstart config was applied. I add this extra ram as this brings it in line with the other options, maximising potential compatibility. (Something like for example Worms '2meg version' should still work, even if it was set to 68000, although this is not a game that needs it.)
I've moved it to a later stage in the code, with the CPU setting, and this seems to have resolved the issue.
I've pushed a fix into the dev branch - please feel free to report back if all working OK now.
I patched the change in directly to the last public release, and it works! (I was quite surprised to see that was the root cause. :)
However, something in the Amiga-side pipeline for WHDBooter definitely requires a 68020+, because shortly after the splash screen is presented, you get a guru from an unaligned memory access. Haven't yet had a chance to chase that one down.
Wow, that was painful. It isn't one piece of code in boot-data.zip doing unaligned memory accesses - it's three:
C/Info C/Search Libs/lowlevel.library
I'm assuming these are AROS versions...not sure if they are buggy or explicitly compiled for '020+, but they definitely don't work on the 68000/010.
@HoraceAndTheSpider Did you get a chance to test this further?
Any bugs in the AROS roms should be resolved with the new booter solution
I would like to set a default of 68000 and 7Mhz when running ECS WHDLoad games, how can I do that ? At the moment it`s pulling information from the XML file (for those that match) and some games seem to be playing too fast and some have sound and graphics errors. Is there a way to set a default override CPU and Speed for ECS WHDLoad and AGA WHDLoad ? I tried entering the info into the hostconfig but it seemed to ignore it.