I know that reducing the frame rate isn't the best solution.tepples wrote:Unless you're tracking at 150 BPM (tempo $96) with 32nd note resolution (speed 3).
I can't think of anything. You either use IRQs or waste time (waiting for a sprite 0 hit). But depending on how he arranges the interface the scrolling window might be at the top or at the bottom, and then only one split will be necessary.What's the best way to do more than one split (one at the top of the region, one at the bottom) on a mapper without a scanline or CPU cycle counter and without wasting over one-third of the CPU time?
Considering the type of program he's making, wasting a chunk of time that big might not be such a problem, as it shouldn't be as CPU-intensive as games. If it's in edit mode, it will only do anything upon user input, and even with some of the time missing the response should still feel real-time enough. In playing mode, I doubt a music playback engine, as complex as it may be, will need more than 50% of the CPU time.
By using hardware scrolling he gains a lot of cycles. Also, I said this could be done for data that isn't accessed often, as in not every VBlank. For a game I can think of a few kinds of data I would store there (game status information that is only accessed between levels, checkpoint information, maybe even level maps, depending on their format), but for a tracker I'm not sure, maybe he can think of something.Given that someone's already having trouble fitting things into 2300 cycles, I'm not sure how helpful that would be.
Tepples, are you against the idea of using hardware scrolling? 'Cause it seems you showed up just to bash my ideas. I suggested what I did because it's simply impossible to update 400+ bytes of NT data in a single frame (unless a considerable amount of the screen was cut for extra blanking time, but that's not so trivial either).
