English Amiga Board


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

 
 
Thread Tools
Old 22 October 2019, 22:12   #21
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 44
Posts: 23,356
I don't know exactly how it works but there are lots of limitations because both Denise and Paula is horizontally synced using strobe signal only (first refresh slot).

Setting Agnus horizontal counter only affects Agnus. Denise and Paula won't notice it and CPU write to strobe register is only seen by Denise and Paula, it won't affect Agnus.

It is even more difficult with Paula because audio DMA slots are requested by Paula via DMAL line that transfers one bit per cycle (total two bits per disk/audio dma slot), initialized by horizontal strobe. It is also possible Agnus DMA accesses are ignored by Paula if they don't use correct cycles (relative to last strobe)

I guess it should be possible to "stretch" horizontal line a bit by moving horizontal counter backwards slightly (one or more times) but it probably is quite tricky without side-effects.

Memory refresh is also hardwired to hsync so too long horizontal line can cause random chip memory corruption. (I haven't checked any memory chip specs, don't know when horizontal length becomes too long)

Vsync is simple, nothing important depends on it (mainly vblank interrupt and copper restart. Note that vblank is triggered by Paula when it sees matching strobe, it is not generated by Agnus). Almost everything depends on hsync.
Toni Wilen is offline  
Old 23 October 2019, 00:00   #22
ross
Per aspera ad astra

ross's Avatar
 
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 49
Posts: 2,239
Quote:
Originally Posted by Toni Wilen View Post
It is even more difficult with Paula because audio DMA slots are requested by Paula via DMAL line that transfers one bit per cycle (total two bits per disk/audio dma slot), initialized by horizontal strobe. It is also possible Agnus DMA accesses are ignored by Paula if they don't use correct cycles (relative to last strobe)
Ok, better not touch audio DMA slots.

Quote:
I guess it should be possible to "stretch" horizontal line a bit by moving horizontal counter backwards slightly (one or more times) but it probably is quite tricky without side-effects.

Memory refresh is also hardwired to hsync so too long horizontal line can cause random chip memory corruption. (I haven't checked any memory chip specs, don't know when horizontal length becomes too long)
Ok, no stretching..


BUT an idea that has always occurred to me is to invert the BPL and SPR slots.
Better if I explain it with some ASCII art :
Code:
|shift| 0-----------------------------------319
$14-$1b $34-$3b $54-$5b $74-$7b $94-$9b $b4-$bb

$14($15)                                                           $de      $e0    $e1       $e2    $0
 |  $bf/$c1 $c3/$c5 $c7/$c9 $cb/$cd $cf/$d1 $d3/$d5 $d7/$d9 $db/$dd |resync lost oddcopper refresh copper
 |_   s0      s1      s2      s3      s4      s5      s6      s7
- Chipset AGA, FMODE=x4, lowres
- DDFSTRT=$14, 6x 64bit fetches (384 pixels, 320+full AGA shift)
- SPR DMAs totally denied by BPL
- at $bc or $be VHPOS reset to $14
- SPR DMAs start (background jingle: "Only Amiga...") and fills SPRxDATx
- all 16 DMAs 64 bits satisfied before the end of the video line
- at the new $34 reset to right $de value, line end naturally, CCK=227

On next line you have the SPRs at video on x-SPRxPOS.
Yes, one line after but you know it

And a great x-scrolling game at 320x256x8 with 8x 64px sprites

Fantasy Island?

Last edited by ross; 23 October 2019 at 09:47. Reason: fixed a cycle
ross 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
B channel DMA enabled during line mode? mc6809e Coders. Asm / Hardware 20 14 October 2014 23:29
Keep Active control panel "Line Mode" and "Interlaced Line Mode" Zilog request.UAE Wishlist 4 03 August 2014 00:08
Disable of Scanlines in Interlace mode Retro-Nerd request.UAE Wishlist 5 11 December 2012 14:26
Stop Interlace in AGA mode andy_blah support.WinUAE 135 21 August 2008 20:43
Is there a way to "fix" an older g-rex1200 to have 2 DMA slots? keropi support.Hardware 12 24 May 2006 19:03

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 15:50.


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