WiiRd forum

Wii & Gamecube Hacking => Wii Game hacking help => Topic started by: sniper82 on January 25, 2012, 10:26:41 AM

Title: ASM Abkürzungen / ASM Abbreviations
Post by: sniper82 on January 25, 2012, 10:26:41 AM
hi leute
gibt es irgendwo eine liste mit den abkürzungen für asm?
Li = ?
STW= ?
habe zwar eine abkürzungen in einem post gefunden, aber da gibt es ja noch mehr, wie ich gesehen habe.
würde mich freuen, wenn jemand einen link hat, oder sich einer die mühe machen könnte eine zu schreiben danke.
------------------------------------------------------------------------------------------------------------
hi people
is there somewhere a list with the abbreviations for asm?
Li =?
STW =?
Although an abbreviation in a post I found, but there's still more, as I've seen.
I would be delighted if someone has a link, or to make an effortless one could write to thank you.
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: goemon_guy on January 25, 2012, 11:06:52 AM
You're asking what some of the ASM instructions mean? Out of their abbreviated forms?

Li = load immediate
Stw = store word (or half-word, or byte, depending on the last character)

http://class.ee.iastate.edu/cpre211/labs/quickrefPPC.html

That link has alot of the non-abbreviated names, among other things to do with ASM.
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: megazig on January 25, 2012, 12:26:33 PM
google 6xx_pem.pdf or 7xx_um.pdf
6xx is easier to read overall, but 7xx is the chip that the wii has
don't cheap out and get a quick ref. the full docs are where it's at
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: sniper82 on January 25, 2012, 02:58:22 PM
danke für die schnelle und kompetente hilfe.
ps. danke an alle hier die ihr großes und fundiertes wissen mit uns teilen. ;D
----------------------------------------------------------------------
thanks for the quick and competent help.
ps. thanks to everyone here who know their great sound and share it with us. ;D
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: dcx2 on January 25, 2012, 03:40:37 PM
It also helps to know some terminology.

An immediate is a value embedded into the instruction itself.  It does not come from a register.  Compare:

add r3, r4, r5 # adds r4 to r5 and stores the result in r3
addi r3, r4, 5 # adds the immediate 5 to r4 and stores the result in r3

A word is a 32-bit value (in general, a word is the width of a processor's registers; for the PPC, this is 32 bits).  So:

stw r3, 0(r4) # stores 32-bits from r3 to the address [r4 + 0]

A half-word is a 16-bit value.

sth r3, 0(r4) # stores 16-bits from r3 to [r4+0]
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: sniper82 on January 25, 2012, 05:08:14 PM
hi
also gesucht wird nach einem sternen code wie bei mario.
--------------------------------------------------------
hi
code is so sought after stars like Mario.

81175134: code address

Disassemble:80040628:  901F01E8   stw   r0,488(r31)

[spoiler]  CR:48200484  XER:20000000  CTR:80150EB0 DSIS:02400000
DAR:81175134 SRR0:80040628 SRR1:0000B032   LR:800404F0
 r0:0000016A   r1:802CE338   r2:802C3C40   r3:0000016B
 r4:0000016B   r5:00000000   r6:00000000   r7:00000030
 r8:00000002   r9:00000040  r10:00000022  r11:802CE328
r12:80150EB0  r13:802C2100  r14:00000000  r15:00000000
r16:00000000  r17:00000000  r18:00000000  r19:00000000
r20:00000000  r21:00000000  r22:00000000  r23:00000000
r24:00000000  r25:00000000  r26:93574D20  r27:91C42880
r28:00000000  r29:91C42DA0  r30:8020636C  r31:81174F4C

 f0:FFC00000   f1:59800004   f2:B9400000   f3:B7800000
 f4:C281FFFE   f5:42480000   f6:00000000   f7:3F800000
 f8:59800004   f9:3FAEEDCB  f10:BB394FFE  f11:39D1B717
f12:C22BDC0A  f13:00000000  f14:00000000  f15:00000000
f16:00000000  f17:00000000  f18:00000000  f19:00000000
f20:00000000  f21:00000000  f22:00000000  f23:00000000
f24:00000000  f25:00000000  f26:00000000  f27:00000000
f28:00000000  f29:00000000  f30:3E425D8D  f31:3E425D8D[/spoiler]


[spoiler]
80040600:  C00284B0   lfs      f0,-31568(r2)
80040604:  C8210080   lfd      f1,128(r1)
80040608:  EC211028   fsubs      f1,f1,f2
8004060C:  EC000072   fmuls      f0,f0,f1
80040610:  FC00001E   fctiwz   f0,f0
80040614:  D8010088   stfd      f0,136(r1)
80040618:  8001008C   lwz      r0,140(r1)
8004061C:  901F01E8   stw      r0,488(r31)
80040620:  807F01E8   lwz      r3,488(r31)
80040624:  3403FFFF   subic.   r0,r3,1
80040628:  901F01E8   stw      r0,488(r31)
8004062C:  41810078   bgt-      0x800406a4
80040630:  38000000   li     r0,0
80040634:  901F01E8   stw     r0,488(r31)
80040638:  387F0108   addi     r3,r31,264
8004063C:  4BFCC741   bl     0x8000cd7c
80040640:  801F0200   lwz     r0,512(r31)
80040644:  3C608020   lis     r3,-32736
80040648:  3863636C   addi     r3,r3,25452
8004064C:  54000776   rlwinm   r0,r0,0,29,27
80040650:  5400066E   rlwinm   r0,r0,0,25,23
80040654:  901F0200   stw     r0,512(r31)
80040658:  80030414   lwz     r0,1044(r3)
8004065C:  2C000002   cmpwi   r0,2
80040660:  40820020   bne-   0x80040680
80040664:  4800D591   bl   0x8004dbf4
80040668:  4800D5C5   bl   0x8004dc2c
8004066C:  2C030000   cmpwi   r3,0
80040670:  41810018   bgt-   0x80040688
80040674:  C0228478   lfs   f1,-31624(r2)
80040678:  4BFFE1D9   bl   0x8003e850
8004067C:  4800000C   b   0x80040688
80040680:  C0228478   lfs   f1,-31624(r2)
80040684:  4BFFE1CD   bl   0x8003e850
80040688:  881F0212   lbz   r0,530(r31)
8004068C:  28000002   cmplwi   r0,2
80040690:  41820014   beq-   0x800406a4
80040694:  807F01BC   lwz   r3,444(r31)
80040698:  38A00000   li   r5,0
8004069C:  809F01A8   lwz   r4,424(r31)
800406A0:  4BFCF149   bl   0x8000f7e8
800406A4:  809F0200   lwz   r4,512(r31)
800406A8:  54800673   rlwinm.   r0,r4,0,25,25
800406AC:  41820058   beq-   0x80040704
800406B0:  807F01EC   lwz   r3,492(r31)
800406B4:  3403FFFF   subic.   r0,r3,1
800406B8:  901F01EC   stw   r0,492(r31)
800406BC:  41810048   bgt-   0x80040704
800406C0:  801F01E8   lwz   r0,488(r31)
800406C4:  548306B0   rlwinm   r3,r4,0,26,24
800406C8:  546304E2   rlwinm   r3,r3,0,19,17
800406CC:  38800000   li   r4,0
800406D0:  2C000000   cmpwi   r0,0
800406D4:  909F01EC   stw   r4,492(r31)
800406D8:  907F0200   stw   r3,512(r31)
800406DC:  4181000C   bgt-   0x800406e8
800406E0:  5460066E   rlwinm   r0,r3,0,25,23
800406E4:  901F0200   stw   r0,512(r31)
800406E8:  7FE3FB78   mr   r3,r31
800406EC:  38800000   li   r4,0[/spoiler]

1 woher weiß ich das das die richtige adresse ist?
2 wie müste ich den code schreiben so vieleicht?

1 how I know this is the right address?
2 as I write the code Müster maybe so?

Li      r0,16b(r3)
stw   r0,488(r31)
nop

Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: Bully@Wiiplaza on January 25, 2012, 06:28:48 PM
80040624:  3403FFFF   subic.   r0,r3,1 # li r0, 9999

Infinite Starpower
04040624 3800270F
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: sniper82 on January 25, 2012, 07:18:04 PM
hi
nein es geht nicht um sternteile, sondern um einen unbesiegbar stern,sorry das ich mich falsch ausgedrückt habe
-------------------------------------------------------------------------------------------------------------
hi
no it's not about star-parts, but an invincible star, sorry that I have expressed myself wrong
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: Bully@Wiiplaza on January 26, 2012, 06:25:24 PM
Quote from: sniper82 on January 25, 2012, 07:18:04 PM
hi
nein es geht nicht um sternteile, sondern um einen unbesiegbar stern,sorry das ich mich falsch ausgedrückt habe
-------------------------------------------------------------------------------------------------------------
hi
no it's not about star-parts, but an invincible star, sorry that I have expressed myself wrong
der code sollte trotzdem gehen :P

the code may work anyways :P
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: sniper82 on January 27, 2012, 11:12:32 AM
nein der code geht leider nicht. das spiel startet nicht mal mit den code.
aber wie kommst du eigentlich auf diese adresse?
-------------------------------------------------
no, the code does not exist. The game does not start even with the code.
But how do you actually address this?
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: WiiOs-Ozelot on January 30, 2012, 01:41:05 AM
bei stw r0,488(r31) brauchst du nur mit li ersetzen.
Also  li r0, 100

80040624 ist dann die Adresse die du nimmst weil da stw ist.

04040624 38000064

Da wo der Breakpoint anhält, den Instruction nimmst du.

Ich wusste auch immer nicht was ich da schreiben soll aber Bully@Wiiplaza hat das bei uns im Forum verständlich erklärt und seitdem kann ich ASM Codes ^^ Also wenn man das verstanden hat, flutscht das nur noch.





Also

du siehst im Breakpoint am ANFANG das.

80040628:  901F01E8   stw r0,488(r31)

so, die Adresse 80040628 benutzt du um dein neuen ASM an dieser stelle zu schreiben wo stw steht. Wenn du als beispiel ein stern bekommst, geht die CPU an diesen Punkt und führt dein ASM Code aus wo normalerweise stw stand aber li r0, 100 steht und dann ausgeführt wird. Die CPU liest den neuen Instruction und führt es dann aus und gibt dir 100 sterne oder leben oder sonstwas.

Die Value 901F01E8 musst du nicht soooo drauf achten. ist nur eine Hexadezimale darstellung von stw r0,488(r31)


Der grund wieso ASM nicht sofort funktionieren liegt daran, das der neue ASM Code quasi erst dann aktiv wird, wenn die CPU an dieser stelle erst geht. Solange an der stelle nicht vom CPU gelesen wird, passiert in der zeit auch nichts.

Beispiel, ein ASM Moon Jump würde erst gehen, wenn man springen tut. Springt man nicht im Spiel, bleibt der ASM quasi unberührt.
Wichtig ist aber auch der zeitpunkt vom Breakpoint. Wenn du im Lade Bildschirm Breakst, und dein Instruction reinschreiben tust, KANN es passieren das dieser Instruction im Spiel nicht mehr benötigt wird und somit bleibt der ASM Code unberührt. Denn wie gesagt, der ASM kann nur logischerweise an den Zeitpunkt aktiviert werden wenn zu diesen zeitpunkt auch vom CPU zugegriffen wird.

Demnächst werde ich ein Basic Guide veröffentlichen in Zusammenarbeit mit Bully das verständlich und in Deutsch erklärt wird wie man einfache ASM Codes erstellt weil -zur Hölle- kaum Deutsche Beschreibungen gibt das hier mal verständlich und auf Deutsch erklärt wird wie man das macht. Die Leute hier sind mir eh komisch da hier eigentlich viele Deutsche gibt könnten die mal Deutsche Unterforen eröffnen. Das hatte ich damals hier vorgeschlagen aber hier sind nur sture Köpfe und ignoranten.
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: sniper82 on January 30, 2012, 06:08:58 AM
hi
also so weit habe ich das verstanden was du mir sagen wolltest.
das mit den tut finde ich ne gute sache habe sowas auch in der art für anfänger gemacht zumindest das was ich bisher weis und gelernt habe, ist zwar nicht perfeckt, aber für die ersten schritte geeignet.
http://wiird.l0nk.org/forum/index.php/topic,9187.0.html
beim asm war es bisher er zufall wen ein code doch mal richtig funktioniert hat.
zum thema deutsch, ja da haste recht, aber wehre halt besser wenn man es auf deutsch und englisch posted, so mache ich es dan hat jeder was von. den es giebt hier wirklich fiele die deutsch reden da lohnt es sich.
danke für die erklärung.  :D
------------------------------------------------------------------------
hi
So as far as I've understood what you wanted to tell me.
does so with that I find ne good thing I never done well in the art for beginners, at least from what I've learned-looking and is not perfeckt, but suitable for the first steps.
http://wiird.l0nk.org/forum/index.php/topic,9187.0.html
asm when it had been he who has one random code works but sometimes true.
subject to German, so there're right, but just defend better if you do it in German and English posted, so I dan what any of it. the fall, there are really the German talk because it's worth it.
Thanks for the explanation. :D
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: Stuff on January 30, 2012, 02:13:28 PM
Quote from: megazig on January 25, 2012, 12:26:33 PM
google 6xx_pem.pdf or 7xx_um.pdf
6xx is easier to read overall, but 7xx is the chip that the wii has
don't cheap out and get a quick ref. the full docs are where it's at
I guess I could use a 500 page read or two. >.>

Well I probably could. I've been using these, though:
http://www.pds.twi.tudelft.nl/vakken/in101/labcourse/instruction-set/
http://wiird.l0nk.org/forum/index.php/topic,8768.0.html

I learned a nice amount during that thread's life. But you guys talk about stuff that you can't just pickup from a quick ref. I guess I'll do some reading during my free time. It's a lot more than the PRG ;_;
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: Deathwolf on January 30, 2012, 04:06:17 PM
Schreibbefehle :

li = 8/16 bit = wie 00/02 codetype
lis = 16 bit = wie 02 codetype
lis and ori = 32 bit = wie 04 codetype

Speicher-Ladebefehle:

stb = speichert 8 bit value
sth = speichert 16 bit value
stw = speichert 32 bit value

lbz = ladet 8 bit value
lhz = ladet 16 bit value
lwz = ladet 21 bit value

Ein Beispiel wie man mit diesn Befehlen schon einen einfachen ASM code machen kann:
Wir nehmen an du möchtest z.B. unendlich leben haben. Deine Leben Adresse lautet 806E83C4.
Nun machst du einen Rechtsklick auf diese Adresse, klickst auf Breakpoint, stellst WRITE ein, klickst auf SET BREAKPOINT und verlierst noch ein leben bis das spiel freezt.

So nun erscheinen viele Adressen etc. Wir nehmen an dass das hier erscheint:

  CR:88000088  XER:00000000  CTR:807A9AFC DSIS:00000000
DAR:00000000 SRR0:805858D0 SRR1:0000B032   LR:805858C0
  r0:00000004   r1:80398FF8   r2:8038EFA0   r3:81123604
  r4:000000FF   r5:808B0000   r6:809C3844   r7:81123B98
  r8:811206C4   r9:8111F694  r10:00000018  r11:80399018
r12:807A9AFC  r13:8038CC00  r14:00000000  r15:00000000
r16:00000000  r17:00000000  r18:00000000  r19:00000000
r20:00000000  r21:802A4080  r22:00000000  r23:00000000
r24:00000001  r25:809C3614  r26:0000021C  r27:81123604
r28:00000000  r29:80890000  r30:00000000  r31:806E83C4

  f0:43110000   f1:00000000   f2:BD11A74D   f3:40400000
  f4:3FFFFA8F   f5:4686C5F7   f6:468892D3   f7:C55D57A1
  f8:C566446D   f9:4689B06D  f10:BE207C1F  f11:B05F8DC3
f12:40400000  f13:00000000  f14:00000000  f15:00000000
f16:00000000  f17:00000000  f18:00000000  f19:00000000
f20:00000000  f21:00000000  f22:00000000  f23:00000000
f24:00000000  f25:00000000  f26:00000000  f27:00000000
f28:00000000  f29:00000000  f30:00000000  f31:BD21E55A

80040628:  901F0000   stw r0, 0 (r31)         # Die erste Adresse ist immer unsere Hauptadresse!
8004062C:  41810078   bgt-      0x800406a4
80040630:  38000000   li     r0,0
80040634:  901F01E8   stw     r0,488(r31)
80040638:  387F0108   addi     r3,r31,264
8004063C:  4BFCC741   bl     0x8000cd7c
80040640:  801F0200   lwz     r0,512(r31)
80040644:  3C608020   lis     r3,-32736

Wenn wir uns einmal die Adresse genauer angucken:
stw r0, 0 (r31) = r0 hat unsere lebens Value. r0:00000004 
                          (r31) ist unsere Adresse die im RAM die lebens Value hat. r31:806E83C4

Der Befehl macht jetzt folgendes: Speichere die Value von r0 in r31.

Nun wie können wir unsere eigene Value schreiben? Wie gesagt, es gibt ja Schreibbefehle die wir nutzen können.
Da wir einen stw befehl haben (32 bit), müssen wir zum schreiben der value ebenfalls einen 32 bit Schreibbefehl verwenden.

lis r0,0x0000     # schreibe zu r0 : 0000XXXX
ori r0,r0,0x0063 # schreibe zu r0 : 000000064
stw r0, 0 (r31)   # speichere die r0 value in r31 ( unsere lebens Adrsse)

Wenn wir unseren code mit dem "ASM helper tool" conventieren, dann kommt diese code raus:

C2040628 00000002
3C000000 60000063
901F0000 00000000

Einfach einmal den code aktivieren, ein leben verlieren und sehen was passiert^^ Das praktische daran ist, das man dafür nie mehr pointers nutzen muss.

Write Instructions:

li = 8/16 bit = like 00/02 codetype
lis = 16 bit = like 02 codetype
lis and ori = 32 bit = like 04 codetype

Store/Load instructions:

stb = store 8 bit value
sth = store 16 bit value
stw = store 32 bit value

lbz = load 8 bit value
lhz = load 16 bit value
lwz = load 21 bit value
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: sniper82 on January 30, 2012, 08:02:52 PM
hi leute
erstmal danke für die seiten und für die bomben erklärung.
bisher habe ich es auch so gemacht blos das meine codes so aufgebaut waren

lis rx,x
stw rx,x (rx)
nop

die codes laufen auch, aber schätze mal die andere art ist besser.
werde es morgen gleich mal bei kerby ausprobieren.

ps. die game config datei für kerby bringt das spiel zum absturz auch wenn kein code an ist.
bei kerby stürzt es immer dann ab wenn der lebens balken von der story verändert wird,
da widersprechen sich dann woll die angaben, da das spiel den lebens wert aus einer anderen adresse versucht zu schreiben,
kann man das proplem nicht mit einen on/off code lösen?
------------------------------------------------------------------------
hi people
thank you for the first part of the bomb and explanation.
so far I've only done so well that my codes were designed

lis rx, x
stw rx, x (rx)
nop

The codes run well, I guess, but other times the art is better.
'll try it tomorrow at the same time Kerby.

ps. the game config file for Kerby brings the game to crash even if no code is on.
at Kerby then it keeps crashing when the beam is changed by the life story,
since then wanted to contradict the disclosures, because the game tries to write the life value from another address,
you can not solve the proplem with an on / off code?
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: Bully@Wiiplaza on January 30, 2012, 09:21:39 PM
Quote from: -Ozelot- on January 30, 2012, 01:41:05 AM
bei stw r0,488(r31) brauchst du nur mit li ersetzen.
Also  li r0, 100
Kleiner Einspruch!
Wenn du einen Breakpoint Write hast, musst du den "Store" Befehl beibehalten, weil die Value sonst nicht in den RAM geschrieben wird.
Bei einem Read Breakpoint ist es anders, da darf man den "Lade" Befehl mit einem li etc. ersetzen, da man ja etwas in das Register lädt, womit dann der CPU weiterarbeitet (also mit eurem Hack Wert).

Also müsstest du einen C2 Code schreiben, der so aussieht, wenn du die Value 100 schreiben willst...

Adresse: 80040628
li r0, 0x100
stw      r0,488(r31)

ODER

du ersetzt irgendeinen der Befehle davor (subic) mit dem li, um auch einen Einzeiler zu haben.
Das ist aber eher gefährlich und nicht immer offensichtlich, da man wissen muss, welcher Befehl z.B. den Wert abändert.
Sonst freezt es schneller als ihr gucken könnt^^
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: Deathwolf on January 30, 2012, 10:43:16 PM
Laut dcx2 ist li und stw ein alignment fail. Kann schon sein das es funktioniert aber man sollte sich schon eher an die Instruction halten. Wie bei den Codetypes. Wenn man 00 nutzen dann schreibt man ja auch keine 32 bit Value.

Also bei stw sollte eher lis und ori verwendet werden, wie dcx2 schonmal gesagt hat.
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: sniper82 on January 31, 2012, 06:32:16 AM
aslo hier bleibt dar breakpointer stehen

32 bit suche in 80 memory range gesucht wurde leben gefundende adresse 81175114

 [spoiler]CR:88200484  XER:00000000  CTR:00000001 DSIS:02400000
DAR:81175114 SRR0:80041BAC SRR1:0000B032   LR:8005F640
 r0:8005F618   r1:802CE448   r2:802C3C40   r3:81174F4C
 r4:00000015   r5:00000006   r6:00000008   r7:00000030
 r8:91C40870   r9:00000040  r10:00000022  r11:00000007
r12:8005FDFC  r13:802C2100  r14:00000000  r15:00000000
r16:00000000  r17:00000000  r18:00000000  r19:00000000
r20:00000000  r21:00000000  r22:00000000  r23:00000000
r24:00000000  r25:00000000  r26:93574D20  r27:00000000
r28:00000000  r29:00000000  r30:81173D0C  r31:81173CF4

 f0:3F800000   f1:41F00000   f2:41F80000   f3:00000000
 f4:00000000   f5:00000000   f6:BE130C82   f7:BE9A7C6C
 f8:3D81672B   f9:3E13C2D3  f10:BF729621  f11:00000000
f12:511502F9  f13:00000000  f14:00000000  f15:00000000
f16:00000000  f17:00000000  f18:00000000  f19:00000000
f20:00000000  f21:00000000  f22:00000000  f23:00000000
f24:00000000  f25:00000000  f26:00000000  f27:00000000
f28:00000000  f29:00000000  f30:00000000  f31:00000000
-------------------------------------------------------------------
80041B84:  48000010   b   0x80041b94
80041B88:  80030200   lwz   r0,512(r3)
80041B8C:  540007B8   rlwinm   r0,r0,0,30,28
80041B90:  90030200   stw   r0,512(r3)
80041B94:  80010014   lwz   r0,20(r1)
80041B98:  83E1000C   lwz   r31,12(r1)
80041B9C:  7C0803A6   mtlr   r0
80041BA0:  38210010   addi   r1,r1,16
80041BA4:  4E800020   blr   
80041BA8:  28040063   cmplwi   r4,99
80041BAC:  908301C8   stw   r4,456(r3)
80041BB0:  4C810020   blelr-   
80041BB4:  38000063   li   r0,99
80041BB8:  900301C8   stw   r0,456(r3)
80041BBC:  4E800020   blr   
80041BC0:  38000001   li   r0,1
80041BC4:  80A30200   lwz   r5,512(r3)
80041BC8:  7C002030   slw   r0,r0,r4
80041BCC:  7CA00378   or   r0,r5,r0
80041BD0:  90030200   stw   r0,512(r3)
80041BD4:  4E800020   blr   
80041BD8:  38000001   li   r0,1
80041BDC:  80630200   lwz   r3,512(r3)
80041BE0:  7C002030   slw   r0,r0,r4
80041BE4:  7C630038   and   r3,r3,r0
80041BE8:  7C0300D0   neg   r0,r3
80041BEC:  7C001B78   or   r0,r0,r3
80041BF0:  54030FFE   rlwinm   r3,r0,1,31,31
80041BF4:  4E800020   blr   
80041BF8:  38000001   li   r0,1
80041BFC:  80A30200   lwz   r5,512(r3)
80041C00:  7C002030   slw   r0,r0,r4
80041C04:  7CA00078   andc   r0,r5,r0
80041C08:  90030200   stw   r0,512(r3)
80041C0C:  4E800020   blr   
80041C10:  80E301C4   lwz   r7,452(r3)
80041C14:  3CA00099   lis   r5,153
80041C18:  3805967F   subi   r0,r5,27009
80041C1C:  80C301D4   lwz   r6,468(r3)
80041C20:  7CA72214   add   r5,r7,r4
80041C24:  90A301C4   stw   r5,452(r3)
80041C28:  7C050040   cmplw   r5,r0
80041C2C:  7C862214   add   r4,r6,r4
80041C30:  908301D4   stw   r4,468(r3)
80041C34:  40810008   ble-   0x80041c3c
80041C38:  900301C4   stw   r0,452(r3)
80041C3C:  80030200   lwz   r0,512(r3)
80041C40:  60004000   ori   r0,r0,16384
80041C44:  90030200   stw   r0,512(r3)
80041C48:  4E800020   blr   
80041C4C:  808301C8   lwz   r4,456(r3)
80041C50:  800301CC   lwz   r0,460(r3)
80041C54:  90830204   stw   r4,516(r3)
80041C58:  90030208   stw   r0,520(r3)
80041C5C:  4E800020   blr   
80041C60:  80830204   lwz   r4,516(r3)
80041C64:  80030208   lwz   r0,520(r3)
80041C68:  908301C8   stw   r4,456(r3)
80041C6C:  900301CC   stw   r0,460(r3)
80041C70:  4E800020   blr   [/spoiler]
----------------------------------------------------------------------------------
habe den code dann so geschrieben

lis r4,0x0000        
ori r4,r4,0x0063
stw r4,0 (r3)  (spiel friert ein)

lis r4,0x0000
ori r4,r4,0x0063
stw r4,456 (r3)  (spiel friert ein)

alte art

lis r4,63
stw r4,456 (r3)
nop                  (spiel friert ein)

so nun weis ich nicht weiter kann sein das es an dem 81 liegt  :confused:

so habe ich den zeit code für das spiel geschrieben und der geht

adresse 8004ECEC
lis r0,300
stw r5,164(r31)
nop


Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: Bully@Wiiplaza on January 31, 2012, 06:46:06 AM
Quote from: Deathwolf on January 30, 2012, 10:43:16 PM
Laut dcx2 ist li und stw ein alignment fail. Kann schon sein das es funktioniert aber man sollte sich schon eher an die Instruction halten. Wie bei den Codetypes. Wenn man 00 nutzen dann schreibt man ja auch keine 32 bit Value.

Also bei stw sollte eher lis und ori verwendet werden, wie dcx2 schonmal gesagt hat.
nee.. li ist 16bit und stw ist 32bit.

li -> 0000XXXX
wenn ich dann stw mache, schreibe ich diese value in den RAM -> 0000XXXX.

Ich weiß nicht, was daran falsch sein soll. So habe ich es schon 100 mal gemacht und funzt.
FALLS ich aber nicht die ersten 16bit mit nullen überschreiben will, nehme ich halt ori her.
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: WiiOs-Ozelot on January 31, 2012, 07:08:45 AM
das mit li und stw meinte ich ja mit Read. Ist mir auch schon aufgefallen das wenn ich write benutze, stw beibehalten muss und ein C2 schreiben muss.

Nur wenn ich ein 8Bit oder 16Bit Value habe und nutze read und der Breakpoint hält bei lwz an, dann kann ich doch laut bully einfach nur mit li ersetzen. Wenn es funktioniert, wieso soll man sich ganz genau an die instructions halten wenn es funktioniert?


Ist genauso wenn ich float schreibe.

lis r12, 0x3F99 (3F99999A)

ori r12, r12, 0x999A (3F99999A)

stw r12, 24(r29) <- Füge die 2x16Bit zusammen = 32Bit (3F99999A)

lfs f1, 24(r29) <- Schreibe als Float



So verstehe ich das mit li, lis, ori, oris und stw.
Mit Read hatte ich bis jetzt keine probleme gehabt, Ich nutze aber auch Write.
Und wo findet man hier in diesen gott verdammten Forum oder web mal Deutsche Anleitungen?
Man ist FASST selbst gezwungen sich Hilfe von ürgend jemand zu holen wenn die Leute hier zumteil gleich angepisst sind ^^ Der einzige person den ich frage war bisher Bully. Ok, Death bisschen.

PS: Wo steht die Regel das stw mit li fail ist? WENN das so wäre, dürfte man garnicht in gecko.NET stw mit li ersetzen wenn es die Instruction nicht zulassen würde. Da man es aber machen KANN, verstößt nicht die Regel. ABER man sollte natürlich nicht gerade da schreiben wo im 32Bit wichtige Valuen sind die man nicht überschreiben sollte, also nur li, das könnte EVENTUELL in die hose gehen. Das wäre ein grund stw nicht mit li zu ersetzen. WENN aber im RAM nur 8 und 16Bit geschrieben wird, sehe ich kein grund stw nicht mit li zu ersetzen (Ist das gleiche wenn ich dann mit Codetype 00 und 02 an der stelle benutzen würde). Das gleiche mit lwz. Da lässt die Instruction auch zu das ich es mit li ersetzen kann. Wenn es nach den Regeln gehen würde, dürfte man auch das nicht machen.


Also Death, wenn ürgendwas ist, werde ich in zukunft auch an dir wenden ^^
Deathwolf, wenn es dir erlaubt ist, werde ich dein Beispiel den du geschrieben hast mir das Notieren DENN ich beschäftige gerade erst 1 Woche intensiv mit ASM. Also auch ich kann mich irren aber wie ich das oben beschrieben habe mit dem float beispiel, so sehe ich das ganze und so hatte mir Bully auch so erklärt.
Also müsst ihr das auch ambesten wissen und es auch so vermitteln was richtig ist und nicht das ich mir jedesmal anhören muss wie; NEIIIIIIIN, IST FAILLLL bla bla , dcx2 SAGTE SOOOOO, NEIN SO NICHT und so weiter...


ich liebe dieses Forum xD Es wird behauptet aber ansatzweise eine vernüftige beschreibung findet man hier weit und breit nicht. TOP!

Also Death, nicht wegen dir oder so ^^
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: Deathwolf on January 31, 2012, 10:26:02 AM
Quote from: sniper82 on January 31, 2012, 06:32:16 AM
aslo hier bleibt dar breakpointer stehen

32 bit suche in 80 memory range gesucht wurde leben gefundende adresse 81175114

 [spoiler]CR:88200484  XER:00000000  CTR:00000001 DSIS:02400000
DAR:81175114 SRR0:80041BAC SRR1:0000B032   LR:8005F640
 r0:8005F618   r1:802CE448   r2:802C3C40   r3:81174F4C
 r4:00000015   r5:00000006   r6:00000008   r7:00000030
 r8:91C40870   r9:00000040  r10:00000022  r11:00000007
r12:8005FDFC  r13:802C2100  r14:00000000  r15:00000000
r16:00000000  r17:00000000  r18:00000000  r19:00000000
r20:00000000  r21:00000000  r22:00000000  r23:00000000
r24:00000000  r25:00000000  r26:93574D20  r27:00000000
r28:00000000  r29:00000000  r30:81173D0C  r31:81173CF4

 f0:3F800000   f1:41F00000   f2:41F80000   f3:00000000
 f4:00000000   f5:00000000   f6:BE130C82   f7:BE9A7C6C
 f8:3D81672B   f9:3E13C2D3  f10:BF729621  f11:00000000
f12:511502F9  f13:00000000  f14:00000000  f15:00000000
f16:00000000  f17:00000000  f18:00000000  f19:00000000
f20:00000000  f21:00000000  f22:00000000  f23:00000000
f24:00000000  f25:00000000  f26:00000000  f27:00000000
f28:00000000  f29:00000000  f30:00000000  f31:00000000
-------------------------------------------------------------------
80041B84:  48000010   b   0x80041b94
80041B88:  80030200   lwz   r0,512(r3)
80041B8C:  540007B8   rlwinm   r0,r0,0,30,28
80041B90:  90030200   stw   r0,512(r3)
80041B94:  80010014   lwz   r0,20(r1)
80041B98:  83E1000C   lwz   r31,12(r1)
80041B9C:  7C0803A6   mtlr   r0
80041BA0:  38210010   addi   r1,r1,16
80041BA4:  4E800020   blr   
80041BA8:  28040063   cmplwi   r4,99
80041BAC:  908301C8   stw   r4,456(r3)
80041BB0:  4C810020   blelr-   
80041BB4:  38000063   li   r0,99
80041BB8:  900301C8   stw   r0,456(r3)
80041BBC:  4E800020   blr   
80041BC0:  38000001   li   r0,1
80041BC4:  80A30200   lwz   r5,512(r3)
80041BC8:  7C002030   slw   r0,r0,r4
80041BCC:  7CA00378   or   r0,r5,r0
80041BD0:  90030200   stw   r0,512(r3)
80041BD4:  4E800020   blr   
80041BD8:  38000001   li   r0,1
80041BDC:  80630200   lwz   r3,512(r3)
80041BE0:  7C002030   slw   r0,r0,r4
80041BE4:  7C630038   and   r3,r3,r0
80041BE8:  7C0300D0   neg   r0,r3
80041BEC:  7C001B78   or   r0,r0,r3
80041BF0:  54030FFE   rlwinm   r3,r0,1,31,31
80041BF4:  4E800020   blr   
80041BF8:  38000001   li   r0,1
80041BFC:  80A30200   lwz   r5,512(r3)
80041C00:  7C002030   slw   r0,r0,r4
80041C04:  7CA00078   andc   r0,r5,r0
80041C08:  90030200   stw   r0,512(r3)
80041C0C:  4E800020   blr   
80041C10:  80E301C4   lwz   r7,452(r3)
80041C14:  3CA00099   lis   r5,153
80041C18:  3805967F   subi   r0,r5,27009
80041C1C:  80C301D4   lwz   r6,468(r3)
80041C20:  7CA72214   add   r5,r7,r4
80041C24:  90A301C4   stw   r5,452(r3)
80041C28:  7C050040   cmplw   r5,r0
80041C2C:  7C862214   add   r4,r6,r4
80041C30:  908301D4   stw   r4,468(r3)
80041C34:  40810008   ble-   0x80041c3c
80041C38:  900301C4   stw   r0,452(r3)
80041C3C:  80030200   lwz   r0,512(r3)
80041C40:  60004000   ori   r0,r0,16384
80041C44:  90030200   stw   r0,512(r3)
80041C48:  4E800020   blr   
80041C4C:  808301C8   lwz   r4,456(r3)
80041C50:  800301CC   lwz   r0,460(r3)
80041C54:  90830204   stw   r4,516(r3)
80041C58:  90030208   stw   r0,520(r3)
80041C5C:  4E800020   blr   
80041C60:  80830204   lwz   r4,516(r3)
80041C64:  80030208   lwz   r0,520(r3)
80041C68:  908301C8   stw   r4,456(r3)
80041C6C:  900301CC   stw   r0,460(r3)
80041C70:  4E800020   blr   [/spoiler]
----------------------------------------------------------------------------------
habe den code dann so geschrieben

lis r4,0x0000        
ori r4,r4,0x0063
stw r4,0 (r3)  (spiel friert ein)

lis r4,0x0000
ori r4,r4,0x0063
stw r4,456 (r3)  (spiel friert ein)

alte art

lis r4,63
stw r4,456 (r3)
nop                  (spiel friert ein)

so nun weis ich nicht weiter kann sein das es an dem 81 liegt  :confused:

so habe ich den zeit code für das spiel geschrieben und der geht

adresse 8004ECEC
lis r0,300
stw r5,164(r31)
nop




Ich kann dir auch sagen warum das Spiel freezt... Du hast etwas sehr wichtiges bei der stw instruction vergesssen!
Schau dir nochmal deine originale instruction an.

80041BAC:  908301C8   stw   r4,456(r3)

Deine verwendeten instruction sind richtig!

lis r4,0x0000        
ori r4,r4,0x0063
stw r4,456 (r3)

Das heißt so viel wie, addiere die 456 (1C8  in hex) zu r3 (81174F4C + 1C8 = 81175114) und es ergibt sich genau die Adresse die du beschrieben hast.


Du darfst nicht die Zahl dazwischen ( also 456) einfach mit einem 0 ersetzen. Ebenso darfst du auch nicht die 0x bei lis und ori vergessen, denn sonst schreibst du nicht 99 sondern was anderes.
Bei meinem Beispiel haben wir nur angenommen das die Zahl dazwischen 0 ist. Aber das ist immer verschieden also nicht die originale Zahl vergessen!!

Hier ist nun dein Assembleter code:

C2041BAC 00000002
3C800000 60840063
908301C8 00000000


@ Ozelot, ja jetzt ist das Forum schon eher brauchbar. Schön zu sehen das dcx2 und andere Mods nicht mehr so aktiv sind und nicht wieder mal mit Drohungen kommen. Außerdem finde ich es toll das ein deutschsprachiger Hacker zu ASM übergeht^^ Wir wissen beide das dcx2 bisschen nen Schaden hat wenn ich das mal so sagen darf xD
Du kannst das Beispiel gerne verwenden  :)
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: Bully@Wiiplaza on January 31, 2012, 10:37:54 AM
Quote from: -Ozelot- on January 31, 2012, 07:08:45 AM

lis r12, 0x3F99 (3F99999A)

ori r12, r12, 0x999A (3F99999A)

stw r12, 24(r29) <- Füge die 2x16Bit zusammen = 32Bit (3F99999A)

lfs f1, 24(r29) <- Schreibe als Float Lade Wert in Float Register (original Befehl)

Quote from: -Ozelot- on January 31, 2012, 07:08:45 AM
ich liebe dieses Forum xD Es wird behauptet aber ansatzweise eine vernüftige beschreibung findet man hier weit und breit nicht. TOP!
Joa, gescheite tuts zu dem zeug findet man nicht und in deutsch erst Recht nicht.
Nur bruchstückhaft eben in Englisch wenn man sich rund 100 Themen reinzieht^^
Ich würde sogar behaupten, dass wir auf wiiplaza sinnvollere deutsche ASM Tuts haben als hier auf WiiRd in Englisch (!).

Quote from: -Ozelot- on January 31, 2012, 07:08:45 AM
PS: Wo steht die Regel das stw mit li fail ist? WENN das so wäre, dürfte man garnicht in gecko.NET stw mit li ersetzen wenn es die Instruction nicht zulassen würde. Da man es aber machen KANN, verstößt nicht die Regel. ABER man sollte natürlich nicht gerade da schreiben wo im 32Bit wichtige Valuen sind die man nicht überschreiben sollte, also nur li, das könnte EVENTUELL in die hose gehen. Das wäre ein grund stw nicht mit li zu ersetzen. WENN aber im RAM nur 8 und 16Bit geschrieben wird, sehe ich kein grund stw nicht mit li zu ersetzen (Ist das gleiche wenn ich dann mit Codetype 00 und 02 an der stelle benutzen würde). Das gleiche mit lwz. Da lässt die Instruction auch zu das ich es mit li ersetzen kann. Wenn es nach den Regeln gehen würde, dürfte man auch das nicht machen.
Und dass man li und stw nicht kombinieren soll ist völliger Schwachsinn, wirklich!
Es kommt immer drauf an, was man erreichen will. Hat man einen 8 oder 16bit Wert ist es völlig OK, nur wenn man z.B. ne float schreiben will, ist es natürlich quatsch li zu benutzen. Ist ja genauso mit allen anderen Befehlen, der CPU denkt sich nicht den Code aus, sondern der Hacker! Also müsst ihr die passenden Befehle nutzen. ich spreche zudem aus Erfahrung :eek:
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: WiiOs-Ozelot on January 31, 2012, 11:59:34 AM
Quote
@ Ozelot, ja jetzt ist das Forum schon eher brauchbar. Schön zu sehen das dcx2 und andere Mods nicht mehr so aktiv sind und nicht wieder mal mit Drohungen kommen. Außerdem finde ich es toll das ein deutschsprachiger Hacker zu ASM übergeht^^ Wir wissen beide das dcx2 bisschen nen Schaden hat wenn ich das mal so sagen darf xD
Du kannst das Beispiel gerne verwende

Echt? er ist kaum noch aktiv? wtf. und James? Habe mein Password vom Database verloren. naja egal.
Von dir hört man auch kaum nochwas ^^



Quote
Und dass man li und stw nicht kombinieren soll ist völliger Schwachsinn, wirklich!
Es kommt immer drauf an, was man erreichen will. Hat man einen 8 oder 16bit Wert ist es völlig OK, nur wenn man z.B. ne float schreiben will, ist es natürlich quatsch li zu benutzen. Ist ja genauso mit allen anderen Befehlen, der CPU denkt sich nicht den Code aus, sondern der Hacker! Also müsst ihr die passenden Befehle nutzen. ich spreche zudem aus Erfahrung shocked

Ja Bully, darauf wollte ich hinaus mit mein Text! Das meine ich ^^
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: Deathwolf on January 31, 2012, 12:02:33 PM
Naja sind beide nicht mehr sooo aktiv.

Aber ja doch, steige demnächst in Mario Kart Wii hacking ein   :p
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: sniper82 on January 31, 2012, 02:13:23 PM
hi zusammen
also habe den code ausprobiert den Deathwolf mir geschrieben hat. spiel stürzt ab leider :'(
gecko net zeigt mir dan den breakpoint


[spoiler]  CR:48200484  XER:00000000  CTR:00000000 DSIS:06000000
DAR:000001C8 SRR0:800028D0 SRR1:0000B032   LR:8004ECD8
  r0:00000001   r1:802CE3F8   r2:802C3C40   r3:00000000
  r4:00000063   r5:802CE310   r6:802CE31C   r7:802CE328
  r8:00000002   r9:00000040  r10:0000000A  r11:802CE368
r12:8004363C  r13:802C2100  r14:00000000  r15:00000000
r16:00000000  r17:00000000  r18:00000000  r19:00000000
r20:00000000  r21:00000000  r22:00000000  r23:00000000
r24:00000000  r25:00000000  r26:93574D20  r27:91C42880
r28:00000004  r29:91C42E10  r30:8020636C  r31:91C42E00

  f0:00000000   f1:00000000   f2:00000000   f3:00000000
  f4:00000000   f5:00000000   f6:00000000   f7:00000000
  f8:59800004   f9:00000000  f10:3B3CBE61  f11:39D1B717
f12:C1D81840  f13:00000000  f14:00000000  f15:00000000
f16:00000000  f17:00000000  f18:00000000  f19:00000000
f20:00000000  f21:00000000  f22:00000000  f23:00000000
f24:00000000  f25:00000000  f26:00000000  f27:00000000
f28:00000000  f29:00000000  f30:00000000  f31:00000000

800028A8:  00000000   .word   0x00000000
800028AC:  00000000   .word   0x00000000
800028B0:  00000000   .word   0x00000000
800028B4:  00000000   .word   0x00000000
800028B8:  00D0C0DE   .word   0x00d0c0de
800028BC:  00D0C0DE   .word   0x00d0c0de
800028C0:  C2041BAC   lfs   f16,7084(r4)
800028C4:  00000002   .word   0x00000002
800028C8:  3C800000   lis   r4,0
800028CC:  60840063   ori   r4,r4,99
800028D0:  908301C8   stw   r4,456(r3)
800028D4:  4803F2DC   b   0x80041bb0
800028D8:  00003181   .word   0x00003181
800028DC:  00000000   .word   0x00000000
800028E0:  FFFFFFFF   fnmadd.   f31,f31,f31,f31
800028E4:  FFFFFFFF   fnmadd.   f31,f31,f31,f31
800028E8:  00000000   .word   0x00000000
800028EC:  00000000   .word   0x00000000
800028F0:  00000000   .word   0x00000000
800028F4:  00000000   .word   0x00000000
800028F8:  00000000   .word   0x00000000
800028FC:  00000000   .word   0x00000000
80002900:  00000000   .word   0x00000000
80002904:  00000000   .word   0x00000000
80002908:  00000000   .word   0x00000000
8000290C:  00000000   .word   0x00000000
80002910:  00000000   .word   0x00000000
80002914:  00000000   .word   0x00000000
80002918:  00000000   .word   0x00000000
8000291C:  00000000   .word   0x00000000
80002920:  00000000   .word   0x00000000
80002924:  00000000   .word   0x00000000
80002928:  00000000   .word   0x00000000
8000292C:  00000000   .word   0x00000000
80002930:  00000000   .word   0x00000000
80002934:  00000000   .word   0x00000000
80002938:  00000000   .word   0x00000000
8000293C:  00000000   .word   0x00000000
80002940:  00000000   .word   0x00000000
80002944:  00000000   .word   0x00000000
80002948:  00000000   .word   0x00000000
8000294C:  00000000   .word   0x00000000
80002950:  00000000   .word   0x00000000
80002954:  00000000   .word   0x00000000
80002958:  00000000   .word   0x00000000
8000295C:  00000000   .word   0x00000000
80002960:  00000000   .word   0x00000000
80002964:  00000000   .word   0x00000000
80002968:  00000000   .word   0x00000000
8000296C:  00000000   .word   0x00000000
80002970:  00000000   .word   0x00000000
80002974:  00000000   .word   0x00000000
80002978:  00000000   .word   0x00000000
8000297C:  00000000   .word   0x00000000
80002980:  00000000   .word   0x00000000
80002984:  00000000   .word   0x00000000
80002988:  00000000   .word   0x00000000
8000298C:  00000000   .word   0x00000000
80002990:  00000000   .word   0x00000000
80002994:  00000000   .word   0x00000000[/spoiler]

die werte wurden geschrieben aber für das spiel macht es woll keinen sin.

Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: Deathwolf on January 31, 2012, 02:53:49 PM
Wo ist die Adresse von r3 hin??
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: sniper82 on January 31, 2012, 03:09:25 PM
weis ich nicht wie gesagt habe den code von dir eingetragen dann ist das spiel gefrest gecko zeigte mir ein fenster mit ja oder nein habe ja gedrückt resultat sihst du ja
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: WiiOs-Ozelot on January 31, 2012, 10:43:37 PM
Was hast du überhaupt genommen? Read, Write oder Read/Write?


Was mir auffällt

800028C0:  C2041BAC   lfs   f16,7084(r4)
800028C4:  00000002   .word   0x00000002
800028C8:  3C800000   lis   r4,0
800028CC:  60840063   ori   r4,r4,99
800028D0:  908301C8   stw   r4,456(r3)

---------------------------------------------------------

C2041BAC 00000002
3C800000 60840063
908301C8 00000000
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: Deathwolf on January 31, 2012, 10:45:14 PM
Was ist dir genau aufgefallt Ozelot?

Wundert mich wieso der cpu nicht mit dem C2 code zurecht kommt....
Probiere mal diesen code aus:

C6041BAC 800001C0
060001C0 00000010
3C800000 60840063
908301C8 480419E4
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: WiiOs-Ozelot on February 01, 2012, 01:33:43 AM
yes sir!

@Deathwolf, works too?

lis r12,0x0000        
ori r12,r12,0x0063
stw r12,456 (r3)

 r0:8005F618   r1:802CE448   r2:802C3C40   r3:81174F4C
 r4:00000015   r5:00000006   r6:00000008   r7:00000030
 r8:91C40870   r9:00000040  r10:00000022  r11:00000007
r12:8005FDFC  r13:802C2100  r14:00000000  r15:00000000
r16:00000000  r17:00000000  r18:00000000  r19:00000000
r20:00000000  r21:00000000  r22:00000000  r23:00000000
r24:00000000  r25:00000000  r26:93574D20  r27:00000000
r28:00000000  r29:00000000  r30:81173D0C  r31:81173CF4

Or

lis r12,0x0000        
ori r12,r12,0x0063
stw r12,456 (r4)

C2041BAC 00000002
3D800000 618C0063
918401C8 00000000

 r0:8005F618   r1:802CE448   r2:802C3C40   r3:81174F4C
 r4:00000015   r5:00000006   r6:00000008   r7:00000030
 r8:91C40870   r9:00000040  r10:00000022  r11:00000007
r12:8005FDFC  r13:802C2100  r14:00000000  r15:00000000
r16:00000000  r17:00000000  r18:00000000  r19:00000000
r20:00000000  r21:00000000  r22:00000000  r23:00000000
r24:00000000  r25:00000000  r26:93574D20  r27:00000000
r28:00000000  r29:00000000  r30:81173D0C  r31:81173CF4

i think the first variants is bad. The second variants is for me plausible but i'm not sure it works


Sniper82, what is it for a Game?

Sorry but in German: Hast du mal geprüft ob es überhaupt nötig ist 32Bit zu schreiben? Gecko.NET stellt alles in 32Bit dar jedoch sind manche Valuen in 8 oder 16Bit. Und was ist das überhaupt für ein Spiel? Damit wir das selber probieren können wo das problem liegt weil manche Spiele haben ein paar macken.

A job for Anonymous xD
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: sniper82 on February 01, 2012, 09:26:32 AM
hi zusammen
also erstmal klar schreiben wir auch in englisch aber halt auch in deutsch.
so zur frage 1 habe mit Write gearbeitet
zur frage 2 es handelt sich hier um das spiel Ivy The Kiwi?http://geckocodes.org/?c=RIVP99
zu den code von Deathwolf, er läuft und das spiel friert auch nicht ein.
könntest du versuchen mir zu erklären wie du den code gemacht hast den es ist ja kein asm oder, den der code generator konnte mir nichts sagen.
ps wehre nett wenn du ihn noch in die code datenbank eintragen würdest.

an den moderator leider gibt es hier kein deutsches forum sektion, was auch sehr schade ist den für anfänger wie mich die die enlische sprache nur mit programmen übersetzen können ist es manschmal sehr schwer überhaupt mit zubekommen was gemeint ist. wir werden deinen wunsch naturlich nachkommen. werde wider in deutsch und englisch posten, den wir wollen ja keinen aus schlissen sondern nur verständlicher wissen vermitteln.

---------------------------------------------

hi together
So first we write clearly in English but it is possible in German.
thus to question 1 was working with Write
2 to ask is it here to play Ivy The Kiwi?http://geckocodes.org/?c=RIVP99
To the code of Deathwolf, he runs and the game does not freeze.
you could try to explain to me how you did the code which it is not a asm or the code generator could not tell me anything.
ps nice if you defend him, nor would enter into the database code.

specifies the moderator, unfortunately, there is no German forum section, which is also very unfortunate for the beginner like me can translate the language Enlisch programs only bad habit is very difficult. ever get shut with what is meant. We will fulfill your wishes of course. 'll resist posting in German and English, we do not even want to know is understandable but from CLOSE convey.
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: WiiOs-Ozelot on February 01, 2012, 12:38:19 PM
C6 is a "Create branch" Codetype
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: sniper82 on February 01, 2012, 12:42:27 PM
interessant aber was heißt das genau für den aufbau des codes.
ba = basisadresse
po = pointeradresse
und wie heisen die anderen abkürzungen ?
------------------------------------------
interesting but exactly what that means for the building codes.
ba = base address
po = pointer address
and how heisen other abbreviations?
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: Deathwolf on February 01, 2012, 03:18:41 PM
Das ist String ASM! Das einzige was der C2 codetype macht ist die "Branches" schreiben... Aber das kann man auch selber machen!

Hier ist unser C2 code:
C2041BAC 00000002
3D800000 618C0063
918401C8 00000000

Nun brauchen wir im RAM viele 00000000 stellen die frei sind.
Für diesen code hab ich die Adresse 800001C0 ausgewählt.

Als nächstes brauchst du einen C6 codetype. Dieser erlaubt es, einen branch sowie der C2 code zuschreiben.

C6041BAC 800001C0 # branch from 80041BAC zu 800001C0

Nun brauchen wir einen 06 code welcher unsere ASM instructions einbindet

060001C0 0000000C # 800001C0 ist unsere Adresse mit den 0 Stellen, die 0C steht für 0C bytes. Eine ganze line (XXXXXXXX XXXXXXXX) hat 8 bytes, 2 lines haben 10 bytes. Natürlich alles in hex. Wir nutzen hier 0C bytes weil wir die letzte 00000000 zeile weglassen müssen.

3C800000 60840063 # ASM instruction # 800001C0 - 800001C4
908301C8 00000000 # ASm instruction # 800001C8 - C6 code [800001CC]

C60001CC 80041BB0 # Zum schluss noch einen C6 branch code welcher den Code entgültig einbindet! Wichtig ist, das man immer die letzte adresse vom code für den C6 am schluss nutzt. Nun setzt man nochmal die Break adresse ein (80041BAC) und zählt IMMER und wirklich immer 4 bytes zu dieser adresse dazu damit der code wirklich eingebunden wird... also 80041BAC + 4 =80041BB0

C6041BAC 800001C0
060001C0 0000000C
3C800000 60840063
908301C8 00000000
C60001CC 80041BB0
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: sniper82 on February 02, 2012, 02:50:22 PM
C2041BAC 00000002
3D800000 618C0063
918401C8 00000000

C6041BAC 800001C0
060001C0 0000000C
3C800000 60840063  #6084 ist das ein standart wert oder wo kommt der her
908301C8 00000000
C60001CC 80041BB0 +4

Wert mit vielen 00000000

so habe ich es verstanden
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: Deathwolf on February 02, 2012, 04:05:34 PM
Das sieht schon fast richtig aus!
Nur solltest du Folgendes beachten:

C6041BAC 800001C0
060001C0 0000000C
3C800000 60840063 # dieser wert ist "ori r4,r4,0x63" von unserem C2 code. 
908301C8 00000000
C60001CC 80041BB0 # hier musst du nicht mehr + 4 bytes dazu rechnen denn das habe ich schon für dich gemacht. (80041BAC + 4 = 80041BB0 ) sonst ist alles richtig was du gemacht hast :)

Mit den wert mit vielen 00000000 habe ich nur gemeint das du eine adresse brauchst die keine werte hat. So wie 800001C0 hat ganz viele 00000000 und dort können wir unsere C2 instructions schreiben.
Title: Re: ASM Abkürzungen / ASM Abbreviations
Post by: sniper82 on February 02, 2012, 09:11:34 PM
hi zusammen
also das mit den ori r4,r4,063 verstehe ich noch nicht ganz. das der wert 63 die anzahl der leben ist verstehe ich ja,
aber wen ich mir den C2 code anschaue finde ich nirgens den wert 6084 sondern nur den wert 618C wie komme ich zu 618C.
und warum verändere ich den wert 3D in 3C muss ich immer 1 runter rechnen?
ps danke für die geduld.
----------------------------------------------------------------------
hi together
ie the ori with the r4, r4, 063 I do not understand completely. live the value of the number 63 is yes, I understand,
but whom I look at the code C2 I find the value nirgens 6084 but only worth the 618C as I come to 618C.
and why do I change the value in 3C 3D I always have a count down?
ps thanks for the patience.