Jump to content

tool mdrngzer: A Pokemon Mystery Dungeon Randomizer


Recommended Posts

Seeing as the PMD games weren't mysterious enough, I made a randomizer for them.

This program randomizes the following aspects of the game:

  • Pokemon Attributes
    • Abilities
    • Move learnset
    • Typing
    • IQ Groups

    [*]Dungeon Attributes

    • The pokemon that appear in each dungeon
    • The items that spawn in each dungeon
    • The terrain appearance of each dungeon
    • The music of each dungeon

    [*]Starters

These options can all be enabled and disabled independent of each other.

The Randomizer currently only supports Explorers of Sky (US), but I am working on support for more versions in the future.

Downloads:

v0.10.1

Screenshots:

https://imgur.com/a/93pVI

https://imgur.com/a/rsku1

Notes:

  • Certain pokemon, such as legendaries and unown, are untouched by the randomizer for either mechanic or progression reasons.

Planned features:

  • Writing all the randomizations to a text file for easy viewing
  • Weather
  • Add option for randomized moves to be baised towards pokemon type/stats
  • Support for more game versions!(possibly even GTI & PSMD)

Known bugs:

  • None! yet...

This tool requires Visual C++ Redistributable for Visual Studio 2015 to run.

You can see the source Here

Please report any bugs you find!

Special thanks to:

OgreGunner & nhahtdh of GameFaqs - Major research on where dungeon data is stored.

psy_commando & evandixon of Project Pokemon - Research on pretty much everything else about Explorers of Sky, creating the wiki page for it.

vadixidav - Helped a lot with some of the coding.

Edited by aissurteivos
Link to comment
Share on other sites

That looks like some nice work! I'm always glad to see some more utilities for PMD2 popping up! :D

And I'm also happy that all that info on the wiki got some use! It was a pain in the butt to write xD

And nice find with the Explorers of Time/Darkness thread on gamefaqs. I didn't even think about looking for that one, even though I read through the EoS one.. ^^;

I'll probably have to update the wiki and etc now..

And by the way, if you ever want to discuss about PMD2 research or want to share some discoveries, etc, my PMD2 thread has pretty much become a PMD2 research thread xD Its always nice to get some input from other people working on PMD2 !

http://projectpokemon.org/forums/showthread.php?40199-Pokemon-Mystery-Dungeon-2-Psy_commando-s-Tools-and-research-notes

There are a lot of little things I haven't documented on the wiki yet, so feel free to ask if you ever need to know anything! Its possible one of us will have an answer.

EDIT:

Also, I looked a bit at how your tool worked. And if you don't mind, I had just a comment.

Because of the way the move lists are encoded, the size of the waza_p.bin file will increase/decrease in the rom depending on the amount of moves lists containing IDs bigger than 0x7F. That could be a problem if a lot of move IDs are changed that way, it could in theory start overwriting data after the waza_p.bin file.

You might want to unpack and repack the rom with ndstool, or use some code to modify the FAT of the nitrofs. Just to avoid any potentially random bugs with modifying stuff directly via file offsets. Plus, that way you'd be able to add/remove moves from the level-up lists randomly without issues. And the randomizer would be mostly compatible with modified roms and other regions roms.

Its just a suggestion though.

Edited by psy_commando
Link to comment
Share on other sites

  • 5 months later...
  • 1 month later...

I've played EoS a little with your randomizer, and had quite a bit of fun. I had a few issues with the difficulty, so I'll go into detail about that.

1. The very start of the game is way too hard. It isn't uncommon to get one-shot or two-shot by the first enemy. There's nothing the player can do, because they have no items at this point.

How to fix: add an option for "easy Beach Cave" in the randomizer. This would lower the levels of the Pokemon that appear in Beach Cave, which should help this issue a little. Or maybe it would choose Pokemon with weak starting movepools(might be a bit harder to code) to place in Beach Cave instead.

That being said, it really isn't that big of a problem. After a few runs, you should be able to make it through by sheer luck, unless you get incredibly powerful enemies.

2. Later in the game, it becomes way too easy. This a combination of factors:

a) Gummis spawn a lot more than usual. Each gummi gives at least a +1 to your stats, which makes a huge difference once you collect a few pages of them. The enemies do not gain power at the same rate that you do.

How to fix: Let the user adjust item weight, rather than making it totally random. This way, the user can choose how easy/hard they want the game to be.

b) The player gets a lot more money than usual. They can sell TMs they can't use, as well as Gold Ribbons(and similar items), to gain huge amounts of money. This means that they can buy Revivers from the shop every day, becoming pretty much unkillable after buying enough of them.

How to fix: Again, let the player adjust item weight. They can choose to make TMs spawn more/less frequently to change the difficulty. Another way you could do it is if you adjusted the selling prices of items so you don't get a huge return on gummis, TMs, scarves, and such items.

c) The later enemies are sometimes weak. In the normal games, endgame is full of dragons and other threats(Dragonbreath Onix, Discharge Porygon, etc.). Obviously, in a randomizer, they're going to be completely random. But, it would be nice if they were a bit tougher than the enemies at the start of the game, and not just in level.

How to fix: Give the user the option to weight the encounters so that the ones with good movesets and typings appear more frequently toward the end. It might be a bit tricky to program that, but the end result would be great, I think. Or, you could let the user adjust the level curve a little. Even Tackle turns into a scary move when being used by a high-level Pokemon.

3. The player frequently gets access to broken moves. Spore, Sweet Kiss, Imprison, Smokescreen, and so on just completely get rid of the difficulty. The battles change into one-way beatdowns instead of an exchange.

How to fix: Give the player the option to reduce the frequency that stun moves appear.

I don't know if you're still developing this tool, but if you pursued some of these options, I feel like it would really improve the program. If you do decide to do any of these, please keep them optional, because I don't think that every user will appreciate these changes if forced.

Also, I should note that I haven't managed to get past the starting menu with text randomization. It just crashes on me.

Link to comment
Share on other sites

  • 4 weeks later...

Heya heya!

I've long awaited a randomizer for mystery dungeon. Is good. Hrmm hrm.

Anywho, to get to the gist or whatever, I noticed a strange bug while playing randomized explorers of sky: for whatever reason whenever I attempt to evolve kirlia into gardevoir, the game crashes. I'm not completely sure why this happens, but I'm sort of wondering if gardevoir has a glitched ability due to the randomizer.

To give you some more data on the matter...

-Other pokemon are able to evolve just fine

-Kirlia's still able to evolve into gallade (if male & w/ dawn stone, as normal)

-The kirlia I'm trying to evolve is at the correct level

-So far, I haven't tested if the evolution is bugged just for the one kirlia.

I could probably also send a copy of my save on the game, so someone can take a closer look at the matter. But, uh, yeah. The game's worked fine aside from this one error, I guess. Has anyone else had a similar problem with the randomizer?

(UPDATE): Ok, so after a bit of exploring around, I found out that there are indeed a handful of other pokemon that cannot evolve and cause a similar problem.

So far, these being...

-Kirlia from earlier (still dunno if it's just that one)

-Gloom (It didn't even give me the option to evolve into bellossom/vileploom)

-Treeko

Oddly enough, it also seems that closing out of the menu with the unevolvable-pokemon seems to cause the freeze once again.

Weird.

(ANOTHER UPDATE): There's a few more pokemon that showed problems. However, after using an action-replay code to manually change kirlia into gardevoir, the game remained stable. I still couldn't evolve the other pokemon, but the gardevoir had the randomized ability and everything.

Edited by Thedavedude
Link to comment
Share on other sites

  • 3 months later...

Hi. I found out your randomizer a few days ago. It worked and I thank you for making this.

I found out a little thing that I'm not exactly sure it's a bug or not, but basically all Pokemon behave as they were. Ex Ghost type Pokemons can still walk through walls, ex fire type Pokemon can walk on lava without being burned, etc. I think it would be neat to have different Pokemon to have their AI fit to their new typing (though something tells me it may bug out a lot)

Also, I also encountered evolution freezing glitch, but it seems to be a game bug, not due to the randomizer (according to the research I have done). It would be cool if the fix could added to the randomizer (I don't know if it's possible or if it would bug out the randomized game or not, just a suggestion).

Link to comment
Share on other sites

  • 2 weeks later...
Seeing as the PMD games weren't mysterious enough, I made a randomizer for them.

This program randomizes the following aspects of the game:

 

  • Pokemon Attributes

    • Abilities

    • Move learnset

    • Typing

    • IQ Groups

     

    [*]Dungeon Attributes

    • The pokemon that appear in each dungeon

    • The items that spawn in each dungeon

    • The terrain appearance of each dungeon

    • The music of each dungeon

     

    [*]Starters

     

 

These options can all be enabled and disabled independent of each other.

The Randomizer currently only supports Explorers of Sky (US), but I am working on support for more versions in the future.

Downloads:

v0.10.1

Screenshots:

https://imgur.com/a/93pVI

https://imgur.com/a/rsku1

Notes:

 

  • Certain pokemon, such as legendaries and unown, are untouched by the randomizer for either mechanic or progression reasons.

 

Planned features:

 

  • Writing all the randomizations to a text file for easy viewing

  • Weather

  • Add option for randomized moves to be baised towards pokemon type/stats

  • Support for more game versions!(possibly even GTI & PSMD)

 

Known bugs:

 

  • None! yet...

 

You can see the source Here

Please report any bugs you find!

Special thanks to:

OgreGunner & nhahtdh of GameFaqs - Major research on where dungeon data is stored.

psy_commando & evandixon of Project Pokemon - Research on pretty much everything else about Explorers of Sky, creating the wiki page for it.

vadixidav - Helped a lot with some of the coding.

Hey aissurteivos let me know when an update is out, it will be thankful :)

Link to comment
Share on other sites

  • 5 weeks later...

I really appreciate you doing this, but I encountered a few problems while trying to play this, and I haven't been able to get it running successfully yet.

When I tried to get the randomizer running, it said that a few .dll files were missing, so I downloaded them. After I downloaded them, I got this message when I tried to start the randomizer again:

"The application was unable to start correctly (0xc000007b). Click OK to close the application."

Do you know what this could mean? Do you know how to fix this?

Thank you!

Link to comment
Share on other sites

  • 4 months later...

Can someone help me firstly nice tool I like it, but I got a Problem, 

I am using the Emulator Desmume and when I open that randomized Pokemon ROM  it says ROM: Header is invalid. The device side has been increased to allow for the provided file size.

Anyone knows the problem? would be amazing :D

Link to comment
Share on other sites

3 hours ago, Lugia_101 said:

Can someone help me firstly nice tool I like it, but I got a Problem, 

I am using the Emulator Desmume and when I open that randomized Pokemon ROM  it says ROM: Header is invalid. The device side has been increased to allow for the provided file size.

Anyone knows the problem? would be amazing :D

That's a warning and not an error.  It just means the ROM is larger than the header indicates and the emulator is overriding the header.  Just click OK and it (should) work fine.

  • Like 1
Link to comment
Share on other sites

  • 1 month later...
  • 2 months later...
  • 3 weeks later...
  • 5 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...