Previous Page | Next Page
- by Mouser X at 12:51 PM EDT on October 25, 2005
- As I'm playing through MM64, I started noticeing that most (if not all) of the missing songs are played in the background during a spoken (streamed) segment. The thing that is most interesting about that is that there's a few songs that are present in the current rip that are played during the spoken segments. The ones that I'm aware of (at this point) are 16, 1d, 1e, 1f, 20, 21, 22, 23, 24, 37, 38, 3d, 3e, 3f, 40, 45 (all of these play the same song), and 0b.
I could be way off on this one, but as I was thinking about those songs, the thought occured to me, perhaps the streamed part is loaded first, and the music is loaded second, from within the streamed loader. That would expalin why the songs aren't present. As for the tracks that are present that play during streamed segments, it could be that they're loaded before the streamed segments are (so the music starts before the people start speaking) or that they're present somewhere else in the game, so they get loaded differently for that reason.
Anyway, hopefully that will help narrow down the area that you'll need to look over to find the missing songs. Thanks again for all your great rips! Mouser X over and out.
- by Josh W at 3:29 PM EDT on October 25, 2005
- What? You removed is the code to support running recompiled CPU code from RSP memory space!
I dunno if that causes it? Its definatey a good idea to looke.
BTW, it work with the Recompiler CPU in version 0.05, but not in 0.08
Maybe this would help in figuring out what changed.
- by Josh W at 4:11 AM EDT on October 26, 2005
- hcs, i found our very conusing bug.
I tried to do things another way which resulted in them both working - and the problem with the COP0 regs is gone.
Heres what you should change in a fresh copy of the source (that should work).
Remove SetFpuLocations(); from InitalizeR4300iRegisters() (using the regular one in registers.c), and in cpu.c - StartEmulationFromSave() this:
InitilizeTLB();
InitalizeR4300iRegisters();
Machine_LoadStateFromRAM(savestate);
SetFpuLocations();
BuildInterpreter();
and the top of LoadSettings() in main.c
CPU_Type = SystemCPU_Type = (UseRecompiler?CPU_Recompiler:CPU_Interpreter);
SelfModCheck = ModCode_CheckMemoryCache;
SystemSelfModCheck = ModCode_ChangeMemory;
RdramSize = SystemRdramSize = 0x400000;
SystemABL = FALSE;
DisableRegCaching = TRUE;
ShowUnhandledMemory = FALSE; //TRUE;
ShowTLBMisses = TRUE;
UseTlb = TRUE;
DelaySI = FALSE;
AudioSignal = FALSE;
SPHack = FALSE;
UseLinking = FALSE; //-1;
CountPerOp = 2;
I think UseLinking and DisableRegCaching can be changed.
Im still confused with it, but not as much as before
And to those people who arent hcs and dont understand what this means, it means that the rest of the turoks can be ripped (and possibly others).
edited 8:11 AM EDT October 26, 2005
- by hcs at 11:10 AM EDT on October 26, 2005
- if ((STATUS_REGISTER & STATUS_FR) == 0) {
^ see this line?
I'm fairly certain that this, from SetFpuLocations, is a cause of trouble. Especially when we only ever call it BEFORE loading the save state, thus when this is always true, so we never switch over to 32-bit COP1 mode. Which Turok 3 uses.
Simply adding:
SetFpuLocations();
after the loading of the save state also allows the Fall of Obsidian track to run.
And this is what I will do in the soon-to-be-released beta 21.
[edit]
checked back over the manual, FR=1 is a little confusing...
If you're using the FPU's registers as GPRs FR=0 sets them to 32 bits, FR=1 sets them to 64 bits, and in either case there are 32 of them.
If you're using the regs as FPRs FR=0 configures them as 16 64-bit regs, FR=1 makes 32 64-bit regs.
In any case Turok 3 is the only game I've yet encountered that's bothered to change the mode to FR=1, so that bug in the initialization of the FPRs never came up. So many thanks to Josh for isolating the cause of the problem. I look forward to the new Turoks.
edited 6:14 PM EDT October 26, 2005
- by hcs at 4:58 AM EDT on October 27, 2005
- Turok 3 prelim is up.
- by Josh W at 5:06 AM EDT on October 27, 2005
- i concur
- by Sabrewulf at 9:37 AM EDT on October 27, 2005
- by Sabrewulf at 9:37 AM EDT on October 27, 2005
- by Sabrewulf at 9:39 AM EDT on October 27, 2005
- Sorry for the post empty, What?s up with Cruisin?World & USA?
- by Josh W at 4:43 PM EDT on October 27, 2005
- What?s up with Cruisin?World & USA?
Well apart from Cruisin' USA doesnt work (some crc error or something), and my current techniques dont work on Cruisin' World, so i know that i wont be working on any of those for a while.
But now im on Turok 2. I hate it when ida cant detect any of its standard library functions (such as osSendMesg), but i ended up finding it. And i also found the Music Select routine, so this one seems inevitable in the near future.
I thaught i said i will take a break. Hmmm.
edited 8:45 PM EDT October 27, 2005
Previous Page | Next Page
Go to Page 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
Search this thread
Show all threads
Reply to this thread:
HCS Forum Index
Halley's Comet Software
forum source