Multiworld is functional.
Uses Archipelago ("AP") for multi-game multiworld generation and synchronization
See black-sliver / Archipelago / soe for seed generation
See black-sliver / pyevermizer for the interface to Archipelago
See black-sliver / apbpatch for ROM patching
See black-sliver / ap-soeclient for AP client
Below are the items that are still to be done.
-
Traps (items)
-
Death link (similar to items)
-
Copy seed/slot from ROM to RAM
-
Ingredienizer in AP to put alchemy in logic
-
Show remote player and/or item name
-
Add memory block to signal which call bead spells have been viewed by the player
(NOTE: if the player never opened the CB menu, the spells should not show up in the tracker) -
Reserve space for Extended market timer
-
Reserve space for Energy Core fragments (unused trade good?)
-
Add magic number + version + seed settings to ROM
-
Copy magic number + version + seed settings from ROM to RAM (for RA+Snes9x)
-
Add flag "--hide-settings" that gets written to ROM so the tracker does not spoil (Mystery seed)
Status: PARTIAL
- place ID sequence in ROM: done
- memcpy ID sequence to RAM: TODO
- use
placement.txt
for item placement: done - see other changes below: TODO
Status: PARTIAL
see wiki/Memory-Layout#ram-layout
- Alchemy spots: 1bit per spell, so we can map 1:1; this needs to be bit-accessible by scripts done
- Call bead visibility; this will be written by ASM code TODO
- FIXME: for chaos the tracker will still have to read mapping from ROM
- 4x4 bits: full enum for each slot -> tracker only reads these 2B
- Unknown
- FE
- Horace
- Horace + Aura
- Horace + Regenerate
- Horace + Aura + Regenerate
- Queen
- Prof.
- Extended market timer: 1-2 additional bytes for the upper part RESERVED
- Energy core fragments (maybe the 1 unused word in trade goods) RESERVED
- 16bit integer for "last received item sequence number" done
- Some bytes for multiworld communication done
Status: UNCERTAIN
- Move boss locations, drops and addresses to `bosses.json?
- Add utilities `bosses2h.py?
- Same for alchemy?
Stauts: TODO
At the moment if something is not randomized, it is not touched. Instead we should always apply the same modifications, but have the values fixed, to allow more options without making the code unreadable.
Status: TODO
Implement setting above bits when opening the corresponding ring menu.
Status: TODO
- Remove old patches
Status: TODO
In a future version we may want to display who sent or received an item.