2dos / DK64-Randomizer

Python script that randomizes various things in DK64. See the readme for current options that are available to be randomized as well as other features.
https://dk64randomizer.com/
MIT License
52 stars 27 forks source link

Archipelago Support #1364

Open theballaam96 opened 1 year ago

AlmostSeagull commented 1 year ago

https://discord.com/channels/463917049782075395/559837132428935170/1085773485961400400

theballaam96 commented 1 year ago

Base hack brain dump:

SENDING ITEMS Create 400 new flags which the game will set for archipelago seeds. If a flag in that block is meant for a local item, the archipelago server will send the item to the player. Archipelago will check the flag block for the 400 flags to see which of them is set, can use the flag lookup table in ROM if we need to get those 400 flags back to their source.

RECEIVING ITEMS Have a static memory address for receiving items which will check for a non-zero value. If it detects this, based on the value, it will give a certain item. For example, 1 = GB, 2 = Punch etc. If item is some generic item which bases its count off the flags (eg. Medal), it will set the first available cleared flag in the array. After performing the necessary actions, it will set the value back to 0 so the archipelago server knows it can send another item