Previous Page | Next Page
- Hopefully this works...later by unknownfile at 3:25 PM EDT on August 10, 2005
- I managed to make a savestate for DK64usf, and sparsed it.
It doesn't do anything in 64th note as of now.
[This is an actual miniusf using the sr64 savestate]
[made in Breakpoint Software Hex Workshop plz kthx]
000000000 5053 4621 1800 0000 0000 0000 0000 0000 PSF!............
000000010 0000 0000 5352 3634 0400 0000 DC58 7400 ....SR64.....Xt.
000000020 0000 1A00 0000 0000 5B54 4147 5D5F 6C69 ........[TAG]_li
000000030 623D 646B 3634 2E75 7366 6C69 620A b=dk64.usflib.
- by hcs at 11:45 PM EDT on August 11, 2005
- I have a very nice DK64 save state which nevertheless doesn't work. My code in PJ64 was:
if (PROGRAM_COUNTER==0x80602A94) {
GPR[4].UW[0]=0xae;
//DisplayError("a0=%08x a1=%08x ra=%08x",GPR[4].UW[0],GPR[5].UW[0],GPR[31].UW[0]);
((DWORD*)N64MEM)[0x732330/4]=0; // disable Thread7 (useless)
//((DWORD*)N64MEM)[0xC46C/4]=0; // diable Thread4 (kills dlist, but no progress)
((DWORD*)N64MEM)[0x60E17C/4]=0; // disable Thread8
//((DWORD*)N64MEM)[0x60F18C/4]=0; // disable Thread5
((DWORD*)N64MEM)[0x5FC270/4]=0; // disable ThreadMain
//((DWORD*)N64MEM)[0x4F48/4]=0; // disable Thread3
//((DWORD*)N64MEM)[0x4F50/4]=0;
((DWORD*)N64MEM)[0x5fed68/4]=0x08000000|(0x5FEE70>>2);
((DWORD*)N64MEM)[0x5fed6c/4]=0;
((DWORD*)N64MEM)[0x5FC0D0/4]=0; // disable calling stage fcn again
((DWORD*)N64MEM)[0x24000/4]=0x03E00008;
((DWORD*)N64MEM)[0x24004/4]=0;
((DWORD*)N64MEM)[0xA3A0/4]=0x03E00008;
((DWORD*)N64MEM)[0xA3A4/4]=0;
((DWORD*)N64MEM)[0xA3F0/4]=0x03E00008;
((DWORD*)N64MEM)[0xA3F4/4]=0;
((DWORD*)N64MEM)[0x60F168/4]=0;
//((DWORD*)N64MEM)[0x60F490/4]=0; // kills alist
//((DWORD*)N64MEM)[0x60F838/4]=0; // kills everything
//((DWORD*)N64MEM)[0x60F418/4]=0;
// try killing some osSendMesgs
//((DWORD*)N64MEM)[0x4EF8/4]=0; // kills alist
((DWORD*)N64MEM)[0xC254/4]=0;
((DWORD*)N64MEM)[0xC294/4]=0;
((DWORD*)N64MEM)[0xC408/4]=0;
//((DWORD*)N64MEM)[0xC450/4]=0; // <<<--- responsible for freezing everything
//((DWORD*)N64MEM)[0xC464/4]=0; // <<<--- ditto
((DWORD*)N64MEM)[0x5FC224/4]=0;
((DWORD*)N64MEM)[0x601D98/4]=0;
//((DWORD*)N64MEM)[0x601E04/4]=0; // no alists
//((DWORD*)N64MEM)[0x6020D0/4]=0;
((DWORD*)N64MEM)[0x60B950/4]=0;
((DWORD*)N64MEM)[0x60F168/4]=0;
//((DWORD*)N64MEM)[0x60F490/4]=0;
((DWORD*)N64MEM)[0x60F51C/4]=0;
//((DWORD*)N64MEM)[0x60F8FC/4]=0;
//((DWORD*)N64MEM)[0x60FACC/4]=0; // hmmm
((BYTE*)N64MEM)[0x745650^3]=1; // aha! "do sound NOW"
((DWORD*)N64MEM)[0x60FACC/4]=0;
sprintf(SaveAsFileName,"DK64_MIGHTY");
Machine_SaveState();
}
So how is yours created to a point where it works in PJ64 USF (mine doesn't)? You might want to try adding an _enablecompare tag.
- by unknownfile at 4:26 AM EDT on August 12, 2005
- It doesn't
I'll try using this savestate...when I get home from day camp. ;p
- dk64 by Josh W at 7:19 PM EDT on August 22, 2005
- I got somewhere with this.
Im giving it a go.
Check this out: sparse02.zip
Heh Heh.
- by hcs at 8:16 PM EDT on August 22, 2005
- keen beans.
I'm working on the new PJ64 1.6-based thingy, and it seems like the USFs I had made for DK64 work in it (as does everything else I've tried, Bust-a-Move '99 included (I don't have the Mischief Makers bits around anymore)). If yours works in the current version then all the better!
How'd you change my approach, or did you use something else?
- by Josh W at 8:45 PM EDT on August 22, 2005
- Well i fif the usual an traced the threads and looked for supicious things, and i think that i found thread 7 necessary (but my thread 7 might be different from yours -0x805FADF4).
Anyway i am trying a method of Terminating the graphcs thread (and all other ones that dont diable music) that i count how many Dlists i need to use before the music starts. Luckily the count for this was 2.
Something like this.
if(DlistCount>2)
{
NOP_OUT(0x5F52F0)
NOP_OUT(0xC46C)
NOP_OUT(0x60E17C)
NOP_OUT(0x60F18C)
NOP_OUT(0x5FC270)
NOP_OUT(0x4F48)
NOP_OUT(0x4F50)
}
Now i am having a problem finding the acual musicselect number offset.
- by hcs at 8:54 PM EDT on August 22, 2005
- ((BYTE*)N64MEM)[0x745650^3]=1; // aha! "do sound NOW"
This line here will start the music playing right away without having to wait for a few dlists, I ran into something similar.
And as far as I can tell a good place for music selection is 0x80602A94, with the song # in a0.
- by Josh W at 2:53 PM EDT on August 23, 2005
- It has come to my attention that i am using the European version of the rom. That would explain why your code didn't do anything to it.
I'll see if i can find an american version, but if i cant i will have to just keep working on what i got - in the dark.
Hmmm.
Just a thing that might help, but where is that being called from? It might be able to help me identify it in this version.
Also, i made a nice little thing to compare savestates and search for music variables, and i did a search using 2 roms and the (American) song index table.
I got some nice results from it, but these were misleading as they appeared to change the music,
they did nothing of the sort.
There was a few good hours wasted last night.
edited 10:11 PM EDT August 23, 2005
- by hcs at 4:27 PM EDT on August 23, 2005
- I don't remember where it was called from...
You might take a look at the GSCentral code porting program, I used that to find equivalent addresses between the US and European SM64.
edited 8:27 PM EDT August 23, 2005
- by Josh W at 6:15 PM EDT on August 23, 2005
- No such luck.
I tried and converted several values that should have done at least something, but they didn't :(
Well i guess its back to trying to find a usa rom.
Previous Page | Next Page
Go to Page 0 1 2 3 4
Search this thread
Show all threads
Reply to this thread:
HCS Forum Index
Halley's Comet Software
forum source