English Amiga Board


Go Back   English Amiga Board > Coders > Coders. Asm / Hardware

 
 
Thread Tools
Old 04 May 2021, 22:00   #1
DaveInFL
Registered User
 
Join Date: Apr 2021
Location: Florida
Posts: 48
Dual Playfield Scroll Demo

I am sure the answer to this is quite easy, but as I am new to programming in asm and trying to understand everything most of it, if not all of it, is above me

I am using FS-UAE on a Mac and I have installed Classic WB 3.1. I have the A4000 configuration set with 2MB chip ram, 64MB Zorro III Fast Memory using the 68040 CPU. I find this WB environment nice and responsive and easy to use ASMOne to enter the demo programs in Amiga Systems Programmers Guide. Most of what I have been running has been fine, except the dual playfield scroll demo. I suspect it's simply because the A4000 configuration is just too powerful/fast and as such the scroll demo looks super jerky, or it is simply scrolling so fast it appears jerky. When I boot up FS-UAE with the A500 config the demo runs perfect.

So, is there anyway I can get this to run with the A4000 configuration as it does on the A500, or is that simply just not possible?

I have attached the script for reference.

Sorry if this is something of a stupid question. I even tried running it under my A1200 configuration and that was ugly too.
Attached Files
File Type: s ScrollDemo.S (5.7 KB, 104 views)
DaveInFL is offline  
Old 04 May 2021, 22:24   #2
phx
Natteravn
 
phx's Avatar
 
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,511
The main loop waits for VPOS=16 and has not very much to do. I could imagine that a faster system might finish the work on the same raster line and, as a consequence, executes again immediately?
phx is offline  
Old 04 May 2021, 22:59   #3
DaveInFL
Registered User
 
Join Date: Apr 2021
Location: Florida
Posts: 48
Yes, that could be it. I'll take a look and see what I can do....break it probably...LOL
DaveInFL is offline  
Old 04 May 2021, 23:34   #4
DanScott
Lemon. / Core Design
 
DanScott's Avatar
 
Join Date: Mar 2016
Location: Tier 5
Posts: 1,213
As a quick fix, try waiting for line 16, then again for line 17 before proceeding
DanScott is offline  
Old 04 May 2021, 23:45   #5
DaveInFL
Registered User
 
Join Date: Apr 2021
Location: Florida
Posts: 48
Quote:
Originally Posted by DanScott View Post
As a quick fix, try waiting for line 16, then again for line 17 before proceeding
Thanks, that did the trick. However, the horizontal scrolling is not working correctly on the left hand side, the new block just suddenly appears instead of smooth scrolling onto the screen, like the horizontal screen is pushed over to the right so the new block is not appearing in the hidden part of the screen. When using the A500 configuration the horizontal scrolling is perfect, just smoothly comes in from the left hand side.
DaveInFL is offline  
Old 05 May 2021, 01:05   #6
DanScott
Lemon. / Core Design
 
DanScott's Avatar
 
Join Date: Mar 2016
Location: Tier 5
Posts: 1,213
Perhaps on the A4000 config, your code is running with data fetch mode (FMODE register) already set to 32bit or 64bit bitplane fetch ?

Maybe try clearing FMODE register where you also set up your DIWSTART etc..


FMODE = $1FC

move.w #$0000,FMODE(a5)
DanScott is offline  
Old 05 May 2021, 15:04   #7
DaveInFL
Registered User
 
Join Date: Apr 2021
Location: Florida
Posts: 48
Quote:
Originally Posted by DanScott View Post
Perhaps on the A4000 config, your code is running with data fetch mode (FMODE register) already set to 32bit or 64bit bitplane fetch ?

Maybe try clearing FMODE register where you also set up your DIWSTART etc..


FMODE = $1FC

move.w #$0000,FMODE(a5)
Dan, no idea what fetch mode is but I will give it a try and see what happens. Thanks for the suggestion.
DaveInFL is offline  
Old 05 May 2021, 15:24   #8
DaveInFL
Registered User
 
Join Date: Apr 2021
Location: Florida
Posts: 48
Quote:
Originally Posted by DaveInFL View Post
Dan, no idea what fetch mode is but I will give it a try and see what happens. Thanks for the suggestion.
Yup, that worked perfectly. Any chance you could explain just exactly what that did for me please?
DaveInFL is offline  
Old 06 May 2021, 13:41   #9
DanScott
Lemon. / Core Design
 
DanScott's Avatar
 
Join Date: Mar 2016
Location: Tier 5
Posts: 1,213
FMODE (fetch mode register) controls how much data is read by the DMA for bitplanes (and for sprites), and is an AGA only register.

When fetchmode for bitplanes is x2 or x4 (only available on AGA), it also affects DDFSTART/DDFSTOP and modulos. Also, the alignment in memory for x2 and x4 changes too.
DanScott is offline  
Old 07 May 2021, 15:26   #10
DaveInFL
Registered User
 
Join Date: Apr 2021
Location: Florida
Posts: 48
Quote:
Originally Posted by DanScott View Post
FMODE (fetch mode register) controls how much data is read by the DMA for bitplanes (and for sprites), and is an AGA only register.

When fetchmode for bitplanes is x2 or x4 (only available on AGA), it also affects DDFSTART/DDFSTOP and modulos. Also, the alignment in memory for x2 and x4 changes too.
Thanks for that explanation Dan.
DaveInFL 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
Dual playfield and bobs colours LeCaravage Coders. General 2 12 December 2020 11:52
16c single playfield vs dual playfield for bobs n sprites donnie Nostalgia & memories 1 20 January 2019 17:24
Dual Playfield Palette Assignments LuMan Coders. Blitz Basic 1 24 February 2016 15:35
Help with Dual Playfield Shatterhand Coders. Blitz Basic 15 14 December 2015 13:05
Dual Playfield BippyM project.Maptapper 6 03 July 2013 00:43

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 12:41.

Top

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