Oh, and you can use $7F837B, the VRAM upload buffer to render layer 3 tiles dynamically. It's much better than stripe image and more efficient too. Alcaro helped me with this, and the result is like this.
To show Mario's current level, you'd need a RAM Address control that rather than writing a tile to the screen. I remember you could DMA RAM to VRAM and did this myself, but lost the code due to a HD crash.
When using Alcaro's code, don't forget to add this right before the db $FF though:
Woah, that's awesome! That's exactly what I was looking for! Thanks! Is there a tutorial for this? Or do you know somebody who can explain it to me? From your video descritpion I take it that you don't know how do do this yourself, right? So maybe Alcaro can help me? I'll look into this!
I'll start by posting this code, which will mess up the status bar one tile after another. Feel free to ask if you need more help.
!Pos = $010D
!TileProp = $38
!DataPos = $5000 ; top of the screen (note: change it)
; (note: it should be $5??? or you'll propably mess up something else)
PHX ; Change data bank and push X
BEQ Nothing ;Don't do anything if we're at an FF (terminator) byte
TAX; | I could've used TAX SEC here instead,
CLC;/ but I don't really like the idea of writing that kind of garbage code.
I'd suggest pointing the Data: table to RAM and changing it that way.
Tip: STZ !Pos (!Pos should be some free RAM) to make it print out the text again.
Also, change what !DataPos is, I doubt you want the message to appear in the status bar.
I'd vote use a static stripe image to remove the text.
And no, there's no tutorial for how to use this. Try and see what happens.
(Oh, and feel free to remove the table and write your own, I just couldn't resist)
-------------------- <blm> zsnes users are the flatearthers of emulation
Thanks a lot, this is really awesome! I'm totally going to analyze this and see, what you can do with it. Though I already have a few questions:
1) How can you make it so that the letters have layer priority below the status bar? The method I used for stripe images doesn't work or at least I THINK it doesn't work.
2) How do you even set the starting position of the text? $5000 is the top of the screen, right? But what do I have to change to make the text move in what direction?
3) The properties byte is in YXPCCCTT format?
Hope you can help me. And thanks again, this is really awesome !
It's hard to believe not more people are using this in their hacks.
It's since I never released it officially earlier. No one can use an unreleased* code, right?
Yeah, that's true. I thought more people knew about this, though.
I've done the window as a stripe image and the letters with the VRAM upload buffer. However, the letters always appear behind the window. Is there a way I can change that, or do I have to do both things with the VRAM upload buffer? I've also tried to not set the priority bits of the stripe image tiles, but that just put them in the background.
It's important to know that the upload buffer (that static stripe images also use) is processed in order than things are added to it. The first thing added is the first thing uploaded and stuff may be overwritten because of this.
You want the upload buffer to clear out any unwanted layer 3 tiles, then add the letters to show. It looks like you were writing transparent tiles after the letters are drawn so they got overwritten and never showed up.
Yes, the position and size of the text box is just for testing purposes, it's not final.
Posting my stripe image code? Okies. It's the exact same code as Ersanio posted in the stripe images thread. I didn't use RLE, though, because I was too lazy to recalculate the screen positions. On a second thought this would be much better since you could edit the textbox length easier.
Yeah, that's true. I was too lazy to recalculate the screen positions, so I just used tile $FC. I think I'll redo it.
OK, I won't post my stripe image code yet. I'll try this first.
Way better, no?
And yes, I know it's over the border. Just testing, you know.
Well I haven't done anything with my Patch lately and I probably won't do anything with it for a while, but before this thread sinks into the depths of this forum I'll take my chance and ask a few questions:
1. smkdan mentioned something about clearing unwanted layer 3 tiles. So how do I do that? How do I remove the layer 3 tiles I don't need anymore?
2. Is there a way to move the tiles uploaded to layer 3 this way? I mean like actually move, not just "remove from one tile and write to another tile". You actually have the see the movement (like it goes pixel by pixel, not tile by tile). I give an example: Let's say I'd make that "Level Up" message. Now after a few seconds I'd want the letters to move towards the top of the screen and then just disappear. Is there a way to do that with the upload buffer?
3. Can you make tables that point to tables and if so, how do you do that? Let's say I'm using the upload buffer to display level messages and let's say I have one message per level. The messages themselfs are stored in tables like this:
When a message is displayed, it displays the tile specified under that messagetable,x and then increments x and repeats the process. But how do I make my code display the correct message? Like when I'm in level 105 it displays level 105's message, when I'm in level 104 it displays level 104's message. Can I make a table for that as well? Something like:
Thanks in advance for your help! Wait, I probably have another question. Look at this:
This is a screenshot from Secret of Mana. Now I'm not really a layer expert or something, but I think that both, the text box and the letters, are on layer 3. Secret of Mana gives you the option of customizing your textbox' background. Now I'm not sure about this, but I don't think that Secret of Mana has seperate letter graphics for each background. My guess is that the letters use a transparent color, that lets you see the background behind them. So here is my question: Is that actually possible? Can you display both, the letters and the textbox-background, on layer 3 and replace the transparent color of the layer 3 letters with another layer 3 graphic (in this case the background)? I know this is probably a complicated question, but I hope someone knows the answer.