-
-
Notifications
You must be signed in to change notification settings - Fork 77
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
[Feature] spcPause(), spcResume(), spcGetStartPos() #213
Comments
A little bit of fine print: Pause and resume won't restart exactly from where you left off in the song: this is because the orderlist position is used. There may be some carryover problems because the song is reinitialized anyways the way things currently are handled, meaning we still have some resetting going on... I may want to do something different. I also haven't looked at the way TCC handles its parameters yet to properly integrate with its C++-side code. |
@KungFuFurby Therefore, is it impossible to implement this feature? |
It's not impossible. Within the context of the methodology that would be used, it would have some limitations... in its earliest iteration, due to carryover problems. Later iterations can customize the SPC700 side so that it can resume exactly where it left off ( |
@KungFuFurby Ok thank you! (sorry for late reply!). |
yes, why not :) |
Feature request
Creating these 2 functions will allow a better control on a music IT file:
spcPause()
: This function pauses a played music (started withspcPlay(0)
)spcResume()
: This function resumes a paused music (paused withspcPause()
)Advanced Feature request
Creating this function will help developers to simply get the current
startPos
value:spcGetStartPos()
So they can pass it to
spcPlay(startPos)
after stopping a music withspcStop()
.Notes
These are the explanation of KungFuFurby that might help you to implement this feature:
startpos refers to an orderlist ID. You can retrieve the orderlist ID directly from $2143/$F7... but of course, the ASM I ported over way back when didn't include this function for whatever reason on the 65816 side.
Copy over this snippet of code, giving it a different name:
pvsneslib/pvsneslib/source/snesmodwla.asm
Lines 794 to 805 in 862adbf
Replace all instances of REG_APUIO2 with REG_APUIO3.
I'd say put your modified function somewhere in https://github.com/alekmaul/pvsneslib/blob/master/pvsneslib/include/snes/sound.h ...but I don't see a good return type example from here. I'm thinking a u8
The text was updated successfully, but these errors were encountered: