Metropolis

Member
  • Content count

    199
  • Joined

  • Last visited

Community Reputation

21 Excellent

About Metropolis

  • Rank
    Developer
  • Birthday 01/28/92
  1. I'm working on a new version with the same UI as the legacy version that was more popular, which will work on any Java without having to compile against different versions of Java and OS.
  2. Interesting I'll take a look, yeh.
  3. I've updated this online tool to support Pokemon Sun and Moon PK7 files. Feedback appreciated as always, consider this untested!
  4. No more or less than distributing the original distro ROM? Since the details concerning the algorithm will be documented and confirmed, along with bulbapedia etc updated then custom distro ROMs can be easily weeded out by comparison. If you would rather I refrain from releasing details that is OK, whatever is in the best interests of the community without heavily devaluing a collectable.
  5. I own a 10ANNIV distro ROM, which I would prefer to keep out of the public domain for reasons of devaluing it. If anyone can point me in the direction of a decompiler, I would be happy to share the sections of the source code that generate the Pokemon distributed, including its trash bytes. Alternatively, removing the user interface code from the ROM then sharing that modified ROM would be acceptable. I have the development knowledge to make sense of decompiler tools and am interested in helping to prevent and identify fake distributions. Determining the generation algorithm and making it public is in the interests of everyone here - the physical device retains value for the novelty of connecting to physical cartridges without external tools, whilst everyone has access to the 10ANNIV pokemon (and others sharing the algorithm) through synthetic means. Please could anyone share the details of what they would do if they had access to the cart and I'll follow those steps, release the findings, which will be verifiable by the matching up with known legit 10ANNIV Pokemon. Please respect my decision not to leak the ROM, it's because it is a highly collectable item, I'm not enjoying having to be restrictive about it.
  6. VC RBY - Virtual Console Mew (UK)

    Excellent work and glad you found the editor helpful. Thanks for sharing your findings with the community
  7. I think this is just whether the four bytes are represented as a decimal or hexadecimal number, the PID isn't changed just by opening and saving a Pokemon. Whne converting Gen 2 -> 3, the PID is computed using the attack IV (for gender), unown letter and shiny status of the gen 2 Pokemon, incrementing the LSB to hit a neutral nature whilst respecting the gender, unown letter, hidden power etc. In 99% of cases this is accurate, and the tool itself is just for fun anyhow, obviously all gen 2 -> 3 conversions are hacks.
  8. If you're using a 32-bit OS, you'll need the 32-bit download instead. It should work once Java is updated on your computer. Other than that I don't know, like I've said before I regret using the SWT library in Java as it's tricky to get it working on everyone's machine without matching the right library.
  9. Only data files for an individual Pokemon are supported, not entire saves (yet).
  10. The source code is available for anyone to adapt as required. I recommend using PKHex instead.
  11. I haven't disassembled code before, but have the skills to learn. It's something I might look into now and again, there's some tutorials online on how to get started that look good. You're right yes, some people may care about a purely untouched Pokemon. Personally I don't, I'm only interested in data preserved by trading (IVs, PID etc) but that's just my bias, I'm all for understanding more about how the entire data structure is generated. My instinct is that the trash bytes are probably just whatever was already there and may even be constructible to any values at all by nicknaming the Pokemon in the slot before. I'll have an experiment with that and see if I can get some special values there. You're right that disassembling is critical to understanding the OT gender, which would also solve the trash byte mystery anyhow.
  12. Gen II Egg species identifier (glitch/hacking related)

    It's good practice to tolerate out of bound values or auto-correct them rather than throwing a stack trace.
  13. Incidentally, a post by Kaphotics describes an algorithm for deducing the PID: Here we have PID=0xD3C450DF Flipped: 0x50DFD3C4 To decimal: 1356846020 IVs are 7/25/28/3/17/2 Anyone know what to do next to get the seed?
  14. Before trading to Colosseum, a freshly generated 10Anniv Lugia had: (do & 0xff to get them in the usual 0 to 255 range) Nickname: [-58, -49, -63, -61, -69, -1, 1, 52, 1, 49] (-1 is the terminator after LUGIA) TrainerName: [-94, -95, -69, -56, -56, -61, -48] (which is 10ANNIV the full length, so no trash bytes here!) Caught Location: 255 Caught Game: 2 (Ruby even though it's transferred to a FireRed cart) The full profile of the Pokemon: Pokemon3 [attacks=Attacks3 [currentPP1=20, currentPP2=5, currentPP3=5, currentPP4=20, moveIndex1=105, moveIndex2=56, moveIndex3=240, moveIndex4=129, ppUps1=0, ppUps2=0, ppUps3=0, ppUps4=0], caught=Caught3 [byte18=2, caughtGame=2, caughtLevel=70, caughtLocation=255, caughtTrainerFemale=true, language=2, pokeball=4, secretID=0, trainerID=6227, trainerName=10ANNIV], core=Core3 [attackEV=0, beauty=0, cool=0, cute=0, defenseEV=0, egg=false, experience=428750, feel=0, heldItem=0, hpEV=0, nickname=LUGIA, smart=0, specialAttackEV=0, specialDefenseEV=0, species=249, speedEV=0, tough=0], genetics=Genetics3 [alternateAbility=false, attackIV=25, defenseIV=28, fatefulEncounter=false, hpIV=7, mark1=false, mark2=false, mark3=false, mark4=false, personalityValue=3552858335, pokerusDuration=0, pokerusStrain=0, specialAttackIV=17, specialDefenseIV=2, speedIV=3, friendship=0], ribbons=Ribbons3 [beautyRank=0, coolRank=0, cuteRank=0, ribbonArtist=false, ribbonCountry=false, ribbonEffort=false, ribbonLand=false, ribbonLeague=false, ribbonMarine=false, ribbonMtBattle=false, ribbonPurified=false, ribbonSky=false, ribbonTower100=false, ribbonTower50=false, ribbonWorld=false, smartRank=0, toughRank=0]] I have no idea what is significant about these trash bytes or if they are just the bytes that were there before it starting writing to that part of the memory. After trading to Colosseum and back the nickname bytes: Nickname: [-58, -49, -63, -61, -69, -1, 0, 0, 0, 0] The full profile of the Pokemon: Pokemon3 [attacks=Attacks3 [currentPP1=20, currentPP2=5, currentPP3=5, currentPP4=20, moveIndex1=105, moveIndex2=56, moveIndex3=240, moveIndex4=129, ppUps1=0, ppUps2=0, ppUps3=0, ppUps4=0], caught=Caught3 [byte18=2, caughtGame=2, caughtLevel=70, caughtLocation=255, caughtTrainerFemale=true, language=2, pokeball=4, secretID=0, trainerID=6227, trainerName=10ANNIV], core=Core3 [attackEV=0, beauty=0, cool=0, cute=0, defenseEV=0, egg=false, experience=428750, feel=0, heldItem=0, hpEV=0, nickname=LUGIA, smart=0, specialAttackEV=0, specialDefenseEV=0, species=249, speedEV=0, tough=0], genetics=Genetics3 [alternateAbility=false, attackIV=25, defenseIV=28, fatefulEncounter=false, hpIV=7, mark1=false, mark2=false, mark3=false, mark4=false, personalityValue=3552858335, pokerusDuration=0, pokerusStrain=0, specialAttackIV=17, specialDefenseIV=2, speedIV=3, friendship=70], ribbons=Ribbons3 [beautyRank=0, coolRank=0, cuteRank=0, ribbonArtist=false, ribbonCountry=false, ribbonEffort=false, ribbonLand=false, ribbonLeague=false, ribbonMarine=false, ribbonMtBattle=false, ribbonPurified=false, ribbonSky=false, ribbonTower100=false, ribbonTower50=false, ribbonWorld=false, smartRank=0, toughRank=0]] So there you have it: trading to and from Colosseum nulls the trash bytes after the terminator, hence trash bytes are of no relevance to a Pokemon's legality whatsoever - not even renaming them is required!