Steril707 Posted January 13, 2023 Share Posted January 13, 2023 Have some ideas, but not sure yet if stuff is feasible, so here we go: * how big can a single DLI be? I think I remember something about page boundaries making problems. * how many commands changing stuff can I get into a line before my display starts behaving strange in let's say Antic 4 and 5 mode? Thanks for any answers in Advance! Quote Link to comment Share on other sites More sharing options...
TGB1718 Posted January 13, 2023 Share Posted January 13, 2023 Have a look at DLI timing in De-Re-Atari it gives some quite detailed timing information. With regards to how much you can do, if changing colours, then a very limited time before you see screen corruption, however if your moving a "player" it can be done any time during a DLI. Sometimes you have to experiment and find what's good for you. Quote Link to comment Share on other sites More sharing options...
Rybags Posted January 13, 2023 Share Posted January 13, 2023 (edited) Page boundaries irrelevant really other than added cycle for such things as indexed reads or branches crossing a page boundary. Size - isn't really an issue, it's more down to time. Time - a DLI in theory could take the entire screen time if you wanted though nesting situations could cause trouble. But critical stuff like colour and player positions - you have limitations on how much you can do per scanline then you have screen DMA and refresh steals that take more cycles away. Player positioning does matter - if you move a player too soon it might get omitted. But yes, experiment and use things like Altirra debug single-step. An important thing for DLIs is to only do what's needed - calculations and stuff should be by main loop or VBlank, DLI is just for stuffing hardware registers for the most part. Edited January 13, 2023 by Rybags Quote Link to comment Share on other sites More sharing options...
TGB1718 Posted January 13, 2023 Share Posted January 13, 2023 1 hour ago, Rybags said: An important thing for DLIs is to only do what's needed - calculations and stuff should be by main loop or VBlank, DLI is just for stuffing hardware registers for the most part. I should have added that, I did all the calculations for screen positions in the main code and the DLI just used the lookup table Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.