Hacking Pokémon ORAS | Sango Plugin

  • Thread starter Thread starter Zetta_D
  • Start date Start date
  • Views Views 11,150
  • Replies Replies 96
  • Likes Likes 8
I made some progress today. Right now, I'm working on a memory map for Pokémon ORAS and documenting how the heap works, how memory blocks are allocated, etc.

I also had an idea to create a Pokémon MMO. Moving around the map with other people provides a much better experience than the PSS. It would be cool to play through the adventure with multiple players, but I still have a ton of reverse engineering work to do.
 
Je suis si entusiasmé en visent votre progrès avec le jeu. C'est impressionnant, vraiment.
Keep on keeping on!
 
I made some progress today. Right now, I'm working on a memory map for Pokémon ORAS and documenting how the heap works, how memory blocks are allocated, etc.

I also had an idea to create a Pokémon MMO. Moving around the map with other people provides a much better experience than the PSS. It would be cool to play through the adventure with multiple players, but I still have a ton of reverse engineering work to do.
C'est trop bien ca ( et zetta stp tu peut me répondre 🥲)je tai envoyer jn message mp
 
I made some progress today. Right now, I'm working on a memory map for Pokémon ORAS and documenting how the heap works, how memory blocks are allocated, etc.

I also had an idea to create a Pokémon MMO. Moving around the map with other people provides a much better experience than the PSS. It would be cool to play through the adventure with multiple players, but I still have a ton of reverse engineering work to do.
Heya! Seeing this again after some time, have you done more?
 
Besides the tutorials and new tools I post on GBATemp, I’ve gotten back to work on the Sango plugin. Right now, I’m focusing on reverse engineering the 'view' components within the battle system.

The goal is to implement features like a rainbow effect on Pokémon, scaling them up or down (zoom effects), and making them rotate during battle. I also want to allow users to apply a 'Boss' graphical aura to Pokémon to represent their power level for future Nuzlocke runs.

So far, I’ve successfully identified the components responsible for color rendering. By reverse engineering the function that changes a Pokémon's color when it has a status condition (like burn or poison), I can now apply custom color effects to any Pokémon. This is a major improvement over my old code, where I was modifying the model textures directly—which looked pretty messy. This new method is much cleaner.

1773787766391.png
1773787770427.png
1773787780774.png
 
  • Like
Reactions: Ritsu96
Besides the tutorials and new tools I post on GBATemp, I’ve gotten back to work on the Sango plugin. Right now, I’m focusing on reverse engineering the 'view' components within the battle system.

The goal is to implement features like a rainbow effect on Pokémon, scaling them up or down (zoom effects), and making them rotate during battle. I also want to allow users to apply a 'Boss' graphical aura to Pokémon to represent their power level for future Nuzlocke runs.

So far, I’ve successfully identified the components responsible for color rendering. By reverse engineering the function that changes a Pokémon's color when it has a status condition (like burn or poison), I can now apply custom color effects to any Pokémon. This is a major improvement over my old code, where I was modifying the model textures directly—which looked pretty messy. This new method is much cleaner.

View attachment 562909View attachment 562910View attachment 562911
The bottom left looks like that gray pikachu from pokopia
 
Great news - I’ve finally finished cleaning up my code for a public release! For now, I’m only uploading the framework with a menu example for playing sounds. The source code is available here, and I'll be posting the code for save data modification, battle, maps, and more to the Git repository very soon: https://github.com/David-Darras/sango-plugin

1774115582429.png
 
I'd make something like this for MH4U if I was a better programmer and reverse engineer, awesome work!
Great news - I’ve finally finished cleaning up my code for a public release! For now, I’m only uploading the framework with a menu example for playing sounds. The source code is available here, and I'll be posting the code for save data modification, battle, maps, and more to the Git repository very soon: https://github.com/David-Darras/sango-plugin

View attachment 563536
 
  • Like
Reactions: Zetta_D
Hi, I’m currently thinking about adding a “Nuzlocke” submenu in the plugin.

For example: completely wiping the save and automatically restarting the game as soon as all 6 Pokémon are dead, deleting a Pokémon as soon as it faints in battle so you don’t have to manually move it to the PC boxes, skipping cutscenes, etc.
If you have any other ideas, I’m interested x)

I can also add a menu for shiny hunting – include a counter for resets, fishing, etc.
 
Last edited by Zetta_D,
Hi, I’m currently thinking about adding a “Nuzlocke” submenu in the plugin.

For example: completely wiping the save and automatically restarting the game as soon as all 6 Pokémon are dead, deleting a Pokémon as soon as it faints in battle so you don’t have to manually move it to the PC boxes, skipping cutscenes, etc.
If you have any other ideas, I’m interested x)

I can also add a menu for shiny hunting – include a counter for resets, fishing, etc.
Maybe an Iv/Ev viewer and for the shiny hunting have an egg counter too?
 
  • Like
Reactions: Zetta_D
Yes, you can directly modify the romfs by replacing the offsets in the header of the file that groups all the game’s models.
But you need it if you want to disable the T-pose when you run and when you throw the Poké Ball x)
 
A good portion of the save data has also been added (to modify your Pokémon, your items, playtime, etc.).
I also started adding a few cheat codes today to manipulate models on the map.

1775846535928.png
 
  • Like
Reactions: Subcon
Oooh thats all cool, and i like the nuzlocke idea!! Definetily most excited for the player model stuff
 
I just added the camera menu. I also improved it so you can move freely and rotate around the world with the camera. I re-implemented the first-person view as well, and added a camera that can rotate around the player, etc.

I’m also attaching the plugin (AR cheat code) in case you want to try it - the one on GitHub isn’t up to date.

1775989026757.png
1775989032581.png
1775989037315.png

Post automatically merged:

By tweaking the function that renders outlines, we can create a mode that produces a ghosting effect on Pokémon (though it doesn't work in the overworld).

1776011764645.png

Post automatically merged:

Good news: besides controlling the outlines, I can now also remove the shading from the Pokémon models!

With the code disabled
1776018677634.png


With the code enabled
1776018681889.png

1776018737284.png
1776018746926.png

With the code disabled
 

Attachments

Last edited by Zetta_D,
  • Like
Reactions: Subcon
Here is a new code idea for a future Pokémon Kaizo: when a battle starts, we use the opponent’s team’s Pokémon, and they use ours. This forces players not to have Pokémon that are too high level. We could also add code to modify the opponent’s Pokémon’s moves, abilities, etc., each turn to make things more difficult.

1776340106039.png
1776340110222.png
 
  • Like
Reactions: Subcon
I've successfully manipulated the entire battle workflow: it's now possible to trigger 15 attacks, swap weather conditions 3 times or mega-evolve the whole party, all in one turn.

 
Fun fact: The mechanism to change the battle wallpaper from XY is still present in ORAS save data, but the developers removed the in-game settings menu. You can now use this plugin to select your custom wallpaper since the original option was hidden. Additionally, there's an invisible 'No Wait' text speed setting that exists in the code but isn't available in the standard in-game menus.

1777216209907.png
1777216228445.png
1777216231617.png
 
  • Like
Reactions: Subcon

Site & Scene News

Popular threads in this forum