• 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?".
  • 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.

[ARCHIVE] Simple Questions (SEARCH BEFORE ASKING A QUESTION)

Status
Not open for further replies.

EdensElite

No0b, but getting there.
190
Posts
12
Years
  • Age 29
  • UK
  • Seen Jul 4, 2014
Whenever I use the "20 - Block is Covered by hero" or whatever it is. The tile messes up with random tile pieces? Any help with this, it's kinda of an essential behaviour byte.

I know we shouldn't post twice, but I just got flat out ignored because of that convo between redriders and c3pu. I really need help with this guys...It also messes up the computer keyboard tile when I click on it 0.o
 
28
Posts
13
Years
  • Seen Apr 6, 2013
I know we shouldn't post twice, but I just got flat out ignored because of that convo between redriders and c3pu. I really need help with this guys...It also messes up the computer keyboard tile when I click on it 0.o

Perhaps a little more information, a lot of the time stuff can seem random, but it decidedly isn't. Make sure you are using it as the background byte and not the behavior byte. The behavior byte 0x20 is identified as reflection in Amap, so I wouldn't think you had done that, but reflection would make the tile appear to change, so I suggest it anyway. Beyond that suggestion, I can't help much. As I have said before, I am much better at fixing things if I can be more hands on.

Even with that most likely unhelpful suggestion, I would ask something of you. I noticed on the hack that you link to in your signature that you have a few new/edited trainer sprites. I would request your permission to use them in my own hack. I am looking to 'copy' Light Platinum (I think) and have more than just one rival who meet up in a tournament at the end, and that requires a few different looking trainer sprites and I really like the look of a few of yours. You will be credit however you wish of course and I would offer you my help in any situation in the future, hoping that I will eventually be able to helpful.
 

supershadow64ds

Confused Noob Programmer
25
Posts
12
Years
  • Seen Nov 14, 2023
I have a question about DayNightSeasons. Well, two, actually.
1. How the heck do I use the seasons function?
2. I installed the RTC and DAN system, and I want to know how to display the time (Hours:Minutes) and the Date (Month/Day/Year) in separate messages. I am a horrible noob at XSE, because I was the one guy who grew up with PokeScript .-.
 
9
Posts
11
Years
  • Seen Jan 27, 2014
I forgot to mention...those earlier limitations I mentioned are for Firered specifically. Ruby and Emerald use 32x32 surfing sprites and pulling-pokeball-out-of-pocket sprites, but I still don't know about walking or running.

Gimp or Photoshop will preserve indexed graphics, and allow you to edit them easily enough. You can also do some searching, and download the old style of paint, which preserves the index as well.
that totally worked thanks i ad to slice a couple of them in width to make them fit in the 16x32 frame put i play my rom on psp so it almost doesnt show.

today i tried changing npc to d/p but wen i changed the first one i realised that there is several npc linked to the same pallet so my d/p sprite dont match the same way as the advanced one so am i f***ed or is there a way to make it work and if there is am i looking at a weeks process?
 

redriders180

Mastermind of Pokemon Glazed
314
Posts
13
Years
I have a question about DayNightSeasons. Well, two, actually.
1. How the heck do I use the seasons function?
2. I installed the RTC and DAN system, and I want to know how to display the time (Hours:Minutes) and the Date (Month/Day/Year) in separate messages. I am a horrible noob at XSE, because I was the one guy who grew up with PokeScript .-.

As for your second question, unfortunately, it takes a little bit of experience. The DNS system writes the year, month, day, hour, minute, and second in specific parts of the memory (from 0x0300553C to 0x03005544, inclusive). The year is two byes, while the others are one byte, and 0x0300552E and 0x03005540 are empty.

What you need to do is use copybyte to copy one of the bytes to the memory address of a variable. Variable 0x8004 is stored at 0x020370C0, and is two bytes. So, for example, to store the month into variable 0x8004:

...
copybyte 0x020370C0 0x0300553F
...

You can then use the variable in scripts, for comparing, or use buffernumber to store the variable's value into a buffer, for display.

I would provide a sample script, but my post is getting long enough as-is. Just a few precautions: First, the hour is stored in 24 hour format, so 4PM is stored as 0x10, not 0x4. Secondly, buffernumber just makes the number appear, and while this is usually good, it provides a pitfall when time is involved. If it's 4:05, the time will be rendered as 4:5 with buffers. The best solution is to check if the minute is less than 10, and if it is, [buffer1]:0[buffer2], otherwise, [buffer1]:[buffer2]. Thirdly, there's only three buffers, so you'll have to display the time and date in different text boxes.

Good luck!
 

supershadow64ds

Confused Noob Programmer
25
Posts
12
Years
  • Seen Nov 14, 2023
As for your second question, unfortunately, it takes a little bit of experience. The DNS system writes the year, month, day, hour, minute, and second in specific parts of the memory (from 0x0300553C to 0x03005544, inclusive). The year is two byes, while the others are one byte, and 0x0300552E and 0x03005540 are empty.

What you need to do is use copybyte to copy one of the bytes to the memory address of a variable. Variable 0x8004 is stored at 0x020370C0, and is two bytes. So, for example, to store the month into variable 0x8004:

...
copybyte 0x020370C0 0x0300553F
...

You can then use the variable in scripts, for comparing, or use buffernumber to store the variable's value into a buffer, for display.

I would provide a sample script, but my post is getting long enough as-is. Just a few precautions: First, the hour is stored in 24 hour format, so 4PM is stored as 0x10, not 0x4. Secondly, buffernumber just makes the number appear, and while this is usually good, it provides a pitfall when time is involved. If it's 4:05, the time will be rendered as 4:5 with buffers. The best solution is to check if the minute is less than 10, and if it is, [buffer1]:0[buffer2], otherwise, [buffer1]:[buffer2]. Thirdly, there's only three buffers, so you'll have to display the time and date in different text boxes.

Good luck!

Okay... I think I understand. Eh, just, how would I store more than one buffer/which variable should I use, in addition to x8004? I tried using buffernumber 0x0 0x8004, then buffernumber 0x1 0x8004. Only thing this did was make my screen turn colors.
 

redriders180

Mastermind of Pokemon Glazed
314
Posts
13
Years
Okay... I think I understand. Eh, just, how would I store more than one buffer/which variable should I use, in addition to x8004? I tried using buffernumber 0x0 0x8004, then buffernumber 0x1 0x8004. Only thing this did was make my screen turn colors.
You first write, say, the hour, to variable 0x8004, then use buffernumber 0x0 0x8004. Then you write, say, the minute, to variable 0x8004, and use buffernumber 0x1 0x8004. Then put in a msgbox that says [buffer1]:[buffer2], or something similar, and it should work (I say should because I've done this before with no hassle in the exact way I just specified).

that totally worked thanks i ad to slice a couple of them in width to make them fit in the 16x32 frame put i play my rom on psp so it almost doesnt show.

today i tried changing npc to d/p but wen i changed the first one i realised that there is several npc linked to the same pallet so my d/p sprite dont match the same way as the advanced one so am i f***ed or is there a way to make it work and if there is am i looking at a weeks process?

The GBA is limited to sixteen OW palettes at a time. Four are reserved for other functions, and can't be used. Two are for the hero (one normal, one slightly faded). This means you only get four palettes for other NPCs (the remaining four are slightly-faded versions of these four, and used for reflections in water). There's also one variable palette, which can be used as well, although you only get one.

So, basically, you'll have to recolor alot of the OWs you insert.
 

supershadow64ds

Confused Noob Programmer
25
Posts
12
Years
  • Seen Nov 14, 2023
You first write, say, the hour, to variable 0x8004, then use buffernumber 0x0 0x8004. Then you write, say, the minute, to variable 0x8004, and use buffernumber 0x1 0x8004. Then put in a msgbox that says [buffer1]:[buffer2], or something similar, and it should work (I say should because I've done this before with no hassle in the exact way I just specified).

So, tell me if I am doing anything wrong here:
Spoiler:


Is this script using the buffers correctly, or will it just make my screen turn blue again?
 

redriders180

Mastermind of Pokemon Glazed
314
Posts
13
Years
So, tell me if I am doing anything wrong here:
Spoiler:


Is this script using the buffers correctly, or will it just make my screen turn blue again?

You're doing a few things wrong. First of all, variable 0x8004 is two bytes, meaning that 0x020370C0 is the first half of 0x8004, and 0x020370C1 is the second half of 0x8004. 0x020370C2 is the first half 0x8005, and 0x020370C3 is the second half of 0x8005. As it stands, your script is doing this (Pretend we're using today as an example)

Copy the month to the first half of 0x8004 (0x0008 is now in 0x8004)
Copy the day to the second half 0x8004 (0x1408 is now in 0x8004)
Copy the year to 0x8005 <--Correct
buffer 0x8004 to buffer1 (Buffer1 will now say 5128)
buffer 0x8004 to buffer2 (Buffer2 will now say 5128)
buffer 0x8004 to buffer3 (Buffer3 will now say 5128)
Display the date

The date would be displayed as 5128/5128/5128, instead of the actual date of August 20th.

This ought to do what you want:
Spoiler:
 
9
Posts
11
Years
  • Seen Jan 27, 2014
You first write, say, the hour, to variable 0x8004, then use buffernumber 0x0 0x8004. Then you write, say, the minute, to variable 0x8004, and use buffernumber 0x1 0x8004. Then put in a msgbox that says [buffer1]:[buffer2], or something similar, and it should work (I say should because I've done this before with no hassle in the exact way I just specified).



The GBA is limited to sixteen OW palettes at a time. Four are reserved for other functions, and can't be used. Two are for the hero (one normal, one slightly faded). This means you only get four palettes for other NPCs (the remaining four are slightly-faded versions of these four, and used for reflections in water). There's also one variable palette, which can be used as well, although you only get one.

So, basically, you'll have to recolor alot of the OWs you insert.

if i change the colors in one of the pallet are only the npc influanced or also things like house and trees because wen i changed the pallet for the hero the surf sprite, arrows and emotion bubles(when npc sees you and such) ended up all messed up
 

redriders180

Mastermind of Pokemon Glazed
314
Posts
13
Years
if i change the colors in one of the pallet are only the npc influanced or also things like house and trees because wen i changed the pallet for the hero the surf sprite, arrows and emotion bubles(when npc sees you and such) ended up all messed up

The surf sprite, arrows, and emotion bubbles all share the same palette as the hero, so changing the hero palette changes those as well. It won't interfere with tiles, or anything else.
 
9
Posts
11
Years
  • Seen Jan 27, 2014
thanks a lot for all your help and i still have a question i just realized that my reflection palette is wrong so im wondering how to change it


edit: think i just fond how will try later

edit: fixed thanks anyhow
 
Last edited:

supershadow64ds

Confused Noob Programmer
25
Posts
12
Years
  • Seen Nov 14, 2023
Spoiler:

Thanks! Also, I was wondering if it was possible to change the 2nd tileset through an event. That, and how to use the Seasons function of DNS.
 
3
Posts
11
Years
  • Seen Aug 21, 2012
I'm a total newbie at Pokemon Rom Hacking, so my first hack is mostly going to be a graphics and text hack for Pokemon Emerald. Even so, I ran into a few problems:

First, I can't get any Gameshark codes to work with Visual Boy Advance. How am I supposed to debug my game now?

Second, while I can find the trainer backsprites, I have no idea how to find the right pallet for them, which makes editing them difficult. How do I find the right pallet?

Third and finally, how do I change the default name(s) of the rival, as well as default player names? I can't seem to find the script that does it.

Thanks in advance to anyone who helps me with this!
 

redriders180

Mastermind of Pokemon Glazed
314
Posts
13
Years
I'm a total newbie at Pokemon Rom Hacking, so my first hack is mostly going to be a graphics and text hack for Pokemon Emerald. Even so, I ran into a few problems:

First, I can't get any Gameshark codes to work with Visual Boy Advance. How am I supposed to debug my game now?
The best way is to simply play your game as you make it. You can also make warps to go to different towns, or my personal favorite, a master script that gives you six high-level pokemon, all badges, and all key items, and sets important flags like Pokedex, National Dex, and Running Shoes.

Edrobot said:
Second, while I can find the trainer backsprites, I have no idea how to find the right pallet for them, which makes editing them difficult. How do I find the right pallet?
You'll have to do a little sleuthing for this. Open up VBA, and start a battle, and pause while the player's backsprite is up. Now, go into the Palette Viewer of VBA, and scan the right-hand bunch of palettes for one that matches the palette of the backsprite (they go in rows). Take note of every color, and use APE to search for those colors. You'll eventually find the palette in question :D

Edrobot said:
Third and finally, how do I change the default name(s) of the rival, as well as default player names? I can't seem to find the script that does it.

Thanks in advance to anyone who helps me with this!
Emerald doesn't really have default rival names...the names are entirely script, and basically just check the gender, and displays two different strings depending on whether you're female or male. Wally always has the same name as well.

As for the player's name, if it's like Firered, it's stored in a DMA-protected block that has all the player data, such as gender, OT Number, and secret ID. I don't have a specific offset, but it'll require ASM no matter what.
 
3
Posts
11
Years
  • Seen Aug 21, 2012
The best way is to simply play your game as you make it. You can also make warps to go to different towns, or my personal favorite, a master script that gives you six high-level pokemon, all badges, and all key items, and sets important flags like Pokedex, National Dex, and Running Shoes.

Guess I'm going to need to learn some scripting no matter what. But that's beyond the scope of this particular thread.

You'll have to do a little sleuthing for this. Open up VBA, and start a battle, and pause while the player's backsprite is up. Now, go into the Palette Viewer of VBA, and scan the right-hand bunch of palettes for one that matches the palette of the backsprite (they go in rows). Take note of every color, and use APE to search for those colors. You'll eventually find the palette in question :D

I'm pretty sure VBA has some sort of pallete display thing, but thanks for the advice.

Emerald doesn't really have default rival names...the names are entirely script, and basically just check the gender, and displays two different strings depending on whether you're female or male. Wally always has the same name as well.

I'm confused; is this a single script that gets called every time the rival name is mentioned, or is it multiple scripts that display different text boxes based on the player's gender? Wally of course I'll have to do manually.

NOTE TO FUTURE VIEWERS: "MAY", "BRENDAN" and "WALLY" are all capital letters in the game script.

As for the player's name, if it's like Firered, it's stored in a DMA-protected block that has all the player data, such as gender, OT Number, and secret ID. I don't have a specific offset, but it'll require ASM no matter what.

Can somebody who's done this before give me some pointers because I have no idea what that means.
 

shinyabsol1

Pokemon DarkJasper!?
333
Posts
13
Years
  • Seen Nov 23, 2022
Edrobot said:
I'm confused; is this a single script that gets called every time the rival name is mentioned, or is it multiple scripts that display different text boxes based on the player's gender? Wally of course I'll have to do manually.

Multiple scripts. In scripts that mention the rival's name, the gender you chose at the beginning of the game is checked, then based on that result displays a text box that uses the rival name of the opposite gender.

Wally is always Wally, regardless of gender, obviously.
 
Status
Not open for further replies.
Back
Top