Allgemeine SMW Hacking Fragen

geschrieben am 27.06.2011 15:49:34
( Link )
So sieht der Code aus, wenn ich Channel 6 benutze
Code
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;True levelinitASM Code lies ahead.
;If you are too lazy to search for a levelinit
;Use CTRL+F. The format is as following:
;levelinitx - levelinits 0-F
;levelinitxx - levelinits 10-FF
;levelinitxxx - levelinits 100-1FF
;Should be pretty obvious...
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

levelinit0:
RTS
levelinit1:
RTS
levelinit2:
RTS
levelinit3:
RTS
levelinit4:
RTS
levelinit5:
RTS
levelinit6:
RTS
levelinit7:
RTS
levelinit8:
RTS
levelinit9:
RTS
levelinitA:
RTS
levelinitB:
RTS
levelinitC:
RTS
levelinitD:
RTS
levelinitE:
RTS
levelinitF:
RTS
levelinit10:
RTS
levelinit11:
RTS
levelinit12:
RTS
levelinit13:
RTS
levelinit14:
RTS
levelinit15:
RTS
levelinit16:
RTS
levelinit17:
RTS
levelinit18:
RTS
levelinit19:
RTS
levelinit1A:
RTS
levelinit1B:
RTS
levelinit1C:
RTS
levelinit1D:
RTS
levelinit1E:
RTS
levelinit1F:
RTS
levelinit20:
RTS
levelinit21:
RTS
levelinit22:
RTS
levelinit23:
RTS
levelinit24:
RTS
levelinit25:
RTS
levelinit26:
RTS
levelinit27:
RTS
levelinit28:
RTS
levelinit29:
RTS
levelinit2A:
RTS
levelinit2B:
RTS
levelinit2C:
RTS
levelinit2D:
RTS
levelinit2E:
RTS
levelinit2F:
RTS
levelinit30:
RTS
levelinit31:
RTS
levelinit32:
RTS
levelinit33:
RTS
levelinit34:
RTS
levelinit35:
RTS
levelinit36:
RTS
levelinit37:
RTS
levelinit38:
RTS
levelinit39:
RTS
levelinit3A:
RTS
levelinit3B:
RTS
levelinit3C:
RTS
levelinit3D:
RTS
levelinit3E:
RTS
levelinit3F:
RTS
levelinit40:
RTS
levelinit41:
RTS
levelinit42:
RTS
levelinit43:
RTS
levelinit44:
RTS
levelinit45:
RTS
levelinit46:
RTS
levelinit47:
RTS
levelinit48:
RTS
levelinit49:
RTS
levelinit4A:
RTS
levelinit4B:
RTS
levelinit4C:
RTS
levelinit4D:
RTS
levelinit4E:
RTS
levelinit4F:
RTS
levelinit50:
RTS
levelinit51:
RTS
levelinit52:
RTS
levelinit53:
RTS
levelinit54:
RTS
levelinit55:
RTS
levelinit56:
RTS
levelinit57:
RTS
levelinit58:
RTS
levelinit59:
RTS
levelinit5A:
RTS
levelinit5B:
RTS
levelinit5C:
RTS
levelinit5D:
RTS
levelinit5E:
RTS
levelinit5F:
RTS
levelinit60:
RTS
levelinit61:
RTS
levelinit62:
RTS
levelinit63:
RTS
levelinit64:
RTS
levelinit65:
RTS
levelinit66:
RTS
levelinit67:
RTS
levelinit68:
RTS
levelinit69:
RTS
levelinit6A:
RTS
levelinit6B:
RTS
levelinit6C:
RTS
levelinit6D:
RTS
levelinit6E:
RTS
levelinit6F:
RTS
levelinit70:
RTS
levelinit71:
RTS
levelinit72:
RTS
levelinit73:
RTS
levelinit74:
RTS
levelinit75:
RTS
levelinit76:
RTS
levelinit77:
RTS
levelinit78:
RTS
levelinit79:
RTS
levelinit7A:
RTS
levelinit7B:
RTS
levelinit7C:
RTS
levelinit7D:
RTS
levelinit7E:
RTS
levelinit7F:
RTS
levelinit80:
RTS
levelinit81:
RTS
levelinit82:
RTS
levelinit83:
RTS
levelinit84:
RTS
levelinit85:
RTS
levelinit86:
RTS
levelinit87:
RTS
levelinit88:
RTS
levelinit89:
RTS
levelinit8A:
RTS
levelinit8B:
RTS
levelinit8C:
RTS
levelinit8D:
RTS
levelinit8E:
RTS
levelinit8F:
RTS
levelinit90:
RTS
levelinit91:
RTS
levelinit92:
RTS
levelinit93:
RTS
levelinit94:
RTS
levelinit95:
RTS
levelinit96:
RTS
levelinit97:
RTS
levelinit98:
RTS
levelinit99:
RTS
levelinit9A:
RTS
levelinit9B:
RTS
levelinit9C:
RTS
levelinit9D:
RTS
levelinit9E:
RTS
levelinit9F:
RTS
levelinitA0:
RTS
levelinitA1:
RTS
levelinitA2:
RTS
levelinitA3:
RTS
levelinitA4:
RTS
levelinitA5:
RTS
levelinitA6:
RTS
levelinitA7:
RTS
levelinitA8:
RTS
levelinitA9:
RTS
levelinitAA:
RTS
levelinitAB:
RTS
levelinitAC:
RTS
levelinitAD:
RTS
levelinitAE:
RTS
levelinitAF:
RTS
levelinitB0:
RTS
levelinitB1:
RTS
levelinitB2:
RTS
levelinitB3:
RTS
levelinitB4:
RTS
levelinitB5:
RTS
levelinitB6:
RTS
levelinitB7:
RTS
levelinitB8:
RTS
levelinitB9:
RTS
levelinitBA:
RTS
levelinitBB:
RTS
levelinitBC:
RTS
levelinitBD:
RTS
levelinitBE:
RTS
levelinitBF:
RTS
levelinitC0:
RTS
levelinitC1:
RTS
levelinitC2:
RTS
levelinitC3:
RTS
levelinitC4:
RTS
levelinitC5:
RTS
levelinitC6:
RTS
levelinitC7:
RTS
levelinitC8:
RTS
levelinitC9:
RTS
levelinitCA:
RTS
levelinitCB:
RTS
levelinitCC:
RTS
levelinitCD:
RTS
levelinitCE:
RTS
levelinitCF:
RTS
levelinitD0:
RTS
levelinitD1:
RTS
levelinitD2:
RTS
levelinitD3:
RTS
levelinitD4:
RTS
levelinitD5:
RTS
levelinitD6:
RTS
levelinitD7:
RTS
levelinitD8:
RTS
levelinitD9:
RTS
levelinitDA:
RTS
levelinitDB:
RTS
levelinitDC:
RTS
levelinitDD:
RTS
levelinitDE:
RTS
levelinitDF:
RTS
levelinitE0:
RTS
levelinitE1:
RTS
levelinitE2:
RTS
levelinitE3:
RTS
levelinitE4:
RTS
levelinitE5:
RTS
levelinitE6:
RTS
levelinitE7:
RTS
levelinitE8:
RTS
levelinitE9:
RTS
levelinitEA:
RTS
levelinitEB:
RTS
levelinitEC:
RTS
levelinitED:
RTS
levelinitEE:
RTS
levelinitEF:
RTS
levelinitF0:
RTS
levelinitF1:
RTS
levelinitF2:
RTS
levelinitF3:
RTS
levelinitF4:
RTS
levelinitF5:
RTS
levelinitF6:
RTS
levelinitF7:
RTS
levelinitF8:
RTS
levelinitF9:
RTS
levelinitFA:
RTS
levelinitFB:
RTS
levelinitFC:
RTS
levelinitFD:
RTS
levelinitFE:
RTS
levelinitFF:
RTS
levelinit100:
RTS
levelinit101:
RTS
levelinit102:
RTS
levelinit103:
RTS
levelinit104:
RTS
levelinit105:
RTS
levelinit106:
REP #$20
LDA #$3200
STA $4330
LDA #.RedColour
STA $4332
PHK
PLY
STY $4334
LDA #$3200
STA $4360
LDA #.GreenColour
STA $4362
PHK
PLY
STY $4364
LDA #$3200
STA $4350
LDA #.BlueColour
STA $4352
PHK
PLY
STY $4354
SEP #$20
LDA #%01101000
TSB $0D9F
RTS
.RedColour
db $07,$3B
db $07,$3C
db $07,$3D
db $07,$3E
db $07,$3F
db $07,$3F
db $07,$3F
db $07,$3F
db $07,$3F
db $07,$3F
db $07,$3F
db $07,$3F
db $07,$3F
db $07,$3F
db $60,$3F
db $00

.GreenColour
db $07,$4E
db $07,$4F
db $07,$50
db $07,$51
db $07,$52
db $07,$53
db $07,$54
db $07,$55
db $07,$56
db $07,$57
db $07,$58
db $07,$59
db $07,$5A
db $07,$5B
db $60,$5C
db $00

.BlueColour
db $07,$86
db $07,$87
db $07,$88
db $07,$89
db $07,$8A
db $07,$8B
db $07,$8C
db $07,$8D
db $07,$8E
db $07,$8F
db $07,$90
db $07,$91
db $07,$92
db $07,$93
db $60,$94
db $00

levelinit107:

levelinit108:
REP #$20
LDA #$3200
STA $4330
LDA #.RedColour
STA $4332
PHK
PLY
STY $4334
LDA #$3200
STA $4360
LDA #.GreenColour
STA $4362
PHK
PLY
STY $4364
LDA #$3200
STA $4350
LDA #.BlueColour
STA $4352
PHK
PLY
STY $4354
SEP #$20
LDA #%01101000
TSB $0D9F
RTS
.RedColour
db $07,$3B
db $07,$3C
db $07,$3D
db $07,$3E
db $07,$3F
db $07,$3F
db $07,$3F
db $07,$3F
db $07,$3F
db $07,$3F
db $07,$3F
db $07,$3F
db $07,$3F
db $07,$3F
db $60,$3F
db $00

.GreenColour
db $07,$4E
db $07,$4F
db $07,$50
db $07,$51
db $07,$52
db $07,$53
db $07,$54
db $07,$55
db $07,$56
db $07,$57
db $07,$58
db $07,$59
db $07,$5A
db $07,$5B
db $60,$5C
db $00

.BlueColour
db $07,$86
db $07,$87
db $07,$88
db $07,$89
db $07,$8A
db $07,$8B
db $07,$8C
db $07,$8D
db $07,$8E
db $07,$8F
db $07,$90
db $07,$91
db $07,$92
db $07,$93
db $60,$94
db $00
levelinit109:
RTS
levelinit10A:
RTS
levelinit10B:
RTS
levelinit10C:
RTS
levelinit10D:
RTS
levelinit10E:
RTS
levelinit10F:
RTS
levelinit110:
RTS
levelinit111:
RTS
levelinit112:
RTS
levelinit113:
RTS
levelinit114:
RTS
levelinit115:
RTS
levelinit116:
RTS
levelinit117:
RTS
levelinit118:
RTS
levelinit119:
RTS
levelinit11A:
RTS
levelinit11B:
RTS
levelinit11C:
RTS
levelinit11D:
RTS
levelinit11E:
RTS
levelinit11F:
RTS
levelinit120:
RTS
levelinit121:
RTS
levelinit122:
RTS
levelinit123:
RTS
levelinit124:
RTS
levelinit125:
RTS
levelinit126:
RTS
levelinit127:
RTS
levelinit128:
RTS
levelinit129:
RTS
levelinit12A:
RTS
levelinit12B:
RTS
levelinit12C:
RTS
levelinit12D:
RTS
levelinit12E:
RTS
levelinit12F:
RTS
levelinit130:
RTS
levelinit131:
RTS
levelinit132:
RTS
levelinit133:
RTS
levelinit134:
RTS
levelinit135:
RTS
levelinit136:
RTS
levelinit137:
RTS
levelinit138:
RTS
levelinit139:
RTS
levelinit13A:
RTS
levelinit13B:
RTS
levelinit13C:
RTS
levelinit13D:
RTS
levelinit13E:
RTS
levelinit13F:
RTS
levelinit140:
RTS
levelinit141:
RTS
levelinit142:
RTS
levelinit143:
RTS
levelinit144:
RTS
levelinit145:
RTS
levelinit146:
RTS
levelinit147:
RTS
levelinit148:
RTS
levelinit149:
RTS
levelinit14A:
RTS
levelinit14B:
RTS
levelinit14C:
RTS
levelinit14D:
RTS
levelinit14E:
RTS
levelinit14F:
RTS
levelinit150:
RTS
levelinit151:
RTS
levelinit152:
RTS
levelinit153:
RTS
levelinit154:
RTS
levelinit155:
RTS
levelinit156:
RTS
levelinit157:
RTS
levelinit158:
RTS
levelinit159:
RTS
levelinit15A:
RTS
levelinit15B:
RTS
levelinit15C:
RTS
levelinit15D:
RTS
levelinit15E:
RTS
levelinit15F:
RTS
levelinit160:
RTS
levelinit161:
RTS
levelinit162:
RTS
levelinit163:
RTS
levelinit164:
RTS
levelinit165:
RTS
levelinit166:
RTS
levelinit167:
RTS
levelinit168:
RTS
levelinit169:
RTS
levelinit16A:
RTS
levelinit16B:
RTS
levelinit16C:
RTS
levelinit16D:
RTS
levelinit16E:
RTS
levelinit16F:
RTS
levelinit170:
RTS
levelinit171:
RTS
levelinit172:
RTS
levelinit173:
RTS
levelinit174:
RTS
levelinit175:
RTS
levelinit176:
RTS
levelinit177:
RTS
levelinit178:
RTS
levelinit179:
RTS
levelinit17A:
RTS
levelinit17B:
RTS
levelinit17C:
RTS
levelinit17D:
RTS
levelinit17E:
RTS
levelinit17F:
RTS
levelinit180:
RTS
levelinit181:
RTS
levelinit182:
RTS
levelinit183:
RTS
levelinit184:
RTS
levelinit185:
RTS
levelinit186:
RTS
levelinit187:
RTS
levelinit188:
RTS
levelinit189:
RTS
levelinit18A:
RTS
levelinit18B:
RTS
levelinit18C:
RTS
levelinit18D:
RTS
levelinit18E:
RTS
levelinit18F:
RTS
levelinit190:
RTS
levelinit191:
RTS
levelinit192:
RTS
levelinit193:
RTS
levelinit194:
RTS
levelinit195:
RTS
levelinit196:
RTS
levelinit197:
RTS
levelinit198:
RTS
levelinit199:
RTS
levelinit19A:
RTS
levelinit19B:
RTS
levelinit19C:
RTS
levelinit19D:
RTS
levelinit19E:
RTS
levelinit19F:
RTS
levelinit1A0:
RTS
levelinit1A1:
RTS
levelinit1A2:
RTS
levelinit1A3:
RTS
levelinit1A4:
RTS
levelinit1A5:
RTS
levelinit1A6:
RTS
levelinit1A7:
RTS
levelinit1A8:
RTS
levelinit1A9:
RTS
levelinit1AA:
RTS
levelinit1AB:
RTS
levelinit1AC:
RTS
levelinit1AD:
RTS
levelinit1AE:
RTS
levelinit1AF:
RTS
levelinit1B0:
RTS
levelinit1B1:
RTS
levelinit1B2:
RTS
levelinit1B3:
RTS
levelinit1B4:
RTS
levelinit1B5:
RTS
levelinit1B6:
RTS
levelinit1B7:
RTS
levelinit1B8:
RTS
levelinit1B9:
RTS
levelinit1BA:
RTS
levelinit1BB:
RTS
levelinit1BC:
RTS
levelinit1BD:
RTS
levelinit1BE:
RTS
levelinit1BF:
RTS
levelinit1C0:
RTS
levelinit1C1:
RTS
levelinit1C2:
RTS
levelinit1C3:
RTS
levelinit1C4:
RTS
levelinit1C5:
RTS
levelinit1C6:
RTS
levelinit1C7:
RTS
levelinit1C8:
RTS
levelinit1C9:
RTS
levelinit1CA:
RTS
levelinit1CB:
RTS
levelinit1CC:
RTS
levelinit1CD:
RTS
levelinit1CE:
RTS
levelinit1CF:
RTS
levelinit1D0:
RTS
levelinit1D1:
RTS
levelinit1D2:
RTS
levelinit1D3:
RTS
levelinit1D4:
RTS
levelinit1D5:
RTS
levelinit1D6:
RTS
levelinit1D7:
RTS
levelinit1D8:
RTS
levelinit1D9:
RTS
levelinit1DA:
RTS
levelinit1DB:
RTS
levelinit1DC:
RTS
levelinit1DD:
RTS
levelinit1DE:
RTS
levelinit1DF:
RTS
levelinit1E0:
RTS
levelinit1E1:
RTS
levelinit1E2:
RTS
levelinit1E3:
RTS
levelinit1E4:
RTS
levelinit1E5:
RTS
levelinit1E6:
RTS
levelinit1E7:
RTS
levelinit1E8:
RTS
levelinit1E9:
RTS
levelinit1EA:
RTS
levelinit1EB:
RTS
levelinit1EC:
RTS
levelinit1ED:
RTS
levelinit1EE:
RTS
levelinit1EF:
RTS
levelinit1F0:
RTS
levelinit1F1:
RTS
levelinit1F2:
RTS
levelinit1F3:
RTS
levelinit1F4:
RTS
levelinit1F5:
RTS
levelinit1F6:
RTS
levelinit1F7:
RTS
levelinit1F8:
RTS
levelinit1F9:
RTS
levelinit1FA:
RTS
levelinit1FB:
RTS
levelinit1FC:
RTS
levelinit1FD:
RTS
levelinit1FE:
RTS
levelinit1FF:
RTS

wenn ich jetzt Channel 0 verwende muss ich aus ''LDA #%01101000'' ''LDA #%00101001'' machen? Und wenn ich Channel1 verwende aus ''LDA #%01101000'' ''LDA #%00101010''? Ich hoffe ich hab das so richtig verstanden
geschrieben am 27.06.2011 16:20:44
( Link )
Zitat von Ranko:
wenn ich jetzt Channel 0 verwende muss ich aus ''LDA #%01101000'' ''LDA #%00101001'' machen? Und wenn ich Channel1 verwende aus ''LDA #%01101000'' ''LDA #%00101010''? Ich hoffe ich hab das so richtig verstanden


Jab, genau so. Mit Channel 6 funktioniert es also nicht? Dann probier' mal die anderen durch. Irgendeiner wird schon funktionieren. Ansonsten müsste man den Code wohl komplett umbauen, denn man kann HDMA auch so anwenden, dass ein Channel immer zwei Farben abhandelt. So würdest du nur zwei Channels brauchen. Dann müsste es ja auf jeden Fall funktionieren. Wie gesagt aber nur, falls es anders nicht funktioniert.
-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.

geschrieben am 27.06.2011 16:45:15
( Link )
Keiner der Channels funktioniert. Jedes mal freezt das Level mit dem HDMA Effekt. Dann muss der Code also umgebaut werden, wie muss der dann aussehen?
geschrieben am 27.06.2011 16:48:17
( Link )
OK, ich sehe das Problem. Das "STY" musste natürlich "STY" bleiben und nicht in "STA" umgeändert werden. Habe nicht genau hingeguckt und deswegen "STA" geschrieben. STY muss allerdigns STY bleiben. Dann sollte es auch mit Channel 6 funktionieren.

EDIT:
Aber bei dir ist das ja schon richtig.
Ansonsten könnte ich mir nur denken, dass es an LDA #%01101000 liegt. Probier mal, das in "LDA #$68" umzuändern, vielleicht läuft's dann.
-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.

geschrieben am 27.06.2011 17:04:06
( Link )
mit ''LDA #$68'' funktioniert es und der bug ist weg, ich danke dir RPG Hacker!

Ich habe jetzt allerdings noch einen kleinen mini bug, der jetzt nicht so schlimm ist, aber wenn man den verhindern kann sollte man es tun, falls möglich:

Level 105 = kein HDMA
Level 106 = HDMA
Level 107 = kein HDMA
Level 108 = HDMA
im Video switche ich von Level 105 zu 107 und dann sofort zurück, beim switchen habe ich auf einmal diesen HDMA Farbverlauf für eine Sekunde, kann ich das irgendwie weg machen?
geschrieben am 27.06.2011 17:07:47
( Link )
Ich glaube, dass das nicht zu verhindern ist oder zumindest nicht leicht.
-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.

geschrieben am 27.06.2011 18:02:33
( Link )
Doch:

Code
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;HDMA Code v3.5
;originally made by BMF.
;Bug fixes and new features added
;Now works with bsnes and snes9x, too!
;by Ice Man
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;JSL to Main Code
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

lorom ;\ ROM is Lorom
header ;| and has a header.
org $0081AA ;| Hack NMI routine and
JSL CodeStart ;| jump to our code.
NOP #4 ;/ 4 time NOP (No Operation)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;HDMA Main Code
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


org $00FFFF ;| CHANGE THIS TO SOME FREE SPACE!!!!
reset bytes


!CodeSize = CodeEnd-CodeStart ;\
RATS: ;| Write RATS tag to
db "STAR" ;| prevent other programs
dw !CodeSize-$01 ;| from overwriting this
dw !CodeSize-$01^$FFFF ;/ code!

CodeStart:
LDA $0100 ;\ Execute HDMA on
BEQ Start ;/ Nintendo Presents logo

CMP #$05
BEQ Start
CMP #$06
BEQ Start



CMP #$0E ;\ Execute HDMA on
BEQ Start ;/ the overworld
CMP #$0F ;\ Execute HDMA on
BEQ Start ;/ the overworld (fading)
CMP #$10 ;\ Don't execute HDMA
BEQ EndHDMA ;/ on black screens
CMP #$11 ;\ Don't execute HDMA
BEQ EndHDMA ;/ on black screens
CMP #$14 ;\ Execute HDMA in
BEQ Start ;/ the levels
CMP #$17 ;\ Don't execute HDMA
BCS EndHDMA ; | if game mode over 16
RTL ;/ Return

Start:
LDA $7FFF00,x ;\ Load Main HDMA table
BNE Execute ;/ If it isn't equal, execute.

Loop:
TXA ;\ Transfer X to Accumulator
CLC ;| Clear Carry Flag
ADC #$08 ;| and add 08 (for channels).
CMP #$40 ;| If channel is higher then 40,
BCS Return ;| then return and transfer
TAX ;| Accumulator back to X.
BRA Start ;/ Go back to the beginning.

Execute:
ORA $0D9F ;\ Enable HDMA channels
STA $0D9F ;| to actually execute the code.
TXA ;| Transfer X to Accumulator
ASL A ;| Multiply by 2
TAY ;| then transfer Accumulator to Y.
LDA $7FFF01,x ;| Enable DMA Transfer
STA $4300,y ;| at $4300.
LDA $7FFF02,x ;| Set B-Address
STA $4301,y ;| at $4301.
REP #$20 ;| Set processor to 16 Bit
LDA $7FFF03,x ;| Set A-Address (low byte)
STA $4302,y ;| at $4302.
SEP #$20 ;| Set processor to 8 Bit
LDA $7FFF05,x ;| Set A-Address bank
STA $4304,y ;| at $4304.
BRA Loop ;/ Loop the code.

Return:
RTL ;| Return

EndHDMA:
STZ $0D9F ;\ Disable HDMA transfer
LDA #$80 ;| Restore part of the
STA $2100 ;| NMI code because we
STZ $420C ;| JSLed to it
RTL ;/ and return.
CodeEnd:

print bytes
Abiturklausuren (schamlos geklaut von spinatkuchen >_>):
Deutsch (26.3.): Alles reingebracht, was ich wollte, bereue nichts, insgesamt ganz gutes Gefühl (Ergebnis: 8 Punkte - Hm, hätte mit mehr gerechnet.)
Geschichte (1.4.): Fast nichts zum historischen Kontext gewusst, Rest war ganz okay, vielleicht noch 3, eher 4 (Ergebnis: 7 Punkte - Hey, das hätte schlechter sein können. Keine Nachprüfung!)
Mathe (2.4.): Viel besser als gedacht, bis auf 'nen kleinen Teil fast alles richtig, 1 ist gut möglich (Ergebnis: 14 Punkte - Yay!)
Englisch (9.4.): Sprachlich keine Sorgen, inhaltlich etwas mehr, gutes bis sehr gutes Gefühl (Ergebnis: 15 Punkte - Der Lehrer mag mich halt.)
Physik (mdl., 10.5.): Bis auf zwei winzige Wissenslücken sehr einfach und sehr gut gelaufen (Ergebnis: 13 Punkte - Sehr in Ordnung!)
geschrieben am 27.06.2011 18:42:40
( Link )
Danke WYE! Dieser Code war zwar schwierig zum laufen zu kriegen(ich war zu blöd für Freespace), aber jetzt funktioniert er einwandfrei.

Ich glaub ich mach dazu ein Tutorial: ''HDMA bug fix Tutorial'' . Ich glaub das wäre ganz nützlich, was meint ihr?
E: Ich würde beschreiben wie man die ganzen HDMA bugs von oben beheben kann
geschrieben am 27.06.2011 18:47:40
( Link )
Zitat von Ranko:
Ich glaub ich mach dazu ein Tutorial: ''HDMA bug fix Tutorial'' . Ich glaub das wäre ganz nützlich, was meint ihr?


*abnormal riesige tosende menge vorstell* jaaaaaaaaaaa, awesome idee !!!!!!!!!!!!111einself!! :3
geschrieben am 27.06.2011 18:51:40
( Link )
Nur mal aus Neugier: Probier mal, an Stelle der 68 "LDA.b #%01101000" zu verwenden. Ich verstehe nämlich immer noch nicht genau, wieso das eine klappt und das andere nicht. Das .b könnte das aber fixen.
-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.

geschrieben am 27.06.2011 18:59:10
( Link )
"LDA.b #%01101000" funktioniert auch
geschrieben am 27.06.2011 19:50:33
( Link )
Ja, Binärzahlen ohne .b, .w oder .l scheint xkas nicht zu mögen.
Abiturklausuren (schamlos geklaut von spinatkuchen >_>):
Deutsch (26.3.): Alles reingebracht, was ich wollte, bereue nichts, insgesamt ganz gutes Gefühl (Ergebnis: 8 Punkte - Hm, hätte mit mehr gerechnet.)
Geschichte (1.4.): Fast nichts zum historischen Kontext gewusst, Rest war ganz okay, vielleicht noch 3, eher 4 (Ergebnis: 7 Punkte - Hey, das hätte schlechter sein können. Keine Nachprüfung!)
Mathe (2.4.): Viel besser als gedacht, bis auf 'nen kleinen Teil fast alles richtig, 1 ist gut möglich (Ergebnis: 14 Punkte - Yay!)
Englisch (9.4.): Sprachlich keine Sorgen, inhaltlich etwas mehr, gutes bis sehr gutes Gefühl (Ergebnis: 15 Punkte - Der Lehrer mag mich halt.)
Physik (mdl., 10.5.): Bis auf zwei winzige Wissenslücken sehr einfach und sehr gut gelaufen (Ergebnis: 13 Punkte - Sehr in Ordnung!)
geschrieben am 28.06.2011 12:33:35
( Link )
1: Ich habe ein kleines Problem mit dem Wavy HDMA Effekt.
Das ist der Original Code:
Code


REP #$20 ; 16 bit A
LDA #$0F42 ; one reg write twice, indirect
STA $4340 ; $210F - layer 2 horizontal scroll register
LDA #$B600 ; low and high bytes of source address
STA $4342 ;
SEP #$20 ; 8 bit A
LDA #$7F ; set bank
STA $4344 ;
STA $4347 ; set indirect bank too
LDA #$10 ; enable channel 4
TSB $0D9F ;


LDA #$00 ; setup indirect addressing
STA $00 ; target address: $7FB600
LDA #$B6
STA $01
LDA #$7F
STA $02

LDX #$09 ; loop 10 (decimal) times

LVL6_LOOP6:

LDY #$17 ; loop 24 (decimal) times
LVL6_LOOP7:
LDA LVL6_HDMA4,y;
STA [$00],y ; upload table to RAM
DEY
BPL LVL6_LOOP7

REP #$20 ; 16 bit A
LDA $00 ; load low/high byte of target address
CLC
ADC #$0018 ; add 18
STA $00 ; store back
SEP #$20 ; 8 bit A

DEX
BPL LVL6_LOOP6 ; loop again if needed

LDA #$00 ; add in terminator byte
STA [$00]
RTS

Code
Code

REP #$20 ; 16 bit A

LDX #$0E ; update scroll values
LVL6_LOOP8:
LDA $1E ; layer 2 x
CLC
ADC LVL6_HDMA2,x; add in offset
STA $7FB710,x ; store to HDMA table
DEX
DEX
BPL LVL6_LOOP8 ; loop 8 times

SEP #$20 ; 8 bit A

LDX #$15 ; reset these scanline counts
LDA #$04
LVL6_8:
STA $7FB600,x
DEX
DEX
DEX
BPL LVL6_8

STZ $00 ; set this scratch to 00

LDA $14 ; frame counter
LSR ; /2
AND #$03 ; mod 4
CLC
ADC $20 ; add in layer 2 y
LVL6_7:
CMP #$04 ; check if below 4
BCC LVL6_6 ; continue if so
SBC #$04 ; subtract 4 until it is
INC $00 ; increment scratch
BRA LVL6_7 ; loop
LVL6_6:
SEC ;
SBC #$04 ; flip
EOR #$FF
INC A
STA $01 ; store to scratch for later

LDA $14 ; frame counter
LSR ; /8
LSR
LSR
CLC
ADC $00 ; add in additional from layer 2's y
AND #$07 ; mod 8
STA $00 ; store to scratch
ASL ; x3
CLC
ADC $00
TAX ; stick in x
LDA $01 ; get scanline count
STA $7FB600,x ; set scanline count
STX $4342 ; set table offset

RTS


LVL6_HDMA2: ; holds how much to offset layer 2's horizontal scrolling by. 2 byte width
db $00,$00,$FF,$FF,$FE,$FF,$FF,$FF,$00,$00,$01,$00,$02,$00,$01,$00


LVL6_HDMA4: ; holds initial HDMA settings for layer 2
db $04,$10,$B7 ; first byte = scanline count, second byte = low byte of address, third = high byte
db $04,$12,$B7
db $04,$14,$B7
db $04,$16,$B7
db $04,$18,$B7
db $04,$1A,$B7
db $04,$1C,$B7
db $04,$1E,$B7

So ich habe diesen Code nun abgeändert damit er mit dem VWF-Patch von RPG Hacker kompatibel ist:
Code
REP #$20 ; 16 bit A
LDA #$0F42 ; one reg write twice, indirect
STA $4360 ; $210F - layer 2 horizontal scroll register
LDA #$B600 ; low and high bytes of source address
STA $4362 ;
SEP #$20 ; 8 bit A
LDA #$7F ; set bank
STA $4364 ;
STA $4367 ; set indirect bank too
LDA.b #%01101000 ; enable channel 4
TSB $0D9F ;


LDA #$00 ; setup indirect addressing
STA $00 ; target address: $7FB600
LDA #$B6
STA $01
LDA #$7F
STA $02

LDX #$09 ; loop 10 (decimal) times

LVL6_LOOP6:

LDY #$17 ; loop 24 (decimal) times
LVL6_LOOP7:
LDA LVL6_HDMA4,y;
STA [$00],y ; upload table to RAM
DEY
BPL LVL6_LOOP7

REP #$20 ; 16 bit A
LDA $00 ; load low/high byte of target address
CLC
ADC #$0018 ; add 18
STA $00 ; store back
SEP #$20 ; 8 bit A

DEX
BPL LVL6_LOOP6 ; loop again if needed

LDA #$00 ; add in terminator byte
STA [$00]
RTS

Levelcode asm habe ich nicht geändert.

Der wavy Effekt ist nun mit dem Patch kompatible, aber der wavy Effekt hat sich jetzt nun in ein Flimmer Effekt verwandelt (das gefällt mir eig. wegen Wüste). Aber wenn ich nun das Level spiele und der Bildschirm scrollt sieht der HDMA effekt so komisch aus:

habe ich im Code vieleicht was falsch geändert?
2: Wie muss ich den Code umschreiben, damit der wavy Effekt sich auch auf den FG auswirkt und mit ^1: kompatible ist?
geschrieben am 28.06.2011 13:40:38
( Link )
dieser "flimmern" effekt vom BG sieht aber nach einem zittern bzw. ruckeln aus, irgendwie schon hässlich und buggy =/
geschrieben am 02.07.2011 16:28:13
( Link )
Kann mir jemand erklären wie ich das cluster sprite tool benutze? Ich meine ich krieg die Cluster sprites in meine Rom, aber wie kriege ich das ganze in LM zum laufen?
geschrieben am 05.07.2011 14:54:05
( Link )
Hey Leute hab mal mehrere Fragen:

Kan man in der OW so einstellen das nur die normalen schlosser mit L+R nochmal gespielt werden können und nicht die fortress?

Wie kann ich das "Mario im Winscreen in "Error" umbenennen. (Dann dürfte ich alle "Mario" aus der rom haben hehe)

Könnt ihr mir vll auch noch gute und einfach einzufügbare bosse empfehlen?!?
Mein Streaming-Kanal! <!-- m --><a class="postlink" href="http://www.hitbox.tv/Err0rLP">http://www.hitbox.tv/Err0rLP</a><!-- m --> Auch mit SMW-Hackingstreams!

Meine YouTube-Kanäle :
----------------------------------------
Err0rLP
TrashErr0r
ReUploadErr0r
SMW-Hack-Kanal zu Err0r's Adventure
geschrieben am 05.07.2011 15:38:14
( Link )
Zitat von LPErr0r:
Hey Leute hab mal mehrere Fragen:

Kan man in der OW so einstellen das nur die normalen schlosser mit L+R nochmal gespielt werden können und nicht die fortress?


bezweifle ich mal starck das man extra dafür auch noch was eingebaut hat oder das es eienn patch dafür gibt

Zitat von LPErr0r:
Hey Leute hab mal mehrere Fragen:

Könnt ihr mir vll auch noch gute und einfach einzufügbare bosse empfehlen?!?


"Mouser" boss
"larry boss" muss man aber in der asm datei zuordnen als welche nummer man die drei projektil sprites eingefügt hat
"Blargg Boss v1.1"

das sind nur ein paar mit srg+f kann man ganz einfach locker 60 bosse finden
nur mal so als tipp, wenn du mit dem installieren mit bossen nicht so klar kommst, schau mal in die asm datei des jeweiligen boses oder ins textdokument falls eins vorhanden ist
geschrieben am 05.07.2011 15:46:58
( Link )
Zitat von benvvv:

"Mouser" boss
"Blargg Boss v1.1"

Wehe du fuegst die 2 ein! DIE SIND SOWAS VON UEBERBENUTZT!

Hier eine Liste:
http://www.smwcentral.net/?p=viewthread&t=33922
Brutal Mario ist out.Spielt mal SMW FreedoMN,1Updudes-Hacks,The Devious Four Chronicles oder Chomps Attacke!
geschrieben am 05.07.2011 16:35:40
( Link )
ich hab jetzt schon lakitu und diesen komischen koopa das immer auf den boden haut
aber für nen berg bzw himmelschloss brauch ich als nächstes was..

und es gibt echt keine lösung für das Castle und fortress problem???
ich würde die Fortress nämlich gern als bonuslevel nutzen und das man da nur einmal rein kann.

auserdem hab ich ja nocht ie frage gehabt mit dem "Mario im finish bzw. winscren wie ich das änder in "Error"

bitte dankeschön
Mein Streaming-Kanal! <!-- m --><a class="postlink" href="http://www.hitbox.tv/Err0rLP">http://www.hitbox.tv/Err0rLP</a><!-- m --> Auch mit SMW-Hackingstreams!

Meine YouTube-Kanäle :
----------------------------------------
Err0rLP
TrashErr0r
ReUploadErr0r
SMW-Hack-Kanal zu Err0r's Adventure
geschrieben am 05.07.2011 17:40:15
( Link )
Zitat von LPErr0r:
und es gibt echt keine lösung für das Castle und fortress problem???
ich würde die Fortress nämlich gern als bonuslevel nutzen und das man da nur einmal rein kann.

Zu differenzieren ist nicht möglich, da beide im kaputten Zustand dasselbe Teil benutzen. Du könntest das Festungs-Teil entweder heil lassen oder ein anderes Teil für die "kaputt"-Animation nehmen.
Abiturklausuren (schamlos geklaut von spinatkuchen >_>):
Deutsch (26.3.): Alles reingebracht, was ich wollte, bereue nichts, insgesamt ganz gutes Gefühl (Ergebnis: 8 Punkte - Hm, hätte mit mehr gerechnet.)
Geschichte (1.4.): Fast nichts zum historischen Kontext gewusst, Rest war ganz okay, vielleicht noch 3, eher 4 (Ergebnis: 7 Punkte - Hey, das hätte schlechter sein können. Keine Nachprüfung!)
Mathe (2.4.): Viel besser als gedacht, bis auf 'nen kleinen Teil fast alles richtig, 1 ist gut möglich (Ergebnis: 14 Punkte - Yay!)
Englisch (9.4.): Sprachlich keine Sorgen, inhaltlich etwas mehr, gutes bis sehr gutes Gefühl (Ergebnis: 15 Punkte - Der Lehrer mag mich halt.)
Physik (mdl., 10.5.): Bis auf zwei winzige Wissenslücken sehr einfach und sehr gut gelaufen (Ergebnis: 13 Punkte - Sehr in Ordnung!)