| |
8bitforever Account closed
Registered: Oct 2009 Posts: 48 |
Four split rasterbar with moving color and music
Eight hours ago I proudly coded a wonderful stable four split rasterbar with the colors moving within the rasterbar with different timing.
The stable raster was provided by http://www.ffd2.com/fridge/vic/stableraster.txt.
Three hours ago I got the idea to play some music to.
I tried to place jsr $1003 in irq3. I tried to place jsr $1003 in the main or hold loop and start it at a specific raster location. The music plays fine with both methods but my wonderful four split rasterbar starting location seems to move by 1 or 2 cycles. This makes the rasterbar move slightly to the right and back. It almost moves to the music.
Question 1) What is the reason for this ?
Question 2) What can be done to make it stable again ?
|
|
... 16 posts hidden. Click here to view all posts.... |
| |
Stryyker
Registered: Dec 2001 Posts: 468 |
Look for what a proper stable raster interrupt is. There have been discussions on this forum about them. I found double interrupt the easiest to use especially if there are no sprites. There are some docs somewhere that description what the processor does when an interrupt is triggered.
I suspect what has happened is without the music the rest of the code falls in to nice cycle use. Music will be much more variable.
Do you use PAL or NTSC configurations? |
| |
8bitforever Account closed
Registered: Oct 2009 Posts: 48 |
Stryyker, I use PAL.
Yes, the split rasterbars are perfect without the music.
Where should I put the music to be able to handle it´s variable cycles ?
The music seems to push the starting point of the rasterbar by one or two cycles variable. The rasterbar jumps to the right and then back.
The rasterbar is in irq2.
The music in irq3. |
| |
8bitforever Account closed
Registered: Oct 2009 Posts: 48 |
Thanks PAL, :-)
You lead me to it Stryyker !
The NOP:s I forgot to remove in fungus code.
; nop ;<--- remove 1 NOP for PAL
Very simple !
Problem Solved.
Now the music plays and the split rasterbar is stable.
|
| |
plagueis Account closed
Registered: Dec 2007 Posts: 48 |
Nice, a little bit longer and you would have solved that completely on your own.
Here's something that will help you with simple visualization of basic timing issues:
In your IRQ's (or $d012 wait loops) do this:
IRQ:
inc $d020
jsr music
dec $d020
dec $d020
jsr effect
inc $d020
...
etc.
This will help you determine how much raster time a subroutine takes up, and where in the frame it occurs. Also, it will point out on what line a raster collision between two routines occurs. This is a common basic technique, known to basically everyone when they are starting out. Many people told me about this simple technique and showed it to me 2 years ago when I was starting out, and it is well known. It helps greatly for NTSC/PAL fixing projects as well. Of course, beginning to familiarize yourself with how many cycles common opcodes use in their various addressing modes is the most beneficial toward this end.
-DP |
| |
pmc Account closed
Registered: Sep 2009 Posts: 5 |
@ Darth Plagueis - I couldn't agree more with the things you said about the process of learning to code.
I've been coding for about two years now too - my stuff is mainly on the Amiga - I'm in the process of working on a megademo for A500 with a couple of other guys that will be released soon we hope.
I did do a 1x1 scroller for the C64 a while back though in KickAssembler and read the VIC article and some other things cos I'd like to maybe do something for the C64 too one day.
When I code something I, just like you, code it *myself* and if I ask for help I want pointers, not a slab of source code that I don't understand to paste onto the screen and kid myself I'm a coder... There's no fun in that and whatever got produced that way would only ever be one thing: L A M E
I personally think that coding the C64 is a real challange with all the cycle exact requirements and tricks you can do with the hardware and stuff and I'm always really impressed by what all the guys on here can do with that cool little machine.
Anyways, I'll stop rambling now.
Keep going with your coding journey DP - I enjoyed your Hallowfoe demo and I hope there's more to come! :-) |
| |
plagueis Account closed
Registered: Dec 2007 Posts: 48 |
PMC,
Thank you for your compliments regarding FOE's recent release. The Phantom's sprite DYCP in the borders was something really nice too, and his methods for stabilization are quite different than mine, yet his code works just as well.
Yeah, regarding the cut and paste coding...he'll only damage his own fun by taking this route...and true, some of what he's said and done is the very definition of lameness, yet - I can't well complain about that type of behavior unless I (esp. as a new/intermediate coder) have tried to do or say something to guide him in a more productive direction. Well, I've done that (both in PM and on the forum), and he seems to have ignored the bulk of what I've said, not to mention the others who have given the advice of shutting up and starting at the beginning. So, I suppose for now, he's on his own.
-DP |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
I have used little routines I havent coded myself ever since I started coding. The very first one I had no idea how worked, did set up an irq. Still it did not stop me making my rasterbars, fld (also ripped without knowing how works), split rasters (also ripped) etc. Even today I dont know how the loader works, the music works, how the packer & depacker works I use, and often use Ninja's help (=routines) on timing critical stuff.
Stop with the witchhunt please. The guy has moved from rasters to 4 rastersplit within days, thats a nice progress and shows enough willingness to learn IMHO. If he could do that he will work out how a stable raster works aswell. WHEN he feels/needs/wants to. |
| |
plagueis Account closed
Registered: Dec 2007 Posts: 48 |
Oswald,
It's not a witch hunt. I'm a dude who has only released a few demos, and tried to give advice to a guy who actually asked me for it in several PM's. I thought he would be more receptive if the discourse was continued here where he could receive a diversity of opinions. I thought he could benefit from the words of a less experienced coder. I was being semi-harsh but honest.
Funny that you would choose now to try and force the thread closed, yet when you scroll up you see veteran sceners completely engaged in sarcastic ridicule.
I gave honest advice. You had seen what was to be my last post. But I'm not going to be accused of engaging in a witch hunt. I was trying to give novice to novice advice.
-DP |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
come on. you DO know how a loader works, i am very sure. and i am also sure you could code one yourself if you wanted. this is even more true for a music player. knowing how something works doesnt mean to know every register setting by heart, or beeing able to code it from scratch without looking at some references. it means to understand the basic problem and getting the idea on how to solve it. and someone who copies stable rastercode verbatim, and then patches the irq vectors from $fffe to $0314, and then wonders why adding music makes it unstable again, obviously didnt understand either.
also the fact that many of us (me too) started by ripping and blindly using code from others doesnt mean that its a good thing, and that actually learning it properly isnt a better idea. dont forget that back in the days the reason for doing it like we did wasnt that we didnt want to know how it works, but because noone was there who could explain it to us. atleast for me it was like that :)
|
| |
plagueis Account closed
Registered: Dec 2007 Posts: 48 |
Oswald,
I would like to kindly point out that 8bit moved from rasters to 4 split rasters 45 minutes after he asked me how to code them, as he'd seen a part I released with splits in it. I said:
"You change $d021/20, but do it more than once per line"
less than an hour later he claimed success. I didn't give him any of my code, but I pointed out he could load my demo and hit the button on his cartridge. All the code would be there.
Also, look at post #11 in this forum. I give sincere help to the guy...a snippet of non-proprietary code for his toolkit which really helped me when I was starting out to visualize raster time and position.
-DP |
Previous - 1 | 2 | 3 - Next |