Author Topic: 64DD IPL (Resolved)  (Read 869 times)

0 Members and 1 Guest are viewing this topic.

Offline RadeonUser

  • PJ64 Dever
  • Full Member
  • *****
  • Posts: 238
  • Karma: +1/-0
  • SuperFly Deving Guy
64DD IPL (Resolved)
« on: December 16, 2011, 08:21:27 pm »
Neko can you please take a look at this rom?
It is the unmodified version of N64DD IPLROM (J) that is recognized by GoodN64.
I have added everything that is needed for it to work except for the 64DD support which I doubt I can do.

The rom goes into a permanent loop at program counter 0x800001B8 and if I skip that through code the rom will actually start.
The problem is that I do not know how to translate this address to something the permanent cheats can use so please do your best.
« Last Edit: December 31, 2011, 02:34:51 pm by Gent »

Offline nekokabu

  • PJ64 Dever
  • Jr. Member
  • *****
  • Posts: 94
  • Karma: +1/-0
Re: 64DD IPL
« Reply #1 on: December 18, 2011, 03:34:40 pm »

Hi Rad.


I check it , but not boot rom.


loop cause identified, but not fix.
because it is in CIC. not use perm cheat.


I Attach a picture.
It seems that checking the value.

a3=e1f9d977
t2=da29c069
t3=bc587021
s0=33e17503
a0=96310a49
t4=08e5fb8C
« Last Edit: December 21, 2011, 05:24:20 pm by nekokabu »

Offline RadeonUser

  • PJ64 Dever
  • Full Member
  • *****
  • Posts: 238
  • Karma: +1/-0
  • SuperFly Deving Guy
Re: 64DD IPL
« Reply #2 on: December 18, 2011, 05:39:11 pm »
Hmm I'll have to look at what I added for recompiler again.
Try the interpreter, I know the rom boots on that if the BAL at 0x800001B8 is ignored.

I know there is a problem with the registers not being set properly and I will try to fix that.
I was hoping I wouldn't have to though!

Offline nekokabu

  • PJ64 Dever
  • Jr. Member
  • *****
  • Posts: 94
  • Karma: +1/-0
Re: 64DD IPL
« Reply #3 on: December 19, 2011, 03:29:32 pm »
Is allocated IPLROM  on 0x060000000 0xA6000000
« Last Edit: December 21, 2011, 06:04:51 pm by nekokabu »

Offline RadeonUser

  • PJ64 Dever
  • Full Member
  • *****
  • Posts: 238
  • Karma: +1/-0
  • SuperFly Deving Guy
Re: 64DD IPL
« Reply #4 on: December 19, 2011, 06:34:00 pm »
I don't know to be honest, I think it's still allocated at the 0x10000000 range but the way PJ64 works is that it loads the rom into memory and then reads by offsets.
So whether it's allocated at 0x06000000 or 0x10000000 a read at 0x1000FFFF would be the same as a read at 0x0600FFFF, it would read at 0xFFFF from the start of the rom.
I don't know if that makes sense for you or not as I barely understand it.
What I did for this in interpreter and recompiler was add 0x06000000 range to DMA and the LW opcode which seems to be enough to at least get the rom to boot if the permanent loop is bypassed.

Here's a test build where instead of jumping to 0x800001B8 I force it to jump to 0x800001C0, for some reason the recompiler freezes if it's forced to jump to the NOP at 0x800001BC.
"Project64_1.6.1_IPLRecompTest.exe" should not be used for anything as it ignores any jump or delayed slot to location 0x800001B8.

I have also included a build with Witten's latest work on cheat search per Gent's request.
« Last Edit: December 19, 2011, 06:36:34 pm by RadeonUser »

Offline nekokabu

  • PJ64 Dever
  • Jr. Member
  • *****
  • Posts: 94
  • Karma: +1/-0
Re: 64DD IPL
« Reply #5 on: December 21, 2011, 06:04:02 pm »
64DD IPLROM are dumped from 0xA6000000:)


I disassemble it, and this program checking sums between 80260000-80300000.
s6 is needed to calculate. but this value is not defined anywhere.


Please set to init value of s6 to 0xDD.
pass checksum.