Kodewerx https://www.kodewerx.org/forum/ |
|
Codebreaker DS codetypes. https://www.kodewerx.org/forum/viewtopic.php?f=11&t=227 |
Page 3 of 3 |
Author: | kenobi [ Thu Jun 28, 2007 12:28 pm ] |
Post subject: | Re: Codebreaker DS codetypes. |
Made some live tests with the CBDS codes, and found some problems in the descriptions, and in the code handler : Serial Repeat Constant Write (Code Type 0x40) description problem : ------------------------------------------------------------------- Technicaly, the WWW = Number of times to WRITE (and not to repeat). (setting WWWW=0 will not write anything!) (hopefuly the exemple explained shows the right thing). Copy Bytes (Code Type 0x50) description problem : ------------------------------------------------- It's : XXXXXXX = Address to copy to FROM ZZZZZZZZ = Address to copy TO Pointer Code (Code Type 0x60) Problems : ---------------------------------------- First there is a bug : if the condition is false, the CB will skip BC lines... (not 0xBC, but the BC in the BCTUVVVV of the code). Only way to fix it : CBDS v1.0.1 : Disable the lines skip (code type 0x60 and 0xD0) : 123FC3CC 000046C0 Enable the lines skip (code type 0x60 and 0xD0) : 123FC3CC 00009302 CBDS v2.0.0 : Disable the lines skip (code type 0x60 and 0xD0) : 123FC3DA 000046C0 Enable the lines skip (code type 0x60 and 0xD0) : 123FC3DA 00009302 Also, the description for U is wrong. It's : U = Bit-type Load, 0 for 16-Bits & 1 for 8-Bits That's all (for now :p). |
Author: | kenobi [ Sat Aug 25, 2007 10:28 am ] |
Post subject: | Re: Codebreaker DS codetypes. |
For the general information, the 2.0.1 upgrade changes nothing in the code handler, so I guess it's just a code database upgrade. Also, the 'CBDS DISABLE CUSTOM ASM ROUTINE EXECUTE HACK (CBDS v2.0.x)' code I posted on page 2 was wrong (was using 1.0.1 values instead of 2.0.x). That has been corrected. |
Author: | Hiei-YYH [ Sun Sep 09, 2007 3:31 am ] |
Post subject: | Re: Codebreaker DS codetypes. |
hey kenobi, i'm thinking in asking martin to implement these custom code types in nogba when all normal codes get fully working Code: =================== Slide Code V2 =================== 48AAAAAA BBBBCCCC DDDDDDDD EEEEEEEE FFFFFFFF GHIJKKKK A > Base Address/Pointer B > Loop Amount C > Number of Codes to Execute D > Pointer Offset E > value F > increment G > Write SIZE 0 = 8bit 1 = 16bit 2 = 32bit H > Pointer 0 = Disabled 1 = Enabled I > Coditional check 0 = Disabled 1 = Enabled J > conditional check type 0 = If equal to KKKK 1 = If not equal to KKKK 2 = If lesser than KKKK 3 = If greater than KKKK 4 = If AND KKKK equal to 0000 5 = If AND KKKK not equal to 0000 6 = If AND KKKK equal to KKKK 7 = If AND KKKK not equal to KKKK K = value to check conditional Example1: 480A0040 00040005 00000000 05F5E0FF 00000000 20000000 Example2: 480A3A6C 00050005 0000012C 05F5E0FF 00000000 21110000 =================== Pointer Code V2 =================== 68AAAAAA BCCCCCCC DEEEEEEE FFFFFFFF A > Base Pointer B > Pointer to Pointer 0 = Disabled 1 = Enabled C > Pointer 2 = POINTER (A) + (C) offset D > Write Type 0 = 8bit 1 = 16bit 2 = 32bit 3 = Increment 4 = Decrement 5 = OR 6 = AND 7 = XOR E > Pointer 1/2 Offset F > Value Example 1: 68000000 00000000 3000012C 00000001 Example 2: 68000000 100000E8 40000108 00000002 ================= CUSTOM ASM HACKS ================= 90000000 000ZXXXX YYYYYYYY YYYYYYYY ........ ........ Z > Mode 0 = ARM 1 = Thumb X = Number of words/halfwords to execute (depends on the mode) Y = ARM/THUMB asm Example 1 (ARM): 90000000 0000000F EA073F71 E92D07FF E59F00E8 E4B00000 E59F10E4 E590200C E59030DC E59040E0 E59050E4 E59060E8 E59F70D0 E3A080FF E3A09000 E081A000 E8BD07FF 00000000 Example 2 (THUMB): 90000000 00010013 46C0BFFF 68004808 46C06809 46C04A07 46C04B07 46C04C07 46C04D07 46C04E07 BFFF4F07 00004770 tell me what you think, any ideas? and of course, these are only for nogba. (well, i asked CMX some of these too xD ) |
Author: | kenobi [ Sun Sep 09, 2007 8:29 am ] |
Post subject: | Re: Codebreaker DS codetypes. |
Just looked briefly, but yeah, why not. However I guess you have more chances having CMX adding them to the CBDS than having Martin adding them in no$gba. I could also help you somewhat adding them in the CBDS, but that would be a big 'enabler', and everyone that wants to use your codes type would then have to, for each game, (encrypt and) enter the whole enabler, which seems a bit pointless... Anyway, you have to keep in mind that your 'new' codes type must be compatible with the old ones, so you can't use codes type 0x40 and 0x60. However, codes type 0x48 and 0x68 are unused for now. And for the 0x90 code type, it should end with a bx lr (the code engine would then just bl to your asm routine), else it'll just crash. Also, about new code types, I think the CBDS is really missing the 'patch' code type (ARDS code type E). Not only could it be useful (can greatly reduce the number of lines to enter manually), but then macking a CBDS hack to transform than patch code into an execute custom asm routine should be fairly easy. Oh, and before adding anything, CMX should first fix the 0x60 code type's condition false bug :/ |
Author: | Hiei-YYH [ Sun Sep 09, 2007 11:02 am ] |
Post subject: | Re: Codebreaker DS codetypes. |
kenobi wrote: Just looked briefly, but yeah, why not. However I guess you have more chances having CMX adding them to the CBDS than having Martin adding them in no$gba. I could also help you somewhat adding them in the CBDS, but that would be a big 'enabler', and everyone that wants to use your codes type would then have to, for each game, (encrypt and) enter the whole enabler, which seems a bit pointless... Anyway, you have to keep in mind that your 'new' codes type must be compatible with the old ones, so you can't use codes type 0x40 and 0x60. However, codes type 0x48 and 0x68 are unused for now. And for the 0x90 code type, it should end with a bx lr (the code engine would then just bl to your asm routine), else it'll just crash. Also, about new code types, I think the CBDS is really missing the 'patch' code type (ARDS code type E). Not only could it be useful (can greatly reduce the number of lines to enter manually), but then macking a CBDS hack to transform than patch code into an execute custom asm routine should be fairly easy. Oh, and before adding anything, CMX should first fix the 0x60 code type's condition false bug :/ ok, changed it to 48/68 XD anyway, why would require a big enable code? you mean in the real cbds of course, and i was talking with martin, he's a good person and i think if i ask him he could add at least 1 of these (ok the slide code one is a bit strange lol never heard of a 3 line type code lol) the asm one i just used some random asm XD just for example, but I'll ask you what really need to do this the most safe way... just finishing with a bx lr should be good? about the type 6 bug, i talked with CMX, but anyways, you can always use the D one (better in my opinion) |
Author: | kenobi [ Sun Sep 09, 2007 11:21 am ] |
Post subject: | Re: Codebreaker DS codetypes. |
Well I'm not quite sure about the size, but I guess it could take like 50~100 opcodes (thumb), so that's like 25~50 lines of codes just to 'enable' the new code types. For the asm, the code handler could bl inside the code list to execute the 'custom asm routine', so the 'custom asm routine' would end with a bx lr to go back to the code handler. |
Author: | Hiei-YYH [ Sun Sep 09, 2007 11:41 am ] |
Post subject: | Re: Codebreaker DS codetypes. |
kenobi wrote: Well I'm not quite sure about the size, but I guess it could take like 50~100 opcodes (thumb), so that's like 25~50 lines of codes just to 'enable' the new code types. For the asm, the code handler could bl inside the code list to execute the 'custom asm routine', so the 'custom asm routine' would end with a bx lr to go back to the code handler. but if the code get support in cbds firmware? i guess there is no need of a long enable code. |
Author: | kenobi [ Sun Sep 09, 2007 1:00 pm ] |
Post subject: | Re: Codebreaker DS codetypes. |
Of course if CMX adds it inside the firmware, no more need for an enabler. Or one could 'break' the the firmware upgrade encryption/compression, change it to add the new codes type, re-encrypt/compress it... So we could customize the CBDS code handler the way we want. Doing it would also give a way to enter our codes automaticaly in the CBDS (by putting the codes we wanna use in the firmware upgrade, and then upgrading the CBDS using this file). However it seems like a lot of work (/time) for me. I might try it someday, but not anytime soon... |
Author: | Hiei-YYH [ Tue Sep 25, 2007 3:57 pm ] |
Post subject: | Re: Codebreaker DS codetypes. |
kenobi wrote: Of course if CMX adds it inside the firmware, no more need for an enabler. Or one could 'break' the the firmware upgrade encryption/compression, change it to add the new codes type, re-encrypt/compress it... So we could customize the CBDS code handler the way we want. Doing it would also give a way to enter our codes automaticaly in the CBDS (by putting the codes we wanna use in the firmware upgrade, and then upgrading the CBDS using this file). However it seems like a lot of work (/time) for me. I might try it someday, but not anytime soon... cmx told me that the new pointer code type will be like the ps2 one (infinite offsets) |
Page 3 of 3 | All times are UTC - 8 hours [ DST ] |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |