Here's a fun test: can you interrupt it in the middle, then return to the graphscreen, and check if the sprite looks OK? If so, then your LCD is the culprit (or my LCD manipulation code, of course).
When interrupted, the back side of it is clean, no black box.
tifreak8x wrote:
When interrupted, the back side of it is clean, no black box.
Okay, when I removed the Pauses, I was able to replicate the issue. I think there's something wrong with the read pointer when the OS doesn't reset things.
Ah. So is this something that can be fixed? I should set up a couple of For( loops to display the 2 different mario sprites to fill the screen and see if that leaves any artifacts too..
tifreak8x wrote:
Ah. So is this something that can be fixed? I should set up a couple of For( loops to display the 2 different mario sprites to fill the screen and see if that leaves any artifacts too..
Please do. Actually, another thing that would be helpful would be to just look at the ASCII contents of the read-back sprite and see if it is, as it should be, all FFs when the background is white.

Edit: Oh snap, I found the problem. Sad It is reading a transparent background as 0s, so when you go to "erase" the sprite, it's just erasing it with nothing, meaning it leaves it there. It has nothing to do with LCD details or anything. Now, the question is whether I read transparent pixels as white, or find some way to discover where the current background color is stored.

Edit #2: I believe I was totally off-base on that. There are one or perhaps three different issues going on here. One is that I fixed two bugs in Celtic 2 CSE, and I will email you a new version when I finish writing this post (then go to bed!). Another is that it looks like the ClrDraw -> Y reset issue is happening (still, 15 years later; good game, TI), and that is corrupting things. I might want to not use Y as an input variable.


What it's doing is it displays position 1, then displays 2 pixels over, but then it displays position 1 again, then it goes 2 pixels over, position 1, 2 pixels over, etc.
It sounds like there's still a mismatch between what goes to the buffer and what goes to the screen, correct? I must say that I remain baffled. Can you narrow down if it's always offset by 1 or 2, or only for even (or only odd) X-coordinates? Thanks in advance.
If you look, You have one that gets displayed to the right, and the other that gets displayed in the original X/Y coordinate. What I was trying to do was progressively move it to the right to make it look like it was walking, but that kind of failed. :<

Edit:

Bumping with my suggestions previously requested, so they don't get lost:

Quote:
Oh! What's the possibility of having theta=10 or whatever the next number would be, could we have it gather a list of all programs that are in the VAT, and drop the names in a list, with something to separate one name from another, like a + or something?

Edit:

For theta=8, can we get rid of the 2nd character return that does either visible or hidden, and replace that with Asm or Basic? I have an idea for something, but it kind of hinges on whether we can make that kind of change or not.
Just to follow up, I think there might not be an alignment issue anymore, but erasing might be ending up weird due to transparency no overwriting non-transparent pixels. I might need a flag to indicate whether transparency should overwrite the original or not.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 4 of 4
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement