I suddenly need to care about Amiga DMA cycle timings and this isn't an improvement in my quality of life
Is there a diagram anywhere of exactly where the DMA cycles occur during horizontal scanout?
@mjg59@nondeterministic.computer https://markwrobel.dk/post/amiga-machine-code-letter4-dma-revisited/ maybe?
@sif@cathode.church Hmm I'm going to have to spend a while parsing that picture because it doesn't quite fit my mental model and also I'm now terrified that I'm going to need to use the CPU and the copper simultaneously to achieve what I want (which is actually very funny)
@mjg59@nondeterministic.computer I never got into these depths when I was doing Amiga programming but that sounds kind of like some of the discussions around demo scene stuff was like
@sif@cathode.church I want to change all 32 colour registers during an hblank which is a thing you just wouldn't do in any sensible world because you won't have enough CPU time to calculate all of that and also do anything useful, and I think copper can probably only get a relatively small number but I have infinite CPU and am only limited by DMA cycles so /maybe/ I can fit that all in during hblank but otherwise I can be cunning about timing and overwrite the copper list during scanout maybe?
@mjg59@nondeterministic.computer I am having notions around hold and modify which if it could work for your case (probably a bit of a mess in chroma) would mean half that number of palette entries need to be changed
@sif@cathode.church I think HAM is probably not a great choice here, and realistically 64 colours per 320 pixel line is going to be good enough rather than having fringing
@mjg59@nondeterministic.computer it occurred to me mostly because everyone says they couldnβt use HAM for anything other than preprocessed images because the computing of the best palette for rendering per line was too high, but yeah you would never be free of the fringing effects.
@sif@cathode.church @mjg59@nondeterministic.computer Computing the best possible HAM palette per line in real-time still isnβt possible even on an (affordable) modern CPU, but with a good palette pre-calculation you donβt get visible fringing.