Jump to content

pk3DS: Pokémon 3DS ROM Editor and Randomizer


Recommended Posts

9 hours ago, Absunine said:

I'm guessing that's a Nay on there being a Discord server, Oh well. woulda been fun probably. ~

Though. I'm guessing I just have to watch this topic for when new updates to the application come?

Tools aren't big enough to need a dedicated discord server.

This site has its own; you're free to discuss it there.

  • Like 1
Link to comment
Share on other sites

Hi, i'm having certain issues... well, for starters, last version of pk3ds from the github master doesn't have the executable, so... call me dumb, but i don't know how to make it work. And with older versions... to be honest, i don't know how to make it work. I managed once to randomize an Ultra Moon game, but i feel that the ExeFS part (the TM's) didn't get randomized. And now, if i edit something on the CRO part, the game just doesn't load.

Not to mention that i get a 0kb file if i try to rebuild the game into a .3ds file. Any help? I don't even know where to ask now.

Link to comment
Share on other sites

9 minutes ago, Lunar_Ohmus said:

Hi, i'm having certain issues... well, for starters, last version of pk3ds from the github master doesn't have the executable, so... call me dumb, but i don't know how to make it work. And with older versions... to be honest, i don't know how to make it work. I managed once to randomize an Ultra Moon game, but i feel that the ExeFS part (the TM's) didn't get randomized. And now, if i edit something on the CRO part, the game just doesn't load.

Not to mention that i get a 0kb file if i try to rebuild the game into a .3ds file. Any help? I don't even know where to ask now.

Re-read the first post of the thread. You don't download the exe from github.

Use luma3DS for your cfw.

pk3DS doesn't rebuild ROMs, nor should you need to. Use layeredFS instead.

Link to comment
Share on other sites

12 hours ago, Lunar_Ohmus said:

Hi, i'm having certain issues... well, for starters, last version of pk3ds from the github master doesn't have the executable, so... call me dumb, but i don't know how to make it work. And with older versions... to be honest, i don't know how to make it work. I managed once to randomize an Ultra Moon game, but i feel that the ExeFS part (the TM's) didn't get randomized. And now, if i edit something on the CRO part, the game just doesn't load.

Not to mention that i get a 0kb file if i try to rebuild the game into a .3ds file. Any help? I don't even know where to ask now.

pk3ds does not rebuild, it just randomizes.

For rebuilding, I'm using PackHack. All you have to do is rename the .code.bin file in ExtractedExeFS to code.bin, and then rebuild with PackHack. There you go.

Link to comment
Share on other sites

20 hours ago, Schilli said:

Hello,

Is there a way to change the Wild Encounters mode so that only a maximum of 5 Pokémon can be found on a route when i press Randomized All?

 

 

The program is open source; if you want custom functionality you'll have to tweak the code yourself.

Link to comment
Share on other sites

On 4/22/2019 at 8:00 AM, Kaphotics said:

The program is open source; if you want custom functionality you'll have to tweak the code yourself.

This isn't actually related to the post you were referring to, but do you have any idea how difficult modifying the PersonalInfo to have the Evolutions info accessible (for use with supporting a "make all/most species have matching randomized types/abilities" type of functionality) would be? I've not dug too deep into the codebase yet, but figured it couldn't hurt to check and see if my idea had either already been considered and passed over, or just not attempted yet due to lack of interest, rather than complexity?

(Ultimately what I'd really want is to have all of the randomizable things dumped to json files, which I could then modify with an external script, and then re-import into the project, but I'm assuming that's more than a little out of scope/improbably difficult to do)

Link to comment
Share on other sites

4 hours ago, Icehawk78 said:

This isn't actually related to the post you were referring to, but do you have any idea how difficult modifying the PersonalInfo to have the Evolutions info accessible (for use with supporting a "make all/most species have matching randomized types/abilities" type of functionality) would be? I've not dug too deep into the codebase yet, but figured it couldn't hurt to check and see if my idea had either already been considered and passed over, or just not attempted yet due to lack of interest, rather than complexity?

(Ultimately what I'd really want is to have all of the randomizable things dumped to json files, which I could then modify with an external script, and then re-import into the project, but I'm assuming that's more than a little out of scope/improbably difficult to do)

Not that hard, but most don't care about uniform abilities/types. The usual randomizer iterates through all entries without any other context; just a simple foreach-loop behavior.

Different approaches that use other files as context can have various implementation issues, and need a well defined approach. Things get kinda hairy for alternate formes -- Gen7 introduced forme-specific evolutions, where a specific species-form has its own Evolution set. Also can be weird for future gen pre evolutions; which species of the evolution chain is the root? What about split evolutions like Eevee?

If a context based smart randomizer was desired, you'd probably want to determine the root for each species chain, then randomize the root (and all alt forms). For each root element that is modified, get the index within the PersonalTable (form stats index). With the index, get the evolution table entry. Propagate changes, and repeat the index-evolution recursion until the chain ends.

Won't really work well if the user randomizes evolutions after... The trickle up described above can be repeated at the end (types, moves), but stats and learnsets... yuck.

 

Basically, a smart randomizer has its own tradeoffs and users might want the ability to customize it further, which is a burden on the (mostly single person) implementer :)

 

If you want I can always discuss stuff on discord/irc :D

Link to comment
Share on other sites

On 4/22/2019 at 3:00 PM, Kaphotics said:

The program is open source; if you want custom functionality you'll have to tweak the code yourself.

Can you give me an indication of where I can find this attitude? I have no idea about programming?  :)

Link to comment
Share on other sites

Hi, i'm new on the community.

sorry if i wrote you a private message.

I want only to know how is one function of latest version Pk3ds

I've searched everywhere on the web but i didn't find anything.

I saw that there are some new flags called Trainer.AI bits

What change does in game the flags "No Without", "Poke Change", "Double", "Battle Royal" an "Item" ?

"Item" I suppose that gives the possibilities of use or not the item support such as Potions and restore

Please reply me

Thanks a lot

Edited by FabiuS_PRO
Link to comment
Share on other sites

18 hours ago, Schilli said:

Can you give me an indication of where I can find this attitude? I have no idea about programming?  :)

Visual Studio 2019 Community, and open the "sln" file of the source code (download zip from github's main page)

  • Like 1
Link to comment
Share on other sites

8 hours ago, Kaphotics said:

Trainer flags are self explanatory

Can they switch/change pkm during battle? Can they use items? Do they have to consider teammates when choosing a move? Do they white out the player if they win?

Thank you so much.

And another question. What is the difference of flags "Base" "Strong " and "Expert"

I saw that some NPCs has only "Base", some "Base" and "Expert" and others all three

Thank you

Link to comment
Share on other sites

21 minutes ago, FabiuS_PRO said:

Thank you so much.

And another question. What is the difference of flags "Base" "Strong " and "Expert"

I saw that some NPCs has only "Base", some "Base" and "Expert" and others all three

Thank you

Again, exactly what it means.

Bad trainers only have Basic AI logic, Stronger trainers have both Basic and Strong AI logic, and Expert Trainers have all 3.

Link to comment
Share on other sites

I followed a tutorial on using Pk3DS and have successfully managed to randomize two 6th Gen games: Y and AS.

However, when I followed the same tutorial and tried to feed Pk3DS the extracted Exe and RomFS folders for my UM cartridge, Pk3DS gave me the error "File count does not match expected game count- Files: 1366." I haven't done anything differently than I did with either of my 6th Gen games. I'm fairly certain I'm just being dense and that the solution is much simpler than I'm making it out to be. If anyone can at least point me in the right direction, I would really appreciate it. Searching for this particular error has gotten me nowhere so far.

EDIT:

It really was a simple fix. Something about how my RomFS data unpacked added a ton of files that are unnecessary to Pk3DS. To anyone else who faces this same issue, just delete all files in the root of your RomFS folder except "Shop.cro" and anything that starts with "Dll"

Edited by bedhead_
Resolved issue
Link to comment
Share on other sites

Hello again, people. So i've managed to successfully randomize Omega Ruby, but i forgot to randomize the trainers. Now when i try to so, i get the following error:

Spoiler

 

Exception Details:
System.ArgumentOutOfRangeException: El valor de '10' no es válido para 'Value'. 'Value' debería estar entre 'Minimum' y 'Maximum'.
Nombre del parámetro: Value
   en System.Windows.Forms.NumericUpDown.set_Value(Decimal value)
   en pk3DS.RandSettings.TryGetValue(Control ctrl, String s) en C:\BuildAgent\work\ccf72a59f9911202\pk3DS\Tools\RandSettings.cs:línea 97
   en pk3DS.RandSettings.GetFormSettings(Form form, ControlCollection controls) en C:\BuildAgent\work\ccf72a59f9911202\pk3DS\Tools\RandSettings.cs:línea 45
   en pk3DS.RSTE.B_Randomize_Click(Object sender, EventArgs e) en C:\BuildAgent\work\ccf72a59f9911202\pk3DS\Subforms\Gen6\RSTE.cs:línea 467
   en System.Windows.Forms.Control.OnClick(EventArgs e)
   en System.Windows.Forms.Button.OnClick(EventArgs e)
   en System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   en System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   en System.Windows.Forms.Control.WndProc(Message& m)
   en System.Windows.Forms.ButtonBase.WndProc(Message& m)
   en System.Windows.Forms.Button.WndProc(Message& m)
   en System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Loaded Assemblies:
--------------------
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscorlib.dll

pk3DS, Version=1.0.0.396, Culture=neutral, PublicKeyToken=null
C:\Users\Abdeltif\Desktop\Juegos\Pokémon- Editores\pk3DS Build 396\pk3DS.exe

System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll

System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll

System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll

System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll

System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll

System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll

System.Windows.Forms.resources, Version=4.0.0.0, Culture=es, PublicKeyToken=b77a5c561934e089
C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms.resources\v4.0_4.0.0.0_es_b77a5c561934e089\System.Windows.Forms.resources.dll

pk3DS.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
C:\Users\Abdeltif\Desktop\Juegos\Pokémon- Editores\pk3DS Build 396\pk3DS.Core.dll

mscorlib.resources, Version=4.0.0.0, Culture=es, PublicKeyToken=b77a5c561934e089
C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources\v4.0_4.0.0.0_es_b77a5c561934e089\mscorlib.resources.dll

--------------------
User Message:
An unhandled exception has occurred.
You can continue running the program (albeit with potential side-effects), but please report this error.

 

Any ideas why it happens, and how can i fix it? Also, quick question. It doesn't seem possible to use pk3ds to randomize the virtual console pokemon games (1st and 2nd gen games) Is it possible, is some work on the matter being done, is it planned to, or do you recommend to just randomize the original gb game and somehow make it into a .cia to play it on the 3ds? Thanks in advance for the help

Link to comment
Share on other sites

Anyone know how to make Mega Evolution possible outside of battle? I'm trying to have like charizard evolve into Char X at certain level at night and Char Y in day. But I cant seem to get it working, I can get evolve into Mega Char X/Y from charmeleon using the smae method, but cant do it from Charizard itself.

Image 5.png

Link to comment
Share on other sites

24 minutes ago, Anelrush said:

Anyone know how to make Mega Evolution possible outside of battle? I'm trying to have like charizard evolve into Char X at certain level at night and Char Y in day. But I cant seem to get it working, I can get evolve into Mega Char X/Y from charmeleon using the smae method, but cant do it from Charizard itself.

Image 5.png

The game possibly disallows same species evolutions. Keep in mind that the game will clear mega forms when you reload your party.

Link to comment
Share on other sites

2 minutes ago, Kaphotics said:

The game possibly disallows same species evolutions. Keep in mind that the game will clear mega forms when you reload your party.

Thank you, I am aware of the form resetting when game. But is there a allow this "same species evolution"? or is there a way to go around it to make the transition to mega more fluid? I rather not go from charmeleon to Mega Charizard.

Link to comment
Share on other sites

17 minutes ago, Anelrush said:

Thank you, I am aware of the form resetting when game. But is there a allow this "same species evolution"? or is there a way to go around it to make the transition to mega more fluid? I rather not go from charmeleon to Mega Charizard.

You'd have to dig through the game code and figure out how to disable that check, assuming the problem exists in that way. Game code modification is pretty much outside the scope of pk3DS; you'd have to use other tools like IDA.

There's always a way to do things, but the amount of effort and wisdom required usually isn't worth it.

Link to comment
Share on other sites

I'm trying to randomize my Pokemon Y (Digital Copy) but when I click on any option in the randomizer I get this error:

Exception Details:
System.FormatException: Invalid GARC Version: 0xFFFF
   em pk3DS.Core.CTR.GARC.unpackGARC(Stream stream)
   em pk3DS.Core.CTR.GARC.unpackGARC(Byte[] data)
   em pk3DS.Core.GameConfig.GetMemGARC(String file)
   em pk3DS.Core.GameConfig.GetGARCByReference(GARCReference gr)
   em pk3DS.Main.<B_StoryText_Click>b__31_0() na C:\BuildAgent\work\ccf72a59f9911202\pk3DS\Main.cs:linha 474
   em System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   em System.Threading.ThreadHelper.ThreadStart()

Loaded Assemblies:
--------------------
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscorlib.dll

pk3DS, Version=1.0.0.396, Culture=neutral, PublicKeyToken=null
C:\Users\Matheus\Desktop\3DS Randomizer Pack\3DS Randomizer Pack\Step 2 - Randomize\pk3DS.exe

System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll

System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll

System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll

System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll

System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll

System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll

System.Windows.Forms.resources, Version=4.0.0.0, Culture=pt-BR, PublicKeyToken=b77a5c561934e089
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms.resources\v4.0_4.0.0.0_pt-BR_b77a5c561934e089\System.Windows.Forms.resources.dll

pk3DS.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
C:\Users\Matheus\Desktop\3DS Randomizer Pack\3DS Randomizer Pack\Step 2 - Randomize\pk3DS.Core.dll

mscorlib.resources, Version=4.0.0.0, Culture=pt-BR, PublicKeyToken=b77a5c561934e089
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources\v4.0_4.0.0.0_pt-BR_b77a5c561934e089\mscorlib.resources.dll

--------------------
User Message:
An unhandled exception has occurred.
The program must now close.

What should I do? I can't find anything about this
 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...