| |
MisterMSK Account closed
Registered: Jul 2009 Posts: 37 |
Play a SID in ACME
Hi All,
I wanted to first thank stranger so much for his help with adding a Koala picture into a program. It worked beautify. I am also interested into adding music to the program. I went to code base and they had two examples. I found a few SIDs using Pokefinder and made sure they had a start address of $1000. Anyway, when I tried them I got nothing coming from the good old commodore speakers. I loaded the SID up in a player and it played fine. Just curious if anyone here (which I know the answer to) :) has any experience with adding SID music to some assembler code and can point me into the right direction.
Thanks,
MisterMsk
|
|
... 18 posts hidden. Click here to view all posts.... |
| |
MisterMSK Account closed
Registered: Jul 2009 Posts: 37 |
Quote: I added some additional notes in this article, in order to make these things clearer for beginners:
http://codebase64.org/doku.php?id=base:simple_irq_music_player
..and while I am at it, I should also remind all the coders out there to keep adding stuff to codebase! (Well, there is in fact some contributions every now and then, so I am not complaining, but there could always be more. :)
Thanks, Frantic. It looks great. Nice instructions. Step-by-Step and everything.
Inge, Thank you for explaining the saving of the .DAT stuff. It helps. I tend to use HxD for Hex-Editing in Windows, quick and easy goto 7C and delete all before and save.
Ok... Lets gets a little deeper into this playing music code. I kinda' want to play the SID while the users choices from a menu. Since I have a menu in code already, I could put a routine around there. With the above code, Would I remove the hold statement and put the menu in between where the hold statement was? |
| |
Frantic
Registered: Mar 2003 Posts: 1648 |
Yes... If you want some sort of main loop running in your program, it should be instead of that jmp hold stuff. |
| |
Mace
Registered: May 2002 Posts: 1799 |
Quote:(...) saving of the .DAT stuff. It helps. I tend to use HxD for Hex-Editing in Windows, quick and easy goto 7C and delete all before and save. As Groepaz explained extremely briefly: you can also load a SID file with an offset of $7c+2 (header + load address).
This way there's no need to alter the file or convert it to another format.
You can just tell the assembler to only load the part you need. |
| |
MisterMSK Account closed
Registered: Jul 2009 Posts: 37 |
And of course, I run into another stumbling block. I created a SID, actually a MUS, using SID-EDITOR. Reading up on it, I found out why the SID/MUS was so small, it was that it did not put the player in it. Per the reference sheet posted earlier, it says you'll have to find code for an external player. So, looking through my books, Codebase64, and Google I am unable to come up with any. Codebase64 had one artical but it was not a MUS player. So does anyone know how I can get a MUS file playing? I see players so its got to be possible still. I even tried Sidplay2/w and converting it to a DAT but when you look at the file, it did nothing really to it. |
| |
Frantic
Registered: Mar 2003 Posts: 1648 |
No.. :)
The code in your original post should be the only "external player" required. Are you sure the .sid you're trying to play is actually supposed to be located at $1000? You can see that somewhere (probably in sidplay) if you check the info of the tune. It should say init address = $1000 and play address = $1003. Does it do that?
Also, I recommend using the !bin "file",,$7c+2 command (from within your ACME source) to be sure that you're not screwing the file up somehow.
...and change that $1000-2 to $1000 in the code of your first post in this thread. |
| |
MisterMSK Account closed
Registered: Jul 2009 Posts: 37 |
Frantic,
When I pull it up in Sidplay2/w, it shows as $0900. Which Sidplay2/w plays it fine. However, I was recomended Sid Player64 v0.5 and it does not play them. Other players seem to fine as long as they support that type of sid. You can download mskintro.mus and try for your self. Everyhing I have been reading says it needs player code but I do not see any listed anywhere.
MisterMsk |
| |
iopop
Registered: Dec 2001 Posts: 317 |
Contents of mskintro.mus,
00000000 90 71 0c 00 02 00 02 00 14 9d 14 9c 14 9d 14 91 .q..............
00000010 14 92 01 4f 01 4f 01 4f 20 20 20 20 20 20 20 20 ...O.O.O
00000020 4f 52 49 47 49 4e 41 4c 20 50 49 45 43 45 0d 20 ORIGINAL PIECE.
00000030 20 20 20 20 20 20 20 20 42 59 20 4d 52 2e 4d 53 BY MR.MS
00000040 4b 0d 20 20 20 20 20 20 20 20 20 4d 41 52 43 48 K. MARCH
00000050 20 33 52 44 20 32 30 31 30 0d 0d 00 3RD 2010...
Don't think any re-player apart from the "SID-EDITOR" will give correct playback on that data. |
| |
iAN CooG
Registered: May 2002 Posts: 3196 |
(self censor about sidplayer) :D |
| |
Frantic
Registered: Mar 2003 Posts: 1648 |
@MisterMSK:
What you have there is the header of the file, not the file, so to speak. (I am not even sure that it was a complete header actually.) ...and as Iopop says, that will of course not be possible to play anywhere. No song data in there whatsoever.
You should use the "other part" of the file.
Seriously.. Do what we suggested instead of using these weird programs. Just do a binary include of a playsid file ("*.sid") directly from ACME instead. You will notice that it actually works (as long as you include it on the correct adress).
So.. If the tune should be located at $9000, place it there, and use lda #0 / jsr $9000 to init the player and jsr $1003 to do the player calls once per frame. (If this is indeed the two adresses to use for init and player call--you can see this in the sid info too.)
|
| |
Inge
Registered: Nov 2003 Posts: 144 |
@Frantic: Obviously, as it is a .MUS file, he has made it with the old Compute's Gazette SIDplayer, which doesn't save the player routine, only the music data.
Sidplay2/w has built-in support for playing MUS-files, but Sid Player 64 hasn't.
@MisterMSK: I can just suggest that you
a) track down the sourcecode for sidplayer-playroutine. I'm sure I've seen it on a d64 somewhere.
b) use another, more modern music-program. There are dozens. |
Previous - 1 | 2 | 3 - Next |