| |
Henne
Registered: Feb 2005 Posts: 27 |
move SDI tune to different memory location
Hi!
I made a tune in SDI 1.8 and I want it to start at $b600 rather than $1000. I tried changing the start address in BM TASS. But the tune doesn't play at the new location.
What else do I need to change?
Anyone can help?
thx
Henne |
|
| |
SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
You can do 2 or 3 things:
Assemble to disk (arrow 5)
or put an .offs $xxxx after the *=$b100
to assemble to other memory (the code will still
be relocated to $b100, but you can now save it from f.ex 1000-xxxx)
or use the SDI packer, where you can change the address
|
| |
Henne
Registered: Feb 2005 Posts: 27 |
I tried saving the tune with <- 5, but it didn't work as expected.
I put the .offs at the start of the source. Do I have to set the offset AFTER *=$whatever ?
Didn't know that there was a SDI Packer. I'll check it out...
Thanks for your help! |
| |
SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
Quote: I tried saving the tune with <- 5, but it didn't work as expected.
I put the .offs at the start of the source. Do I have to set the offset AFTER *=$whatever ?
Didn't know that there was a SDI Packer. I'll check it out...
Thanks for your help!
.offs $xxxx should be put right after *=$b100
The packer packs the dumped files (with " name") with space in front of name.
packer:
SDI Packer V1.0
|
| |
Henne
Registered: Feb 2005 Posts: 27 |
Hey, thank you, rambones!
I finally managed to play the music from $b800! :)
I used the .offs method to save the tune from $1800-$2400 and then loaded it from $b800-$c400 in a monitor.
The "assemble to file" function in BM TASS doesn't seem to work right. The object file is always larger than the memory area used when assembling to memory.
|
| |
SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
Try the packer, see what it can do. |
| |
Oswald
Registered: Apr 2002 Posts: 5127 |
assemble to file will fail if you have more than one *=. disk access is much more sequencial than ram access. |
| |
Henne
Registered: Feb 2005 Posts: 27 |
Ah, ok. That explains why it didn't work. There are two *= in the file I assembled. |
| |
V-12
Registered: Nov 2003 Posts: 207 |
there is a relocator in the packer. I don't understand, why so much explainations ? Dump the file, load to packer and change the startaddress... I always do that because I want to put the name of the song after 2 jmp's :) |
| |
Henne
Registered: Feb 2005 Posts: 27 |
You can use the SDI packer to relocate a tune. But the packer uses $7de8-$ffff and I wanted my tune to start at $b600. So it didn't work with the packer. |
| |
6R6
Registered: Feb 2002 Posts: 246 |
@Henne:
There's 2 solutions:
solution 1:
-----------
(Lets assume your tune range is $1000-$2140 packed)
1) Dump, assemble and save the tune to $1000-$2140
2) Load and run the SDI-Relocator:
SDI Relocator V1.04
This tool requires Action Replay to be able to save
under ROM (a000-c000 and d000-ffff), but there's an manual method aswell..
3) Select your tune to relocate and press return.
Set relocate adress with + and - and press return to save.
4) If you dont have Action Replay:
Save memory 1000-2140 (this memory area contains the relocated player + data) and change the load adress
for this file to the relocation adress you wanted.
(You can also use vice monitor to do this )
Solution 2:
-----------
Conver the player source to pc text from turboassembler
using the write to sequntial file command.
Convert that file to pc-text mode and use it
with turboassembler v1.45 (singular crew) for pc.
To use a dumped tune: convert the dump to pc-text format
and use '.include yourtune.txt' in the player source.
Hope that works.
Solution 1 worked for me with sdi v1.8
GRG/Shape
|