The PokéCommunity Forums

The PokéCommunity Forums (https://www.pokecommunity.com/index.php)
-   Binary Hack Research & Development (https://www.pokecommunity.com/forumdisplay.php?f=195)
-   -   Research 2D/Fake Soaring in the Sky/Eon Flute for R/S/E/FR/LG (https://www.pokecommunity.com/showthread.php?t=363486)

thedarkdragon11 February 19th, 2016 4:37 PM

2D/Fake Soaring in the Sky/Eon Flute for R/S/E/FR/LG
 
Hello! I just want to share this hilarious idea of mine that will "enable" the "implementation" of the Soaring in the Sky feature from OR/AS to Gen. 3 hacks... Of course, it's not the best way to mimic the feature but few hackers might want to implement this one... It's just that I'm not good in ASM research/manipulation/coding (though I can understand some)...

What do we need for this one:
-An item slot...
-An OW map that represents the entire region...
-ASM knowledge (I think it will also be possible using C)...

My idea is that the item (aka the Eon Flute) will be used to warp the player into a corresponding spot from the OW map that represents the entire region (the OW map will act as the sky)... Say for instance, in a Hoenn-based hack, the player will use the Eon Flute at Littleroot Town... The item's script will warp the player into the corresponding position of Littleroot Town from the OW map of Hoenn (aka the Sky)... The same position will be used for the player to land... Just think of the "Sky" map as a map full of warp scripts to every towns/cities/etc. and also to mirage spots...

Since this will be an OW map, the wild Pokémon data should not be a problem... Legendary Pokémon battles can also be placed as OW events...

So what could be the sequence of the Eon Flute script? My idea is that once the Eon Flute is used:
-It will run the Fly animation script and load Mega Latias/Latios sprite in place of the supposed to be the Fly move user... The landing animation of the Fly script won't be loaded...
-Warp the user into the Sky OW map... The position of the user will be based from the Map Name...
-The player will be in Surf mode OW (or a custom OW that shows the player riding the Eon Pokémon...

How to land? My idea is that every towns/cities/routes/mirages/etc. from the Sky OW map, partcularly to the position/s where the Eon Flute will warp the player, will have scripts that will:
-Run the Fly animation script and load Mega Latias/Latios sprite in place of the supposed to be the Fly move user... But this time, the initial animation of the Fly script won't be loaded and the landing animation will be loaded after...
-Warp the player into the specified place...

Cons:
-I'm not sure if it is possible to disable the access to menu while at the Sky OW map...
-I'm not also sure if the script for Fly animation can be copied, disassembled and modified the way I mentioned above without messing up the hack...
-Too much scripts, especially for the landing scripts...
-No 3D...
-Unfortunately, I can't do this one... And I have no time to study GBA ASM/C as of this moment...

Thank you for reading! Feel free to ask/comment/suggest/criticize...

Vendily February 19th, 2016 5:34 PM

Quote:

Originally Posted by thedarkdragon11 (Post 9125887)
-snipped for length-

We could use Mode 7 to emulate 3D but a) that may not be compatible with the games and b) would probably take a fair amount of code pull off.
But it would totally look like the soaring from ORAS and Rangers: Guardian Signs. (More the latter though.)

Just ping-ponging ideas.

thedarkdragon11 February 20th, 2016 10:41 AM

Quote:

Originally Posted by Vendily (Post 9125930)
We could use Mode 7 to emulate 3D but a) that may not be compatible with the games and b) would probably take a fair amount of code pull off.
But it would totally look like the soaring from ORAS and Rangers: Guardian Signs. (More the latter though.)

Just ping-ponging ideas.

That's great! It's just that it may need lots of work and may not be implemented right away...

Aryan 10 January 25th, 2017 6:38 PM

This is great idea but is this possible to use Fly there or use a rod or is this possible to disable eon flute use there...
We need to set that place indoor and then need a script for disabling the rod and eon flute....

Dyskinesia April 22nd, 2017 2:51 PM

Could use dive/emerge map connections but modify the dive routine so instead of putting you in a location 1:1 with where you were in the first map, it divides the result then rounds it to simulate the "zoomed out" nature of it, if that makes sense. Since I'd imagine you would want travel to be faster when higher up in this way, so you'd get more of a sense of depth/height.

thedarkdragon11 April 28th, 2017 6:14 AM

Quote:

Originally Posted by Aryan 10 (Post 9556924)
This is great idea but is this possible to use Fly there or use a rod or is this possible to disable eon flute use there...
We need to set that place indoor and then need a script for disabling the rod and eon flute....

As much as possible, everything inaccessible from the real Soaring in the Sky should be inaccessible... However, if it's not possible then at least only the essential ones should be inaccessible like the use of moves in map, Bag (or at least using the Eon Flute, the rods, Bicycles, etc.) and maybe Save option...

You're right, setting the map to indoor will prevent the usage of some of those as long as that won't meddle with the Pokémon encounters (we should still can encounter wild and event Pokémons in the map, and I don't think it will)...

Quote:

Originally Posted by Sivart3 (Post 9626030)
As soon as I read the opening post to this thread I immediately thought of a really cheap way to pull this off. Here's my cheap thought process:

-------------------------------------------------------------------------------------------------
You know how tools such as Advance Map 1.92 let you edit the areas you're allowed to walk/not walk? Maybe there's a way to assign an item the properties to allow for your character to move over all areas by temporarily setting the tile to "C" allowing for free movement within the desired area. While doing so you could set the item to act like SURF; it changes your sprite to look like you're soaring on something, maybe a LATIOS or whatever you want. Alongside all of that maybe there's a way to tie that item/event to a similar mechanic as the BICYCLE. By that I mean the increase in character movement speed, maybe 2 or 3 times the speed of the BICYCLE and also restrict it to being outside only. (PROF. OAK is watching)
-------------------------------------------------------------------------------------------------

If you could successfully combine those three properties you could quickly "SOAR" over the map that you're using AND the NPCs would still simultaneously move/ walk around seeing as how you never actually entered a menu.

Exactly... I hope those would be possible though...

Quote:

Originally Posted by Dyskinesia (Post 9626139)
Could use dive/emerge map connections but modify the dive routine so instead of putting you in a location 1:1 with where you were in the first map, it divides the result then rounds it to simulate the "zoomed out" nature of it, if that makes sense. Since I'd imagine you would want travel to be faster when higher up in this way, so you'd get more of a sense of depth/height.

Do you think it's possible to duplicate modify the Dive mechanics without messing up with the existing/untouched Dive routine?

mbcn10ww April 28th, 2017 9:40 AM

That's a good idea (the sky map thing), and it can be done modifying the Dive scripts and using a modified routine to change the sprite like Spherical Ice did for Dive, it's very easy to do, I think.


Quote:

Originally Posted by thedarkdragon11 (Post 9631108)
Do you think it's possible to duplicate modify the Dive mechanics without messing up with the existing/untouched Dive routine?

You don't need to mess with the original routine, just make a modified copy of it. But I think you will need to avoid using Dive in the same map you are using it.

thedarkdragon11 May 1st, 2017 1:37 PM

Quote:

Originally Posted by mbcn10ww (Post 9631372)
That's a good idea (the sky map thing), and it can be done modifying the Dive scripts and using a modified routine to change the sprite like Spherical Ice did for Dive, it's very easy to do, I think.




You don't need to mess with the original routine, just make a modified copy of it. But I think you will need to avoid using Dive in the same map you are using it.

That would be complicated for maps that needs both...

mbcn10ww May 1st, 2017 7:30 PM

Quote:

Originally Posted by thedarkdragon11 (Post 9634445)
That would be complicated for maps that needs both...

yes, that's the issue, and the sky map will me "connected" with all OW maps from your region, then some will have Dive. I think the better way is to make some specific location in OW maps to make the player warp instead of just doing a "Dive" thing.

Blah May 2nd, 2017 6:42 AM

I'm not quite seeing where Dive comes into this, nor why it should. You would toss out the essential "flying over the world" experience and it would look much like the OW head on the world map replaced with a guy on a M-Lati/os/as.

That said, you will never be able to Zoom out from the original map to create the illusion of elevation. The reason is because gen III maps have too many overlapping layers. The best option to emulate the feature does involve using mode 7, however it's a bitmap mode and so you need art for it. There is some math involved here as well.

An easier way would be to use custom world map art and mode 1. You can't do angled flight, but things like moving around the map, landing and elevating is possible. For bigger regions a loadscreen may be necessary during far movements because the map is 8BPP in this mode and it's quite expensive to commit a new one once out of bounds (an entire region map 8BPP with the ability to zoom out would be impossible to commit to BG VRAM at once). You can find a mode 1 sample usage on my YT channel for the platform battle thing I was doing a while back.

Personally, this seems like one of those features you give up on because doing it cheaply also cheapens your game.

thedarkdragon11 May 2nd, 2017 8:31 PM

Quote:

Originally Posted by mbcn10ww (Post 9634716)
yes, that's the issue, and the sky map will me "connected" with all OW maps from your region, then some will have Dive. I think the better way is to make some specific location in OW maps to make the player warp instead of just doing a "Dive" thing.

That's what I'm originally thinking...

Quote:

Originally Posted by FBI (Post 9635097)
I'm not quite seeing where Dive comes into this, nor why it should. You would toss out the essential "flying over the world" experience and it would look much like the OW head on the world map replaced with a guy on a M-Lati/os/as.

That said, you will never be able to Zoom out from the original map to create the illusion of elevation. The reason is because gen III maps have too many overlapping layers. The best option to emulate the feature does involve using mode 7, however it's a bitmap mode and so you need art for it. There is some math involved here as well.

An easier way would be to use custom world map art and mode 1. You can't do angled flight, but things like moving around the map, landing and elevating is possible. For bigger regions a loadscreen may be necessary during far movements because the map is 8BPP in this mode and it's quite expensive to commit a new one once out of bounds (an entire region map 8BPP with the ability to zoom out would be impossible to commit to BG VRAM at once). You can find a mode 1 sample usage on my YT channel for the platform battle thing I was doing a while back.

Personally, this seems like one of those features you give up on because doing it cheaply also cheapens your game.

That's why we're only limited to 2D, using OW map, with this idea...

mbcn10ww May 3rd, 2017 2:16 AM

Quote:

Originally Posted by thedarkdragon11 (Post 9635683)
That's what I'm originally thinking...

I think it can be done with scripting, the only thing you will need in ASM is the routine for changing the OW sprite.

BluRose May 3rd, 2017 6:38 PM

Quote:

Originally Posted by mbcn10ww (Post 9635835)
I think it can be done with scripting, the only thing you will need in ASM is the routine for changing the OW sprite.

literally there is nothing at this point stopping us from doing this. mode 7 would be a lot of fun as a calculus after-exam project if anyone on my robotics team would want to figure that out with me, but hey what do i know
but yeah the overworld map is a fun little thing as it is
have fly check map bank & number and then warp to a certain position in the overworld map and then do the same for coming down~ asm routine on way up, script on way down

thedarkdragon11 May 6th, 2017 1:56 AM

Quote:

Originally Posted by BluRose (Post 9636443)
literally there is nothing at this point stopping us from doing this. mode 7 would be a lot of fun as a calculus after-exam project if anyone on my robotics team would want to figure that out with me, but hey what do i know
but yeah the overworld map is a fun little thing as it is
have fly check map bank & number and then warp to a certain position in the overworld map and then do the same for coming down~ asm routine on way up, script on way down

True... Well, I like that idea...

camthesaxman February 4th, 2018 7:41 PM

Done!

saidra February 6th, 2018 10:44 AM

WOW! I sincerely loved the idea of soaring in OR/AS,and then, some genius person made it possible in R/S. What a wonderful idea! Btw, I'm new to hacking ,so, can you please teach people how to do it, like a tutorial?
Well,i think it would be fun importing this mechanic into my new "hack", of course if you allow me to do it.
I would obviously credit you for it
(Quick Edit : I forgot to thank the person who did the soaring mechanic to Pokemon Ruby,and the person who had the idea.)

Well then,I'm leaving,cya later!

camthesaxman February 6th, 2018 10:20 PM

Sure, feel free to put this into your hack. It would be a great addition.
Code for the soaring is here https://github.com/camthesaxman/pokeruby/blob/soar/src/soar.c
Please note that this is fairly untested, and not as polished as I'd like. I haven't adjusted any of the spawn points yet, so landing on many routes place you in the middle of rocks or trees where you can't move.

saidra February 7th, 2018 12:53 PM

Oh,thank you so much! I will learn how to "input" this on my hack, seriously, thanks a LOT. ^^

thedarkdragon11 February 9th, 2018 6:09 AM

Quote:

Originally Posted by camthesaxman (Post 9836360)
Done!

Whoa there man! Thanks for turning this idea into reality... ^^

Now, aside from the bugs that you saw, some of the future implementation issues would probably be:
  • How to include wild Pokémon in the sky depending on the location
  • How to include events (e.g. legendary encounters)
  • Not necessary but a plus: mimicry of the fly animation with Mega [email protected] sprite before and after flight
Anyway, I hope you can make a thread for this in the R&D section...

camthesaxman February 11th, 2018 7:24 PM

Thanks for the feedback. I did try to add the fly animation at the start, but couldn't get any to work. The field effect system is largely undocumented and fairly complex, so I haven't figured out how it all works yet. I'd also want to have a larger, more detailed map, but I don't have the art skills to make one. I do plan on adding wild encounters. I'm pretty busy at the moment, but I will improve this soaring feature if it gets enough popularity.

Avara February 12th, 2018 10:50 AM

Quote:

Originally Posted by camthesaxman (Post 9839798)
Thanks for the feedback. I did try to add the fly animation at the start, but couldn't get any to work. The field effect system is largely undocumented and fairly complex, so I haven't figured out how it all works yet. I'd also want to have a larger, more detailed map, but I don't have the art skills to make one. I do plan on adding wild encounters. I'm pretty busy at the moment, but I will improve this soaring feature if it gets enough popularity.

Please do continue when you have the time, this is brilliant! Can help with art stuff if needed.

EDIT: Moved to R&D

Platinum Lucario February 13th, 2018 7:31 AM

There is something I just want to point out.
Quote:

Originally Posted by thedarkdragon11 (Post 9125887)
Cons:
-I'm not sure if it is possible to disable the access to menu while at the Sky OW map...
-I'm not also sure if the script for Fly animation can be copied, disassembled and modified the way I mentioned above without messing up the hack...
-Too much scripts, especially for the landing scripts...
-No 3D...
-Unfortunately, I can't do this one... And I have no time to study GBA ASM/C as of this moment...

Actually, it is completely possible to implement 3D objects into a Game Boy Advance game, it just has to be very limited 3D and can only be done in mode 7 (making it look somewhat like how the Super FX2 games on the SNES looked like), due to the very limited nature of the ARM7 core. Doing so would need some Assembly or C language code to ensure that the triangles have textures or a colour and to be viewable from every camera angle. The ARM7 core is completely compatible with 3D objects. In fact, there are some games that make very good use of it too, such as Crazy Taxi.

It probably wouldn't hurt to also experiment with adding some triangles on the ground to act as some terrain as well.

camthesaxman February 13th, 2018 12:26 PM

I believe it is possible to do some basic polygons using rotated/scaled sprites. I might consider doing this for mountains, if I can figure out the math. But a completely 3D world with hills and valleys everywhere would require a completely different rendering approach, and getting a decent framerate and draw distance would be tough. If you've seen games like Crazy Taxi and Super Monkey Ball Jr., the framerate and draw distance are absolute crap, and I REALLY like having 60 FPS.

With my current approach, I can have a 1024x1024 floor, which is divided into 8x8 tiles, which means a grid of 128x128 tiles. If we limit the flying height and the draw distance, I could dynamically load chunks of the map as the player flies around, making an infinitely sized map possible. The main limitations is that the map can only use 256 different tiles, so we have to carefully choose what tiles we want to have.

Oh, and I haven't touched the scripts at all. Everything so far has been done in C with the pokeruby disassembly.

P.S. Thanks, wobb and Tetrable for the Latios/Latias sprite.

AtecainCorp. February 21st, 2018 2:57 PM

Quote:

Originally Posted by camthesaxman (Post 9837252)
Sure, feel free to put this into your hack. It would be a great addition.
Code for the soaring is here https://github.com/camthesaxman/pokeruby/blob/soar/src/soar.c
Please note that this is fairly untested, and not as polished as I'd like. I haven't adjusted any of the spawn points yet, so landing on many routes place you in the middle of rocks or trees where you can't move.

Wonderfull Work. How can I implment that script into the hacks?

Hotice03 February 23rd, 2018 5:23 PM

How can i add this to my pokemon fire red rom hack? will there be an ips o anything of some sort? would looooove to have this feature would give credit to those who did it of course


All times are GMT -8. The time now is 8:39 AM.


Like our Facebook Page Follow us on Twitter © 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.