English Amiga Board Amiga Lore


Go Back   English Amiga Board > Support > support.Demos

 
 
Thread Tools
Old 07 May 2014, 19:05   #1
Leffmann
 
Join Date: Jul 2008
Location: Sweden
Posts: 2,017
Critical Mass by Parallax, what machine will it run on?

I'd like to see this demo: http://www.pouet.net/prod.php?which=57110

I've tried a bunch of configurations in WinUAE, but the demo always comes to halt a few minutes in. Before I try a billion other configurations, does anyone know a configuration that works for sure?

Thanks.
Leffmann is offline  
AdSense AdSense  
Old 07 May 2014, 19:17   #2
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 42
Posts: 19,657
I don't know because it also hangs on my real A500, not as quickly as in emulation but always before it has reached end part.

It uses same cia timer for disk timing and I think for music player and sometimes both use same timer at the same time..
Toni Wilen is offline  
Old 07 May 2014, 20:02   #3
amilo3438
Amiga 500 User
 
Join Date: Jun 2013
Location: EU
Posts: 1,116
It was already answered in amiga problematic demos thread (check always the 1st page):

answer 1 -> http://eab.abime.net/showpost.php?p=...&postcount=111
answer 2 -> http://eab.abime.net/showpost.php?p=...&postcount=112
amilo3438 is offline  
Old 07 May 2014, 22:36   #4
Leffmann
 
Join Date: Jul 2008
Location: Sweden
Posts: 2,017
I did a search here in support.Demos before posting, but I completely forgot about that thread. From the explanation, I guess there's no reliable way of getting it to run in WinUAE.

Thanks both of you.
Leffmann is offline  
Old 08 May 2014, 00:48   #5
amilo3438
Amiga 500 User
 
Join Date: Jun 2013
Location: EU
Posts: 1,116
Hold on ...

I was wondering, how they made then on BitWorld those pictures!

(on BitWorld is not mentioned OCS/ECS or AGA, so that must probably confused me while was testing problematic OCS/ECS demos)


So, it seems to work now on Quickstart A1200 (basic) WinUAE setting ! (tested on latest 2.8.0)

Note: Insert the 1st disk after WB screen is shown, otherwise maybe it wont boot!

(Also it wont boot if cycle-exact mode is OFF!)


So it works, but anyway got a black screen on disk 2 after reaching track 61 ?! (perhaps an QS A1200 CE issue!)

Hmm, now I am a little confused ... so, this must be then an AGA demo and not OCS/ECS demo ?! (it needs to be tested on an real basic A1200)
amilo3438 is offline  
Old 11 May 2014, 10:30   #6
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 42
Posts: 19,657
Of course it isn't AGA (A1200 didn't exist when demo was released, few months too early)

Anyway, because hanging bad wait code is used for disk stepping delays (and probably other disk delays), hang or not hang situation depends on lots of variables, including external variables like rotation rate of floppy and relative position of sectors between tracks.

Any kind of configuration may or may not hang. It is completely accidental if it works. Running it on my real A500 hangs slightly later than currently in emulation but it probably hangs differently if different disk drive is used, for example.

Code that hangs is simple:

start CIAB timer B
loop:
btst #1,$bfdd00
beq.s loop

Module player uses also CIAB timer A and interrupts. Module player can interrupt above waiting loop which isn't a problem because CIA interrupts have small delay which allows btst to always notice set bit before interrupt starts. (also CIA chips seem to have undocumented feature, interrupt line seem to never activate during CIA access = CS line is active)

There are also situations where vblank interrupt interrupts above wait loop, still not a problem. Vblank does not touch CIA registers.

It hangs when vblank interrupt that interrupted above wait loop gets interrupted by module player CIAB timer A interrupt. Module player interrupt clears CIAICR = waiting loop never sees bit 1 set anymore. Infinite loop.

Above wait loop should have tested CIA B timer B status bit, not interrupt status which clears when read.
Toni Wilen is offline  
Old 11 May 2014, 20:44   #7
Nobby_UK
Registered User
Nobby_UK's Avatar
 
Join Date: Jul 2013
Location: Liverpool
Posts: 828
All I get is a tumbling floppy disk and No Sound
(emulated A500+ with 1 meg chip & 1 meg fast)

I tried converting the DMS's to ADF (on ADF Opus)
and disk 2 produced an error (and an 869 KB ADF)

Last edited by Nobby_UK; 11 May 2014 at 21:03.
Nobby_UK is offline  
Old 11 May 2014, 20:50   #8
alexh
Thalion Webshrine
alexh's Avatar
 
Join Date: Jan 2004
Location: Oxford
Posts: 11,879
Quote:
Above wait loop should have tested CIA B timer B status bit, not interrupt status which clears when read.
Presumably the disk could be patched offline or memory could be patched at runtime using WinUAE to change this?
alexh is offline  
Old 12 May 2014, 12:41   #9
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 42
Posts: 19,657
Quote:
Originally Posted by alexh View Post
Presumably the disk could be patched offline or memory could be patched at runtime using WinUAE to change this?
Of course but it is not my problem
Toni Wilen is offline  
Old 18 May 2014, 18:05   #10
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 42
Posts: 19,657
I adjusted disk rotation speed by -0.05% and demo does not hang anymore..

Unless something goes wrong, this demo works in next winuae beta. (but at least my tested version now crashes after "floating vector cube" -part)

EDIT: Actually there is another better fix, reducing time that dskready bit takes to activate also seems to fix the demo..

Last edited by Toni Wilen; 18 May 2014 at 18:41.
Toni Wilen is offline  
Old 18 May 2014, 21:07   #11
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 42
Posts: 19,657
Crash before last part is demo bug (again), it does not disable copper DMA after last part ends, new part loads over old copper list which causes all kinds of bogus copper moves (including write to DSKLEN when loading new track -> crash).

But if chipset is OCS, some previous bogus moves trigger OCS-only "copper dangerous register" condition (OCS copper has smaller writable register range than ECS copper), stopping the copper before DSKLEN write, preventing the crash.

Unfortunately bad landscape data only works (accidentally) with 1M chip RAM. With OCS it hangs.

-> change chipset to OCS before last part to see the final image.

Crash before final image is A500 confirmed (Now it run without hanging, I guess due to different floppy drive), impossible to confirm if it works with OCS chipset without non-broken (which is still MIA) first disk.

This mystery is finally solved! (except non-broken first disk).
Toni Wilen is offline  
Old 25 May 2014, 22:16   #12
Leffmann
 
Join Date: Jul 2008
Location: Sweden
Posts: 2,017
Ok, I will check the demo again once WinUAE 2.8.1 is released. Thanks again.
Leffmann is offline  
AdSense AdSense  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Lionheart Parallax question trydowave Retrogaming General Discussion 9 02 June 2011 16:21
Parallax scrolling meant nothing to me until... killergorilla Amiga scene 26 12 February 2006 16:40
Parallax scrolling in DPaint (tutorial) Stein Retrogaming General Discussion 2 17 January 2006 22:18

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 00:24.


Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Page generated in 0.16289 seconds with 11 queries