| |
MrElijahGardner Account closed
Registered: Jul 2019 Posts: 7 |
Adding SID Music to Compiled Basic
I'm working on a new game. Here is an older video clip as the game has progressed quite a bit since then.
https://youtube.com/watch?v=o9wBsf8FM88
It is written in basic and then compiled. How can I go about adding Sid Music to it? Any suggestions?
Thanks in Advance |
|
... 5 posts hidden. Click here to view all posts.... |
| |
MrElijahGardner Account closed
Registered: Jul 2019 Posts: 7 |
I'm using Basic 64 It will let me change the program start memory |
| |
TheRyk
Registered: Mar 2009 Posts: 2244 |
Doing sth exactly once a frame in BASIC (even compiled) is tricky at least. That's why some mini ML part called only once via SYS and then setting up an IRQ would help.
An uncompiled example how to load ML code (and a .SID-file is nothing but ML code plus data) into areas outside of BASIC memory can be found here:
http://c64games.de/phpseiten/spieledetail.php?filnummer=336
Check out the very first 2 blocks file in the first disk image of the ZIP
It does nothing but loading 5 files ML, Charset ("Zeichen"), Sprites and Sounds and title screen into RAM higher than $9FFF and finally loading the MAIN code ("MF-PRG") |
| |
MrElijahGardner Account closed
Registered: Jul 2019 Posts: 7 |
Thanks for the example of loading the multiple files. That is easy I can handle that no problem.
My assembly skills are garbage. I know there isnt much to doing an IRQ but not really sure where to start. Is there an example you can point me to.
It would be really awesome if there was an easy way just to poke the IRQ routine into memory to then call the play once per frame part. |
| |
TWW
Registered: Jul 2009 Posts: 545 |
Well documented IRQ routine:
https://codebase64.org/doku.php?id=base:introduction_to_raster_..
EDIT: Use 0315/0315 instead of fffe/ffff and #$37 insted of #$35 for setting $01. |
| |
MrElijahGardner Account closed
Registered: Jul 2019 Posts: 7 |
#$35 for setting $01? This is because we don't want to turn the rom and kernal off correct? I'm not sure why we even need to mess with this address?
Use 0315/0315 instead of fffe/ffff? What is the address of interrupt code referring too?
I wasn't kidding when I said assembly isn't one of my strong point. I'm going to keep plugging away. All the help so far has been great. |
| |
4mat
Registered: May 2010 Posts: 66 |
Long while back I remember using Music Assembler for a few compiled basic things. Calling the save address automatically sets up an IRQ routine for you and plays the track.
Music-Assembler V1.0
But yeah better to have your own routine so you can set up different tracks and manually control them. |
| |
MrElijahGardner Account closed
Registered: Jul 2019 Posts: 7 |
Still trying to figure out music assembler but I think that is the easiest way to achieve the result I need. I tested it with some of the tracks on the disk and it does exactly what I need as long as it gives me some flexibility on the memory addresses.
I was getting ready to go play on the train tracks. THANK YOU |
| |
TWW
Registered: Jul 2009 Posts: 545 |
Quote: Long while back I remember using Music Assembler for a few compiled basic things. Calling the save address automatically sets up an IRQ routine for you and plays the track.
Music-Assembler V1.0
But yeah better to have your own routine so you can set up different tracks and manually control them.
Ok, I wrote a small IRQ routine which will play music while in Basic. The source and the actual machine code is shown below. You have to poke in the data to some address ($c000`perhaps) and update the 0314/0315 pointers and also change the music init and play jsr's.
Then you call the routine by sys 49152 or whatever it was $c000 was decimal.
EDIT: haha I quot'ed the wrong post, sorry. |
| |
MrElijahGardner Account closed
Registered: Jul 2019 Posts: 7 |
Thank you,
I'm getting it to work now (-: |
| |
Count Zero
Registered: Jan 2003 Posts: 1932 |
<offtopic>
This is Lemon talk.
</offtopic> |
Previous - 1 | 2 - Next |