Page 2 of 4 FirstFirst 1234 LastLast
Results 11 to 20 of 36
  1. #11
    Winphin Developer dolqube's Avatar
    Join Date
    Oct 2005
    Posts
    69
    Mentioned
    0 Post(s)
    @emwearz:what are you talking about lost faith. I really dont care what anyone thinks



    @****zy: debug the fifo commands in the plugin and tell me the last few commands before it crashes.
    Last edited by dolqube; January 5th, 2007 at 16:47. Reason: mis spell

  2. #12
    Winphin Developer dolqube's Avatar
    Join Date
    Oct 2005
    Posts
    69
    Mentioned
    0 Post(s)
    @emwearz: I never asked him for source code all I asked was how much of the fifo was emulated. I need to know how the function that crashes is emulated in order to crush the bug.

  3. #13
    EmuTalk Member emwearz's Avatar
    Join Date
    Jan 2006
    Posts
    75
    Mentioned
    0 Post(s)
    dolqube, theres a edit button for a reason, you dont have to constantly multi post.
    Last edited by emwearz; January 6th, 2007 at 01:23.


    Intel Core 2 Duo E6300 (@3.3 Ghz) | GeForce 8800GT 512MB | 2GB OCZ DDR2 800
    Asus P5B Vanilla | Thermaltake Soprano | Thermaltake Big Typhoon VX

    Beta Tester for nullDC

  4. #14
    EmuTalk Member zaba_3's Avatar
    Join Date
    Jan 2004
    Posts
    485
    Mentioned
    0 Post(s)
    Quote Originally Posted by emwearz View Post
    dolqube, theres a edit button for a reason, you dont have to constantly multi post.
    Stop talking about things you dont know anything ok?

    go back to emuforums please
    vampireuk pwned you in irc

    clever words by groepaz:
    "i wonder how small your **** has to be that you have to put your system specs into your sig :=P "

  5. #15
    Winphin Developer dolqube's Avatar
    Join Date
    Oct 2005
    Posts
    69
    Mentioned
    0 Post(s)
    sorry its a bad habbit i know (but i have got good intentions)

    @zaba_3 : thanks for telling him exactly what he knows

    EDIT: see Im using it now.

    I just sent monk an email with an explanation of my cpu emulator.

    Ill post it here as well

    Its to long to post it in an edit
    Last edited by dolqube; January 5th, 2007 at 18:34. Reason: showing that i can

  6. #16
    Winphin Developer dolqube's Avatar
    Join Date
    Oct 2005
    Posts
    69
    Mentioned
    0 Post(s)
    here is an explanation of my cpu recompiler
    its very buggy right now but i learned a lot from it


    TAKE YOUR TIME READING IT ITS PREYY COMPLICATED!!!

    this will be very complicated to understand (I normally dont teach)
    but the pros will understand
    (remember this is only an explanation I wrote in five minutes so it could have lots of mistakes)




    I based my cpu from gcemu's.
    (guess it will be open source then)


    /-----------------------------------------------
    this is how gcemu interpereted (add)
    /-----------------------------------------------

    unsigned int * pra;
    unsigned int * prb;
    unsigned int * prd;

    void ppc_int_add()
    {
    unsigned int rD, rA, rB;

    rD = ((opcode)>>21)&0x1f;
    rA = ((opcode)>>16)&0x1f;
    rB = ((opcode)>>11)&0x1f;


    prd = &gpr[rD];
    pra = &gpr[rA];
    prb = &gpr[rB];
    _asm
    {
    mov edx, dword ptr pra
    mov eax, [edx]
    mov edx, dword ptr prb
    add eax, [edx]
    mov edx, dword ptr prd
    mov [edx], eax
    };

    }
    /------------------------------------------------

    that was just for sme background info on how emulators interperate the opcode

    the structure is (add rD,rA,rB)




    /------------------------------------------------
    LEVEL 1 RECOMPILER

    well now lets say that we generated this in asm.

    add 1,2,3

    that would be (this is just an explanation its not accurate)

    mov eax, gpr2 //move gpr2 into eax
    mov ebx, gpr3 //move gpr3 into ebx
    add eax, ebx //add ebx to eax
    mov gpr1,eax //move eax into gpr1
    /------------------------------------------------



    /-------------------------------------------------
    LEVEL 2 RECOMPILER

    well now lets say that we generated this in asm.

    add 1,2,3
    add 3,2,1

    that would be (this is just an explanation its not accurate)

    mov eax, gpr2 //move gpr2 into eax
    mov ebx, gpr3 //move gpr3 into ebx
    add eax, ebx //add ebx to eax
    mov gpr1,eax //move eax into gpr1

    add eax,ebx //add gpr1 to gpr2
    mov gpr3,eax //and move into gpr3

    /-------------------------------------------------

    whereas a level 1 recompiler would generate

    mov eax, gpr2 //move gpr2 into eax
    mov ebx, gpr3 //move gpr3 into ebx
    add eax, ebx //add ebx to eax
    mov gpr1,eax //move eax into gpr1

    mov eax, gpr2 //move gpr2 into eax
    mov ebx, gpr1 //move gpr1 into ebx
    add eax, ebx //add ebx to eax
    mov gpr3,eax //move eax into gpr3

    /-------------------------------------------------

    it saves a lot of cycles for other stuff like gfx and audio emulation.






    HERE IS THE BIG ONE LEVEL 3 as I call it.


    well now lets say that we generated this in asm.

    add 1,2,3
    add 3,2,1
    add 1,2,3
    add 3,2,1
    add 1,2,3
    add 3,2,1
    add 1,2,3
    add 3,2,1
    add 1,2,3
    add 3,2,1


    now if you notice that you add rA and rB together. You add which one you want to the other. eg. rA + rB, or rB + rA

    the level three recompiler has a bit of ai because it recognizes patterns. for example above gpr2 is used in all opcodes

    lets say we generate

    mov eax, gpr2 //move gpr2 into eax
    mov ebx, gpr3 //move gpr3 into ebx
    add eax, ebx //add ebx to eax
    mov gpr1,eax //move eax into gpr1

    gpr2 is in eax. (eax has the fastest add transfers.)

    this is not good because we write over eax (gpr2) for every opcode emulated.
    so level three scans the opcode block to see what register would be best place to put the registers.

    in this case it would be (as you can see below there are other factors taken into acoount in the algorithem.)


    mov eax, gpr3 //move gpr3 into eax
    mov ebx, gpr2 //move gpr2 into ebx

    add eax, ebx //add ebx to eax (now eax contains gpr1 not gpr3)
    add eax, ebx //add ebx to eax (now eax contains gpr3 not gpr1)
    add eax, ebx //add ebx to eax (now eax contains gpr1 not gpr3)
    add eax, ebx //add ebx to eax (now eax contains gpr3 not gpr1)
    add eax, ebx //add ebx to eax (now eax contains gpr1 not gpr3)
    add eax, ebx //add ebx to eax (now eax contains gpr3 not gpr1)
    add eax, ebx //add ebx to eax (now eax contains gpr1 not gpr3)
    add eax, ebx //add ebx to eax (now eax contains gpr3 not gpr1)
    add eax, ebx //add ebx to eax (now eax contains gpr1 not gpr3)

    mov gpr1,eax //move eax into gpr1

    add eax, ebx //add ebx to eax (now eax contains gpr3 not gpr1)

    mov gpr3,eax //move eax into gpr3


    /--------------------------------------------------------------------------------------------------

    this takes 14 opcodes most of which are eax adds.
    compare that with the 40 opcode it would take with level 1 and you see speed, lots of speed

    EDIT: sorry this was suposto be a threat for ****zy (ill move it to a new thread if you want)
    Last edited by dolqube; January 5th, 2007 at 18:41. Reason: forgot something

  7. #17
    EmuTalk Member BlueFalcon7's Avatar
    Join Date
    Oct 2005
    Location
    Detroit, MI, USA
    Posts
    747
    Mentioned
    0 Post(s)
    @Dolqube: you know that you can go to #Gekko on Efnet, Sometimes you will see me there. Thats assuming that I dont have an insane amount of work to do... Then again, you might be in a totally different timezone than me.

  8. #18
    EmuTalk Member Sercio's Avatar
    Join Date
    Jan 2006
    Location
    Berlin
    Posts
    704
    Mentioned
    0 Post(s)
    uhm i was on #gekko using mirc but noone was there.... and i tryed 10 x the day! Do im something wrong maybe?

  9. #19
    EmuTalk Member emwearz's Avatar
    Join Date
    Jan 2006
    Posts
    75
    Mentioned
    0 Post(s)
    Are you connecting to the right channel (EFnet)?


    Intel Core 2 Duo E6300 (@3.3 Ghz) | GeForce 8800GT 512MB | 2GB OCZ DDR2 800
    Asus P5B Vanilla | Thermaltake Soprano | Thermaltake Big Typhoon VX

    Beta Tester for nullDC

  10. #20
    EmuTalk Member Sercio's Avatar
    Join Date
    Jan 2006
    Location
    Berlin
    Posts
    704
    Mentioned
    0 Post(s)
    i typed #gekko on the connect screen and a window opened... nothing else and noone other was in that "chatroom"

    edit: ok now i find out how its work... meet you there ^^
    Last edited by Sercio; January 6th, 2007 at 13:18.

Page 2 of 4 FirstFirst 1234 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •