emkay Posted March 9, 2004 Share Posted March 9, 2004 Well .... there is no Font Size available to show how big my doubts are Now, come on.....didn't Sheddy's Space-Harrier have samples in it? That's graphics 7 too. I wonder how high his Samplerate is. I hope he reads this topic. MY doubts are belonging to "MCS and PCM". GR.7 is another drawer . only 3900Hz guys. think there'd be problems with 7800Hz with DLI's on as well, not that I've experimented much with sound. Thanks, Sheddy ....my words @Analmux Try to think about using PCM at a max of 3900Hz for the "low" tones and using POKEYs Generators for the Hi tones. You can even use POKEYS Generators to give the "low" PCM Tones clean hi-toned Harmonics. Using clean octaves and playing the tunes "NOT" 2 or three octaves to high, POKEY won't "cry his Balls out" (quotation of Sack/Cosine) Quote Link to comment Share on other sites More sharing options...
Sheddy Posted March 9, 2004 Share Posted March 9, 2004 For those who can't play the last version of the player on a real machine or have crappy emulators: Here's an mp3 (though just 22.050 kHz in 64kbps mode) http://www.phys.uu.nl/~bpos/mp3/play_dos.mp3 It's my real a8bit at work. -------- @ Sheddy: How did you generate the samples? synced with DLI or wsyncs (kernels maybe??), or a pokey-timer?? In the above context we already discarded the pokey-timer option for two reasons: -frequency byte is already used for normal channels (16bit and filter) so we can't have an independent audf samplerate. -pokey-timer IRQs conflict with DLIs That's why it would need to be implemented inside the DLI itself and synchronized with Wsync. Then I think it must be possible (I only think that ). And it should run at 7800 Hz (50% cpu time = maybe overkill) instead of 3900 Hz (25% cpu time = maybe best balance for ingame music). I had trouble with the WSYNC method, I found it was too easy to "lose" a whole scanline of time to it, if anything ran over, distorting the sound. At the moment I use code that constantly polls for VCOUNT changing. With a gr.7 type screen any DLIS using WSYNC can intermingle with the VCOUNT changes as long as the DLIS exits quickly after the WSYNC. Any VBI has to be kept to an absolute minimum as well. Ideally, instead, as Swiety says, it should be possible to use a Pokey timer though I didn't have much success with that approach. Quote Link to comment Share on other sites More sharing options...
analmux Posted March 9, 2004 Share Posted March 9, 2004 I have another idea fo playing samples when screen is turn on. For up and down border i can play my routine on normal POKEY IRQ. POKEY IRQ triggering on 1.79 MHz Channlel - every 2 raster lines. Why 1.79 - because if most simply for cycling routine. I calculated - at line i have 114 cycles , by two lines 228 cycles , 9 for refreshing memory when screen is turn off. 8 cycles for starting IRQ. Good idea, but then we loose one of the channels that otherwise could be used for a HiRes voice (16bit) or a filter. Then we can't have as much voices, like in Emkay's configuration: 2 HiRes 16bit/Filtered voices AND 2 PCM voices. Another thing: A decent IRQ handler takes a lot of logic, as you'd have to check and clear IRQST. Everytime an IRQ takes place, we loose cycles for pushing P,PCL and PCH on the stack. Then, when we return from the interrupt we loose also a few cycles. When the graphics starting i think that IRQ rutine must finish by STA $d40a and IRQ counter running at fastest speed. ??Do you mean; to be sure it will start at the right time at the bottom border of the screen?? I think it won't be needed: when we have a well defined IRQ rate we can keep it constant and we just disable AUDF1 (or other) timer in IRQEN when screen DMA is on (visible screen). And: Once the IRQ timer is synchronized correctly to the DMA scheme/wsync scheme you won't have to change a thing anymore, just by poking to $D209 at the right time (f.e. right after a wsync) To generate IRQ every 228 cycles will definitely need a HiRes voice/timer (16bits). Okay, then it's my turn to give a possible solution: We make a very special DLIST, with blank lines on the top/bottom borders of the screen (Antic mode $90 = 2 bllank scanlines + dli). I hope, I didn't experiment with it yet, that will work. Then we let the DLIs trigger the Sample Playback routine. When normal screen DMA is on, we can jump to the standard solution I described earlier: MCS/G2f + PCM = one big fullscreen kernel that stuffs registers. Quote Link to comment Share on other sites More sharing options...
Jaskier Posted March 10, 2004 Share Posted March 10, 2004 To generate IRQ every 228 cycles will definitely need a HiRes voice/timer (16bits). As long as I remember You are wrong in 2 aspects: -228 can be stored in one byte so You don't have to join the channels. -the main frequency of POKEY is 1/4 of scan line, so writing 7 to AUDF will cause IRQ to fire after every 2 scan lines. Quote Link to comment Share on other sites More sharing options...
emkay Posted March 14, 2004 Share Posted March 14, 2004 To bring them back to memory... Cybernoid Dancing POKEY Bladerunner Those songs are always done done with one POKEY and up to 200Hz programming as RMT is capable of. Quote Link to comment Share on other sites More sharing options...
emkay Posted April 16, 2004 Share Posted April 16, 2004 Anything new about this unbelievable piece of software? I hope saint(swiety) is watching the Atariage Forum frequently. Quote Link to comment Share on other sites More sharing options...
Dracon Posted April 16, 2004 Share Posted April 16, 2004 Swiety works, has own family and codes something for the upcoming ZELAX demo. By the way, I am about to help him with it (graphics side). So I think, Swiety will come back to this subject yet but not very soon.... Quote Link to comment Share on other sites More sharing options...
emkay Posted April 16, 2004 Share Posted April 16, 2004 Swiety works, has own family So he has a normal life? and codes something for the upcoming ZELAX demo. By the way, I am about to help him with it (graphics side). So I think, Swiety will come back to this subject yet but not very soon.... Any specs. for this demo you want to tell us? Quote Link to comment Share on other sites More sharing options...
Dracon Posted April 17, 2004 Share Posted April 17, 2004 So he has a normal life? Yes, he does. Any specs. for this demo you want to tell us? Well... what for? I guess it will be decent DEMOnstration, maybe it will blow your hungry eyes with some neat fx-es... who knows Let's wait for the QUAST party where it should probably be released.... Quote Link to comment Share on other sites More sharing options...
Saint (Swiety) Posted August 3, 2004 Share Posted August 3, 2004 Look at new stuff from Quast party ! Zelax demo is "Reditus" ! What do you thing about softsynth at open screen ???? I have normal life , i have wife and 1-year old daughter! Quote Link to comment Share on other sites More sharing options...
Tezz Posted August 3, 2004 Share Posted August 3, 2004 Saint (Swiety) Look at new stuff from Quast party ! Zelax demo is "Reditus" ! What do you thing about softsynth at open screen ???? Great stuff, and it works on the real hardware also. Really impressive stuff.I notice that of course Antic is now on and other routines are running How much CPU is left when running the routine? Quote Link to comment Share on other sites More sharing options...
Saint (Swiety) Posted August 3, 2004 Share Posted August 3, 2004 When screen is opened all Cpu time is used for wait for end of line (sta $d40a) , but on border i swithed routine to pokey IRQ (only softsynth loop) Other routines as orginal SID player, registry emulator and some more is running in normal loop. (It work 3-4 times slow than without IRQ) This technique give you clean sound without metalic distorsions and if orginal SID routine not get a lot of time , you can run simply routine - exemple vertical scroller - At demo i copy all screen 1 line up !!!!! Maybe at opened screen I can display TIP or RIP graphisc mode ??? I never try it . Quote Link to comment Share on other sites More sharing options...
Tezz Posted August 3, 2004 Share Posted August 3, 2004 Saint (Swiety) This technique give you clean sound without metalic distorsions and if orginal SID routine not get a lot of time , you can run simply routine It sure sounds the business, and there is time to run some (limited) routines wow. Maybe at opened screen I can display TIP or RIP graphisc mode Maybe in the next demo! ...if orginal SID routine not get a lot of time Would it be possible to just use 1 channel of SID for say the deep synth sound. Would your routine then use less CPU time? Enough to do more complex routines or even Pokey music mixed? Quote Link to comment Share on other sites More sharing options...
Saint (Swiety) Posted August 3, 2004 Share Posted August 3, 2004 Would it be possible to just use 1 channel of SID for say the deep synth sound. Would your routine then use less CPU time? Enough to do more complex routines or even Pokey music mixed? It possibe but you must reload Pokey irq registry and its problem for synchronization when screen is opened (Pokey IRQ's is verry stupid - it give you only one shot timer, it can't give me continous irq events without reloading registry that give a lot of distorsions because when antic stops Cpu (when refreshing memory or reading graphisc data) time for next irq is more than last event. I think is good idea for do table of timer values for all screen lines (maybe 2 lines) (based on $d40b first for synchro, and counting events next) but this technique get a lot of cpu because on all irq's events you must read table of values and check table pointer!) It verry dificult do this table for all screen because you must counting cycles whos get cpu and antic You must do another table for another display list ! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.