Jump to content

pk3DS: Pokémon 3DS ROM Editor and Randomizer


Recommended Posts

I was messing around in OWSE, and then closed it. I get an extremely long progress bar of this (10min as of right now, with only 1/4 of the bar completed):

I'm assuming by "set" it means save, which you said it doesn't currently do that, but I couldn't get the program to close besides forcequitting it because of "Please wait for all operations to complete first."

For now just hold control when exiting the forms to yield the 'abort' option; keep holding it until they stop popping up.

I've noticed the same issue, I'll investigate :)

Edit: Uploaded new version, only sets back encdata as it'd be the only thing that gets edited. There still is no 'saving' done, just repacking the files that were read from.

Comes with coordinate displays for NPC/Warps.

Link to comment
Share on other sites

Hey Kaphotics, firstly, I would like to say thanks for making such a damn good tool.

Everything seems to work fine but whenever I try to randomize my Pokemon X the levels of the trainers' pokemon seem to always be 50% higher. I've turned off the level boost function and even the maximum difficulty function when randomizing. And I have tried randomizing it at least 5 times now and their levels are still so damn high.

Like the first rival battle, in the past 5 randomizers I've done, Shauna had sent out like Barboach, Shinx, Tranquill etc but they're all level 10.

Do you have maybe some sort of idea as to why it does this? Thanks again! :)

Link to comment
Share on other sites

I have some suggestions for the randomizer, i'd like to throw out unless they're already in and I just derped and missed them:

1. For evolutions randomizer, is it possible to maintain that all pokemon are available? (unless it already does this without being noted)

2. For wild encounters, can it do a "catch em all" mode to make sure that all pokemon are available, as well? (unless it already does this without being noted)

3. The "Modifier options" in personal stats imo should be all off by default, except quick hatch eggs. Those other 4 can really catch you off guard until you've finally got it playing and realize you only get 5 exp per pokemon, which at least for ORAS makes the game nigh improbable to even get past Brendan's mandatory battle to advance to any battable trainers, as you'll most likely be stuck at level 5 vs his level 10. Just a QOL, I'd believe.

And a question: Any plans to have a standalone Randomizer like Dabombstews, so we can throw in some quick configs; or a sub-portion of the program that hides everything but options for the randomizer?

Thanks for making pk3ds. :)

Link to comment
Share on other sites

Hey Kaphotics, firstly, I would like to say thanks for making such a damn good tool.

Everything seems to work fine but whenever I try to randomize my Pokemon X the levels of the trainers' pokemon seem to always be 50% higher. I've turned off the level boost function and even the maximum difficulty function when randomizing. And I have tried randomizing it at least 5 times now and their levels are still so damn high.

Like the first rival battle, in the past 5 randomizers I've done, Shauna had sent out like Barboach, Shinx, Tranquill etc but they're all level 10.

Do you have maybe some sort of idea as to why it does this? Thanks again! :)

Hope this doesnt multipost: I'm not sure if the restoring portion of PK3DS works once you've exported an romfs.bin, or closed it. so what I had to do was redump my romfs, randomize, and then the options I didn't like were gone. Hope that fixes it for you.

Link to comment
Share on other sites

I found a bug with the program. When I open Pokemon X files in pK3ds and try to apply a simple level boost of 50%, Max IVs and max AI, when it reaches Calem at 519, it throws an error stating attempting to divide by zero.

Here is the crash report:

************** Exception Text **************

System.DivideByZeroException: Attempted to divide by zero.

at pk3DS.RSTE.Randomize()

at pk3DS.RSTE.B_Randomize_Click(Object sender, EventArgs e)

at System.Windows.Forms.Control.OnClick(EventArgs e)

at System.Windows.Forms.Button.OnClick(EventArgs e)

at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)

at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)

at System.Windows.Forms.Control.WndProc(Message& m)

at System.Windows.Forms.ButtonBase.WndProc(Message& m)

at System.Windows.Forms.Button.WndProc(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************

mscorlib

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.34014 built by: FX45W81RTMGDR

CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll

----------------------------------------

pk3DS

Assembly Version: 1.0.0.0

Win32 Version: 1.0.0.0

CodeBase: file:///C:/Users/Alec/AppData/Local/Temp/Rar$EXa0.437/pk3DS.exe

----------------------------------------

System.Windows.Forms

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.34250 built by: FX452RTMGDR

CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

----------------------------------------

System.Drawing

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.34262 built by: FX452RTMGDR

CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

----------------------------------------

System

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.34239 built by: FX452RTMGDR

CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll

----------------------------------------

System.Configuration

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.33440 built by: FX45W81RTMREL

CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

----------------------------------------

System.Xml

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.34230 built by: FX452RTMGDR

CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll

----------------------------------------

System.Core

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.33440 built by: FX45W81RTMREL

CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll

----------------------------------------

Link to comment
Share on other sites

1. For evolutions randomizer, is it possible to maintain that all pokemon are available? (unless it already does this without being noted)

Does so by default, having any of the EXP/BST/Type enhancements selected will no longer ensure every species is used.

2. For wild encounters, can it do a "catch em all" mode to make sure that all pokemon are available, as well? (unless it already does this without being noted)

Does so by default, having the BST enhancement will no longer ensure every species is used.

3. The "Modifier options" in personal stats imo should be all off by default, except quick hatch eggs.

I agree. Changed in the latest commit (compile if you want it now, else wait for the next posted version).

====

And a question: Any plans to have a standalone Randomizer like Dabombstews, so we can throw in some quick configs; or a sub-portion of the program that hides everything but options for the randomizer?

Not really my intent with the program; all of the randomization depends on the UI objects instead of operating off of a class. Sure one can set them to be .Visible = false;

It'd be a lot of work for a little gain... it's not really that hard to not look at what was randomized :P

Previously people have asked about seed-randomization. While it is possible to do, it's not really necessary. People can just share game files instead -- NDS/3DS have this advantage over a single-file GBA ROM.

Link to comment
Share on other sites

Hey Kaphotics, firstly, I would like to say thanks for making such a damn good tool.

Everything seems to work fine but whenever I try to randomize my Pokemon X the levels of the trainers' pokemon seem to always be 50% higher. I've turned off the level boost function and even the maximum difficulty function when randomizing. And I have tried randomizing it at least 5 times now and their levels are still so damn high.

Like the first rival battle, in the past 5 randomizers I've done, Shauna had sent out like Barboach, Shinx, Tranquill etc but they're all level 10.

Do you have maybe some sort of idea as to why it does this? Thanks again! :)

As Acry mentioned, you can just restore the original files.

Level boost alters the levels permanently, it's not just turning on a flag that can be turned off.

Ie, level 20 -> level 20 + 50% -> level 30

level 30 is now saved instead of level 20

If you wanted to undo this, simply set the level boost to -66 percent (which is ~100/150) to scale them back down to pretty much the original level.

The level boost can be used as a level decreaser too :)

Link to comment
Share on other sites

As Acry mentioned, you can just restore the original files.

Level boost alters the levels permanently, it's not just turning on a flag that can be turned off.

Ie, level 20 -> level 20 + 50% -> level 30

level 30 is now saved instead of level 20

If you wanted to undo this, simply set the level boost to -66 percent (which is ~100/150) to scale them back down to pretty much the original level.

The level boost can be used as a level decreaser too :)

Yeah I ended up just decompressing/unpacking the original .bin files when I dumped the rom and it's working perfectly now!

One more thing though, when you're editing the trainer's pokemon and opt to randomize them but choose 'Don't Modify' for their movesets, do the randomized pokemon load with the movesets of the original pokemon? Because I've run into trainers with Lairon using bubble lol but I've also run into trainers with randomized pokemon using moves which the original pokemon doesn't even learn either, so I'm not entirely sure.

Anyways, thanks for the tip! :)

Link to comment
Share on other sites

One more thing though, when you're editing the trainer's pokemon and opt to randomize them but choose 'Don't Modify' for their movesets, do the randomized pokemon load with the movesets of the original pokemon? Because I've run into trainers with Lairon using bubble lol but I've also run into trainers with randomized pokemon using moves which the original pokemon doesn't even learn either, so I'm not entirely sure.

Anyways, thanks for the tip! :)

Most trainers don't have movesets specified, which causes them to refer to their levelup table.

If you modify the level up moves (ie, randomize), the trainer pokemon will take from that newly randomized learnset because their original one is overwritten.

Link to comment
Share on other sites

I found a bug with the program. When I open Pokemon X files in pK3ds and try to apply a simple level boost of 50%, Max IVs and max AI, when it reaches Calem at 519, it throws an error stating attempting to divide by zero.

Here is the crash report:

-snip-

Thanks, fixed in latest commit :)

=====

I've updated the first post with the latest compiled version.

Be sure to check out the map viewer, which now shows where overworlds are on the map.

Put the scale to 8 and re-draw; image will not update when changing the map in OWSE unless Auto-Draw is checked.

Link to comment
Share on other sites

How plausable would it be to add a "pallet" randomizer for the Pokemon battle models?

Their main textures and mask textures seem to be encoded in 24BPP which I believe contains a color table. You could probably just uniformly offset the color samples to randomly change the hue for all of the regular textures if they do have a color table.

I also noticed that the normal maps and other textures you wouldn't want to mess with are encoded in other formats which would make them easier to leave alone.

Link to comment
Share on other sites

How plausible would it be to add a "pallet" randomizer for the Pokemon battle models?

Their main textures and mask textures seem to be encoded in 24BPP which I believe contains a color table. You could probably just uniformly offset the color samples to randomly change the hue for all of the regular textures if they do have a color table.

I also noticed that the normal maps and other textures you wouldn't want to mess with are encoded in other formats which would make them easier to leave alone.

They aren't stored with palettes (hence why the size of the GARC is over half the size of the ROM).

BvN1HDU.png

Sure someone can make a color shifter to apply to only the regular textures, but that'd best be handled by a separate program. Just extract the GARC and then run. Not something I'm interested in making...

Link to comment
Share on other sites

I have another suggestion for the Evolution Editor. Would it be possible to include an option which just changes the evolutions where you have to trade for? It could be a hardcoded Level value but it could also be randomized as well (except for evolutions requiring a trade). If possible, also a check for those pokemon which evolve when leveled up while knowing a certain move, if that pokemon can actually learn said move and if not, the evolution is set to a certain level value. (Similar to the universal Randomizer by dabombstew)

A workaround for me would be to modify the Evolution file once and then back it up and replace it every time, so it wouldn't be too much of a problem, if you don't want to include my suggestion. :)

Link to comment
Share on other sites

When trying to random trainers in ORAS it always seems to crash. (pk3DS stops responding and I need to force close)

Anyone else having this problem?

I'm trying to use these options

I tried running it from visual studio but got the same result

2d7577.png

2d7577.png.4535320378a7c38fa300b114a0622

Link to comment
Share on other sites

When trying to random trainers in ORAS it always seems to crash. (pk3DS stops responding and I need to force close)

Anyone else having this problem?

I'm trying to use these options

[ATTACH=CONFIG]12728[/ATTACH]

Type theme trainers use all types; pk3DS hangs because no Pokemon in Gen1 are Dark type.

Fixed in latest commit; works even if Pokémon's types are altered/randomized with the Personal editor.

Link to comment
Share on other sites

I'm not sure what happened or why it is happening... but after rebuilding the romfs with pk3DS and loading it with HANs, the game would first freeze/crash after the intro. Remade a save from without HANs past that point and reloaded the romfs in HANs... only for it to freeze/crash again after selecting "Continue".

The changes I made were:

*Music Changing

*Randomized Trainer Pokémon

*Randomized Wild Pokémon

*Randomized TM moves

*Randomized Level-Up moves

*Edited the Title Screen (logo)

*Changed/Edited both Personal and Gameplay dialogue

I started off using pk3DS (10-25-15) a bit, then started using the 11-04-15 build. Game in question is Alpha Sapphire.

Link to comment
Share on other sites

I'm not sure what happened or why it is happening... but after rebuilding the romfs with pk3DS and loading it with HANs, the game would first freeze/crash after the intro. Remade a save from without HANs past that point and reloaded the romfs in HANs... only for it to freeze/crash again after selecting "Continue".

The changes I made were:

*Music Changing

*Randomized Trainer Pokémon

*Randomized Wild Pokémon

*Randomized TM moves

*Randomized Level-Up moves

*Edited the Title Screen (logo)

*Changed/Edited both Personal and Gameplay dialogue

I started off using pk3DS (10-25-15) a bit, then started using the 11-04-15 build. Game in question is Alpha Sapphire.

pk3DS doesn't do music alteration, please test without those changes.

Link to comment
Share on other sites

Sorry to mix the music editing into the list of things done with pk3DS. Anyway, I have just tested the rebuild without the music changes but it still freeze/crash after selecting "Continue".

Did you happen to edit the starter Pokemons? I'm pretty sure that makes a new game crash after the intro (white screen)

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...