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

SMZ3: optimized message queues #2611

Merged
merged 237 commits into from
Dec 28, 2023

Conversation

lordlou
Copy link
Contributor

@lordlou lordlou commented Dec 17, 2023

What is this fixing or adding?

optimized message queues to support more receiving items
mainly for item link linked replacement items and for cheated items
now only store itemIndex for sending queue
moved all queue pointers, seed data and sent queue at end of SRAM to free up around 0xD30 for receiving queue
receiving queue now only use 8 bit for each of player ID and item ID instead of 16 bit each

this should allow for receiving 1688 items which should fix reported issue here: https://discord.com/channels/731205301247803413/1179637870735147069/1179637870735147069

link to asm change of smz3 ips patch: lordlou/alttp_sm_combo_randomizer_rom@0c63472

How was this tested?

I generated a multi with 2 keysanity SMZ3 and verified they can send and receive items properly with the changes, and even after having received over 400 cheated items.

lordlou added 30 commits August 9, 2021 23:32
…VariaRandomizer's rules, items, locations and accessPoint (as regions)
…se (fills ROM item table)

This is dependant on modifications done to sm_randomizer_rom project
- player name inject in ROM and get in client
- end game get from ROM in client
- send self item to server
- add player names table in ROM
…ition of an array of it (required to generation more than one SM world, which is still fails but is better)
- fixed seeded generation
- fixed broken logic when more than one SM world
- added missing rules for inter-area transitions
- added basic patch presence for logic
- added DoorManager init call to reflect present patches for logic
- moved CollectionState addition out of BaseClasses into SM world
- added condition to apply progitempool presorting only if SM world is present
- set Bosses item id to None to prevent them going into multidata
- now use get_game_players
…VariaRandomizer's rules, items, locations and accessPoint (as regions)
…se (fills ROM item table)

This is dependant on modifications done to sm_randomizer_rom project
- player name inject in ROM and get in client
- end game get from ROM in client
- send self item to server
- add player names table in ROM
…ition of an array of it (required to generation more than one SM world, which is still fails but is better)
lordlou added 24 commits April 19, 2023 22:42
mainly for item link linked replacement items and for cheated items
now only store itemIndex for sending queue
moved all queue pointers, seed data and sent queue at end of SRAM to free up around 0xD30 for receiving queue
receiving queue now only use 8 bit for each of player ID and item ID instead of 16 bit each
@ScipioWright ScipioWright added is: refactor/cleanup Improvements to code/output readability or organizization. is: bug/fix Issues that are reporting bugs or pull requests that are fixing bugs. and removed is: refactor/cleanup Improvements to code/output readability or organizization. labels Dec 19, 2023
@ThePhar ThePhar merged commit e674e37 into ArchipelagoMW:main Dec 28, 2023
12 checks passed
Jouramie pushed a commit to Jouramie/Archipelago that referenced this pull request Feb 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
is: bug/fix Issues that are reporting bugs or pull requests that are fixing bugs.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants