Overworld-Life-Counter

geschrieben am 17.07.2013 9:52:20
( Link )
Ich bin schon die ganze Zeit am überlegen wie ich den Lifes-Counter auf der OW im ExExOWLevelNames-Patch löschen kann, anstatt ihn nur zu verschieben. (Ich weis das auf SMWC in der ROM-Adress steht, das man ihn auf 8B (?) setzten muss.) Code:
Spoiler anzeigen
;CHANGE THIS TO A FREE ADDRESS BEFORE USE!
!freeSpace = $1B8000

lorom
header


org $05DBC9 ; Move lives counter to the bottom of the OW
dw $7B93 ; This position value works as explained in the Readme,
; so you can easily change it if you want to

org $0485CF ; Remove player image from the overworld
NOP #4

org $04A530 ; Remove the x next to the lives counter
db $FE


Zitat
Der farbige Teil hier muss sozusagen umgeändert werden, nur bin ich irgendwie mit ASM zurzeit komplett überfordert und bekomms nicht auf die Reihe..


; Note: This only moves the lives counter to the bottom,
; but you might also want to put a "Lives:" text or something
; next to that using Terra Stripe.



; The block of code below is made by Alcaro
;NEW CODE START
org $03BB20
ASL #2 ;A*=4;
STA $00 ;tmp0=A ;//original*4
ASL #1 ;A*=2;
STA $02 ;tmp2=A ;//original*8
ASL #1 ;A*=2 ;//original*16
CLC
ADC $00 ;A+=tmp0 ;//original*20 (16+4)
CLC
ADC $02 ;A+=tmp2 ;//original*28 (16+4+8)
NOP #2 ;waste the extra freespace
;NEW CODE END


;The rest is made by Smallhacker
org $03BB30
ASL
org $03BB37
JML levelNameHack

org !freeSpace
db "STAR"
dw RATS_End-RATS_Start
dw RATS_End-RATS_Start^#$FFFF
RATS_Start:

levelNameHack:
TAX
LDA $837B
TAY
CLC
ADC #$0038 ; Length
STA $02
CLC
ADC #$0004
CLC
ADC #$0038 ; Length
STA $00
CLC
ADC #$0004
STA $837B
LDA #$3700 ; Length 2
STA $837F,y
LDA #$6250 ; Position
STA $837D,y
SEP #$20
- JSR +
CPY $02
BCC -
REP #$20
LDA #$3700 ; Length 2
STA $8383,y
LDA #$8250 ; Position
STA $8381,y
INY
INY
INY
INY
SEP #$20
- JSR +
CPY $00
BCC -

JML $03BB69
+ LDA.l NameData,x
STA $8381,y
LDA #$39
STA $8382,y
INY
INY
INX
RTS

NameData:


Wäre toll wenn mir jemand helfen könnte.
______________________________________
Ich war der Beste in Mathe; bis die Zwei kam: 0001,0010,0011,0100,0101,0110,0111,1000..

01000100 01001111 01001101 01001001 01001110 01001001 01001011
geschrieben am 17.07.2013 12:45:05
( Link )
"This position value works as explained in the Readme"

Was genau steht denn in der Readme?
-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 17.07.2013 13:06:34
( Link )
In der ReadMe steht wie man den Counter verschiebt.

Spoiler anzeigen
This is a modified version of Smallhacker's
"Extended OW Level Names" patch. As the name
implies, it allows for longer level names on
the overworld. The original version made it
possible to use 38 characters, while this one
allows up to 56! To make this work, however,
you have to get rid of the lives counter.
I included a little code that moves it to the
bottom of the overworld and replaces the
character image with a "Lives" text. You might
want to use Terra Stripe to add a "Lives:" text
or something though.

IMPORTANT: For this patch to work properly, you
MUST have saved the overworld and/or the level names
in Lunar Magic at least once! LM's ASM hacks
are required for the patch to work.

As stated above, most of the code was made by
Smallhacker and Alcaro. The only thing I did
was requesting it and to moving the lives counter.


Just in case you want to change the position of
the level names (move them to the bottom or
something), this is how you do it:

1. Start with the number 5000 (Hex).
(5000 = top left corner of the screen)
2. Adding 20 to that number moves the text
down one line, adding 1 moves it one
tile to the right. (Still all in Hex.)
Example: to move the text 3 lines down
and 2 tiles right, you would add 60
and 02 to 5000, resulting in 5062.
3. Swap the two bytes.
(Ex.: 1234 becomes 3421, 5062 becomes 6250.)
4. Put the resulting number in the first line
that says "Position" after it.
5. Repeat steps 1-3 for the second line of text
(you'll usually want to just add 20 = one line down).
6. Put that number in the second "Position" line.
______________________________________
Ich war der Beste in Mathe; bis die Zwei kam: 0001,0010,0011,0100,0101,0110,0111,1000..

01000100 01001111 01001101 01001001 01001110 01001001 01001011
geschrieben am 17.07.2013 13:54:39
( Link )
Achso. Den Life Counter bekommst du alleine über diesen orangenen Code auch gar nicht weg, weil der ja tatsächlich nur für die Position zuständig ist. Da musst du noch irgendeinen anderen Hex-Edit einfügen. Weiß aber jetzt auf Anhieb nicht genau, wo sich der jeweilige Code in der ROM befindet. Jedenfalls müsste man nur den Code finden, wo der Life Counter gezeichnet wird, und diesen per NOP weglöschen.
-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 17.07.2013 19:27:42
( Link )
Zitat
2DDF2 | $05:DBF2 | 1 byte | Overworld border | [8B] Change to 6B to remove the OW life counter on the OW. Use with $04A530 (0x22730).


So steht es zumindest in SMWC, Ahnung hab ich aber grad keine und viel zu viel Stress..
______________________________________
Ich war der Beste in Mathe; bis die Zwei kam: 0001,0010,0011,0100,0101,0110,0111,1000..

01000100 01001111 01001101 01001001 01001110 01001001 01001011
geschrieben am 17.07.2013 19:51:31
( Link )
Ja, der sollte doch eigentlich gehen?
geschrieben am 17.07.2013 20:51:52
( Link )
Ich weis nur nicht wie ich die Value change weil ich mich seit längerer Zeit nicht mit ASM abgegeben habe und keine Ahnung habe wie ich das zusammenstückel..sonst würde ich euch ja garnicht nerven..:/
______________________________________
Ich war der Beste in Mathe; bis die Zwei kam: 0001,0010,0011,0100,0101,0110,0111,1000..

01000100 01001111 01001101 01001001 01001110 01001001 01001011
geschrieben am 17.07.2013 22:30:41
( Link )
Entweder das hier, oder das hier:

Code
header
lorom
org $05DBF2
RTL
geschrieben am 19.07.2013 15:29:19
( Link )
Ich hab mich mal wieder angestellt wie der letzte Mensch, danke (:
______________________________________
Ich war der Beste in Mathe; bis die Zwei kam: 0001,0010,0011,0100,0101,0110,0111,1000..

01000100 01001111 01001101 01001001 01001110 01001001 01001011