29 April 2021, 11:43 | #1 |
Registered User
Join Date: Aug 2012
Location: Torelló, Spain
Age: 47
Posts: 93
|
Confused about AGA and cycle-exact
Hello everyone,
I have been confused for years by the cycle-exact settings in WinUAE. I am hoping someone can shed a bit of light on this issue for me. I am wanting to emulate an Amiga 4000, and I am stumped by those CPU Emulation Speed - Approximate A500/A1200 or cycle-exact, cycle-exact (Full) and cycle-exact (DMA/Memory accesses) settings. The way I understand it, those only apply for for 2 machines, the Amiga 500 and Amiga 1200. How should I configure a different AGA machine with a faster CPU? Thank you for your time. |
29 April 2021, 12:13 | #2 |
Registered User
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,408
|
The thing is that cycle exact only really applies to the AGA chipset for AGA machines, the 68020 (and 030/040/060) CPU speed isn't emulated completely accurately because of difficulties in figuring out exactly how fast each instruction executes. One reason for this has to do with the way the CPU cache interacts with instruction speed. Toni will have a more complete answer, but that is my understanding.
For the A500 this is different, the 68000 can be emulated in a cycle exact way and thus should be the same speed as the real thing. |
29 April 2021, 12:22 | #3 |
Registered User
Join Date: Aug 2012
Location: Torelló, Spain
Age: 47
Posts: 93
|
So if I wanted to emulate an Amiga 4000 expanded with a 68060-based accelerator, I'd have to enable cycle-exact chipset emulation, cycle-exact CPU speed, and tweak CPU frequency in powers of 2 of 3.546895 (2x, 4x, 8x, 16x etc)?
I guess what I'm trying to ask is how I can have the fastest possible CPU emulation while keeping AGA stuff as accurate as possible... Last edited by PoulpSquad; 29 April 2021 at 12:35. |
29 April 2021, 13:20 | #4 |
Registered User
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,408
|
As far as I know, the only thing needed to keep the chipset (i.e. OCS/ECS/AGA) cycle accurate is enabling cycle accurate for the chipset itself.
The processor speed, however, is not going to be cycle accurate no matter what you put in for anything above 68010. There it's just a matter of choosing something that gets close enough to the desired speed. You want 'the fastest possible CPU', in which case you'd select 'Fastest Possible' in the CPU settings. This should not impact the chipset emulation at all. |
29 April 2021, 14:18 | #5 |
Registered User
Join Date: Jul 2013
Location: Liverpool
Posts: 2,595
|
I run 'Fastest Possible' ---
Why would you not ? |
29 April 2021, 14:43 | #6 |
Registered User
Join Date: Aug 2012
Location: Torelló, Spain
Age: 47
Posts: 93
|
Because some games act weird with fastest as possible. I think it could be because CPU is too fast.
|
29 April 2021, 14:54 | #7 |
Registered User
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,408
|
Yes, it's true that some software doesn't like an extremely fast CPU. Luckily, you can always create a secondary (or third, etc) WinUAE config that is the same but with a slower CPU setting
|
29 April 2021, 15:13 | #8 |
Registered User
Join Date: Aug 2012
Location: Torelló, Spain
Age: 47
Posts: 93
|
That's true, but where is the fun in that?
My idea is to use WHDLoad and and abuse uae-configuration. Still, I'd like to find a baseline configuration that is compatible enough to run most my stuff and yet fast enough to use a bloated GUI like AF or some such. I wasn't sure about those cycle-exact settings on chipset/CPU tabs, since they talk about Amiga 500/1200. Thanks a lot for your help everyone! |
29 April 2021, 19:34 | #9 |
Registered User
Join Date: Aug 2015
Location: UK
Posts: 58
|
The custom chips don't work any faster with a fast CPU, but as far as I know the cycle exact option on higher CPUs will still cause bus contention in chip RAM so the CPU has to wait around for the slower chipset when accessing chip memory.
|
29 April 2021, 19:36 | #10 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
|
As was already said, only 68000 (and 68010) is cycle-accurately emulated. Later models can't be emulated cycle-accurately because internal instruction sequencer timing is not known.
For most whdload games approximate speed or memory cycle-exact is fine (memory cycle exact = CPU is internally fastest possible but any "slow" access = chip ram/custom registers/CIA accesses are slowed down like on real hardware). Usually even fastest possible work. btw, don't attempt to to use CPU speed slider to "fix" specific games. Its CPU speed change effect can and will change between versions. |
29 April 2021, 20:00 | #11 |
Registered User
Join Date: Aug 2012
Location: Torelló, Spain
Age: 47
Posts: 93
|
So going full anal-retentive on CPU speed isn't going to help me.
Thank you guys for the tips, I appreciate it and makes things a lot clearer! By the way, I'm back after a 3 years hiatus and I'm amazed by the active community and the work you've doing on WinUAE. Thanks a lot Toni, your dedication is impressive indeed! Last edited by PoulpSquad; 29 April 2021 at 20:17. |
29 April 2021, 21:31 | #12 |
Retro Gamer
Join Date: Jan 2005
Location: Underworld
Age: 51
Posts: 4,058
|
If your issue is with WHDLoad games running to fast (not many do), you can edit WHDLoad start and end lines in S folder to change to cycle exact when WHDLoad launches (and disable cache) and enable it back when you properly close WHDLoad game.
ExecuteStartup=uae-configuration cpu_speed real cachesize 0 ExecuteCleanup=uae-configuration cpu_speed max cachesize 8192 |
30 April 2021, 01:47 | #13 |
Registered User
Join Date: Aug 2012
Location: Torelló, Spain
Age: 47
Posts: 93
|
Thank you Anubis for your help.
I am aware of uae-configuration and (ab)use it all the time! In fact I should probably try to tone it down a bit I am not currently using JIT, so that's great for games but sucky to move the weight of a Workbench in 256 colors with tons of icons and stuff. I am thinking about setting the standard configuration with JIT enabled, and disable it everytime I run a game, just as you kindly show in your example. I do have a few games that run too fast yes, but as you noted, they are not very common. My problem is more about AGA games that are riddled with artifacts when CPU is too fast/chipset is not cycle-exact. I have a bunch of them but I know there are very little things a proper ExecuteStartup can't fix. Speaking of which, I'm trying to get a list of options supported by uae-configuration, but I can't find it anywhere.* Also I'm having a hard time sorting the order in which I should use them in ExecuteStartup, but I guess this goes beyond the scope of this thread. *As easy as uae-configuration >options.txt Last edited by PoulpSquad; 30 April 2021 at 04:07. |
30 April 2021, 02:20 | #14 |
Registered User
Join Date: Feb 2021
Location: Moreton/England
Posts: 22
|
@Anubis
ExecuteCleanup=uae-configuration cpu_speed max cachesize 8192 Really we should put :ExecuteCleanup=uae-configuration cpu_speed max cachesize 16384 since WinUAE support 16MB cachesize. Otherwise our system will slow down after exiting game/demo. Am I right? |
30 April 2021, 12:59 | #15 | |
Amiga 500 User
Join Date: Jun 2013
Location: EU
Posts: 1,502
|
Quote:
I found this works best for me. For some problematic demo/game I usually change "CPU Frequency" to A500 and than return to custom again after problematic part is gone. |
|
30 April 2021, 13:16 | #16 |
Registered User
Join Date: Aug 2012
Location: Torelló, Spain
Age: 47
Posts: 93
|
Hello amilo3438,
Thank you for your suggestion, I would never have thought of that! I'll make sure to check this out later today after I get some rest! |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Cycle-exact | MarkW | support.WinUAE | 6 | 14 January 2019 07:46 |
AGA and cycle-exact (Fury of Furries) | Snake79 | support.WinUAE | 30 | 29 July 2014 22:09 |
cycle-exact or not? | brolly | support.WinUAE | 10 | 27 March 2012 16:18 |
Cycle-Exact | tim_calladine | support.WinUAE | 1 | 24 October 2008 15:57 |
Does "Cycle-exact" do nothing with the AGA chipset? | fmcpma | support.WinUAE | 10 | 26 October 2006 13:11 |
|
|