Music compatibility?

Edwards, on Jan 21 2006, 04:44 PM, said:

That can easily be worked around by changing the second string in STR# resource 130. Set it to "Nova Music.mp3", and the file's name should give you no trouble on either system. I have not tested whether this string has any effect on Windows.

However, the Nova-doesn't-play-music-without-type/creator-codes problem is a nasty one, and is probably caused by QuickTime, rather than Nova.
View Post

Bingo! Thank you Edwards, you have solved this problem completely! I thought I had already eliminated this idea but I've just found that the current Nova Music is not in fact an MP3 so if the codes aren't there then adding an mp3 extension won't help QT to recognise it. The correct extension is actually .mpg. Add this (and change the STR#) and Nova will play it fine without the codes :). So all you need to do for a TC is make sure your music has the appropriate extension (which would hopefully be mp3) and include a changed STR# in your data file.

This post has been edited by Guy : 22 January 2006 - 05:29 AM

I actually knew about the STR# resource, but I never mentioned it.

Doesn't Nova start playing the intro music before it starts loading the data files, though? Plus, do we actually know that if we include it in a data file it will load the STR# resource?

This post has been edited by orcaloverbri9 : 22 January 2006 - 10:08 AM

Oh my God. It works. Perfect. Impressive. Even better than Edwards thought. In fact the name itself isn't that important, we can tell the user to modify it. But we can't tell him to add type/creator codes. I thought that mp3 might give QT enough of a hint, but apparently not, and mpg is required for the Nova Music that ships with Nova.

However, such recognition based on file extensions is pretty typical of OSX. What about OS9? I investigated some more. So I checked the "open in classic environment" checkbox of the Nova app. Then I try to run it. But it tells me that I can't use plug-ins or modified data files... (I'm doing these tests with the voidspace TC to speed things up, so yeah, the void is useful for something!) As it happens, I never registered on OS9, so I had to enter the (expired, of course) code in the registration app launched in Classic environment too (ironically the first time it failed to renew, but the second time it did).

At first, bad news. While this works on OSX, it doesn't on OS9. However, I remebered that people would be more likely to include an ACTUAL mp3 file as intro music. So I took one mp3 files from the Harry musics (that I extracted and converted myself from the digital hell it had been cast to rot in, but now you can download them in the Harry add-on files thanks to me, and Zelda who posted them(end of self-promotion)), stripped it of its type and creator tags (I like to replace them by '????', this is actually quite common practice for "unknown tag"), put it in place of the tag-stripped Nova Music.mpg in my voidspace Nova Files, renamed it "Nova Music.mp3", and changed the STR# ID 130 to have "Nova Music.mp3" instead of "Nova Music.mpg".

First I launched Nova in OSX to be sure. It worked. Then I ran it in the classic environment. This is completely unbelievable, but it worked. That is, under OS9, QT (we're actually talking to QT now, Nova just sends the file with filename in STR# ID 130 to QT) doen't take .mpg but takes .mp3. So this does work.

Just because I'm anal like that, I tried .bin and zipping the voidspace Nova Files folder with orca's app. Then I unzipped it with something else than Stuffit, which means .bin files don't get expanded so that I obtain what a PC player would, to check that the Nova Music.mp3 indeed hadn't been binned; it indeed hadn't. Then I unzipped with Stuffit, checked that all stuff was there, renamed the obtained folder "Nova Files", and ran Nova, both in classic and OSX environment. And it worked both times. I'm still amazed.

orcaloverbri9, on Jan 22 2006, 03:07 PM, said:

I actually knew about the STR# resource, but I never mentioned it.

Doesn't Nova start playing the intro music before it starts loading the data files, though? Plus, do we actually know that if we include it in a data file it will load the STR# resource?
View Post

Nova just has to open the resource file containing the modified STR# resource, after that the magic of the Resource Manager search algorithm means that whenever Nova attempts to access the STR# with ID 130 it will find our one (yeah, all that plugs-that-override-data-files is thanks to the Resource Manager, i.e. thanks to Bruce Horn; I say we elevate a monument to this guy), and it opens all the resource files on hand pretty early: in a bad manipulation I in fact had a Nova Files folder without voidspace in it and it immediately complained about the missing resources. In fact you can even move the file with STR# ID 130 to the plug-ins folder and it still works.

So, problem at last solved a satisfatorily way (we need to check on the influence on PC people, but I don't think that STR# will make much of a difference - I'm willing to bet WinNova uses hard-coded names). By hacking so unbelievable I cannot believe it myself. However, this means stuff will get a little more complicated for the TC maker, but since these are fairly rare this won't be a huge problem.

So the instructions are:
- do or choose a music that's actually in mp3 format
- Name it Nova Files.mp3
- put a modified STR# ID 130 in your TC

In a somewhat related way, we need to make sure that no file other than plug-ins get binned when doing .bin and .zip, because otherwise the PC guy will obtain this file already binned, and since he's assumed not to have Stuffit he won't be able to do anything with them. This means no custom icon whatsoever in non-plugin files, for instance. If you need them, then no other choice than .sitx (and we can't do anything about it; it's already incredible enough we're able to get out of stuff like that with mere .bin.zip).

This post has been edited by Zacha Pedro : 22 January 2006 - 04:11 PM

It seems likely, then, that any QT-supported sound format can be used to replace the music for MacNova.

OK, now I'm just being mischievous. 😉 It sounds like it could be possible that WinNova might also be relying on QuickTime, so that pointing the STR# at something other than an .mp3 would work. If anyone feels like tinkering, you could try referencing a MIDI (.mid) file -- that would be interesting, since the files are so dramatically smaller....

And what happens if you reference a movie? It shouldn't behave in any useful manner as far as I can think, but....

ZP, have you tried .mpga? That might be the official extension. It's what iTunes gives it, at any rate.

That said, very cool. Actually, more out of idle curiosity than anything else...what happens if you put STR# 130 in Nova Music.mp3 itself?

orcaloverbri9, on Jan 22 2006, 04:07 AM, said:

I actually knew about the STR# resource, but I never mentioned it.

Doesn't Nova start playing the intro music before it starts loading the data files, though? Plus, do we actually know that if we include it in a data file it will load the STR# resource?
View Post

Yes, so did I, the problem was I previously incorrectly assumed the Nova Music was an mp3 file. Edwards' post prompted me to take a closer look.

And yes, I tested everything including the STR#-in-data-file before I posted that (if you put the STR# in the music file itself then it would work on a mac but you couldn't use it on windows). Zacha I don't know what you were doing wrong but the .mpg file worked fine for me in the Classic Environment (I removed the codes by zipping from the command line without binning). I'm not sure what you find so amazing about this though - if classic QT couldn't play files without codes then it wouldn't be able to play files downloaded from the net, which would suck pretty bad.

I'm currently waiting on a friend to test STR#s and stuff on windows...

Dr. Trowel, on Jan 22 2006, 10:21 AM, said:

It seems likely, then, that any QT-supported sound format can be used to replace the music for MacNova.

OK, now I'm just being mischievous. 😉 It sounds like it could be possible that WinNova might also be relying on QuickTime, so that pointing the STR# at something other than an .mp3 would work. If anyone feels like tinkering, you could try referencing a MIDI (.mid) file -- that would be interesting, since the files are so dramatically smaller....

And what happens if you reference a movie? It shouldn't behave in any useful manner as far as I can think, but....
View Post

Heh, no that's just being silly ;). True, any QT-supported format will work (even movies, though you won't see video) and MIDI files are indeed very small but they're also very low quality.

(EDIT):

orcaloverbri9 and Zacha Pedro said:

My ResEdit doesn't complain.

Eh? How come it doesn't complain for you guys? If I try to "Get File/Folder Info " on, say, the Nova Music file it says "The resource file was not found. (-193)". Instead I use this great little CM extension: FileUtilsCM.

orcaloverbri9, on Jan 20 2006, 05:50 PM, said:

By the way, it's spelled "compatibility". 😉
View Post

Ooh, how embarrassing :unsure:. Fixed now.

This post has been edited by Guy : 22 January 2006 - 07:04 PM

Guy, on Jan 22 2006, 11:28 PM, said:

Zacha I don't know what you were doing wrong but the .mpg file worked fine for me in the Classic Environment (I removed the codes by zipping from the command line without binning). I'm not sure what you find so amazing about this though - if classic QT couldn't play files without codes then it wouldn't be able to play files downloaded from the net, which would suck pretty bad.
View Post

Well, for me, with the codeless original Nova Music with .mpg extension, it worked in OSX but not in Classic. That might be because my version of QT on OS9 hasn't been updated, though. I can't check again or update QT to be sure, because my computer is in repair right now. As for the codes, most of the times they get added by the downloading software or the system at this point, but might not when unzipping a file or other such things under OS9, which enable the files to be recognised. OS9 has no native recognition of extensions, it only maps extensions to type and creator codes, that it adds to the codeless files it meets. What's amazing is that all this stuff merges to solve the problem a reasonable way.

Quote

I'm currently waiting on a friend to test STR#s and stuff on windows...

It probably won't work on Windows, it will only play Nova Music.mp3 no matter what. Indeed, the Nova app is run through the converter to produce Nova essentials.rez, that contains the name "Nova Music" in its STR# ID 130, which is obviously ignored, just as a version in a plug-in/data file will be. This means that the file will have to be a straight mp3 with extension .mp3, or you'll have to tell PC people to rename it to this.

By the way, it surely won't work with the STR# in Nova Music.mp3: how would it knows it needs to open the file with that name, if he has not had access to this modified STR# first? Not to mention that would give it a resource fork, which would defeat everything.

Guy, are you using ResEdit 2.1.3? That's the only version anyone should ever use. If it is this one, and it still complains, then redownload it and reinstall it (since you must have installed NovaTools in the prefs file as said, it shouldn't be affected).

Zacha Pedro, on Jan 23 2006, 06:02 AM, said:

It probably won't work on Windows, it will only play Nova Music.mp3 no matter what. Indeed, the Nova app is run through the converter to produce Nova essentials.rez, that contains the name "Nova Music" in its STR# ID 130, which is obviously ignored, just as a version in a plug-in/data file will be. This means that the file will have to be a straight mp3 with extension .mp3, or you'll have to tell PC people to rename it to this.View Post

(EDIT) Agreed, it probably won't work. Please disregard anything you may have seen here earlier.

However, it would still be interesting to know if changing any of the following STR# resources would have an effect in the game: 129, 130, 136, 137, 139, 140, 141, 900, 901, and 30000. These ten are defined in Nova.ini, as well as in Nova.rez (with the exception of 139, the screen brightness settings, which does not appear at all in Nova.rez).

Edwards

This post has been edited by Edwards : 23 January 2006 - 05:24 PM

Zacha Pedro, on Jan 23 2006, 04:02 AM, said:

Well, for me, with the codeless original Nova Music with .mpg extension, it worked in OSX but not in Classic. That might be because my version of QT on OS9 hasn't been updated, though. I can't check again or update QT to be sure, because my computer is in repair right now.
View Post

That was on a standard Classic Environment install (v6.0.3). I've just checked on a standard OS 9.2.2 install (v5.0.2) and that also worked.

Zacha Pedro, on Jan 23 2006, 04:02 AM, said:

As for the codes, most of the times they get added by the downloading software or the system at this point, but might not when unzipping a file or other such things under OS9, which enable the files to be recognised. OS9 has no native recognition of extensions, it only maps extensions to type and creator codes, that it adds to the codeless files it meets. What's amazing is that all this stuff merges to solve the problem a reasonable way.
View Post

Well now that you put it that way, I guess it is kind of amazing 🙂

Zacha Pedro, on Jan 23 2006, 04:02 AM, said:

By the way, it surely won't work with the STR# in Nova Music.mp3: how would it knows it needs to open the file with that name, if he has not had access to this modified STR# first? Not to mention that would give it a resource fork, which would defeat everything.
View Post

It's going to look in all files it finds, right? (tests...) Yeah, it works 😄

Zacha Pedro, on Jan 23 2006, 04:02 AM, said:

Guy, are you using ResEdit 2.1.3? That's the only version anyone should ever use. If it is this one, and it still complains, then redownload it and reinstall it (since you must have installed NovaTools in the prefs file as said, it shouldn't be affected).
View Post

Just tracked down the cause - the "Forker" extension which allows you to edit the data fork using ResEdit. If I remove this it stops complaining :rolleyes:.

This post has been edited by Guy : 23 January 2006 - 03:30 PM

Zacha Pedro, on Jan 23 2006, 10:02 AM, said:

By the way, it surely won't work with the STR# in Nova Music.mp3: how would it knows it needs to open the file with that name, if he has not had access to this modified STR# first? Not to mention that would give it a resource fork, which would defeat everything.

By opening everything. You may notice that it even tries to open the .DS_Store file and probably the icon file too. Think about it: Nova Files can contain a variable number of files. It just opens the stuff in there - there's no place they're defined.

Okay, at a quick glance it appears win Nova does not recognise a music file with a different name (in which case all music must be mp3). However if there's a windows developer reading this and is feeling helpful then feel free to investigate further. Maybe the string for the music name is kept somewhere else...

orcaloverbri9, on Jan 24 2006, 04:54 AM, said:

By opening everything. You may notice that it even tries to open the .DS_Store file and probably the icon file too. Think about it: Nova Files can contain a variable number of files. It just opens the stuff in there - there's no place they're defined.
View Post

Oh, yes, eh eh, didn't think of this. However, this still would mean giving a resource fork to the Nova Music.mp3, which would mean it would end up .binned and not usable for PC people without Stuffit.

The string Nova Music.mp3 has to be stored somewhere in WinNova, however, probably in a place on which we don't have any control (probably a data section/segment of the EXE).

Zacha Pedro, on Jan 26 2006, 10:31 AM, said:

Oh, yes, eh eh, didn't think of this. However, this still would mean giving a resource fork to the Nova Music.mp3, which would mean it would end up .binned and not usable for PC people without Stuffit.

Well, as I said, I was just curious. I know it's not a good idea.