HoraceAndTheSpider / UAEConfigMaker

Amiga UAE Configuration Maker, primarily for UAE4ARM/Amiberry on the Raspberry Pi.
14 stars 7 forks source link

68000 support for ECS games #25

Closed ghost closed 6 years ago

ghost commented 6 years ago

I've been meaning to mention @HoraceAndTheSpider . Why aren't you using 68000 for ECS games ? This corrects the speed to the same as the ADF versions. For example, in the current config of UAEConfigMaker, Barbarian (Palace), Technocop and Magic Pockets etc. still play too fast (even though you have set it to 7mhz) but if you set it to run at 68000 it plays at the exact same speed as the ADF version, no need for Cycle Exact ! Obviously a few will still need it but remember that WHDLoad can be run on a A600 which is 68000. This also means that when TomB finishes Cycle Exact for 68000 we can also use it for all ECS games! (assuming that the Pi can do it). So for ECS games you could use -

68000 Full ECS 3.1 A600 ROM.

HoraceAndTheSpider commented 6 years ago

As per Amiberry...

You cannot use 68000 very well with whdload, therefore it is not used by default. Functions are limited because you cannot use certain commands (eg VBR move) I can include the option to specify for certain games.

Keep in mind Whdload was designed for 68020+ so there needs to be an element of “responsibility” for the emulator to produce the correct speed, as these games run fine on real (enhanced) hardware.

ghost commented 6 years ago

Keep in mind Whdload was designed for 68020+

Not sure who told you that. WHDLoad was designed for A500+/A600 as well. Those are the requirements on the WHDLoad page (and why they add QuitKey support for 68000 (which isn't needed for the ConfigMaker)). I just thought it was better than lowering the speed to 7mhz ! Whatever you think is best.

HoraceAndTheSpider commented 6 years ago

Who told me that... Well I was there at the beginning in 1998 or so with Wepl and JOTD, (admittedly only really providing disk images , although I did have a very bad go at Return of the Jedi for JOTD) so I know the history from the time pretty well, when it started with Whdload and JST programs doing very similar things, and later being effectively “merged”. Even earlier than that there were the “copy lock” PD disks being used and there was zero consideration for 68000 then!

So the target was “enhanced Amigas” ... ie simply to give Hd support for the few remaining Amiga users at the time who were usually on a1200T/ a4000 machines and this is why old Whdload slaves have no care for 68000 support.

This is something that has been looked at much later, and you will see that most 68000 quitkey additions (because they were missed the first time around) have been largely in th last ten years since use-case has changed - the a600 was a very unpopular machine at the time but this has changed as it has been re-evaluated due its compact size and the now better availability of upgrades. (I even have one myself now but would not have considered it in the 90s)

I can add it as a potential host side option anyway, but hope this explains reasoning.

ghost commented 6 years ago

OK thanks for the info. I meant nothing by it, I just said that the requirements on the WHDLoad site is 68000 onwards. A lot of people still buy A600's from eBay specifically for WHDLoad.

As I said, for games that run too fast like Barbarian & Magic Pockets it will match the original speed by using 68000. (Currently it's set at 68020 7Mhz which still plays too fast). I would love to have the option like you said or just set any games that run too fast as 68000. Do what you think is best. Thanks.

HoraceAndTheSpider commented 6 years ago

Don’t worry - no offence was taken :)

I fell for the whd a600 craze myself about 5-6 years ago, so I do appreciate the popularity it clearly has now, and has for a while.

It would be much easier if a universal enhanced Amiga setup could be used and all games perform the same, but sadly the quirks of emulation mean that is not really possible whilst we are still dealing with limited host emulation speed. (But who wants it to be easy, right??)

ghost commented 6 years ago

I noticed something about A600 in the python script but it's set at ECS Agnus,68020 and kick31.rom (which is the A1200 version). Some sort of hybrid machine ! :)

If you could add a toggle option in the hostconfig file like you said, that will use this A600 config for everything except AGA and CD32.

68000 Full ECS A600 3.1 ROM (maybe we could call it kick31a600.rom to distinguish it from the A1200 version). And maximum memory for preload - 2 Meg Chip 8 Meg Fast

HoraceAndTheSpider commented 6 years ago

I am happy to add the option to default the a600 to 68000 (I do see a potential benefit, although I would like to test the impact on some games - this could lead to the need for many games to have blitter wait patches removed, so my recommendation would be to instead keep at list of the games that specially require 68000 to run correctly)

However... I won’t add a requirement to use the a600 3.1 kickstart, sorry.

There is no benefit to it I can readily see. the purpose of this software is not force specific machine types but to make everything as easy/convenient as possible for the end user. (Most of whom are considerably less Amiga-centric as yourself)

What is seen as the benefit of using the “a600 kick31.rom” (did any a600 ever ship with this, or was this only available as an upgrade?) ... why this and not the original kickstart 2.05 rom?

I am concerned that by doing this, it would risk creating an additional “depenency” for users to have another rom file.

At a push I could stomach having it use the kick205.rom if available, otherwise fall back to the current kick31.rom but I am still not sure of the reasoning as to why, and I have a long list of other improvements I would see as more beneficial to prioritise first.

ghost commented 6 years ago

I don't know if it makes a difference at all, it may work the same with the A1200 3.1 rom. I just thought to match the A600 profile with the specific A600 3.1 rom (which was an upgrade that people could install). Apparently 68010+ VBR is only needed for QuitKey support.

I don't see why it wouldn't work with the standard A1200 3.1 rom, It may work by just changing to 68000 and leave the rest unchanged ? Maybe need Full ECS. Magic Pockets is a good test as you can instantly tell the speed difference between them.

After all, it's only an extra option so it won't break anything because it can just be turned off.

HoraceAndTheSpider commented 6 years ago

I've added the option to select 68000 for specific games in the latest commit 5caa342 which statisfys the requirements here.

When i have some examples of games requiring Full ECS i will add that also.

I will pin the outstanding option to default to 68000 as an 'improvement' here for future consideration.

It's not just the VBR quitkey that is the reason not to default to 68000 though, and a there is further reason I would not recommend it.

As i mentioned, a lot of games have had additional blitterwaits inserted into them in order to fix timing issues on machines >68000. This can have the impact of making the games slower than they originally were on 68000 machines. Much like adding 68000 quitkey support, many older slaves still need updating to remove these fixes, (which then has to be specified via a tooltype) so they games would be slower "out of the box" than they would be just leaving the 68020 in place, and adding those that need it to the CPU_68000.txt list.

ghost commented 6 years ago

I just tried the A1200 3.1 rom and it just locks up with 68000. Don't worry about this one as I can just edit the Python script myself. Feel free to change it back. Thanks anyway.

I wouldn't mind a third option from this though https://github.com/HoraceAndTheSpider/UAEConfigMaker/issues/22

currently the screenheight 200 games that tednilsen added stretch them vertically.

HoraceAndTheSpider commented 6 years ago

does the A600 kick205 kickstart rom also lock up on 68000? or the a600 3.1 for that matter?

HoraceAndTheSpider commented 6 years ago

keep in mind if you edit the python script it will get wiped during the auto update, so i would prefer to find a proper solution.

ghost commented 6 years ago

A600 kick 205 and A600 kick 31 both work but as you said, I think it's best to leave it as it is to avoid confusion.

I found a game that didn't work with it called 'Max Rally'. It doesn't have an AGA tag on it but according to WHDLoad site it needs the A1200 rom. So maybe it's only the AGA version.

HoraceAndTheSpider commented 6 years ago

I've look into this, and i cannot get A600 kick 31 to work at all? I get a hanging black screen. I have tried a couple of sources. It works fine with the A600 2.05 rom, but there is one thing i dont like about this... the 'flash' of grey at the start! (Very particular... i know!) ... this would be my only reason to use the A600 kick 3.1 rom.

What i will likely do, is have it try to use one of these roms on 68000 mode... the Config Maker now refuses to create .uae files if kickstarts are missing, so i guess that 'saftey feature' will have to be relied on to help users.

I will try some other sources for th A600 3.1 rom first though.

For something like Max Rally it can be added to the 'A1200 system' list to force it to use that mode.

ghost commented 6 years ago

A600 kick 3.1 works fine for me but one thing I also changed in your Python script was to use Full ECS mode (instead of ECS Agnus which you have it set at). You'll be sad to here that using this ROM also flashes a grey screen at the start ! (I used the ROM from TOSEC).

As I said before, please do not worry about this as I'm probably the only person likely to use it anyway and I can modify your script myself. You can concentrate on more important issues ! Thanks anyway though.

HoraceAndTheSpider commented 6 years ago

So possibly the kick31 rom requires full Ecs... I had not considered that. If the grey flash is still there the only remaining potential benefit is if it has a faster boot time (unlikely) , as the 68000 itself obviously makes this a bit slower anyway.

Nonetheless, I’m keen to make sure the 68000 option works, even if it is only for games like Barbarian, which is a frustrating game even at “normal” speed, so I do need to work something out for this anyway.

ghost commented 6 years ago

I think whatever the outcome you're still going to need to use an extra rom as the A1200 one doesn't work with 68000. Then you could create a new machine profile in the Python script which will be called upon when it finds a game listed in 'Plays Too Fast.txt' (or something similar). The only thing is that now you have set everything to 7mz it will be difficult to test because most people will probably think it was supposed to be that speed anyway !

These are some that I know play too fast off the top of my head -

Harlequin New Zealand Story Jaguar XJ220 (doesn't work with your booter) Barbarian (Palace) Technocop Magic Pockets

There are a lot more but I can't think at the moment. This is the reason why I just set every ECS game to 68000 and A600 3,1 Rom ! Something else that you mentioned, some games have a custom option to turn off 'Blitter Waits' for 68000 but you need to enter the extra options on your booter which stops some games from booting for some reason and when the menu has appeared once it never shows again so no-one will no if there were any extra options (like cheats) for that game. Maybe an update for the booter !

EDIT: Maybe the A500+ Rom might work as well as that is required for WHDLoad anyway. Haven't tried it though. (But the 3.1 version sounds like it will be more compatible, I don't know).

kick37175.A500 -> Kickstart v2.04 r37.175 (1991-05)(Commodore)(A500+)

Also, if people do test and add games to your text files, always use the latest version as some games have had a name change. For example, 'InternationalKarate+' is now 'IK+' and if the name is wrong then the changes won't be applied. I don't know if any of the text files have old names in.

HoraceAndTheSpider commented 6 years ago

There is no need for “plays too fast” txt when the 68000 cpu option is already there.

The need for disabling of blitter options is something I want to avoid, and this is why I would use this 68000 option as little as possible. Another thing for the user to do just leads to further issues.

However, it is perfectly possible to return to the boot menu by pressing “fire” on load up, and i believe this is documented in the guide/faq.

I will test the issues you have with .ws files on this, but I don’t encounter them myself at present. I have this flagged on another issue report to test.

NZS has no option to remove blitter waits (unless StingRay added it later) as I worked on the update for that game with JOTD when we put them in! I don’t recall it running too fast with 020/7mhz though... I would need to check.

Still don’t know why the benefit of the 3.1 a600 rom is - why do you think this would be more compatible? Any examples? I would prefer not to add an ECS Full requirement if I can get the 3.1 rom working, as I would like to keep emulation requirements to a minimum where possible.

The adding of new game names is something the users should do in contributing to the project (like you have) and I will only pick up the ones I test myself, so I will be assuming they use whatever version they have. (There is no problem with having duplicates... ADF support will require TOSEC names etc)

ghost commented 6 years ago

The 68000 txt only changes to 68000 which will then stop games from working because the A1200 rom is not compatible.

Your booter will completely skip the custom options after the first run so you have no indication if it had cheats etc. unless you hold down the fire button on boot. This is now a memory game !

The custom options that stop them from booting have nothing to do with .ws files (except PinballPrelude) and as I said, Jaguar XJ220 doesn't even work on your booter (but does on a different one).

I have no idea if there is a benefit to using 3.1 a600, it's just a more up to date kickstart. I have no idea. I'm not claiming anything.

We are both repeating our post answers throughout this thread. Everything I have suggested has been dismissed so I think it all should be kept as it is as 9/10 people won't notice the difference anyway. Let's forget this thread and move on ! Thanks.

HoraceAndTheSpider commented 6 years ago

Everything I have suggested has been dismissed

I'm sorry to hear you feel that way. I am trying to take on board all the comments made, and have even made changes to apprach based on this discussion, so i have found it quite useful.

The 68000 txt only changes to 68000 which will then stop games from working because the A1200 rom is not compatible.

Which i plan to correct - all that needs doing is establishing a suitable rom/other required settings, which will then be 'forced' when 68000 is selected.

Your booter will completely skip the custom options after the first run so you have no indication if it had cheats etc. unless you hold down the fire button on boot. This is now a memory game !

This is no different to changing tooltypes with Workbench launched slaves. It is up to the user to check on www.whdload.de as to whether a game has cheats or other custom options available. The only alternative is to have a message appear on every load, stating whether there are custom options available, adding a delay to allow user input, and then loading the custom section of the booter as if it were a 'cracktro'.

It has already been implied in previous discussions that the booter is 'slower' than direct loaded files (although i struggle to see how once the auto-startup is created, the only delays can be with Amiga DOS commands)

I therefore am unlikely to add this kind of delay to the loading process, as I think general uer preference is to load a game as quickly as possible.

Jaguar XJ220 doesn't even work on your booter

Which i will investigate, thanks.

I will be leaving the thead open until the 68000 selection mode is working satisfactorily, and will note the other issues raised in relevant reports.

HoraceAndTheSpider commented 6 years ago

Kickstart 2.05 (A600HD) now used for 68000 mode, as this is tested working as-is.

A600 3.1 may be considered later on as an 'improvement' only.

ghost commented 6 years ago

I just did another test as I know you're very biased about grey/white screens at boot time !

ECS Agnus, A600 2.05 Rom (which is what you've settled on) - Several white screens ! bit hypocritical :) Full ECS, A600 3.1 Rom - 1 White screen at boot ECS Agnus, A600 3.1 Rom - Black screen at boot

This is only for reference.

HoraceAndTheSpider commented 6 years ago

I settled on 2.05 because it worked with just a kickstart change.

It may be subject to improvement but at the time Kickstart 3.1/600 would not boot for me - black screen yes, but no game.