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:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=http://www.google.com]Link[/url]

[img=https://www.hcs64.com/images/mm1.png]
Password
Subject
Message

HCS Forum Index
Halley's Comet Software
forum source