Leaderboard
-
in Posts
- All areas
- Blog Entries
- Blog Comments
- Images
- Image Comments
- Image Reviews
- Albums
- Album Comments
- Album Reviews
- Files
- File Comments
- File Reviews
- Events
- Event Comments
- Event Reviews
- Topics
- Posts
- Pokédex Entries
- Articles
- Article Comments
- Technical Documents
- Technical Document Comments
- Pages
- Tutorials
- Tutorial Comments
- Status Updates
- Status Replies
-
Month
-
All time
November 30 2016 - August 8 2026
-
Year
August 8 2025 - August 8 2026
-
Month
July 8 2026 - August 8 2026
-
Week
August 1 2026 - August 8 2026
-
Today
August 8 2026
- Custom Date
-
All time
Popular Content
Showing content with the highest reputation since 07/08/26 in Posts
-
Behind the scenes we are starting to prepare for a major upgrade of the forum software. More details will be shared when they're available, but one change of note relates to how you sign into your account. Currently, everyone signs in with their username and password. However, the next version requires everyone to sign in with their email and password. To limit the number of changes happening at once, we will switch to email + password sign in on September 1st. If you do not remember your email address, please make note of it in your Account Settings page. If you have any questions, please feel free to reply to this post, send me a DM, or use the Contact Us form at the bottom of the page. I would like to thank those who help us out with server costs on Patreon. However, for several months this income has not met our server costs, so unfortunately we have to bring back ads to help pay for hosting. The specifics will be fine tuned over the next few days/weeks, but anyone who's an active patron will be exempt no matter what. If you are a patron and see ads while signed in, please send me a DM either on this site, on Patreon, or with the Contact Us form at the bottom of the page. View full article2 points
-
I found the cause of the issue. It was not Explorers of Fortune after all. It was the single Action Replay code that I use, which allows guaranteed recruitment. Even though the code only activates after a button combination and can be turned off with another, simply having it enabled in the emulator was enough to interfere with ALL dungeon restrictions (recruitment, EXP, and Level 1 behavior), most likely because it just hooks into the code of the game. I can't believe it didn't occur to me, especially when I was recruiting Pokémon in Temporal Tower (even though it was "off"). Disabling the cheat completely restored the intended behavior. I'm sincerely sorry for the confusion in those last two pages, given this was the ridiculous reason of my issues with the hack. And thank you and other people who might have been testing as well. The somewhat good news I suppose is that if someone happens to use the same code someday and runs into the same issues, they might run into my messages and get it resolved.2 points
-
Hi everyone, I'm working on a big 2.0 update with a complete app redesign, this is why there is currently no updates. It should come quite soon. @AnHeroGold @zavage00 @axeil thanks for your suggestions/bug report, I'll check that after 2.0 release. @Enan I'm still working on core features, I prefer to finish them before thinking of a plugin system. That said I agree that plugins should be allowed, also because I won't work on this app forever.2 points
-
You need to put the folders inside of the mod folders on your 3ds. It tells you how in the ROM hacks section of this website. https://wiki.hacks.guide/wiki/3DS:Game_modification You will need to go into the title ID of the game your hacking. I don't know what they are for xy, but basically just search x/y title ID.1 point
-
Hi, I was present when you were banned, and then subsequently started to argue with the staff on other platforms, taking your complaints to Twitter and completely missing the point, even going as far to pester completely unrelated content creators like Austin John Plays who bothered to legally dump their ROM. (There were more messages that seem to be missing, presumably you deleted them after the fact, and some on your reddit account if memory serves, although I believe you deleted that entire after being banned from another pokemon subreddit.) Rule 3 states: "R3. Piracy will not be tolerated. Do not share warez (pirated media) or discuss your devious plans for piracy. If you are requesting help with pirated software, you will be escorted out of the server." You explicitly started asking for a way "to get legal ROM of SV without a hacked switch", and you continued to argue that it wasn't piracy to download a pirated copy if you owned the game. The FAQ, various guides, pinned messages in the homebrew help channel, etc. and our server staff regularly explained that you are legally allowed to make backups of your own copies of the game, which requires a hacked switch. Someone was banned literally 5 messages earlier for admitting they obtained a 3DS rom without owning a 3DS, let alone a hacked one, and you still posted "how do I get a legal rom but I don't have a hacked switch". Even after your ban, you stated on your Twitter thread that you attempted to ban evade with an alt account, which is a bannable offence itself. Project Pokemon and PKHeX Dev are sister servers, even if you wanted to appeal on the basis that you were ignorant of the rules in asking that question, owned the game, had successfully hacked your Switch and obtained the ROM, your multi-platform tantrum going after our staff/complaining to reddit that followed was unacceptable. Your ban appeal is denied and will be staying that way. Kindly go elsewhere. See the attached images for some evidence of said tantrum, you can delete messages and accounts, but screenshots are forever1 point
-
1 point
-
New major update: PKVault 2.0 is available ! Full redesign, better UI/UX, made for SteamDeck as for Desktop, Full support of gamepad & keyboard navigation. Add dark mode, & sprite resizing. A maximum of 2 storages can be opened side-by-side now. This constraint comes with a better ability to switch saves & boxes, and a global better usage. --- --- I put a lot of work in this update, I hope you'll like it. Please give your feedback, bug report or any issue ! Now that this major part is complete, here are most of next small steps for the short-term: Update PKHeX to 26.07.07 Fix small issues reported here & on GitHub Fix most of duplicate/ID-conflicts cases (common cases in gen5) Allow edit some settings even with actions to save Fill Pokédex details content (moves, evolves, locations, etc) Add some flags (N, Mega) Misc: Deploy PKVault in other stores (like Flathub) if possible Check if can be runnable on a modded Switch (small expectation) Check if can be runnable on Android Next relevant feature will probably be storage filters/sort & presets. @hexanomalous I don't have a discord, but there is the one of ProjectPokemon: https://discord.gg/66PzPgD1 point
-
1 point
-
1 point
-
Reports with cheats active may be unreliable since cheats may modify things you do not know about. You should only be reporting errors from an unmodified game. There is no record of an alpha Wurmple being obtainable at the level you provided.1 point
-
1 point
-
Level 6 is way too low for an alpha Wurmple. That's in the non-alpha range. Do you have some sort of cheat active? For reference: https://www.serebii.net/pokearth/hisui/horseshoeplains.shtml https://bulbapedia.bulbagarden.net/wiki/Horseshoe_Plains1 point
-
Good evening, I've been spending some time romhacking soul silver for fun. I used some unused item slots to add new items to the game, but needed a way to make them accessible to the player so I've been reverse-engineering the game's shops and I created a list of their offsets. Also in this post will include a short tutorial on editing the shops in arm9.bin Find the offset list here (google sheet) Before I begin, I want to credit TheShadyRelapse. I used their method to find the offsets in arm9.bin, and my discoveries are built on their knowledge. Generally, you should read their tutorial before reading mine, as my tutorial won't be very in-depth and the methodology is essentially the same. The reason I created a new thread instead of responding to their old post is: I was concerned it might be considered necroposting, I'm offering a little bit more than just PokéMart edits, and TheShadyRelapse's tutorial explicitly states you can't use their method to edit dynamic shop inventories. Because I am explicitly offering dynamic shops, I don't want people to read that and leave before reaching my post. * * * * * Requirements: A method to extract/import and decompress/compress arm9.bin. I recommend NitroPacker. Other people seem to report success using CrystalTile2 and blz.exe, but I personally experience rom breakage with these.* A Hex Editor of any sort. I prefer HxD. A HGSS ROM, of course. DS Pokémon ROM Editor Reloaded (DSPRE). Not a hard requirement, but very helpful and strongly recommended. Required for some tasks. PtHGSS's index of items. Not a downloadable app nor hard requirement, just a list you might need for item IDs. * * * * * *UPDATE: Apparently DSPRE automatically unpacks and decompresses some files like the arm9 binary (arm9.bin) that we're editing. I had no idea when I made this tutorial, and I haven't tried using it, but I encourage people to try it. You can find the folder of unpacked files in the same location as your ROM after opening it with DSPRE. This means you should be able to skip step 1 and 3 as DSPRE seems to automatically recompress arm9.bin as well. 1. Unpack your ROM (instructions for NitroPacker on Windows) If you know how to unpack your ROM, or extract/import arm9.bin and uncompress/compress it using other means, feel free to skip this step if you prefer that method. Nitropacker's instructions are also on their github page; I'm basically just ripping from them. 2. Open arm9.bin with a hex editor of your choice, and start editing! I have provided a table of offsets for each of the shops that are hard-coded in the arm9 binary. Simply find on the table what shop you want to edit, choose to search by offset or by the shop's inventory code (dubbed 'full associated code' on the table) by copying it from the table and pasting it into the search function of your hex editor. In HxD: CTRL+G to search by offset, CTRL+F to search code (don't forget to select the "Hex-values" tab). Most shops or clerks that have a static inventory: Items are listed simply and in order by their 16-bit (little endian) item IDs. The hex value FFFF terminates the shop list. Once you've arrived at the shop code, use either the bulbapedia index or the hex values provided in the table (already in little endian form) to locate the shop item you want to replace. When you replace items, make sure it's in little endian form! I won't go into much detail over editing static inventory shops, you can read ShadyRelapse's post. Because the list won't terminate until it reaches FFFF, you can use this to do things like combine and expand shop inventories. I included the location of mart script files and the variable that the common script uses to call which inventory to load, and I'll explain more on that later. Dynamic PokéMart shop: Items have an added 16-bit hex value in their code that corresponds to the amount of badges you've earned. They are are arranged as: [Item hex ID][Story Variable]. Where [Item hex ID] is its 16-bit hex ID in a little endian form, which can be found in the same bulbapedia index from earlier. [Story Variable] is a 16-bit variable that changes based on the amount of badges you have: 0001 = 0 badges 0002 = 1 badge 0003 = 3 badges 0004 = 5 badges 0005 = 7 badges 0006 = 8 badges So a poke ball's code would be (always in little endian of course) 04000100, potion = 11000100, full restore = 17000600, etc.. The offset and full associated code with the pokemart is already provided in the google sheet. Change the first 4 hexes to change the item in the inventory, and the last 4 hexes to change when in the story it becomes available. Example: If you wanted to do something goofy and replace Great Balls with Master Balls and make them available ASAP, you would go to the correct offset and replace the code 03000300 ([Great Ball][3 Badges]) with 01000100 ([Master Ball][0 Badges]). The dynamic shop uniquely terminates at 0000, and not FFFF. This means the inventory count is defined somewhere else. Unfortunately this means I don't know how to expand it. Pokéathlon shop: Items are also arranged as two 16-bit values: [Item hex ID][Cost in Pokéathlon Points (AP)]. [Cost in AP] is a little endian hex value corresponding to the item's AP cost in that shop (obviously). So the code for a red apricorn would be E501C800 (01e5 = red apricorn, 00c8 = 200), moomoo milk is 21006400 (0021 = moomoo milk, 0064 = 100), and something like a fire stone would be 5200C409 (0052 = fire stone, 09c4 = 2500). Replacing this code is just like any other, except you also have control of the AP price. The Pokéathlon shop also has 14 different inventories, two for each day of the week. While most shop inventory calls are controlled by a common script, the call for the pokeathlon shop inventory seems to be an engine-level command, so I'm not sure how to change which inventory it loads based on the day of the week. Still, I have the offsets for each day listed on the google sheet. 3. Repack your ROM (instructions for NitroPacker on Windows) Again, if you have your own preferred method for compressing and importing arm9.bin, feel free to use that. * * * * * Script-based Shops (DSPRE required): A number of shops are actually script-based instead of stored on the arm9 binary. This makes modifying them much easier and less constrained. You can open the "Script-based Shops" tab in the google sheets table to find the list of script-based shops and their associated script files. Open your rom with DSPRE and select the "Script Editor" tab to access and edit the script files safely. People already familiar with IDEs and code editors probably won't need help editing scripts. For an example I'm going to add the Return TM to the Game Corner shop. To edit the Game Corner shops, load script file 910. The Pokemon Shop starts at script 5 and the Item/TM Shop starts at script 4. To add an item to the TM shop, navigate to script 4. You can mouse-over message lines of code to see what they say and their text archive location. Sometimes menu items are drawn from different text archives then their map headers would suggest. I've listed locations for known text strings in the google sheets table. In this case both messages and menu items are drawn from archive 603. This is the code for the Held Item/TM shop: ShowSpecialCurrency [par1] [par2] [par3] shows either BP or Coins. I haven't done any testing to figure out what exactly the first 2 parameters specify, but I know for par3, 1 displays BP and 2 displays current Coins. MultiTouchLocalText [par1] [par2] [par3] [par4] [par5] seems to enable an interactable text list that assigns its input into a variable set in [par5] (Var 0x4000 in this case). I haven't tested what the first 4 parameters do, probably something to do with either box alignment or colour. CreateMultiTouchBox [par1] [par2] [par3] creates the actual text box that can be selected. [par1] = box text. [par2] = selection description (set to 255 in this case which is out of bounds for the text archive, which I believe the game interprets to exclude a description). [par3] = value between 0-7 assigned to that text box which is stored in variable [par5] from MultiTouchLocalText. So "CreateMultiTouchBox 12 255 0", which is the first option in the game shop, has par1 set to message 12 which is "TECHNICAL MACHINE", par2 set to 255 which is nothing, and par3 set to 0, so when TECHNICAL MACHINE is selected, Var 0x4000 is set to 0. SetVarFromVariable [par1] [par2] copies a variable from another variable. Comparing variable values is pretty much never done directly from the MultiTouchLocalText par5 variable for some reason. I don't know why the developers decided to code like this. Maybe the variable from MultiTouchLocalText isn't stored for long, or it prevents the variable from being unintentionally overwritten by similar script functions. I haven't done the testing to confirm this. In this case it just assigns Var 0x8008 the same value as was assigned to Var 0x4000 (0). CompareVarValue [par1] [par2] loads a variable and a value for the context of the next command JumpIf [operator] [function] jumps to a specified function if par1 from CompareVarValue is equal to, lesser to, or greater than (depending on the operator) par2. In this case it jumps to function 8 if Var 0x8008 = 0 (which is assigned after a player selects a text box from CreateMultiTouchBox), so having selected the first option (TECHNICAL MACHINE), the script jumps to function 8 which handles the TMs menu. Jump [function] as you can probably tell jumps to a function without a condition. Function #8, aka the TM shop's code looks like this: To add a TM to this shop, simply add an extra line "CreateMultiTouchBox XX YYY Z" between the last two CreateMultiTouchBox's, and change the value of CreateMultiTouchBox 11 255 6 to CreateMultiTouchBox 11 255 7. For "CreateMultiTouchBox XX YYY Z", XX and YYY correspond to string indices in text archive 603. Your TM won't automatically be in text archive 603, so you'll have to navigate to the Text Editor tab and open Text Archive 603. Messages 29 and 30 are free to use, so this example will use 29 (The DSPRE text editor allows you to safely add new strings of text to archives, so if you have no free spaces, add strings with the "Append Line" button). I'm going to make it cost 1000 coins, so I'll type "RETURN\n1,000 Coins" into index 29 and save the text archive. Our extra line from earlier will actually look like "CreateMultiTouchBox 29 255 6". Now we need to create a command that jumps to an all-new function if Return is selected. Add "CompareVarValue 0x8008 6" and "JumpIf EQUAL Function#72". Function #8 should now look like: Now, we've added a jump to a function that doesn't exist yet, so we still have to create Function #72. We can just copy any of the other TM functions 20-25 and paste it at the very end of the function editor. I'm going to copy Function #25 (which handles checking your inventory space and choosing to buy the Thunderbolt TM): Edit "Function 25:" to read "Function 72:". The item ID for TM27 (Return) is 354. We don't need to translate it into a hex value, just replace "SetVar 0x8004 351" with "SetVar 0x8004 354" (hex values are prefixed with 0x). "JumpIf EQUAL Function#44" must be changed to "JumpIf EQUAL Function#73", as this is the function that actually handles checking your coins and adding the item to our inventory. Even though I think this part of the code is redundant (because both yes/no inputs jump to another function so this code never runs), it's probably wise to ensure the cost here for Return is correct; "CompareVarValue 0x8006 0x2710" and "TakeCoins 0x2710" should be changed to "CompareVarValue 0x8006 0x03E8" and "TakeCoins 0x03E8". If you know how to code you can absolutely fix this function to be less redundant if you want! I didn't bother, so for me Function 72 looks like: Next we must copy Function 44: As mentioned before, this function checks if you have enough coins to buy the item and then adds it to your inventory. Change "CompareVarValue 0x8006 0x2710" (0x2710 = 10000) to "CompareVarValue 0x8006 0x03E8" (0x03E8 = 1000). Function 73 should look like: We're not actually done yet! There's one more subtle step we need to consider that most script shops do when they have multiple pages; we need to account for Functions #37 & #39, which handle when the player doesn't have enough coins or not enough space for the item (i.e. they already have 999 or 99 of that item), respectively. They contain a message ("not enough coins/space") and then check Variable 0x8004 (the index # of the item) and are used commonly by other functions to correctly navigate back to the item page you were browsing before. They look like: As you can see these functions check if Var 0x8004 is 417 (TM90 (Substitute)), so if you selected substitute in the browsing window, the script knows to send you back to that same TM browsing window (Function #8). F#39 jumps to F#52 before checking but that's an unimportant detail. Both functions funnel into F#51, which chain into more functions that just check Var 0x8004 before sending you to an appropriate window: If it's not already apparent, the script stops bothering to check variables after the last TM on the list and just sends you to the item page (Function#9). This means if you attempted to buy the new Return TM but didn't have the coins or space, the script would mistakenly send you back to the items page instead of the TMs page. This is a simple fix. You can create a new function and redirect F#66 to it, or you can edit F#70 to check Var 0x8004. I find the former easier. So what I would do is copy F#66, append it to the end of the script and relabel it as "Function 74:" then have it check if Var 0x8004 = 354 (TM (Return)) and jump to an appropriate function: Don't forget to redirect F#66 to F#74!! Now don't forget to "Save Current File" in the editor! DSPRE will automatically re-arrange and re-name any functions as it deems fit to, so the functions we added won't be labelled the same anymore when we reload the script file or ROM. This is why we didn't save mid-progress, having the script re-arranged mid-editing is a hassle. Next you can save your ROM and voila! You should see changes reflected in the Game Corner TM shop! Keep in mind that not every script-based shop handles its window navigation the exact same way. Some shops, instead of checking every possibility Var 0x8004 could be, they might set a variable before the item/tm menu loads (usually Var 0x8007) and check that variable instead to redirect you back to the correct menu. Battle Frontier shops do this. If you want to edit another script shop, you're just going to have to read the script yourself and figure it out! I can't make examples for everything! Important notes to consider when script editing shops: You can only create a maximum of 8 selection boxes with CreateMultiTouchBox at a time. If you have more than 8 lines of CreateMultiTouchBox at once, the game doesn't know how to display it and will hardlock. If you want to add more than just 1 TM to the Game Corner shop like in my example, you'll have to get a little creative and add a second page of options. I accomplish this by copying Function 8 and pasting it as a new function, then adding a "Next Page" button in Function 8 that jumps to the newly pasted function. The new function will need appropriate edits. Once you figure out how to do this, your script shop editing options are essentially limitless. Creating a MultiTouchLocalText with only 4 or less options will automatically create wide selection boxes, so you must format your text appropriately. The new line text function "\n" doesn't work on these wide boxes, so you have to use another command to create a space between an item/pokemon name and its cost. Just copy what they do with the Pokemon Shop text and append "{CURSOR_X, 0, ###}" to your text followed by its cost. Some examples from the game: * * * * * Tips, Tricks, Suggestions, Etc.: In case you haven't noticed, Goldenrod and Celadon City Dept. Stores possess their own space in the arm9 code, but most of their stores have the exact same inventory. The engine command for the static inventory shop overlay is called by a Common Script 2052, and I don't know where common scripts are stored right now so I can't edit them. However, Common Script 2052 retrieves a variable (Var 0x8004) which decides what inventory to load, and it is set just before the common script is called. This means we can change what shops load what inventories by changing SetVar 0x8004 in the script. You can use this to set Celadon to load Goldenrod inventories, freeing space on arm9.bin for custom marts! Each shop's associated script as well as what variable it's associated with is recorded on the google sheet. For example, Celadon Dept. Store's medicine shop script is located in script file 790, it is the first script in the file: Change "SetVar 0x8004 18" to "SetVar 0x8004 3" to end up with: Save your changes and you'll observe no tangible changes in-game, but you've freed offset 000FBC02 in the arm9 binary, which can now be used for a custom shop with up to 11 items! You'll notice the 2F Item shop, the vitamin shops, and the battle item shops also take up unnecessary space and can also be repurposed the same way. Because we know which offset each variable points Common Script 2052 to in arm9.bin, we can effectively remap the entire game's mart system. Shop inventories can also by expanded if you remap them wisely. Shop inventories in arm9.bin terminate at FFFF. If you overwrite the termination code FFFF, the shop inventory will 'bleed' into the next mart inventory code, effectively 'combining' the inventories (the second shop being bled into should be unaffected, but the first shop would have its own inventory plus the second shop's inventory now). Or rather, with careful remapping, you could use the space freed from the redundant Celadon Dept. Store medicine shop code to expand the inventory in the shop preceding its code (which by default is the Goldenrod medicine shop, so you would be expanding both medicine shop inventories). * * * * * I think that is everything I wanted to share. Thank you for reading, I hope this helps other people with their romhacking. Please inform me of any errors or typos I've made.1 point
-
There's a new version with fixes to these problems. As well as improved ability slot selection. You can download it here.1 point
-
Hmm that sounds like a bug to fix. And as for the gender, you're totally right, and the first to notice that it's totally missing. I'll upload a better version once a more substantial amount of these things or issues have been noticed/gathered.1 point
-
Hi all! I wanted to share a working follow-up to this thread: a Flipper Zero app that sends Mystery Gift to real Gen II cartridges over IR using a custom GPIO board. It acts as the master/sender: link up from the Mystery Gift screen (A-press or idle detection both work) Pick any of the 37 giftable items on the Flipper (Berry → Rare Candy → Mails), set trainer name, set or randomize the trainer ID per send (sidesteps the one-gift-per-partner-per-day check while testing) Region is auto-detected: since the master receives the cart's region code before ever sending one, the app just echoes it back. Only tested on french cartridge atm Auto-retries failed exchanges (they happen, as the OP noted), and writes a microsecond-resolution trace of every exchange to the SD card so that it's easier to debug. The Flipper's built-in IR is useless here (its receiver is a 38 kHz demodulator, blind to the GBC's unmodulated light), so this uses the receiver schematic posted in this thread (BPW34 → MCP6002 TIA 51k‖120pF → comparator → BC337) plus an IR LED, on two GPIO pins with 5 V from the Flipper's OTG rail. Built mine on protoboard. Big thanks to OP for the protocol RE, the schematic, and the reference implementation — this thread did the hard part. Happy to share the source / put it on GitHub if there's interest, and curious whether anyone can test against Gold/Silver or other regions but that means having to build the GPIO board yourslef!1 point
-
Sword and Shield act as the gateway and thus don't really require a HOME tracker for entering. It's already known, I can't be bothered to dig up a thread post on the forums where it is mentioned, so I'll just rewrite whatever advice it probably contains: Even though you may be able to bypass the initial checks that home does and get assigned a tracker by the server, it does not prevent them from banning the method in the future or banning your account/mons. It's a traceable behavior, as you didn't upload them from Bank, you uploaded them from SWSH, as they'd lack their PK7 data logs on the server. Is it currently un-actioned? Yes. Is it detectable? Yes. Is it safe? No. Note: this bypass only "works" for SWSH, not any other games. To answer your question as to why nobody talks about it: because it's not safe. If HOME can detect it (so too can power users within the Pokemon hacking community), then it should be obvious why it's inadvisable. Champions has not performed any ban waves. Can they? Yep. All data in champions is stored server side, and all foreign data not from recruits or gifts must have passed through HOME, so they have the paper trail too. Yours would lack the full paper trail. An extremely simple ban rule to program if they choose to1 point
-
PKHeX is open source. You can download the repository at any arbitrary commit and rebuild it yourself. If it's an issue of getting an old plug-in to work, it's better to just get the plug-in updated.1 point
-
I believe I found a legality checking bug related to Furfrou trims in Ultra Sun/Ultra Moon. A legitimately bred Furfrou obtained from an Egg using the Masuda Method is considered legal while in its Natural Form. However, changing the form to any trimmed form (Pharaoh, Star, Diamond, Kabuki, etc.) causes the Legality Checker to incorrectly invalidate the Relearn Moves. The haircut should only affect the cosmetic appearance and should not change Egg origin or Relearn Moves. Steps to reproduce Open the attached legitimate Gen 7 Furfrou (.pk7). Verify legality while the Pokémon is in Natural Form. Result: Legal. Change the form to Pharaoh Trim (or any other trim). Run the Legality Checker. Expected behavior The Pokémon should remain Legal regardless of its trim. Changing Furfrou's haircut is purely cosmetic in Gen 7 and should not affect Relearn Moves or Egg legality. Actual behavior The Legality Checker reports: Invalid Relearn Move 1: Invalid Move. Expected: Tackle Invalid Relearn Move 2: Invalid Move. Expected: Growl Invalid Relearn Move 3: Invalid Move. Expected: (None) Invalid Relearn Move 4: Invalid Move. Expected: (None) The Pokémon only becomes legal again after changing the form back to Natural. Additional information Game: Pokémon Ultra Sun Origin: Legitimately bred Egg (Masuda Method) No save editing before hatching The Pokémon hatched naturally in-game. The issue occurs with every trim, not only Pharaoh. Natural Form is always legal. Latest PKHeX build (updated July 7, 2026). Attached file Legitimate .pk7 reproducing the issue. 0676 ★ - Furfrou - 93BE78B1F0C5.pk71 point
-
I did check Sky Temple to see if it was possible without editing after when my friend explained it to me. I do know I COULD edit it to do this but I wanted it to be an authentic run. Thank you nonetheless for taking the time to tell me I think I will play it without.1 point
-
Mainly the sprite from the intro cutscene, trainer portraits, and the champion sprites (I think????)1 point
-
ZIC unlocks early but you cannot enter it if you haven't beaten Darkrai. World Abyss completion ensures you unlock it if you didn't for some reason. Not sure what you are talking about when it comes to field effects working on Difficult though. They never ever worked in this difficulty and the code designed to prevent them from working on Vanilla is located right before the one preventing them to work on Difficult. What are you calling "field effects"? Just making sure because Mysteriosity is its own thing. As for new mons, it will sure take time. I've got so many other projects that are less frustration inducing that I cannot get back to this project unless I decide to focus on it. Context around it makes it extra hard to happen but it will. I already have Gens 5 to 9 abilities coded except for 2 after all. Press ABXY at the same time and the cutscene shall procede properly afterwards iirc.1 point
-
PKHeX/PKHeX.Core/Resources/text/script/gen3/flags_frlg_en.txt at master · kwsch/PKHeX pokefirered/include/constants/opponents.h at 70b76a15df8c6a6dd03d7a09e8f9eddd2e4dc29d · pret/pokefirered (opponent flags start at 0x500, so 1718 - 0x500 = 438) pokefirered/data/scripts/hall_of_fame.inc at 70b76a15df8c6a6dd03d7a09e8f9eddd2e4dc29d · pret/pokefirered It's automatically cleared when you enter the hall of fame, so you can consider it a "temporary" flag.1 point
-
Main feature Awwww… too bad that Deoxys' stats are not recalculated after each fight like in Gen III, otherwise I would have used that. First and foremost, you have to know that the game double-checks for the 100 EV limit: the first check is triggered by the corresponding vitamin, the second check is run no matter the used vitamin. Now we choose a value to replace 64 (100) with, might as well use FC (252) for convenience's sake. Here's how you proceed to lift the limit: Decompress arm9.bin Case-by-case checks Go to offset 0×90034* and change the value 64 into FC, this is the check for the HP Up Go to offset 0×900A0* and change the value 64 into FC, this is the check for the Protein Go to offset 0×9010C* and change the value 64 into FC, this is the check for the Iron Go to offset 0×9017A* and change the value 64 into FC, this is the check for the Carbos Go to offset 0×901E8* and change the value 64 into FC, this is the check for the Calcium Go to offset 0×90254* and change the value 64 into FC, this is the check for the Zinc * Regions' differences Language Offset 1 Offset 2 Offset 3 Offset 4 Offset 5 Offset 6 Japanese 0×8F910 0×8F97C 0×8F9E8 0×8FA56 0×8FAC4 0×8FB30 Spanish HG 0×9002C 0×90098 0×90104 0×90172 0×901E0 0×9024C Korean HG 0×90728 0×90794 0×90800 0×9086E 0×908DC 0×90948 Korean SS 0×90720 0×9078C 0×907F8 0×90866 0×908D4 0×90940 Others 0×90034 0×900A0 0×9010C 0×9017A 0×901E8 0×90254 [*]Global check Go to offset 0×90A96* and change the value 64 into FC Do the same at offset 0×90ABC* and offset 0×90AC0* * Regions' differences Language Offset 1 Offset 2 Offset 3 Japanese 0×90372 0×90398 0×9039C Spanish HG 0×90A8E 0×90AB4 0×90AB8 Korean HG 0×9118A 0×911B0 0×911B4 Korean SS 0×91182 0×911A8 0×911AC Others 0×90A96 0×90ABC 0×90AC0 Bonus feature 1: Change how many EV are given by each vitamin Open the folder a/0/1/7. The amount of EV added for one given stat W by its respective vitamin X is located at byte Y on file Z. Stat Vitamin Byte File (W) (X) (Y) (Z) HP HP Up 21 45 Attack Protein 22 46 Defense Iron 23 47 Speed Carbos 24 48 Sp.Atk. Calcium 25 49 Sp.Def. Zinc 26 52 Note: First byte is assumed to be byte 0, not byte 1. That byte always has a value of 10 (0A), it's a signed value who can subtract as much as 128 EV (80) or add as much as 127 EV (7F). We're going to change that value to one who can divide 252 (FC) while staying very close to 10 (0A). Why not 12 (0C)? But what if you want to put EV not divisible by 12 in one particular stat? Well, that's what EV-reducing Berries are for Since the Vitamins are set up to give 12 EV now, it means the modulo applied here is a modulo 12. But at Lv.100 1 point in a stat equals 4 EV, thus we have to apply a modulo 3 instead (12/4). Modulo 3 is 0 => remainder of Wanted_EV/12 is 0 => no correction needed. Modulo 3 is 1 => remainder of Wanted_EV/12 is 4 => give 2 Vitamins (+24) and then 2 EV-reducing Berries (-20). Modulo 3 is 2 => remainder of Wanted_EV/12 is 8 => give 4 Vitamins (+48) and then 4 EV-reducing Berries (-40). Don't forget this is meant as an emergency feature to give the player a mean to EV-train a Lv.100 Pokémon, hence why you are allowed to complicate the feature. Bonus feature 2: Lower the EV limit from 255 to 252 Yep, we're borrowing that feature from Gen VI. Decompress overlay9_0012.bin. Go to offset 0×EC9C* and change the value FF into FC. Do the same at offset 0×ECA0*. * Regions' differences Language Offset 1 Offset 2 Japanese 0×ECA4 0×ECA8 Korean 0×ECA0 0×ECA4 Others 0×EC9C 0×ECA0 Decompress arm9.bin. Go to offset 0×4B948* and change the value FF into FC. Do the same at offset 0×4B94C*. * Regions' differences Language Offset 1 Offset 2 Japanese 0×4B3DC 0×4B3E0 Spanish HG 0×4B940 0×4B944 Korean HG 0×4BA44 0×4BA48 Korean SS 0×4BA3C 0×4BA40 Others 0×4B948 0×4B94C1 point
-
So what you're saying is, effectively you want to use PKHeX on your "stock nand"? This should go without saying, but PKHeX is a save editor, not a nand editor. So it's up to you whether you want to have an edited save on your "stock nand". No one works for GF here, so no one knows for sure. I'll recommend you to have a "healthy amount of items", not x999 of some mons. No reason to have 31 IVs on all stats, when you can just hyper train. No reason for them to ban for EV split, since that is what people normally do in-game, for online competitions. Thus far, it appears they only do Switch bans for not save editing, but rather for having CFW. However, it is important to note that save editing (if you have anything on it that is ridiculous, for example) is one way to prove you have CFW. It is also against our rules to use significantly hacked mons online, so don't ask about it okay :31 point
-
The contents of your attached file are of something completely unrelated to what is expected in a save file for Pokemon Platinum. In other words, it's not a valid dump.0 points
-
0 points