Page 4 of 4 FirstFirst 1234
Results 31 to 38 of 38

Thread: N64 DD Research Project

                  
   
  1. #31
    PSP Coder
    Join Date
    Sep 2005
    Posts
    1,407
    Rep Power
    83

    Default

    Quote Originally Posted by Malkster
    Good news for you

    The only N64 Cartrigde i still got is Wave Race and Smash Bro's
    Cool.
    Only 2 carts I still want.

    1) Super Mario 64 Shojin Edidition (jp), This is a rare 2nd print that adds rumble suport. Kind of hard to come by. Waverace (which i got) is the only other SE rerelease game.
    2) Conker Bad Fur Day (I do have the xbox ver but god I love this game).

  2. #32
    PSP Coder
    Join Date
    Sep 2005
    Posts
    1,407
    Rep Power
    83

    Default

    **** **** ****.
    i a missing my notes that have the broken down boot src.

    **** **** fu. I shout have rewrote that in a doc. :S

  3. #33
    PS Beta Tester & Mod DPyro's Avatar
    Join Date
    Feb 2006
    Location
    Right Behind You!
    Posts
    2,742
    Rep Power
    83

    Default

    LoL....Sorry Monkey, nothing I can do from here

  4. #34
    PSP Coder
    Join Date
    Sep 2005
    Posts
    1,407
    Rep Power
    83

    Default

    not sure if it's accurate (yet to fully break it down) but.....

    the answer to the universe is 0x00590000. 0x01590000 if you have a disk in the drive. :P

    So what does this mean? Erm guessing i was not far off in one of my disasm checks (in my missing notes. ) i had found where it broke down to see if the disk is present. Not sure what the 59 fully means. I am guessing its 2 or 3 flags (not an absolute value).

    I also now assume the lower 16 bits of the DD status register is for errors. If any number is there it considers the DD unit errored out.

    so how did I find the answer without my notes?

    ; Reset DD
    resetdd:
    lui t0, $a500
    ori t0, $0520
    lui t1, $aaaa
    ori t1, $0
    sw t1, (t0)
    jr ra
    nop

    readddstatus:
    lui t6, $a500
    ori t6, $0508
    lui t0, $0000
    ori t0, $0f0f
    lw t0, (t6)
    srl t0, t0, $10
    andi t0, $ffff
    jr ra
    nop

    my asm skills suck so there was probably a better way to do that. Actualy i noticed an optimisation right now.

    andi t0, $ffff
    jr ra
    nop

    to
    jr ra
    andi t0, $ffff

    why? Mips cpu have a delay slot on jumps & branches. So atm i just do a nop (no instruction) when I could just preform the andi in the delay slot insted. andi of corse is just making sure we only keep the lower 16bits of a 64bit register. The demo i hacked does not like printing something bigger then 16bits.

    anyways I attached the demo. It just issues a reset then reads the dd status every frame & prints to the screne (analog moves the value around).
    demo src base is "U64ASM assembler" from http://here.is/halleyscomet

  5. #35
    PSP Coder
    Join Date
    Sep 2005
    Posts
    1,407
    Rep Power
    83

    Default

    How to go from strange to ugly.

    Write 0x00090000 into the command register and watch the stats register go crazy. :S

    Gonna have to debug this some more (0x00590000 might not be the right number).

  6. #36
    PSP Coder
    Join Date
    Sep 2005
    Posts
    1,407
    Rep Power
    83

    Default

    Few more numbers
    HW DD Status reg
    Reboot = 0x00590000
    Cmd 9 = 0x02180000

    If I do my emu with 0x02180000 I get write RTC (0x14) command.
    If I do 0x00590000, I get Cmd 0x09.

    Breaking the two numbers into binary show a few patterns

    0000001000011000 - 0x0218
    0000000001011001 - 0x0059
    0000000100000000 - 0x0100 <- Disk Present
    0000000010000000 - 0x0080 <- Error 3
    0000000001000000 - 0x0040 <- Cmd 9 writen
    0000000011000000 - 0x00C0 <- loop of reading DD status

    So logical guess is the first 2 or 3 bits represent the units drive status. Here are some assumptions (with few details from a leo header).

    0 - Drive Active / Busy
    1 - Drive Idle / Waiting
    2 - Drive Sleep / Off
    4 - Drive Break / Error

    Next two bits i'm not sure. I could be wrong on the previous part (it could be 2 bits not 3) and the next part is 3 bits which equal 0x6.

    The rest I really dont know. Gonna modify m64 to let me change this on the fly.

    --edit--
    few update notes.

    --edit 2--
    Wtf, Lac said he don't remember it forcing any interupt but regardless what I set. the DD does not seem to progress. There has to be a trigger to the N64 somewhere.

  7. #37

    Default

    Hows ur job going btw lol?

    What exactly do you do?

  8. #38
    PSP Coder
    Join Date
    Sep 2005
    Posts
    1,407
    Rep Power
    83

    Default

    psp pipeline / engine coder.

Page 4 of 4 FirstFirst 1234

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Bookmarks

Posting Permissions

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