Jump to content
IGNORED

RMT & double speed in own assembler program


Recommended Posts

I run into following issue... got brilliant music track by 505 these days and while trying to hack everything together I run into following issue.

 

the song plays and sounds different on RMT 1.28. SAP and XEX sound nearly exactly like RMT but when using in my intro some instruments sound differently or seem at least to do so.

 

so question.

 

when using a double speed RMT track...what do I have to consider? I have called the replay routine twice per VBL.

 

...

jsr RMTPLAYER+3

 

jsr RMTPLAYER+3

...

 

but is that the right way to do it or do I need to spread the calls?

 

is there anything I need to setup manually in the RMTPLAYER.A65 or config file? I copied the config file from RMT but did not altered the player source.

 

any ideas welcome.

Link to comment
Share on other sites

Calling twice in VBlank means the sound registers get updated too close together - ie just several scanlines apart.

 

You could do the second call halfway down the screen in a DLI - or change the source of the RMT player so it does the sound register stores to some shadow registers instead.

On the first call, copy the shadows to Pokey registers straight afterwards. Use a DLI halfway down the screen and copy the shadows to Pokey then.

 

Second method handy if you're pressed for CPU time during active display which is often the case.

Link to comment
Share on other sites

When using double speed, you need to call the rmt_play soubroutine twice per frame, 156 scanlines apart. ie at scanline 0 and 156. When you call it in VBI twice in a row, you "degraded it to 50Hz ". Or you can call it twice in VBI, but remove SetPokey call in rmt_play routine and do:

 

jsr rmt_play
jsr SetPokey
jsr rmt_play

 

and in middle of screen some interrupt to call SetPokey. Correctly you should call Setpokey first as the audio registers should be updated at exact time (just adding some copying of registers from here there and back) but as I'm musically deaf, I think I would not recognize the "jitter" caused by variable rmt_play routine time.

Edited by MaPa
Link to comment
Share on other sites

When using double speed, you need to call the rmt_play soubroutine twice per frame, 156 scanlines apart. ie at scanline 0 and 156. When you call it in VBI twice in a row, you "degraded it to 50Hz ". Or you can call it twice in VBI, but remove SetPokey call in rmt_play routine and do:

 

jsr rmt_play
jsr SetPokey
jsr rmt_play

 

and in middle of screen some interrupt to call SetPokey. Correctly you should call Setpokey first as the audio registers should be updated at exact time (just adding some copying of registers from here there and back) but as I'm musically deaf, I think I would not recognize the "jitter" caused by variable rmt_play routine time.

 

People put a load of effort into adding that jitter and calling it 'humanising' anyway, so I wouldn't worry about it :)

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...