English Amiga Board


Go Back   English Amiga Board > Support > support.WinUAE

 
 
Thread Tools
Old 29 May 2010, 19:50   #1
hexaae
Bug hunter
 
hexaae's Avatar
 
Join Date: Jul 2006
Location: Italy
Age: 48
Posts: 2,161
whdload issue reintroduced?

Mmmmh, it was since WUAE 2.0.2b10 (2010.02.10) I didn't update WUAE...
Bad news to report: the mysterious WHDLoad freeze on game startup bug has been reintroduced with 2.1.0 and current 2.2.0b6. Moreover some games have serious timinig issues and are very slow, just like Dynablaster (always WHDLoad) that did work fine...
hexaae is offline  
Old 29 May 2010, 19:54   #2
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
This isn't 2.2 beta related either..
Toni Wilen is offline  
Old 29 May 2010, 19:56   #3
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
Can you find the beta that re-introduced this? All 2.1 betas should be still available for download.

EDIT: I can duplicate Dynablaster slowdown.

EDIT2: black screen issue is solved I think but in my opinion whdload should be modified because any "too fast" Amiga can trigger this condition if it also tries to handle hpos "offset". (vpos increments when hpos is ~4, not when hpos changes to 0!)

Last edited by Toni Wilen; 29 May 2010 at 20:28.
Toni Wilen is offline  
Old 29 May 2010, 20:36   #4
hexaae
Bug hunter
 
hexaae's Avatar
 
Join Date: Jul 2006
Location: Italy
Age: 48
Posts: 2,161
Quote:
Originally Posted by Toni Wilen View Post
EDIT2: black screen issue is solved I think but in my opinion whdload should be modified because any "too fast" Amiga can trigger this condition if it also tries to handle hpos "offset". (vpos increments when hpos is ~4, not when hpos changes to 0!)
Mmmh... I agree if this is the case.... would be great if you could convince Bert with technical motivations!
He's just about to release WHD 17.0.
hexaae is offline  
Old 30 May 2010, 11:54   #5
Wepl
Moderator
 
Wepl's Avatar
 
Join Date: Nov 2001
Location: Germany
Posts: 866
@Toni: does it hang inside whdload? can you give me a code snippet?
Wepl is offline  
Old 30 May 2010, 14:19   #6
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
I don't anymore remember the exact reason but it is this piece of code:

Code:
2FFD7B62 277c 0000 1004 0080      MOVE.L #$00001004,(A3, $0080) == $00dff080
2FFD7B6A 082b 0000 0005           BTST.B #$0000,(A3, $0005) == $00dff005
2FFD7B70 67f8                     BEQ.B #$fffffff8 == $2FFD7B6A
2FFD7B72 082b 0000 0005           BTST.B #$0000,(A3, $0005) == $00dff005
2FFD7B78 66f8                     BNE.B #$fffffff8 == $2FFD7B72
2FFD7B7A 377c 8280 0096           MOVE.W #$8280,(A3, $0096) == $00dff096
2FFD7B80 4a39 00bf e001           TST.B $00bfe001
2FFD7B86 082b 0002 001f           BTST.B #$0002,(A3, $001f) == $00dff01f
2FFD7B8C 67f2                     BEQ.B #$fffffff2 == $2FFD7B80
2FFD7B8E 4a39 00bf e001           TST.B $00bfe001
First possible issue is copper not being strobed, it is possible there is time to execute 1-2 copper instructions using old address (whatever that is) because vsync does not happen in same point as vpos changes.

If for some reason "old" adress is also 1004 or copper has been strobed earlier, first few moves at 1004 can be executed twice, copper pointer gets changed and this hangs because move to intreq never happens.

Polling until vpos is larger than 0, strobe copper, enable copper DMA should prevent all side effects even if timing is weird

Not sure if either is real problem but I remember it hanging in that INTREQR loop in JIT modes if hpos "offset" is emulated. (I disabled this now if JIT is enabled, it is pointless because JIT breaks required timing anyway )
Toni Wilen is offline  
Old 30 May 2010, 16:58   #7
Wepl
Moderator
 
Wepl's Avatar
 
Join Date: Nov 2001
Location: Germany
Posts: 866
Quote:
Originally Posted by Toni Wilen View Post
First possible issue is copper not being strobed, it is possible there is time to execute 1-2 copper instructions using old address (whatever that is) because vsync does not happen in same point as vpos changes.
I thought that waiting for vpos=0 would be sufficient for the copper address to get loaded.
Quote:
Originally Posted by Toni Wilen View Post
If for some reason "old" adress is also 1004 or copper has been strobed earlier, first few moves at 1004 can be executed twice, copper pointer gets changed and this hangs because move to intreq never happens.
I don't understand how this could lock the copper so that the write to intreq will be missed. The copper list only contains writes to custom registers.
Quote:
Originally Posted by Toni Wilen View Post
Polling until vpos is larger than 0, strobe copper, enable copper DMA should prevent all side effects even if timing is weird
Ok, I will change it that way.
Wepl is offline  
Old 30 May 2010, 17:02   #8
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
Quote:
Originally Posted by Wepl View Post
I don't understand how this could lock the copper so that the write to intreq will be missed. The copper list only contains writes to custom registers.
First instruction resets COP1LC and if strobe (vsync) comes after this, copper jumps to 1000, not 1004.

Quote:
Moreover some games have serious timinig issues and are very slow, just like Dynablaster (always WHDLoad)
This is odd one because it works without JIT but switching JIT off on the fly does not fix it, not even after reset..
Toni Wilen is offline  
Old 30 May 2010, 18:10   #9
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
[dynablaster slowdown]

Mumblemumble (difficult to talk clearly while wearing brown paper bag, sorry about that)

Lets try again.. krhm.. in some situations if JIT is enabled, reading INTREQR can return bit 15 set.. When this happens MOVE INTREQR to INTREQ causes some less than fun side effects..

EDIT: http://www.winuae.net/files/b/winuae.zip should fix this, please confirm.

Last edited by Toni Wilen; 30 May 2010 at 19:19.
Toni Wilen is offline  
Old 31 May 2010, 10:10   #10
hexaae
Bug hunter
 
hexaae's Avatar
 
Join Date: Jul 2006
Location: Italy
Age: 48
Posts: 2,161
Yes, Dynablaster now works fine.
ElfMania WHD always freezes after intro screen, but I think it's the same black screen freeze problem discussed above...
hexaae is offline  
Old 31 May 2010, 11:50   #11
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
Quote:
Originally Posted by hexaae View Post
ElfMania WHD always freezes after intro screen, but I think it's the same black screen freeze problem discussed above...
I thought this was already fixed.. Perhaps this is some other (new) issue..
Toni Wilen is offline  
Old 31 May 2010, 16:14   #12
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
Quote:
Originally Posted by hexaae View Post
Yes, Dynablaster now works fine.
ElfMania WHD always freezes after intro screen, but I think it's the same black screen freeze problem discussed above...
Black screen when screen mode switches for the first time? (before titlescreen appears?) I can't duplicate it.

Same black screen in other games that also had it few winuae versions ago?

btw, Elfmania whdload version pokes DSKPT and DSKLEN continuously (slave 1.2)

Code:
00080548 426c 00dc                CLR.W (A4, $00dc) == $00080384
0008054C 2b7a 073e 0020           MOVE.L (PC,$073e) == $00080c8c,(A5, $0020) == $00dff020
00080552 3b7c 1002 009c           MOVE.W #$1002,(A5, $009c) == $00dff09c
00080558 3b7c 4000 0024           MOVE.W #$4000,(A5, $0024) == $00dff024
0008055E 3b7c 8014 0024           MOVE.W #$8014,(A5, $0024) == $00dff024
00080564 3b7c 8014 0024           MOVE.W #$8014,(A5, $0024) == $00dff024
0008056A 487a 0032                PEA.L (PC,$0032) == $0008059e
0008056E 289f                     MOVE.L (A7)+,(A4)
00080570 4e75                     RTS.L
Toni Wilen is offline  
Old 31 May 2010, 17:54   #13
hexaae
Bug hunter
 
hexaae's Avatar
 
Join Date: Jul 2006
Location: Italy
Age: 48
Posts: 2,161
Quote:
Originally Posted by Toni Wilen View Post
Black screen when screen mode switches for the first time? (before titlescreen appears?) I can't duplicate it.
Elfmania WHD freezes 10/10 when the Terramarque logo screen appears for me... and I thought it could be the same kind of bug...
Doesn't happen with old beta WUAE 2.0.2b10 (2010.02.10)

EDIT: I was wrong. Runs fine with latest beta...

Last edited by hexaae; 31 May 2010 at 18:04.
hexaae is offline  
Old 01 June 2010, 09:34   #14
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
Quote:
Originally Posted by hexaae View Post
EDIT: I was wrong. Runs fine with latest beta...
Great
Toni Wilen 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
Issue with whdload and ACA1232? ascp project.WHDLoad 4 01 July 2013 21:55
WHDload controls issue csc2ya support.Amiga Forever 0 18 June 2013 03:46
whdload input issue MagikGimp support.WinUAE 3 24 July 2012 16:52
WHDLoad Keyfile issue DC33 support.Apps 19 12 July 2008 09:34
WHDLoad Issue [Mr_L] Amiga scene 0 19 January 2004 23:15

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 23:55.

Top

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