Translhextion problem

geschrieben am 06.08.2013 16:58:59
( Link )
Ich arbeite mit dem Programm Translhextion und verändere damit die Eigenschaften von Sprites usw.

Aber wie schaffe ich es, dass ich diese Eigenschaften nicht für alle Sprites dieser art ändere, sondern nur in einem bestimmten Level?

Vielleicht könnt ihr mir da ja weiterhelfen.

mfg Jakoob14
geschrieben am 06.08.2013 19:32:33
( Link )
$7E:010B 245 bytes Misc. Stack. The first two bytes is the current level number in most hacks.
WAS, WIE, WO???? Ne, Ne ich bin nicht die Signatur ...
Ich putze hier nur.

Mein Hack:
<!-- m --><a class="postlink" href="http://www.youtube.com/user/conankun88#p/a/u/0/8vdcyGylrg0">http://www.youtube.com/user/conankun88# ... vdcyGylrg0</a><!-- m -->
geschrieben am 06.08.2013 20:07:36
( Link )
Und gucke in der all.log nach und suche nach den Begriffen "SpriteInitPtr" und "SpriteMainPtr" und suche nach einer passende Stelle für einen Hijack aus (hier mein Patches erstellen-Tutorial).
Du kannst auch gerne zu mir MFG659 sagen (ich heiße übrigens in CreepTD wegen dem limitierten Platz wirklich MFG659)
Ich kann einige (ASM)-Codes fixen. <!-- s:) -->:)<!-- s:) -->
geschrieben am 06.08.2013 23:22:56
( Link )
Ich habe mich an diesem Tutorial orientiert: http://smwhacking.de/misc/Hextut.pdf

Da wird das mit fünfstelligen Zahlen erklärt und nicht mit soetwas: $7E:010B

Vielleicht checke ich auch nix
geschrieben am 07.08.2013 6:37:28
zuletzt bearbeitet von MarioFanGamer am 07.08.2013 14:50:28.
( Link )
Erstens: Die fünfstelligen Zahlen sind PC Adressen. Und (LoRom) SNES-Adressen sind immer sechsstellig und man kann die Adressen $xx0000 bis $xx7FFF nicht benutzen, denn sie werden für Ram Adressen genutzt.
Zweitens: Für größere Codes soll man einen Assembler wie Xkas oder Asar (besser gesagt: die einzigen weil Trasm [oder besser gesagt Trashm, welches wie "Trash" mit einen "m" gesprochen wird] miserabel ist) und keinen Hexeditor (man muss wissen, wie viele Felder man überspringt...).
Und drittens: Die Adresse $010B speichert das lowByte einer Level Nummer (also die ersten zwei hexdezimale Zahlen bzw. ein Byte). Wenn du wissen möchtest, in welches Level man ist nutze den Code:
Code
LDA $010B
CMP #$!Level_lowbyte
BNE xx
LDA $010C
CMP #$!Level_HighByte
BNE xx

Natürlich "xx" durch einen Label Namen (z.B. Return oder Original) ersetzen

Edit: Beispiel für Level 105:
Code
LDA $010B
CMP #$05
BNE xx
LDA $010C
CMP #$01
BNE xx


Noch ein ungezählter Edit: Bei einem Hex Editor musst du
Code
AD 0B 01 C9 xx D0 xx AD 0C 01 C9 xx D0 xx

bzw. für meinen Beispiel das eingeben:
Code
AD 0B 01 C9 05 D0 xx AD 0C 01 C9 01 D0 xx


Edit: Codeupdate:
Code
REP #$20
LDA $010B
CMP #$!LevelNummer
BNE xx
SEP #$20

Beispiel:
Code
REP #$20
LDA $010C
CMP #$010B
BNE xx
SEP #$20

Für Hex bin ich zu faul.
Du kannst auch gerne zu mir MFG659 sagen (ich heiße übrigens in CreepTD wegen dem limitierten Platz wirklich MFG659)
Ich kann einige (ASM)-Codes fixen. <!-- s:) -->:)<!-- s:) -->
geschrieben am 07.08.2013 14:27:41
( Link )
oder man nutzt einfach den 16bit modus wenn man schon eine 16bit prozessor hat...
anstatt 2 8bit zahlen zu überprüfen
WAS, WIE, WO???? Ne, Ne ich bin nicht die Signatur ...
Ich putze hier nur.

Mein Hack:
<!-- m --><a class="postlink" href="http://www.youtube.com/user/conankun88#p/a/u/0/8vdcyGylrg0">http://www.youtube.com/user/conankun88# ... vdcyGylrg0</a><!-- m -->
geschrieben am 07.08.2013 14:47:35
( Link )
Dafür möchte ich wissen wie es geht. Ich versuchte ein
Code
REP #$20
LDA #$010B
CMP #$0105
BNE xx
SEP #$20

zu machen aber es gibt keinen CMP für


Kleiner tipp: "LDA #$xx" wird im 16-Bit-Modus durch "LDA #$xxxx" ersetzt.
Du kannst auch gerne zu mir MFG659 sagen (ich heiße übrigens in CreepTD wegen dem limitierten Platz wirklich MFG659)
Ich kann einige (ASM)-Codes fixen. <!-- s:) -->:)<!-- s:) -->
geschrieben am 07.08.2013 16:23:41
( Link )
Anscheinend ist das komplizierter als ich dachte

Ich sollte es lieber bleiben lassen
geschrieben am 07.08.2013 16:51:22
( Link )
Ich helfe dir[Edit], den Code zu machen[/Edit]. Was wolltest du machen?
Du kannst auch gerne zu mir MFG659 sagen (ich heiße übrigens in CreepTD wegen dem limitierten Platz wirklich MFG659)
Ich kann einige (ASM)-Codes fixen. <!-- s:) -->:)<!-- s:) -->
geschrieben am 07.08.2013 18:08:59
( Link )
Einfach erklärt:

Mit Hex-Edits änderst du den Code des Spiels, der schon da ist. Um eine Änderung aber nur für ein Level gelten zu lassen, musst du eine Überprüfung einbauen ("ist dies das gewünschte Level?"), und dazu musst du neuen Code einfügen. Das wiederum ist nicht das, wofür Hex-Edits gemacht sind. Dazu solltest du ASM können und dir einen Patch schreiben.
geschrieben am 07.08.2013 18:21:17
( Link )
Zitat von WYE:
Einfach erklärt:

Mit Hex-Edits änderst du den Code des Spiels, der schon da ist. Um eine Änderung aber nur für ein Level gelten zu lassen, musst du eine Überprüfung einbauen ("ist dies das gewünschte Level?"), und dazu musst du neuen Code einfügen. Das wiederum ist nicht das, wofür Hex-Edits gemacht sind. Dazu solltest du ASM können und dir einen Patch schreiben.

@jakob14: ^ Siehst du. Hex Editoren wurden für kleinere Änderungen und nicht für große gemacht.
Immerhin kann ich ASM und du kannst mir einen kleinen "Request" geben.
Du kannst auch gerne zu mir MFG659 sagen (ich heiße übrigens in CreepTD wegen dem limitierten Platz wirklich MFG659)
Ich kann einige (ASM)-Codes fixen. <!-- s:) -->:)<!-- s:) -->
geschrieben am 07.08.2013 19:01:10
( Link )
wenn du request im sinne von helfen meinst,
würde ich mir sehr wünschen,
dass du einen code schreibst,
der die sprungphysik von mario nur in einem level ändert,
und mir zeigst, wie man den code einfügt.
geschrieben am 08.08.2013 12:49:38
( Link )
Sorry, geht nicht mehr. Ich kann dir leider nicht helfen?
Du kannst auch gerne zu mir MFG659 sagen (ich heiße übrigens in CreepTD wegen dem limitierten Platz wirklich MFG659)
Ich kann einige (ASM)-Codes fixen. <!-- s:) -->:)<!-- s:) -->
geschrieben am 08.08.2013 15:33:46
( Link )
ok schade
geschrieben am 08.08.2013 22:22:43
( Link )
Vielleicht hilft dir das hier: http://www.smwcentral.net/?p=section&a=details&id=4190 in Kombination mit levelASM oder ueberASM.
geschrieben am 09.08.2013 21:25:09
( Link )
Es gibt so einen Patch? Ups.
PS: Es kam zu spät weil ich gesperrt wurde.
Du kannst auch gerne zu mir MFG659 sagen (ich heiße übrigens in CreepTD wegen dem limitierten Platz wirklich MFG659)
Ich kann einige (ASM)-Codes fixen. <!-- s:) -->:)<!-- s:) -->