vgmrips

The forum about vgm files
It is currently 2017-11-24, 9:27:11

All times are UTC + 1 hour [ DST ]




Post new topic Reply to topic  [ 5 posts ] 
Author Message
PostPosted: 2012-11-08, 5:45:51 
Offline

Joined: 2011-11-30, 17:26:44
Posts: 457
Location: Italy
I wonder, what we should do in the vgm packs if there are cases like Totaka's song (e.g. http://www.youtube.com/watch?v=Js7y-KOO7Gg), or like that song from Mario Kart 64 that loops 64 times before moving to the second verse (http://www.youtube.com/watch?v=Iqqsewbj5Qw). While the second example isn't very relevant since the N64 can't be logged to vgm, someone might actually want to make a pack of Super Mario Land 2, so the question stands: what to do in a case like that?

I wonder if it would be possible to implement the concept of extended / dynamic loop points in vgm files, maybe not as full blown as module patterns, but flexible enough to support things like this: [A] B (C × 5) D (GoTo B) instead of the current [A] B C C C C C D (GoTo B).

_________________
My webhost decided to shut down most of my webspace without a warning. If you find any broken Digilander link in any of my posts (basically all of them should be), please inform me.


Top
 Profile  
 
 Post subject:
PostPosted: 2012-11-08, 20:00:47 

Staff Staff
Programmers Programmers
Musicians Musicians
Contributors Contributors
Offline
User avatar

Joined: 2011-12-01, 20:20:07
Posts: 2853
Location: Germany
That's actually a very good question.
When I made the first submission to the SMSPower Music Contest, I already thought about adding support for A [loop B] C. But I threw the thought away quite quickly, because there would be no benefit for game rips and only little benefit for homebrew stuff.
I'm still not sure if extended looping would be a good idea. (And extended loop points will be difficult to handle when it comes to seeking.)

For now, you have 3 choices:
1. record the full loop: A B B ... B C [goto B]
2. hack the game (or the VGM) or play A B B C [goto B] instead of A B B ... B C (this would be nicer to listen)
3. strip the part off that plays rarely: A B [goto B]

I would prefer 2, but 1 is also okay. 3 is out of the question and is only listed for reference.


Top
 Profile  
 
 Post subject:
PostPosted: 2012-11-08, 20:06:57 
Offline

Joined: 2011-11-30, 17:26:44
Posts: 457
Location: Italy
Here is my idea (I know I just said this in IRC, but in this way people can discuss):
Code:
0x30..0x4E dd          : one operand, reserved for future use
(stuff) 0x4E 0x00 (more stuff) 0x4E 0xNUM (even more stuff)

The player detects the 0x4E 0x00 as the beginning of the loop and saves that position in memory, so when it encounters the other 0x4E it goes back a certain number of times. When seeking it could be ignored, but:
Quote:
<ValleyBell> but still ... it would look very odd in Winamp
<nineko> Right
<nineko> Then don't ignore it while seeking, and have Winamp calculate the "unrolled" length in advance
Just a random idea.

The 0x4E 0x00 can be replaced by a 1-byte unused command, too. In this way the start of the loop can be simply represented as 0xXX, and consider 0x4E 0x00 as a 0x4E 0x100 (e.g. 256 loops).

_________________
My webhost decided to shut down most of my webspace without a warning. If you find any broken Digilander link in any of my posts (basically all of them should be), please inform me.


Top
 Profile  
 
 Post subject:
PostPosted: 2012-11-09, 6:07:22 

Staff Staff
Programmers Programmers
Offline
User avatar

Joined: 2012-04-22, 4:03:45
Posts: 207
Location: New York, NY, USA
The Impulsetracker format uses SBx in a similar fashion.

Edit by Tom: removed full quote of post directly above.


Top
 Profile  
 
 Post subject:
PostPosted: 2012-11-09, 6:10:30 
Offline

Joined: 2011-11-30, 17:26:44
Posts: 457
Location: Italy
Yes, you could guess I got the idea from module files, since I'm an XM fanboy ;)

_________________
My webhost decided to shut down most of my webspace without a warning. If you find any broken Digilander link in any of my posts (basically all of them should be), please inform me.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 5 posts ] 

All times are UTC + 1 hour [ DST ]


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group