2022-01-21 08:39:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#define source_path ReadIni(SourcePath + "\setup.ini", "Data", "source_path")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#define min_windows ReadIni(SourcePath + "\setup.ini", "Data", "min_windows")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								#define MyAppName "Archipelago"
							 
						 
					
						
							
								
									
										
										
										
											2023-07-24 00:15:47 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#define MyAppExeName "ArchipelagoLauncher.exe"
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								#define MyAppIcon "data/icon.ico"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#dim VersionTuple[4]
							 
						 
					
						
							
								
									
										
										
										
											2023-07-24 00:15:47 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#define MyAppVersion GetVersionComponents(source_path + '\ArchipelagoLauncher.exe', VersionTuple[0], VersionTuple[1], VersionTuple[2], VersionTuple[3])
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								#define MyAppVersionText Str(VersionTuple[0])+"."+Str(VersionTuple[1])+"."+Str(VersionTuple[2])
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[Setup]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								; NOTE: The value of AppId uniquely identifies this application.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								; Do not use the same AppId value in installers for other applications.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								AppId={{918BA46A-FAB8-460C-9DFF-AE691E1C865B}}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								AppName={#MyAppName}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								AppCopyright=Distributed under MIT License
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								AppVerName={#MyAppName} {#MyAppVersionText}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								VersionInfoVersion={#MyAppVersion}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								DefaultDirName={commonappdata}\{#MyAppName}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								DisableProgramGroupPage=yes
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								DefaultGroupName=Archipelago
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								OutputDir=setups
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								OutputBaseFilename=Setup {#MyAppName} {#MyAppVersionText}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Compression=lzma2
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SolidCompression=yes
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LZMANumBlockThreads=8
							 
						 
					
						
							
								
									
										
										
										
											2023-03-03 09:51:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								ArchitecturesInstallIn64BitMode=x64 arm64
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								ChangesAssociations=yes
							 
						 
					
						
							
								
									
										
										
										
											2023-03-03 09:51:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								ArchitecturesAllowed=x64 arm64
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								AllowNoIcons=yes
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SetupIconFile={#MyAppIcon}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								UninstallDisplayIcon={app}\{#MyAppExeName}
							 
						 
					
						
							
								
									
										
										
										
											2021-11-06 08:19:10 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								; you will likely have to remove the following signtool line when testing/debugging locally. Don't include that change in PRs.
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								SignTool= signtool
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								LicenseFile= LICENSE
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								WizardStyle= modern
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								SetupLogging=yes
							 
						 
					
						
							
								
									
										
										
										
											2022-01-21 08:39:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								MinVersion={#min_windows}
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[Languages]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Name: "english"; MessagesFile: "compiler:Default.isl"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[Tasks]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}";
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[Types]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Name: "full"; Description: "Full installation"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Name: "hosting"; Description: "Installation for hosting purposes"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Name: "playing"; Description: "Installation for playing purposes"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Name: "custom"; Description: "Custom installation"; Flags: iscustom
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[Components]
							 
						 
					
						
							
								
									
										
										
										
											2021-11-14 22:37:27 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "core";             Description: "Core Files"; Types: full hosting playing custom; Flags: fixed
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Name: "generator";        Description: "Generator"; Types: full hosting
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Name: "generator/sm";     Description: "Super Metroid ROM Setup"; Types: full hosting; ExtraDiskSpaceRequired: 3145728; Flags: disablenouninstallwarning
							 
						 
					
						
							
								
									
										
										
										
											2022-07-22 01:02:25 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "generator/dkc3";   Description: "Donkey Kong Country 3 ROM Setup"; Types: full hosting; ExtraDiskSpaceRequired: 3145728; Flags: disablenouninstallwarning
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 14:16:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "generator/smw";    Description: "Super Mario World ROM Setup"; Types: full hosting; ExtraDiskSpaceRequired: 3145728; Flags: disablenouninstallwarning
							 
						 
					
						
							
								
									
										
										
										
											2021-11-14 22:37:27 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "generator/soe";    Description: "Secret of Evermore ROM Setup"; Types: full hosting; ExtraDiskSpaceRequired: 3145728; Flags: disablenouninstallwarning
							 
						 
					
						
							
								
									
										
										
										
											2022-12-12 02:36:18 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "generator/l2ac";   Description: "Lufia II Ancient Cave ROM Setup"; Types: full hosting; ExtraDiskSpaceRequired: 2621440; Flags: disablenouninstallwarning
							 
						 
					
						
							
								
									
										
										
										
											2021-11-14 22:37:27 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "generator/lttp";   Description: "A Link to the Past ROM Setup and Enemizer"; Types: full hosting; ExtraDiskSpaceRequired: 5191680
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Name: "generator/oot";    Description: "Ocarina of Time ROM Setup"; Types: full hosting; ExtraDiskSpaceRequired: 100663296; Flags: disablenouninstallwarning
							 
						 
					
						
							
								
									
										
										
										
											2022-10-20 10:41:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "generator/zl";     Description: "Zillion ROM Setup"; Types: full hosting; ExtraDiskSpaceRequired: 150000; Flags: disablenouninstallwarning
							 
						 
					
						
							
								
									
										
										
										
											2022-10-13 01:45:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "generator/pkmn_r"; Description: "Pokemon Red ROM Setup"; Types: full hosting
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Name: "generator/pkmn_b"; Description: "Pokemon Blue ROM Setup"; Types: full hosting
							 
						 
					
						
							
								
									
										
											 
										
											
												Mega Man Battle Network 3: Implement New Game (#1198)
* Initializes MMBN3 world with empty files
* Adds item names to item dict
* Adds locations and names
* Adds skeleton of MMBN3Client. Mostly copy pasta from OOT
* Fixed some style and formatting
* More incremental Lua tests
* Adds all locations and checking to Lua connector
* Made class definitions for TextPet Parser
* Begun connecting item delivery system through lua and textpet
* Lua Connection can now send test items
* Item Delivery is now parameterized. Test command can send any chip
* Adds the ability to send non-chip items
* Fixes name errors in python client
* Fixes count for zenny, attempts to fix bugfrags
* Fixes an issue where you always received 255 bugfrags
* Converts zenny and bugfrag amounts to little endian bytecode
* Checks game state before sending chips
Adds debug option to display information overlayed on rom
Fixes chip indexing issue for chips with ids over 255
Minor text fixes
* Adds in some animation reset instructions during item get message
* Stores previously collected item index in save, re-sends missing items
* Adds title screen check before sending locations
Loading items from save could not be done via RAM. Had to be added in
assembly
* Adds progressive undernet check
* Added library for lzss decoding bits of rom
* More progress on parsing text events from ROM
* Adds a way to inject messages into ScriptArchive data structure and generate bytecode
* Adds Item definitions, passes to client
* Adds regions and item collection rules
* Touched up a few names and values that have changed in preparation for the final patching
* Modifying messages via item is now successful
* Added generate_output hook to generate ROM data
* Generates ROM successfully
* Fixes navi cust give index
* Whoops forgot to wrap this in brackets
* Injects extra scripts for undernet rankings
* Programs had ammount and color swapped
* Prompts the user for their username when connecting
* Adds flagClear to the list of commands to avoid overwriting
* Fixes message box crashes and several other multiworld issues
* Fixes IDs and names of several items and locations
* Added .gba to gitignore
* Fixes compatibility after recent rebase
* Fixes some locations and items that are otherwise unobtainable
* Attempts to make a working launcher in the installer
* Creates installer and fixes several inaccessible locations
* Many minor changes to items, locations, and requirements made during testing
* Adds an info page for MMBN3
* Fixes failing tests by removing duplicate IDs and properly marking progression items
* Accidentally forgot to un-remove the thing
* Whoops, changed this by accident
* Updates self.world references to self.multiworld
* Fixes imports to use from imports instead of using the namespace
* Removed some leftover merge artifacts from inno setup
* Puts back that darned signtool line again
* Adds Overworld Metro keys as items
* Adds TamaCode and puts shortcuts behind cyber passes
* Fixes Numberman code 16 check
* Fixes metro access logic and adds text to metro
* Reworks Lua to fix crashing when many items are queued
* Items for other BN3 games for different players are no longer given in the main player's ROM as well
* Fixes incorrect Item ID for ACDC Metro
* Fixes multi-box text messages
* Adds timer before sending an item
* Forgot to remove the second box of SubMems
* Updates patch and lua to prevent softlocks and crashes
* Adds options for extra undernet ranks, exclude jobs
* Extra GigFreez now gives 20 bugfrags
* Additional Progressive Undernets can no longer appear on the WWW Base
* Moves item signal byte to empty area of flags instead of end of RAM
* Adds Chocolate Shop locations and navi chips to fill them
* Fixes save crash, and added chocolates to lua
* Fixes chocolate stand selling out text, removes DrillMan cube in Undernet
* Replaces old messaging system with direct memory manipulation for receiving items
* Removes NDSPY requirements from MMBN3 by manually adapting the GBA's lz10 algorithm
* Fixes the names of Hospital-1 Locations
* Adds Canary Bit to avoid sending checks when title screen check fails
* Gaining a cybermetro pass will now open the shortcut immediately
* Randomizes the two accessible areas of Undernet 7, adds Hammer as item
* Adds new locations to connector lua
* Injects the name of the item into trade quests
* Fixes copy-paste error in docs
* Fixes merge artifacts and depracated code
* Nut-wafer stand now faces Lan the right way after buying
* Removes unused Goal Option and updates the readme to include most recent changes
* Touch-ups and formatting changes
* The Great Fillerization update. Dozens of items changed to Filler
* Replaces instances of Mega Man with MegaMan
* Update worlds/mmbn3/docs/en_MegaMan Battle Network 3.md
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Update worlds/mmbn3/__init__.py
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
* Changes code ordering to suit base class's
* assert_generate now checks for roms. Minor text fixes
* Makes player specific frequency and excluded location options
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Addresses suggested changes from PR review
* Replaces ndspy lz10 with MIT-compliant nlzss lz10
* apworld compatibility fix for mmbn3_options from utils
* Addressing more comments by el-u
* APworld will now pull patch from zip folder
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Cleaned up comments for progressive undernet ROM function, moved index list to field to avoid re-initializing
* Removes improper player-indexed location/item dicts, replaces with world member variables
* Avoids redefining list in progressive undernet ROM function
* Filler items can no longer be generated beyond their specified amounts
* Fixes list copying issue with item frequencies
* Adds BN3 Client Generation back into Launcher settings
* Fixes typos causing huge problems
* Fixed non-relative import for apworld
* Removes custom enum implementation that broke pickle
* Displays message when attempting to load an incorrect ROM, will not attempt to patch it
* Filler items can now only be placed once
* Changes path in setup doc to match Lua path changes
* Fixes file extension for MMBN3 file
* Replaces magic number with reference to value in NetUtils
* Moves victory rules to set_rules. Removes commented out code
* Rewrites Lua script to send block of memory
* Fixes off-by-one error in sending bytes for locations
* Fixes issue with invalid characters in text parsing, and WWW monitor text box parsing
* Moves trade text injection to init so it has access to options
* Attempts to split the text boxes for hinted items
* Trade checks now provide hints if the option is set for them
* Fixes escape character issue for BizHawk 2.9.1
Something in Bizhawk lua parsing changed to dislike the escaped tilde.
I'm not even entirely sure why it was escaped in the first place, but
this should fix the compatibility of it.
* Re-adds desk check that it turns out actually does exist
* Updates requirements to mention bizhawk 2.7 instead of 2.3.1
* Fixes off-by-one error in command byte counts
* Fixes program color indices
* Fixes newline PEP violations
* Reverts an accidental whitespace change made to launcher.py
* Fixes URL formatting on link to settings from setup guide
Co-authored-by: Zach Parks <zach@alliware.com>
* Splits several lines in the readme to avoid excessive length
* Fixes formatting and (hopefully) reduces cringe of joke in setup doc
* Removes unnecessary constructor
* Changes item frequency generation to avoid reusing the same references
Co-authored-by: Zach Parks <zach@alliware.com>
---------
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
Co-authored-by: Zach Parks <zach@alliware.com>
											 
										 
										
											2023-06-29 12:36:01 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "generator/mmbn3";  Description: "MegaMan Battle Network 3"; Types: full hosting; ExtraDiskSpaceRequired: 8388608; Flags: disablenouninstallwarning
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 01:26:03 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "generator/ladx";   Description: "Link's Awakening DX ROM Setup"; Types: full hosting
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 10:45:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "generator/tloz";   Description: "The Legend of Zelda ROM Setup"; Types: full hosting; ExtraDiskSpaceRequired: 135168; Flags: disablenouninstallwarning
							 
						 
					
						
							
								
									
										
										
										
											2021-11-14 22:37:27 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "server";           Description: "Server"; Types: full hosting
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Name: "client";           Description: "Clients"; Types: full playing
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Name: "client/sni";       Description: "SNI Client"; Types: full playing
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Name: "client/sni/lttp";  Description: "SNI Client - A Link to the Past Patch Setup"; Types: full playing; Flags: disablenouninstallwarning
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Name: "client/sni/sm";    Description: "SNI Client - Super Metroid Patch Setup"; Types: full playing; Flags: disablenouninstallwarning
							 
						 
					
						
							
								
									
										
										
										
											2022-07-22 01:02:25 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "client/sni/dkc3";  Description: "SNI Client - Donkey Kong Country 3 Patch Setup"; Types: full playing; Flags: disablenouninstallwarning
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 14:16:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "client/sni/smw";   Description: "SNI Client - Super Mario World Patch Setup"; Types: full playing; Flags: disablenouninstallwarning
							 
						 
					
						
							
								
									
										
										
										
											2022-12-12 02:36:18 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "client/sni/l2ac";  Description: "SNI Client - Lufia II Ancient Cave Patch Setup"; Types: full playing; Flags: disablenouninstallwarning
							 
						 
					
						
							
								
									
										
										
										
											2021-11-14 22:37:27 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "client/factorio";  Description: "Factorio"; Types: full playing
							 
						 
					
						
							
								
									
										
										
										
											2023-03-20 18:43:29 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "client/kh2";       Description: "Kingdom Hearts 2"; Types: full playing
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								Name: "client/minecraft"; Description: "Minecraft"; Types: full playing; ExtraDiskSpaceRequired: 226894278
							 
						 
					
						
							
								
									
										
										
										
											2022-03-27 14:44:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "client/oot";       Description: "Ocarina of Time"; Types: full playing
							 
						 
					
						
							
								
									
										
										
										
											2021-12-01 02:47:08 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "client/ff1";       Description: "Final Fantasy 1"; Types: full playing
							 
						 
					
						
							
								
									
										
										
										
											2022-10-13 01:45:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "client/pkmn";      Description: "Pokemon Client"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Name: "client/pkmn/red";  Description: "Pokemon Client - Pokemon Red Setup"; Types: full playing; ExtraDiskSpaceRequired: 1048576
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Name: "client/pkmn/blue"; Description: "Pokemon Client - Pokemon Blue Setup"; Types: full playing; ExtraDiskSpaceRequired: 1048576
							 
						 
					
						
							
								
									
										
											 
										
											
												Mega Man Battle Network 3: Implement New Game (#1198)
* Initializes MMBN3 world with empty files
* Adds item names to item dict
* Adds locations and names
* Adds skeleton of MMBN3Client. Mostly copy pasta from OOT
* Fixed some style and formatting
* More incremental Lua tests
* Adds all locations and checking to Lua connector
* Made class definitions for TextPet Parser
* Begun connecting item delivery system through lua and textpet
* Lua Connection can now send test items
* Item Delivery is now parameterized. Test command can send any chip
* Adds the ability to send non-chip items
* Fixes name errors in python client
* Fixes count for zenny, attempts to fix bugfrags
* Fixes an issue where you always received 255 bugfrags
* Converts zenny and bugfrag amounts to little endian bytecode
* Checks game state before sending chips
Adds debug option to display information overlayed on rom
Fixes chip indexing issue for chips with ids over 255
Minor text fixes
* Adds in some animation reset instructions during item get message
* Stores previously collected item index in save, re-sends missing items
* Adds title screen check before sending locations
Loading items from save could not be done via RAM. Had to be added in
assembly
* Adds progressive undernet check
* Added library for lzss decoding bits of rom
* More progress on parsing text events from ROM
* Adds a way to inject messages into ScriptArchive data structure and generate bytecode
* Adds Item definitions, passes to client
* Adds regions and item collection rules
* Touched up a few names and values that have changed in preparation for the final patching
* Modifying messages via item is now successful
* Added generate_output hook to generate ROM data
* Generates ROM successfully
* Fixes navi cust give index
* Whoops forgot to wrap this in brackets
* Injects extra scripts for undernet rankings
* Programs had ammount and color swapped
* Prompts the user for their username when connecting
* Adds flagClear to the list of commands to avoid overwriting
* Fixes message box crashes and several other multiworld issues
* Fixes IDs and names of several items and locations
* Added .gba to gitignore
* Fixes compatibility after recent rebase
* Fixes some locations and items that are otherwise unobtainable
* Attempts to make a working launcher in the installer
* Creates installer and fixes several inaccessible locations
* Many minor changes to items, locations, and requirements made during testing
* Adds an info page for MMBN3
* Fixes failing tests by removing duplicate IDs and properly marking progression items
* Accidentally forgot to un-remove the thing
* Whoops, changed this by accident
* Updates self.world references to self.multiworld
* Fixes imports to use from imports instead of using the namespace
* Removed some leftover merge artifacts from inno setup
* Puts back that darned signtool line again
* Adds Overworld Metro keys as items
* Adds TamaCode and puts shortcuts behind cyber passes
* Fixes Numberman code 16 check
* Fixes metro access logic and adds text to metro
* Reworks Lua to fix crashing when many items are queued
* Items for other BN3 games for different players are no longer given in the main player's ROM as well
* Fixes incorrect Item ID for ACDC Metro
* Fixes multi-box text messages
* Adds timer before sending an item
* Forgot to remove the second box of SubMems
* Updates patch and lua to prevent softlocks and crashes
* Adds options for extra undernet ranks, exclude jobs
* Extra GigFreez now gives 20 bugfrags
* Additional Progressive Undernets can no longer appear on the WWW Base
* Moves item signal byte to empty area of flags instead of end of RAM
* Adds Chocolate Shop locations and navi chips to fill them
* Fixes save crash, and added chocolates to lua
* Fixes chocolate stand selling out text, removes DrillMan cube in Undernet
* Replaces old messaging system with direct memory manipulation for receiving items
* Removes NDSPY requirements from MMBN3 by manually adapting the GBA's lz10 algorithm
* Fixes the names of Hospital-1 Locations
* Adds Canary Bit to avoid sending checks when title screen check fails
* Gaining a cybermetro pass will now open the shortcut immediately
* Randomizes the two accessible areas of Undernet 7, adds Hammer as item
* Adds new locations to connector lua
* Injects the name of the item into trade quests
* Fixes copy-paste error in docs
* Fixes merge artifacts and depracated code
* Nut-wafer stand now faces Lan the right way after buying
* Removes unused Goal Option and updates the readme to include most recent changes
* Touch-ups and formatting changes
* The Great Fillerization update. Dozens of items changed to Filler
* Replaces instances of Mega Man with MegaMan
* Update worlds/mmbn3/docs/en_MegaMan Battle Network 3.md
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Update worlds/mmbn3/__init__.py
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
* Changes code ordering to suit base class's
* assert_generate now checks for roms. Minor text fixes
* Makes player specific frequency and excluded location options
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Addresses suggested changes from PR review
* Replaces ndspy lz10 with MIT-compliant nlzss lz10
* apworld compatibility fix for mmbn3_options from utils
* Addressing more comments by el-u
* APworld will now pull patch from zip folder
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Cleaned up comments for progressive undernet ROM function, moved index list to field to avoid re-initializing
* Removes improper player-indexed location/item dicts, replaces with world member variables
* Avoids redefining list in progressive undernet ROM function
* Filler items can no longer be generated beyond their specified amounts
* Fixes list copying issue with item frequencies
* Adds BN3 Client Generation back into Launcher settings
* Fixes typos causing huge problems
* Fixed non-relative import for apworld
* Removes custom enum implementation that broke pickle
* Displays message when attempting to load an incorrect ROM, will not attempt to patch it
* Filler items can now only be placed once
* Changes path in setup doc to match Lua path changes
* Fixes file extension for MMBN3 file
* Replaces magic number with reference to value in NetUtils
* Moves victory rules to set_rules. Removes commented out code
* Rewrites Lua script to send block of memory
* Fixes off-by-one error in sending bytes for locations
* Fixes issue with invalid characters in text parsing, and WWW monitor text box parsing
* Moves trade text injection to init so it has access to options
* Attempts to split the text boxes for hinted items
* Trade checks now provide hints if the option is set for them
* Fixes escape character issue for BizHawk 2.9.1
Something in Bizhawk lua parsing changed to dislike the escaped tilde.
I'm not even entirely sure why it was escaped in the first place, but
this should fix the compatibility of it.
* Re-adds desk check that it turns out actually does exist
* Updates requirements to mention bizhawk 2.7 instead of 2.3.1
* Fixes off-by-one error in command byte counts
* Fixes program color indices
* Fixes newline PEP violations
* Reverts an accidental whitespace change made to launcher.py
* Fixes URL formatting on link to settings from setup guide
Co-authored-by: Zach Parks <zach@alliware.com>
* Splits several lines in the readme to avoid excessive length
* Fixes formatting and (hopefully) reduces cringe of joke in setup doc
* Removes unnecessary constructor
* Changes item frequency generation to avoid reusing the same references
Co-authored-by: Zach Parks <zach@alliware.com>
---------
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
Co-authored-by: Zach Parks <zach@alliware.com>
											 
										 
										
											2023-06-29 12:36:01 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "client/mmbn3";     Description: "MegaMan Battle Network 3 Client"; Types: full playing;
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 01:26:03 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "client/ladx";      Description: "Link's Awakening Client"; Types: full playing; ExtraDiskSpaceRequired: 1048576
							 
						 
					
						
							
								
									
										
										
										
											2022-04-01 01:55:06 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "client/cf";        Description: "ChecksFinder"; Types: full playing
							 
						 
					
						
							
								
									
										
										
										
											2022-05-18 17:27:38 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "client/sc2";       Description: "Starcraft 2"; Types: full playing
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 09:18:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "client/wargroove"; Description: "Wargroove"; Types: full playing
							 
						 
					
						
							
								
									
										
										
										
											2022-10-20 10:41:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "client/zl";        Description: "Zillion"; Types: full playing
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 10:45:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "client/tloz";      Description: "The Legend of Zelda"; Types: full playing
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 07:25:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "client/advn";      Description: "Adventure"; Types: full playing
							 
						 
					
						
							
								
									
										
										
										
											2023-06-26 22:35:41 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "client/ut";        Description: "Undertale"; Types: full playing
							 
						 
					
						
							
								
									
										
										
										
											2021-11-14 22:37:27 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "client/text";      Description: "Text, to !command and chat"; Types: full playing
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[Dirs]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								NAME: "{app}"; Flags: setntfscompression; Permissions: everyone-modify users-modify authusers-modify;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[Files]
							 
						 
					
						
							
								
									
										
										
										
											2021-11-12 23:43:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{code:GetROMPath}"; DestDir: "{app}"; DestName: "Zelda no Densetsu - Kamigami no Triforce (Japan).sfc"; Flags: external; Components: client/sni/lttp or generator/lttp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Source: "{code:GetSMROMPath}"; DestDir: "{app}"; DestName: "Super Metroid (JU).sfc"; Flags: external; Components: client/sni/sm or generator/sm
							 
						 
					
						
							
								
									
										
										
										
											2022-07-22 01:02:25 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{code:GetDKC3ROMPath}"; DestDir: "{app}"; DestName: "Donkey Kong Country 3 - Dixie Kong's Double Trouble! (USA) (En,Fr).sfc"; Flags: external; Components: client/sni/dkc3 or generator/dkc3
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 14:16:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{code:GetSMWROMPath}"; DestDir: "{app}"; DestName: "Super Mario World (USA).sfc"; Flags: external; Components: client/sni/smw or generator/smw
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 03:33:25 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{code:GetSoEROMPath}"; DestDir: "{app}"; DestName: "Secret of Evermore (USA).sfc"; Flags: external; Components: generator/soe
							 
						 
					
						
							
								
									
										
										
										
											2022-12-12 02:36:18 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{code:GetL2ACROMPath}"; DestDir: "{app}"; DestName: "Lufia II - Rise of the Sinistrals (USA).sfc"; Flags: external; Components: generator/l2ac
							 
						 
					
						
							
								
									
										
										
										
											2022-03-27 14:44:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{code:GetOoTROMPath}"; DestDir: "{app}"; DestName: "The Legend of Zelda - Ocarina of Time.z64"; Flags: external; Components: client/oot or generator/oot
							 
						 
					
						
							
								
									
										
										
										
											2022-10-20 10:41:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{code:GetZlROMPath}"; DestDir: "{app}"; DestName: "Zillion (UE) [!].sms"; Flags: external; Components: client/zl or generator/zl
							 
						 
					
						
							
								
									
										
										
										
											2022-10-13 01:45:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{code:GetRedROMPath}"; DestDir: "{app}"; DestName: "Pokemon Red (UE) [S][!].gb"; Flags: external; Components: client/pkmn/red or generator/pkmn_r
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Source: "{code:GetBlueROMPath}"; DestDir: "{app}"; DestName: "Pokemon Blue (UE) [S][!].gb"; Flags: external; Components: client/pkmn/blue or generator/pkmn_b
							 
						 
					
						
							
								
									
										
											 
										
											
												Mega Man Battle Network 3: Implement New Game (#1198)
* Initializes MMBN3 world with empty files
* Adds item names to item dict
* Adds locations and names
* Adds skeleton of MMBN3Client. Mostly copy pasta from OOT
* Fixed some style and formatting
* More incremental Lua tests
* Adds all locations and checking to Lua connector
* Made class definitions for TextPet Parser
* Begun connecting item delivery system through lua and textpet
* Lua Connection can now send test items
* Item Delivery is now parameterized. Test command can send any chip
* Adds the ability to send non-chip items
* Fixes name errors in python client
* Fixes count for zenny, attempts to fix bugfrags
* Fixes an issue where you always received 255 bugfrags
* Converts zenny and bugfrag amounts to little endian bytecode
* Checks game state before sending chips
Adds debug option to display information overlayed on rom
Fixes chip indexing issue for chips with ids over 255
Minor text fixes
* Adds in some animation reset instructions during item get message
* Stores previously collected item index in save, re-sends missing items
* Adds title screen check before sending locations
Loading items from save could not be done via RAM. Had to be added in
assembly
* Adds progressive undernet check
* Added library for lzss decoding bits of rom
* More progress on parsing text events from ROM
* Adds a way to inject messages into ScriptArchive data structure and generate bytecode
* Adds Item definitions, passes to client
* Adds regions and item collection rules
* Touched up a few names and values that have changed in preparation for the final patching
* Modifying messages via item is now successful
* Added generate_output hook to generate ROM data
* Generates ROM successfully
* Fixes navi cust give index
* Whoops forgot to wrap this in brackets
* Injects extra scripts for undernet rankings
* Programs had ammount and color swapped
* Prompts the user for their username when connecting
* Adds flagClear to the list of commands to avoid overwriting
* Fixes message box crashes and several other multiworld issues
* Fixes IDs and names of several items and locations
* Added .gba to gitignore
* Fixes compatibility after recent rebase
* Fixes some locations and items that are otherwise unobtainable
* Attempts to make a working launcher in the installer
* Creates installer and fixes several inaccessible locations
* Many minor changes to items, locations, and requirements made during testing
* Adds an info page for MMBN3
* Fixes failing tests by removing duplicate IDs and properly marking progression items
* Accidentally forgot to un-remove the thing
* Whoops, changed this by accident
* Updates self.world references to self.multiworld
* Fixes imports to use from imports instead of using the namespace
* Removed some leftover merge artifacts from inno setup
* Puts back that darned signtool line again
* Adds Overworld Metro keys as items
* Adds TamaCode and puts shortcuts behind cyber passes
* Fixes Numberman code 16 check
* Fixes metro access logic and adds text to metro
* Reworks Lua to fix crashing when many items are queued
* Items for other BN3 games for different players are no longer given in the main player's ROM as well
* Fixes incorrect Item ID for ACDC Metro
* Fixes multi-box text messages
* Adds timer before sending an item
* Forgot to remove the second box of SubMems
* Updates patch and lua to prevent softlocks and crashes
* Adds options for extra undernet ranks, exclude jobs
* Extra GigFreez now gives 20 bugfrags
* Additional Progressive Undernets can no longer appear on the WWW Base
* Moves item signal byte to empty area of flags instead of end of RAM
* Adds Chocolate Shop locations and navi chips to fill them
* Fixes save crash, and added chocolates to lua
* Fixes chocolate stand selling out text, removes DrillMan cube in Undernet
* Replaces old messaging system with direct memory manipulation for receiving items
* Removes NDSPY requirements from MMBN3 by manually adapting the GBA's lz10 algorithm
* Fixes the names of Hospital-1 Locations
* Adds Canary Bit to avoid sending checks when title screen check fails
* Gaining a cybermetro pass will now open the shortcut immediately
* Randomizes the two accessible areas of Undernet 7, adds Hammer as item
* Adds new locations to connector lua
* Injects the name of the item into trade quests
* Fixes copy-paste error in docs
* Fixes merge artifacts and depracated code
* Nut-wafer stand now faces Lan the right way after buying
* Removes unused Goal Option and updates the readme to include most recent changes
* Touch-ups and formatting changes
* The Great Fillerization update. Dozens of items changed to Filler
* Replaces instances of Mega Man with MegaMan
* Update worlds/mmbn3/docs/en_MegaMan Battle Network 3.md
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Update worlds/mmbn3/__init__.py
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
* Changes code ordering to suit base class's
* assert_generate now checks for roms. Minor text fixes
* Makes player specific frequency and excluded location options
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Addresses suggested changes from PR review
* Replaces ndspy lz10 with MIT-compliant nlzss lz10
* apworld compatibility fix for mmbn3_options from utils
* Addressing more comments by el-u
* APworld will now pull patch from zip folder
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Cleaned up comments for progressive undernet ROM function, moved index list to field to avoid re-initializing
* Removes improper player-indexed location/item dicts, replaces with world member variables
* Avoids redefining list in progressive undernet ROM function
* Filler items can no longer be generated beyond their specified amounts
* Fixes list copying issue with item frequencies
* Adds BN3 Client Generation back into Launcher settings
* Fixes typos causing huge problems
* Fixed non-relative import for apworld
* Removes custom enum implementation that broke pickle
* Displays message when attempting to load an incorrect ROM, will not attempt to patch it
* Filler items can now only be placed once
* Changes path in setup doc to match Lua path changes
* Fixes file extension for MMBN3 file
* Replaces magic number with reference to value in NetUtils
* Moves victory rules to set_rules. Removes commented out code
* Rewrites Lua script to send block of memory
* Fixes off-by-one error in sending bytes for locations
* Fixes issue with invalid characters in text parsing, and WWW monitor text box parsing
* Moves trade text injection to init so it has access to options
* Attempts to split the text boxes for hinted items
* Trade checks now provide hints if the option is set for them
* Fixes escape character issue for BizHawk 2.9.1
Something in Bizhawk lua parsing changed to dislike the escaped tilde.
I'm not even entirely sure why it was escaped in the first place, but
this should fix the compatibility of it.
* Re-adds desk check that it turns out actually does exist
* Updates requirements to mention bizhawk 2.7 instead of 2.3.1
* Fixes off-by-one error in command byte counts
* Fixes program color indices
* Fixes newline PEP violations
* Reverts an accidental whitespace change made to launcher.py
* Fixes URL formatting on link to settings from setup guide
Co-authored-by: Zach Parks <zach@alliware.com>
* Splits several lines in the readme to avoid excessive length
* Fixes formatting and (hopefully) reduces cringe of joke in setup doc
* Removes unnecessary constructor
* Changes item frequency generation to avoid reusing the same references
Co-authored-by: Zach Parks <zach@alliware.com>
---------
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
Co-authored-by: Zach Parks <zach@alliware.com>
											 
										 
										
											2023-06-29 12:36:01 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{code:GetBN3ROMPath}"; DestDir: "{app}"; DestName: "Mega Man Battle Network 3 - Blue Version (USA).gba"; Flags: external; Components: client/mmbn3
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 01:26:03 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{code:GetLADXROMPath}"; DestDir: "{app}"; DestName: "Legend of Zelda, The - Link's Awakening DX (USA, Europe) (SGB Enhanced).gbc"; Flags: external; Components: client/ladx or generator/ladx
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 10:45:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{code:GetTLoZROMPath}"; DestDir: "{app}"; DestName: "Legend of Zelda, The (U) (PRG0) [!].nes"; Flags: external; Components: client/tloz or generator/tloz
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 07:25:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{code:GetAdvnROMPath}"; DestDir: "{app}"; DestName: "ADVNTURE.BIN"; Flags: external; Components: client/advn
							 
						 
					
						
							
								
									
										
										
										
											2022-01-21 08:39:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{#source_path}\*"; Excludes: "*.sfc, *.log, data\sprites\alttpr, SNI, EnemizerCLI, Archipelago*.exe"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Source: "{#source_path}\SNI\*"; Excludes: "*.sfc, *.log"; DestDir: "{app}\SNI"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: client/sni
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Source: "{#source_path}\EnemizerCLI\*"; Excludes: "*.sfc, *.log"; DestDir: "{app}\EnemizerCLI"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: generator/lttp
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-20 21:24:47 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoLauncher.exe"; DestDir: "{app}"; Flags: ignoreversion;
							 
						 
					
						
							
								
									
										
										
										
											2022-01-21 08:39:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoGenerate.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: generator
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoServer.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: server
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoFactorioClient.exe";  DestDir: "{app}"; Flags: ignoreversion; Components: client/factorio
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoTextClient.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: client/text
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoSNIClient.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: client/sni
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 10:19:29 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoLinksAwakeningClient.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: client/ladx
							 
						 
					
						
							
								
									
										
										
										
											2022-01-21 08:39:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoLttPAdjuster.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: client/sni/lttp or generator/lttp
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoMinecraftClient.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: client/minecraft
							 
						 
					
						
							
								
									
										
										
										
											2022-03-27 14:44:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoOoTClient.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: client/oot
							 
						 
					
						
							
								
									
										
										
										
											2022-01-21 08:39:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoOoTAdjuster.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: client/oot
							 
						 
					
						
							
								
									
										
										
										
											2022-10-20 10:41:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoZillionClient.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: client/zl
							 
						 
					
						
							
								
									
										
										
										
											2022-01-21 08:39:42 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoFF1Client.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: client/ff1
							 
						 
					
						
							
								
									
										
										
										
											2022-10-13 01:45:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoPokemonClient.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: client/pkmn
							 
						 
					
						
							
								
									
										
										
										
											2022-04-01 01:55:06 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoChecksFinderClient.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: client/cf
							 
						 
					
						
							
								
									
										
										
										
											2022-05-18 17:27:38 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoStarcraft2Client.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: client/sc2
							 
						 
					
						
							
								
									
										
											 
										
											
												Mega Man Battle Network 3: Implement New Game (#1198)
* Initializes MMBN3 world with empty files
* Adds item names to item dict
* Adds locations and names
* Adds skeleton of MMBN3Client. Mostly copy pasta from OOT
* Fixed some style and formatting
* More incremental Lua tests
* Adds all locations and checking to Lua connector
* Made class definitions for TextPet Parser
* Begun connecting item delivery system through lua and textpet
* Lua Connection can now send test items
* Item Delivery is now parameterized. Test command can send any chip
* Adds the ability to send non-chip items
* Fixes name errors in python client
* Fixes count for zenny, attempts to fix bugfrags
* Fixes an issue where you always received 255 bugfrags
* Converts zenny and bugfrag amounts to little endian bytecode
* Checks game state before sending chips
Adds debug option to display information overlayed on rom
Fixes chip indexing issue for chips with ids over 255
Minor text fixes
* Adds in some animation reset instructions during item get message
* Stores previously collected item index in save, re-sends missing items
* Adds title screen check before sending locations
Loading items from save could not be done via RAM. Had to be added in
assembly
* Adds progressive undernet check
* Added library for lzss decoding bits of rom
* More progress on parsing text events from ROM
* Adds a way to inject messages into ScriptArchive data structure and generate bytecode
* Adds Item definitions, passes to client
* Adds regions and item collection rules
* Touched up a few names and values that have changed in preparation for the final patching
* Modifying messages via item is now successful
* Added generate_output hook to generate ROM data
* Generates ROM successfully
* Fixes navi cust give index
* Whoops forgot to wrap this in brackets
* Injects extra scripts for undernet rankings
* Programs had ammount and color swapped
* Prompts the user for their username when connecting
* Adds flagClear to the list of commands to avoid overwriting
* Fixes message box crashes and several other multiworld issues
* Fixes IDs and names of several items and locations
* Added .gba to gitignore
* Fixes compatibility after recent rebase
* Fixes some locations and items that are otherwise unobtainable
* Attempts to make a working launcher in the installer
* Creates installer and fixes several inaccessible locations
* Many minor changes to items, locations, and requirements made during testing
* Adds an info page for MMBN3
* Fixes failing tests by removing duplicate IDs and properly marking progression items
* Accidentally forgot to un-remove the thing
* Whoops, changed this by accident
* Updates self.world references to self.multiworld
* Fixes imports to use from imports instead of using the namespace
* Removed some leftover merge artifacts from inno setup
* Puts back that darned signtool line again
* Adds Overworld Metro keys as items
* Adds TamaCode and puts shortcuts behind cyber passes
* Fixes Numberman code 16 check
* Fixes metro access logic and adds text to metro
* Reworks Lua to fix crashing when many items are queued
* Items for other BN3 games for different players are no longer given in the main player's ROM as well
* Fixes incorrect Item ID for ACDC Metro
* Fixes multi-box text messages
* Adds timer before sending an item
* Forgot to remove the second box of SubMems
* Updates patch and lua to prevent softlocks and crashes
* Adds options for extra undernet ranks, exclude jobs
* Extra GigFreez now gives 20 bugfrags
* Additional Progressive Undernets can no longer appear on the WWW Base
* Moves item signal byte to empty area of flags instead of end of RAM
* Adds Chocolate Shop locations and navi chips to fill them
* Fixes save crash, and added chocolates to lua
* Fixes chocolate stand selling out text, removes DrillMan cube in Undernet
* Replaces old messaging system with direct memory manipulation for receiving items
* Removes NDSPY requirements from MMBN3 by manually adapting the GBA's lz10 algorithm
* Fixes the names of Hospital-1 Locations
* Adds Canary Bit to avoid sending checks when title screen check fails
* Gaining a cybermetro pass will now open the shortcut immediately
* Randomizes the two accessible areas of Undernet 7, adds Hammer as item
* Adds new locations to connector lua
* Injects the name of the item into trade quests
* Fixes copy-paste error in docs
* Fixes merge artifacts and depracated code
* Nut-wafer stand now faces Lan the right way after buying
* Removes unused Goal Option and updates the readme to include most recent changes
* Touch-ups and formatting changes
* The Great Fillerization update. Dozens of items changed to Filler
* Replaces instances of Mega Man with MegaMan
* Update worlds/mmbn3/docs/en_MegaMan Battle Network 3.md
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Update worlds/mmbn3/__init__.py
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
* Changes code ordering to suit base class's
* assert_generate now checks for roms. Minor text fixes
* Makes player specific frequency and excluded location options
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Addresses suggested changes from PR review
* Replaces ndspy lz10 with MIT-compliant nlzss lz10
* apworld compatibility fix for mmbn3_options from utils
* Addressing more comments by el-u
* APworld will now pull patch from zip folder
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Cleaned up comments for progressive undernet ROM function, moved index list to field to avoid re-initializing
* Removes improper player-indexed location/item dicts, replaces with world member variables
* Avoids redefining list in progressive undernet ROM function
* Filler items can no longer be generated beyond their specified amounts
* Fixes list copying issue with item frequencies
* Adds BN3 Client Generation back into Launcher settings
* Fixes typos causing huge problems
* Fixed non-relative import for apworld
* Removes custom enum implementation that broke pickle
* Displays message when attempting to load an incorrect ROM, will not attempt to patch it
* Filler items can now only be placed once
* Changes path in setup doc to match Lua path changes
* Fixes file extension for MMBN3 file
* Replaces magic number with reference to value in NetUtils
* Moves victory rules to set_rules. Removes commented out code
* Rewrites Lua script to send block of memory
* Fixes off-by-one error in sending bytes for locations
* Fixes issue with invalid characters in text parsing, and WWW monitor text box parsing
* Moves trade text injection to init so it has access to options
* Attempts to split the text boxes for hinted items
* Trade checks now provide hints if the option is set for them
* Fixes escape character issue for BizHawk 2.9.1
Something in Bizhawk lua parsing changed to dislike the escaped tilde.
I'm not even entirely sure why it was escaped in the first place, but
this should fix the compatibility of it.
* Re-adds desk check that it turns out actually does exist
* Updates requirements to mention bizhawk 2.7 instead of 2.3.1
* Fixes off-by-one error in command byte counts
* Fixes program color indices
* Fixes newline PEP violations
* Reverts an accidental whitespace change made to launcher.py
* Fixes URL formatting on link to settings from setup guide
Co-authored-by: Zach Parks <zach@alliware.com>
* Splits several lines in the readme to avoid excessive length
* Fixes formatting and (hopefully) reduces cringe of joke in setup doc
* Removes unnecessary constructor
* Changes item frequency generation to avoid reusing the same references
Co-authored-by: Zach Parks <zach@alliware.com>
---------
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
Co-authored-by: Zach Parks <zach@alliware.com>
											 
										 
										
											2023-06-29 12:36:01 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoMMBN3Client.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: client/mmbn3
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 10:45:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoZelda1Client.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: client/tloz
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 09:18:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoWargrooveClient.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: client/wargroove
							 
						 
					
						
							
								
									
										
										
										
											2023-03-20 18:43:29 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoKH2Client.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: client/kh2
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 07:25:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoAdventureClient.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: client/advn
							 
						 
					
						
							
								
									
										
										
										
											2023-06-26 22:35:41 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Source: "{#source_path}\ArchipelagoUndertaleClient.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: client/ut
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								Source: "vc_redist.x64.exe"; DestDir: {tmp}; Flags: deleteafterinstall
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[Icons]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Name: "{group}\{#MyAppName} Folder"; Filename: "{app}";
							 
						 
					
						
							
								
									
										
										
										
											2023-07-13 20:48:38 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{group}\{#MyAppName} Launcher"; Filename: "{app}\ArchipelagoLauncher.exe"
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								Name: "{group}\{#MyAppName} Server"; Filename: "{app}\{#MyAppExeName}"; Components: server
							 
						 
					
						
							
								
									
										
										
										
											2021-11-12 23:43:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{group}\{#MyAppName} Text Client"; Filename: "{app}\ArchipelagoTextClient.exe"; Components: client/text
							 
						 
					
						
							
								
									
										
										
										
											2021-11-12 23:47:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{group}\{#MyAppName} SNI Client"; Filename: "{app}\ArchipelagoSNIClient.exe"; Components: client/sni
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								Name: "{group}\{#MyAppName} Factorio Client"; Filename: "{app}\ArchipelagoFactorioClient.exe"; Components: client/factorio
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Name: "{group}\{#MyAppName} Minecraft Client"; Filename: "{app}\ArchipelagoMinecraftClient.exe"; Components: client/minecraft
							 
						 
					
						
							
								
									
										
										
										
											2022-03-27 14:44:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{group}\{#MyAppName} Ocarina of Time Client"; Filename: "{app}\ArchipelagoOoTClient.exe"; Components: client/oot
							 
						 
					
						
							
								
									
										
										
										
											2022-10-20 10:41:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{group}\{#MyAppName} Zillion Client"; Filename: "{app}\ArchipelagoZillionClient.exe"; Components: client/zl
							 
						 
					
						
							
								
									
										
										
										
											2021-12-01 02:47:08 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{group}\{#MyAppName} Final Fantasy 1 Client"; Filename: "{app}\ArchipelagoFF1Client.exe"; Components: client/ff1
							 
						 
					
						
							
								
									
										
										
										
											2022-10-13 01:45:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{group}\{#MyAppName} Pokemon Client"; Filename: "{app}\ArchipelagoPokemonClient.exe"; Components: client/pkmn
							 
						 
					
						
							
								
									
										
										
										
											2022-04-01 01:55:06 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{group}\{#MyAppName} ChecksFinder Client"; Filename: "{app}\ArchipelagoChecksFinderClient.exe"; Components: client/cf
							 
						 
					
						
							
								
									
										
										
										
											2022-05-18 17:27:38 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{group}\{#MyAppName} Starcraft 2 Client"; Filename: "{app}\ArchipelagoStarcraft2Client.exe"; Components: client/sc2
							 
						 
					
						
							
								
									
										
											 
										
											
												Mega Man Battle Network 3: Implement New Game (#1198)
* Initializes MMBN3 world with empty files
* Adds item names to item dict
* Adds locations and names
* Adds skeleton of MMBN3Client. Mostly copy pasta from OOT
* Fixed some style and formatting
* More incremental Lua tests
* Adds all locations and checking to Lua connector
* Made class definitions for TextPet Parser
* Begun connecting item delivery system through lua and textpet
* Lua Connection can now send test items
* Item Delivery is now parameterized. Test command can send any chip
* Adds the ability to send non-chip items
* Fixes name errors in python client
* Fixes count for zenny, attempts to fix bugfrags
* Fixes an issue where you always received 255 bugfrags
* Converts zenny and bugfrag amounts to little endian bytecode
* Checks game state before sending chips
Adds debug option to display information overlayed on rom
Fixes chip indexing issue for chips with ids over 255
Minor text fixes
* Adds in some animation reset instructions during item get message
* Stores previously collected item index in save, re-sends missing items
* Adds title screen check before sending locations
Loading items from save could not be done via RAM. Had to be added in
assembly
* Adds progressive undernet check
* Added library for lzss decoding bits of rom
* More progress on parsing text events from ROM
* Adds a way to inject messages into ScriptArchive data structure and generate bytecode
* Adds Item definitions, passes to client
* Adds regions and item collection rules
* Touched up a few names and values that have changed in preparation for the final patching
* Modifying messages via item is now successful
* Added generate_output hook to generate ROM data
* Generates ROM successfully
* Fixes navi cust give index
* Whoops forgot to wrap this in brackets
* Injects extra scripts for undernet rankings
* Programs had ammount and color swapped
* Prompts the user for their username when connecting
* Adds flagClear to the list of commands to avoid overwriting
* Fixes message box crashes and several other multiworld issues
* Fixes IDs and names of several items and locations
* Added .gba to gitignore
* Fixes compatibility after recent rebase
* Fixes some locations and items that are otherwise unobtainable
* Attempts to make a working launcher in the installer
* Creates installer and fixes several inaccessible locations
* Many minor changes to items, locations, and requirements made during testing
* Adds an info page for MMBN3
* Fixes failing tests by removing duplicate IDs and properly marking progression items
* Accidentally forgot to un-remove the thing
* Whoops, changed this by accident
* Updates self.world references to self.multiworld
* Fixes imports to use from imports instead of using the namespace
* Removed some leftover merge artifacts from inno setup
* Puts back that darned signtool line again
* Adds Overworld Metro keys as items
* Adds TamaCode and puts shortcuts behind cyber passes
* Fixes Numberman code 16 check
* Fixes metro access logic and adds text to metro
* Reworks Lua to fix crashing when many items are queued
* Items for other BN3 games for different players are no longer given in the main player's ROM as well
* Fixes incorrect Item ID for ACDC Metro
* Fixes multi-box text messages
* Adds timer before sending an item
* Forgot to remove the second box of SubMems
* Updates patch and lua to prevent softlocks and crashes
* Adds options for extra undernet ranks, exclude jobs
* Extra GigFreez now gives 20 bugfrags
* Additional Progressive Undernets can no longer appear on the WWW Base
* Moves item signal byte to empty area of flags instead of end of RAM
* Adds Chocolate Shop locations and navi chips to fill them
* Fixes save crash, and added chocolates to lua
* Fixes chocolate stand selling out text, removes DrillMan cube in Undernet
* Replaces old messaging system with direct memory manipulation for receiving items
* Removes NDSPY requirements from MMBN3 by manually adapting the GBA's lz10 algorithm
* Fixes the names of Hospital-1 Locations
* Adds Canary Bit to avoid sending checks when title screen check fails
* Gaining a cybermetro pass will now open the shortcut immediately
* Randomizes the two accessible areas of Undernet 7, adds Hammer as item
* Adds new locations to connector lua
* Injects the name of the item into trade quests
* Fixes copy-paste error in docs
* Fixes merge artifacts and depracated code
* Nut-wafer stand now faces Lan the right way after buying
* Removes unused Goal Option and updates the readme to include most recent changes
* Touch-ups and formatting changes
* The Great Fillerization update. Dozens of items changed to Filler
* Replaces instances of Mega Man with MegaMan
* Update worlds/mmbn3/docs/en_MegaMan Battle Network 3.md
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Update worlds/mmbn3/__init__.py
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
* Changes code ordering to suit base class's
* assert_generate now checks for roms. Minor text fixes
* Makes player specific frequency and excluded location options
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Addresses suggested changes from PR review
* Replaces ndspy lz10 with MIT-compliant nlzss lz10
* apworld compatibility fix for mmbn3_options from utils
* Addressing more comments by el-u
* APworld will now pull patch from zip folder
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Cleaned up comments for progressive undernet ROM function, moved index list to field to avoid re-initializing
* Removes improper player-indexed location/item dicts, replaces with world member variables
* Avoids redefining list in progressive undernet ROM function
* Filler items can no longer be generated beyond their specified amounts
* Fixes list copying issue with item frequencies
* Adds BN3 Client Generation back into Launcher settings
* Fixes typos causing huge problems
* Fixed non-relative import for apworld
* Removes custom enum implementation that broke pickle
* Displays message when attempting to load an incorrect ROM, will not attempt to patch it
* Filler items can now only be placed once
* Changes path in setup doc to match Lua path changes
* Fixes file extension for MMBN3 file
* Replaces magic number with reference to value in NetUtils
* Moves victory rules to set_rules. Removes commented out code
* Rewrites Lua script to send block of memory
* Fixes off-by-one error in sending bytes for locations
* Fixes issue with invalid characters in text parsing, and WWW monitor text box parsing
* Moves trade text injection to init so it has access to options
* Attempts to split the text boxes for hinted items
* Trade checks now provide hints if the option is set for them
* Fixes escape character issue for BizHawk 2.9.1
Something in Bizhawk lua parsing changed to dislike the escaped tilde.
I'm not even entirely sure why it was escaped in the first place, but
this should fix the compatibility of it.
* Re-adds desk check that it turns out actually does exist
* Updates requirements to mention bizhawk 2.7 instead of 2.3.1
* Fixes off-by-one error in command byte counts
* Fixes program color indices
* Fixes newline PEP violations
* Reverts an accidental whitespace change made to launcher.py
* Fixes URL formatting on link to settings from setup guide
Co-authored-by: Zach Parks <zach@alliware.com>
* Splits several lines in the readme to avoid excessive length
* Fixes formatting and (hopefully) reduces cringe of joke in setup doc
* Removes unnecessary constructor
* Changes item frequency generation to avoid reusing the same references
Co-authored-by: Zach Parks <zach@alliware.com>
---------
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
Co-authored-by: Zach Parks <zach@alliware.com>
											 
										 
										
											2023-06-29 12:36:01 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{group}\{#MyAppName} MegaMan Battle Network 3 Client"; Filename: "{app}\ArchipelagoMMBN3Client.exe"; Components: client/mmbn3
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 10:45:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{group}\{#MyAppName} The Legend of Zelda Client"; Filename: "{app}\ArchipelagoZelda1Client.exe"; Components: client/tloz
							 
						 
					
						
							
								
									
										
										
										
											2023-03-20 18:43:29 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{group}\{#MyAppName} Kingdom Hearts 2 Client"; Filename: "{app}\ArchipelagoKH2Client.exe"; Components: client/kh2
							 
						 
					
						
							
								
									
										
										
										
											2023-07-13 20:48:38 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{group}\{#MyAppName} Link's Awakening Client"; Filename: "{app}\ArchipelagoLinksAwakeningClient.exe"; Components: client/ladx
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 07:25:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{group}\{#MyAppName} Adventure Client"; Filename: "{app}\ArchipelagoAdventureClient.exe"; Components: client/advn
							 
						 
					
						
							
								
									
										
										
										
											2023-04-05 01:07:15 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{group}\{#MyAppName} Wargroove Client"; Filename: "{app}\ArchipelagoWargrooveClient.exe"; Components: client/wargroove
							 
						 
					
						
							
								
									
										
										
										
											2023-06-26 22:35:41 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{group}\{#MyAppName} Undertale Client"; Filename: "{app}\ArchipelagoUndertaleClient.exe"; Components: client/ut
							 
						 
					
						
							
								
									
										
										
										
											2021-12-01 02:47:08 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								Name: "{commondesktop}\{#MyAppName} Folder"; Filename: "{app}"; Tasks: desktopicon
							 
						 
					
						
							
								
									
										
										
										
											2023-07-13 20:48:38 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{commondesktop}\{#MyAppName} Launcher"; Filename: "{app}\ArchipelagoLauncher.exe"; Tasks: desktopicon
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								Name: "{commondesktop}\{#MyAppName} Server"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon; Components: server
							 
						 
					
						
							
								
									
										
										
										
											2021-11-12 23:43:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{commondesktop}\{#MyAppName} SNI Client"; Filename: "{app}\ArchipelagoSNIClient.exe"; Tasks: desktopicon; Components: client/sni
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								Name: "{commondesktop}\{#MyAppName} Factorio Client"; Filename: "{app}\ArchipelagoFactorioClient.exe"; Tasks: desktopicon; Components: client/factorio
							 
						 
					
						
							
								
									
										
										
										
											2022-03-27 14:44:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{commondesktop}\{#MyAppName} Minecraft Client"; Filename: "{app}\ArchipelagoMinecraftClient.exe"; Tasks: desktopicon; Components: client/minecraft
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Name: "{commondesktop}\{#MyAppName} Ocarina of Time Client"; Filename: "{app}\ArchipelagoOoTClient.exe"; Tasks: desktopicon; Components: client/oot
							 
						 
					
						
							
								
									
										
										
										
											2022-10-20 10:41:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{commondesktop}\{#MyAppName} Zillion Client"; Filename: "{app}\ArchipelagoZillionClient.exe"; Tasks: desktopicon; Components: client/zl
							 
						 
					
						
							
								
									
										
										
										
											2022-03-27 14:44:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{commondesktop}\{#MyAppName} Final Fantasy 1 Client"; Filename: "{app}\ArchipelagoFF1Client.exe"; Tasks: desktopicon; Components: client/ff1
							 
						 
					
						
							
								
									
										
										
										
											2022-10-13 01:45:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{commondesktop}\{#MyAppName} Pokemon Client"; Filename: "{app}\ArchipelagoPokemonClient.exe"; Tasks: desktopicon; Components: client/pkmn
							 
						 
					
						
							
								
									
										
										
										
											2022-04-01 01:55:06 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{commondesktop}\{#MyAppName} ChecksFinder Client"; Filename: "{app}\ArchipelagoChecksFinderClient.exe"; Tasks: desktopicon; Components: client/cf
							 
						 
					
						
							
								
									
										
										
										
											2022-05-18 17:27:38 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{commondesktop}\{#MyAppName} Starcraft 2 Client"; Filename: "{app}\ArchipelagoStarcraft2Client.exe"; Tasks: desktopicon; Components: client/sc2
							 
						 
					
						
							
								
									
										
											 
										
											
												Mega Man Battle Network 3: Implement New Game (#1198)
* Initializes MMBN3 world with empty files
* Adds item names to item dict
* Adds locations and names
* Adds skeleton of MMBN3Client. Mostly copy pasta from OOT
* Fixed some style and formatting
* More incremental Lua tests
* Adds all locations and checking to Lua connector
* Made class definitions for TextPet Parser
* Begun connecting item delivery system through lua and textpet
* Lua Connection can now send test items
* Item Delivery is now parameterized. Test command can send any chip
* Adds the ability to send non-chip items
* Fixes name errors in python client
* Fixes count for zenny, attempts to fix bugfrags
* Fixes an issue where you always received 255 bugfrags
* Converts zenny and bugfrag amounts to little endian bytecode
* Checks game state before sending chips
Adds debug option to display information overlayed on rom
Fixes chip indexing issue for chips with ids over 255
Minor text fixes
* Adds in some animation reset instructions during item get message
* Stores previously collected item index in save, re-sends missing items
* Adds title screen check before sending locations
Loading items from save could not be done via RAM. Had to be added in
assembly
* Adds progressive undernet check
* Added library for lzss decoding bits of rom
* More progress on parsing text events from ROM
* Adds a way to inject messages into ScriptArchive data structure and generate bytecode
* Adds Item definitions, passes to client
* Adds regions and item collection rules
* Touched up a few names and values that have changed in preparation for the final patching
* Modifying messages via item is now successful
* Added generate_output hook to generate ROM data
* Generates ROM successfully
* Fixes navi cust give index
* Whoops forgot to wrap this in brackets
* Injects extra scripts for undernet rankings
* Programs had ammount and color swapped
* Prompts the user for their username when connecting
* Adds flagClear to the list of commands to avoid overwriting
* Fixes message box crashes and several other multiworld issues
* Fixes IDs and names of several items and locations
* Added .gba to gitignore
* Fixes compatibility after recent rebase
* Fixes some locations and items that are otherwise unobtainable
* Attempts to make a working launcher in the installer
* Creates installer and fixes several inaccessible locations
* Many minor changes to items, locations, and requirements made during testing
* Adds an info page for MMBN3
* Fixes failing tests by removing duplicate IDs and properly marking progression items
* Accidentally forgot to un-remove the thing
* Whoops, changed this by accident
* Updates self.world references to self.multiworld
* Fixes imports to use from imports instead of using the namespace
* Removed some leftover merge artifacts from inno setup
* Puts back that darned signtool line again
* Adds Overworld Metro keys as items
* Adds TamaCode and puts shortcuts behind cyber passes
* Fixes Numberman code 16 check
* Fixes metro access logic and adds text to metro
* Reworks Lua to fix crashing when many items are queued
* Items for other BN3 games for different players are no longer given in the main player's ROM as well
* Fixes incorrect Item ID for ACDC Metro
* Fixes multi-box text messages
* Adds timer before sending an item
* Forgot to remove the second box of SubMems
* Updates patch and lua to prevent softlocks and crashes
* Adds options for extra undernet ranks, exclude jobs
* Extra GigFreez now gives 20 bugfrags
* Additional Progressive Undernets can no longer appear on the WWW Base
* Moves item signal byte to empty area of flags instead of end of RAM
* Adds Chocolate Shop locations and navi chips to fill them
* Fixes save crash, and added chocolates to lua
* Fixes chocolate stand selling out text, removes DrillMan cube in Undernet
* Replaces old messaging system with direct memory manipulation for receiving items
* Removes NDSPY requirements from MMBN3 by manually adapting the GBA's lz10 algorithm
* Fixes the names of Hospital-1 Locations
* Adds Canary Bit to avoid sending checks when title screen check fails
* Gaining a cybermetro pass will now open the shortcut immediately
* Randomizes the two accessible areas of Undernet 7, adds Hammer as item
* Adds new locations to connector lua
* Injects the name of the item into trade quests
* Fixes copy-paste error in docs
* Fixes merge artifacts and depracated code
* Nut-wafer stand now faces Lan the right way after buying
* Removes unused Goal Option and updates the readme to include most recent changes
* Touch-ups and formatting changes
* The Great Fillerization update. Dozens of items changed to Filler
* Replaces instances of Mega Man with MegaMan
* Update worlds/mmbn3/docs/en_MegaMan Battle Network 3.md
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Update worlds/mmbn3/__init__.py
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
* Changes code ordering to suit base class's
* assert_generate now checks for roms. Minor text fixes
* Makes player specific frequency and excluded location options
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Addresses suggested changes from PR review
* Replaces ndspy lz10 with MIT-compliant nlzss lz10
* apworld compatibility fix for mmbn3_options from utils
* Addressing more comments by el-u
* APworld will now pull patch from zip folder
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Cleaned up comments for progressive undernet ROM function, moved index list to field to avoid re-initializing
* Removes improper player-indexed location/item dicts, replaces with world member variables
* Avoids redefining list in progressive undernet ROM function
* Filler items can no longer be generated beyond their specified amounts
* Fixes list copying issue with item frequencies
* Adds BN3 Client Generation back into Launcher settings
* Fixes typos causing huge problems
* Fixed non-relative import for apworld
* Removes custom enum implementation that broke pickle
* Displays message when attempting to load an incorrect ROM, will not attempt to patch it
* Filler items can now only be placed once
* Changes path in setup doc to match Lua path changes
* Fixes file extension for MMBN3 file
* Replaces magic number with reference to value in NetUtils
* Moves victory rules to set_rules. Removes commented out code
* Rewrites Lua script to send block of memory
* Fixes off-by-one error in sending bytes for locations
* Fixes issue with invalid characters in text parsing, and WWW monitor text box parsing
* Moves trade text injection to init so it has access to options
* Attempts to split the text boxes for hinted items
* Trade checks now provide hints if the option is set for them
* Fixes escape character issue for BizHawk 2.9.1
Something in Bizhawk lua parsing changed to dislike the escaped tilde.
I'm not even entirely sure why it was escaped in the first place, but
this should fix the compatibility of it.
* Re-adds desk check that it turns out actually does exist
* Updates requirements to mention bizhawk 2.7 instead of 2.3.1
* Fixes off-by-one error in command byte counts
* Fixes program color indices
* Fixes newline PEP violations
* Reverts an accidental whitespace change made to launcher.py
* Fixes URL formatting on link to settings from setup guide
Co-authored-by: Zach Parks <zach@alliware.com>
* Splits several lines in the readme to avoid excessive length
* Fixes formatting and (hopefully) reduces cringe of joke in setup doc
* Removes unnecessary constructor
* Changes item frequency generation to avoid reusing the same references
Co-authored-by: Zach Parks <zach@alliware.com>
---------
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
Co-authored-by: Zach Parks <zach@alliware.com>
											 
										 
										
											2023-06-29 12:36:01 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{commondesktop}\{#MyAppName} MegaMan Battle Network 3 Client"; Filename: "{app}\ArchipelagoMMBN3Client.exe"; Tasks: desktopicon; Components: client/mmbn3
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 10:45:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{commondesktop}\{#MyAppName} The Legend of Zelda Client"; Filename: "{app}\ArchipelagoZelda1Client.exe"; Tasks: desktopicon; Components: client/tloz
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 09:18:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{commondesktop}\{#MyAppName} Wargroove Client"; Filename: "{app}\ArchipelagoWargrooveClient.exe"; Tasks: desktopicon; Components: client/wargroove
							 
						 
					
						
							
								
									
										
										
										
											2023-03-20 18:43:29 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{commondesktop}\{#MyAppName} Kingdom Hearts 2 Client"; Filename: "{app}\ArchipelagoKH2Client.exe"; Tasks: desktopicon; Components: client/kh2
							 
						 
					
						
							
								
									
										
										
										
											2023-07-13 20:48:38 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{commondesktop}\{#MyAppName} Link's Awakening Client"; Filename: "{app}\ArchipelagoLinksAwakeningClient.exe"; Tasks: desktopicon; Components: client/ladx
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 07:25:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{commondesktop}\{#MyAppName} Adventure Client"; Filename: "{app}\ArchipelagoAdventureClient.exe"; Tasks: desktopicon; Components: client/advn
							 
						 
					
						
							
								
									
										
										
										
											2023-06-26 22:35:41 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Name: "{commondesktop}\{#MyAppName} Undertale Client"; Filename: "{app}\ArchipelagoUndertaleClient.exe"; Tasks: desktopicon; Components: client/ut
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[Run]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Filename: "{tmp}\vc_redist.x64.exe"; Parameters: "/passive /norestart"; Check: IsVCRedist64BitNeeded; StatusMsg: "Installing VC++ redistributable..."
							 
						 
					
						
							
								
									
										
										
										
											2021-11-12 23:43:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Filename: "{app}\ArchipelagoLttPAdjuster"; Parameters: "--update_sprites"; StatusMsg: "Updating Sprite Library..."; Components: client/sni/lttp or generator/lttp
							 
						 
					
						
							
								
									
										
											 
										
											
												MC: 1.17 support (#120)
* MC: add death_link option
* Minecraft: 1.17 advancements and logic support
* Update Minecraft tracker to 1.17
* Minecraft: add tests for new advancements
* removed jdk/forge download install out of iss and into MinecraftClient.py using flag --install
* Add required_bosses option
choices are none, ender_dragon, wither, both
postgame advancements are set according to the required boss for completion
* fix docstring for PostgameAdvancements
* Minecraft: add starting_items
List of dicts: item, amount, nbt
* Update descriptions for AdvancementGoal and EggShardsRequired
* Minecraft: fix tests for required_bosses attribute
* Minecraft: updated logic for various dragon-related advancements
Split the logic into can_respawn and can_kill dragon
Free the End, Monsters Hunted, The End Again still require both respawn and kill, since the player needs to kill and be credited with the kill
You Need a Mint and Is It a Plane now require only respawn, since the dragon need only be alive; if killed out of logic, it's ok
The Next Generation only requires kill, since the egg spawns regardless of whether the player was credited with the kill or not
* Minecraft client: ignore prereleases unless --prerelease flag is on
* explicitly state all defaults
change structure shuffle and structure compass defaults to true
update install tutorial to point to player-settings page, as well as removing instructions for manual install
* Minecraft client: add Minecraft version check
Adds a minecraft_version field in the apmc, and downloads only mods which contain that version in the name of the .jar file.
This ensures that the client remains compatible even if new mods are released for later versions, since they won't download a mod for a later version than the apmc says.
Co-authored-by: Kono Tyran <Kono.Tyran@gmail.com>
											 
										 
										
											2021-11-30 20:37:11 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Filename: "{app}\ArchipelagoMinecraftClient.exe"; Parameters: "--install"; StatusMsg: "Installing Forge Server..."; Components: client/minecraft
							 
						 
					
						
							
								
									
										
										
										
											2023-07-05 22:39:35 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Filename: "{app}\ArchipelagoLauncher"; Parameters: "--update_settings"; StatusMsg: "Updating host.yaml..."; Flags: runasoriginaluser runhidden
							 
						 
					
						
							
								
									
										
										
										
											2023-07-24 00:15:47 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Filename: "{app}\ArchipelagoLauncher"; Description: "{cm:LaunchProgram,{#StringChange('Launcher', '&', '&&')}}"; Flags: nowait postinstall skipifsilent
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[UninstallDelete]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Type: dirifempty; Name: "{app}"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-12 23:47:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								[InstallDelete]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Type: files; Name: "{app}\ArchipelagoLttPClient.exe"
							 
						 
					
						
							
								
									
										
										
										
											2022-07-16 19:36:14 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Type: filesandordirs; Name: "{app}\lib\worlds\rogue-legacy*"
							 
						 
					
						
							
								
									
										
										
										
											2023-06-16 16:26:41 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Type: filesandordirs; Name: "{app}\SNI\lua*"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Type: filesandordirs; Name: "{app}\EnemizerCLI*"
							 
						 
					
						
							
								
									
										
										
										
											2022-12-07 06:40:30 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								#include "installdelete.iss"
							 
						 
					
						
							
								
									
										
										
										
											2021-11-12 23:47:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								[Registry]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-04-01 07:16:54 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Root: HKCR; Subkey: ".aplttp";                                 ValueData: "{#MyAppName}patch";        Flags: uninsdeletevalue; ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
									
										
										
										
											2021-11-12 23:43:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}patch";                     ValueData: "Archipelago Binary Patch"; Flags: uninsdeletekey;   ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}patch\DefaultIcon";         ValueData: "{app}\ArchipelagoSNIClient.exe,0";                           ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}patch\shell\open\command";  ValueData: """{app}\ArchipelagoSNIClient.exe"" ""%1""";                  ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-04-01 07:16:54 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Root: HKCR; Subkey: ".apsm";                                 ValueData: "{#MyAppName}smpatch";        Flags: uninsdeletevalue; ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 03:33:25 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}smpatch";                     ValueData: "Archipelago Super Metroid Patch"; Flags: uninsdeletekey;   ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}smpatch\DefaultIcon";         ValueData: "{app}\ArchipelagoSNIClient.exe,0";                           ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}smpatch\shell\open\command";  ValueData: """{app}\ArchipelagoSNIClient.exe"" ""%1""";                  ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-22 01:02:25 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Root: HKCR; Subkey: ".apdkc3";                                 ValueData: "{#MyAppName}dkc3patch";        Flags: uninsdeletevalue; ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}dkc3patch";                     ValueData: "Archipelago Donkey Kong Country 3 Patch"; Flags: uninsdeletekey;   ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}dkc3patch\DefaultIcon";         ValueData: "{app}\ArchipelagoSNIClient.exe,0";                           ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}dkc3patch\shell\open\command";  ValueData: """{app}\ArchipelagoSNIClient.exe"" ""%1""";                  ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 14:16:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Root: HKCR; Subkey: ".apsmw";                                    ValueData: "{#MyAppName}smwpatch";        Flags: uninsdeletevalue; ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}smwpatch";                     ValueData: "Archipelago Super Mario World Patch"; Flags: uninsdeletekey;   ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}smwpatch\DefaultIcon";         ValueData: "{app}\ArchipelagoSNIClient.exe,0";                           ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}smwpatch\shell\open\command";  ValueData: """{app}\ArchipelagoSNIClient.exe"" ""%1""";                  ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-10-20 10:41:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Root: HKCR; Subkey: ".apzl";                                   ValueData: "{#MyAppName}zlpatch";        Flags: uninsdeletevalue; ValueType: string;  ValueName: ""; Components: client/zl
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}zlpatch";                     ValueData: "Archipelago Zillion Patch"; Flags: uninsdeletekey;   ValueType: string;  ValueName: ""; Components: client/zl
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}zlpatch\DefaultIcon";         ValueData: "{app}\ArchipelagoZillionClient.exe,0";                           ValueType: string;  ValueName: ""; Components: client/zl
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}zlpatch\shell\open\command";  ValueData: """{app}\ArchipelagoZillionClient.exe"" ""%1""";                  ValueType: string;  ValueName: ""; Components: client/zl
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-04-03 19:42:18 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Root: HKCR; Subkey: ".apsmz3";                                 ValueData: "{#MyAppName}smz3patch";        Flags: uninsdeletevalue; ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
									
										
										
										
											2022-04-01 07:16:54 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}smz3patch";                     ValueData: "Archipelago SMZ3 Patch"; Flags: uninsdeletekey;   ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}smz3patch\DefaultIcon";         ValueData: "{app}\ArchipelagoSNIClient.exe,0";                           ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
									
										
										
										
											2022-04-09 19:39:15 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}smz3patch\shell\open\command";  ValueData: """{app}\ArchipelagoSNIClient.exe"" ""%1""";                  ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
									
										
										
										
											2022-04-01 07:16:54 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-12-01 01:01:41 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Root: HKCR; Subkey: ".apsoe";                                 ValueData: "{#MyAppName}soepatch";        Flags: uninsdeletevalue; ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}soepatch";                     ValueData: "Archipelago Secret of Evermore Patch"; Flags: uninsdeletekey;   ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}soepatch\DefaultIcon";         ValueData: "{app}\ArchipelagoSNIClient.exe,0";                           ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
									
										
										
										
											2022-04-09 19:39:15 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}soepatch\shell\open\command";  ValueData: """{app}\ArchipelagoSNIClient.exe"" ""%1""";                  ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
									
										
										
										
											2021-12-01 01:01:41 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-12-12 02:36:18 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Root: HKCR; Subkey: ".apl2ac";                                 ValueData: "{#MyAppName}l2acpatch";        Flags: uninsdeletevalue; ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}l2acpatch";                     ValueData: "Archipelago Lufia II Ancient Cave Patch"; Flags: uninsdeletekey;   ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}l2acpatch\DefaultIcon";         ValueData: "{app}\ArchipelagoSNIClient.exe,0";                           ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}l2acpatch\shell\open\command";  ValueData: """{app}\ArchipelagoSNIClient.exe"" ""%1""";                  ValueType: string;  ValueName: ""; Components: client/sni
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: ".apmc";                                  ValueData: "{#MyAppName}mcdata";         Flags: uninsdeletevalue; ValueType: string;  ValueName: ""; Components: client/minecraft
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}mcdata";                     ValueData: "Archipelago Minecraft Data"; Flags: uninsdeletekey;   ValueType: string;  ValueName: ""; Components: client/minecraft
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}mcdata\DefaultIcon";         ValueData: "{app}\ArchipelagoMinecraftClient.exe,0";                           ValueType: string;  ValueName: ""; Components: client/minecraft
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}mcdata\shell\open\command";  ValueData: """{app}\ArchipelagoMinecraftClient.exe"" ""%1""";                  ValueType: string;  ValueName: ""; Components: client/minecraft
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-03-27 14:44:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Root: HKCR; Subkey: ".apz5";                                  ValueData: "{#MyAppName}n64zpf";         Flags: uninsdeletevalue; ValueType: string;  ValueName: ""; Components: client/oot
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}n64zpf";                     ValueData: "Archipelago Ocarina of Time Patch"; Flags: uninsdeletekey;   ValueType: string;  ValueName: ""; Components: client/oot
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}n64zpf\DefaultIcon";         ValueData: "{app}\ArchipelagoOoTClient.exe,0";                           ValueType: string;  ValueName: ""; Components: client/oot
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}n64zpf\shell\open\command";  ValueData: """{app}\ArchipelagoOoTClient.exe"" ""%1""";                  ValueType: string;  ValueName: ""; Components: client/oot
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-12-07 06:02:54 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Root: HKCR; Subkey: ".apred";                                    ValueData: "{#MyAppName}pkmnrpatch";        Flags: uninsdeletevalue; ValueType: string;  ValueName: ""; Components: client/pkmn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}pkmnrpatch";                     ValueData: "Archipelago Pokemon Red Patch"; Flags: uninsdeletekey;   ValueType: string;  ValueName: ""; Components: client/pkmn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}pkmnrpatch\DefaultIcon";         ValueData: "{app}\ArchipelagoPokemonClient.exe,0";                           ValueType: string;  ValueName: ""; Components: client/pkmn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}pkmnrpatch\shell\open\command";  ValueData: """{app}\ArchipelagoPokemonClient.exe"" ""%1""";                  ValueType: string;  ValueName: ""; Components: client/pkmn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: ".apblue";                                    ValueData: "{#MyAppName}pkmnbpatch";        Flags: uninsdeletevalue; ValueType: string;  ValueName: ""; Components: client/pkmn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}pkmnbpatch";                     ValueData: "Archipelago Pokemon Blue Patch"; Flags: uninsdeletekey;   ValueType: string;  ValueName: ""; Components: client/pkmn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}pkmnbpatch\DefaultIcon";         ValueData: "{app}\ArchipelagoPokemonClient.exe,0";                           ValueType: string;  ValueName: ""; Components: client/pkmn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}pkmnbpatch\shell\open\command";  ValueData: """{app}\ArchipelagoPokemonClient.exe"" ""%1""";                  ValueType: string;  ValueName: ""; Components: client/pkmn
							 
						 
					
						
							
								
									
										
										
										
											2022-10-13 01:45:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
											 
										
											
												Mega Man Battle Network 3: Implement New Game (#1198)
* Initializes MMBN3 world with empty files
* Adds item names to item dict
* Adds locations and names
* Adds skeleton of MMBN3Client. Mostly copy pasta from OOT
* Fixed some style and formatting
* More incremental Lua tests
* Adds all locations and checking to Lua connector
* Made class definitions for TextPet Parser
* Begun connecting item delivery system through lua and textpet
* Lua Connection can now send test items
* Item Delivery is now parameterized. Test command can send any chip
* Adds the ability to send non-chip items
* Fixes name errors in python client
* Fixes count for zenny, attempts to fix bugfrags
* Fixes an issue where you always received 255 bugfrags
* Converts zenny and bugfrag amounts to little endian bytecode
* Checks game state before sending chips
Adds debug option to display information overlayed on rom
Fixes chip indexing issue for chips with ids over 255
Minor text fixes
* Adds in some animation reset instructions during item get message
* Stores previously collected item index in save, re-sends missing items
* Adds title screen check before sending locations
Loading items from save could not be done via RAM. Had to be added in
assembly
* Adds progressive undernet check
* Added library for lzss decoding bits of rom
* More progress on parsing text events from ROM
* Adds a way to inject messages into ScriptArchive data structure and generate bytecode
* Adds Item definitions, passes to client
* Adds regions and item collection rules
* Touched up a few names and values that have changed in preparation for the final patching
* Modifying messages via item is now successful
* Added generate_output hook to generate ROM data
* Generates ROM successfully
* Fixes navi cust give index
* Whoops forgot to wrap this in brackets
* Injects extra scripts for undernet rankings
* Programs had ammount and color swapped
* Prompts the user for their username when connecting
* Adds flagClear to the list of commands to avoid overwriting
* Fixes message box crashes and several other multiworld issues
* Fixes IDs and names of several items and locations
* Added .gba to gitignore
* Fixes compatibility after recent rebase
* Fixes some locations and items that are otherwise unobtainable
* Attempts to make a working launcher in the installer
* Creates installer and fixes several inaccessible locations
* Many minor changes to items, locations, and requirements made during testing
* Adds an info page for MMBN3
* Fixes failing tests by removing duplicate IDs and properly marking progression items
* Accidentally forgot to un-remove the thing
* Whoops, changed this by accident
* Updates self.world references to self.multiworld
* Fixes imports to use from imports instead of using the namespace
* Removed some leftover merge artifacts from inno setup
* Puts back that darned signtool line again
* Adds Overworld Metro keys as items
* Adds TamaCode and puts shortcuts behind cyber passes
* Fixes Numberman code 16 check
* Fixes metro access logic and adds text to metro
* Reworks Lua to fix crashing when many items are queued
* Items for other BN3 games for different players are no longer given in the main player's ROM as well
* Fixes incorrect Item ID for ACDC Metro
* Fixes multi-box text messages
* Adds timer before sending an item
* Forgot to remove the second box of SubMems
* Updates patch and lua to prevent softlocks and crashes
* Adds options for extra undernet ranks, exclude jobs
* Extra GigFreez now gives 20 bugfrags
* Additional Progressive Undernets can no longer appear on the WWW Base
* Moves item signal byte to empty area of flags instead of end of RAM
* Adds Chocolate Shop locations and navi chips to fill them
* Fixes save crash, and added chocolates to lua
* Fixes chocolate stand selling out text, removes DrillMan cube in Undernet
* Replaces old messaging system with direct memory manipulation for receiving items
* Removes NDSPY requirements from MMBN3 by manually adapting the GBA's lz10 algorithm
* Fixes the names of Hospital-1 Locations
* Adds Canary Bit to avoid sending checks when title screen check fails
* Gaining a cybermetro pass will now open the shortcut immediately
* Randomizes the two accessible areas of Undernet 7, adds Hammer as item
* Adds new locations to connector lua
* Injects the name of the item into trade quests
* Fixes copy-paste error in docs
* Fixes merge artifacts and depracated code
* Nut-wafer stand now faces Lan the right way after buying
* Removes unused Goal Option and updates the readme to include most recent changes
* Touch-ups and formatting changes
* The Great Fillerization update. Dozens of items changed to Filler
* Replaces instances of Mega Man with MegaMan
* Update worlds/mmbn3/docs/en_MegaMan Battle Network 3.md
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Update worlds/mmbn3/__init__.py
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
* Changes code ordering to suit base class's
* assert_generate now checks for roms. Minor text fixes
* Makes player specific frequency and excluded location options
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Addresses suggested changes from PR review
* Replaces ndspy lz10 with MIT-compliant nlzss lz10
* apworld compatibility fix for mmbn3_options from utils
* Addressing more comments by el-u
* APworld will now pull patch from zip folder
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Cleaned up comments for progressive undernet ROM function, moved index list to field to avoid re-initializing
* Removes improper player-indexed location/item dicts, replaces with world member variables
* Avoids redefining list in progressive undernet ROM function
* Filler items can no longer be generated beyond their specified amounts
* Fixes list copying issue with item frequencies
* Adds BN3 Client Generation back into Launcher settings
* Fixes typos causing huge problems
* Fixed non-relative import for apworld
* Removes custom enum implementation that broke pickle
* Displays message when attempting to load an incorrect ROM, will not attempt to patch it
* Filler items can now only be placed once
* Changes path in setup doc to match Lua path changes
* Fixes file extension for MMBN3 file
* Replaces magic number with reference to value in NetUtils
* Moves victory rules to set_rules. Removes commented out code
* Rewrites Lua script to send block of memory
* Fixes off-by-one error in sending bytes for locations
* Fixes issue with invalid characters in text parsing, and WWW monitor text box parsing
* Moves trade text injection to init so it has access to options
* Attempts to split the text boxes for hinted items
* Trade checks now provide hints if the option is set for them
* Fixes escape character issue for BizHawk 2.9.1
Something in Bizhawk lua parsing changed to dislike the escaped tilde.
I'm not even entirely sure why it was escaped in the first place, but
this should fix the compatibility of it.
* Re-adds desk check that it turns out actually does exist
* Updates requirements to mention bizhawk 2.7 instead of 2.3.1
* Fixes off-by-one error in command byte counts
* Fixes program color indices
* Fixes newline PEP violations
* Reverts an accidental whitespace change made to launcher.py
* Fixes URL formatting on link to settings from setup guide
Co-authored-by: Zach Parks <zach@alliware.com>
* Splits several lines in the readme to avoid excessive length
* Fixes formatting and (hopefully) reduces cringe of joke in setup doc
* Removes unnecessary constructor
* Changes item frequency generation to avoid reusing the same references
Co-authored-by: Zach Parks <zach@alliware.com>
---------
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
Co-authored-by: Zach Parks <zach@alliware.com>
											 
										 
										
											2023-06-29 12:36:01 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Root: HKCR; Subkey: ".apbn3";                                     ValueData: "{#MyAppName}bn3bpatch";        Flags: uninsdeletevalue; ValueType: string;  ValueName: ""; Components: client/mmbn3
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}bn3bpatch";                      ValueData: "Archipelago MegaMan Battle Network 3 Patch"; Flags: uninsdeletekey;   ValueType: string;  ValueName: ""; Components: client/mmbn3
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}bn3bpatch\DefaultIcon";          ValueData: "{app}\ArchipelagoMMBN3Client.exe,0";                           ValueType: string;  ValueName: ""; Components: client/mmbn3
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}bn3bpatch\shell\open\command";   ValueData: """{app}\ArchipelagoMMBN3Client.exe"" ""%1""";                  ValueType: string;  ValueName: ""; Components: client/mmbn3
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 01:26:03 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Root: HKCR; Subkey: ".apladx";                                    ValueData: "{#MyAppName}ladxpatch";        Flags: uninsdeletevalue; ValueType: string;  ValueName: ""; Components: client/ladx
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}ladxpatch";                     ValueData: "Archipelago Links Awakening DX Patch"; Flags: uninsdeletekey;   ValueType: string;  ValueName: ""; Components: client/ladx
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}ladxpatch\DefaultIcon";         ValueData: "{app}\ArchipelagoLinksAwakeningClient.exe,0";                           ValueType: string;  ValueName: ""; Components: client/ladx
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}ladxpatch\shell\open\command";  ValueData: """{app}\ArchipelagoLinksAwakeningClient.exe"" ""%1""";                  ValueType: string;  ValueName: ""; Components: client/ladx
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 10:45:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Root: HKCR; Subkey: ".aptloz";                                    ValueData: "{#MyAppName}tlozpatch";        Flags: uninsdeletevalue; ValueType: string;  ValueName: ""; Components: client/tloz
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}tlozpatch";                     ValueData: "Archipelago The Legend of Zelda Patch"; Flags: uninsdeletekey;   ValueType: string;  ValueName: ""; Components: client/tloz
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}tlozpatch\DefaultIcon";         ValueData: "{app}\ArchipelagoZelda1Client.exe,0";                           ValueType: string;  ValueName: ""; Components: client/tloz
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}tlozpatch\shell\open\command";  ValueData: """{app}\ArchipelagoZelda1Client.exe"" ""%1""";                  ValueType: string;  ValueName: ""; Components: client/tloz
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 07:25:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Root: HKCR; Subkey: ".apadvn";                                   ValueData: "{#MyAppName}advnpatch";        Flags: uninsdeletevalue; ValueType: string;  ValueName: ""; Components: client/advn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}advnpatch";                     ValueData: "Archipelago Adventure Patch"; Flags: uninsdeletekey;   ValueType: string;  ValueName: ""; Components: client/advn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}advnpatch\DefaultIcon";         ValueData: "{app}\ArchipelagoAdventureClient.exe,0";                           ValueType: string;  ValueName: ""; Components: client/advn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}advnpatch\shell\open\command";  ValueData: """{app}\ArchipelagoAdventureClient.exe"" ""%1""";                  ValueType: string;  ValueName: ""; Components: client/advn
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: ".archipelago";                              ValueData: "{#MyAppName}multidata";        Flags: uninsdeletevalue; ValueType: string;  ValueName: ""; Components: server
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}multidata";                     ValueData: "Archipelago Server Data";       Flags: uninsdeletekey;  ValueType: string;  ValueName: ""; Components: server
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}multidata\DefaultIcon";         ValueData: "{app}\ArchipelagoServer.exe,0";                         ValueType: string;  ValueName: ""; Components: server
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "{#MyAppName}multidata\shell\open\command";  ValueData: """{app}\ArchipelagoServer.exe"" ""%1""";                ValueType: string;  ValueName: ""; Components: server
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-05-24 00:20:02 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "archipelago"; ValueType: "string"; ValueData: "Archipegalo Protocol"; Flags: uninsdeletekey; Components: client/text
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "archipelago"; ValueType: "string"; ValueName: "URL Protocol"; ValueData: ""; Components: client/text
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "archipelago\DefaultIcon"; ValueType: "string"; ValueData: "{app}\ArchipelagoTextClient.exe,0"; Components: client/text
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Root: HKCR; Subkey: "archipelago\shell\open\command"; ValueType: "string"; ValueData: """{app}\ArchipelagoTextClient.exe"" ""%1"""; Components: client/text
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[Code]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  SHCONTCH_NOPROGRESSBOX = 4;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  SHCONTCH_RESPONDYESTOALL = 16;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// See: https://stackoverflow.com/a/51614652/2287576
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function IsVCRedist64BitNeeded(): boolean;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  strVersion: string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if (RegQueryStringValue(HKEY_LOCAL_MACHINE,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    'SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64', 'Version', strVersion)) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // Is the installed version at least the packaged one ?
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Log('VC Redist x64 Version : found ' + strVersion);
							 
						 
					
						
							
								
									
										
										
										
											2022-09-21 17:53:33 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Result := (CompareStr(strVersion, 'v14.32.31332') < 0);
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // Not even an old version installed
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Log('VC Redist x64 is not already installed');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := True;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var R : longint;
							 
						 
					
						
							
								
									
										
										
										
											2021-11-12 23:43:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 16:32:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								var lttprom: string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var LttPROMFilePage: TInputFileWizardPage;
							 
						 
					
						
							
								
									
										
										
										
											2021-11-12 23:43:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var smrom: string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var SMRomFilePage: TInputFileWizardPage;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-22 01:02:25 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								var dkc3rom: string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var DKC3RomFilePage: TInputFileWizardPage;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 14:16:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								var smwrom: string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var SMWRomFilePage: TInputFileWizardPage;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 03:33:25 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								var soerom: string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var SoERomFilePage: TInputFileWizardPage;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-12-12 02:36:18 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								var l2acrom: string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var L2ACROMFilePage: TInputFileWizardPage;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								var ootrom: string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var OoTROMFilePage: TInputFileWizardPage;
							 
						 
					
						
							
								
									
										
										
										
											2021-11-12 23:43:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-10-20 10:41:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								var zlrom: string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var ZlROMFilePage: TInputFileWizardPage;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-10-13 01:45:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								var redrom: string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var RedROMFilePage:  TInputFileWizardPage;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var bluerom: string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var BlueROMFilePage:  TInputFileWizardPage;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
											 
										
											
												Mega Man Battle Network 3: Implement New Game (#1198)
* Initializes MMBN3 world with empty files
* Adds item names to item dict
* Adds locations and names
* Adds skeleton of MMBN3Client. Mostly copy pasta from OOT
* Fixed some style and formatting
* More incremental Lua tests
* Adds all locations and checking to Lua connector
* Made class definitions for TextPet Parser
* Begun connecting item delivery system through lua and textpet
* Lua Connection can now send test items
* Item Delivery is now parameterized. Test command can send any chip
* Adds the ability to send non-chip items
* Fixes name errors in python client
* Fixes count for zenny, attempts to fix bugfrags
* Fixes an issue where you always received 255 bugfrags
* Converts zenny and bugfrag amounts to little endian bytecode
* Checks game state before sending chips
Adds debug option to display information overlayed on rom
Fixes chip indexing issue for chips with ids over 255
Minor text fixes
* Adds in some animation reset instructions during item get message
* Stores previously collected item index in save, re-sends missing items
* Adds title screen check before sending locations
Loading items from save could not be done via RAM. Had to be added in
assembly
* Adds progressive undernet check
* Added library for lzss decoding bits of rom
* More progress on parsing text events from ROM
* Adds a way to inject messages into ScriptArchive data structure and generate bytecode
* Adds Item definitions, passes to client
* Adds regions and item collection rules
* Touched up a few names and values that have changed in preparation for the final patching
* Modifying messages via item is now successful
* Added generate_output hook to generate ROM data
* Generates ROM successfully
* Fixes navi cust give index
* Whoops forgot to wrap this in brackets
* Injects extra scripts for undernet rankings
* Programs had ammount and color swapped
* Prompts the user for their username when connecting
* Adds flagClear to the list of commands to avoid overwriting
* Fixes message box crashes and several other multiworld issues
* Fixes IDs and names of several items and locations
* Added .gba to gitignore
* Fixes compatibility after recent rebase
* Fixes some locations and items that are otherwise unobtainable
* Attempts to make a working launcher in the installer
* Creates installer and fixes several inaccessible locations
* Many minor changes to items, locations, and requirements made during testing
* Adds an info page for MMBN3
* Fixes failing tests by removing duplicate IDs and properly marking progression items
* Accidentally forgot to un-remove the thing
* Whoops, changed this by accident
* Updates self.world references to self.multiworld
* Fixes imports to use from imports instead of using the namespace
* Removed some leftover merge artifacts from inno setup
* Puts back that darned signtool line again
* Adds Overworld Metro keys as items
* Adds TamaCode and puts shortcuts behind cyber passes
* Fixes Numberman code 16 check
* Fixes metro access logic and adds text to metro
* Reworks Lua to fix crashing when many items are queued
* Items for other BN3 games for different players are no longer given in the main player's ROM as well
* Fixes incorrect Item ID for ACDC Metro
* Fixes multi-box text messages
* Adds timer before sending an item
* Forgot to remove the second box of SubMems
* Updates patch and lua to prevent softlocks and crashes
* Adds options for extra undernet ranks, exclude jobs
* Extra GigFreez now gives 20 bugfrags
* Additional Progressive Undernets can no longer appear on the WWW Base
* Moves item signal byte to empty area of flags instead of end of RAM
* Adds Chocolate Shop locations and navi chips to fill them
* Fixes save crash, and added chocolates to lua
* Fixes chocolate stand selling out text, removes DrillMan cube in Undernet
* Replaces old messaging system with direct memory manipulation for receiving items
* Removes NDSPY requirements from MMBN3 by manually adapting the GBA's lz10 algorithm
* Fixes the names of Hospital-1 Locations
* Adds Canary Bit to avoid sending checks when title screen check fails
* Gaining a cybermetro pass will now open the shortcut immediately
* Randomizes the two accessible areas of Undernet 7, adds Hammer as item
* Adds new locations to connector lua
* Injects the name of the item into trade quests
* Fixes copy-paste error in docs
* Fixes merge artifacts and depracated code
* Nut-wafer stand now faces Lan the right way after buying
* Removes unused Goal Option and updates the readme to include most recent changes
* Touch-ups and formatting changes
* The Great Fillerization update. Dozens of items changed to Filler
* Replaces instances of Mega Man with MegaMan
* Update worlds/mmbn3/docs/en_MegaMan Battle Network 3.md
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Update worlds/mmbn3/__init__.py
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
* Changes code ordering to suit base class's
* assert_generate now checks for roms. Minor text fixes
* Makes player specific frequency and excluded location options
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Addresses suggested changes from PR review
* Replaces ndspy lz10 with MIT-compliant nlzss lz10
* apworld compatibility fix for mmbn3_options from utils
* Addressing more comments by el-u
* APworld will now pull patch from zip folder
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Cleaned up comments for progressive undernet ROM function, moved index list to field to avoid re-initializing
* Removes improper player-indexed location/item dicts, replaces with world member variables
* Avoids redefining list in progressive undernet ROM function
* Filler items can no longer be generated beyond their specified amounts
* Fixes list copying issue with item frequencies
* Adds BN3 Client Generation back into Launcher settings
* Fixes typos causing huge problems
* Fixed non-relative import for apworld
* Removes custom enum implementation that broke pickle
* Displays message when attempting to load an incorrect ROM, will not attempt to patch it
* Filler items can now only be placed once
* Changes path in setup doc to match Lua path changes
* Fixes file extension for MMBN3 file
* Replaces magic number with reference to value in NetUtils
* Moves victory rules to set_rules. Removes commented out code
* Rewrites Lua script to send block of memory
* Fixes off-by-one error in sending bytes for locations
* Fixes issue with invalid characters in text parsing, and WWW monitor text box parsing
* Moves trade text injection to init so it has access to options
* Attempts to split the text boxes for hinted items
* Trade checks now provide hints if the option is set for them
* Fixes escape character issue for BizHawk 2.9.1
Something in Bizhawk lua parsing changed to dislike the escaped tilde.
I'm not even entirely sure why it was escaped in the first place, but
this should fix the compatibility of it.
* Re-adds desk check that it turns out actually does exist
* Updates requirements to mention bizhawk 2.7 instead of 2.3.1
* Fixes off-by-one error in command byte counts
* Fixes program color indices
* Fixes newline PEP violations
* Reverts an accidental whitespace change made to launcher.py
* Fixes URL formatting on link to settings from setup guide
Co-authored-by: Zach Parks <zach@alliware.com>
* Splits several lines in the readme to avoid excessive length
* Fixes formatting and (hopefully) reduces cringe of joke in setup doc
* Removes unnecessary constructor
* Changes item frequency generation to avoid reusing the same references
Co-authored-by: Zach Parks <zach@alliware.com>
---------
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
Co-authored-by: Zach Parks <zach@alliware.com>
											 
										 
										
											2023-06-29 12:36:01 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								var bn3rom: string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var BN3ROMFilePage: TInputFileWizardPage;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 01:26:03 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								var ladxrom: string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var LADXROMFilePage:  TInputFileWizardPage;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 10:45:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								var tlozrom: string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var TLoZROMFilePage:  TInputFileWizardPage;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 07:25:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								var advnrom: string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var AdvnROMFilePage:  TInputFileWizardPage;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-14 22:37:27 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function GetSNESMD5OfFile(const rom: string): string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var data: AnsiString;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if LoadStringFromFile(rom, data) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if Length(data) mod 1024 = 512 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        data := copy(data, 513, Length(data)-512);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Result := GetMD5OfString(data);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-10-20 10:41:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function GetSMSMD5OfFile(const rom: string): string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var data: AnsiString;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if LoadStringFromFile(rom, data) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Result := GetMD5OfString(data);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 16:32:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function CheckRom(name: string; hash: string): string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var rom: string;
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 16:32:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  log('Handling ' + name)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  rom := FileSearch(name, WizardDirValue());
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  if Length(rom) > 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      log('existing ROM found');
							 
						 
					
						
							
								
									
										
										
										
											2021-11-14 22:45:49 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      log(IntToStr(CompareStr(GetSNESMD5OfFile(rom), hash)));
							 
						 
					
						
							
								
									
										
										
										
											2021-11-14 22:37:27 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      if CompareStr(GetSNESMD5OfFile(rom), hash) = 0 then
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        log('existing ROM verified');
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 16:32:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        Result := rom;
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        exit;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      log('existing ROM failed verification');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-10-20 10:41:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function CheckSMSRom(name: string; hash: string): string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var rom: string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  log('Handling ' + name)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  rom := FileSearch(name, WizardDirValue());
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(rom) > 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      log('existing ROM found');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      log(IntToStr(CompareStr(GetSMSMD5OfFile(rom), hash)));
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if CompareStr(GetSMSMD5OfFile(rom), hash) = 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        log('existing ROM verified');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Result := rom;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        exit;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      log('existing ROM failed verification');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 10:45:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function CheckNESRom(name: string; hash: string): string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var rom: string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  log('Handling ' + name)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  rom := FileSearch(name, WizardDirValue());
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(rom) > 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      log('existing ROM found');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      log(IntToStr(CompareStr(GetSMSMD5OfFile(rom), hash)));
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if CompareStr(GetSMSMD5OfFile(rom), hash) = 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        log('existing ROM verified');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Result := rom;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        exit;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      log('existing ROM failed verification');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 16:32:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function AddRomPage(name: string): TInputFileWizardPage;
							 
						 
					
						
							
								
									
										
										
										
											2021-11-12 23:43:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 16:32:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  Result :=
							 
						 
					
						
							
								
									
										
										
										
											2021-11-12 23:43:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    CreateInputFilePage(
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      wpSelectComponents,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'Select ROM File',
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 16:32:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      'Where is your ' + name + ' located?',
							 
						 
					
						
							
								
									
										
										
										
											2021-11-12 23:43:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      'Select the file, then click Next.');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 16:32:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  Result.Add(
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    'Location of ROM file:',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    'SNES ROM files|*.sfc;*.smc|All files|*.*',
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 03:33:25 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    '.sfc');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-10-20 10:41:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-10-13 01:45:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function AddGBRomPage(name: string): TInputFileWizardPage;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Result :=
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CreateInputFilePage(
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      wpSelectComponents,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'Select ROM File',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'Where is your ' + name + ' located?',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'Select the file, then click Next.');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Result.Add(
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    'Location of ROM file:',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    'GB ROM files|*.gb;*.gbc|All files|*.*',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    '.gb');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
											 
										
											
												Mega Man Battle Network 3: Implement New Game (#1198)
* Initializes MMBN3 world with empty files
* Adds item names to item dict
* Adds locations and names
* Adds skeleton of MMBN3Client. Mostly copy pasta from OOT
* Fixed some style and formatting
* More incremental Lua tests
* Adds all locations and checking to Lua connector
* Made class definitions for TextPet Parser
* Begun connecting item delivery system through lua and textpet
* Lua Connection can now send test items
* Item Delivery is now parameterized. Test command can send any chip
* Adds the ability to send non-chip items
* Fixes name errors in python client
* Fixes count for zenny, attempts to fix bugfrags
* Fixes an issue where you always received 255 bugfrags
* Converts zenny and bugfrag amounts to little endian bytecode
* Checks game state before sending chips
Adds debug option to display information overlayed on rom
Fixes chip indexing issue for chips with ids over 255
Minor text fixes
* Adds in some animation reset instructions during item get message
* Stores previously collected item index in save, re-sends missing items
* Adds title screen check before sending locations
Loading items from save could not be done via RAM. Had to be added in
assembly
* Adds progressive undernet check
* Added library for lzss decoding bits of rom
* More progress on parsing text events from ROM
* Adds a way to inject messages into ScriptArchive data structure and generate bytecode
* Adds Item definitions, passes to client
* Adds regions and item collection rules
* Touched up a few names and values that have changed in preparation for the final patching
* Modifying messages via item is now successful
* Added generate_output hook to generate ROM data
* Generates ROM successfully
* Fixes navi cust give index
* Whoops forgot to wrap this in brackets
* Injects extra scripts for undernet rankings
* Programs had ammount and color swapped
* Prompts the user for their username when connecting
* Adds flagClear to the list of commands to avoid overwriting
* Fixes message box crashes and several other multiworld issues
* Fixes IDs and names of several items and locations
* Added .gba to gitignore
* Fixes compatibility after recent rebase
* Fixes some locations and items that are otherwise unobtainable
* Attempts to make a working launcher in the installer
* Creates installer and fixes several inaccessible locations
* Many minor changes to items, locations, and requirements made during testing
* Adds an info page for MMBN3
* Fixes failing tests by removing duplicate IDs and properly marking progression items
* Accidentally forgot to un-remove the thing
* Whoops, changed this by accident
* Updates self.world references to self.multiworld
* Fixes imports to use from imports instead of using the namespace
* Removed some leftover merge artifacts from inno setup
* Puts back that darned signtool line again
* Adds Overworld Metro keys as items
* Adds TamaCode and puts shortcuts behind cyber passes
* Fixes Numberman code 16 check
* Fixes metro access logic and adds text to metro
* Reworks Lua to fix crashing when many items are queued
* Items for other BN3 games for different players are no longer given in the main player's ROM as well
* Fixes incorrect Item ID for ACDC Metro
* Fixes multi-box text messages
* Adds timer before sending an item
* Forgot to remove the second box of SubMems
* Updates patch and lua to prevent softlocks and crashes
* Adds options for extra undernet ranks, exclude jobs
* Extra GigFreez now gives 20 bugfrags
* Additional Progressive Undernets can no longer appear on the WWW Base
* Moves item signal byte to empty area of flags instead of end of RAM
* Adds Chocolate Shop locations and navi chips to fill them
* Fixes save crash, and added chocolates to lua
* Fixes chocolate stand selling out text, removes DrillMan cube in Undernet
* Replaces old messaging system with direct memory manipulation for receiving items
* Removes NDSPY requirements from MMBN3 by manually adapting the GBA's lz10 algorithm
* Fixes the names of Hospital-1 Locations
* Adds Canary Bit to avoid sending checks when title screen check fails
* Gaining a cybermetro pass will now open the shortcut immediately
* Randomizes the two accessible areas of Undernet 7, adds Hammer as item
* Adds new locations to connector lua
* Injects the name of the item into trade quests
* Fixes copy-paste error in docs
* Fixes merge artifacts and depracated code
* Nut-wafer stand now faces Lan the right way after buying
* Removes unused Goal Option and updates the readme to include most recent changes
* Touch-ups and formatting changes
* The Great Fillerization update. Dozens of items changed to Filler
* Replaces instances of Mega Man with MegaMan
* Update worlds/mmbn3/docs/en_MegaMan Battle Network 3.md
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Update worlds/mmbn3/__init__.py
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
* Changes code ordering to suit base class's
* assert_generate now checks for roms. Minor text fixes
* Makes player specific frequency and excluded location options
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Addresses suggested changes from PR review
* Replaces ndspy lz10 with MIT-compliant nlzss lz10
* apworld compatibility fix for mmbn3_options from utils
* Addressing more comments by el-u
* APworld will now pull patch from zip folder
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Cleaned up comments for progressive undernet ROM function, moved index list to field to avoid re-initializing
* Removes improper player-indexed location/item dicts, replaces with world member variables
* Avoids redefining list in progressive undernet ROM function
* Filler items can no longer be generated beyond their specified amounts
* Fixes list copying issue with item frequencies
* Adds BN3 Client Generation back into Launcher settings
* Fixes typos causing huge problems
* Fixed non-relative import for apworld
* Removes custom enum implementation that broke pickle
* Displays message when attempting to load an incorrect ROM, will not attempt to patch it
* Filler items can now only be placed once
* Changes path in setup doc to match Lua path changes
* Fixes file extension for MMBN3 file
* Replaces magic number with reference to value in NetUtils
* Moves victory rules to set_rules. Removes commented out code
* Rewrites Lua script to send block of memory
* Fixes off-by-one error in sending bytes for locations
* Fixes issue with invalid characters in text parsing, and WWW monitor text box parsing
* Moves trade text injection to init so it has access to options
* Attempts to split the text boxes for hinted items
* Trade checks now provide hints if the option is set for them
* Fixes escape character issue for BizHawk 2.9.1
Something in Bizhawk lua parsing changed to dislike the escaped tilde.
I'm not even entirely sure why it was escaped in the first place, but
this should fix the compatibility of it.
* Re-adds desk check that it turns out actually does exist
* Updates requirements to mention bizhawk 2.7 instead of 2.3.1
* Fixes off-by-one error in command byte counts
* Fixes program color indices
* Fixes newline PEP violations
* Reverts an accidental whitespace change made to launcher.py
* Fixes URL formatting on link to settings from setup guide
Co-authored-by: Zach Parks <zach@alliware.com>
* Splits several lines in the readme to avoid excessive length
* Fixes formatting and (hopefully) reduces cringe of joke in setup doc
* Removes unnecessary constructor
* Changes item frequency generation to avoid reusing the same references
Co-authored-by: Zach Parks <zach@alliware.com>
---------
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
Co-authored-by: Zach Parks <zach@alliware.com>
											 
										 
										
											2023-06-29 12:36:01 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function AddGBARomPage(name: string): TInputFileWizardPage;
							 
						 
					
						
							
								
									
										
										
										
											2022-10-20 10:41:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Result :=
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CreateInputFilePage(
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      wpSelectComponents,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'Select ROM File',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'Where is your ' + name + ' located?',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'Select the file, then click Next.');
							 
						 
					
						
							
								
									
										
											 
										
											
												Mega Man Battle Network 3: Implement New Game (#1198)
* Initializes MMBN3 world with empty files
* Adds item names to item dict
* Adds locations and names
* Adds skeleton of MMBN3Client. Mostly copy pasta from OOT
* Fixed some style and formatting
* More incremental Lua tests
* Adds all locations and checking to Lua connector
* Made class definitions for TextPet Parser
* Begun connecting item delivery system through lua and textpet
* Lua Connection can now send test items
* Item Delivery is now parameterized. Test command can send any chip
* Adds the ability to send non-chip items
* Fixes name errors in python client
* Fixes count for zenny, attempts to fix bugfrags
* Fixes an issue where you always received 255 bugfrags
* Converts zenny and bugfrag amounts to little endian bytecode
* Checks game state before sending chips
Adds debug option to display information overlayed on rom
Fixes chip indexing issue for chips with ids over 255
Minor text fixes
* Adds in some animation reset instructions during item get message
* Stores previously collected item index in save, re-sends missing items
* Adds title screen check before sending locations
Loading items from save could not be done via RAM. Had to be added in
assembly
* Adds progressive undernet check
* Added library for lzss decoding bits of rom
* More progress on parsing text events from ROM
* Adds a way to inject messages into ScriptArchive data structure and generate bytecode
* Adds Item definitions, passes to client
* Adds regions and item collection rules
* Touched up a few names and values that have changed in preparation for the final patching
* Modifying messages via item is now successful
* Added generate_output hook to generate ROM data
* Generates ROM successfully
* Fixes navi cust give index
* Whoops forgot to wrap this in brackets
* Injects extra scripts for undernet rankings
* Programs had ammount and color swapped
* Prompts the user for their username when connecting
* Adds flagClear to the list of commands to avoid overwriting
* Fixes message box crashes and several other multiworld issues
* Fixes IDs and names of several items and locations
* Added .gba to gitignore
* Fixes compatibility after recent rebase
* Fixes some locations and items that are otherwise unobtainable
* Attempts to make a working launcher in the installer
* Creates installer and fixes several inaccessible locations
* Many minor changes to items, locations, and requirements made during testing
* Adds an info page for MMBN3
* Fixes failing tests by removing duplicate IDs and properly marking progression items
* Accidentally forgot to un-remove the thing
* Whoops, changed this by accident
* Updates self.world references to self.multiworld
* Fixes imports to use from imports instead of using the namespace
* Removed some leftover merge artifacts from inno setup
* Puts back that darned signtool line again
* Adds Overworld Metro keys as items
* Adds TamaCode and puts shortcuts behind cyber passes
* Fixes Numberman code 16 check
* Fixes metro access logic and adds text to metro
* Reworks Lua to fix crashing when many items are queued
* Items for other BN3 games for different players are no longer given in the main player's ROM as well
* Fixes incorrect Item ID for ACDC Metro
* Fixes multi-box text messages
* Adds timer before sending an item
* Forgot to remove the second box of SubMems
* Updates patch and lua to prevent softlocks and crashes
* Adds options for extra undernet ranks, exclude jobs
* Extra GigFreez now gives 20 bugfrags
* Additional Progressive Undernets can no longer appear on the WWW Base
* Moves item signal byte to empty area of flags instead of end of RAM
* Adds Chocolate Shop locations and navi chips to fill them
* Fixes save crash, and added chocolates to lua
* Fixes chocolate stand selling out text, removes DrillMan cube in Undernet
* Replaces old messaging system with direct memory manipulation for receiving items
* Removes NDSPY requirements from MMBN3 by manually adapting the GBA's lz10 algorithm
* Fixes the names of Hospital-1 Locations
* Adds Canary Bit to avoid sending checks when title screen check fails
* Gaining a cybermetro pass will now open the shortcut immediately
* Randomizes the two accessible areas of Undernet 7, adds Hammer as item
* Adds new locations to connector lua
* Injects the name of the item into trade quests
* Fixes copy-paste error in docs
* Fixes merge artifacts and depracated code
* Nut-wafer stand now faces Lan the right way after buying
* Removes unused Goal Option and updates the readme to include most recent changes
* Touch-ups and formatting changes
* The Great Fillerization update. Dozens of items changed to Filler
* Replaces instances of Mega Man with MegaMan
* Update worlds/mmbn3/docs/en_MegaMan Battle Network 3.md
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Update worlds/mmbn3/__init__.py
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
* Changes code ordering to suit base class's
* assert_generate now checks for roms. Minor text fixes
* Makes player specific frequency and excluded location options
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Addresses suggested changes from PR review
* Replaces ndspy lz10 with MIT-compliant nlzss lz10
* apworld compatibility fix for mmbn3_options from utils
* Addressing more comments by el-u
* APworld will now pull patch from zip folder
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Cleaned up comments for progressive undernet ROM function, moved index list to field to avoid re-initializing
* Removes improper player-indexed location/item dicts, replaces with world member variables
* Avoids redefining list in progressive undernet ROM function
* Filler items can no longer be generated beyond their specified amounts
* Fixes list copying issue with item frequencies
* Adds BN3 Client Generation back into Launcher settings
* Fixes typos causing huge problems
* Fixed non-relative import for apworld
* Removes custom enum implementation that broke pickle
* Displays message when attempting to load an incorrect ROM, will not attempt to patch it
* Filler items can now only be placed once
* Changes path in setup doc to match Lua path changes
* Fixes file extension for MMBN3 file
* Replaces magic number with reference to value in NetUtils
* Moves victory rules to set_rules. Removes commented out code
* Rewrites Lua script to send block of memory
* Fixes off-by-one error in sending bytes for locations
* Fixes issue with invalid characters in text parsing, and WWW monitor text box parsing
* Moves trade text injection to init so it has access to options
* Attempts to split the text boxes for hinted items
* Trade checks now provide hints if the option is set for them
* Fixes escape character issue for BizHawk 2.9.1
Something in Bizhawk lua parsing changed to dislike the escaped tilde.
I'm not even entirely sure why it was escaped in the first place, but
this should fix the compatibility of it.
* Re-adds desk check that it turns out actually does exist
* Updates requirements to mention bizhawk 2.7 instead of 2.3.1
* Fixes off-by-one error in command byte counts
* Fixes program color indices
* Fixes newline PEP violations
* Reverts an accidental whitespace change made to launcher.py
* Fixes URL formatting on link to settings from setup guide
Co-authored-by: Zach Parks <zach@alliware.com>
* Splits several lines in the readme to avoid excessive length
* Fixes formatting and (hopefully) reduces cringe of joke in setup doc
* Removes unnecessary constructor
* Changes item frequency generation to avoid reusing the same references
Co-authored-by: Zach Parks <zach@alliware.com>
---------
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
Co-authored-by: Zach Parks <zach@alliware.com>
											 
										 
										
											2023-06-29 12:36:01 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  Result.Add(
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    'Location of ROM file:',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    'GBA ROM files|*.gba|All files|*.*',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    '.gba');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								end;
							 
						 
					
						
							
								
									
										
										
										
											2022-10-20 10:41:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
											 
										
											
												Mega Man Battle Network 3: Implement New Game (#1198)
* Initializes MMBN3 world with empty files
* Adds item names to item dict
* Adds locations and names
* Adds skeleton of MMBN3Client. Mostly copy pasta from OOT
* Fixed some style and formatting
* More incremental Lua tests
* Adds all locations and checking to Lua connector
* Made class definitions for TextPet Parser
* Begun connecting item delivery system through lua and textpet
* Lua Connection can now send test items
* Item Delivery is now parameterized. Test command can send any chip
* Adds the ability to send non-chip items
* Fixes name errors in python client
* Fixes count for zenny, attempts to fix bugfrags
* Fixes an issue where you always received 255 bugfrags
* Converts zenny and bugfrag amounts to little endian bytecode
* Checks game state before sending chips
Adds debug option to display information overlayed on rom
Fixes chip indexing issue for chips with ids over 255
Minor text fixes
* Adds in some animation reset instructions during item get message
* Stores previously collected item index in save, re-sends missing items
* Adds title screen check before sending locations
Loading items from save could not be done via RAM. Had to be added in
assembly
* Adds progressive undernet check
* Added library for lzss decoding bits of rom
* More progress on parsing text events from ROM
* Adds a way to inject messages into ScriptArchive data structure and generate bytecode
* Adds Item definitions, passes to client
* Adds regions and item collection rules
* Touched up a few names and values that have changed in preparation for the final patching
* Modifying messages via item is now successful
* Added generate_output hook to generate ROM data
* Generates ROM successfully
* Fixes navi cust give index
* Whoops forgot to wrap this in brackets
* Injects extra scripts for undernet rankings
* Programs had ammount and color swapped
* Prompts the user for their username when connecting
* Adds flagClear to the list of commands to avoid overwriting
* Fixes message box crashes and several other multiworld issues
* Fixes IDs and names of several items and locations
* Added .gba to gitignore
* Fixes compatibility after recent rebase
* Fixes some locations and items that are otherwise unobtainable
* Attempts to make a working launcher in the installer
* Creates installer and fixes several inaccessible locations
* Many minor changes to items, locations, and requirements made during testing
* Adds an info page for MMBN3
* Fixes failing tests by removing duplicate IDs and properly marking progression items
* Accidentally forgot to un-remove the thing
* Whoops, changed this by accident
* Updates self.world references to self.multiworld
* Fixes imports to use from imports instead of using the namespace
* Removed some leftover merge artifacts from inno setup
* Puts back that darned signtool line again
* Adds Overworld Metro keys as items
* Adds TamaCode and puts shortcuts behind cyber passes
* Fixes Numberman code 16 check
* Fixes metro access logic and adds text to metro
* Reworks Lua to fix crashing when many items are queued
* Items for other BN3 games for different players are no longer given in the main player's ROM as well
* Fixes incorrect Item ID for ACDC Metro
* Fixes multi-box text messages
* Adds timer before sending an item
* Forgot to remove the second box of SubMems
* Updates patch and lua to prevent softlocks and crashes
* Adds options for extra undernet ranks, exclude jobs
* Extra GigFreez now gives 20 bugfrags
* Additional Progressive Undernets can no longer appear on the WWW Base
* Moves item signal byte to empty area of flags instead of end of RAM
* Adds Chocolate Shop locations and navi chips to fill them
* Fixes save crash, and added chocolates to lua
* Fixes chocolate stand selling out text, removes DrillMan cube in Undernet
* Replaces old messaging system with direct memory manipulation for receiving items
* Removes NDSPY requirements from MMBN3 by manually adapting the GBA's lz10 algorithm
* Fixes the names of Hospital-1 Locations
* Adds Canary Bit to avoid sending checks when title screen check fails
* Gaining a cybermetro pass will now open the shortcut immediately
* Randomizes the two accessible areas of Undernet 7, adds Hammer as item
* Adds new locations to connector lua
* Injects the name of the item into trade quests
* Fixes copy-paste error in docs
* Fixes merge artifacts and depracated code
* Nut-wafer stand now faces Lan the right way after buying
* Removes unused Goal Option and updates the readme to include most recent changes
* Touch-ups and formatting changes
* The Great Fillerization update. Dozens of items changed to Filler
* Replaces instances of Mega Man with MegaMan
* Update worlds/mmbn3/docs/en_MegaMan Battle Network 3.md
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Update worlds/mmbn3/__init__.py
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
* Changes code ordering to suit base class's
* assert_generate now checks for roms. Minor text fixes
* Makes player specific frequency and excluded location options
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Addresses suggested changes from PR review
* Replaces ndspy lz10 with MIT-compliant nlzss lz10
* apworld compatibility fix for mmbn3_options from utils
* Addressing more comments by el-u
* APworld will now pull patch from zip folder
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Cleaned up comments for progressive undernet ROM function, moved index list to field to avoid re-initializing
* Removes improper player-indexed location/item dicts, replaces with world member variables
* Avoids redefining list in progressive undernet ROM function
* Filler items can no longer be generated beyond their specified amounts
* Fixes list copying issue with item frequencies
* Adds BN3 Client Generation back into Launcher settings
* Fixes typos causing huge problems
* Fixed non-relative import for apworld
* Removes custom enum implementation that broke pickle
* Displays message when attempting to load an incorrect ROM, will not attempt to patch it
* Filler items can now only be placed once
* Changes path in setup doc to match Lua path changes
* Fixes file extension for MMBN3 file
* Replaces magic number with reference to value in NetUtils
* Moves victory rules to set_rules. Removes commented out code
* Rewrites Lua script to send block of memory
* Fixes off-by-one error in sending bytes for locations
* Fixes issue with invalid characters in text parsing, and WWW monitor text box parsing
* Moves trade text injection to init so it has access to options
* Attempts to split the text boxes for hinted items
* Trade checks now provide hints if the option is set for them
* Fixes escape character issue for BizHawk 2.9.1
Something in Bizhawk lua parsing changed to dislike the escaped tilde.
I'm not even entirely sure why it was escaped in the first place, but
this should fix the compatibility of it.
* Re-adds desk check that it turns out actually does exist
* Updates requirements to mention bizhawk 2.7 instead of 2.3.1
* Fixes off-by-one error in command byte counts
* Fixes program color indices
* Fixes newline PEP violations
* Reverts an accidental whitespace change made to launcher.py
* Fixes URL formatting on link to settings from setup guide
Co-authored-by: Zach Parks <zach@alliware.com>
* Splits several lines in the readme to avoid excessive length
* Fixes formatting and (hopefully) reduces cringe of joke in setup doc
* Removes unnecessary constructor
* Changes item frequency generation to avoid reusing the same references
Co-authored-by: Zach Parks <zach@alliware.com>
---------
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
Co-authored-by: Zach Parks <zach@alliware.com>
											 
										 
										
											2023-06-29 12:36:01 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function AddSMSRomPage(name: string): TInputFileWizardPage;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Result :=
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CreateInputFilePage(
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      wpSelectComponents,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'Select ROM File',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'Where is your ' + name + ' located?',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'Select the file, then click Next.');
							 
						 
					
						
							
								
									
										
										
										
											2022-10-20 10:41:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  Result.Add(
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    'Location of ROM file:',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    'SMS ROM files|*.sms|All files|*.*',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    '.sms');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 10:45:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function AddNESRomPage(name: string): TInputFileWizardPage;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Result :=
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CreateInputFilePage(
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      wpSelectComponents,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'Select ROM File',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'Where is your ' + name + ' located?',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'Select the file, then click Next.');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Result.Add(
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    'Location of ROM file:',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    'NES ROM files|*.nes|All files|*.*',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    '.nes');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								procedure AddOoTRomPage();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ootrom := FileSearch('The Legend of Zelda - Ocarina of Time.z64', WizardDirValue());
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(ootrom) > 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      log('existing ROM found');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      log(IntToStr(CompareStr(GetMD5OfFile(ootrom), '5bd1fe107bf8106b2ab6650abecd54d6'))); // normal
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      log(IntToStr(CompareStr(GetMD5OfFile(ootrom), '6697768a7a7df2dd27a692a2638ea90b'))); // byteswapped
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      log(IntToStr(CompareStr(GetMD5OfFile(ootrom), '05f0f3ebacbc8df9243b6148ffe4792f'))); // decompressed
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if (CompareStr(GetMD5OfFile(ootrom), '5bd1fe107bf8106b2ab6650abecd54d6') = 0) or (CompareStr(GetMD5OfFile(ootrom), '6697768a7a7df2dd27a692a2638ea90b') = 0) or (CompareStr(GetMD5OfFile(ootrom), '05f0f3ebacbc8df9243b6148ffe4792f') = 0) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        log('existing ROM verified');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        exit;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      log('existing ROM failed verification');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ootrom := ''
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  OoTROMFilePage :=
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CreateInputFilePage(
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      wpSelectComponents,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'Select ROM File',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'Where is your OoT 1.0 ROM located?',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'Select the file, then click Next.');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  OoTROMFilePage.Add(
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    'Location of ROM file:',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    'N64 ROM files (*.z64, *.n64)|*.z64;*.n64|All files|*.*',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    '.z64');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 07:25:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function AddA26Page(name: string): TInputFileWizardPage;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Result :=
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CreateInputFilePage(
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      wpSelectComponents,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'Select ROM File',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'Where is your ' + name + ' located?',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      'Select the file, then click Next.');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Result.Add(
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    'Location of ROM file:',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    'A2600 ROM files|*.BIN;*.a26|All files|*.*',
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    '.BIN');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								function NextButtonClick(CurPageID: Integer): Boolean;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
									
										
											 
										
											
												MC: 1.17 support (#120)
* MC: add death_link option
* Minecraft: 1.17 advancements and logic support
* Update Minecraft tracker to 1.17
* Minecraft: add tests for new advancements
* removed jdk/forge download install out of iss and into MinecraftClient.py using flag --install
* Add required_bosses option
choices are none, ender_dragon, wither, both
postgame advancements are set according to the required boss for completion
* fix docstring for PostgameAdvancements
* Minecraft: add starting_items
List of dicts: item, amount, nbt
* Update descriptions for AdvancementGoal and EggShardsRequired
* Minecraft: fix tests for required_bosses attribute
* Minecraft: updated logic for various dragon-related advancements
Split the logic into can_respawn and can_kill dragon
Free the End, Monsters Hunted, The End Again still require both respawn and kill, since the player needs to kill and be credited with the kill
You Need a Mint and Is It a Plane now require only respawn, since the dragon need only be alive; if killed out of logic, it's ok
The Next Generation only requires kill, since the egg spawns regardless of whether the player was credited with the kill or not
* Minecraft client: ignore prereleases unless --prerelease flag is on
* explicitly state all defaults
change structure shuffle and structure compass defaults to true
update install tutorial to point to player-settings page, as well as removing instructions for manual install
* Minecraft client: add Minecraft version check
Adds a minecraft_version field in the apmc, and downloads only mods which contain that version in the name of the .jar file.
This ensures that the client remains compatible even if new mods are released for later versions, since they won't download a mod for a later version than the apmc says.
Co-authored-by: Kono Tyran <Kono.Tyran@gmail.com>
											 
										 
										
											2021-11-30 20:37:11 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if (assigned(LttPROMFilePage)) and (CurPageID = LttPROMFilePage.ID) then
							 
						 
					
						
							
								
									
										
										
										
											2021-11-14 23:14:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Result := not (LttPROMFilePage.Values[0] = '')
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else if (assigned(SMROMFilePage)) and (CurPageID = SMROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (SMROMFilePage.Values[0] = '')
							 
						 
					
						
							
								
									
										
										
										
											2022-07-22 01:02:25 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else if (assigned(DKC3ROMFilePage)) and (CurPageID = DKC3ROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (DKC3ROMFilePage.Values[0] = '')
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 14:16:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else if (assigned(SMWROMFilePage)) and (CurPageID = SMWROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (SMWROMFilePage.Values[0] = '')
							 
						 
					
						
							
								
									
										
										
										
											2021-11-14 23:14:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else if (assigned(SoEROMFilePage)) and (CurPageID = SoEROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (SoEROMFilePage.Values[0] = '')
							 
						 
					
						
							
								
									
										
										
										
											2022-12-12 02:36:18 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else if (assigned(L2ACROMFilePage)) and (CurPageID = L2ACROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (L2ACROMFilePage.Values[0] = '')
							 
						 
					
						
							
								
									
										
										
										
											2021-11-14 23:14:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else if (assigned(OoTROMFilePage)) and (CurPageID = OoTROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (OoTROMFilePage.Values[0] = '')
							 
						 
					
						
							
								
									
										
											 
										
											
												Mega Man Battle Network 3: Implement New Game (#1198)
* Initializes MMBN3 world with empty files
* Adds item names to item dict
* Adds locations and names
* Adds skeleton of MMBN3Client. Mostly copy pasta from OOT
* Fixed some style and formatting
* More incremental Lua tests
* Adds all locations and checking to Lua connector
* Made class definitions for TextPet Parser
* Begun connecting item delivery system through lua and textpet
* Lua Connection can now send test items
* Item Delivery is now parameterized. Test command can send any chip
* Adds the ability to send non-chip items
* Fixes name errors in python client
* Fixes count for zenny, attempts to fix bugfrags
* Fixes an issue where you always received 255 bugfrags
* Converts zenny and bugfrag amounts to little endian bytecode
* Checks game state before sending chips
Adds debug option to display information overlayed on rom
Fixes chip indexing issue for chips with ids over 255
Minor text fixes
* Adds in some animation reset instructions during item get message
* Stores previously collected item index in save, re-sends missing items
* Adds title screen check before sending locations
Loading items from save could not be done via RAM. Had to be added in
assembly
* Adds progressive undernet check
* Added library for lzss decoding bits of rom
* More progress on parsing text events from ROM
* Adds a way to inject messages into ScriptArchive data structure and generate bytecode
* Adds Item definitions, passes to client
* Adds regions and item collection rules
* Touched up a few names and values that have changed in preparation for the final patching
* Modifying messages via item is now successful
* Added generate_output hook to generate ROM data
* Generates ROM successfully
* Fixes navi cust give index
* Whoops forgot to wrap this in brackets
* Injects extra scripts for undernet rankings
* Programs had ammount and color swapped
* Prompts the user for their username when connecting
* Adds flagClear to the list of commands to avoid overwriting
* Fixes message box crashes and several other multiworld issues
* Fixes IDs and names of several items and locations
* Added .gba to gitignore
* Fixes compatibility after recent rebase
* Fixes some locations and items that are otherwise unobtainable
* Attempts to make a working launcher in the installer
* Creates installer and fixes several inaccessible locations
* Many minor changes to items, locations, and requirements made during testing
* Adds an info page for MMBN3
* Fixes failing tests by removing duplicate IDs and properly marking progression items
* Accidentally forgot to un-remove the thing
* Whoops, changed this by accident
* Updates self.world references to self.multiworld
* Fixes imports to use from imports instead of using the namespace
* Removed some leftover merge artifacts from inno setup
* Puts back that darned signtool line again
* Adds Overworld Metro keys as items
* Adds TamaCode and puts shortcuts behind cyber passes
* Fixes Numberman code 16 check
* Fixes metro access logic and adds text to metro
* Reworks Lua to fix crashing when many items are queued
* Items for other BN3 games for different players are no longer given in the main player's ROM as well
* Fixes incorrect Item ID for ACDC Metro
* Fixes multi-box text messages
* Adds timer before sending an item
* Forgot to remove the second box of SubMems
* Updates patch and lua to prevent softlocks and crashes
* Adds options for extra undernet ranks, exclude jobs
* Extra GigFreez now gives 20 bugfrags
* Additional Progressive Undernets can no longer appear on the WWW Base
* Moves item signal byte to empty area of flags instead of end of RAM
* Adds Chocolate Shop locations and navi chips to fill them
* Fixes save crash, and added chocolates to lua
* Fixes chocolate stand selling out text, removes DrillMan cube in Undernet
* Replaces old messaging system with direct memory manipulation for receiving items
* Removes NDSPY requirements from MMBN3 by manually adapting the GBA's lz10 algorithm
* Fixes the names of Hospital-1 Locations
* Adds Canary Bit to avoid sending checks when title screen check fails
* Gaining a cybermetro pass will now open the shortcut immediately
* Randomizes the two accessible areas of Undernet 7, adds Hammer as item
* Adds new locations to connector lua
* Injects the name of the item into trade quests
* Fixes copy-paste error in docs
* Fixes merge artifacts and depracated code
* Nut-wafer stand now faces Lan the right way after buying
* Removes unused Goal Option and updates the readme to include most recent changes
* Touch-ups and formatting changes
* The Great Fillerization update. Dozens of items changed to Filler
* Replaces instances of Mega Man with MegaMan
* Update worlds/mmbn3/docs/en_MegaMan Battle Network 3.md
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Update worlds/mmbn3/__init__.py
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
* Changes code ordering to suit base class's
* assert_generate now checks for roms. Minor text fixes
* Makes player specific frequency and excluded location options
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Addresses suggested changes from PR review
* Replaces ndspy lz10 with MIT-compliant nlzss lz10
* apworld compatibility fix for mmbn3_options from utils
* Addressing more comments by el-u
* APworld will now pull patch from zip folder
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Cleaned up comments for progressive undernet ROM function, moved index list to field to avoid re-initializing
* Removes improper player-indexed location/item dicts, replaces with world member variables
* Avoids redefining list in progressive undernet ROM function
* Filler items can no longer be generated beyond their specified amounts
* Fixes list copying issue with item frequencies
* Adds BN3 Client Generation back into Launcher settings
* Fixes typos causing huge problems
* Fixed non-relative import for apworld
* Removes custom enum implementation that broke pickle
* Displays message when attempting to load an incorrect ROM, will not attempt to patch it
* Filler items can now only be placed once
* Changes path in setup doc to match Lua path changes
* Fixes file extension for MMBN3 file
* Replaces magic number with reference to value in NetUtils
* Moves victory rules to set_rules. Removes commented out code
* Rewrites Lua script to send block of memory
* Fixes off-by-one error in sending bytes for locations
* Fixes issue with invalid characters in text parsing, and WWW monitor text box parsing
* Moves trade text injection to init so it has access to options
* Attempts to split the text boxes for hinted items
* Trade checks now provide hints if the option is set for them
* Fixes escape character issue for BizHawk 2.9.1
Something in Bizhawk lua parsing changed to dislike the escaped tilde.
I'm not even entirely sure why it was escaped in the first place, but
this should fix the compatibility of it.
* Re-adds desk check that it turns out actually does exist
* Updates requirements to mention bizhawk 2.7 instead of 2.3.1
* Fixes off-by-one error in command byte counts
* Fixes program color indices
* Fixes newline PEP violations
* Reverts an accidental whitespace change made to launcher.py
* Fixes URL formatting on link to settings from setup guide
Co-authored-by: Zach Parks <zach@alliware.com>
* Splits several lines in the readme to avoid excessive length
* Fixes formatting and (hopefully) reduces cringe of joke in setup doc
* Removes unnecessary constructor
* Changes item frequency generation to avoid reusing the same references
Co-authored-by: Zach Parks <zach@alliware.com>
---------
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
Co-authored-by: Zach Parks <zach@alliware.com>
											 
										 
										
											2023-06-29 12:36:01 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else if (assigned(BN3ROMFilePage)) and (CurPageID = BN3ROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (BN3ROMFilePage.Values[0] = '')
							 
						 
					
						
							
								
									
										
										
										
											2022-10-20 10:41:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else if (assigned(ZlROMFilePage)) and (CurPageID = ZlROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (ZlROMFilePage.Values[0] = '')
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 01:26:03 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else if (assigned(RedROMFilePage)) and (CurPageID = RedROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (RedROMFilePage.Values[0] = '')
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else if (assigned(BlueROMFilePage)) and (CurPageID = BlueROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (BlueROMFilePage.Values[0] = '')
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else if (assigned(LADXROMFilePage)) and (CurPageID = LADXROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (LADXROMFilePage.Values[0] = '')
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 10:45:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else if (assigned(TLoZROMFilePage)) and (CurPageID = TLoZROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (TLoZROMFilePage.Values[0] = '')
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 07:25:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else if (assigned(AdvnROMFilePage)) and (CurPageID = AdvnROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (AdvnROMFilePage.Values[0] = '')
							 
						 
					
						
							
								
									
										
										
										
											2021-11-14 23:14:52 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Result := True;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function GetROMPath(Param: string): string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 16:32:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if Length(lttprom) > 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := lttprom
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else if Assigned(LttPRomFilePage) then
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    begin
							 
						 
					
						
							
								
									
										
										
										
											2021-11-14 22:45:49 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      R := CompareStr(GetSNESMD5OfFile(LttPROMFilePage.Values[0]), '03a63945398191337e896e5771f77173')
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								      if R <> 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        MsgBox('ALttP ROM validation failed. Very likely wrong file.', mbInformation, MB_OK);
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 03:33:25 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 16:32:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      Result := LttPROMFilePage.Values[0]
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := '';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-12 23:43:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function GetSMROMPath(Param: string): string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(smrom) > 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := smrom
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else if Assigned(SMRomFilePage) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    begin
							 
						 
					
						
							
								
									
										
										
										
											2021-11-14 22:45:49 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      R := CompareStr(GetSNESMD5OfFile(SMROMFilePage.Values[0]), '21f3e98df4780ee1c667b84e57d88675')
							 
						 
					
						
							
								
									
										
										
										
											2021-11-12 23:43:22 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      if R <> 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        MsgBox('Super Metroid ROM validation failed. Very likely wrong file.', mbInformation, MB_OK);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Result := SMROMFilePage.Values[0]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := '';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-22 01:02:25 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function GetDKC3ROMPath(Param: string): string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(dkc3rom) > 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := dkc3rom
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else if Assigned(DKC3RomFilePage) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      R := CompareStr(GetSNESMD5OfFile(DKC3ROMFilePage.Values[0]), '120abf304f0c40fe059f6a192ed4f947')
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if R <> 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        MsgBox('Donkey Kong Country 3 ROM validation failed. Very likely wrong file.', mbInformation, MB_OK);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Result := DKC3ROMFilePage.Values[0]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := '';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 14:16:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function GetSMWROMPath(Param: string): string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(smwrom) > 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := smwrom
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else if Assigned(SMWRomFilePage) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      R := CompareStr(GetSNESMD5OfFile(SMWROMFilePage.Values[0]), 'cdd3c8c37322978ca8669b34bc89c804')
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if R <> 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        MsgBox('Super Mario World ROM validation failed. Very likely wrong file.', mbInformation, MB_OK);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Result := SMWROMFilePage.Values[0]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := '';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 03:33:25 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function GetSoEROMPath(Param: string): string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(soerom) > 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := soerom
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else if Assigned(SoERomFilePage) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    begin
							 
						 
					
						
							
								
									
										
										
										
											2021-11-14 22:45:49 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      R := CompareStr(GetSNESMD5OfFile(SoEROMFilePage.Values[0]), '6e9c94511d04fac6e0a1e582c170be3a')
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 03:33:25 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      if R <> 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        MsgBox('Secret of Evermore ROM validation failed. Very likely wrong file.', mbInformation, MB_OK);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Result := SoEROMFilePage.Values[0]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := '';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								function GetOoTROMPath(Param: string): string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(ootrom) > 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := ootrom
							 
						 
					
						
							
								
									
										
										
										
											2021-12-01 02:47:08 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else if Assigned(OoTROMFilePage) then
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      R := CompareStr(GetMD5OfFile(OoTROMFilePage.Values[0]), '5bd1fe107bf8106b2ab6650abecd54d6') * CompareStr(GetMD5OfFile(OoTROMFilePage.Values[0]), '6697768a7a7df2dd27a692a2638ea90b') * CompareStr(GetMD5OfFile(OoTROMFilePage.Values[0]), '05f0f3ebacbc8df9243b6148ffe4792f');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if R <> 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        MsgBox('OoT ROM validation failed. Very likely wrong file.', mbInformation, MB_OK);
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 16:32:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-04 16:48:02 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								      Result := OoTROMFilePage.Values[0]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := '';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								end;
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 16:32:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-12-12 02:36:18 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function GetL2ACROMPath(Param: string): string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(l2acrom) > 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := l2acrom
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else if Assigned(L2ACROMFilePage) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      R := CompareStr(GetSNESMD5OfFile(L2ACROMFilePage.Values[0]), '6efc477d6203ed2b3b9133c1cd9e9c5d')
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if R <> 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        MsgBox('Lufia II ROM validation failed. Very likely wrong file.', mbInformation, MB_OK);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Result := L2ACROMFilePage.Values[0]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := '';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-10-20 10:41:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function GetZlROMPath(Param: string): string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(zlrom) > 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := zlrom
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else if Assigned(ZlROMFilePage) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      R := CompareStr(GetMD5OfFile(ZlROMFilePage.Values[0]), 'd4bf9e7bcf9a48da53785d2ae7bc4270');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if R <> 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        MsgBox('Zillion ROM validation failed. Very likely wrong file.', mbInformation, MB_OK);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Result := ZlROMFilePage.Values[0]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := '';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-10-13 01:45:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function GetRedROMPath(Param: string): string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(redrom) > 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := redrom
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 01:26:03 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else if Assigned(RedROMFilePage) then
							 
						 
					
						
							
								
									
										
										
										
											2022-10-13 01:45:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      R := CompareStr(GetMD5OfFile(RedROMFilePage.Values[0]), '3d45c1ee9abd5738df46d2bdda8b57dc')
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if R <> 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        MsgBox('Pokemon Red ROM validation failed. Very likely wrong file.', mbInformation, MB_OK);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Result := RedROMFilePage.Values[0]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := '';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function GetBlueROMPath(Param: string): string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(bluerom) > 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := bluerom
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 01:26:03 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  else if Assigned(BlueROMFilePage) then
							 
						 
					
						
							
								
									
										
										
										
											2022-10-13 01:45:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      R := CompareStr(GetMD5OfFile(BlueROMFilePage.Values[0]), '50927e843568814f7ed45ec4f944bd8b')
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if R <> 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        MsgBox('Pokemon Blue ROM validation failed. Very likely wrong file.', mbInformation, MB_OK);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Result := BlueROMFilePage.Values[0]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := '';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 end;
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 10:45:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function GetTLoZROMPath(Param: string): string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(tlozrom) > 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := tlozrom
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else if Assigned(TLoZROMFilePage) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      R := CompareStr(GetMD5OfFile(TLoZROMFilePage.Values[0]), '337bd6f1a1163df31bf2633665589ab0');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if R <> 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        MsgBox('The Legend of Zelda ROM validation failed. Very likely wrong file.', mbInformation, MB_OK);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Result := TLoZROMFilePage.Values[0]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := '';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								end;
							 
						 
					
						
							
								
									
										
										
										
											2022-10-13 01:45:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 01:26:03 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function GetLADXROMPath(Param: string): string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(ladxrom) > 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := ladxrom
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else if Assigned(LADXROMFilePage) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      R := CompareStr(GetMD5OfFile(LADXROMFilePage.Values[0]), '07c211479386825042efb4ad31bb525f')
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if R <> 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        MsgBox('Link''s Awakening DX ROM validation failed. Very likely wrong file.', mbInformation, MB_OK);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Result := LADXROMFilePage.Values[0]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := '';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 07:25:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function GetAdvnROMPath(Param: string): string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(advnrom) > 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := advnrom
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else if Assigned(AdvnROMFilePage) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      R := CompareStr(GetMD5OfFile(AdvnROMFilePage.Values[0]), '157bddb7192754a45372be196797f284');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if R <> 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        MsgBox('Adventure ROM validation failed. Very likely wrong file.', mbInformation, MB_OK);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Result := AdvnROMFilePage.Values[0]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := '';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
											 
										
											
												Mega Man Battle Network 3: Implement New Game (#1198)
* Initializes MMBN3 world with empty files
* Adds item names to item dict
* Adds locations and names
* Adds skeleton of MMBN3Client. Mostly copy pasta from OOT
* Fixed some style and formatting
* More incremental Lua tests
* Adds all locations and checking to Lua connector
* Made class definitions for TextPet Parser
* Begun connecting item delivery system through lua and textpet
* Lua Connection can now send test items
* Item Delivery is now parameterized. Test command can send any chip
* Adds the ability to send non-chip items
* Fixes name errors in python client
* Fixes count for zenny, attempts to fix bugfrags
* Fixes an issue where you always received 255 bugfrags
* Converts zenny and bugfrag amounts to little endian bytecode
* Checks game state before sending chips
Adds debug option to display information overlayed on rom
Fixes chip indexing issue for chips with ids over 255
Minor text fixes
* Adds in some animation reset instructions during item get message
* Stores previously collected item index in save, re-sends missing items
* Adds title screen check before sending locations
Loading items from save could not be done via RAM. Had to be added in
assembly
* Adds progressive undernet check
* Added library for lzss decoding bits of rom
* More progress on parsing text events from ROM
* Adds a way to inject messages into ScriptArchive data structure and generate bytecode
* Adds Item definitions, passes to client
* Adds regions and item collection rules
* Touched up a few names and values that have changed in preparation for the final patching
* Modifying messages via item is now successful
* Added generate_output hook to generate ROM data
* Generates ROM successfully
* Fixes navi cust give index
* Whoops forgot to wrap this in brackets
* Injects extra scripts for undernet rankings
* Programs had ammount and color swapped
* Prompts the user for their username when connecting
* Adds flagClear to the list of commands to avoid overwriting
* Fixes message box crashes and several other multiworld issues
* Fixes IDs and names of several items and locations
* Added .gba to gitignore
* Fixes compatibility after recent rebase
* Fixes some locations and items that are otherwise unobtainable
* Attempts to make a working launcher in the installer
* Creates installer and fixes several inaccessible locations
* Many minor changes to items, locations, and requirements made during testing
* Adds an info page for MMBN3
* Fixes failing tests by removing duplicate IDs and properly marking progression items
* Accidentally forgot to un-remove the thing
* Whoops, changed this by accident
* Updates self.world references to self.multiworld
* Fixes imports to use from imports instead of using the namespace
* Removed some leftover merge artifacts from inno setup
* Puts back that darned signtool line again
* Adds Overworld Metro keys as items
* Adds TamaCode and puts shortcuts behind cyber passes
* Fixes Numberman code 16 check
* Fixes metro access logic and adds text to metro
* Reworks Lua to fix crashing when many items are queued
* Items for other BN3 games for different players are no longer given in the main player's ROM as well
* Fixes incorrect Item ID for ACDC Metro
* Fixes multi-box text messages
* Adds timer before sending an item
* Forgot to remove the second box of SubMems
* Updates patch and lua to prevent softlocks and crashes
* Adds options for extra undernet ranks, exclude jobs
* Extra GigFreez now gives 20 bugfrags
* Additional Progressive Undernets can no longer appear on the WWW Base
* Moves item signal byte to empty area of flags instead of end of RAM
* Adds Chocolate Shop locations and navi chips to fill them
* Fixes save crash, and added chocolates to lua
* Fixes chocolate stand selling out text, removes DrillMan cube in Undernet
* Replaces old messaging system with direct memory manipulation for receiving items
* Removes NDSPY requirements from MMBN3 by manually adapting the GBA's lz10 algorithm
* Fixes the names of Hospital-1 Locations
* Adds Canary Bit to avoid sending checks when title screen check fails
* Gaining a cybermetro pass will now open the shortcut immediately
* Randomizes the two accessible areas of Undernet 7, adds Hammer as item
* Adds new locations to connector lua
* Injects the name of the item into trade quests
* Fixes copy-paste error in docs
* Fixes merge artifacts and depracated code
* Nut-wafer stand now faces Lan the right way after buying
* Removes unused Goal Option and updates the readme to include most recent changes
* Touch-ups and formatting changes
* The Great Fillerization update. Dozens of items changed to Filler
* Replaces instances of Mega Man with MegaMan
* Update worlds/mmbn3/docs/en_MegaMan Battle Network 3.md
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Update worlds/mmbn3/__init__.py
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
* Changes code ordering to suit base class's
* assert_generate now checks for roms. Minor text fixes
* Makes player specific frequency and excluded location options
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Addresses suggested changes from PR review
* Replaces ndspy lz10 with MIT-compliant nlzss lz10
* apworld compatibility fix for mmbn3_options from utils
* Addressing more comments by el-u
* APworld will now pull patch from zip folder
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Cleaned up comments for progressive undernet ROM function, moved index list to field to avoid re-initializing
* Removes improper player-indexed location/item dicts, replaces with world member variables
* Avoids redefining list in progressive undernet ROM function
* Filler items can no longer be generated beyond their specified amounts
* Fixes list copying issue with item frequencies
* Adds BN3 Client Generation back into Launcher settings
* Fixes typos causing huge problems
* Fixed non-relative import for apworld
* Removes custom enum implementation that broke pickle
* Displays message when attempting to load an incorrect ROM, will not attempt to patch it
* Filler items can now only be placed once
* Changes path in setup doc to match Lua path changes
* Fixes file extension for MMBN3 file
* Replaces magic number with reference to value in NetUtils
* Moves victory rules to set_rules. Removes commented out code
* Rewrites Lua script to send block of memory
* Fixes off-by-one error in sending bytes for locations
* Fixes issue with invalid characters in text parsing, and WWW monitor text box parsing
* Moves trade text injection to init so it has access to options
* Attempts to split the text boxes for hinted items
* Trade checks now provide hints if the option is set for them
* Fixes escape character issue for BizHawk 2.9.1
Something in Bizhawk lua parsing changed to dislike the escaped tilde.
I'm not even entirely sure why it was escaped in the first place, but
this should fix the compatibility of it.
* Re-adds desk check that it turns out actually does exist
* Updates requirements to mention bizhawk 2.7 instead of 2.3.1
* Fixes off-by-one error in command byte counts
* Fixes program color indices
* Fixes newline PEP violations
* Reverts an accidental whitespace change made to launcher.py
* Fixes URL formatting on link to settings from setup guide
Co-authored-by: Zach Parks <zach@alliware.com>
* Splits several lines in the readme to avoid excessive length
* Fixes formatting and (hopefully) reduces cringe of joke in setup doc
* Removes unnecessary constructor
* Changes item frequency generation to avoid reusing the same references
Co-authored-by: Zach Parks <zach@alliware.com>
---------
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
Co-authored-by: Zach Parks <zach@alliware.com>
											 
										 
										
											2023-06-29 12:36:01 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function GetBN3ROMPath(Param: string): string;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(bn3rom) > 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := bn3rom
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else if Assigned(BN3ROMFilePage) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      R := CompareStr(GetMD5OfFile(BN3ROMFilePage.Values[0]), '6fe31df0144759b34ad666badaacc442')
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if R <> 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        MsgBox('MegaMan Battle Network 3 Blue ROM validation failed. Very likely wrong file.', mbInformation, MB_OK);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Result := BN3ROMFilePage.Values[0]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := '';
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 16:32:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								procedure InitializeWizard();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  AddOoTRomPage();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  lttprom := CheckRom('Zelda no Densetsu - Kamigami no Triforce (Japan).sfc', '03a63945398191337e896e5771f77173');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(lttprom) = 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    LttPROMFilePage:= AddRomPage('Zelda no Densetsu - Kamigami no Triforce (Japan).sfc');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  smrom := CheckRom('Super Metroid (JU).sfc', '21f3e98df4780ee1c667b84e57d88675');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(smrom) = 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SMRomFilePage:= AddRomPage('Super Metroid (JU).sfc');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-22 01:02:25 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  dkc3rom := CheckRom('Donkey Kong Country 3 - Dixie Kong''s Double Trouble! (USA) (En,Fr).sfc', '120abf304f0c40fe059f6a192ed4f947');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(dkc3rom) = 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    DKC3RomFilePage:= AddRomPage('Donkey Kong Country 3 - Dixie Kong''s Double Trouble! (USA) (En,Fr).sfc');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 14:16:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  smwrom := CheckRom('Super Mario World (USA).sfc', 'cdd3c8c37322978ca8669b34bc89c804');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(smwrom) = 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SMWRomFilePage:= AddRomPage('Super Mario World (USA).sfc');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 16:32:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  soerom := CheckRom('Secret of Evermore (USA).sfc', '6e9c94511d04fac6e0a1e582c170be3a');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(soerom) = 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SoEROMFilePage:= AddRomPage('Secret of Evermore (USA).sfc');
							 
						 
					
						
							
								
									
										
										
										
											2022-10-13 01:45:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-10-20 10:41:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  zlrom := CheckSMSRom('Zillion (UE) [!].sms', 'd4bf9e7bcf9a48da53785d2ae7bc4270');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(zlrom) = 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ZlROMFilePage:= AddSMSRomPage('Zillion (UE) [!].sms');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-10-13 01:45:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  redrom := CheckRom('Pokemon Red (UE) [S][!].gb','3d45c1ee9abd5738df46d2bdda8b57dc');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(redrom) = 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    RedROMFilePage:= AddGBRomPage('Pokemon Red (UE) [S][!].gb');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  bluerom := CheckRom('Pokemon Blue (UE) [S][!].gb','50927e843568814f7ed45ec4f944bd8b');
							 
						 
					
						
							
								
									
										
										
										
											2022-10-15 20:53:07 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if Length(bluerom) = 0 then
							 
						 
					
						
							
								
									
										
										
										
											2022-10-13 01:45:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    BlueROMFilePage:= AddGBRomPage('Pokemon Blue (UE) [S][!].gb');
							 
						 
					
						
							
								
									
										
										
										
											2022-12-12 02:36:18 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
											 
										
											
												Mega Man Battle Network 3: Implement New Game (#1198)
* Initializes MMBN3 world with empty files
* Adds item names to item dict
* Adds locations and names
* Adds skeleton of MMBN3Client. Mostly copy pasta from OOT
* Fixed some style and formatting
* More incremental Lua tests
* Adds all locations and checking to Lua connector
* Made class definitions for TextPet Parser
* Begun connecting item delivery system through lua and textpet
* Lua Connection can now send test items
* Item Delivery is now parameterized. Test command can send any chip
* Adds the ability to send non-chip items
* Fixes name errors in python client
* Fixes count for zenny, attempts to fix bugfrags
* Fixes an issue where you always received 255 bugfrags
* Converts zenny and bugfrag amounts to little endian bytecode
* Checks game state before sending chips
Adds debug option to display information overlayed on rom
Fixes chip indexing issue for chips with ids over 255
Minor text fixes
* Adds in some animation reset instructions during item get message
* Stores previously collected item index in save, re-sends missing items
* Adds title screen check before sending locations
Loading items from save could not be done via RAM. Had to be added in
assembly
* Adds progressive undernet check
* Added library for lzss decoding bits of rom
* More progress on parsing text events from ROM
* Adds a way to inject messages into ScriptArchive data structure and generate bytecode
* Adds Item definitions, passes to client
* Adds regions and item collection rules
* Touched up a few names and values that have changed in preparation for the final patching
* Modifying messages via item is now successful
* Added generate_output hook to generate ROM data
* Generates ROM successfully
* Fixes navi cust give index
* Whoops forgot to wrap this in brackets
* Injects extra scripts for undernet rankings
* Programs had ammount and color swapped
* Prompts the user for their username when connecting
* Adds flagClear to the list of commands to avoid overwriting
* Fixes message box crashes and several other multiworld issues
* Fixes IDs and names of several items and locations
* Added .gba to gitignore
* Fixes compatibility after recent rebase
* Fixes some locations and items that are otherwise unobtainable
* Attempts to make a working launcher in the installer
* Creates installer and fixes several inaccessible locations
* Many minor changes to items, locations, and requirements made during testing
* Adds an info page for MMBN3
* Fixes failing tests by removing duplicate IDs and properly marking progression items
* Accidentally forgot to un-remove the thing
* Whoops, changed this by accident
* Updates self.world references to self.multiworld
* Fixes imports to use from imports instead of using the namespace
* Removed some leftover merge artifacts from inno setup
* Puts back that darned signtool line again
* Adds Overworld Metro keys as items
* Adds TamaCode and puts shortcuts behind cyber passes
* Fixes Numberman code 16 check
* Fixes metro access logic and adds text to metro
* Reworks Lua to fix crashing when many items are queued
* Items for other BN3 games for different players are no longer given in the main player's ROM as well
* Fixes incorrect Item ID for ACDC Metro
* Fixes multi-box text messages
* Adds timer before sending an item
* Forgot to remove the second box of SubMems
* Updates patch and lua to prevent softlocks and crashes
* Adds options for extra undernet ranks, exclude jobs
* Extra GigFreez now gives 20 bugfrags
* Additional Progressive Undernets can no longer appear on the WWW Base
* Moves item signal byte to empty area of flags instead of end of RAM
* Adds Chocolate Shop locations and navi chips to fill them
* Fixes save crash, and added chocolates to lua
* Fixes chocolate stand selling out text, removes DrillMan cube in Undernet
* Replaces old messaging system with direct memory manipulation for receiving items
* Removes NDSPY requirements from MMBN3 by manually adapting the GBA's lz10 algorithm
* Fixes the names of Hospital-1 Locations
* Adds Canary Bit to avoid sending checks when title screen check fails
* Gaining a cybermetro pass will now open the shortcut immediately
* Randomizes the two accessible areas of Undernet 7, adds Hammer as item
* Adds new locations to connector lua
* Injects the name of the item into trade quests
* Fixes copy-paste error in docs
* Fixes merge artifacts and depracated code
* Nut-wafer stand now faces Lan the right way after buying
* Removes unused Goal Option and updates the readme to include most recent changes
* Touch-ups and formatting changes
* The Great Fillerization update. Dozens of items changed to Filler
* Replaces instances of Mega Man with MegaMan
* Update worlds/mmbn3/docs/en_MegaMan Battle Network 3.md
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Update worlds/mmbn3/__init__.py
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
* Changes code ordering to suit base class's
* assert_generate now checks for roms. Minor text fixes
* Makes player specific frequency and excluded location options
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Addresses suggested changes from PR review
* Replaces ndspy lz10 with MIT-compliant nlzss lz10
* apworld compatibility fix for mmbn3_options from utils
* Addressing more comments by el-u
* APworld will now pull patch from zip folder
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Cleaned up comments for progressive undernet ROM function, moved index list to field to avoid re-initializing
* Removes improper player-indexed location/item dicts, replaces with world member variables
* Avoids redefining list in progressive undernet ROM function
* Filler items can no longer be generated beyond their specified amounts
* Fixes list copying issue with item frequencies
* Adds BN3 Client Generation back into Launcher settings
* Fixes typos causing huge problems
* Fixed non-relative import for apworld
* Removes custom enum implementation that broke pickle
* Displays message when attempting to load an incorrect ROM, will not attempt to patch it
* Filler items can now only be placed once
* Changes path in setup doc to match Lua path changes
* Fixes file extension for MMBN3 file
* Replaces magic number with reference to value in NetUtils
* Moves victory rules to set_rules. Removes commented out code
* Rewrites Lua script to send block of memory
* Fixes off-by-one error in sending bytes for locations
* Fixes issue with invalid characters in text parsing, and WWW monitor text box parsing
* Moves trade text injection to init so it has access to options
* Attempts to split the text boxes for hinted items
* Trade checks now provide hints if the option is set for them
* Fixes escape character issue for BizHawk 2.9.1
Something in Bizhawk lua parsing changed to dislike the escaped tilde.
I'm not even entirely sure why it was escaped in the first place, but
this should fix the compatibility of it.
* Re-adds desk check that it turns out actually does exist
* Updates requirements to mention bizhawk 2.7 instead of 2.3.1
* Fixes off-by-one error in command byte counts
* Fixes program color indices
* Fixes newline PEP violations
* Reverts an accidental whitespace change made to launcher.py
* Fixes URL formatting on link to settings from setup guide
Co-authored-by: Zach Parks <zach@alliware.com>
* Splits several lines in the readme to avoid excessive length
* Fixes formatting and (hopefully) reduces cringe of joke in setup doc
* Removes unnecessary constructor
* Changes item frequency generation to avoid reusing the same references
Co-authored-by: Zach Parks <zach@alliware.com>
---------
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
Co-authored-by: Zach Parks <zach@alliware.com>
											 
										 
										
											2023-06-29 12:36:01 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  bn3rom := CheckRom('Mega Man Battle Network 3 - Blue Version (USA).gba','6fe31df0144759b34ad666badaacc442');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(bn3rom) = 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    BN3ROMFilePage:= AddGBARomPage('Mega Man Battle Network 3 - Blue Version (USA).gba');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 01:26:03 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  ladxrom := CheckRom('Legend of Zelda, The - Link''s Awakening DX (USA, Europe) (SGB Enhanced).gbc','07c211479386825042efb4ad31bb525f');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(ladxrom) = 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    LADXROMFilePage:= AddGBRomPage('Legend of Zelda, The - Link''s Awakening DX (USA, Europe) (SGB Enhanced).gbc');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-12-12 02:36:18 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  l2acrom := CheckRom('Lufia II - Rise of the Sinistrals (USA).sfc', '6efc477d6203ed2b3b9133c1cd9e9c5d');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(l2acrom) = 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    L2ACROMFilePage:= AddRomPage('Lufia II - Rise of the Sinistrals (USA).sfc');
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 07:25:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 10:45:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  tlozrom := CheckNESROM('Legend of Zelda, The (U) (PRG0) [!].nes', '337bd6f1a1163df31bf2633665589ab0');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(tlozrom) = 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    TLoZROMFilePage:= AddNESRomPage('Legend of Zelda, The (U) (PRG0) [!].nes');
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 07:25:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  advnrom := CheckSMSRom('ADVNTURE.BIN', '157bddb7192754a45372be196797f284');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if Length(advnrom) = 0 then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    AdvnROMFilePage:= AddA26Page('ADVNTURE.BIN');
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 16:32:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								end;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function ShouldSkipPage(PageID: Integer): Boolean;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								begin
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Result := False;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if (assigned(LttPROMFilePage)) and (PageID = LttPROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (WizardIsComponentSelected('client/sni/lttp') or WizardIsComponentSelected('generator/lttp'));
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if (assigned(SMROMFilePage)) and (PageID = SMROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (WizardIsComponentSelected('client/sni/sm') or WizardIsComponentSelected('generator/sm'));
							 
						 
					
						
							
								
									
										
										
										
											2022-07-22 01:02:25 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if (assigned(DKC3ROMFilePage)) and (PageID = DKC3ROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (WizardIsComponentSelected('client/sni/dkc3') or WizardIsComponentSelected('generator/dkc3'));
							 
						 
					
						
							
								
									
										
										
										
											2022-09-29 14:16:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if (assigned(SMWROMFilePage)) and (PageID = SMWROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (WizardIsComponentSelected('client/sni/smw') or WizardIsComponentSelected('generator/smw'));
							 
						 
					
						
							
								
									
										
										
										
											2022-12-12 02:36:18 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if (assigned(L2ACROMFilePage)) and (PageID = L2ACROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (WizardIsComponentSelected('client/sni/l2ac') or WizardIsComponentSelected('generator/l2ac'));
							 
						 
					
						
							
								
									
										
										
										
											2021-11-13 16:32:19 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if (assigned(SoEROMFilePage)) and (PageID = SoEROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (WizardIsComponentSelected('generator/soe'));
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if (assigned(OoTROMFilePage)) and (PageID = OoTROMFilePage.ID) then
							 
						 
					
						
							
								
									
										
										
										
											2022-04-01 07:17:26 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Result := not (WizardIsComponentSelected('generator/oot') or WizardIsComponentSelected('client/oot'));
							 
						 
					
						
							
								
									
										
										
										
											2022-10-20 10:41:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if (assigned(ZlROMFilePage)) and (PageID = ZlROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (WizardIsComponentSelected('generator/zl') or WizardIsComponentSelected('client/zl'));
							 
						 
					
						
							
								
									
										
										
										
											2022-10-13 01:45:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if (assigned(RedROMFilePage)) and (PageID = RedROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (WizardIsComponentSelected('generator/pkmn_r') or WizardIsComponentSelected('client/pkmn/red'));
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if (assigned(BlueROMFilePage)) and (PageID = BlueROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (WizardIsComponentSelected('generator/pkmn_b') or WizardIsComponentSelected('client/pkmn/blue'));
							 
						 
					
						
							
								
									
										
											 
										
											
												Mega Man Battle Network 3: Implement New Game (#1198)
* Initializes MMBN3 world with empty files
* Adds item names to item dict
* Adds locations and names
* Adds skeleton of MMBN3Client. Mostly copy pasta from OOT
* Fixed some style and formatting
* More incremental Lua tests
* Adds all locations and checking to Lua connector
* Made class definitions for TextPet Parser
* Begun connecting item delivery system through lua and textpet
* Lua Connection can now send test items
* Item Delivery is now parameterized. Test command can send any chip
* Adds the ability to send non-chip items
* Fixes name errors in python client
* Fixes count for zenny, attempts to fix bugfrags
* Fixes an issue where you always received 255 bugfrags
* Converts zenny and bugfrag amounts to little endian bytecode
* Checks game state before sending chips
Adds debug option to display information overlayed on rom
Fixes chip indexing issue for chips with ids over 255
Minor text fixes
* Adds in some animation reset instructions during item get message
* Stores previously collected item index in save, re-sends missing items
* Adds title screen check before sending locations
Loading items from save could not be done via RAM. Had to be added in
assembly
* Adds progressive undernet check
* Added library for lzss decoding bits of rom
* More progress on parsing text events from ROM
* Adds a way to inject messages into ScriptArchive data structure and generate bytecode
* Adds Item definitions, passes to client
* Adds regions and item collection rules
* Touched up a few names and values that have changed in preparation for the final patching
* Modifying messages via item is now successful
* Added generate_output hook to generate ROM data
* Generates ROM successfully
* Fixes navi cust give index
* Whoops forgot to wrap this in brackets
* Injects extra scripts for undernet rankings
* Programs had ammount and color swapped
* Prompts the user for their username when connecting
* Adds flagClear to the list of commands to avoid overwriting
* Fixes message box crashes and several other multiworld issues
* Fixes IDs and names of several items and locations
* Added .gba to gitignore
* Fixes compatibility after recent rebase
* Fixes some locations and items that are otherwise unobtainable
* Attempts to make a working launcher in the installer
* Creates installer and fixes several inaccessible locations
* Many minor changes to items, locations, and requirements made during testing
* Adds an info page for MMBN3
* Fixes failing tests by removing duplicate IDs and properly marking progression items
* Accidentally forgot to un-remove the thing
* Whoops, changed this by accident
* Updates self.world references to self.multiworld
* Fixes imports to use from imports instead of using the namespace
* Removed some leftover merge artifacts from inno setup
* Puts back that darned signtool line again
* Adds Overworld Metro keys as items
* Adds TamaCode and puts shortcuts behind cyber passes
* Fixes Numberman code 16 check
* Fixes metro access logic and adds text to metro
* Reworks Lua to fix crashing when many items are queued
* Items for other BN3 games for different players are no longer given in the main player's ROM as well
* Fixes incorrect Item ID for ACDC Metro
* Fixes multi-box text messages
* Adds timer before sending an item
* Forgot to remove the second box of SubMems
* Updates patch and lua to prevent softlocks and crashes
* Adds options for extra undernet ranks, exclude jobs
* Extra GigFreez now gives 20 bugfrags
* Additional Progressive Undernets can no longer appear on the WWW Base
* Moves item signal byte to empty area of flags instead of end of RAM
* Adds Chocolate Shop locations and navi chips to fill them
* Fixes save crash, and added chocolates to lua
* Fixes chocolate stand selling out text, removes DrillMan cube in Undernet
* Replaces old messaging system with direct memory manipulation for receiving items
* Removes NDSPY requirements from MMBN3 by manually adapting the GBA's lz10 algorithm
* Fixes the names of Hospital-1 Locations
* Adds Canary Bit to avoid sending checks when title screen check fails
* Gaining a cybermetro pass will now open the shortcut immediately
* Randomizes the two accessible areas of Undernet 7, adds Hammer as item
* Adds new locations to connector lua
* Injects the name of the item into trade quests
* Fixes copy-paste error in docs
* Fixes merge artifacts and depracated code
* Nut-wafer stand now faces Lan the right way after buying
* Removes unused Goal Option and updates the readme to include most recent changes
* Touch-ups and formatting changes
* The Great Fillerization update. Dozens of items changed to Filler
* Replaces instances of Mega Man with MegaMan
* Update worlds/mmbn3/docs/en_MegaMan Battle Network 3.md
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Update worlds/mmbn3/__init__.py
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
* Changes code ordering to suit base class's
* assert_generate now checks for roms. Minor text fixes
* Makes player specific frequency and excluded location options
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Addresses suggested changes from PR review
* Replaces ndspy lz10 with MIT-compliant nlzss lz10
* apworld compatibility fix for mmbn3_options from utils
* Addressing more comments by el-u
* APworld will now pull patch from zip folder
* Apply suggestions from code review
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
* Cleaned up comments for progressive undernet ROM function, moved index list to field to avoid re-initializing
* Removes improper player-indexed location/item dicts, replaces with world member variables
* Avoids redefining list in progressive undernet ROM function
* Filler items can no longer be generated beyond their specified amounts
* Fixes list copying issue with item frequencies
* Adds BN3 Client Generation back into Launcher settings
* Fixes typos causing huge problems
* Fixed non-relative import for apworld
* Removes custom enum implementation that broke pickle
* Displays message when attempting to load an incorrect ROM, will not attempt to patch it
* Filler items can now only be placed once
* Changes path in setup doc to match Lua path changes
* Fixes file extension for MMBN3 file
* Replaces magic number with reference to value in NetUtils
* Moves victory rules to set_rules. Removes commented out code
* Rewrites Lua script to send block of memory
* Fixes off-by-one error in sending bytes for locations
* Fixes issue with invalid characters in text parsing, and WWW monitor text box parsing
* Moves trade text injection to init so it has access to options
* Attempts to split the text boxes for hinted items
* Trade checks now provide hints if the option is set for them
* Fixes escape character issue for BizHawk 2.9.1
Something in Bizhawk lua parsing changed to dislike the escaped tilde.
I'm not even entirely sure why it was escaped in the first place, but
this should fix the compatibility of it.
* Re-adds desk check that it turns out actually does exist
* Updates requirements to mention bizhawk 2.7 instead of 2.3.1
* Fixes off-by-one error in command byte counts
* Fixes program color indices
* Fixes newline PEP violations
* Reverts an accidental whitespace change made to launcher.py
* Fixes URL formatting on link to settings from setup guide
Co-authored-by: Zach Parks <zach@alliware.com>
* Splits several lines in the readme to avoid excessive length
* Fixes formatting and (hopefully) reduces cringe of joke in setup doc
* Removes unnecessary constructor
* Changes item frequency generation to avoid reusing the same references
Co-authored-by: Zach Parks <zach@alliware.com>
---------
Co-authored-by: el-u <109771707+el-u@users.noreply.github.com>
Co-authored-by: SoldierofOrder <107806872+SoldierofOrder@users.noreply.github.com>
Co-authored-by: Zach Parks <zach@alliware.com>
											 
										 
										
											2023-06-29 12:36:01 -06:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if (assigned(BN3ROMFilePage)) and (PageID = BN3ROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (WizardIsComponentSelected('generator/mmbn3') or WizardIsComponentSelected('client/mmbn3'));
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 01:26:03 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if (assigned(LADXROMFilePage)) and (PageID = LADXROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (WizardIsComponentSelected('generator/ladx') or WizardIsComponentSelected('client/ladx'));
							 
						 
					
						
							
								
									
										
										
										
											2023-03-21 10:45:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if (assigned(TLoZROMFilePage)) and (PageID = TLoZROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (WizardIsComponentSelected('generator/tloz') or WizardIsComponentSelected('client/tloz'));
							 
						 
					
						
							
								
									
										
										
										
											2023-03-22 07:25:55 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if (assigned(AdvnROMFilePage)) and (PageID = AdvnROMFilePage.ID) then
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Result := not (WizardIsComponentSelected('client/advn'));
							 
						 
					
						
							
								
									
										
										
										
											2022-10-13 01:45:52 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								end;