Sign in to follow this  
X Kirby

MMBN3 White Randomizer

6 posts in this topic

MMBN3 White Randomizer

I found the original MMBN3 White Randomizer a while ago and decided to tweak it to make things more interesting. Here's the list of changes:

  • Removed the VarSwrd damage penalty (Was 60, now it's back to its default of 160).
  • Added the ability to change all Battle Chip and Program Advance damage values directly with text files.
  • Added the ability to change Virus and Navi HP directly with text files, though I don't have their names listed anywhere, so good luck with that.
  • Added Game Modifiers to play around with
    • Chip Damage/Enemy HP Multipler and Variance values
    • Chip Roulette Modes
  • Added the ability to type in a Seed for the randomizer. It also saves whatever seed you use to a new file for sharing purposes. If you don't supply a seed, it generates one.
  • These are all explained in the included NOTES.txt.

Credit goes to Samfin, Prof.9, and Rockman.exe for the original program, and myself for the tweaks.

NOTE: This requires Python 2.7 in order to use it without issues. I tried porting it over to 3.3, it was a headache to figure out so I just reverted those changes.

Also, I'm no super-genius of a programmer, so don't expect any updates to this from me. As much as I would've like to modify other aspects, I'm just not smart enough to. If you're wondering how I figured out all of this, I used a Hex Editor and notes I found on a major Mega Man Battle Network site, as well as some Python help resources.

Known Issues:

  • Jelly Viruses, specifically their wave attack, will crash some emulators while creating sprites in other emulators. I'm not sure if this is an emulator-specific issue or something to do with the ramdomizer. It also will only crash/create sprites when hitting Rocks or Mega Man, not Rooks. Prisms might also be unaffected, though unsure. Testing the randomized roms on console with a low-grade flash cart produces the sprites, but doesn't crash the game, so I'm thinking this might just be something the randomizer does that emulators pick up poorly. I'm also unsure if they're due to my changes or not. Snipe'd the problem and fixed it.
  • None that I've noticed, but feel free to post any!
Edited by X Kirby
Mentioning which version of Python it requires, as well as a new feature.

Share this post


Link to post
Share on other sites

I fixed the Jelly crash! It was caused by me changing the Jelly virus' HP values. Strangely enough, there's a bitflag in their HP value that determines something I'm unaware of. I added a hardcoded check to prevent further issues.

EDIT: This bitflag was on a lot of enemies, including 4 of the boss Navis. This leads me to believe that it might be the enemy Element flag, which also means that enemies can realistically only hold 4000 HP. I set it up to allow up to 9000 as a hard cap for HP and 4000 for enemies that have this bitflag, however, so that should mitigate most of the problems that have been occuring.

It's already been updated, so go ahead and play around with it to your liking.

Edited by X Kirby

Share this post


Link to post
Share on other sites

After thorough testing of that bitflag (due to various accidental mistakes I made), I can safely say that it is indeed the Element bitflag. This means Viruses and Navis can only have 4k HP maximum. I left the possibility to multiply it higher in anyway in case it works out somehow, though it'll only attempt to work on Navis without any element.

The hardcap of HP for everything is now 4,000 HP (Element-less Navis at 9,000, though this might result in weird circumstances). Chip and P.A. Damage still have no maximum, though I might program one in if push comes to shove. Besides that, you should be good to go use this for everything except races, as the seed is chosen automatically. I MIGHT fix this, but no guarentees. EDIT: Added a Seed input box, and it now saves the seed to a new text file for you whether your type one in or not. Feel free to have fun with races now! Just make sure to share modifiers between your racing rivals.

Edited by X Kirby
Added the 4k HP hardcap to ALL enemies.

Share this post


Link to post
Share on other sites

Just updated the randomizer again today, with a rather interesting feature: Chip Code Roulette Modes.

Basically, there's a value you can type in now, ranging from 0 to 3, that will change how the game generates Battle Chip Codes, including those found in folders in the game. This includes the Tutorial Folders as well! The 4 different modes are as followed:

  • Mode 0 is Normal Chip Codes mode. The game's built-in codes will be used.
  • Mode 1 is All Stars mode. The game will turn every chip into a * Chip (the Asterisk symbol)! This also means some PAs will break, but it's a trade-off that's worth experimenting with.
  • Mode 2 is Simplified Chip Codes mode. The game will only use ABCDE* for every chip. All Folders in the game will generate with all A chips for easier play.
  • Mode 3 is Pseudo Random Chip Codes Mode. All chips are generated with 5 random codes (split into categories of 5 letters each) and *.

NONE OF THIS HAS BEEN TESTED FOR STORY PROGRESSION. You have been warned. The game requires 4 chips from the player (LongSword E, wind *, Yoyo L?, IceBall M), and although the randomizer gives them to you on Mode 0, I can't say for sure if the other modes will give you the correct chips. Please let me know if these work, and I'll do my own seperate testing on the side.

Share this post


Link to post
Share on other sites

If this is like it was in MMBN6 the game doesn't actually look for LongSword E but for the 1st/2nd/... code LongSword has.

E.g. if the game orginally had Chip Codes A,B,C,* and wanted the Chip in Code A (1st code) on a check,
if you generate the same chip now with D,E,A,* Chip D (new 1st code) will satisfy the check, and not Chip A (now 3rd code).

Just a guess.

Share this post


Link to post
Share on other sites

I believe that's probably what it does, though I'm unsure if the story will reflect the changes in its text. Also, I might have to fix a potential bug with the Tutorial's Folders when using Chip Code Roulette Mode 3, the Pseudo Random one. That one is the least-tested and I just realized the tutorial requires two chips to have the same code, so I might have to add some extra code just so the Tutorial folder is functional.

EDIT: The Tutorial Folders are still functional, I actually left their Chip Codes untouched by the Roulette Modes.

EDIT 2: The All Star mode had a bug where it would not make every letter of every chip the Asterisk symbol. This has been addressed and I've updated the files.

Also, I've found out that the Chip Traders and Blue/Purple Mystery Data are not changed at all within the randomizer itself, and I have no idea where to start looking for their offsets. If anything, I'd rather leave them alone for now though, as you basically get every chip just by playing the game anyway. Expect to have some abnormal codes if you're playing any of the new Chip Code Roulette Modes though. This was due to the All Star mode bug mentioned above. NOW it's fixed.

EDIT 3: The Chips the game requires you to have are read correctly in the other modes, even though their codes are different. I tested it live on stream using All Star mode, so it should work with the other modes just as well.

Edited by X Kirby

Share this post


Link to post
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
Sign in to follow this