-
Notifications
You must be signed in to change notification settings - Fork 61
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
Instrument Set Table Expansion #162
base: dev
Are you sure you want to change the base?
Conversation
… bank during seq assignment instead of before
… don't go past 0x80
…what each audio hack binary does
…isting bank options
…ress can shift with payload changes.
Looks great! I did a quick test on Dolphin too and it seemed to be working just fine. Do you happen to have the ASM for the hack files, just so it's easier to read through it? May I ask if you took into consideration some audiobank related code we change to prevent background music from dying due to being loaded into the wrong table? This is the related code here. At a glance it doesn't look like you've affected that code, which is good. |
// loadnewaudiotable: where the copy metadata function loop was, sets a jump to code placed at the old instrumentset list | ||
// which DMAs new audiobanktable from a file, relocates the addresses in the table, and sets the | ||
// instrumentset table pointer to the new file | ||
ResourceUtils.ApplyHack(Resources.mods.loadnewaudiotable); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In this file, can you change ADDIU SP, SP, 0x00
to ADDIU SP, SP, -0x18
at the start, and + 0x18 at the end? And also SW/LW RA 0x0010 (SP)
to SW/LW RA 0x0014 (SP)
Updated loadnewaudiotable with the stack changes. Thanks for pointing that out that spot for the return address. So, the hack ASM... I don't have files for those. When I started this, I picked up on how the ApplyHack function worked, and hand-made the binaries as I was going through the pj64 debugger and memory. I can try writing something like ASM for documentation if that'll help. I did see the hooks to the new code as I was changing code, and I don't recall needing to mess with those. This should work fine alongside the hooks. |
ty
No worries, that's how I started out with my hacks, so none of them have source ASM either. Don't worry about it if you don't have it then.
Cool ok. |
Music makers don't have to fuss so hard with packing instruments into existing banks. If they can't work around existing instrument sets, bank 0x28 can be chosen.
Modified banks already claimed by shuffled MMRSs (not just for bank 0x28) get placed into new entries.
Doesn't check if so many banks get added to rom that they spill over into whatever is past audioseq/audiotable. I'm not sure how to do that, but not too worried about it. I want to wait and see if music makers/plandos will actually use so much space casually like that.