PDA

View Full Version : N64 DD Research Project



PSmonkey
June 12th, 2006, 05:38
Need some hard notes so I am posting here. This does not mean I am going to get n64 dd emulation running. This is mostly what little bits I can get out of a few people plus debugging the ipl4rom.

:cool: As always, this stuff stays private. :cool:

-- 64 DD Boot (Abnormal instances) --
1) Does SW write test to RDRAM starting at 4MB to 8MB. Consist of two writes. at 1MB intervals & a second at XXX (forgot offset).

2) Sets PI Domain2 registers (domain 1 = rom, domain 2 = dd).

3) Writes 0xAAAA0000 (SW opcode) to 0x05000520 (PC: 0x8027C0E4).

4) Reads (LW opcode) from 0x05000508 (PC: 0x8027BF44).

5) Branch Check
--- Four senarios ATM ---

- 1 - Value in the lower 16bits
.1) Error 41

.2) Constant loop check of the DD Status Register.

- 2 - 0x01000000
- 3 - 0x01020000
- 4 - 0x00000000
.1) Writes 0x00000000 (SW opcode) to 0x05000500 (PC: 0x8027C0E4).

.2) Writes 0x00140000 (SW opcode) to 0x05000508 (PC: 0x8027C0E4). ?? SET_RTC_CMD

.3) No more checks of DD Registers ??

-- 64 DD Registers (known) --
0x05000500 - Data
0x05000508 - Command / Status (?)
0x05000520 - Hardware Reset

-- Assumptions --
The IPL4ROM uses Fast3D Ext (modified) or F3DEX1.0 Microcode.

-- Additional info --
Was told the system time is stored in BCD format.
http://www.danbbs.dk/~erikoest/bcd.htm

Was told the 64DD tries to read a value from the status after the Hard Reset. If the value is not valid it wont progress to calling to read the RTC.

-- Notes from another forum --
This IPL rom are dumped from retail 64DD.
using GameShark and Hacked GS Utility.

64DD IPL rom are mapped 0xA6000000-0xA63FFFFFFF(0x06000000-0x063FFFFF).
If you want running it on Emulator, change IPL rom header
00000000: 80 27 07 40 -> 80 37 12 40

**Edit**
and replace Offset:00000040-00001000 to other rom that has CIC-NUS-6102/5.

-- Error Code List --
Error 23: The disk drive may have failed or the disk may be defective. http://ksnk.sakura.ne.jp/ddlab/supp/er.html
Error 41: Error communicating with DD. DD not properly connected
Error 44: Expansion Pak Error (Detects only 4MB).

*See images below for error messages in japanese.

-- Monkey64 info --
Monkey64 can currently run the IPL4ROM to an extent but no 3d is rendered. Just 2D. The rom currently gives back an Error Message.

DPyro
June 13th, 2006, 03:40
http://www.64dd.net/ :D

EDIT: I hope you can read Japanese :p

PSmonkey
June 15th, 2006, 21:55
I already tried. I might have finaly tracked down a copy of the OS 2.0H sdk. I know this is illegal but with out an actual build progression is going to be imposible. I just need a test rom.

MGFox
July 2nd, 2006, 10:07
As far as I'm aware, there was never any way to actually 'dump' the 64DD discs ... and as they were a form of disc media, they would probably be a form of ISO.

I don't know this for definite though ... I suppose it's more "something to think about" :D

Cheers,
Fox

DPyro
July 2nd, 2006, 17:23
They look like carts not discs
http://64dd.emedian.net/64dd.net/content/games/64dd/released/sim_city_64/images/cart/sc_cart_jpn.jpg

PSmonkey
July 2nd, 2006, 18:36
As far as I'm aware, there was never any way to actually 'dump' the 64DD discs ... and as they were a form of disc media, they would probably be a form of ISO.

I don't know this for definite though ... I suppose it's more "something to think about" :D

Cheers,
Fox

Dumps exsist but the only guy who have them wont give them up. :(

They are Disk much like floppy disk and not Disc like CDs.

They do have a full file system on them. Not sure how they will be treated in respects to loading (ie either by name or by offset).

MGFox
July 3rd, 2006, 08:26
They look like carts not discs

Inside that hard plastic case is a spinning disc, comparable to a Zip Drive's disc ... where as on a cartridge, data is stored on ROM Chips.


Dumps exsist but the only guy who have them wont give them up

Fair enough :D


They are Disk much like floppy disk and not Disc like CDs.

They do have a full file system on them. Not sure how they will be treated in respects to loading (ie either by name or by offset).

Okay yeah ... thats roughly the point I was trying to make :p

Cheers,
Fox

EDIT: http://cgi.ebay.co.uk/NINTENDO-PARTNER-SN-N64-64DD-BLUE-DEVELOPMENT-UNITS_W0QQitemZ8286481325QQihZ020QQcategoryZ62054Q QrdZ1QQcmdZViewItem ... if only I had the money :mad:

PSmonkey
July 4th, 2006, 20:10
yahoo.jp has better deals.

http://page.auctions.yahoo.co.jp/jp/auction/87421590

PSmonkey
July 24th, 2006, 17:46
Arg, I've tried on 3 auctions and lost on all three by a small amount.

Eventualy I will get a damn 64DD.

PSmonkey
July 27th, 2006, 20:59
*does backflips*
http://page8.auctions.yahoo.co.jp/jp/auction/h38409648

I got a DD on the way. :)

CelgaJapan = A buisness that helps you buy stuff from yahoo auctions. They are the middle man for me to obtain this unit.

DPyro
July 27th, 2006, 21:52
Congrats :D

Malksta
July 28th, 2006, 00:00
Congratulations Monkey :p

PSmonkey
July 28th, 2006, 07:17
Ok well since i got a DD for kinda cheap (compaired to DD standards), I splurged some tonight.

I need a n64 sooo I bought the following.

1 brand new clear red n64 (either red or blue but red looks nicer with the white bottom)
http://image1.play-asia.com/350/PA.63212.005.jpg

1 brand new (they had no used copy nor do i wish to hunt it down) copy of DK64 with expansion pak (my dd does not have the expansion so i need one)
http://image4.play-asia.com/350/PA.62773.004.jpg

and ofcourse 1 free (since n64 is missing it, damn cheap nintendo)
http://image4.play-asia.com/350/PA.01420.001.jpg

Total (not pretty) $169 with ups shipping (was either ups or ems and ems is more expensive & 1 day longer oddly enough).

kind of alot but with my DD ending at $195 with them already having a $150 deposit, I only need to pay for bank fee ($2), Service fee ($30), Shipping (?,$30+?). I wont have too much more to pay.

AnonymousTipster
July 28th, 2006, 07:25
Nice :)
So, what will happen to DD emulation? Will you work on it for a later release of M64, work with Strmnrmn, or just play with your new toys first?

DPyro
July 28th, 2006, 14:46
Ya, I think you should work with StrmNrmn to get your emu up to speed and then code in some N64DD stuff :)

PSmonkey
July 28th, 2006, 15:32
Nice :)
So, what will happen to DD emulation? Will you work on it for a later release of M64, work with Strmnrmn, or just play with your new toys first?

Suprise M64 build with DD suport (to make it the first emu to suport the DD). Then I plan to pass everything over to strmnnrmn & zilmar. Zilmar helped me alot to make m64 and deserves to have everything to add into pj64.

Evab3vA
July 30th, 2006, 14:17
Looking good. Am tempted to buy my own N64 at the moment..

Are the actual N64DD Disks hard to come by?

DPyro
July 30th, 2006, 16:09
You can easily find N64DD games on ebay or other auction sites ;)

PSmonkey
July 31st, 2006, 05:16
Looking good. Am tempted to buy my own N64 at the moment..

Are the actual N64DD Disks hard to come by?

DD units are expensive to come by ($200-$300 + extra fees from yahoo, $400-$600 via ebay).

DD Disk vary. If you hit up ebay sometimes you find used ones for $20-$50. Yet common rare games are more often up for sale at $70-$90 each yet very easy to obtain.

PSmonkey
July 31st, 2006, 05:21
Wiii (how i will from now on say Weeee).

My n64 is in montreal. I should have it on monday. Yet it was registered with a customs agency = import tax. ****


Jul 30, 2006 23:56:00
CA LACHINE REGISTERED WITH CLEARING AGENCY. SHIPMENT RELEASE PENDING CLEARING AGENCY REVIEW;RELEASED BY CLEARING AGENCY. NOW IN-TRANSIT FOR DELIVERY

Produkt
July 31st, 2006, 17:46
Wootage :D

PSmonkey
July 31st, 2006, 18:26
System showed up this morning. I played some dk64 durring lunch. Man this game is actualy really fun.

Anyways yes i got customs but it was not that bad. $21.21. Normaly I get raped when ups desides to charge customs (i had two freaking copy of famitsu that came with demo cost me $40 in customs because of bs brokerage fees).

PSmonkey
August 9th, 2006, 04:47
*weee*

2006/08/08 16:44 International item has arrived in the destination country
2006/08/07 08:30 International item has left the origin country
2006/08/06 14:20 International item has left the origin country and is en route to Canada
2006/08/05 23:36 International item has been posted in origin country


Normaly EMS enter though BC then hit another flight to montreal. So slim chance I could have it tomorrow, Larger chance it will be thursday.

--edit--
Actualy arived in Ontario first. :P I could very well get this tomorrow providing customs are not an ass to me.

PSmonkey
August 10th, 2006, 17:31
The Dd Has Arived. :d

AnonymousTipster
August 10th, 2006, 18:25
Have fun with your new toy :)
Have you got f-zero? Apparently there's a level editor in the DD expansion, sounds cool. I'd sure like to emulate it *wink wink* ^_^

PSmonkey
August 10th, 2006, 19:24
Have fun with your new toy :)
Have you got f-zero? Apparently there's a level editor in the DD expansion, sounds cool. I'd sure like to emulate it *wink wink* ^_^

Sadly I only have the randnet disk. Need to get a few more games & the f-zero expansion.

PSmonkey
August 16th, 2006, 17:29
Wii, sorry to spam but going to be picking up F-Zero, Doshin 1 & Polygon studio soon.

Malksta
August 16th, 2006, 18:36
Cool :p

PSmonkey
August 16th, 2006, 19:18
$141 + shipping. I got Doshin 1, Polygon studio, F-zero expansion & comunication studio (kind of worthless but meh it was only 15BPS).

Not to mention I have the following N64 games on their way, F-zero (jp), Wave Race SE (rumbe ver)(jp), Diddy Kong Racer (jp). So good times all around for me !!!

Malksta
August 16th, 2006, 19:25
Good news for you :p

The only N64 Cartrigde i still got is Wave Race and Smash Bro's

PSmonkey
August 16th, 2006, 21:08
Good news for you :p

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).

PSmonkey
October 3rd, 2006, 03:00
**** **** ****.
i a missing my notes that have the broken down boot src.

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

DPyro
October 3rd, 2006, 03:17
LoL....Sorry Monkey, nothing I can do from here :(

PSmonkey
October 6th, 2006, 05:52
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

PSmonkey
October 10th, 2006, 16:02
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).

PSmonkey
October 11th, 2006, 05:57
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.

LordSturm
November 11th, 2006, 10:34
Hows ur job going btw lol? :)

What exactly do you do?

PSmonkey
November 25th, 2006, 20:02
psp pipeline / engine coder.