Commit Graph

401 Commits

Author SHA1 Message Date
Fabian Dill b5048d99b9 optimize sweep_for_events, some has_ functions and some minor things 2020-08-22 19:19:29 +02:00
Fabian Dill 8e85e2892a secure sprite table fill with threadlock 2020-08-22 02:56:33 +02:00
Fabian Dill 45268b18f3 another round of optimizations and cleanup including some I/O multithreading
also alias sprite names with their file names as that's an often done mistake
2020-08-21 18:35:48 +02:00
Fabian Dill 6d3a7487e0 herpity derpity, keyshuffle is per player 2020-08-21 02:59:46 +02:00
Fabian Dill 59b1f43b56 set rom flags to no small keysanity if universal keys are on 2020-08-21 02:39:18 +02:00
Fabian Dill 685ff49711 make "universal" small key shuffle a thing and split it out of retro
also make retro usable independently from the other world modes in mystery
2020-08-20 20:13:00 +02:00
Fabian Dill cb4fa6dd33 Split enemy shuffle into its components 2020-08-19 23:24:17 +02:00
Fabian Dill cc65d388fe remove debug logger 2020-08-16 11:22:25 +02:00
Fabian Dill b0284c9fe2 Make all final roms 4 MiB to hide enemizer 2020-08-16 11:13:50 +02:00
Kippi00 e559b1168a
Restore pre-aga1 dark world dungeon behavior in glitched logics (#134)
In any logic that does not patch out fake worlds, dying in a Dark World dungeon before defeating Aghanim 1 will now put you in Fake Dark World. (vanilla behavior)
2020-08-16 02:24:48 +02:00
Fabian Dill 7eb419154b Make Enemizer Check a bit more multithreading resilient. 2020-08-12 08:48:29 +02:00
CaitSith2 5c447967ab TerrorPin AI Fix 2020-08-05 08:49:50 -07:00
Fabian Dill ebd6a9e3cf Removed all instances of the word "Official" where it does not refer to Nintendo 2020-07-31 19:45:10 +02:00
Fabian Dill 9825785989 Set Enemizer output to logging.debug 2020-07-30 20:17:52 +02:00
Fabian Dill a118732431 Update Enemizer 2020-07-30 20:14:05 +02:00
CaitSith2 4ab1e563a0 Fix sprite glitch while receiving items during Ganon fight. 2020-07-29 22:05:37 -07:00
CaitSith2 c737408715
Retry enemizer up to 5 times, logging the error each time it fails. (#128)
* Retry enemizer up to 5 times, logging the error each time it fails.
2020-07-29 21:56:43 +02:00
Fabian Dill 2c1411770e Update Enemizer
https://github.com/Ijwu/Enemizer/releases
2020-07-17 00:07:08 +02:00
caitsith2 075092b154 Make random_on_hit and ALL adjuster settings on initial seed roll deterministic 2020-07-16 03:40:47 -07:00
caitsith2 3c6893d4a8 make hints, credit text, and chaos thieves determistic. (no longer random based on the order the roms are written.) 2020-07-15 23:01:29 -07:00
caitsith2 0ba2405bbc Swamp trench 1 no longer drains. That only happens in door rando now. 2020-07-14 22:45:55 -07:00
Fabian Dill 93ecf5988b implement secrets.SystemRandom() for --race 2020-07-14 07:01:51 +02:00
Fabian Dill ea9e103cb0 update rom name handling 2020-07-14 04:48:56 +02:00
Fabian Dill 00a01d16fd Check Enemizer version #2 2020-07-11 01:26:18 +02:00
Fabian Dill d4f296835c Check Enemizer version 2020-07-11 00:52:49 +02:00
Fabian Dill f27d9e904f fix multithreaded import racing condition when frozen 2020-07-10 22:43:54 +02:00
Fabian Dill 252f9600fe restore unkillable thieves in chaosthieves option 2020-07-05 03:12:28 +02:00
Fabian Dill 78dd0d4280 log enemizer errors if present 2020-07-05 02:41:42 +02:00
Fabian Dill a45ae5deaf make shuffled thieves killable by popular request 2020-07-05 02:23:36 +02:00
Fabian Dill 346a08c3dd Use EasyModeEscape flag of upcoming Enemizer 2020-07-05 02:06:00 +02:00
Fabian Dill dd19834e94 implement Silver Bow as default non-progressive Bow 2020-06-30 09:51:11 +02:00
CaitSith2 545bb8023c
Add ganon triforce hunt (#117)
* Add ganon triforce hunt

* Add self to license

* Correction of help message for Local Ganon Triforce Hunt.

* if 'triforcehunt in world.goal[player]:
2020-06-26 16:18:53 +02:00
Fabian Dill d3d68fcba2 Rename Escape Dungeon to Hyrule Castle by vote on discord 2020-06-24 16:22:49 +02:00
caitsith2 780ae4ebcc Fix fake lightworld bug with climbing GT a second time. @compiling 2020-06-20 19:47:07 -07:00
caitsith2 e1bfa8780c Create basepatch in proper directory if required. 2020-06-20 19:14:09 -07:00
caitsith2 95742ddb98 Skull Woods MSU v32 fix 2020-06-20 18:55:15 -07:00
Fabian Dill cb1d4cc39e apply local items in no_logic 2020-06-19 01:31:32 +02:00
Fabian Dill 29ee4fe307 rename baserom to basepatch to make it clearer what it is
Also move actual baserom to root folder to make it harder to accidentally share it with others when copying stuff
2020-06-17 08:59:50 +02:00
Fabian Dill fdaba7e28c Merge branch 'bsdiff4_baserom'
# Conflicts:
#	Main.py
2020-06-13 22:51:44 +02:00
Fabian Dill 5692041a5b call enemizer with binary rom data 2020-06-11 04:56:47 +02:00
Fabian Dill b3d8368b70 differentiate goal text for local triforce hunt 2020-06-10 03:34:07 +02:00
Fabian Dill 4192e0fabb fix verify 2020-06-09 22:12:46 +02:00
Fabian Dill 8f6fd314ef remove jsonout #2 2020-06-09 22:11:14 +02:00
caitsith2 de9ae7d111 baserom now derived from bmbp file. 2020-06-09 12:18:48 -07:00
caitsith2 0aa6bc5a94 Updated baserom patch 2020-06-08 11:55:40 -07:00
CaitSith2 96bea214da
Merge branch 'master' into msu_v32 2020-06-08 02:04:41 -07:00
caitsith2 f1614a4e4c Convert _ to space in player names in rom. (_ shows up as ?) 2020-06-07 11:52:03 -07:00
Fabian Dill 17f884d047 make triforce pieces required an option 2020-06-07 15:22:24 +02:00
caitsith2 705266da9b Actually write to the player slots past player 64, and at the correct location. 2020-06-07 04:26:20 -07:00
caitsith2 73d1f56ffb base rom changes
* V32 MSU
* All items from chests/received in dark rooms now visible.
* Regular bunny can read signs
* Players up to Player 255 supported on send/received.
2020-06-06 20:49:53 -07:00
Fabian Dill 3864eb5071 fix /snes <snes_interface> if interface contains spaces (which it shouldn't, but meh) 2020-06-03 02:19:16 +02:00
Fabian Dill 23e989312c fix rom-internal RNG not being deterministic due to outside multithreading in _gen_rom (Main.py) setting a random seed across threads while it is in use in any order. 2020-05-24 12:43:03 +02:00
CaitSith2 c8343df81e
Added Extended msu option to gui (#95)
* Added Extended msu option to gui
2020-05-18 05:45:09 +02:00
compiling 195f6c86d2 Replace world exploration with a faster algorithm - use BFS and keep track of all entrances that are currently blocked by progression items 2020-05-10 19:27:13 +10:00
compiling bd7325b03d Fix progressive silvers hint. 2020-05-05 18:57:59 +10:00
Fabian Dill 951778f11f looks like prog bow ganon hints got swapped and duped in a merge. 2020-04-21 21:40:15 +02:00
Fabian Dill 30ae9487d4 Merge branch 'owg_test' 2020-04-16 10:44:59 +02:00
Fabian Dill 5c2c3041a7 speed up write_bytes 2020-04-16 10:38:18 +02:00
Fabian Dill 770f3c305a write 1024 bytes in one go instead of one by one 2020-04-16 09:55:55 +02:00
Fabian Dill c6a61e9008 Merge branch 'master' into owg_test 2020-04-14 03:49:33 +02:00
CaitSith2 34df144f8c
Changes (#64)
* Fix bug where collected maps show on item menu if compass shuffle is on, (and collected compasses if map shuffle is on.)

* Add Dungeon Counter Options
2020-04-13 00:46:32 +02:00
Fabian Dill 1a4be3d2d8 Merge remote-tracking branch 'origin/master' into owg_test
# Conflicts:
#	easy.yaml
2020-04-11 19:58:12 +02:00
CaitSith2 ab78d1a0c9
Add in support for Agahnims Tower Big Key/Map/Compass in starting items. (#60)
This ensures that a doors based yaml that specifies these doesn't cause a failure to roll a seed on master branch.
2020-04-11 06:35:07 +02:00
Fabian Dill 95d51d48bf Merge branch 'pull/23'
# Conflicts:
#	BaseClasses.py
#	EntranceShuffle.py
#	ItemList.py
#	Mystery.py
#	Rules.py
2020-04-08 15:07:19 +02:00
Fabian Dill 94e5b5962f Merge branch 'pull/58' into compilingERupdate
# Conflicts:
#	EntranceShuffle.py
#	Rom.py
#	Rules.py
2020-04-05 19:06:15 +02:00
compiling 11a91b96c6 Set inverted blacksmith to require light world access using the mirror or a portal (via starting in Link's House / Old Man Cave doesn't work).
Set the flag allowing the blacksmith to visit Link's House in simple inverted shuffle.
2020-04-05 21:12:26 +10:00
Fabian Dill f9f7916404 fix swords lookup 2020-04-04 09:32:51 +02:00
Fabian Dill 28b977d1b6 fix difficulty requirements lookup 2020-04-04 09:30:25 +02:00
Fabian Dill f89c28d5c2 Merge branch 'master' into pull/58
# Conflicts:
#	AdjusterMain.py
#	BaseClasses.py
#	EntranceShuffle.py
#	Gui.py
#	InvertedRegions.py
#	ItemList.py
#	Main.py
#	Plando.py
#	Rom.py
#	Rules.py
2020-04-04 09:16:39 +02:00
compiling 0a882bdf4e Show text box on pickup for all dungeon items in keysanity mode. 2020-04-04 15:16:49 +11:00
compiling d6db722d2e Fix silvers hint to point at the bow you didn't find.
Remove silvers hint if progressive bows do not give silvers.
2020-03-09 09:57:22 +11:00
compiling b5dccaba2c Update base2current 2020-03-08 17:27:26 +11:00
Fabian Dill 6059db3ea0 some general improvements. Mostly performance improvements of patching roms in multiworld with enemizer 2020-03-06 23:08:46 +01:00
Fabian Dill e3beb702f8 fix clock mode, again 2020-03-04 13:55:03 +01:00
Fabian Dill f4da26bd2b style 2020-02-25 14:47:52 +01:00
Fabian Dill 95aea8c4b4 rename ocarina to flute. 2020-02-17 10:08:03 +01:00
qadan 3e697f44dc was moved for an earlier thing 2020-02-09 18:49:41 -04:00
qadan c10739e70c fixing up some stuff I broke 2020-02-08 19:17:34 -04:00
qadan d22ccdedb3 some changes 2020-02-06 12:20:50 -04:00
cassidy 21b8c73179
Add "timer" as individual setting (#23) 2020-02-03 02:10:56 +01:00
qadan 4b7694b50f updates 2020-01-28 18:19:07 -04:00
CaitSith2 18f15d80f9 MSU-1 (#13)
* Add Extended MSU as an option
2020-01-22 18:27:25 +01:00
Fabian Dill 515716a71d optimize bytearray creation time and ram use 2020-01-22 17:50:00 +01:00
Bonta-kun f988f7671b --remote_items toggle: items will no longer be stored in the rom, a connection to a multiworld server will be required to receive them 2020-01-18 09:50:12 +01:00
Bonta-kun 71cd0b917c Rom: fix enemizer patching 2020-01-14 22:13:37 +01:00
Bonta-kun ad278f91d6 Multiworld: clients will now be automatically be identified from the rom name and have their names and teams set by the host, meaning those need to be configured during seed gen
Player names will show up in spoiler log and hint tiles instead of player id
MultiClient: autoreconnect to mw server
2020-01-14 10:42:27 +01:00
Bonta-kun 2f5a3e24dd Small shops refactor, cleanup some inverted mess 2020-01-10 11:41:22 +01:00
Bonta-kun 39a07a0624 Rom: dont block HC exit in standard with vanilla entrances to match website mystery behavior 2020-01-10 07:15:11 +01:00
Bonta-kun 77ae96cf1b Refactor rom patching now that jsonrom patches can safely be merged 2020-01-10 07:02:44 +01:00
Bonta-kun 5db7e066da Sprites are now player specific, can be chosen from their sprite name rather than file path, support "random" choice and support "randomonhit" enemizer-only option 2020-01-09 02:30:00 +01:00
Bonta-kun feb925d2b1 Rom: cleaner disable_music patches to match what the website does 2020-01-08 08:17:25 +01:00
Bonta-kun 28011cf675 Built-in palette shuffle (including blackout) 2020-01-08 03:43:48 +01:00
Bonta-kun eb7ca4fdf9 Implement --startinventory 2020-01-06 19:13:42 +01:00
compiling 6b97cebec5 Work around for json patch - split out bow limit into a separate patch so that it can be overridden properly. 2020-01-02 16:33:00 +11:00
Bonta-kun 636a18cee9 Rom: sanitize hint_text input 2019-12-31 15:47:49 +01:00
Bonta-kun 955d1c2875 Fix ganon's silvers hint with progressive bows 2019-12-30 03:21:01 +01:00
Bonta-kun fb1e2a657c Rom: fix silvers restriction with hard+ item functionality, also lock swordless swords limit to 0 2019-12-27 01:43:18 +01:00
Bonta-kun 6ca9cddc9a Rom: revert multiworld overflow replacement settings, baserom patch will skip limit checks for multiworld items 2019-12-27 01:04:34 +01:00
Bonta-kun 4a16ba74e8 Fix triforce hunt icon showing for every player 2019-12-21 10:42:59 +01:00
Bonta-kun 0d9983bae0 Rom: fix player names not applying 2019-12-19 10:04:12 +01:00
Bonta-kun 8721310cf7 World: include can_access_trock_eyebridge can_access_trock_front can_access_trock_big_chest can_access_trock_middle and fix_fake_world in the player specific attributes 2019-12-18 20:45:51 +01:00
Bonta-kun 1ecb5fe40b Individual settings: shufflebosses shuffleenemies enemy_health enemy_damage 2019-12-17 15:55:53 +01:00
Bonta-kun 8a5eef11ce Individual settings: hints 2019-12-17 12:22:55 +01:00
Bonta-kun e5246d5d5a Individual settings: retro 2019-12-17 00:16:02 +01:00
Bonta-kun 1315eb55cf Individual settings: map/compass/key/bk shuffle 2019-12-16 21:46:47 +01:00
Bonta-kun dc26dfce77 Individual settings: crystals_ganon crystals_gt openpyramid 2019-12-16 19:09:15 +01:00
Bonta-kun ec1b9eca43 Individual settings: shuffle 2019-12-16 18:24:34 +01:00
Bonta-kun 203147dda1 Individual settings: difficulty and item_functionality 2019-12-16 17:46:21 +01:00
Bonta-kun c1788c070d Individual settings: goal 2019-12-16 16:55:00 +01:00
Bonta-kun 9ca755d5b2 Individual settings: swords 2019-12-16 16:54:57 +01:00
Bonta-kun ab28858a8f Individual settings: mode 2019-12-16 16:54:46 +01:00
Bonta-kun 79786c7c9e Individual settings: logic 2019-12-16 13:26:07 +01:00
Bonta-kun 930dcfb90f Use original item code for maps and compasses in their dungeons 2019-12-16 10:58:25 +01:00
Bonta-kun d33582a3a2 Enable bombs in escape assist with an enemized standard start so you can beat the game 2019-12-16 09:59:16 +01:00
Bonta-kun fcde1e9cdc Added more enemy shuffle options to be consistent with what's on the website 2019-12-16 01:35:10 +01:00
Bonta-kun 7e9ab6ce27 JsonRom: will behave like an interval map and merge/overwrite segments when appropriate 2019-12-15 16:16:49 +01:00
Bonta-kun 955dce0812 Race rom support (partial) 2019-12-15 16:16:39 +01:00
Bonta-kun 842f6bf1ac rom: correct gametype flag 2019-12-15 10:54:49 +01:00
Bonta-kun fc9d1b501b Replace keysanity with map/compass/key/bk shuffle 2019-12-13 22:37:52 +01:00
Bonta-kun 25068bcfdd Added an option to pre-open the pyramid hole (aka "fast ganon") 2019-12-12 09:20:32 +01:00
Bonta-kun 4ca063be54 Reimplement random weapon standard start, the previous one did not make sense in a multiworld context and rework castle chests logic, bombs start is now possible 2019-12-11 11:41:05 +01:00
Bonta-kun c773b62dfe adjuster: disable_music for the old msu code 2019-12-10 03:21:49 +01:00
Bonta-kun 55a30aa91f multiworld 2019-12-09 19:27:56 +01:00
AmazingAmpharos 1ddfc040f3
Update base ROM
Oops, forgot to ever do this, erroneously assumed it was done before.
2019-10-24 02:13:02 -05:00
AmazingAmpharos 63db5ac077
Hints for inverted
A few locations have different internal names in inverted mode, and the hint system used to fail to handle this. Now it will handle this correctly.
2019-10-23 20:45:02 -05:00
AmazingAmpharos bbc71a208f
A few inverted fixes
A few inverted fixes
2019-09-30 18:40:44 -05:00
cassidoxa f8628337bb One more vanilla/dungeons ROM fix 2019-09-21 22:15:12 -04:00
cassidoxa 2859acef7d Swordless rom writes and inverted fixes
* Update Swordless rom writes

* Remove swordless as possible mode in ItemList.py

* Fix inverted HC Ledge access
Added collection state helper methods for determining lw/dw access
Restricted locations where Link's House can be in inverted
Dark Sanc and Link's House can no longer be at the back of Skull Woods
Fixed minor error in inverted bunny rules

* Update Link's House Shuffling in inverted insanity

* More isolated entrances not to put Link's House at

* Fix Link's House in dungeons shuffles

* More dungeons shuffle stuff I forgot
2019-09-21 21:59:16 -04:00
AmazingAmpharos 4246a8b876
Various hint updates/improvements
This update makes the hint system work much better with simpler shuffles, fixes a bug by which two of the paradox cave entrances had reversed instructions in hints, and prevents the useless hint of there being a skull woods small key in the skull woods pinball room. Progressive Bow is added to the important item list for hints. Further tweaks to some hint language may still be incoming, but this should address the structure of the hint system pretty completely.
2019-09-16 00:51:24 -05:00
Kevin Cathcart f2c62e87ef Update flavor text 2019-09-02 15:34:52 -04:00
Kevin Cathcart 7249429f69 Fix silvers hint 2019-09-02 15:33:34 -04:00
cassidoxa 0a759f18d6 Undo write causing map tile glitch in EP area (#9) 2019-08-28 21:13:35 -04:00
Kevin Cathcart ab99e8c223 Triforce Hunt turn-in logic 2019-08-28 21:12:44 -04:00
Kevin Cathcart 895d274b02 New music muting mechanism 2019-08-25 22:36:19 -04:00
Kevin Cathcart 12d7459a60 Implement progressive bow limit 2019-08-25 22:28:12 -04:00
Kevin Cathcart 7dfff45a84 Fix typo 2019-08-25 22:22:31 -04:00
Kevin Cathcart df6bf6f99c Fix errors 2019-08-24 15:53:21 -04:00
Kevin Cathcart 6a6058adb3 Update goal sign/ganon taunts 2019-08-24 15:36:54 -04:00
Kevin Cathcart ec9709f009 Preopen GT for 0 crystals 2019-08-24 15:35:23 -04:00
cassidoxa fe1505408a Fix mirror bonking in inverted
reverted a change and fixed some inverted writes I messed up initially
2019-08-24 10:14:57 -04:00
Kevin Cathcart c0acfdd81e New silver arrow hints
Supporting progressive bows.
2019-08-21 22:40:19 -04:00
Kevin Cathcart 418568df60 Add Item functionality setting and progressive bow
Progressive bows still have issue for silvers hint
2019-08-10 19:37:26 -04:00
Kevin Cathcart 996bf8495c Implement new weapons modes
This also includes some partial additional cleanup of the item pool.
2019-08-10 16:10:54 -04:00
Kevin Cathcart b8ea2eb4b1 Fix random weapons for Standard Mode
Now works roughly like VT, except that swords are somwhat more common
and bombs-only escape is not supported (because I don't want to make
'Bombs (10)' an advancement item)

Swordless Standard Mode should also work now

Assured and Vanilla weapons still need to be implemented.
2019-08-10 16:10:54 -04:00
Kevin Cathcart 3713f6a1b5 Add keysanity map reveal
An overlooked v30 feature
2019-08-10 16:10:54 -04:00
Kevin Cathcart b0f4fa8cec Partial implementation of many V31 features
Partial support for Progressive bow
  - Still needs to be added to item pool
  - Silver hint handling remains TBD even for VT

Added weapons selection.
  - Vanilla needs to be implemented
  - Assured needs to be implemented
  - Inverted swordless is almost certainly messed up.
  - Swordless standard mode will likely softlock
  - Random weapon standard mode is currently treated as uncle assured

Deleted removed difficulties
  - Remaining difficulties still need to be adjusted

Added locked property to locations:
  - This is used for preplaced items etc so that multiworld balancing
    knows they cannot be moved.

Made a few of the difficulty changes from V31, but not all.

Added required text changes to handle crystals requirements
  - More changes will likely me made in future
  - Currently there is is no way to tell ganon requirement in
    Inverted mode
2019-08-10 16:10:47 -04:00
Kevin Cathcart d4f1bb7091 Implement V31 prize packs 2019-08-10 15:56:50 -04:00
Kevin Cathcart 8fb89971e5 Fix standard mode 2019-08-03 16:48:39 -04:00
Kevin Cathcart 90e5f522d8 Partially implement variable crystal requirements 2019-08-03 16:48:31 -04:00
cassidoxa 18f1275050 Inverted Mode (#5)
Merging in Cassidoxa's inverted mode.

I've still not fully reviewed the logic used in this mode, so it should be considered experimental, pending an in depth review by either myself or AA.
2019-07-27 09:13:13 -04:00