• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Forum moderator applications are now open! Click here for details.
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Development: Transparent Textboxes

27
Posts
13
Years
  • Seen Jan 30, 2017
Can anybody help? Whenever I use transparent textboxes, I end up with this on the menu. Is there no way to fix that?
 

KennyKid

scipter
24
Posts
11
Years
Can anybody help? Whenever I use transparent textboxes, I end up with this on the menu. Is there no way to fix that?

Hey guys! Just above Naruto Actor posted the debug bytes,
So after you you these writebytetooffset to make transparent
In the end of the script, just write back the origins byte again :D
Spoiler:

It works for me, but it's not really normal after we write back (the text is in pink color, with back ground, but the menu is OK)

At least it solves the menu
Just call these scipts everytime when you end a script with massage
 

rhettz_emboar

Did you just pee??
66
Posts
11
Years
Hey Guys. Want to do Tranparent Textboxes but they look so hard to do? You can do it with the WBTO (Write by Offset) command in XSE. Here is a simple script on how to make Transparent Textboxes. (For Ruby |AXVE| Only)

Here is what you need to add to the script

writebytetooffset 0x3F 0x4000048
writebytetooffset 0x1F 0x4000049
writebytetooffset 0x41 0x4000050
writebytetooffset 0x3F 0x4000051
writebytetooffset 0xF 0x4000052
writebytetooffset 0xA 0x4000053
writebytetooffset 0xFF 0x202F0AA
writebytetooffset 0xFF 0x202F0AB
writebytetooffset 0x0 0x202F0B8
writebytetooffset 0x0 0x202F0B9
writebytetooffset 0x0 0x202F0AC
writebytetooffset 0x0 0x202F0AD
writebytetooffset 0x0 0x202F0BE
writebytetooffset 0x0 0x202F0BF
writebytetooffset 0x0 0x202F0C0
writebytetooffset 0x0 0x202F0C1
writebytetooffset 0x0 0x202F0C2
writebytetooffset 0x0 0x202F0C3
writebytetooffset 0x0 0x202F0C4
writebytetooffset 0x0 0x202F0C5
writebytetooffset 0x0 0x202F0C6
writebytetooffset 0x0 0x202F0C7
writebytetooffset 0x0 0x202F0C8
writebytetooffset 0x0 0x202F0C9


Test:
PokemonRuby.png


Notes:
- You must do this in Every Script you want Transparent.
- There are some bugs in doing this. Using this script will activate them.

Thanks for reading :D

Credit the following people if used:
- ~Andrea

is it before or after your script?
 

karatekid552

What happens if I push it?....
1,771
Posts
11
Years
First the good:
writebytetooffset 0x3F 0x4000048
writebytetooffset 0x1F 0x4000049
writebytetooffset 0x41 0x4000050
writebytetooffset 0x3F 0x4000051
writebytetooffset 0xF 0x4000052
writebytetooffset 0xA 0x4000053
writebytetooffset 0xFF 0x20377DC
writebytetooffset 0xFF 0x20377DD
writebytetooffset 0x0 0x20377DA
writebytetooffset 0x0 0x20377DB
writebytetooffset 0x0 0x20377DE
writebytetooffset 0x0 0x20377DF
writebytetooffset 0x0 0x20377EC
writebytetooffset 0x0 0x20377ED
writebytetooffset 0x0 0x20377EE
writebytetooffset 0x0 0x20377EF
writebytetooffset 0x0 0x20377F0
writebytetooffset 0x0 0x20377F1
writebytetooffset 0x0 0x20377F2
writebytetooffset 0x0 0x20377F3
writebytetooffset 0x0 0x20377F4
writebytetooffset 0x0 0x20377F5
writebytetooffset 0x0 0x20377F6
writebytetooffset 0x0 0x20377F7

Just to clarify for everyone, if you don't need colored text, this works just fine on FireRed.^^^ The asm routine is only there to make sure the text doesn't become transparent if you use a different color. If you are fine with white text, then this is all you need.
 

karatekid552

What happens if I push it?....
1,771
Posts
11
Years
Someone know how to use that formula in Battles Texts? It would look nice in Battle giving some BW Battle Styles with full Backsprite animations.

You could actually do much the same thing. You see, what this code does is adjust some things, and then make the top layer map (The one that text and stuff goes on) semi-transparent to all other layers. If you want to read more about that, you can look at this ( http://nocash.emubase.de/gbatek.htm#lcdiocolorspecialeffects) but since you have adamently refused to learn ASM in the part, I highly doubt it will make any sense to you.

So, yeah, this could be inserted in battle, you just have to code it in somewhere, and also realize something else... The sprites aren't large enough, nor placed in the correct spots for this to look good. You would need to change their locations and everything. I also don't think the battle bg's are in the correct area either.
 
1,344
Posts
14
Years
  • Seen Dec 10, 2021
(FIRE RED)
Today, I created a new asm routine, capable of reading one byte in the var 0x8009.

First, go at 0x8150400 and paste of thus:

A1 46 70 BC 01 BC 00 47 00 49 08 47 XX XX XX 08
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

(Use xx xx xx 08 +1 for the byte of the routine. Example: 0x800000 is 0x8000001 and 00 00 80 08 is 01 00 80 08)

At 0x8xxxxxx, paste it:
00 B5 00 06 00 0E 04 28 06 48 00 88 00 28 03 D0
05 49 06 49 06 49 07 49 07 49 08 49 08 49 09 49
09 49 00 00 CA 70 03 02 18 D8 80 00 01 49 40 18
00 68 87 46 XX XX XX 08

This new 0x8XXXXXX is your other free space that you paste it:
34 04 15 08 38 04 15 08 3C 04 15 08 40 04 15 08 44 04 15 08
BUT INSERT MORE BYTES WITH THIS, WHERE ITS COMPOSITION IS
THE TABLE WITH THIS:
10 20 00 E0 40 20 40 00 01 49 40 18 02 BC 08 47 EC 1D 47 08

Use a 10 20 E0 for the number of this table at:0x471DEC

But you can create a new collors and insering at var 0x8009 bytes with
0x0 0x1, 0x2, 0x3, 0x4, BUT THE 0x5 can' not except if you expand the table at 0x471DEC
I'm a bit confused by this explanation. Does this fix the text so that it makes it the correct color? I've done a bit of experimenting and I think I like the look of this:
1bsG0l5.png

I just want to make the text non-transparent. Do I apply that to fix it?
 

karatekid552

What happens if I push it?....
1,771
Posts
11
Years
I'm a bit confused by this explanation. Does this fix the text so that it makes it the correct color? I've done a bit of experimenting and I think I like the look of this:
1bsG0l5.png

I just want to make the text non-transparent. Do I apply that to fix it?

This took me a while to get:

All colors will be made transparent except White. This is what I have found and worked my text boxes around it accordingly. I have yet to find a way to change it.

Also, by screwing around with some of the values that are being written to the 0x400000 area, you can change the opacity of the transparent colors.
 

BugMania

The Bug Master
32
Posts
10
Years
  • Seen Nov 4, 2016
This took me a while to get:

All colors will be made transparent except White. This is what I have found and worked my text boxes around it accordingly. I have yet to find a way to change it.

Also, by screwing around with some of the values that are being written to the 0x400000 area, you can change the opacity of the transparent colors.

you can use different colors according to the table of your liking. The color table would be selected when you set a number in the variable 0x8009.
 

ep!c

Banned
124
Posts
11
Years
  • Seen Jan 4, 2015
Lol guys, you discuss years for a simple code.

Its easy to understand: The more "black" the color has, the more transparent it is.
Black -> ~50% transparency ...... White -> 0% transparency
Then just make the code (only contains loading and writing in fact o.o) and make a built-in routine in the textbox. Afterwards, change text color to white and textbox color to full black and it results in this:

trans.PNG


Also the menu is working fine, if you hack the color and graphics correctly:

Unbenannt.png


The graphics box downsides has the offset 0x4566A8.
I could also give out my NSE-bookmarks, if you wish.
Many useful things in it :P
 

karatekid552

What happens if I push it?....
1,771
Posts
11
Years
Lol guys, you discuss years for a simple code.

Its easy to understand: The more "black" the color has, the more transparent it is.
Black -> ~50% transparency ...... White -> 0% transparency
Then just make the code (only contains loading and writing in fact o.o) and make a built-in routine in the textbox. Afterwards, change text color to white and textbox color to full black and it results in this:

trans.PNG


Also the menu is working fine, if you hack the color and graphics correctly:

Unbenannt.png


The graphics box downsides has the offset 0x4566A8.
I could also give out my NSE-bookmarks, if you wish.
Many useful things in it :P

That is exactly what I did, however I changed the transparency level of the black and added some red.

http://www.romhack.me/photo/1582/dc/userid_2957/
 

BugMania

The Bug Master
32
Posts
10
Years
  • Seen Nov 4, 2016
I honestly didn't use his routine, I wrote my own and hooked it directly into the msgbox command itself. That is probably why I didn't understand that part.
My routine asm (as was I who posted by the thjenvuongxh) is interesting because it allows a color change. It has nothing to do with the permissions of a transparent text box, ok?


Again, sorry for my bad english.
 

karatekid552

What happens if I push it?....
1,771
Posts
11
Years
My routine asm (as was I who posted by the thjenvuongxh) is interesting because it allows a color change. It has nothing to do with the permissions of a transparent text box, ok?


Again, sorry for my bad english.

I never said there was anything wrong with yours, I just made my own and I like the way it came out.:P

but thanks, now I understand.
 

KennyKid

scipter
24
Posts
11
Years
It's a long time since I first read this thread. I found out how to transperant textbox without asm code (writebytetooffset), just a simple code like ~Andrea. This usefull for someone not good at asm code.

First call 0x(offset) to make it transperant textbox
Spoiler:



After you finish your script, call this code and the textbox and menu'll back to normal
Spoiler:



The writeback bytes are found by NarutoActor.
One more thing: You can adjust the bold of the textbox (the black transperant color) by adjust this code:
writebytetooffset 0xF 0x4000052
writebytetooffset 0xA 0x4000053
writebytetooffset 0xFF 0x202F0AA
Change the value of 0xA, from the darkest to the lightest is 0x0, 0x1, ... , 0xA, 0xb,..., 0xe and finally 0xf
So if you want it a little darker, change 0xA to 0x8 or 0x7

These code can't change the text color.
 
248
Posts
11
Years
  • Seen yesterday
why you don't use "windows" instead of making the textbox or BG0 semi-transparent? if you use it you will not have any bugs in the menu (and other tile load in BG0)...
 
Back
Top