| | Stainless Steel
Registered: Mar 2003 Posts: 966 |
Sid Duzz It
Hi'yall,
I was wondering who else is using Shape's SDI editor around here. I would like to talk about the editor with other users about their experiences with it and maybe some technical blah blah aswell.
Cheers! |
|
... 169 posts hidden. Click here to view all posts.... |
| | SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
it works and dont change the adresses.
look very carefully - the last used address is 0fff, not 1000!
when you move the code, the byte which is used as counter must be changed, the byte for jmp table self mody must be changed too.
just use it as is, it only goes to 0fff |
| | clonK Account closed
Registered: Aug 2008 Posts: 65 |
This is what I did. Code starts at $0FCA. This works with normal sid players but not with sidplay2 on the PC:

If I try inputting the code starting at $0FCB, then the last ORA overwrites $1000 with BRK. If I load the tune after I write the code starting at $0FCB, then $0FFF changes from ORA #$00 to ORA #$4C:

So, now I totally confused.
p.s. down with using emulators to listen to C64 music, but there are a lot of people out there that do and each to their own. I'm a sound man at heart and there aint nothin as good as the real circuitry no matter what anyone may argue back at me. Convenience can bleh... convenience don't make sound.
|
| | SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
if you overwrite 0fff/1000 with anything wrong, you overwrite it with something wrong :)
try loading the tune like this: L"tune",8,1000
dont be fooled by offbeat byte display.
when you want to see that 1000 is ok, write: "D1000"
in your picture, the music starts at 1003, so clearly you have loaded it there, which is wrong.
when you write D 0FFF, and it says ora #$4D, its correct!
the 4D is in 1000, and means JMP, so actually nothing is wrong!
use the code i pasted, save it 0fcb,1000 with monitor, and load your tune to 1000, and all is correct. |
| | Stainless Steel
Registered: Mar 2003 Posts: 966 |
Wasn't it 4c for JMP ? |
| | Stone
Registered: Oct 2006 Posts: 177 |
@clonK: What you seem to be missing is that the 6510 machine language instructions take up either 1,2 or 3 bytes of memory. ORA #Imm in particular, takes up 2 bytes. The first byte ($0fff) is the actual instruction op-code and the second ($1000) is the instruction operand, or parameter if you will. Thus any change to address $1000 (which would occur if you load something to this address), will be seen as a change to the disassembly of the (2-byte) instruction at address $0fff. If nothing else, the disassembler should give you a hint about what's going on: The next instruction disassembled is not at $1000, but at $1001. |
| | clonK Account closed
Registered: Aug 2008 Posts: 65 |
Quote: if you overwrite 0fff/1000 with anything wrong, you overwrite it with something wrong :)
try loading the tune like this: L"tune",8,1000
dont be fooled by offbeat byte display.
when you want to see that 1000 is ok, write: "D1000"
in your picture, the music starts at 1003, so clearly you have loaded it there, which is wrong.
when you write D 0FFF, and it says ora #$4D, its correct!
the 4D is in 1000, and means JMP, so actually nothing is wrong!
use the code i pasted, save it 0fcb,1000 with monitor, and load your tune to 1000, and all is correct.
I had not loaded it to $1003, I had definitely loaded it to $1000. Look again at the first image; $1000 is jmp $1906, exactly the same as where I loaded the music in the second image, but, as I wrote, $1000 gets overwritten by the ora #$00 which is at $0fff. Read the text in the bottom image, below where I did d1000 to show what the value of $1000 became after I changed $0fff.
Anyway, I'm going to try this all again and not bother that $0fff turns into ora #$4c, and see what happens then.
Fingerz crossed
|
| | clonK Account closed
Registered: Aug 2008 Posts: 65 |
Cool. It's all working now :)
Thanks a lot.
The thing that stumped me was that I thought 0fff had to be ORA #$00, but I left it as:

and that works.
Another thing that stumped me was that in Sidedit I have to make sure to leave the loadAddress at $0000 otherwise sidplay2 won't play it but the mmc replay sid player will.
So, actually, that was the only problem with the code I started at 0fca. That is by the by now though because I know I can start at 0fcb now and let 0fff become $4c.
Thanks again :)
Finally |
| | SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
well, if you understand the small routine, you can place it anywhere. |
| | clonK Account closed
Registered: Aug 2008 Posts: 65 |
Hey all... A few questions regarding the SDI player.
I know to make sure that I don't have any pointers to empty instruments, filter table, etc, etc, but I'm having a problem where my tune doesn't sound right when I use the sync bit. I'm starting to suspect that it's because I'm using the sync bit on channel 3. But it sounds fine in the editor. hmmm. I dunno... I'm not an expertXor.
Question 1:
I have used instruments 00 to 10, but I found I didn't need to use INST number 06 in my sequences, so I've just filled it with zero's. Do I have to shuffle all my instrument programs back to fill the gap left by instrument 06? I suppose I could do this by switching the last (10) instrument to 06. Would this have an effect on the player?
Question 2:
After building up a track I have used sequences up to $44 but there are 12 sequences scattered within that range that I have set to "unused" because they are not needed in my arrangement any more. Would this have an effect on the player? If so, I'd have to spend an age (5 hours at least) having to shuffle them about.
Question 3:
Why are z8 and z9 just a list of zero's?
What are z8 and z9?
I can send my sdi tune on request if someone is interested.
Cheers. |
| | SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
Quote: Hey all... A few questions regarding the SDI player.
I know to make sure that I don't have any pointers to empty instruments, filter table, etc, etc, but I'm having a problem where my tune doesn't sound right when I use the sync bit. I'm starting to suspect that it's because I'm using the sync bit on channel 3. But it sounds fine in the editor. hmmm. I dunno... I'm not an expertXor.
Question 1:
I have used instruments 00 to 10, but I found I didn't need to use INST number 06 in my sequences, so I've just filled it with zero's. Do I have to shuffle all my instrument programs back to fill the gap left by instrument 06? I suppose I could do this by switching the last (10) instrument to 06. Would this have an effect on the player?
Question 2:
After building up a track I have used sequences up to $44 but there are 12 sequences scattered within that range that I have set to "unused" because they are not needed in my arrangement any more. Would this have an effect on the player? If so, I'd have to spend an age (5 hours at least) having to shuffle them about.
Question 3:
Why are z8 and z9 just a list of zero's?
What are z8 and z9?
I can send my sdi tune on request if someone is interested.
Cheers.
1. only used instruments are dumped when you make the final dump to sourcefile, so the instruments will get rearranged and get new numbers, taking only used data out
2. same here, only used sequences will get dumped, and all will be renumbered in the final dump
3. z8 and 9 are instruments. if they are dumped and say just 0, then they are somehow linked to something (used), and they have been dumped even when you didnt want to. dont delete them in the source, they are active. and when this has happened, that empty instruments are dumped, you cant get rid of them again, because its a bug. :D
edit your song to have really empty instruments, with no linked data in them, and try to dump the tune again to get rid of the empty z8, z9 etc.
anyhow, they do no damage, and you just 'waste' a few bytes there.. |
Previous - 1 | ... | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | ... | 18 - Next | |