The PokéCommunity Forums

The PokéCommunity Forums (https://www.pokecommunity.com/index.php)
-   Binary ROM Hacking (https://www.pokecommunity.com/forumdisplay.php?f=284)
-   -   Other How to make Rom Hacking Tools? (https://www.pokecommunity.com/showthread.php?t=351303)

Acealo June 27th, 2015 8:55 PM

How to make Rom Hacking Tools?
 
Hello everybody! I've been learning and practicing some programming ( Java and a little Swift) and was wondering how to go about making tools. Like how to access the ROM and modify it or whatnot. Is there any tutorials or guidance that could help me? Thanks for any help!

Splash June 27th, 2015 11:05 PM

I think Team Fail made a tutorial about it but not in this forum.. iirc it's in PHO

StarsMmd June 28th, 2015 11:46 AM

It's nice to see another swift programmer :). I really like swift and I'm making apps for hacking pokemon colosseum and XD. The only issue is that it's less accessible to the general public. Java is pretty universal though.

My advice to you would be to make sure you don't hard code too much. With the amount of hacking knowledge out there, people are doing really fancy things with roms. You want to make sure your tool is compatible with all the potential modifications.

Good luck!

esperance June 28th, 2015 12:19 PM

All you need to know to program a ROM hacking tool is how to read/write binary data with the language of your choice. Obviously, some languages are more suited to this than others, but it's usually rather easy to find articles documenting various programming techniques for this. Anything else is just a bonus for potential users.

For Swift, I think you should look into NSData and NSStream as starting points, if I remember it correctly.

Alexander Nicholi June 29th, 2015 5:55 AM



I would recommend using C++, D, JavaScript, Lisp, GTK+, and OpenGL to work with. Try to avoid working with .NET as they're only designed to work on Windows, and the major developers around here are trying to collectively motion for cross-platform capabilities.

Try to use OOP with your code as it's a truly powerful programming paradigm. Simple things would be easiest to implement in Bash or C.

If you use a compiled language (other than VM langs like Java), mind that your code is either totally cross-platform, or at least really easy to port between Windows and Linux. GLib, GIO, GTK+, and other libs like that help ensure that without having to go interpreted or managed.

Acealo June 29th, 2015 3:51 PM

Thanks for all the suggestions guys! I'll look into more and see what I can come up with.

Splash June 30th, 2015 5:40 AM

Quote:

Originally Posted by Lost Heart (Post 8820828)
All you need to know to program a ROM hacking tool is how to read/write binary data with the language of your choice. Obviously, some languages are more suited to this than others, but it's usually rather easy to find articles documenting various programming techniques for this. Anything else is just a bonus for potential users.

For Swift, I think you should look into NSData and NSStream as starting points, if I remember it correctly.

If you know the way to insert png into gba using c# i'd be your bestfriend :D

esperance June 30th, 2015 6:23 AM

Quote:

Originally Posted by Splash (Post 8823190)
If you know the way to insert png into gba using c# i'd be your bestfriend :D

It's really not that hard. Just look at the source of either NSE 2.X or GBA Graphics Editor for their LZ77 compression routines. Other than that it's simply a matter of making sure you have the image data the way you want it.

Basically:
  1. Load image
  2. Create array of indexes to the palette data from the original image (this is how you store images in the GBA)
  3. Compress
  4. Save


All times are GMT -8. The time now is 2:31 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.