PVsneslib - SNES JUKEBOX

Discussion of hardware and software development for Super NES and Super Famicom.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
Mills
Posts: 36
Joined: Tue Jul 01, 2014 3:30 am

Re: PVsneslib - SNES JUKEBOX

Post by Mills »

KungFuFurby wrote:Most of these songs I haven't heard of being converted to the SNES before... but three of them were previously utilized.

One of the songs you have, Satellite One, was used in the XMSNES demonstration ROM (so this is just a different sound driver). On a different note, Pollen Resurrection is actually the opening song to Skipp and Friends (and that has an earlier version of SNESMod on it... meaning this song is no different).
Plus, Pinball Dreams was already converted for SNES long ago because the actual game was ported over to the SNES. Thus, you should actually give the game a shot and compare that to the conversion you made. ^_^

Here is my contribution, with Super Quality audio samples! :D (that also means echo is not recommended for this song, as it's quite a large song!)

Wants Rock Badly for SNES Jukebox

Are you interested in a couple of Action 52 songs that I technically ported over to the SNES?
One of them is very familiar... the other not so familiar (that's because I used neither the NES nor Genesis version for this reference).

What is the intended color for the arrows, just out of my curiosity?
Thanks!.

I didn't like the pinball Dreams port so i took the amiga mod, and it sounds much better.. i think.

The rom is now 2 MB so we could make it 4 MB :) and fit a lot of your songs. Some of "my" songs are small and there could be two in the same rom bank, (i was not able to play them this way...)

Converting the IT, the biggest songs that i could convert are about 110 KB, I don't know if your song would fit without downsampling :)

If you look in the source folder the sprite of the arrows, they should look grey with a white border.

There are lots of awesome tracker songs, but most of them use a lot of channels :(
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: PVsneslib - SNES JUKEBOX

Post by tepples »

Can I supply a bunch of (small) S3Ms for the collection, or do I have to convert them to SPC myself first?
Mills
Posts: 36
Joined: Tue Jul 01, 2014 3:30 am

Re: PVsneslib - SNES JUKEBOX

Post by Mills »

tepples wrote:Can I supply a bunch of (small) S3Ms for the collection, or do I have to convert them to SPC myself first?
Don't convert them, just leave the files in it's original format.

Anyone knows how to rip gruntilda's laugh from the gruntilda's lair song (banjo kazooie)? I'd love to include that sample in the song for the jukebox.
KungFuFurby
Posts: 264
Joined: Wed Jul 09, 2008 8:46 pm

Re: PVsneslib - SNES JUKEBOX

Post by KungFuFurby »

Mills wrote:Converting the IT, the biggest songs that i could convert are about 110 KB, I don't know if your song would fit without downsampling :)
This is my proof that this works as actual SNES music without downsampling (as in, I used that exact same .it file to make this .spc file):

Wants Rock Badly .spc file

I pre-tested the conversion to .spc format before sending the .it file to you. Filesize of the .it file does not matter in certain cases (especially when downsizing to 8-bit samples has no difference in the final BRR filesize). Instead, I use a different method to determine whether or not the .it file fits...

I get the sum of all of the sample lengths using Schism Tracker, irregardless of 16-bit or 8-bit settings. End loop points represent the end of the sample if turned on (although ping-pong loop points results in additional length because it has to be unrolled), otherwise it is the entire sample.
For best results, loop points should be divisible by 16. Even then, you can end up with slight glitches in the samples, and therefore you have to manually adjust the samples.

A combined length of 100,000 is what I consider to be too much: technically the sample data still fits, but the pattern data will result in an almost guaranteed overflow.

I also use a hex editor to double check the filesize in the .spc file. :wink:

Speaking of which, one of those .it files you attempted to convert (tubular vectors) gave a memory overflow error on the converter... and yet you successfully loaded the song on SNES Jukebox. Actually, I've had this case before myself. There are two glitches, one of them potentially fatal, with this type of overflow:

- The first glitch only appears to occur when outputting .spc files (not soundbanks, and therefore your SNES Jukebox program is spared), but SNESMod, for some unusual reason, clears $FE00-$FF00 in SPC700 RAM, resulting in sample data loss. I know where this is happening (this is done for the echo, even when EDL is zero).
- There's a routine for handling streaming samples called through the TCALL opcode at $FFDE in SPC700 RAM. If this gets overwritten because of a memory overflow, then the sound driver crashes.
tepples wrote:
KungFuFurby wrote:Are you interested in a couple of Action 52 songs that I technically ported over to the SNES?
One of them is very familiar... the other not so familiar (that's because I used neither the NES nor Genesis version for this reference).
Is any of them "Think (About It)", "Cheetahmen", or "Calypso"?
Actually, both of them are technically the Cheetahmen, except one of them is the NES Action 52 commercial theme (still... the commercial features the Cheetahmen).
Last edited by KungFuFurby on Fri Jul 18, 2014 8:58 am, edited 1 time in total.
Mills
Posts: 36
Joined: Tue Jul 01, 2014 3:30 am

Re: PVsneslib - SNES JUKEBOX

Post by Mills »

KungFuFurby wrote:
Mills wrote:Converting the IT, the biggest songs that i could convert are about 110 KB, I don't know if your song would fit without downsampling :)
This is my proof that this works as actual SNES music without downsampling (as in, I used that exact same .it file to make this .spc file):

Wants Rock Badly .spc file

I pre-tested the conversion to .spc format before sending the .it file to you. Filesize of the .it file does not matter in certain cases (especially when downsizing to 8-bit samples has no difference in the final BRR filesize). Instead, I use a different method to determine whether or not the .it file fits...

I get the sum of all of the sample lengths using Schism Tracker, irregardless of 16-bit or 8-bit settings. End loop points represent the end of the sample if turned on (although ping-pong loop points results in additional length because it has to be unrolled), otherwise it is the entire sample.
For best results, loop points should be divisible by 16. Even then, you can end up with slight glitches in the samples, and therefore you have to manually adjust the samples.

A combined length of 100,000 is what I consider to be too much: technically the sample data still fits, but the pattern data will result in an almost guaranteed overflow.

I also use a hex editor to double check the filesize in the .spc file. :wink:
Hey thanks, thats what i did not understand.. is all about lengh not size :).

How do you keep the volume in the drum sample? in my converted spc's or soundbanks, the volume goes down and long samples fade out...

Unfortunately, many of the composers tend to use long looped "strings" samples, that have to be cut...
KungFuFurby
Posts: 264
Joined: Wed Jul 09, 2008 8:46 pm

Re: PVsneslib - SNES JUKEBOX

Post by KungFuFurby »

Simple: the fadeout (found in the instrument area) value is your culprint. SNESMod instantly fades out the samples instead of using the value on note off.

I never touch the fadeout for that reason, actually. Plus, I prefer using actual volume envelopes instead.
Mills
Posts: 36
Joined: Tue Jul 01, 2014 3:30 am

Re: PVsneslib - SNES JUKEBOX

Post by Mills »

KungFuFurby wrote:Simple: the fadeout (found in the instrument area) value is your culprint. SNESMod instantly fades out the samples instead of using the value on note off.

I never touch the fadeout for that reason, actually. Plus, I prefer using actual volume envelopes instead.
Never looked at that part in MPT :) Thanks!

I have to re-convert many of the songs now.
Mills
Posts: 36
Joined: Tue Jul 01, 2014 3:30 am

Re: PVsneslib - SNES JUKEBOX

Post by Mills »

A new version with improved songs, now 4MB rom because of some songs using two banks.

Is it possible to print fonts on top of a layer without erasing it?
I want to use mode 7, so the pvsneslib logo and the changing fonts-song names, must be at the same plane.
Attachments
JUKEBOX.zip
(1.11 MiB) Downloaded 160 times
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: PVsneslib - SNES JUKEBOX

Post by tepples »

Mills wrote:Is it possible to print fonts on top of a layer without erasing it?
Use a paint program to mock up a screenshot of what it's supposed to look like and I can explain how you might achieve that effect using the S-PPU.
Mills
Posts: 36
Joined: Tue Jul 01, 2014 3:30 am

Re: PVsneslib - SNES JUKEBOX

Post by Mills »

tepples wrote:
Mills wrote:Is it possible to print fonts on top of a layer without erasing it?
Use a paint program to mock up a screenshot of what it's supposed to look like and I can explain how you might achieve that effect using the S-PPU.
MODE 7 with 2 BKG: Rotating part (bkg1) using very few tiles, and the rest for the flat part (bkg2).

Image
User avatar
Bregalad
Posts: 8036
Joined: Fri Nov 12, 2004 2:49 pm
Location: Caen, France

Re: PVsneslib - SNES JUKEBOX

Post by Bregalad »

It is possible, but not using mode 7. You should simulate it using another mode, combined with scrolling updates, like in the game Axelay.

Alternatively you can simulate the static BG with sprites, in your cases it looks like feasible.
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: PVsneslib - SNES JUKEBOX

Post by tepples »

I'd go with simulating the second flat background with sprites.
Mills
Posts: 36
Joined: Tue Jul 01, 2014 3:30 am

Re: PVsneslib - SNES JUKEBOX

Post by Mills »

Then, How can i use the consoleDrawText function from pvsneslib to write text in sprites?
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: PVsneslib - SNES JUKEBOX

Post by tepples »

You might have to composite the text into sprite tiles yourself. Years ago, blargg and I wrote a 6502 variable width font (VWF) library that might be useful for something like this. The source code for this library is in vwf_draw.s in RHDE and the Action 53 menu.
alekmaul
Posts: 54
Joined: Tue Apr 24, 2012 12:22 pm
Contact:

Re: PVsneslib - SNES JUKEBOX

Post by alekmaul »

Mills wrote:Then, How can i use the consoleDrawText function from pvsneslib to write text in sprites?
You can't.
You need to put your text into a table, according to the tiles of your text and then transfert it to VRAM after a vblank.
Just take a look in pvsneslib in vbl function, you will see how I send text to vram during a vblank (it is in console.c, in consoleVblank function).
Post Reply