I finally have artemis/ps2rd working. I'm having an odd thought about some of these games that just won't dump or connect. Is it due to artemis not being called on because it's hooked into something that just isn't being used at the moment? Would it be possible for me to do something like add a code to artemis/ps2rd to tell it which exact address to hook? I know it wouldn't work on the games that just don't ever connect with ps2cc, but there are the games that it works until it gets to some point like maybe gameplay or a menu. It would be an extra special enable code for certain games. Just like what codebreaker uses, it might fix a lot of problems to have an enable code for every game. Odds are somebody already thought of it though. I was thinking of the Jak and Daxter, Ratchet and Clank, and Disgaea 1 games.
I have a weird idea specifically for shadow of the colossus too. I don't know how to do it, but I would like to add a line to the game like that E002E264 0139d890 whatever code that would have the PS2 skip all of the debugger until it got to the actual game.
Also, since I can change where the different parts of artemis/ps2rd are placed from 0x00080000 to wherever I want, would using that fix anything? Just curious, I'd take a "it's possible" if it can solve problems and make a game work.
I have an old ugly chunk of code that I wrote too that makes the "4" type multi-line 32-bit constant write code also do OR, AND, and XOR. It uses the I'm not sure if I wrote it correctly. I was going to change the 3 bits 4(???(a = part of address))aaaaaa part of it to allow it to be changed to do 1 and 2 byte writes too, but ch_loop removes the 7 bits so only the address remains by the time it gets to the 4 type.
a = added
c = copied
m = modified
Code:type_4: /* * "32-bit constant serial write" * * 4-aaaaaaa nnnnssss * vvvvvvvv iiiiiiii * * Starting with address @a, this code type will write the 32-bit value * @v to @n addresses. In each cycle, the address is incremented by * @s * 4 and the value is incremented by @i. */ lw $a2, 8($t2) lw $a3, 12($t2) srl $t5, $a1, 16 a lb $t6, $a1, 5($t2) a srl $t6, 6 a andi $t6, 0x03 m andi $a1, 0x3fff a bnez $t6, 2f sll $a1, 2 1: nop nop sw $a2, 0($a0) addu $a2, $a3 addiu $t5, -1 bgtz $t5, 1b addu $a0, $a1 b next addiu $t4, 1 a2: /*OR*/ a andi $t7, $t6, 0x01 a bnez $t7, 3f a lw $t8, 0($a0) a or $t8, $a2 a sw $t8, 0($a0) c addu $a2, $a3 c addiu $t5, -1 cm bgtz $t5, 2b c addu $a0, $a1 c b next c addiu $t4, 1 a3: /*AND*/ a andi $t7, $t6, 0x02 a bnezl $t7, 4f a and $t8, $a2 a sw $t8, 0($a0) c addu $a2, $a3 c addiu $t5, -1 cm bgtz $t5, 3b c addu $a0, $a1 c b next c addiu $t4, 1 a4: /*XOR*/ a xor $t8, $a2 a sw $t8, 0($a0) c addu $a2, $a3 c addiu $t5, -1 cm bgtz $t5, 4b c addu $a0, $a1 c b next c addiu $t4, 1



Reply With Quote