BlitterStudio / amiberry

Optimized Amiga emulator for Linux/macOS
https://amiberry.com
GNU General Public License v3.0
643 stars 86 forks source link

Cannon Fodder: lower part of the screen isn't visible, and helicopter rotor is missing if JIT is on. #170

Closed vanfanel closed 6 years ago

vanfanel commented 6 years ago

Hi,

I have noticed that Cannon Fodder is missing part of the screen: I am running on a native 50HZ mode (1280x720@50Hz) and emulating an OCS/ECS PAL Amiga. Also, it seems to be missing part of the helicopter graphics before the game itself starts... but only with JIT ON! Strange...

HoraceAndTheSpider commented 6 years ago

Sensible software are notorious for using overscan.

All sensi games should have a screen height of at least 262 pixels, which they were generally designed to, so check that is being used and then consider using vertical offset if need (shouldn’t be on a 720 display though)

As for JIT, this should only be used on 3D vector or FPS games, and should be removed for something like CF :)

vanfanel commented 6 years ago

@HoraceAndTheSpider : Ok, I got the whole screen to show by increasing the HEIGHT in the Display menu options. Thanks about that!

But there's still something strange going on with CF: If I disable JIT, the helicopter tail is shown during the intro to the first mission. However, after I pass the first mission... the helicopter tail is drawn in a crazy position! Almost out of the screen, on the lower part of the screen but moving with the helicopter. The rest of the helicopter is fine.

vanfanel commented 6 years ago

@HoraceAndTheSpider : Ah, found a solution. Using the "MORE COMPATIBLE" CPU option makes it look fine. Seems to be related to CPU emulation, then. This issue can be closed :+1:

midwan commented 6 years ago

@vanfanel you might want to check @HoraceAndTheSpider's "UAE Config Maker" tool, it should make things easier... ;-)

Closing this issue then.

HoraceAndTheSpider commented 6 years ago

Funnily enough I was just about to look up the Config Maker settings for CF, and @vanfanel beat me to it :)

I am going to assume ADFs are being used here which I have not yet added support for (but should do in the future) on the Config Maker

vanfanel commented 6 years ago

@HoraceAndTheSpider : No, I don't use ADFs but hand-made self-booting HDFs for transparent and fast-loading emulation

HoraceAndTheSpider commented 6 years ago

OK. HDFs are supported by the Config Maker already , but lack some of the extra function you can get from files access (such as trainer/Whdload tooltype control) at the moment.

I do plan to improved the HDF support further in the future if you ever wanted to provide some example files, but presently they should work already to some extent :)

I prefer the files approach myself because they are fast loading but allow me to not be locked into a fixed file which I cannot change from outside of emulation.

vanfanel commented 6 years ago

@HoraceAndTheSpider : I am slowly doing these HDFs, but I can pass them if you want so you can add them to your tool

HoraceAndTheSpider commented 6 years ago

Can I ask why you prefer HDFs to the base files? I appreciate a handful of games need to be HDF for unpacking on the Amiga side (due to certain file names), but I find the files approach very convenient and still much faster than ADFs.

Please feel free to email me any via this username at hotmail dot com :)

vanfanel commented 6 years ago

@HoraceAndTheSpider : Do you mean using directories (a directory for DH0: containig the game and a minimal system) instead of having them contained on an HDF? Never tried that really!

HoraceAndTheSpider commented 6 years ago

Yes , sort of :)

The default method for my Config Maker is a special “Whdload booter” for dh0: and the unpacked files for dh1: ... the config Maker matches the two together to create a .uae file which will boot the game.

Check out the project and guide etc here, which may interest you:

http://ultimateamiga.co.uk/HostedProjects/RetroPieAmiga/

vanfanel commented 6 years ago

@HoraceAndTheSpider : I will try it, looks like a great idea! Are plain files instead of HDFs faster on loading files given the same emulated Amiga model??

For some games, I will still do installations manually as some do do rely on Whdload: for example, Lemmings has a AmigaDOS version which is compatible with all Amiga models, so Whdload is not needed.

ghost commented 6 years ago

HDF's and Directory mode load at the same speed, there's no difference except for HDF's being cleaner on the SD card. I have noticed that @HoraceAndTheSpider the booter does take quite a long time to boot compared to a different booter ?

Also, another thing that 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. So for ECS games you could use -

68000 Full ECS 3.1 A600 ROM.

(I'll also post this on your ConfigMaker repo).

HoraceAndTheSpider commented 6 years ago

There can be little/no difference in speed of booter. Once set up it creates a script that immediately loads the slave file. There is no possible way it can be faster, other than the Amiga OS commands!

You cannot uae 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

As I said here https://github.com/HoraceAndTheSpider/UAEConfigMaker/issues/25#issuecomment-354448020 it was also designed for 68000.

HoraceAndTheSpider commented 6 years ago

And reasoning behind that statement (which I stand by) posted in the same thread.

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.