USF Ripping Questions by GreyDeath at 6:17 PM EDT on May 13, 2008
I decided to take up the art of USF ripping. I grabbed the guide written by HCS and decided to give it a go with Forsaken 64. I managed to find (I think) the function responsible for selecting music tracks, and was able to control which track plays during the startup sequence.
I even managed to kill off most of the threads. DLIST sits at 0.0% with 0 frames drawn, ALIST hovers around 1.2-2%, and r4300i hovers between 20-35%.
First of all, are these values about normal? Or do they vary from game to game?
Second, everything seems to go smoothly when I try to create the ram/rom sets using PJ64USF. The music plays fine and the process completes successfully. However, whenever I run rom2usf.exe and try to play the resulting USF, winamp crashes immediately. I've tried messing around with the configuration of 64th note, but nothing gets them to run properly. Is there any one place I should start looking for the problem? Is it because there's a bad thread still running that shouldn't be?
Those values sound reasonable, but it is likely that you could cut down the CPU significantly. If you just get the info for the USF (w/ alt+3) does that work OK (to rule out a problem with the file structure). Have you tried running 64th Note with the interpreter CPU? 64th Note shouldn't crash with extra stuff running, but it does all to often, unfortunately. Maybe there is a controller access mechanism working, I don't recall how that is handled.
I'm glad to see someone working on USF ripping again, I hope you can find the problem quickly.
Pressing alt+3 does bring up an empty USF info window.
Previously nothing happened when running 64th note in interpreter mode. But now after messing around with it a bit more I at least get the following error: "Unhandled R4300i OpCode at: 80000F50Stoping Emulation !". I'm assuming that means I have to dig around some more and try killing more stuff.
Ohh quick question... I'm looking at this line of code:
RAM:8000B7E0 beqz $v0, loc_8000BB94
How would I go about forcing $v0 to be 0? I want to make sure the program jumps to loc_8000BB94. This will avoid initializing the rumble pack, and probably a lot of other stuff that's messing things up.
Ok, so I tried a different version of the rom. This time I tried "Forsaken 64 (G) [!].z64", instead of "Forsaken 64 (U) [!].z64". I still get that damn unhandled R4300i OpCode error (at a different address). I'm out of ideas for this one.
I did all this following the guide put together by HCS. I was able to change the value of $a0 to get the different songs to play. I was able to kill most processes (only 40% cpu useage, which is still kinda high in my opinion) and prevent anything from going to the dlist. I created the save state and opened it in PJ64USF, entered in all my information, and away it went ripping each song. Each song played just fine and stopped ripping after it had looped. However, there was no initial slow-down during ripping as indicated in the guide. I don't know if this is important or not. But anyways, once this finishes, I did all the stuff required to create the miniusf, loaded them in in winamp 2.95 and 5.531 using various versions of 64th note with various settings, and I still get the error.
Anyone have any ideas? Would anyone be able to take a look at what I've done to see if I've screwed up somewhere? If so, just let me know what files you need, and where to send 'em.
I still haven't given up yet. I'm making slow progress. I no longer get that unhandled OpCode error. Unfortunately there's still no music, but I do get sound effects! I thought that was kind of strange...