![]() |
Quote:
|
The Pickup table in Emerald is at 0x31C440. It consists of two lists of values, the first for common items, the second for rare items starting at 0x31C464.
e: The Pickup routine is at 0x55C00, and the move command table is at 0x31BD10. There seem to be quite a few blocks in that region of pointer tables followed by data used by the routines they point to. |
Hi I'm beginner,
I'm trying to understand how is all data about mapping stored. I found this article, which explain some structure of data. Code:
Thank you for your help. |
Hey there, i need the offset of the generateOAM function + its parameter.
|
Quote:
Code:
|
Thank you for your help.
I'm a German, and i don't know for sure wether i understood the template. Is this simply a pointer to the oam's animation data? And what if the object has'nt any animation. Will the obj disappear after displaying all frames listed in the template? And in what registers i have to transfer ( i don't know how to say this, sorry) each param? - Viz0r |
Quote:
Let me know if you have any questions, and feel free to browse around some of my C code where I use these functions quite a bit. If you're good with C it might make a bit more sense for you, but otherwise I'd suggest reading up in knizz's research thread. |
Isnt there any way creating OAM without using a entry in the template table? i mean the Overworlds are sureley not genereted due to this table, arent they?
|
Quote:
|
Possibly odd question, has anyone ever looked into/seen any research into removing the pokedex? Mainly, the pop-up when you catch a new pokemon?
I imagine it would take some hardwiring, since it's not something scripting could deal with - unless the sequence can be repointed/reorganised in hex I'm guessing it's an ASM job? |
It defenity is an ASM job, but it shouldn't be too hard, since there is some kind of switch case for the battle, which leads to certain parts that can be displayed during the battle (such as send new poke, attack and so on). There could be one entry that leads to the pokedex_information. You could simply change the pointer to another function, but there definitly is research needed.
Another question. I was reseraching an function, which updates all stats given on a pokemon, like the stat level, which is based on the ep, or the stat attack, wich is based on the baseATk, level, IV and EV. To reach this aim i did a lot on reasearch at picking a pokemon from your box, because there a lot of data is cacluated, but i found not very much. All i got is (for a german firered) sub_func at 0x08093078 (r0:int8 a, r1:int8 b) a = box ID, b = box nr. Pokemon is taken, if box ID = 0xe there is an exeption /* takes pokemon from box, buffers its data into malloced RAM has anybody ever found a fucntion that updates and recalcutes pokemon stats? because i want to make a species change, but the stats are not updating imideatly. |
Quote:
|
I already found one. Its located at SUB_0x0803E674 in Fire Red German.
You have to permitt: r0, int32: source of basicData(0x50 bytes) ;; r1, int32: destination of calcuated data (0x64 Bytes) |
Is it possible for an overworld to use two palettes? I've been thinking about the idea of hacking the bike routine for ridable pokemon (Page 16 of this thread) and the pokemon and hero would need seperate palettes for the sprite to look good.
|
Quote:
Basically, no, you can't do it. |
It definitley is possible, since any object of the OAM can use all 16 OAM-Palettes, if it is in 256 Col Mode.
BUT: you have to make the game set the bike Sprite to this mode, you have to custom the palettes the way, that the sprite can use all 256 by not destroying other sprites It definitley is possible, but no one would do this kind of job just for an simple object, since it would probably ♥♥♥♥ up with all other objects... Just use an 16 colors palette, its way easier Here is a quatation from GBATEK, if you intend to hack the OAM-system Quote:
|
Quote:
EDIT: A workaround could be when the bike is selected create an overworld of the pokemon on the same spot that mimics the players movements. From the players point of view this would be exactly the same as if it is one object. |
Quote:
The GBA renders objects on a per object basis. Meaning that data for one object can be interpreted differently to another. You could feasibly store the bike sprite as an 8bpp image and then tell the GBA (using the OAM data) to interpret it as such, while leaving all other images in their native 4bpp format and having no ill effects. The trick to this is that doing so as a hack is a lot harder than you would initially think, especially as you'd have to do it as a hook into the existing sprite object code for the bike. I wasn't ever saying it wasn't physically possible, simply trying to get it across to you that it's not really feasible as a hack within the Game Freak developed system, since that system relies on the sprites being in 4bpp format. |
Anyone know if it is possible to import the system of double battles in Emerald for the FR?
When we are in range of vision of two different NPCs, and get a Double Battle, and when standing in reach of only one, a normal battle. |
I used a german Firered Rom. Maybe my offsets are incorrect, but i dont think so, since reseraching was very easy...
.equ generate, 0x08006F0D .equ OAM_thingy, 0x08231BCC .equ callback, 0x08EE9ED .equ buffer, 0x0202063C i made the template dynamic, so i could use it for several objects. i placed it at a malloced offset, so its save to use. then i called the generate_sub func (sub_08A5007C does this at my rom), and transfered the right params. however my game freezes, after some time, and its not due to may code, since it is executed completley and corretcley and it also correctly returns to the scripthandler. here is a screenshot of the point in my code, in which i spawn the OAM. http://www.directupload.net/file/d/3621/aw7kvpan_png.htm |
Wouldn't it be easier to piggyback on the code that handles the surfing sprite? I mean, the player and the blob Pokemon that is surfed on are two different images. If you want riding Pokemon, I feel like it would be much easier to start there. See if the surfing blob sprite can use a different palette than the player.
|
A small bit of reasearch into the .bpc files in the PMD era of games leads to an interesting result. This is too small for a thread of its own, and I might not look at it past this, but I figured someone may be able to use it as a starting point or point me towards a tool that can already do this.
first byte is offset to first image data portion Code:
Code:
Code:
|
Quote:
|
I just came over an somehow interesting problem(at least one I have no solution for by now, I actually thought that was kind of easy)
I am basically looking for a routine that updates the palettes of a map, so the BG palettes and the OAM palettes. It does'nt have to update the tiles, but I don't care if it does (As long as this does not produce lagg, slowdowns or visual shinanigance since I would have to call those routines during the players movement) What I already found is a routine that is sort of a soft_reset, it does not update the sprites though and it ignores rain, so if its currently raining and the routine is called, the screen is lit up. Basically such a thing has to exist because this is what happens when the player enters a warp or leaves the menu, but I wasn't able to find it. Maybe someone had already had more luck than me :D Oh btw. I am working on pokémon emerald (german) but if anyone has a routine offset that works for FRE I'll be happy as well because it's not too complicated to port such an offset since the games basically had the same base code which is firered. ~SBird |
I'm not sure if I'm allowed to do this, but to prevent this info from getting lost I'm going to quote colcolstyles from here: http://www.pokecommunity.com/showpost.php?p=6360629&postcount=17122
Quote:
|
| All times are GMT -8. The time now is 8:53 AM. |
![]()
© 2002 - 2018 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2016 The PokéCommunity / PokéCommunity.com.
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.
Acknowledgements
Use of PokéCommunity Assets
vB Optimise by DragonByte Technologies Ltd © 2023.