Skip to content

Conversation

@Supremekirb
Copy link

This PR adds the ability to change the location in the sound engine binary that the song address table is written to.

This makes it significantly easier to write new code for the sound engine (especially custom SFX) as a current limitation is that the song table has to remain in a constant location, and thus it becomes difficult to edit the code and data before it.

The implementation is based on a piece of data that CoilSnake can identify including a pointer to the location of the song table. Specifically, a UTF-8 string followed by the pointer. This may look like the following in a disassembly:

db "COILSNAKE SONG TABLE POINTER"
dw Song_Table

This string does not appear as binary data anywhere in the vanilla sound driver. If this data is not found, then the song table will be written to the default location. If more than one instance of this data is found, an error will be thrown.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant