English Amiga Board


Go Back   English Amiga Board > Coders > Coders. General

 
 
Thread Tools
Old 17 June 2010, 23:24   #21
yaqube
Registered User
 
Join Date: Mar 2008
Location: Poland
Posts: 159
Quote:
Originally Posted by pandy71 View Post
im curious that using fast CPU for example - can we create something like 1 low res or even 1 hires directly putting data - or access to register can't be made more frequent than for example 1 CCK ( or 1/8 SYSCLK)
The CPU can write COLOR0 register (or any other custom register) every 2 CCKs (4 lowres pixels). The DMA could write COLOR0 register every CCK cycle (2 lowres pixels). With simple register address transcoding for Denise (mapping BPLxDAT registers to COLOR0) we can have 12-bit highcolour chunky (interleaved) display mode with nominal resolution of 160 pixels per line.
yaqube is offline  
Old 18 June 2010, 08:44   #22
pandy71
Registered User
 
Join Date: Jun 2010
Location: PL?
Posts: 2,742
Thx Kalms, Yaqube,

So hardware overlay is not possible (with using Denise) - with some additional logic, inject data to one of the color registers and create video only on one particular color - it must be done outside Denise maybe with using ZD.
pandy71 is offline  
Old 18 June 2010, 12:12   #23
Thorham
Computer Nerd
 
Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 47
Posts: 3,751
Quote:
Originally Posted by yaqube View Post
The CPU can write COLOR0 register (or any other custom register) every 2 CCKs (4 lowres pixels). The DMA could write COLOR0 register every CCK cycle (2 lowres pixels). With simple register address transcoding for Denise (mapping BPLxDAT registers to COLOR0) we can have 12-bit highcolour chunky (interleaved) display mode with nominal resolution of 160 pixels per line.
I never knew this, sounds interesting. Can this be used in combination with normal bitplanes?
Thorham is offline  
Old 18 June 2010, 15:06   #24
yaqube
Registered User
 
Join Date: Mar 2008
Location: Poland
Posts: 159
Quote:
Originally Posted by Thorham View Post
I never knew this, sounds interesting. Can this be used in combination with normal bitplanes?
I hope you realize you need a hardware modification to achieve this.
yaqube is offline  
Old 18 June 2010, 15:19   #25
Thorham
Computer Nerd
 
Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 47
Posts: 3,751
Quote:
Originally Posted by yaqube View Post
I hope you realize you need a hardware modification to achieve this.
No, I didn't Perhaps I should have read the posts more carefully Thanks for clearing that up
Thorham is offline  
Old 18 June 2010, 23:14   #26
pandy71
Registered User
 
Join Date: Jun 2010
Location: PL?
Posts: 2,742
Accordingly to programmers - there is possible to do copper chunky 2x1 - 160 independent 12 bit pix on screen in 1 line - without any hardware modifications.

My question was bit different - external buffer, logic and inject buffer data as a color value to the Denise register - buffer outside CHIP bus - using only D0-D15, RGA1-RGA8 and some strobes etc
pandy71 is offline  
Old 19 June 2010, 00:11   #27
yaqube
Registered User
 
Join Date: Mar 2008
Location: Poland
Posts: 159
Quote:
Originally Posted by pandy71 View Post
Accordingly to programmers - there is possible to do copper chunky 2x1 - 160 independent 12 bit pix on screen in 1 line - without any hardware modifications.
According to hardware designers: that's impossible.

Quote:
My question was bit different - external buffer, logic and inject buffer data as a color value to the Denise register - buffer outside CHIP bus - using only D0-D15, RGA1-RGA8 and some strobes etc
The answer is still the same: the COLOR0 register can be altered at CCK rate, so no faster than every 2 lowres pixels.
yaqube is offline  
Old 20 June 2010, 01:09   #28
pandy71
Registered User
 
Join Date: Jun 2010
Location: PL?
Posts: 2,742
Yaqube - not directly by changing color register value but with clever manipulation of pixels and color registers - probably also interlace is used (i suppose as a vertical oversampling) - limitations of the copper are known and i don't argue with this.
pandy71 is offline  
Old 07 November 2013, 19:47   #29
spoUP
Registered User
 
Join Date: Dec 2002
Location: sweden
Age: 46
Posts: 430
any news chaps? if the c64 can get 8-bit sound the amiga should get fancy sound too!
spoUP is offline  
Old 07 November 2013, 20:24   #30
Thorham
Computer Nerd
 
Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 47
Posts: 3,751
Quote:
Originally Posted by spoUP View Post
any news chaps? if the c64 can get 8-bit sound the amiga should get fancy sound too!
For Amigas it's quite simple: You can do 14 bit stereo in 28khz using DMA, or 56khz if you use a double scan screen mode (this doubles the speed of the audio DMA for some reason).

I play CD quality WAV files on my A1200 in 44 khz (I always use a double scan mode), and they sound great.

Other than standard DMA audio playback, it might be possible to do playback with the copper if it can control the right audio registers, but then you have a limited number of screen colors available.

Simply using audio DMA is probably the most useful, and produces good quality.
Thorham is offline  
Old 07 November 2013, 20:37   #31
pandy71
Registered User
 
Join Date: Jun 2010
Location: PL?
Posts: 2,742
Quote:
Originally Posted by spoUP View Post
any news chaps? if the c64 can get 8-bit sound the amiga should get fancy sound too!
why not 16 bit? With Delta Sigma or with MASH, C64 should be able to produce 16 bit sound on 2 - 3 bits
pandy71 is offline  
Old 17 February 2021, 08:51   #32
AlexBruger
Registered User
 
Join Date: May 2020
Location: Austria
Posts: 11
Quote:
Originally Posted by yaqube View Post
This maximum sampling frequency is determinated by the DMA request logic from Paula to Agnus. On the first refresh slot the 4 pairs of AUDxDR and AUDxDSR signals are latched in the internal shift register. Then it's transmitted with a delay (TDM) on the DMAL line to the Agnus. [you can find more info in the Minimig's sources].

Very interesting is the fact that the maximum sampling frequency isn't the same for every audio channel. It depends on the delay from the first refresh slot to the moment the sample data is transmitted.

The minimum sampling periods for the audio channels:
#0 : 120 (121)
#1 : 121 (122)
#2 : 122 (123)
#3 : 123 (124)
In the parenthesis is the minimal value when the DSR (dma pointer reload from location register) request is transmitted (typical case when the sample length is 1).
Sorry for resurrecting such an old thread, but I was wondering if someone could explain how the AUDxDSR has influence on the sampling rate.
I get the explanation for the sampling rates without AUDxDSR but would have assumed they are the same with the AUDxDSR sent simultaneously.

My understanding is that the DMA pointer will only be updated by Agnus after the word has already been fetched, and since the next word is earliest fetched 227 cycles later (PAL) I can't see how it can have an impact.
The word is still written to AUDxDAT in the usual DMA cycles i.e. 13 for channel 0 or isn't it?
AlexBruger is offline  
Old 12 September 2021, 11:48   #33
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,504
Quote:
Originally Posted by AlexBruger View Post
Sorry for resurrecting such an old thread, but I was wondering if someone could explain how the AUDxDSR has influence on the sampling rate.
I get the explanation for the sampling rates without AUDxDSR but would have assumed they are the same with the AUDxDSR sent simultaneously.

My understanding is that the DMA pointer will only be updated by Agnus after the word has already been fetched, and since the next word is earliest fetched 227 cycles later (PAL) I can't see how it can have an impact.
The word is still written to AUDxDAT in the usual DMA cycles i.e. 13 for channel 0 or isn't it?
Later answer. I was finally testing this and looked at old threads if there was something I had already forgotten..

It seems to be Paula feature (As you already said, Agnus can't cause the delay).

If internal sample length counter == 1: counter is reloaded (1 cycle delay) and then AUDxDSR DMAL bit is generated. If internal sample counter != 1: AUDxDR bit is immediately generated.

This logic matches real hardware behavior in UAE. (Of course I can't be 100% sure this is exactly what happens inside Paula but it probably is close enough in
Toni Wilen is online now  
Old 15 September 2021, 06:22   #34
AlexBruger
Registered User
 
Join Date: May 2020
Location: Austria
Posts: 11
OK, I think I understand.
Just for clarification (all statements for PAL Amigas):

We have this steps in Agnus for sample counter != 1:
  • Paula realizes it needs another DMA Word (transition from state 011 to 010) and signals Paula internally AUDxDR.
  • At DMA Cycle 0 it copies AUDxDR to Paula internal Shift Register
  • At DMA Cycle 13 Paula signals to Agnus that it needs a DMA word

So the worst case is when Paula transitions back from 011 to 010 at exactly the DMA Cycle 0.
Then it takes 227 cycles until the buffered signal is latched to the internal shift register and another 13 cycles until it is signaled to Agnus.
That gives us 227+13 = 240 cycles or a minimum sample period of 120.

And this steps in Agnus for sample counter = 1:
  • Paula realizes it needs another DMA Word (transition from state 011 to 010) and first reloads the length counter and one cycle later signals Paula internally AUDxDSR and AUDxDR.
  • At DMA Cycle 0 it copies AUDxDR to Paula internal Shift Register
  • At DMA Cycle 13 Paula signals to Agnus that it needs a DMA word

So the worst case is when Paula transitions back from 011 to 010 at exactly the DMA Cycle -1 = 227.
Then it takes 228 cyles until the buffered AUDxDR signal is latched to the internal shift register and another 13 cycles until it is signaled to Agnus.
That gives us 228+13 = 241 cycles or a minimum sample period of 120.5 => 121.

Is that correct?
AlexBruger 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
High Quality reproduction of Audio on 8 bit. pandy71 Amiga scene 0 01 July 2013 15:08
Best Audio Config in Winuae for a Creative X-Fi Audio Card shaf support.WinUAE 2 14 June 2012 16:27
REQ: 17-Bit Artwork 2 (1988-04)(17-Bit Software) Sea7 request.Demos 5 13 May 2011 01:07
8 bit to optimized 6 bit palette histogram improvements needed NovaCoder Coders. General 0 14 April 2011 02:13
Simple 14 bit audio question... Thorham Coders. General 7 06 June 2010 10:55

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

Top

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