Language…
5 users online: Brian94, Brutapode89, HD_DankBaron, monkey03297, TheOrangeToad - Guests: 238 - Bots: 278
Users: 64,795 (2,377 active)
Latest user: mathew

Official Portuguese Thread! v2.0 [Ajuda Em Português v2.0]

Link Thread Closed
Hmmmmm, talvez, mas tipo, eu vi la nos codigos de ASM uma parte de Graphic routine e ele falava pra nao tocar naquilo. Seria ali que eu precisaria mecher? Não queria desistir desse sprite tao facil, ele tem 1 monte de coisas legais, joga fogo ativa geradores e etc... Daria 1 bom chefe
Bom, já que você quer MESMO o sprite, a melhor coisa de se fazer é ler o leia-me do sprite e baixar alguns tutorais de ASM SPRITE. Mas é praticamente impossivel, configurar um sprite desse sem entender nada em ASM.
Então a melhor coisa de ser fazer é ler um bom tutoral de ASM em português. :)
GitHub - Twitter - YouTube - SnesLab Discord
é eu fiz isso só que com 1 ingles, nao achei 1 em portugues mas ta dando pro gasto, achei meio chatinha a parte de binario '-' mas valeu a intenção. brigadao pela ajuda


vitor vilela: Sendo franco, O Ultimate n00b Boss foi feito pra quem não sabe NADINHA de ASM.

undefinied3: Abra o arquivo asm e você verá isso:

Code
!Health 		= $0A   ; Health the sprite has. Can be anywhere between 0-99 (#$63 being 99). Don't be silly, though.
!FaceMario 		= $01 	; Initially face Mario?
				; 01 -> Yes. 00 -> No.

!SprAnimate		= $01	; Does your sprite animate? (i.e. flip between 2 frames)
				; 00 -> No, 01 -> Yes.

!SprAnimate2		= $00   ; Does your sprite animate for JSR Animate2? (In case you want to animate for other frames at a certain HP)
				; 00 -> No, 01 -> Yes.

!SprAnimate3		= $01   ; Does your sprite animate for Animate3?
				; 00 -> No, 01 -> Yes.

				; NOTE: If they animate, you specify the animation frames in the graphics defines below.

!FastAnimation		= $00   ; If you want your sprite to animate fast, make this an 01.
				; If you leave it as 00, the sprite will not animate fast (a bit slower). 
				
!DeathType = $01		; Type of Death:
				; 00 -> Fall down, as if killed by star
				; 01 -> Disappear in a puff of smoke.
				; 02 -> Explosion (bob-omb) style.

!DoFlash = $01			; Does the sprite "flash" when it gets hurt? Flashes through colors and cannot be in
				; Contact if it does.
				; 00 -> No, 01 -> Yes.

!ExitType = $02			; Type of exit when Boss dies:
				; 00 - Goal sphere style, normal exit (no walking).
				; 01 - Goal sphere style, secret exit (walking).
				; 02 - Teleport to whatever in the screen exit.
				; 03 - Fade to OW. (Exit specified below).
				; 04-FF - Nothing.

!TeleSFX = $05			; Sound to play when/if teleporting. ($1DFC)

!ExitSFX = $0B			; Type of music when boss is defeated (only applicable if !Exit is 0-2)

				; 0B - Boss defeated.
				; 0C - Normal SMW level complete music.

!OWExit = $02			; If using !Exit as option 03, fade to the OW..
				; 01 -> Normal exit. 02 = Secret Exit.

!NormalSprite = $02		; Normal sprite to generate (if generating one).
!CustomSprite = $00		; Custom sprite to generate.
				; NOTE: Generating a custom sprite that doesn't exist will (probably) result in a crash.

!Gravity = $10 			; Does your boss float in the air?
				; If so, leave it as 00. Otherwise, this is the gravity for the sprite.
				; Suggested value: any value from 00-50.
				; 10 = low gravity.
				; 50 = high gravity.

!Ledges = $01			; Does your sprite stay on ledges?
				; 00 -> No, 01 -> Yes.

SPRITE_TO_GEN: 			; For generating a random sprite, write the sprites here. Table must be 3 bytes!
 db $0D,$0F,$10			; Bomb, Goomba, ParaGoomba.

!INITSTAT = $01			; STATUS for above sprites. For stationary shells, make this 09 etc.
				; See $14C8,x in the RAM Map for all states.

!StunTimerA = $20		; How long the boss stuns the ground (only applicable if JSR'ing to Strong)
!StunTimerB = $40		; How long the boss stuns the ground (only applicable if JSR'ing to Strong2)


!JumpHeight = $D0		; New Jump height if posioned. $FF = mimimum, 80 = maximum.
				; Advisable - A0-E0

!PoTimer     = $03		; Time to poison Mario, in seconds. (If JSR'ing to Poision).

!Speed	    = $18		; Speed Mario gets when poisioned. 00 = No speed at all, 26 = Max running speed.	
				; Advisable values = 15-20.

!Col = $01			; Have a green face when Mario is poisioned? 00 -> No, 01 -> Yes.
				; NOTES:
				
				; IF NEAR THE STATUS BAR (TOP), THE COLORS REVERT TO NORMAL	
				; SAME IF THE PLAYER PAUSES.
				; THIS AFFECTS COLORS 86,89, 8C and 8E only.

!High = $45			; Color for Mario's face when poisioned.
!Low = $0E			; 4 digit RGB values, like this:
				; XXYY <- YY is !High, and XX is Low.
!High2 = $B6
!Low2 = $30			; Color for Mario's pants.

!FireballHealth = $01		; Does the sprite have fireball HP?
				; 00-> No, 01-> Yes.
				; NOTE-> For fireball HP, it's the normal HP * 3 (this is because it won't be easy	
				; .. to customise)

!CapeHealth = $00		; Does the sprite have cape HP? If so, it's normal health. (Not normal health*3).

!CapeFlight = $00		; Disable cape flight during the boss battle?
				; 00-> No, 01-> Yes.

!ExSound = $26 			; Sound to play when either a bone or hammer is thrown.

		        	; Uses $1DF9.

!PTimer  = $88  		; Timer for p-switch (if it's activated).

!FTimer  = $4F			; How long the sprite flashes for when hit.

!Dark	 = $0B			; Darkness to use when JSR'ing to Dark.
!Dark2   = $07			; Darkness to use when JSR'ing to Dark 2.

				; Can be from 00-0F.
				; 0F - Most brightness (also normal amount in SMW), 00 = Completely black.

!NoSpin = $01			; Should the sprite only be stompable if Mario spin-jumps on him?
				; Stompable like an eerie (bounces off Mario), but it doesn't reduce the boss's HP.
				; NOTE: If enabled, the sprite can be stomped on if using JSR ThrowHurt.
				; 00 -> No, 01-> Yes.

!Bouncy = $00			; "Push" Mario back after jumping on the sprite?
				; 00 -> No, 01-> Yes.

!RiseLoc = $00F0		; If making your sprite rise at a certain hitpoint (JSR Rise)
		 		; ..specify the height at which it should stop.

				; 0145 = 40% up of the screen.
				; 0130 = Halfway up the screen.
				; 0115 = 2/3 up screen.
				; 00F0 = Right below the status bar.
				; Must be 4 digits, otherwise the game will crash!

!RiseSpeed = $E0 		; Speed at which the sprite rises.
		 		; 80 - Extremely fast.
		 		; FF - Slowest.
		 		; Suggested: A0-E0.

!DropSpeed = $16 		; If making your sprite drop again, specify the speed..
		 		; ..at which it falls down.
	         		; 01 -> Slowest.
		 		; 7F -> Extremely fast.
		 		; Suggested values: 10-40.
		 		; NOTE, it stops when it touches the ground.

!PushMario = $22		; Speed to push Mario if the sprite touches him. (Only applicable if doing JSR Push).
!YPush     = $D5		; Upwards push movement if sprite hurts Mario.

;If making your sprite chase Mario..

MaxAcceleration: db $1A,$E6 	; Maximum speeds the sprite can chase.
MaxAccelerationY: db $10,$F0 	; Maximum speeds the sprite can chase.
AccelerationX: db $02,$FE	; Acceleration for X speed.
AccelerationY: db $04,$FC	; Acceleration for Y speed.

;If using messages, read below:

!Msg1T = $01			; Message one type. 01 = Message one, 02 = Message two.
!Msg2T = $01			; Same for the second message.
!Msg1L = $00			; Level of first message.
!Msg2L = $29			; Level of second message.

;These can be quite tricky. Up to level 24 = 24, but then it's 25 for level 101. 101 = 25, 102 = 26, 103 = 27, 104 = 28,
;105 = 29, 106 = 2A, 107 = 2B etc.

; Level 00 = 00
; Level 1A = 1A 
; Level 20 = 20
; etc.

; Level 24 = 24
; Level 101 = 25 ; After level 24 comes level 101, so that becomes 25.
; Level 102 = 26
; Level 103 = 27.
;================================================================
;Status Bar Stuff Here!
;================================================================

!A = $0A : !B = $0B : !C = $0C : !D = $0D : !E = $0E : !F = $0F : !G = $10 : !H = $11 : !I = $12 : !J = $13 : !K = $14
!L = $15 : !M = $16 : !N = $17 : !O = $18 : !P = $19 : !Q = $1A : !R = $1B : !S = $1C : !T = $1D : !U = $1E : !V = $1F
!W = $20 : !X = $21 : !Y = $22 : !Z = $23
!YMove = $1510
!InvTimer = $7F9989 ; Used for many sprite misc. stuff. Make it atleast 12 bytes.
;Don't touch that.

!ShowTiles	= $01		; Draw <Name>x<HP> on status bar? (E.g. Idiotx10)
				; 00 -> No. Anything else -> Yes.

NameTable:
	db !S,!M,!W,!C		; Name of boss. Write like this: !A for A, !F for F, !Q for Q etc.
				; MUST PUT THE ! AND COMMA (,) after each letter except the last one.
				; The db at the beginning is important, don't touch that.

				; db !F,!A,!I,!L will write "FAIL".

!NameSize = $03			; The number of letters you wrote for your boss -1. For example, If my boss was called
				; LOL, I would put a 02 here (3-1). (NOTE: must be 2 digit, so for 04 write 04, not 4)

!Position = $0EF9		; Position to draw tiles to.
				; Can be anywhere from $0EF9-$0F2F. See 1024's status bar for reference.

;================================================================
;Graphics Routine!
;================================================================

;Notes:

;This is a 32x32 Boss, so it has 4 tiles - Top Left, Top Right, Bottom Left and Bottom Right.
;If you didn't set your sprite to animate, it will NOT use the walking frames.

;By default, it will always animate between frames if it's set to animate.

;For each 16x16 tile (Top Right, Top Left etc.) , you specify the top-left part of that 16x16 tile. For example, the Mushroom
;Is a 16x16 tile. In the 8x8 editor it's tile 0x224. So you would right the last 2 digits - 24 for that and the whole 16x16 
;Gets drawn. Similarly, the fire flower graphic would be 26.

;NOTE: IF YOU CHOOSE "use second graphics page" in the cfg editor, it uses tiles from SP3 and SP4.

!TopLeft = $A0
!TopRight = $AB
!BottomLeft = $C0
!BottomRight = $C2

!WalkTopLeft = $E0
!WalkTopRight = $E2
!WalkBottomLeft = $E4
!WalkBottomRight = $E6

;If using more animation frames in the sprite, specify them here:
;NOTE: To use them, use JSR Animate2 and JSR Animate3 in your sprite STATES.

;For Animate2:

!TopLeft2 = $CC
!TopRight2 = $CE
!BottomLeft2 = $EC
!BottomRight2 = $EE

!WalkTopLeft2 = $6D
!WalkTopRight2 = $6D
!WalkBottomLeft2 = $6D
!WalkBottomRight2 = $6D

;For Animate3:

!TopLeft3 = $6D
!TopRight3 = $6D
!BottomLeft3 = $6D
!BottomRight3 = $6D

!WalkTopLeft3 = $CC
!WalkTopRight3 = $CE
!WalkBottomLeft3 = $EC
!WalkBottomRight3 = $EE

;================================================================
;Sprite X Speeds Are Configurable Here!
;================================================================

; Notes:
; If your sprite has 6HP, you need to write to the first 7 values of the table only (00-06), if it has 3 HP, write to the first 4 values of the table etc.
; Slowest speed is 01 and fastest is 7F. It's recommended to not go higher than 25 as it gets very fast from there onwards.
; 00 is stationary i.e. the sprite doesn't move.
; First value in the table is for 00 HP, last value is for 99 HP. Writing to values not used doesn't have any affect.

Tbl1R:  db $00,$11,$11,$12,$14,$10,$0F,$13,$18,$14,$10 ; 10
	db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 20
	db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 30
	db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 40
	db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 50
	db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 60
	db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 70
	db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 80
	db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 90
	db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 99

;===================;
;    Pointers	    ;
;===================;

MainPointer:
	LDA $1528,x
	JSL $0086DF
	dw STATE0 ; Dead state. Don't use for actions (ony RTS)
	dw STATE1 ; 01, last hit point.
	dw STATE2 ; 02, 2 hit points left ..
	dw STATE3 ; 03, 3rd last hit point.
	dw STATE4 ; 04, etc.
	dw STATE5 ; 05
	dw STATE6 ; 06
	dw STATE7 ; 07
	dw STATE8 ; NOTE! MAKE SURE YOU HAVE AS MANY DWS AS YOUR BOSS HP, OTHERWISE YOU MIGHT GET PROBLEMS!
	dw STATE9
	dw STATE10

STATE10:
STATE9:
STATE8:
STATE7:
STATE6:
STATE5:
STATE4:
STATE3:
STATE2:
STATE1:
STATE0:
JSR Move
RTS


Edite os valores de acordo com o que você quer no sprite, INCLUSIVE OS GRÁFICOS. Daí, configure os dw STATES (tem que ter o mesmo tanto do seu HP escolhido!), adicione tantas State labels quanto o HP e ponha seus pointers que existem no sprite. Suponhamos que eu quero um boss que solte martelos rápido, pule, tenha 3 de HP e é bem LENTO:

1)
Code
Tbl1R:  db $00,$11,$11,$12,$14,$10,$0F,$13,$18,$14,$10 ; 10
	db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 20
	db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 30
	db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 40
	db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 50
	db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 60
	db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 70
	db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 80
	db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 90
	db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; 99


Se o boss tem 3 de P, edite os 4 primeiros bytes ( o 1º tem SEMPRE que ser 00). Dicas:
Lento - 01 a 0F
Médio - 10 a 1F
Rápido - 1F a 25
Não passe de 25!

2) Mude o valor de !Health para 03

3) ponha nos pointers (dw STATES):

Code
dw STATE0
dw STATE1
dw STATE2
dw STATE3


e deixe como labels após o último dw:
STATE3:
STATE2:
STATE1:
STATE0:
RTS

4) Agora as ações. Como o boss que queremos solta martelos rapidamente e pula, colocamos como orientado abaixo dos STATES. Agora, pra esse nosso boss, temos:
STATE4:
STATE3:
STATE2:
STATE1:
STATE0:
JSR Move
JSR ThrowHurt
JSR Push
JSR HammerB
JSR JumpC
RTS

5)Insira com spritetool do ROMI.
6)Ponha seus PRÓPRIOS GRÁFICOS para o boss de acordo com o código. Se você botou, por exemplo, $00 para o Top-left tile, abra o 8x8 editor, vá a página 3 e edite os tiles 0x300 ($00) e os que ENCOSTAM DIRETAMENTE NELE (0x310, 0x301 e 0x311)! É um 16x16!
7) Selecione o sprite header pra 0E e teste!





Dream team (feed them, please):






Nossa cara valeu mesmo tava realmente precisando, acho que oque tava realmente faltando era esse sprite header (que eu nem sabia que tinha que ser 0E!!!!) e os graficos. só que tenho mais uma perguntinha que eu não entendi, tem uma parte que fala assim:

Code
SPRITE_TO_GEN: 			; For generating a random sprite, write the sprites here. Table must be 3 bytes!
 db $0D,$0F,$10			; Bomb, Goomba, ParaGoomba.


nessa parte eu pensei assim: $0D pra bomb, $0F pra gomba e $10 pra paragomba entao eu coloquei $0D. é claro que eu não tinha certeza se realmente isso ou nao mas quando eu fui ver se dava erro, DEU (tinha que da xP) ai fiquei meio sem saber o que mais que poderia ser ali, sera que voce poderia me ajudar? queria colocar bomb pra ser gerado.

EDIT3:

Consegui terminar. só que agora o problema é que o jogo da pal quando eu encosto no bloco |-O podem me ajudar denovo? aqui esta o codigo final do bloco:

Code
JMP Return : JMP MarioAbove : JMP Return : JMP Return : JMP Return : 
JMP Return : JMP Return
;===================================================================
;===================================================================

MarioAbove:
LDA $7E0076	;first we load the address of the movements of mario
CMP #$00	;if it is going to right (00)
BEQ ChangeL	;he will walk to the left (01)
CMP #$01	;and vice versa
BEQ ChangeR	;
RTS

ChangeL:
LDA #$01
STA $7E0076
RTS

ChangeR:
LDA #$00
STA $7E0076
Return:
RTS


era pra funcionar assim:

quando o mario estivesse em cima do bloco, os controles dele eram invertidos por exemplo se ele apertasse para a esquerda, ele iria para a direita, se apertasse pra direita ia pra esquerda, mas eu nao nem encostar no bloco e o jogo ja trava tudo, oque esta errado no codigo?


undefinied3:

na label SPRITE_TO_GEN, os três valores são os que aparecem na janela de adicionar sprites do LM. Exemplo: Koopa verde sem casca é $00, chave é $80...

2)Seu bloco deverá ser mais ou menos assim:



Code
JMP Return : JMP Above : JMP Return : JMP Return : JMP Return : JMP Return : JMP Return

LDA $15       ;RAM do controle
AND #$02      ;Se o Mario estiver indo pra esquerda...
BNE GoRight
AND #$01      ;Se o Mario estiver indo pra direita...
BNE GOLeft
RTL

GoRight:
LDA #$01
TSB $15
TSB $16
LDA #$02
TRB $15
;TRB $16
RTL

GoLeft:
LDA #$01
TRB $15
;TRB $16
LDA #$02
TSB $15
;TSB $16
RTL

Return:
RTL






Dream team (feed them, please):






Valeu, mas na parte do SPRITE_TO_GEN: eu tenho que colocar 1 valor entre aqueles que mostram na tabela ou qualquer 1 do lunar magic, ou tipo assim, se eu quiser colocar qualquer 1 do lunar magic eu tenho que acrescentar o numero do sprite naquela tabela e eu posso usa-lo, porque na verdade naum era nenhum daqueles que eu queria, mas o bomb seria melhor pra mim.


Quakquer um do Lunar Magic, mas de preferência, mos de 00-99. Se quiser, por exemplo, que se solte um casco vermelho, bote $05 e em INITSTAT coloque $0A.





Dream team (feed them, please):






Pessoal, nao estou conseguindo instalar um patch (chamado OW ExAnimation). Quando vou usar o Xkas (Xkas Simple revX), aparece um erro:
Code
error: (caminho): line 92: file not found [incbin anigfx.bin]
Originally posted by Lunatic Wolf
Pessoal, nao estou conseguindo instalar um patch (chamado OW ExAnimation). Quando vou usar o Xkas (Simple Xkas revX), um erro aparece:
Code
 erro: (caminho): Linha 92: file not found [anigfx.bin incbin] 


Você esqueceu de colocar o anigfx.bin junto com o patch, ou esse tipo de Xkas, não suporta multiplos arquivos.
GitHub - Twitter - YouTube - SnesLab Discord
coloquei o anigfx.bin na mesma pasta q os arquivos, tentei todo o tipo de xkas, mas mesmo assim nao estou conseguindo.
@Lunatic Wolf - Simple Xkas RevX e não Xkas alguns outros como o comando incbin tão Noobish Noobsicle fez alguma coisa sobre isso e ele fez galinha Xkas GUI que dosent dar um erro com o comando incbin mais.

Xkas GUI download aqui


Hacks I Support:


Originally posted by Fourpify
@Lunatic Wolf - Simple Xkas RevX e não Xkas alguns outros como o comando incbin tão Noobish Noobsicle fez alguma coisa sobre isso e ele fez galinha Xkas GUI que dosent dar um erro com o comando incbin mais.

Xkas GUI download aqui

Mas eu acho que o Xkas GUI também acontece isso... :| Quando fui aplicar o Patch DSX.ASM + a correção, o programa parou de funcionar e estragou o meu hack :( . É melhor usar o velho Xkas...
Até agora nao entendi pq o tradutor escreveu "galinha"!!!
Realmente eu consegui instalar o patch com o Xkas GUI. Obrigado pela ajuda vitor vilela e Fourpify.
@vitor vilela - Alguns patch arent compatíveis entre si, uma vez que ambas as vezes cortar o mesmo RAM Endereço

@Lunatic Wolf - Seu Bem-vindo


Hacks I Support:




Originally posted by Fourpify
@vitor vilela - Alguns patch arent compatíveis entre si, uma vez que ambas as vezes cortar o mesmo RAM Endereço

@Lunatic Wolf - Seu Bem-vindo




@vitor vilela - Alguns patches não são compatíveis entre si, já que às vezes usam o mesmo endreço RAM

@Lunatic Wolf - Seja bem-vindo





Dream team (feed them, please):






@Manuz: Obrigado, mas eu acho q ele queria dizer "de nada", mas isso n vem ao caso.

A propósito, eu estava criando um player, mas acontece isso:

Originally posted by Lunatic Wolf
@Manuz: Obrigado, mas eu acho q ele queria dizer "de nada", mas isso n vem ao caso.

A propósito, eu estava criando um player, mas acontece isso:



Eu não entendi nada, essas telas, poderia me explicar mais detalhado?

GitHub - Twitter - YouTube - SnesLab Discord


Você esqueceu de editar uma PARTEZINHA de nada do GFX00...





Dream team (feed them, please):






Originally posted by Fierce Deity Manuz OW Hacker
Você esqueceu de editar uma PARTEZINHA de nada do GFX00...


Aaa, agora que eu reparei, desculpa...
É que o Mario também tem partes no GFX00.

Veja! :




Tem que editar essas partes também :D
GitHub - Twitter - YouTube - SnesLab Discord
Link Thread Closed