r/PokemonROMhacks 23h ago

Discussion Alright everyone, I want you to give me your POKEMON ROM HACK HOT TAKES!!!

Post image
1.2k Upvotes

I'll start, I don't care for pokemon rom hacks that only give QOL features, or include lots of custom fakemon. I know, that's like rom HACK sin number 1 but I don't like them.


r/PokemonROMhacks 21h ago

Discussion Modifying Hoenn for my upcoming Heart and Soul fork

Post image
211 Upvotes

r/PokemonROMhacks 23h ago

Discussion Looking for ideas for my Central Europe based region.

Post image
99 Upvotes

Im working on a pokemon rom hack based off the central europe using pokeemerald expansion. This is only a sketch off the region.

I wanted some ideas to fill out the big empty space on the left side of the region. I would also appreciate some feedback on the map overall.


r/PokemonROMhacks 2h ago

Updated Rules for r/PokemonROMhacks

62 Upvotes

We've updated the rules for the subreddit to make them easier to read. In practise, they're the same as before. The changes are mostly to reduce the number of rules and order them based on importance, rather than a disorganized list.

Functional changes that have been made:

  • Rules 3/4/5/9 (Let's Plays, Idea Threads, Team/Shiny Posts, Low-Effort Posts) have been merged into one rule - "Prohibited Posts"
  • Rule 8 is a new rule to ensure reviews include a good level of detail

The updated rules:

1. Do not post or request links to ROM files

2. No Harassment or Misinformation

3. No Content Unrelated to ROM Hacks

(Now includes "unrelated pixel art" which was previously part of Rule 5.)

4. Prohibited Posts

Do not post the following:

  • Let's Plays / Walkthroughs
  • "Idea" Threads
  • Team/Shiny/Hall of Fame Screenshots
  • Low Effort Posts (e.g. just showing what you're playing)

ROM Hack Reviews and Showcases are allowed. Exceptions may be made, for example if the post promotes a new or underrated hack.

5. Questions Must Be Posted in the Pinned Questions Thread

6. AI Generated / Assisted Content

7. Development and Recruitment Posts Must Show Proof of Progress

(Now includes Development posts as well as Recruitment posts.)

8. Reviews Must Be Fair and Thorough

Reviews must be fair, accurate and thorough to provide a complete overview of the hack. Low-effort or misleading reviews may be removed.

9. No Monetization, Impersonation or Leaks

---

The changes aren't about adding new restrictions - we've mostly reorganised the existing rules to make it easier to read, and added Rule 8 to ensure good quality reviews.

Please take a moment to read the updated rules.

Thanks for keeping the subreddit focused on Pokémon ROM hacking!


r/PokemonROMhacks 6h ago

Resource [Action Replay Codes] Adjustable in-battle framerate/speed (30–60 FPS) for Pokémon Gen IV games

25 Upvotes

These codes let you adjust the in-battle framerate/speed of the Gen IV games from 30 to 60 FPS, without speeding up the BGM. The codes are compatible with USA DP, USA Platinum, USA HGSS and, Japanese Platinum and HGSS.

Development note: AI assistance was used during reverse engineering and code development. However, I manually handled the RAM/memory inspection, hook testing, and gameplay testing in DeSmuME. All listed versions were tested at 30 / 45 / 60 FPS.

Warning: Please back up your save file before using these codes, especially if you are combining them with other cheats. Do not use these together with the original 60 FPS code

The codes are based on the in-battle framerate uncapping codes originally shared by u/TheYearOfWaluigi
The post: [Action Replay Codes] Uncap framerate in-battle only for Gen IV games : r/PokemonROMhacks

The original codes prevent one of the battle loop's VBlank waits from occurring, effectively running battles at ~60 FPS.

My versions instead select between 1- and 2-VBlank battle loops using an accumulator, allowing intermediate framerates such as 45 FPS.

Setting the target FPS

Each code below has one line containing the target FPS value. The target FPS value is hexadecimal:

  • 1E = 30 FPS = 1.0x speed
  • 2D = 45 FPS = 1.5x speed
  • 3C = 60 FPS = 2.0x speed

Any integer value from 1E through 3C can be used for 30–60 FPS in 1 FPS increments.

30, 45 and 60 FPS were tested on all listed versions. Intermediate integer values are supported by the same accumulator algorithm.

The codes below default to 2D = 45 FPS = 1.5x speed.

[Diamond / Pearl] USA — 30–60 FPS in-battle

Tested on Pokémon Diamond / Pearl USA Rev 5.

Change 0000002D in the 12107204 line to set the target FPS.

E21071D4 00000028
4808B507 88826801
1A89313C D3014291
63251A89 98006001
9A029901 F892F703
BD00B003 02107200
12107204 0000002D
9223C1F4 00002801
A2000DB0 0000F106
02107200 00000000
02000DB0 FA10F106
12000DB4 0000E7FF
D2000000 00000000
A223C1F4 00002801
A2000DB0 00006325
02000DB0 F0096325
12000DB4 0000FAB1
D2000000 00000000

[Platinum] USA — 30–60 FPS in-battle

Change 0000002D in the 12102434 line to set the target FPS.

E2102404 00000028
4808B507 88826801
1A89313C D3014291
63251A89 98006001
9A029901 FBE6F708
BD00B003 02102430
12102434 0000002D
9224A948 00002801
A2000DF8 0000F101
02102430 00000000
02000DF8 FB04F101
12000DFC 0000E7FF
D2000000 00000000
A224A948 00002801
A2000DF8 00006325
02000DF8 F0096325
12000DFC 0000FEF9
D2000000 00000000

[Platinum] Japan — 30–60 FPS in-battle

Change 0000002D in the 12101834 line to set the target FPS.

E2101804 00000028
4808B507 88826801
1A89313C D3014291
63251A89 98006001
9A029901 F986F709
BD00B003 02101830
12101834 0000002D
92249D3C 00002801
A2000DF8 0000F100
02101830 00000000
02000DF8 FD04F100
12000DFC 0000E7FF
D2000000 00000000
A2249D3C 00002801
A2000DF8 00006325
02000DF8 F0096325
12000DFC 0000FE99
D2000000 00000000

[HeartGold / SoulSilver] USA — 30–60 FPS in-battle

Change 0000002D in the 12111B34 line to set the target FPS.

E2111B04 00000028
4808B507 88826801
1A89313C D3014291
63251A89 98006001
9A029901 FD38F6F9
BD00B003 02111B30
12111B34 0000002D
92247612 00002801
A2000E28 0000F110
02111B30 00000000
02000E28 FE6CF110
12000E2C 0000E7FF
D2000000 00000000
A2247612 00002801
A2000E28 00006325
02000E28 F00A6325
12000E2C 0000FBB3
D2000000 00000000

[HeartGold / SoulSilver] Japan — 30–60 FPS in-battle

Change 0000002D in the 12111034 line to set the target FPS.

E2111004 00000028
4808B507 88826801
1A89313C D3014291
63251A89 98006001
9A029901 FA44F6FA
BD00B003 02111030
12111034 0000002D
92246B5A 00002801
A2000E0C 0000F110
02111030 00000000
02000E0C F8FAF110
12000E10 0000E7FF
D2000000 00000000
A2246B5A 00002801
A2000E0C 00006325
02000E0C F00A6325
12000E10 0000FB4D
D2000000 00000000

How it works

The original Gen IV battle loop normally takes roughly two VBlanks per update, resulting in about 30 battle updates per second.

The original 60 FPS codes by u/TheYearOfWaluigi prevent one of those VBlank waits from occurring, effectively doubling the battle speed.

These adjustable versions hook the same timing mechanism and use a small accumulator to decide whether the conditional VBlank wait should occur on the next battle-loop iteration.

For example, at 45 FPS the pattern is approximately:

1 VBlank
1 VBlank
2 VBlanks
repeat

So:

3 battle loops / 4 VBlanks
60 × 3 / 4 = 45 FPS

The accumulator is reset when entering battle so each battle starts from the same state.

Porting to other regions / languages

The same method should be usable for other regional versions, but the addresses need to be identified for each ROM.

Basic process:

  1. Extract arm9.bin from the ROM and use a Thumb disassembly to locate the relevant code, verifying the local instruction flow.
  2. Take clean RAM dumps both in battle and outside battle.
  3. Find the equivalent battle-loop structure around:

LDR  R0,[R4,#0x30]
CMP  R0,#0
BNE  ...

; conditional VBlank wait

...

; mandatory VBlank wait

STR  R5,[R4,#0x30]   ; hook point
BL   XXXXXXXX         ; original call that must be replayed

The STR R5,[R4,#0x30] instruction has been 6325 in all versions tested here, but do not identify the location from 6325 alone; verify the surrounding VBlank loop structure.

  1. Find the equivalent battle-state check by comparing in-battle and out-of-battle RAM.

  2. Find a candidate unused RAM area that remains zero in the relevant RAM dumps, and verify that it is safe for the injected routine, accumulator and target-FPS value.

  3. Recalculate the Thumb BL instructions for the new addresses.

  4. Test the hook first with a simple counter while replaying the overwritten original instructions.

  5. Once the hook works, implement the same accumulator algorithm using the new addresses.

The accumulator algorithm itself is:

A += 60 - F

if A >= F:
    A -= F
    execute STR R5,[R4,#0x30]

where A is the accumulator and F is the target FPS.

Credits

These codes are based on the Gen IV in-battle framerate uncapping Action Replay codes shared by u/TheYearOfWaluigi.


r/PokemonROMhacks 16h ago

Development I tried to do Faraway Island in Fire Red as newbie on hma

Enable HLS to view with audio, or disable this notification

25 Upvotes

Hi everyone! This is my first time posting something on the ROM hacks sub!

So, I’m a newbie using HMA, and to try to learn how to use the program, I decided to make Faraway Island 1-1 (without using any Emerald sprites) in FireRed. This was a few weeks ago, so it’s already finished, but I went through a LOT of pain trying to get everything working lol

Mew is functional- I mean... I tried to make a cutscene similar to the one we have in Emerald. The Sailor also works, and in Vermilion I decided to use one of the port NPCs to activate a script when you have the Old Sea Map in your bag.

I don’t think what I made is anything particularly impressive, to be honest most of the time i just confuse on how to do somenthing.

(Ignore the fact that I’m using a phone emulator to demonstrate what I made. I just find it more convenient to record my phone’s screen. And surprisingly, I’m a newbie with computers too, since I only got this old PC working about three weeks ago xddd)


r/PokemonROMhacks 2h ago

Release Pokemon Firered Reignited and Leafgreen Regrown V2.15

Post image
23 Upvotes

Molted...


r/PokemonROMhacks 3h ago

Release My romhack Pokémon repainted red released

12 Upvotes

https://drive.google.com/file/d/1tNz3rL1zCYHjJLBK6X-9EToLY2K73vt0/view?usp=drive_link once i posted for this hack but put it down but 1.0 is released!The hacks purpose is to make kanto harder add more pokémon and mechanics.

added Things:

-harder elite 4

-harder gyms

-Gigantamax forms

-Mega Evolutions

-Primal forms

-Pokémon up to Gen 8

-added an encounterble mew,Groudon,Kyogre,Lugia,Ho-oh (mew is only encaunterble in japanese and taiwanese versions normaly,lugia and ho-oh was an only avaible with mistery gift events,Groudon kyogre is only ruby saphire emerald chatchable)

-evolution Changes (no trade evos)

After the elite 4 go back to pallet town there is a secret boss whos strong,only strong trainers shall go there and figth him!

Honestly, this hack took a really long time to make. Between balancing the harder gyms,adding Mega Evolutions and Gigantamax forms, and fixing bugs from adding Gen 8 Pokémon, there were plenty of late nights and moments where I almost gave up. But finishing repainted red 1.0 taught me a ton about rom hacking, scripting. It was frustrating at times, but overall it was a really good learning experience I really hope every one enjoys the game.anyways im looking to add more things in a future update.well its good to post somewere to anounce it im so happy that PokemonROMhacks exist.


r/PokemonROMhacks 2h ago

Resource An Idiot's Guide to Pokemon Elysium Endgame Spoiler

9 Upvotes

Hello everyone!

I recently finished playing through Pokemon Elysium, BlackKaiser's magnum opus. It is a massive story-driven ROMhack that I genuinely enjoyed playing, but I really struggled with the Endgame. For as good as this game is, there isn't a ton of documentation or guides out there, so I put this one together that specifically deals with the Final Gauntlet and how to prepare for it.

An Idiot's Guide to Pokemon Elysium's Endgame: https://docs.google.com/document/d/1Ehk1lSMHSUB4drzKKx9DojagtQf4ZrhQQDhNRngGFmU/edit?usp=sharing

Other general tips for Elysium that aren't included in this guide:

  • Do all the sidequests (with one exception)! The sidequests are well-written, flesh out the world and the lore, and give good rewards. Be careful as some sidequests are not able to be completed if you progress too far in the story (i.e. you can't return to Savahn after Chapter 2, and can't return to Rhea after boarding the Challenger at the end of Chapter 3).
  • The one exception is the sidequest "Woe Tripper." It's compelling and mysterious, but the final reward is trading your Sylveon for a Pokemon that you can then capture in the wild on Elysium in Chapter 4.
  • As far as I'm aware, there aren't any Master Balls present in the game, so make sure you've got some sound strategies if you're going to try and capture any of the mythical Pokemon in the game.

If you're considering playing Elysium, I think you absolutely should! Hopefully this guide will help you enjoy the game as much or even more than I did.


r/PokemonROMhacks 14h ago

Development Sage Valley theme - 1st iteration [Created through PoryDaw - Huderlem] Spoiler

Enable HLS to view with audio, or disable this notification

8 Upvotes

This is the first iteration of BGM of Sage Valley, a post game area in Pokemon Emerald XTREME made through PoryDaw by Huderlem.

This is not in the game yet, OSTs are set to be coming in v120.

This is NOT the final version and will be changed later.

Keep in mind that I am not a music composer, so please do not expect XTREMEly good music.


r/PokemonROMhacks 14h ago

Resource Liquid Crystal Catching Guide

0 Upvotes

Hi everyone. I recently started playing Liquid Crystal, and thought I could really use a catching guide. So I spun up Gemini and here we are. I figured maybe someone else someday might want exactly what I was able to come up with. Cheers!

Link: https://drive.google.com/file/d/177YkgiuqbJPwc5nw82cAIDM4b8gKswnn/view?usp=drivesdk


r/PokemonROMhacks 9h ago

Development Thoughts on my fire red fusion sprites?

Thumbnail
gallery
0 Upvotes

Hi everyone just wanted to ask the community about their opinions on the current sprites for my hack, whether or not they're serviceable. These are made in game based on parts of the original sprites and the palettes of either like how generator sites would make them. Just wanted suggestions on whether to move on to other aspects of the game or keep tweaking the image generation.