(Link to AcmlmWiki) Offline: thank ||bass
Register | Login
Views: 13,040,846
Main | Memberlist | Active users | Calendar | Chat | Online users
Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album
11-01-24 12:09 AM
0 users currently in The Pit of Despair.
Acmlm's Board - I3 Archive - The Pit of Despair - Searching for (Pokémon) Emerald tile drawing-order information and addresses New poll | | Thread closed
Add to favorites | Next newer thread | Next older thread
User Post
kanzure
Newcomer


 





Since: 06-17-06

Last post: 6711 days
Last view: 6711 days
Posted on 06-17-06 01:02 AM Link
Hey all, this will be a slightly strange question from the normal stream of things*, but hopefully we can crank out a solution. In essence, I have been looking for some information regarding the variables to set in order to trigger the ability to draw a sprite over the main player versus under the main player. After downloading AdvanceMap, I was rather saddened to discover that the collision detection bytemap is not the solution. The following is a collection of screenshots to assist in realizing my search criteria. Yeah, it is more like an assembly of various screenshots, but it should prove more effective than staggering 16 different PNGs in numerical order.

* see [1]

Anyway, let's see if I can shed some more light on what I am searching for. As we can tell from the linked image, the player's bike is a bit of an anomaly in the entire game (it is starting to look like a really bad hack by the Japanese developers), as it is forced to be drawn under yet sometimes over at various different positions. The pokeball stance is grabbed just before cut/fly is used. The images are not all related, as I have been collecting these screenshots to generally help with reverse engineering the way by which the engine blits graphical information (such as what order, et cetera).

It is doubtful that anyone has an immediate answer for me. Instead of complaining about the situation, I recommend that we figure out how we would find this information and play around with it. I suspect that if the information is found we can make it such that, given any tile placed on the map, we can make it draw over the player's sprite (even if the tile is the normal town grass, et cetera). I doubt that the original RPGs were developed to only blit the tops of trees and houses over the player. After the addresses of this information is found we can easily whip up a tool as a return gift for working on this problem. How can we find this information? Any techniques to apply? Today I tried out some simple corruption technique, see my edit (far) below.

Furthermore, I have assembled a video for the extra special assistance. It's over at [2]. The local message board system over at pokecommunity.com, where I originally posted this thread, rejects my message when I include links, so you will have to forgive my linking of the WMV file, I didn't bother to convert it. I apologize for the format, but my local GNU/Linux box is not suitable for (timely) streaming video modification.

Thanks,
~ kanzure

[1] http://24.27.53.128/~bbishop/shots/pokemonEmeraldJune14th02006_12.PNG
[2] http://24.27.53.128/~bbishop/shots/example_all.wmv
* at least at where this thread was originally posted, over at http://www.pokecommunity.com/showthread.php?t=69637

(pseudo) EDIT: The information may be in memory addresses 0x300000 to 0x400000, although I have yet to isolate anything down to a single group of addresses.
Kingpin



 





Since: 11-21-05
From: Amarillo, TX

Last post: 6471 days
Last view: 6465 days
Posted on 06-17-06 01:05 AM Link
http://board.acmlm.org/forum.php?id=33
kanzure
Newcomer


 





Since: 06-17-06

Last post: 6711 days
Last view: 6711 days
Posted on 06-17-06 01:09 AM Link

And who moves the thread?
Surely that trivial matter can wait until a moderator bothers to move this.
labmaster

Red Paragoomba


 





Since: 11-18-05
From: Away for exams, back mid-December.

Last post: 6540 days
Last view: 6470 days
Posted on 06-17-06 02:38 AM Link
I haven't had much to do with Pokémon hacking, but here's some info that may help you:

1. The bike/player is always a sprite.
2. You can walk 'under' the tops of some trees - these tops are in a different background layer (BG1) to the rest of the background (BG2), and has a lower priority, which is why the bike appears under it. However, because the bike is wider than a standard tile, when you stand next to part of a tree which is in BG2 (you can't walk under it), the bike appears above the tree.

3. Moving through grass. This really is quite hackish - grass resides in BG2. However, whilst you are on (or moving off from) a grass tile, the game creates a grass sprite which goes over the player sprite, thus making it look like you're in the grass. This is fine with a normal player, however as I mentioned before the bike is wider than the character and a standard tile, so the part of the bike on the tile gets covered, but the ends don't.

The thing that does need to be stressed, though, is that this isn't an issue of the executable blitting sprites/tiles manually - sprites and background layers are all handled by the GBA hardware itself. I'd put the odds at corruption being able to fix this at zero-to-none, there's no magic value that you can modify to change the behaviour of the game. BG1 will always appear above both sprites and BG2 unless you make changes to the IO register in which case you'll end up screwing up everything.

So your best bet and getting your desired result, would be to hook the code that currently makes these 'hackish' changes, and write your own assembly to get what you want. However, this is likely to be a heck of a lot of work, and might not really be worth it. For example, for the bike-in-grass issue, whenever the player moves you'd have to check if the tiles adjacent to the character were grass, then you'd have to create a temporary grass sprite, and when the player moves this would have to be destroyed.


Anyway, I wouldn't take everything I've said as gospel, hopefully for you someone with a bit more experience with the Pokémon games will come and tell you I've totally misread the situation and what you want to do is in fact really simple

edit: just as an aside, it's probably a good thing that you posted in this forum because I seldom venture into the mess that is the Pokémon hacking forum.


(edited by labmaster on 06-17-06 01:39 AM)
kanzure
Newcomer


 





Since: 06-17-06

Last post: 6711 days
Last view: 6711 days
Posted on 06-17-06 10:09 AM Link

Hm, you know, I did not consider that it is due to the hardware that the ROM is supposed to be executing over. Regarding your point #3, what might be the trigger behind drawing the grass in BG1 when the characters are standing on a grass tile? I have noticed that the grass is still indeed under the characters. I suspect it has something more to do with checking some information concerning the tile, finding a pointer to what sprite to draw over the player, and then doing so. However that is not the simplified method, so feel free to butcher it with Occam's razor.

Do not get me wrong, I am in fact more interested in figuring out how to simulate nearly the same result on my own rather than hacking the ROMs. When you copy a work of art, you always start by looking at the art. Very closely, too.

Thank you for the response,
~ kanzure
DJ Bouche

Koopa


 





Since: 11-22-05
From: Bligh Park, NSW, Australia

Last post: 6627 days
Last view: 6627 days
Posted on 06-17-06 11:40 AM Link
The priority settings in the tiles are what does this (the "collision detection" bytemap can help you in terms of making mid-air platforms on top of other things, though). The priority flag is just a bit in the Map8 of the tiles.
kanzure
Newcomer


 





Since: 06-17-06

Last post: 6711 days
Last view: 6711 days
Posted on 06-17-06 01:18 PM Link

DJ Bouche, thank you for the information. What is Map8 and where might I find some documentation? Are these bits anywhere near the stored tile grapical information? That may give me some hints as to where to scout out further addresses.
Simon Belmont
Except I'm totally fucking hyped about Dracula X: Chronicles.








Since: 11-18-05
From: Pittsburgh

Last post: 6465 days
Last view: 6465 days
Posted on 06-17-06 02:54 PM Link
Originally posted by Kario
http://board.acmlm.org/forum.php?id=33


Don't be a rent-a-mod, kids.
Add to favorites | Next newer thread | Next older thread
Acmlm's Board - I3 Archive - The Pit of Despair - Searching for (Pokémon) Emerald tile drawing-order information and addresses | Thread closed


ABII

Acmlmboard 1.92.999, 9/17/2006
©2000-2006 Acmlm, Emuz, Blades, Xkeeper

Page rendered in 0.022 seconds; used 385.43 kB (max 469.23 kB)