Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kirby's Dream Land 3: Implement New Game #2119

Merged
merged 229 commits into from
Mar 5, 2024
Merged
Show file tree
Hide file tree
Changes from 160 commits
Commits
Show all changes
229 commits
Select commit Hold shift + click to select a range
eee9551
begin work
Silvris Mar 9, 2023
1e9e3a0
Merge remote-tracking branch 'upstream/main' into kdl3
Silvris Mar 10, 2023
dee4184
further work
Silvris Mar 13, 2023
6e0fb28
Merge remote-tracking branch 'upstream/main' into kdl3
Silvris Mar 13, 2023
8f94a5d
adjust logic to require being able to reach stage 6 before leaving a …
Silvris Mar 13, 2023
79f4f18
allow client to send checks past level 1, startup safeguards
Silvris Mar 13, 2023
544dd36
fix mama pitch logic
Silvris Mar 13, 2023
1856ad1
remove unnecessary ricks
Silvris Mar 13, 2023
42dacac
3-5 logic
Silvris Mar 13, 2023
d0767fe
shuffle boss requirement order
Silvris Mar 13, 2023
fa51e86
typo, duplicate location name, unnecessary rick
Silvris Mar 14, 2023
94be3cb
rob logic, lost the rick 50/50
Silvris Mar 14, 2023
d47fd03
wrong name, 5-4 logic, ado not checked correctly
Silvris Mar 14, 2023
45d551a
basic level shuffle
Silvris Mar 16, 2023
d9eda8f
level shuffle and rudimentary palette support
Silvris Mar 16, 2023
0c9ed0a
Merge remote-tracking branch 'upstream/main' into kdl3
Silvris Mar 16, 2023
0090587
webhost cleanup, re-enable custom palettes
Silvris Mar 16, 2023
9babd71
bad option title, fix pattern shuffle
Silvris Mar 16, 2023
69bf348
add marshmallow, add sfx on received item, boss plando fix
Silvris Mar 19, 2023
d3977ba
dedede fix, hs graphic fix attempt 1
Silvris Mar 20, 2023
c603535
Merge remote-tracking branch 'upstream/main' into kdl3
Silvris Mar 21, 2023
f2b58f7
3-5 logic fix
Silvris Mar 22, 2023
87458b2
fix pattern, support JP rom
Silvris Mar 25, 2023
4335f92
fix gen, ensure Nago can be reached before 5-5 HS in logic
Silvris Mar 25, 2023
5a9d778
add placeholder setup guide, fix webhost not showing game info
Silvris Mar 26, 2023
a79a447
Merge remote-tracking branch 'upstream/main' into kdl3
Silvris Mar 28, 2023
c089927
move to 0xffff bwram, correct invin time
Silvris Mar 29, 2023
5e11827
tentative animal friends rewrite
Silvris Mar 29, 2023
92623ce
Merge branch 'ArchipelagoMW:main' into kdl3
Silvris Mar 31, 2023
fad5897
implement mg5 and jumping goals
Silvris Apr 1, 2023
29bdda5
enforce at least one heart star required
Silvris Apr 1, 2023
569a280
hotfix zero goal
Silvris Apr 3, 2023
21796da
fix deathlink and item receive bugs
Silvris Apr 5, 2023
228bd67
Merge remote-tracking branch 'upstream/main' into kdl3
Silvris Apr 5, 2023
b9fc58a
Merge remote-tracking branch 'upstream/main' into kdl3
Silvris Apr 12, 2023
9500094
begin documenting for consumable checks
Silvris Apr 12, 2023
1f42851
write validation info to BWRAM
Silvris Apr 16, 2023
25fa6b0
Merge branch 'kdl3' of https://github.com/Silvris/Archipelago into kdl3
Silvris Apr 16, 2023
a9dfd27
Update LocationName.py
Silvris Apr 20, 2023
90fd5a6
move existing variables out of base bwram
Silvris Apr 21, 2023
260296e
Merge branch 'kdl3' of https://github.com/Silvris/Archipelago into kdl3
Silvris Apr 21, 2023
e8a156b
finish consumables, fix 5-4 hs logic
Silvris Apr 22, 2023
dcbd08b
Merge remote-tracking branch 'upstream/main' into kdl3
Silvris Apr 22, 2023
0c0c359
consumable hint fix and 2-4 consumable name fix
Silvris Apr 25, 2023
b05d0bb
fix 5-6 sound bug, add fast goal, fix 5-6 logic
Silvris Apr 30, 2023
1665520
fix 3-5 not being blocked from being placed at 1-1
Silvris May 2, 2023
3374658
rewrite color conversion to fix math error
Silvris May 5, 2023
dfe6887
reduce 4-4 consumable logic
Silvris May 6, 2023
0dda27b
Merge branch 'ArchipelagoMW:main' into kdl3
Silvris May 6, 2023
3f49f17
add gooey palette functionality
Silvris May 6, 2023
37a5410
fix fast minigame bug
Silvris May 6, 2023
1a9ac7c
fix inverted labelling of copy ability/purification patches
Silvris May 8, 2023
91df55b
goal tests and resulting cleanup
Silvris May 8, 2023
aa03b8c
allow custom gooey, more gooey pal
Silvris May 14, 2023
a55feb6
Merge branch 'ArchipelagoMW:main' into kdl3
Silvris May 16, 2023
2f8e923
begin on strict boss setting
Silvris May 22, 2023
4651eb3
fix plando connections (for now, until change occurs on main)
Silvris May 22, 2023
b8231d8
strict bosses, fix purification check off-by-one
Silvris May 22, 2023
7208132
fix purification result
Silvris May 22, 2023
e42f1a7
fix strict bosses patch
Silvris May 24, 2023
4605ed5
boss shuffle description
Silvris May 24, 2023
f1f7f3e
utils fix, fix strict bosses (final)
Silvris May 27, 2023
b0b511c
enable bubblegum kirby and cherry gooey
Silvris May 27, 2023
047aacd
stage sprites and open world
Silvris Jun 4, 2023
9e6c823
Merge branch 'ArchipelagoMW:main' into kdl3
Silvris Jun 15, 2023
13ba20a
open world, traps, music shuffle
Silvris Jun 15, 2023
7fd3407
kirby and gooey palettes finished
Silvris Jun 15, 2023
92798b6
Merge branch 'kdl3' of https://github.com/Silvris/Archipelago into kdl3
Silvris Jun 15, 2023
e2f5363
music shuffle, general cleanup, tests
Silvris Jun 16, 2023
3c423f4
Add KDL3 to apworlds list
Silvris Jun 16, 2023
66c6c7e
revert host.yaml changes from testing
Silvris Jun 16, 2023
6a07bee
docs cleanup
Silvris Jun 16, 2023
6816d39
fix open world allowing checks to be sent by doing nothing
Silvris Jun 16, 2023
f949e02
block custom random color, bb bosses
Silvris Jun 17, 2023
92d2043
forgot return in presets
Silvris Jun 17, 2023
6b7dc70
docs and options update, goal is now displayed on level select
Silvris Jun 27, 2023
7dfee5a
Merge remote-tracking branch 'upstream/main' into kdl3
Silvris Jun 27, 2023
426425c
raise min heart stars to 5, rename visual for max hs option
Silvris Jun 27, 2023
8b52d35
webhost cleanup
Silvris Jun 27, 2023
c921e7e
Merge branch 'ArchipelagoMW:main' into kdl3
Silvris Jun 28, 2023
dd96c07
option access cleanup
Silvris Jun 28, 2023
c15f5d3
typing and pep cleanup
Silvris Jun 30, 2023
08a02ed
consumable and heart star sprites
Silvris Jul 1, 2023
f220157
fix patch issue and added to launchercomponents
Silvris Jul 1, 2023
a696971
Merge remote-tracking branch 'upstream/main' into kdl3
Silvris Jul 1, 2023
db2a876
inno setup
Silvris Jul 3, 2023
5ef29d7
Merge branch 'ArchipelagoMW:main' into kdl3
Silvris Jul 3, 2023
6878acf
swap inno to use snesmd5 function
Silvris Jul 3, 2023
a0c6a4e
fix utils, fix incorrect plando boss list
Silvris Jul 3, 2023
7a4b401
cleanup zip function, pep8
Silvris Jul 3, 2023
6cdc32f
open world fixes and optimization
Silvris Jul 3, 2023
d4d23c4
Merge branch 'ArchipelagoMW:main' into kdl3
Silvris Jul 4, 2023
939eedf
Add KDL3 to README
Silvris Jul 4, 2023
0acb0d5
Merge branch 'kdl3' of https://github.com/Silvris/Archipelago into kdl3
Silvris Jul 4, 2023
cc8bc58
fix rare hs 1-up glitch, jp-en compat
Silvris Jul 4, 2023
f815f47
JP-EN interaction fixes
Silvris Jul 4, 2023
436def1
rom docs, block deathlink and checks in demo
Silvris Jul 5, 2023
b50ff6a
collect stage completion (doesn't unlock next stage)
Silvris Jul 5, 2023
09ec83f
Merge branch 'ArchipelagoMW:main' into kdl3
Silvris Jul 5, 2023
4b29800
fix vanilla heart star sprites on minigames
Silvris Jul 5, 2023
dd1921f
Merge remote-tracking branch 'upstream/main' into kdl3
Silvris Jul 5, 2023
7c6d6c0
Merge branch 'ArchipelagoMW:main' into kdl3
Silvris Jul 5, 2023
30d1644
update for auto host yaml
Silvris Jul 5, 2023
2f47552
typing and cleanup
Silvris Jul 5, 2023
eba4b74
hotfix for 0.4.1 support
Silvris Jul 5, 2023
6388ffb
beginning work on room logic refactor
Silvris Jul 7, 2023
127670b
Merge branch 'ArchipelagoMW:main' into kdl3
Silvris Jul 13, 2023
fe2bff6
initial base for room logic, animal rando
Silvris Jul 13, 2023
6948e45
Merge branch 'kdl3' of https://github.com/Silvris/Archipelago into kdl3
Silvris Jul 13, 2023
a08a29b
Add player to spoiler writing
Silvris Jul 15, 2023
831df7b
Merge remote-tracking branch 'upstream/main' into kdl3
Silvris Jul 19, 2023
b0a20fa
Merge branch 'ArchipelagoMW:main' into kdl3
Silvris Jul 23, 2023
355af8d
small optimization for animal writing
Silvris Jul 23, 2023
ba2283c
fill_restrictive animals, vc fixes
Silvris Jul 29, 2023
e0ab024
begin work on copy ability shuffle
Silvris Jul 31, 2023
dc4595c
Merge branch 'ArchipelagoMW:main' into kdl3
Silvris Aug 1, 2023
d915aa7
add miniboss ability rando, tests
Silvris Aug 2, 2023
f1044c0
make angel rules smarter
Silvris Aug 3, 2023
75f6995
fix tests, finish rob test
Silvris Aug 4, 2023
2515298
fix failing test, start copy ability rules
Silvris Aug 4, 2023
67ab09a
water rules finished
Silvris Aug 4, 2023
2d8d434
clean dead code
Silvris Aug 4, 2023
8913dae
fix bug where SNI Client dies if an item actually makes it to the ite…
Silvris Aug 4, 2023
5739ff1
hs visual bugfixes
Silvris Aug 5, 2023
347e2d9
general cleanup
Silvris Aug 7, 2023
941ccd1
actually implement plus minus
Silvris Aug 7, 2023
077ae0c
typing, gen valid rom CRC
Silvris Aug 7, 2023
cf5005a
Merge branch 'ArchipelagoMW:main' into kdl3
Silvris Aug 7, 2023
e4b375b
Merge branch 'ArchipelagoMW:main' into kdl3
Silvris Aug 12, 2023
449c046
differentiate between filler and progression consumables
Silvris Aug 12, 2023
6187297
pause icons, edge cases, fix client
Silvris Aug 16, 2023
f5d3483
Merge branch 'ArchipelagoMW:main' into kdl3
Silvris Aug 16, 2023
9072035
Merge branch 'ArchipelagoMW:main' into kdl3
Silvris Aug 19, 2023
94dd61e
client cleanup
Silvris Aug 19, 2023
d3197b1
cleanup, change open_world to default true
Silvris Aug 19, 2023
d683974
remove mutually exclusive brr and strict bosses
Silvris Aug 19, 2023
65c3d89
fix failing tests from changed default
Silvris Aug 19, 2023
82525aa
forgot one
Silvris Aug 19, 2023
47d8a74
block client spamming when not connected
Silvris Aug 20, 2023
a0ea84a
plando guide update
Silvris Aug 20, 2023
a707ae2
minor change on plando guide
Silvris Aug 21, 2023
511dd67
increment data version
Silvris Aug 21, 2023
7378511
de-indent rooms json
Silvris Aug 21, 2023
dd8a26c
Apply suggestions from code review
Silvris Aug 21, 2023
db3acfd
clean bukiset rules
Silvris Aug 21, 2023
0e1e051
pep8 and clean unused imports
Silvris Aug 21, 2023
865d898
initial removal of events for non-open_world
Silvris Aug 21, 2023
237cbf6
re-order pre_fill to properly handle animal fill
Silvris Aug 22, 2023
5be0f6a
clean tests
Silvris Aug 24, 2023
d0ec94e
adjust rob rule
Silvris Aug 25, 2023
5ad4389
some cleaning from type checking and linting
beauxq Aug 26, 2023
b81d1c3
re-order pre_fill to properly handle animal fill
Silvris Aug 22, 2023
ec67f7f
clean tests
Silvris Aug 24, 2023
383d1c9
adjust rob rule
Silvris Aug 25, 2023
05d6cf3
clean imports
Silvris Aug 26, 2023
aa9640c
pep8 and typing cleanup
Silvris Aug 26, 2023
03d26b8
Merge branch 'kdl3' into silvris/kdl3
Silvris Aug 26, 2023
f4ca2ed
Merge pull request #1 from beauxq/silvris/kdl3
Silvris Aug 26, 2023
3d169d1
fix typing issues from pr
Silvris Aug 26, 2023
3247d45
fix usage of dict in typing
Silvris Aug 26, 2023
5c1abf5
Merge branch 'kdl3' into kdl3_test
Silvris Aug 30, 2023
9ddb73f
fix missing import from merge commit
Silvris Aug 30, 2023
a8d711a
fix non-deterministic generation
Silvris Aug 30, 2023
b4bb367
fix non-deterministic generation
Silvris Aug 30, 2023
0cbffa8
sending gifts
Silvris Sep 4, 2023
ab0dcab
receiving gifts, writing rom, option
Silvris Sep 4, 2023
619887c
fix gooey respawning too quickly
Silvris Sep 13, 2023
19f0f40
Merge remote-tracking branch 'upstream/main' into kdl3
Silvris Sep 19, 2023
51e4886
Merge remote-tracking branch 'upstream/main' into kdl3_test
Silvris Sep 20, 2023
6a23c09
slow fix
Silvris Sep 28, 2023
21008ac
Merge branch 'main' into kdl3
Silvris Oct 3, 2023
1d154bb
Merge remote-tracking branch 'upstream/main' into kdl3_test
Silvris Oct 10, 2023
1e85dc4
remove the slow
Silvris Oct 10, 2023
f1a6371
Merge branch 'kdl3' into kdl3_test
Silvris Oct 10, 2023
c5d4728
Merge remote-tracking branch 'upstream/main' into kdl3_test
Silvris Oct 10, 2023
d1595b7
begin move to world options
Silvris Oct 12, 2023
60b699b
fix test failures
Silvris Oct 13, 2023
2d721a2
rename room
Silvris Oct 25, 2023
66d0a3e
Merge remote-tracking branch 'upstream/main' into kdl3_test
Silvris Oct 29, 2023
372dd75
Merge branch 'ArchipelagoMW:main' into kdl3_test
Silvris Nov 5, 2023
d4ca900
fix hs visual misreporting
Silvris Nov 5, 2023
46a9cbc
general world cleanup
Silvris Nov 9, 2023
1e87336
Merge remote-tracking branch 'upstream/main' into kdl3_test
Silvris Nov 9, 2023
b1cba1c
Update CODEOWNERS
Silvris Nov 9, 2023
d12d31b
Merge branch 'main' into kdl3
Silvris Nov 11, 2023
9633d2a
Merge remote-tracking branch 'upstream/main' into kdl3
Silvris Nov 11, 2023
a522b8a
Merge branch 'main' into kdl3
Silvris Nov 12, 2023
8a75570
Merge remote-tracking branch 'upstream/main' into kdl3
Silvris Nov 18, 2023
f6a3530
Merge branch 'main' into kdl3
Silvris Nov 24, 2023
61b13e2
Merge branch 'main' into kdl3
Silvris Nov 25, 2023
84228e5
Merge branch 'main' into kdl3
Silvris Nov 26, 2023
bc425f6
Add presets and deathlink messages
Silvris Nov 26, 2023
cd47ee5
Merge branch 'kdl3' of https://github.com/Silvris/Archipelago into kdl3
Silvris Nov 26, 2023
07407bc
Merge branch 'ArchipelagoMW:main' into kdl3
Silvris Dec 5, 2023
c4ce05b
Merge remote-tracking branch 'upstream/main' into kdl3
Silvris Dec 8, 2023
2861ea1
fix fxpak, add snes9x-nwa
Silvris Dec 17, 2023
e20dd1c
Merge remote-tracking branch 'upstream/main' into kdl3
Silvris Jan 7, 2024
88227c9
Merge branch 'main' into kdl3
Silvris Jan 12, 2024
5ad46d6
star implementation, needs logic
Silvris Jan 16, 2024
7501e01
set rules and fix non-star generation
Silvris Jan 21, 2024
1e030cb
add stars to generation
Silvris Jan 21, 2024
c338e48
Merge remote-tracking branch 'upstream/main' into kdl3_stars
Silvris Feb 3, 2024
85241fa
fix hint extension, needs testing
Silvris Feb 3, 2024
9bc6d1f
move to assembled basepatch, needs repairing
Silvris Feb 10, 2024
c36c2e7
fix basepatch, add gifting patch
Silvris Feb 11, 2024
b87fb60
Merge branch 'kdl3_gifting' into kdl3_stars
Silvris Feb 11, 2024
67ee035
client refactor, attempt gooey fix
Silvris Feb 12, 2024
31c73c1
fix hint information
Silvris Feb 12, 2024
7d53e6e
return to explicit gooey
Silvris Feb 12, 2024
06d0fbf
gifting cleanup, fix options, star sprites
Silvris Feb 12, 2024
b7cad19
Merge remote-tracking branch 'upstream/main' into kdl3_stars
Silvris Feb 12, 2024
52fd4be
actually fix hint extension this time
Silvris Feb 12, 2024
b3ecc45
de-indent json again
Silvris Feb 12, 2024
4480051
Update setup_en.md
Silvris Feb 12, 2024
146a881
fix entrance rules not accounting for animal/ability access
Silvris Feb 15, 2024
d44d751
Merge remote-tracking branch 'upstream/main' into kdl3
Silvris Feb 17, 2024
9ccd420
update to gifting API version 2
Silvris Feb 21, 2024
78a4512
Merge remote-tracking branch 'upstream/main' into kdl3
Silvris Feb 21, 2024
6fb8258
world cleanup
Silvris Feb 21, 2024
5eb45dd
Merge branch 'main' into kdl3
Berserker66 Feb 24, 2024
fd2e977
Merge remote-tracking branch 'upstream/main' into kdl3
Silvris Feb 25, 2024
54cce42
fix rare test failure, spoiler cleanup
Silvris Feb 25, 2024
e1e41b2
fix stars not working when consumables are disabled
Silvris Feb 25, 2024
e6ea365
block game watcher until slot exists, re-add plando link
Silvris Feb 26, 2024
21cf675
Update worlds/kdl3/Aesthetics.py
Silvris Feb 26, 2024
60ac369
Update worlds/kdl3/Options.py
Silvris Feb 26, 2024
b648729
Apply suggestions from code review
Silvris Feb 26, 2024
834b098
further changes from code review
Silvris Feb 26, 2024
2cb2f76
Update Items.py
Silvris Feb 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Generate.py
Original file line number Diff line number Diff line change
Expand Up @@ -478,7 +478,7 @@ def roll_settings(weights: dict, plando_options: PlandoOptions = PlandoOptions.b
handle_option(ret, game_weights, option_key, option, plando_options)
if PlandoOptions.items in plando_options:
ret.plando_items = game_weights.get("plando_items", [])
if ret.game == "Minecraft" or ret.game == "Ocarina of Time":
if ret.game in ("Minecraft", "Ocarina of Time", "Kirby's Dream Land 3"):
# bad hardcoded behavior to make this work for now
ret.plando_connections = []
if PlandoOptions.connections in plando_options:
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ Currently, the following games are supported:
* Muse Dash
* DOOM 1993
* Terraria
* Kirby's Dream Land 3

For setup and instructions check out our [tutorials page](https://archipelago.gg/tutorial/).
Downloads can be found at [Releases](https://github.com/ArchipelagoMW/Archipelago/releases), including compiled
Expand Down
55 changes: 55 additions & 0 deletions inno_setup.iss
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ Name: "generator/dkc3"; Description: "Donkey Kong Country 3 ROM Setup"; Types:
Name: "generator/smw"; Description: "Super Mario World ROM Setup"; Types: full hosting; ExtraDiskSpaceRequired: 3145728; Flags: disablenouninstallwarning
Name: "generator/soe"; Description: "Secret of Evermore ROM Setup"; Types: full hosting; ExtraDiskSpaceRequired: 3145728; Flags: disablenouninstallwarning
Name: "generator/l2ac"; Description: "Lufia II Ancient Cave ROM Setup"; Types: full hosting; ExtraDiskSpaceRequired: 2621440; Flags: disablenouninstallwarning
Name: "generator/kdl3"; Description: "Kirby's Dream Land 3 ROM Setup"; Types: full hosting; ExtraDiskSpaceRequired: 4194304; Flags: disablenouninstallwarning
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
Name: "generator/zl"; Description: "Zillion ROM Setup"; Types: full hosting; ExtraDiskSpaceRequired: 150000; Flags: disablenouninstallwarning
Expand All @@ -74,6 +75,7 @@ Name: "client/sni/sm"; Description: "SNI Client - Super Metroid Patch Setup";
Name: "client/sni/dkc3"; Description: "SNI Client - Donkey Kong Country 3 Patch Setup"; Types: full playing; Flags: disablenouninstallwarning
Name: "client/sni/smw"; Description: "SNI Client - Super Mario World Patch Setup"; Types: full playing; Flags: disablenouninstallwarning
Name: "client/sni/l2ac"; Description: "SNI Client - Lufia II Ancient Cave Patch Setup"; Types: full playing; Flags: disablenouninstallwarning
Name: "client/sni/kdl3"; Description: "SNI Client - Kirby's Dream Land 3 Setup"; Types: full playing; Flags: disablenouninstallwarning
Name: "client/bizhawk"; Description: "BizHawk Client"; Types: full playing
Name: "client/factorio"; Description: "Factorio"; Types: full playing
Name: "client/kh2"; Description: "Kingdom Hearts 2"; Types: full playing
Expand Down Expand Up @@ -112,6 +114,7 @@ Source: "{code:GetBN3ROMPath}"; DestDir: "{app}"; DestName: "Mega Man Battle Net
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
Source: "{code:GetTLoZROMPath}"; DestDir: "{app}"; DestName: "Legend of Zelda, The (U) (PRG0) [!].nes"; Flags: external; Components: client/tloz or generator/tloz
Source: "{code:GetAdvnROMPath}"; DestDir: "{app}"; DestName: "ADVNTURE.BIN"; Flags: external; Components: client/advn
Source: "{code:GetKDL3ROMPath}"; DestDir: "{app}"; DestName: "Kirby's Dream Land 3.sfc"; Flags: external; Components: generator/kdl3 or client/sni/kdl3
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
Expand Down Expand Up @@ -246,6 +249,11 @@ Root: HKCR; Subkey: "{#MyAppName}l2acpatch"; ValueData: "Arc
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

Root: HKCR; Subkey: ".apkdl3"; ValueData: "{#MyAppName}kdl3patch"; Flags: uninsdeletevalue; ValueType: string; ValueName: ""; Components: client/sni
Root: HKCR; Subkey: "{#MyAppName}kdl3patch"; ValueData: "Archipelago Kirby's Dream Land 3 Patch"; Flags: uninsdeletekey; ValueType: string; ValueName: ""; Components: client/sni
Root: HKCR; Subkey: "{#MyAppName}kdl3patch\DefaultIcon"; ValueData: "{app}\ArchipelagoSNIClient.exe,0"; ValueType: string; ValueName: ""; Components: client/sni
Root: HKCR; Subkey: "{#MyAppName}kdl3patch\shell\open\command"; ValueData: """{app}\ArchipelagoSNIClient.exe"" ""%1"""; ValueType: string; ValueName: ""; Components: client/sni

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
Expand Down Expand Up @@ -341,6 +349,9 @@ var SoERomFilePage: TInputFileWizardPage;
var l2acrom: string;
var L2ACROMFilePage: TInputFileWizardPage;

var kdl3rom: string;
var KDL3ROMFilePage: TInputFileWizardPage;

var ootrom: string;
var OoTROMFilePage: TInputFileWizardPage;

Expand Down Expand Up @@ -444,6 +455,26 @@ begin
end;
end;

function CheckKDL3Rom(name: 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(GetSNESMD5OfFile(rom), '201e7658f6194458a3869dde36bf8ec2')));
log(IntToStr(CompareStr(GetSNESMD5OfFile(rom), 'b2f2d004ea640c3db66df958fce122b2')));
if CompareStr(GetSNESMD5OfFile(rom), '201e7658f6194458a3869dde36bf8ec2') * CompareStr(GetSNESMD5OfFile(rom), 'b2f2d004ea640c3db66df958fce122b2') = 0 then
begin
log('existing ROM verified');
Result := rom;
exit;
end;
log('existing ROM failed verification');
end;
end;

function AddRomPage(name: string): TInputFileWizardPage;
begin
Result :=
Expand Down Expand Up @@ -577,6 +608,8 @@ begin
Result := not (SoEROMFilePage.Values[0] = '')
else if (assigned(L2ACROMFilePage)) and (CurPageID = L2ACROMFilePage.ID) then
Result := not (L2ACROMFilePage.Values[0] = '')
else if (assigned(KDL3ROMFilePage)) and (CurPageID = KDL3ROMFilePage.ID) then
Result := not (KDL3ROMFilePage.Values[0] = '')
else if (assigned(OoTROMFilePage)) and (CurPageID = OoTROMFilePage.ID) then
Result := not (OoTROMFilePage.Values[0] = '')
else if (assigned(BN3ROMFilePage)) and (CurPageID = BN3ROMFilePage.ID) then
Expand Down Expand Up @@ -821,6 +854,22 @@ begin
Result := '';
end;

function GetKDL3ROMPath(Param: string): string;
begin
if Length(kdl3rom) > 0 then
Result := kdl3rom
else if Assigned(KDL3ROMFilePage) then
begin
R := CompareStr(GetSNESMD5OfFile(KDL3ROMFilePage.Values[0]), '201e7658f6194458a3869dde36bf8ec2') * CompareStr(GetSNESMD5OfFile(KDL3ROMFilePage.Values[0]), 'b2f2d004ea640c3db66df958fce122b2');
if R <> 0 then
MsgBox('Kirby''s Dream Land 3 ROM validation failed. Very likely wrong file.', mbInformation, MB_OK);

Result := KDL3ROMFilePage.Values[0]
end
else
Result := '';
end;

procedure InitializeWizard();
begin
AddOoTRomPage();
Expand Down Expand Up @@ -876,6 +925,10 @@ begin
advnrom := CheckSMSRom('ADVNTURE.BIN', '157bddb7192754a45372be196797f284');
if Length(advnrom) = 0 then
AdvnROMFilePage:= AddA26Page('ADVNTURE.BIN');

kdl3rom := CheckKDL3Rom('Kirby''s Dream Land 3.sfc');
if Length(kdl3rom) = 0 then
KDL3ROMFilePage:= AddRomPage('Kirby''s Dream Land 3.sfc');
end;


Expand All @@ -894,6 +947,8 @@ begin
Result := not (WizardIsComponentSelected('client/sni/l2ac') or WizardIsComponentSelected('generator/l2ac'));
if (assigned(SoEROMFilePage)) and (PageID = SoEROMFilePage.ID) then
Result := not (WizardIsComponentSelected('generator/soe'));
if (assigned(KDL3ROMFilePage)) and (PageID = KDL3ROMFilePage.ID) then
Result := not (WizardIsComponentSelected('client/sni/kdl3') or WizardIsComponentSelected('generator/kdl3'));
if (assigned(OoTROMFilePage)) and (PageID = OoTROMFilePage.ID) then
Result := not (WizardIsComponentSelected('generator/oot') or WizardIsComponentSelected('client/oot'));
if (assigned(ZlROMFilePage)) and (PageID = ZlROMFilePage.ID) then
Expand Down
2 changes: 1 addition & 1 deletion worlds/LauncherComponents.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ def launch_textclient():
# SNI
Component('SNI Client', 'SNIClient',
file_identifier=SuffixIdentifier('.apz3', '.apm3', '.apsoe', '.aplttp', '.apsm', '.apsmz3', '.apdkc3',
'.apsmw', '.apl2ac')),
'.apsmw', '.apl2ac', '.apkdl3')),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't really belong in this PR but mostly making this comment as I'm noticing it. We should probably make this a vertical layout, so it's easier to avoid conflicts.

Copy link
Collaborator Author

@Silvris Silvris Feb 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the approach BizhawkClient takes (where it grabs the extensions of every valid client it can find) would be better in the long run. Out of scope here though, yeah.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While I agree I took a glance at it not too long ago and though sniclient is closer than it used to be, it's still quite a bit of work away from being functional as an apworld

# BizHawk
Component("BizHawk Client", "BizHawkClient", component_type=Type.CLIENT,
file_identifier=SuffixIdentifier()),
Expand Down
41 changes: 37 additions & 4 deletions worlds/generic/docs/plando_en.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,8 +161,41 @@ into any locations within the game slots named BobsSlaytheSpire and BobsRogueLeg

## Boss Plando

As this is currently only supported by A Link to the Past, instead of finding an explanation here, please refer to the
Silvris marked this conversation as resolved.
Show resolved Hide resolved
relevant guide: [A Link to the Past Plando Guide](/tutorial/A%20Link%20to%20the%20Past/plando/en)
This is currently only supported by A Link to the Past and Kirby's Dream Land 3. Boss plando allows a player to place a
given boss within an arena. Boss plando takes in a list of instructions for placing bosses, separated by a semicolon `;`.
There are three types of placement: direct, full, and shuffle.
* Direct placement takes both an arena and a boss, and places the boss into that arena.
* `Eastern Palace-Trinexx`
* Full placement will take a boss, and place it into as many remaining arenas as possible.
* `King Dedede`
* Shuffle will fill any remaining arenas using a given boss shuffle option, typically to be used as the last instruction.
* `full`

### Examples

```yaml
A Link to the Past:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It now recreates the LttP docs here, rather than referring to its guide.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can definitely trim it some, but I think there should be some LttP examples within the main guide since that will still likely be the most prominent use of boss plando. Maybe just leave off the last LttP example?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, I suppose this will be stuck until someone who reviews docs looks at it.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

didn't mention it in my original review but i did look through this and it seems fine to me. the generic doc should definitely have examples in it and these are reasonable. yes the lttp doc also have boss shuffle examples but these are the only two games that support boss plando so it's still relevant imo.

boss_shuffle:
# Basic boss shuffle, but prevent Trinexx from being outside Turtle Rock
Turtle Rock-Trinexx;basic: 1
# Place as many Arrghus as possible, then let the rest be random
Arrghus;chaos: 1
# Ensure that GT bottom is Kholdstare, then place Trinexx
# into as many arenas as possible, then fill the rest with Kholdstare
# Any remaining arenas will have their vanilla bosses placed
Ganons Tower Bottom-Kholdstare;Trinexx;Kholdstare: 1

Kirby's Dream Land 3:
boss_shuffle:
# Ensure Iceberg's boss will be King Dedede, but randomize the rest
Iceberg-King Dedede;full: 1
# Have all bosses be Whispy Woods
Whispy Woods: 1
# Ensure Ripple Field's boss is Pon & Con, but let the method others
# are placed with be random
Ripple Field-Pon & Con;random: 1
```


## Text Plando

Expand All @@ -171,7 +204,7 @@ relevant guide: [A Link to the Past Plando Guide](/tutorial/A%20Link%20to%20the%

## Connections Plando

This is currently only supported by Minecraft and A Link to the Past. As the way that these games interact with their
This is currently only supported by Minecraft, A Link to the Past, Ocarina of Time, and Kirby's Dream Land 3. As the way that these games interact with their
connections is different, I will only explain the basics here, while more specifics for A Link to the Past connection
plando can be found in its plando guide.

Expand All @@ -184,7 +217,7 @@ plando can be found in its plando guide.

[A Link to the Past connections](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/alttp/EntranceShuffle.py#L3852)

[Minecraft connections](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/minecraft/Regions.py#L62)
[Minecraft connections](https://github.com/ArchipelagoMW/Archipelago/blob/main/worlds/minecraft/data/regions.json#L18****)
Copy link
Collaborator

@agilbert1412 agilbert1412 Feb 12, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should you be changing minecraft documentation for a Kirby PR?

Copy link
Collaborator Author

@Silvris Silvris Feb 12, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I figured if we have to edit the file, might as well fix the dead link. This isn't Minecraft documentation though, as it's just a generic plando guide.


### Examples

Expand Down
Loading
Loading