Unless I am not understanding you correctly or not seeing something in the master installer, I think something is still missing.
I have included your save routine in the save and suspend writer as below:
DeclSaveChunk($0000, $004C, MSa_SaveChapterState, MSa_LoadChapterState, EMS_CHUNK_CHAPTERSTATE)
DeclSaveChunk($004C, $0008, $0A59E0+1, $0A5A00+1) // World map skirmish RNG state
DeclSaveChunk($0054, $00B0, MSa_SaveConvoy, MSa_LoadConvoy, EMS_CHUNK_CONVOYITEMS)
DeclSaveChunk($0104, $0460, $0A4264+1, $0A421C+1, EMS_CHUNK_BWLENTRIES)
DeclSaveChunk($0564, $00C0, $0A4288+1, $0A4248+1, EMS_CHUNK_WINDATA)
DeclSaveChunk($0624, $0019, $0A3150+1, $0A3198+1, EMS_CHUNK_EIDS_PERMANENT)
DeclSaveChunk($0640, $0004, MSa_SaveBonusClaim, MSa_LoadBonusClaim, EMS_CHUNK_BONUSCLAIMDATA)
DeclSaveChunk($0644, $0024, MSa_SaveWMStuff, MSa_LoadWMStuff, EMS_CHUNK_WMDATA)
DeclSaveChunk($0668, $0018, MSa_SaveDungeonState, MSa_LoadDungeonState) // Valni/Lagdou permanent data
DeclSaveChunk(0, 0, 0, $0177C4+1) // Clear units on load
DeclSaveChunk($0000, $004C, MSa_SaveChapterState, MSa_LoadChapterState, EMS_CHUNK_CHAPTERSTATE)
DeclSaveChunk($004C, $0038, MSu_SaveActionState, MSu_LoadActionState) // Action State
DeclSaveChunk($0084, $0018, MSa_SaveDungeonState, MSa_LoadDungeonState) // Valni/Lagdou permanent data
DeclSaveChunk($009C, $0200, $0A6370+1, $0A638C+1) // Trap data
DeclSaveChunk($029C, $00B0, MSa_SaveConvoy, MSa_LoadConvoy) // Convoy Items
DeclSaveChunk($034C, $0460, $0A4264+1, $0A421C+1) // BWL Entries
DeclSaveChunk($07AC, $00C0, $0A4288+1, $0A4248+1) // Previous chapters turn count & time & stuff
DeclSaveChunk($086C, $0010, MSu_SaveMenuRelated, MSu_LoadMenuRelated) // "menu related list" related
// Gap here of 9 bytes, this is because of a previous mistake in allocation
DeclSaveChunk($0885, $0005, $0A3130+1, $0A3170+1) // Temporary eids
DeclSaveChunk($088C, $0024, MSa_SaveWMStuff, MSa_LoadWMStuff, EMS_CHUNK_WMDATA)
DeclSaveChunk($08B0, $000C, MSu_SaveDungeonState, MSu_LoadDungeonState) // Valni/Lagdou active run data
DeclSaveChunk($08BC, $0004, MSu_SaveEventCounter, MSu_LoadEventCounter) // Event counter
I included the one ConvoyStuff.lyn.event file in my RomBuildfile and, without any other changes, it seems the routine works without issue as below:
However, it doesn’t do anything to change the size of the convoy as it is still 100 items max. If I change the size of the convoy memory from B0 to E2 (what I assume i need if I want 150 items?) and increment the remaining slots to account for the convoy space now being larger.
DeclSaveChunk($0000, $004C, MSa_SaveChapterState, MSa_LoadChapterState, EMS_CHUNK_CHAPTERSTATE)
DeclSaveChunk($004C, $0008, $0A59E0+1, $0A5A00+1) // World map skirmish RNG state
DeclSaveChunk($0054, $00E2, MSa_SaveConvoy, MSa_LoadConvoy, EMS_CHUNK_CONVOYITEMS)
DeclSaveChunk($0136, $0460, $0A4264+1, $0A421C+1, EMS_CHUNK_BWLENTRIES)
DeclSaveChunk($0596, $00C0, $0A4288+1, $0A4248+1, EMS_CHUNK_WINDATA)
DeclSaveChunk($0656, $0019, $0A3150+1, $0A3198+1, EMS_CHUNK_EIDS_PERMANENT)
DeclSaveChunk($0674, $0004, MSa_SaveBonusClaim, MSa_LoadBonusClaim, EMS_CHUNK_BONUSCLAIMDATA)
DeclSaveChunk($0678, $0024, MSa_SaveWMStuff, MSa_LoadWMStuff, EMS_CHUNK_WMDATA)
DeclSaveChunk($069c, $0018, MSa_SaveDungeonState, MSa_LoadDungeonState) // Valni/Lagdou permanent data
// $0680
// Save 62 blue units (62 * 0x2C = $0AA8)
DeclSaveChunk($06b4, $0AA8, ESU_SaveGameUnits, ESU_LoadGameUnits, EMS_CHUNK_SAVEUNITS)
For experimental purposes, I only did the save data, not suspend.
The result is below when working with an existing save (that I knew would be broken, but it let me try to fill up the convoy)
Essentially, I’m able to get your routine to save and suspend data properly, but it doesn’t change the size of the convoy.