English Amiga Board


Go Back   English Amiga Board > Support > support.WinUAE

 
 
Thread Tools
Old 29 April 2021, 11:43   #1
PoulpSquad
Registered User

PoulpSquad's Avatar
 
Join Date: Aug 2012
Location: Vic
Posts: 37
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.
PoulpSquad is offline  
Old 29 April 2021, 12:13   #2
roondar
Registered User

 
Join Date: Jul 2015
Location: The Netherlands
Posts: 2,889
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.
roondar is offline  
Old 29 April 2021, 12:22   #3
PoulpSquad
Registered User

PoulpSquad's Avatar
 
Join Date: Aug 2012
Location: Vic
Posts: 37
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.
PoulpSquad is offline  
Old 29 April 2021, 13:20   #4
roondar
Registered User

 
Join Date: Jul 2015
Location: The Netherlands
Posts: 2,889
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.
roondar is offline  
Old 29 April 2021, 14:18   #5
Nobby_UK
Registered User
Nobby_UK's Avatar
 
Join Date: Jul 2013
Location: Liverpool
Posts: 1,832
I run 'Fastest Possible' ---
Why would you not ?
Nobby_UK is offline  
Old 29 April 2021, 14:43   #6
PoulpSquad
Registered User

PoulpSquad's Avatar
 
Join Date: Aug 2012
Location: Vic
Posts: 37
Because some games act weird with fastest as possible. I think it could be because CPU is too fast.
PoulpSquad is offline  
Old 29 April 2021, 14:54   #7
roondar
Registered User

 
Join Date: Jul 2015
Location: The Netherlands
Posts: 2,889
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
roondar is offline  
Old 29 April 2021, 15:13   #8
PoulpSquad
Registered User

PoulpSquad's Avatar
 
Join Date: Aug 2012
Location: Vic
Posts: 37
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!
PoulpSquad is offline  
Old 29 April 2021, 19:34   #9
teppic
Registered User

 
Join Date: Aug 2015
Location: UK
Posts: 43
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.
teppic is offline  
Old 29 April 2021, 19:36   #10
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 46
Posts: 24,786
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.
Toni Wilen is offline  
Old 29 April 2021, 20:00   #11
PoulpSquad
Registered User

PoulpSquad's Avatar
 
Join Date: Aug 2012
Location: Vic
Posts: 37
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.
PoulpSquad is offline  
Old 29 April 2021, 21:31   #12
Anubis
Retro Gamer

Anubis's Avatar
 
Join Date: Jan 2005
Location: Underworld
Age: 48
Posts: 3,228
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
Anubis is offline  
Old 30 April 2021, 01:47   #13
PoulpSquad
Registered User

PoulpSquad's Avatar
 
Join Date: Aug 2012
Location: Vic
Posts: 37
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.
PoulpSquad is offline  
Old 30 April 2021, 02:20   #14
Tomtom76
Registered User

 
Join Date: Feb 2021
Location: Moreton/England
Posts: 13
@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?
Tomtom76 is offline  
Old 30 April 2021, 12:59   #15
amilo3438
Amiga 500 User
 
Join Date: Jun 2013
Location: EU
Posts: 1,198
Quote:
Originally Posted by PoulpSquad View Post
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.
How about new WinUAE4900beta19 with quickstart config A1200 (basic or 4MB fast) and in options "CPU & FPU" change "CPU Frequency" to Custom 10.640685 value (that is half between A500 and A1200).
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.
amilo3438 is offline  
Old 30 April 2021, 13:16   #16
PoulpSquad
Registered User

PoulpSquad's Avatar
 
Join Date: Aug 2012
Location: Vic
Posts: 37
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!
PoulpSquad is offline  
 


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

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 05:43.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, vBulletin Solutions Inc.
Page generated in 0.10617 seconds with 13 queries