Jump to content
IGNORED

RMT2LZSS: convert RMT tunes to LZSS for fast playback!


rensoup

Recommended Posts

So I slightly tweaked the above version which will hopefully fix the 16bit tables, I have nothing to test so it's up to you @VinsCool ?

 

I planned a bigger change (individual AUDCTL settings per envelope) but it failed so I"m going to stick to what we've got even though it's inconsistent.

The 1.79mhz mode isn't activated by default when switching to 16 bit but you can do it with the envelope AUDCTL of course.

 

You can now select which frame to start from when doing the frequency reduction.

 

1.64 Apr 2021
    -added a switch for frequency reduction start
    -custom note tables are now completely split from RMT 1.28 unpatched
    -added Vinscool's latest custom notetables (V22)
 

Get it from the first post!

  • Thanks 1
Link to comment
Share on other sites

So as far as I could tell everything I expected worked as expected.
I need to test the 16-bit stuff further but it seems to be all good to me, tuning should be easy to do, unlike 8-bit I won't need to actually fight against limitations of pitch accuracy to get a decent table :D 

 

Distortion and Tables Test3.obx Distortion and Tables Test3.rmt Distortion and Tables Test3.erti

  • Thanks 1
Link to comment
Share on other sites

20 hours ago, VinsCool said:

So as far as I could tell everything I expected worked as expected.

I thought your recent tunes/remakes already used 16bit, but I guess it was all about the filters ?

 

so for PWM you use the filters ? and the SID like sounds are made using PWM ? and PWM are still square waves ?

 

Just curious!

Link to comment
Share on other sites

5 minutes ago, rensoup said:

I thought your recent tunes/remakes already used 16bit, but I guess it was all about the filters ?

 

Only 1 tune so far used 16-bit, but it was done manually since I didn't make tables yet :P 

6 minutes ago, rensoup said:

so for PWM you use the filters ? and the SID like sounds are made using PWM ? and PWM are still square waves ?

PWM, Filter, they're different names for the same thing there, to do the SID-like sound, yes it's all square waves with the filter applied, either with the hardcoded FILTER envelope or manually with AUDCTL (envelope in .erti) and fine tuning in 2 channels at once.

  • Like 1
Link to comment
Share on other sites

16 minutes ago, VinsCool said:

This is cool! sounds a lot like SID
seems like this is all done with volume only output, but this is very convincing I have to say.

Yeah, it's pretty smooth.

 

I like these two too.

 

[Note: PAL was the target; will play on NTSC fine, but the graphics glitch here and there.]

 

Megavania 2.xex

 

Meckzjoinskonami (ANTIC, Stable).xex

 

  • Like 1
Link to comment
Share on other sites

30 minutes ago, MrFish said:

Yeah, it's pretty smooth.

 

I like these two too.

 

[Note: PAL was the target; will play on NTSC fine, but the graphics glitch here and there.]

 

Megavania 2.xex 21.72 kB · 1 download

 

Meckzjoinskonami (ANTIC, Stable).xex 24.51 kB · 1 download

 

Hmm is there any special specs required for these 2?
I couldn't get any sound other than some noise in the first audio channel.

This looks like some sort of NSF Player/emulator? Really cool idea if I could get any sound that is :D 

Link to comment
Share on other sites

9 minutes ago, VinsCool said:

Hmm is there any special specs required for these 2?
I couldn't get any sound other than some noise in the first audio channel.

This looks like some sort of NSF Player/emulator? Really cool idea if I could get any sound that is :D 

I don't believe I've tried them on real hardware before (don't have anything set up right now either). They run fine in Altirra. So, not sure what the issue might be. How are you loading them, using a particular DOS?

 

Link to comment
Share on other sites

6 minutes ago, MrFish said:

I don't believe I've tried them on real hardware before (don't have anything set up right now either). They run fine in Altirra. So, not sure what the issue might be. How are you loading them, using a particular DOS?

 

Weird, I just tried to run the .xex in Altirra.
Didn't do anything special, clearly the executables work, I see numbers on screen, most likely the emulated NES registers, but as it goes, some noise percussions(?) is what I get.

Will try those on hardware at a later time :D 

[EDIT]: I think I found the problem, changing the RAM and model seems to do different results, may just be that.

Edited by VinsCool
Link to comment
Share on other sites

4 minutes ago, VinsCool said:

Weird, I just tried to run the .xex in Altirra.
Didn't do anything special, clearly the executables work, I see numbers on screen, most likely the emulated NES registers, but as it goes, some noise percussions(?) is what I get.

Will try those on hardware at a later time :D 

Yeah, there shouldn't be any problem in Altirra. I just tried using them with 64 KB and some things didn't sound right. Then I boosted up to 128 KB and everything seemed fine again. I usually have my emulator set to a meg of RAM, so wasn't thinking about it. Try changing your RAM, if that's applicable.

 

  • Like 1
Link to comment
Share on other sites

12 minutes ago, ivop said:

It's the power-up pattern of the memory. "Cleared" works, DRAM1 (for example) does not work. It assumes all memory is zeroed out. And 128K plus BASIC off ;)

Ahhh no wonder this worked strangely, I was on DRAM1 all that time.

Link to comment
Share on other sites

1 hour ago, ivop said:

"Cleared" works, DRAM1 (for example) does not work. It assumes all memory is zeroed out.

 

Yeah, I was gonna suggest that, as I'm always in that settings, and I know it's not the default.

 

BTW, some general source code for that is available. @andym00 has a thread here about it too -- but I can't seem to dig it up at the moment.

 

andym00 pulse wave sounds.asm

 

  • Like 1
Link to comment
Share on other sites

14 hours ago, MrFish said:

Speaking of filters, did you guys ever hear this one?

never, sounds pretty good!

 

2 hours ago, MrFish said:

BTW, some general source code for that is available. @andym00 has a thread here about it too -- but I can't seem to dig it up at the moment.

this one ? 

 

https://atariage.com/forums/topic/194436-interesting/?do=findComment&comment=2474496

 

 

Link to comment
Share on other sites

1 hour ago, rensoup said:

Yeah, I guess it is. I found that thread earlier today, but didn't think it was the right one; because I had thought he had a dedicated thread for what he was working on.

Anyway, pretty cool stuff... I've always liked the NES sound chip -- more so than the SID -- even though a lot of the music done on it is rather juvenile.

 

  • Like 1
Link to comment
Share on other sites

20 hours ago, MrFish said:

Yeah, I guess it is. I found that thread earlier today, but didn't think it was the right one; because I had thought he had a dedicated thread for what he was working on.

Anyway, pretty cool stuff... I've always liked the NES sound chip -- more so than the SID -- even though a lot of the music done on it is rather juvenile.

 

It deserved its own thread,it's very cool... too bad he never released more updates...

Link to comment
Share on other sites

Have you ever checked the stability outside the LZSS player? 

 

It works fine on itself, but in "Demos" the timing gets lost. 

What could it be?

 

It seems somehow that the replay has a special "position" in the LZSS Player, but the librarydoes something different. 

 

 

this is in a "demo"

 

 

 

 

This is how it should sound:

 

 

Check from 0:45 on

 

Link to comment
Share on other sites

What demo? How was the sounds generated? How was this converted? Is it always consistent? Many things need to be taken in consideration.
It really sounds like 2 entirely different versions of the same tune, and there is no reason why the whole instrumentation would sound so different, especially the volume envelopes themselves.
As far as I could tell the pulses are different due to the start timing itself in the first place, but that very easy to manipulate using commands 2xy on the first instrument frame

Some files/modules and more explanations would be nice to have, I do not speak on behalf of rensoup but there's no reason why so much difference would exist if the same data was used in each.
 

Link to comment
Share on other sites

3 minutes ago, VinsCool said:

What demo? How was the sounds generated? How was this converted? Is it always consistent? Many things need to be taken in consideration.
It really sounds like 2 entirely different versions of the same tune, and there is no reason why the whole instrumentation would sound so different, especially the volume envelopes themselves.
As far as I could tell the pulses are different due to the start timing itself in the first place, but that very easy to manipulate using commands 2xy on the first instrument frame

Some files/modules and more explanations would be nice to have, I do not speak on behalf of rensoup but there's no reason why so much difference would exist if the same data was used in each.
 

 

Let's say , it's "those intros with a scroller thing" . 

By all problems with RMT, but the player plays exactly the same. Alike, if the player is used or the "routines" that run in Demos. 

 

Seems, we need to define 100% how the LZSS player is working. Otherwise all development of PWM is stalled for "real stuff" . 

 

Link to comment
Share on other sites

1 minute ago, emkay said:

 

Let's say , it's "those intros with a scroller thing" . 

By all problems with RMT, but the player plays exactly the same. Alike, if the player is used or the "routines" that run in Demos. 

 

Seems, we need to define 100% how the LZSS player is working. Otherwise all development of PWM is stalled for "real stuff" . 

 

That did not answer my question though...
 

Link to comment
Share on other sites

12 minutes ago, VinsCool said:

That did not answer my question though...
 

My code shows some real time generated graphics on screen, uses DLI for additional colors and runs the dsmc player from VBI (direct as first thing, but that made no difference). The soundfile is not changed, just included into my intro. It's a pity, that this does not work - it's really frustrating.

  • Thanks 1
Link to comment
Share on other sites

1 hour ago, emkay said:

It seems somehow that the replay has a special "position" in the LZSS Player, but the librarydoes something different. 

 

38 minutes ago, VinsCool said:

What demo? How was the sounds generated? How was this converted? Is it always consistent? Many things need to be taken in consideration.

I suspect it's @pps's https://github.com/ppsberlin/tutorial_lzssplay_g2f_rasterconverter ? (it uses dmsc's original player)

 

@emkay: Can you confirm ? Because you message is a little cryptic (as often) and post both xex and the rmt ?

 

33 minutes ago, emkay said:

Let's say , it's "those intros with a scroller thing" . 

By all problems with RMT, but the player plays exactly the same. Alike, if the player is used or the "routines" that run in Demos.

We're going back to how the Pokey registers are updated but when I did some tests, you said it played the same no matter how I updated them.

 

-The RMT player loads 2 values and updates a pair of Pokey registers and then the next pair, then AUDCTL.

 

-dmsc's player decrunches each channel then updates the Pokey value, so there's a "long" delay between eahc update. The registers are updated in reverse order too starting from AUDCTL

 

-my optimized version of dmsc's player loads 1 value and updates  the corresponding Pokey register. So very close to RMT.

 

Seems you may have a pretty good test case there...

 

  • Like 1
  • Thanks 2
Link to comment
Share on other sites

I'm guessing my version plays correctly... but again, haven't got a clue why!

 

9 minutes ago, pps said:

My code shows some real time generated graphics on screen, uses DLI for additional colors and runs the dsmc player from VBI (direct as first thing, but that made no difference). The soundfile is not changed, just included into my intro. It's a pity, that this does not work - it's really frustrating.

the rmt file may help tracking down the problem...

  • Like 1
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...