- 2,048
- Posts
- 17
- Years
- Seen Sep 7, 2023
ROM Hacker XP
I'm going to make a logo for this eventually
Firstly, the [RMXP] in the title is a bit of a joke :P In the Game Development forum, a game made in RPG Maker can use the [RMXP] tag; and this tool is technically an RPG Maker game, but with gameplay replaced by ROM hacking
You probably know me from my game, Pokémon Amethyst, made in RPG Maker XP. However, recently, I've been helping with a ROM hacking project, whose goal is to bring ROM hacking closer to game development by removing the 386+25 Pokémon limit.
One thing I found was that there were very few tools which allowed batch modification of a ROM; for example, if you want to decapitalise the names of every single Pokémon, you'd have to use A-Text or a Pokémon editor separately for each one. I got around this by writing an RGSS script to do it (basically automated hex editing); I'm going to add similar features to this tool later.
A second thing I found out is that the only icon editing tool currently available, to put it bluntly, sucks. There's no way to import images, so you're stuck with recreating icons pixel-by-pixel. If you're adding loads of new, or even D/P, Pokémon, that's far too unnecessarily time-consuming. I spent some time figuring out how the icons are stored in the ROM, and eventually came up with a script allowing me to directly import icons. That's the first (and currently only) feature in this tool, since icons aren't particularly hard to edit.
Thirdly, it's a hassle to download a bunch of tools, and wait for each one to start up, when you're just trying to do a simple thing (such as edit the Pokémon found on the first route so you can test a sprite you just inserted). Again, I found the offset for that, and made a script to quickly change it without having to open up A-Map, find the relevant map, go to the wild Pokémon tab, and change 12 occurences of that Pokémon...
And finally, there are a few things in the ROM which I couldn't find any documents, let alone tools, on. For example, if you're inserting new Pokémon, you might have noticed that some Pokémon have their sprites positioned higher or lower in battle, and may even have a shadow. Thanks to thethethethe, I made a quick script to fix the positions of Pokémon; however, some of them were still floating in the air, or even underground. So I had to find the table which controls these, figure out its format, and then make some way of editing it (you can't automate this; how would the script know whether the sprite was supposed to be floating in the air?). I'm going to add this to my tool, too :)
Features
Screenshots
Instructions
Place your ROM in the ROMs folder, and start RHXP.exe. Select the ROM you want to edit from the list, and then select the correct .ini file for the ROM version. Choose the feature you want to use. Press Escape to go back to this screen from one of the editors.
Icon Editor
Use the left and right arrow keys, or the arrows at the top of the screen, to select an icon.
Alternatively, click the Pokémon's name at the top, type its name or number, and press Enter.
Use the left and right arrow keys, or the arrows at the top of the screen, to select a Pokémon.
Alternatively, click the Pokémon's name at the top, type its name or number, and press Enter.
To give/remove a Pokémon's shadow, simply increase or decrease the altitude until the shadow appears/disappears. It will appear the same way in-game.
Press Space to switch between normal/shiny sprites.
Use the left and right arrow keys, or the arrows at the top of the screen, to select a Pokémon.
Alternatively, click the Pokémon's name at the top, type its name or number, and press Enter.
This editor uses the same image naming scheme as Pokémon Essentials. The sprites should be named ###?.png (or .bmp), where ### is the Pokémon's internal number, and ? is an ending from these: '' (no ending): normal front sprite; 's': shiny front sprite; 'b': back sprite; 'sb': shiny back sprite. For example, Bulbasaur's sprites would be named 001.png, 001s.png, 001b.png, and 001sb.png.
Planned features
Known bugs
Download (version 1.04 (24 July 2009); .zip)
2shared
FileFront
I'm going to make a logo for this eventually
Firstly, the [RMXP] in the title is a bit of a joke :P In the Game Development forum, a game made in RPG Maker can use the [RMXP] tag; and this tool is technically an RPG Maker game, but with gameplay replaced by ROM hacking
You probably know me from my game, Pokémon Amethyst, made in RPG Maker XP. However, recently, I've been helping with a ROM hacking project, whose goal is to bring ROM hacking closer to game development by removing the 386+25 Pokémon limit.
One thing I found was that there were very few tools which allowed batch modification of a ROM; for example, if you want to decapitalise the names of every single Pokémon, you'd have to use A-Text or a Pokémon editor separately for each one. I got around this by writing an RGSS script to do it (basically automated hex editing); I'm going to add similar features to this tool later.
A second thing I found out is that the only icon editing tool currently available, to put it bluntly, sucks. There's no way to import images, so you're stuck with recreating icons pixel-by-pixel. If you're adding loads of new, or even D/P, Pokémon, that's far too unnecessarily time-consuming. I spent some time figuring out how the icons are stored in the ROM, and eventually came up with a script allowing me to directly import icons. That's the first (and currently only) feature in this tool, since icons aren't particularly hard to edit.
Thirdly, it's a hassle to download a bunch of tools, and wait for each one to start up, when you're just trying to do a simple thing (such as edit the Pokémon found on the first route so you can test a sprite you just inserted). Again, I found the offset for that, and made a script to quickly change it without having to open up A-Map, find the relevant map, go to the wild Pokémon tab, and change 12 occurences of that Pokémon...
And finally, there are a few things in the ROM which I couldn't find any documents, let alone tools, on. For example, if you're inserting new Pokémon, you might have noticed that some Pokémon have their sprites positioned higher or lower in battle, and may even have a shadow. Thanks to thethethethe, I made a quick script to fix the positions of Pokémon; however, some of them were still floating in the air, or even underground. So I had to find the table which controls these, figure out its format, and then make some way of editing it (you can't automate this; how would the script know whether the sprite was supposed to be floating in the air?). I'm going to add this to my tool, too :)
Features
- General
- Supports more than 386 (or 440) Pokémon
- Compatible with hacks which have new Pokémon inserted
- User can define custom offsets
- Icon editor
- Exports .png images
- Imports .png and .bmp images, both indexed and non-indexed
- Animated preview screen shows how the icon looks in-game
- Automatically resizes images to the right size
- Automatically assigns a palette to an imported image
- User can reposition icons if needed
- Can batch-import images
- Compatible with Pokémon Essentials icon naming scheme and image format
- Sprite position editor
- Edits the position of player and enemy sprites
- Can automatically position a sprite
- Again, an animated preview screen shows how they look in-game
- Loads images from the ROM, so compatible with new Pokémon
- Can give front sprites a shadow
- Pokémon sprite editor
- Exports .png images
- Imports .png and .bmp images, both indexed and non-indexed
- Automatically resizes images to the correct size
- Automatically assigns a palette to an imported image
- Adjusts order of imported image palettes for good-looking back and shiny sprites
- Can deal with shines and backsprites with more/less colours, like Magnemite
- Automatically aborts if the new image doesn't fit in the free space or over the old image
- Automatically changes the sprite pointer in the pointer table
Screenshots
Spoiler:
![[PokeCommunity.com] [RMXP] ROM Hacker XP [PokeCommunity.com] [RMXP] ROM Hacker XP](https://img190.imageshack.us/img190/1992/screenshot1o.png)
![[PokeCommunity.com] [RMXP] ROM Hacker XP [PokeCommunity.com] [RMXP] ROM Hacker XP](https://img12.imageshack.us/img12/271/screenshot2rjz.png)
![[PokeCommunity.com] [RMXP] ROM Hacker XP [PokeCommunity.com] [RMXP] ROM Hacker XP](https://img145.imageshack.us/img145/1558/screenshot3w.png)
![[PokeCommunity.com] [RMXP] ROM Hacker XP [PokeCommunity.com] [RMXP] ROM Hacker XP](https://img149.imageshack.us/img149/8469/screenshot4hmq.png)
Instructions
Place your ROM in the ROMs folder, and start RHXP.exe. Select the ROM you want to edit from the list, and then select the correct .ini file for the ROM version. Choose the feature you want to use. Press Escape to go back to this screen from one of the editors.
Icon Editor
Use the left and right arrow keys, or the arrows at the top of the screen, to select an icon.
Alternatively, click the Pokémon's name at the top, type its name or number, and press Enter.
- Write to ROM - writes the current icon to the ROM
- Write all to ROM - loads and writes all correctly named icons in the Icons folder to the ROM
- Import - loads an icon from the Icons folder, named either icon.* or icon###.*, where ### is the internal number of the selected Pokémon
- Export - saves the current icon to Icons/icon###.png, where ### is the internal number of the selected Pokémon
- Arrows around the sprite - shift the sprite one pixel in the corresponding direction
Use the left and right arrow keys, or the arrows at the top of the screen, to select a Pokémon.
Alternatively, click the Pokémon's name at the top, type its name or number, and press Enter.
To give/remove a Pokémon's shadow, simply increase or decrease the altitude until the shadow appears/disappears. It will appear the same way in-game.
Press Space to switch between normal/shiny sprites.
- Write to ROM - writes the sprite position to the ROM
- Auto - automatically positions sprite for best results (usually)
- Altitude - controls how high the sprite appears above the ground. Please use the auto-position feature before adjusting this
- Arrows - control the vertical position of the sprite
Use the left and right arrow keys, or the arrows at the top of the screen, to select a Pokémon.
Alternatively, click the Pokémon's name at the top, type its name or number, and press Enter.
This editor uses the same image naming scheme as Pokémon Essentials. The sprites should be named ###?.png (or .bmp), where ### is the Pokémon's internal number, and ? is an ending from these: '' (no ending): normal front sprite; 's': shiny front sprite; 'b': back sprite; 'sb': shiny back sprite. For example, Bulbasaur's sprites would be named 001.png, 001s.png, 001b.png, and 001sb.png.
- Write to ROM - writes the sprite to the ROM, at a specified offset. Hexadecimal offsets should be preceded with '0x'. Compressing the image takes a few seconds, so be patient
- Import - loads sprites from the Pokemon folder, using the naming scheme above. Make sure all four sprites are present for best results
- Export - saves all four sprites to the Pokemon folder, using the naming scheme above
Planned features
- Make some actual graphics for the editor
- Ability to convert from National Dex numbering to internal numbering (for example, Chimecho is #358 in the National Dex, but #411 internally)
- Allow icons to be modified in the editor
- Auto-convert icons with incorrect palettes
- Actually make a file selection dialog; currently, you have to name any files correctly, and put them in a certain folder
Known bugs
- You have to close the editor before changes take effect; I'll fix this for the next release
- The Egg and Unown forms have odd names; that's not a bug, since they don't have entries in the name table
- Might not work with some operating systems; try running in compatiblity mode for Windows XP, or use a Windows XP emulator or virtual machine
- DO NOT edit the positioning of the Egg and Unown sprites (other than Unown A)
- Don't try importing battle sprites for Castform and Deoxys; I haven't sorted out the multi-form Pokémon yet
Download (version 1.04 (24 July 2009); .zip)
2shared
FileFront
Last edited: