darknil
-
Content count
21 -
Joined
-
Last visited
-
Days Won
6
Posts posted by darknil
-
-
Updated stop code, replaces the original entirely:
hirom
org $c2265b
jsr $3c04 ; old rippler space
org $c23c04
pha ; save A
lda $3330,x
and #$EF
sta $3330,x
pla
ora #$80
xba
rts -
New status text code:
hirom
org $c14587
;At end of routine: bit 0 = Regen, Bit 1 = Rerise, Bit 2 = Sap
clc
lda $2ebe,x ; status effect 2
lsr #3 ; shift to bit 3
ora $2ebf,x ; status effect 3
ora $2ec0,x ; status effect 4
lsr ; index
and #$07 ; filter out unneeded bits
rtspadbyte $FF : pad $c145b3
; $20-$23 = Regen
; $24-$25 = Sap
; $20, $26-$28 = Rerise
org $c2ade1
db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; nothing
db $20,$21,$22,$23,$FF,$FF,$FF,$FF,$FF,$FF ; Regen
db $20,$26,$27,$28,$FF,$FF,$FF,$FF,$FF,$FF ; Rerise
db $20,$21,$22,$23,$20,$26,$27,$28,$FF,$FF ; Regen, Rerise
db $24,$25,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; Sap
db $82,$87,$84,$80,$93,$84,$91,$FF,$FF,$FF ; Sap, Regen
db $24,$25,$FF,$20,$26,$27,$28,$FF,$FF,$FF ; Sap, Rerise
db $82,$87,$84,$80,$93,$84,$91,$FF,$FF,$FF ; Sap, Rerise, Regenorg $c481c0
db $F0,$E0,$F8,$90,$DB,$93,$FF,$E4,$F7,$A7,$FF,$94,$DF,$93,$DB,$00
db $00,$00,$00,$00,$9C,$18,$FF,$A5,$F7,$25,$BF,$1D,$DF,$84,$DE,$18
db $00,$00,$00,$00,$EF,$CA,$FF,$2D,$FF,$C9,$ED,$09,$FD,$E9,$FD,$00
db $00,$00,$00,$00,$00,$00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$00
db $70,$70,$F0,$80,$C3,$83,$F7,$64,$7E,$14,$1E,$14,$FF,$E3,$F3,$00
db $00,$00,$00,$00,$9E,$1C,$DF,$92,$DB,$92,$DF,$9C,$FE,$50,$78,$10
db $00,$00,$03,$02,$BF,$28,$FF,$B2,$FB,$22,$33,$22,$F3,$A2,$F3,$00
db $00,$00,$00,$00,$7B,$73,$FF,$84,$77,$67,$7F,$14,$FF,$E3,$F3,$00
db $00,$00,$00,$00,$80,$00,$C0,$80,$C0,$00,$00,$00,$C0,$80,$C0,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00- 1
-
Status aura cycling code; this still has a delay between cycles, which is annoying. if anybody can sort that out, it'd be appreciated. aside from that though, it seems to work fine.
hirom ; don't change thisorg $C12E4F ; location in v1.0
C12E4F: BRA reset_rotation ; $2Borg $C12E5C ; location in v1.0
C12E5C: BRA reset_rotation ; $1Eorg $C12E69 ; location in v1.0
C12E69: BRA reset_rotation ; $11C12E6B: LDA $2EA9,Y ; get current outline rotation
main_loop:
C12E6E: BIT $38 ; check against current status
C12E70: BNE set_colour ; branch if a match was found
C12E72: LSR A ; check next status
C12E73: ADC #$00 ; maintain wait bit
C12E75: STA $2EA9,Y ; update outline colour rotation
C12E78: CMP #$20 ; loop over 6 statuses
C12E7A: BCS main_loopreset_rotation:
C12E7C: LDA #$80 ; no match found, reset to Rflectupdate_rotation:
C12E7E: STA $2EA9,Y
C12E81: RTSset_colour:
C12E82: AND #$E0 ; clear wait bit
C12E84: JSR $1A0F ; v1.0 or v1.1
C12E87: LDA.l outline_color_table,X ; get outline colour
outline_color_table:
C12E8B: BRA outline_control ; implementDB $04 ; Slow
DB $03 ; Haste
DB $07 ; Stop
DB $02 ; Shell
DB $01 ; Safe
DB $00 ; Rflectrotate_outline:
C12E93: LDA $2EA9,Y ; current outline colour rotationrotation_loop:
C12E96: LSR A ; move one step forward
C12E97: BCS reset_rotation ; if wait bit set, clear it, reset and exit
C12E99: AND #$FC ; keep 6 bits
C12E9B: BEQ reset_rotation ; if all cleared, reset and exitcheck_status:
C12E9D: BIT $38 ; check current status
C12E9F: BEQ rotation_loop ; loop until match found
C12EA1: BRA update_rotation ; update outline rotation
rtsC12EA3: NOP
C12EA4: NOP
C12EA5: NOP
C12EA6: NOP
C12EA7: NOP
C12EA8: NOP
C12EA9: NOP
C12EAA: NOP
C12EAB: NOP
C12EAC: NOP
C12EAD: NOP
C12EAE: NOP
C12EAF: NOP
C12EB0: NOP
C12EB1: NOP
C12EB2: NOPexit:
C12EB4: RTSorg $C12EC3 ; location in v1.0
outline_control:
C12EC3: PHA
C12EC4: LDA $0E
C12EC6: STA $2C
C12EC8: PLA
C12EC9: PHA
C12ECA: LDA $2C
C12ECC: AND #$03
C12ECE: TAX
C12ECF: LDA.l $C2E3AA,X ; v1.0 or v1.1
C12ED3: CLC
C12ED4: ADC $2C
C12ED6: STA $36
C12ED8: AND #$3C
C12EDA: LSR A
C12EDB: STA $2C
C12EDD: STZ $2D
LDA $36
ASL A
ASL A
BCC colour_transition
LDA #$1F
SBC $2C
STA $2Ccolour_transition:
LDA $2C
CMP #$1F
BNE continue_control
JSR rotate_outline
BRA continue_control
NOP
continue_control:org $C13043
LDA $2EBF,xorg $C1FFE5
NOP #7org $C2307D ; location in v1.0 or v1.1
C2307D: PHX ; preserve party member index
C2307E: LDA $FE ; get row
C23080: STA $3AA1,X ; save to special properties
C23083: LDA $3ED9,X ; preserve special sprite
C23086: PHA
C23087: LDA $05,S ; get loop variable
C23089: STA $3ED9,X ; save to roster position
C2308C: TDC
C2308D: TXA
C2308E: ASL A
C2308F: ASL A
C23090: ASL A
C23091: ASL A
C23092: TAX
C23093: LDA #$06 ; 7-iteration loop
C23095: STA $FE ; initialize loop counter
C23097: PHY ; preserve Y-loop indexdisplay_init_loop:
C23098: LDA $1601,Y ; get normal sprite & name charactersset_battle_sprite:
C2309B: STA $2EAE,X ; store to display variables
REPLACE3: ; mass replacement, nothing after this
C2309E: INX
C2309F: INY
C230A0: DEC $FE
C230A2: BPL display_init_loop
C230A4: PLY ; restore Y-loop index
C230A5: PLA ; restore special sprite
C230A6: CMP #$FF ; is special sprite null?
C230A8: BEQ init_outline_rotation ; if not...
C230AA: STA $2EA7,X ; ...overwrite spriteinit_outline_rotation:
C230AD: LDA #$81 ; Rflect status, wait bit
C230AF: STA $2EA2,X ; initialize outline rotation
C230B2: LDA $03,S ; get character ID
C230B4: STA $2EBF,X ; save it
C230B7: CMP #$0E ; is it Banon or higher?
C230B9: REP #$20 ; 16-bit A
C230BB: TAX ; move to X- 2
-
Fix for Quartrstaff and Doomstick:
hirom
org $c2381d
jsl targetting
org $c4b9d0
targetting:
lda #$02 ; auto-crit
bit $b3 ; check if true
bne end ; ignore if not
lda $b6 ; spell #
cmp #$17 ; is it quartr?
beq change_q ; branch if so
cmp #$0d ; is it doom?
beq change_d ; branch if so
end:
lda #$40 ; original targetting values
sta $bb ; targetting RAM
rtl
change_d:
lda #$12
sta $b6
change_q:
lda #$6e ; change targetting
sta $bb ; targetting RAM
lda #$40 ; set to randomize (why? this shouldn't be necessary. shitty code.)
tsb $ba ; apply
stz $11a9
stz $341a
rtl- 1
-
"spell dot" hack. BTB supposedly has the dots drawn in the VWF area. make sure you draw in a space as well, or it'll look crunched.
Spoilerhirom
org $c1602e
nop #3
org $c16031
lda $e6f567,x- 2
-
This is the shop hack. It's a mess, and I think some unnecessary stuff is still in it.
Spoilerhirom
table ff6_snes_menu_a.tbl,rtlorg $c388ce
ldx #$7B65
org $c388da
ldx #$7BE5
org $c388e6
ldx #$7C65
org $c388f2
ldx #$7CE5org $C38D69
dw ele_resist
dw ele_absorb
dw ele_nullify
dw ele_weaknessorg $c3baba
nop #3org $c38746
;Fork: Draw offensive properties
C38746: JSR $879C ; Draw Bat.Pwr
jsr gear_stats_evasion_attack_elements
jsr load_item_index
and #$80
jsr check_text_color
ldy #$8e30
jsr process_text
jsr load_item_index
and #$40
jsr check_text_color
ldy #$8e38
jsr process_text
jsr load_item_index
and #$02
jsr check_text_color
ldy #$8e26
jsr process_text
rts
padbyte $FF : pad $C38795
org $c3b4bd
jsr handle_shop_stats
rts
check_nmi:
jsr $1368 ; NMI
jsr $7fd9 ; draw name (from BAC9)
rts
padbyte $FF : pad $c3b4e6org $c3b8c4
jsr clear_screen_bg2
nop #6
org $C3B95a
jsr clear_screen_bg3
C3B963: JSR $BFD3 ; Draw title
C3B969: LDY #$C338 ; Text pointer
C3B96C: JSR $02F9 ; Draw "GP"
C3B96F: JSR $C2F2 ; Color: User's
C3B972: LDY $1860 ; Gold LBs
C3B975: STY $F1 ; Memorize it
C3B977: LDA $1862 ; Gold HB
C3B97A: STA $F3 ; Memorize it
C3B97C: JSR $0582 ; Turn into text
C3B97F: LDX #$7A33 ; Text position
C3B982: JSR $04AC ; Draw GP total
C3B985: RTSorg $c3b989
ldy #help_text
org $c3bac9
jsr check_nmi
org $c3bfd3
;draw shop title, define shop index
C3BFD3: JSR $C2F7 ; Color: Blue
C3BFD6: LDA $4212 ; PPU status
C3BFD9: AND #$40 ; H-Blank?
C3BFDB: BEQ C3BFD6 ; Loop if not
C3BFDD: LDA $0201 ; Shop number
C3BFE0: STA $211B ; Set matrix A LB
C3BFE3: STZ $211B ; Clear HB
C3BFE6: LDA #$09 ; Shop data size
C3BFE8: STA $211C ; Set matrix B
C3BFEB: STA $211C ; ...
C3BFEE: LDX $2134 ; Index product
C3BFF1: STX $67 ; Set shop index
C3BFF3: LDA $C47AC0,X ; Shop flags
C3BFF7: AND #$07 ; Title number
C3BFF9: ASL A ; Double it
C3BFFA: TAX ; Index it
C3BFFB: REP #$20 ; 16-bit A
C3BFFD: LDA $C3C00C,X ; Text pointer
C3C001: STA $E7 ; Set src LBs
C3C003: SEP #$20 ; 8-bit A
C3C005: LDA #$C3 ; Bank: C3
C3C007: STA $E9 ; Set src HB
C3C009: JMP $02FF ; Draw titleorg $c3c037
db $2f,$06,$00
org $c3c2e1
jsr buy_menu_exp
org $c3f850
gear_stats_evasion_attack_elements:
C38749: JSR $87EB ; Draw evasions
jsr $c2f7
C38750: LDY #$8E1D ; Text pointer
C38753: JSR $02F9 ; Draw "Attack"
C38756: jmp $88A0 ; Draw elements
check_text_color:
beq grey_text_color
user_text_color:
lda #$20 ; palette 0
bra store_tcolor
grey_text_color:
lda #$24 ; grey text
store_tcolor:
sta $29 ; color: user's
rts
load_item_index:
ldx $2134 ; item index
lda $d85013,x ; byte to look at
rts
process_text:
sty $e7
jsr $8795
rts
clear_screen_bg2:
jsr $6a28 ; clear bg2 map a
jsr $6a2d ; clear bg2 map b
jsr $6a32 ; clear bg2 map c
jsr $6a37 ; clear bg2 map d
ldy #shop_gear_window
jsr $0341 ; draw shop gear window
ldy #shop_gear_window_actors
jsr $0341 ; draw actors' window
ldy #shop_gear_weapon_name
jsr $0341
ldy #shop_gear_description
jsr $0341
clear_screen_bg3:
jsr $6a3c ; clear bg3 map a
jsr $6a41 ; clear bg3 map b
jsr $6a46 ; clear bg3 map c
jsr $6a4b ; clear bg3 map d
rts
draw_title_dupe:
jsr $02ff ; draw title
handle_shop_stats:
handle_buy_item_list:
lda #$10 ; reset/stop desc
tsb $45 ; set menu flags
jsr $0f39 ; queue text upload
jsr $1368
jsr $0f4d ; queue text upload 2
jsr $b8a6 ; handle d-pad
jsr check_stats
jsr $bc84 ; draw quantity owned
jsr $bca8 ; draw quantity worn
;Handle hold Y
shop_handle_y:
lda $0D
bit #$40 ; holding Y?
beq shop_handle_b ; branch if not
rep #$20 ; 16-bit A
lda #$0100 ; BG2 scroll position
sta $3b ; BG2 Y position
sta $3d ; BG3 X position
sep #$20 ; 8-bit A
lda #$04 ; bit 2
trb $45 ; set bit in menu flags A
jsr gear_desc
rts
;Fork: Handle B
shop_handle_b:
stz $3c
stz $3e
lda #$04
tsb $45
C3B4CD: LDA $09 ; No-autofire keys
C3B4CF: BIT #$80 ; Pushing B?
C3B4D1: BEQ shop_handle_a ; Branch if not
C3B4D3: JSR $0EA9 ; Sound: Cursor
C3B4D6: JMP $B760 ; Exit submenu;Fork: Handle A
shop_handle_a:
C3B4D9: LDA $08 ; No-autofire keys
C3B4DB: BIT #$80 ; Pushing A?
beq not_pushing_a
C3B4DF: JSR $B82F ; Set buy limit
C3B4E2: JSR $B7E6 ; Test GP, stock
not_pushing_a:
rtsbuy_menu_exp:
jsr $1368
jsr $c2f7 ; color: blue
ldy #text_vigor ; text: vigor
jsr $02f9 ; draw text
ldy #text_magic ; text: magic
jsr $02f9 ; draw text
ldy #text_stamina ; text: stamina
jsr $02f9 ; draw text
ldy #text_speed ; text: speed
jsr $02f9 ; draw text
ldy #text_def ; text: defense
jsr $02f9 ; draw text
ldy #text_mdef ; text: magic defense
jsr $02f9 ; draw text
ldy #text_eva ; text: evasion
jsr $02f9 ; draw text
ldy #text_meva ; text: magic evasion
jsr $02f9 ; draw text
ldy #text_bpow ; text: bat.pow.
jsr $02f9 ; draw text
jsr $bfc2 ; get item
rts
check_stats:
;jsr $1368 ; trigger NMI
pha
phx
phy
php
jsr $c2f2
jsr $bfc2 ; get item
C38699: JSR $8321 ; Compute index
C3869C: LDX $2134 ; Load it
C3869F: TDC ; Terminator
C386A0: STA $7E9E8D ; Set mod B3
C386A4: STA $7E9E8E ; Set mod B4
C386A8: REP #$20 ; 16-bit A
C386AA: LDA #$8223 ; Tilemap ptr
C386AD: STA $7E9E89 ; Set position
C386B1: SEP #$20 ; 8-bit A
C386B3: TDC ; Clear A
C386B4: LDA $D85010,X ; Stat mods LB
C386B8: PHA ; Memorize them
C386B9: AND #$0F ; Vigor index
C386BB: ASL A ; Double it
C386BC: JSR $8836 ; Draw modifier
C386BF: REP #$20 ; 16-bit A
C386C1: LDA #$82a3 ; Tilemap ptr
C386C4: STA $7E9E89 ; Set position
C386C8: SEP #$20 ; 8-bit A
C386CA: TDC ; Clear A
C386CB: PLA ; Stat mods LB
C386CC: AND #$F0 ; Speed index
C386CE: LSR A ; Put in b3-b6
C386CF: LSR A ; Put in b2-b5
C386D0: LSR A ; Put in b1-b4
C386D1: JSR $8836 ; Draw modifier
C386D4: REP #$20 ; 16-bit A
C386D6: LDA #$8241 ; Tilemap ptr
C386D9: STA $7E9E89 ; Set position
C386DD: SEP #$20 ; 8-bit A
C386DF: LDX $2134 ; Item index
C386E2: TDC ; Clear A
C386E3: LDA $D85011,X ; Stats mods HB
C386E7: PHA ; Memorize them
C386E8: AND #$0F ; Stamina index
C386EA: ASL A ; Double it
C386EB: JSR $8836 ; Draw modifier
C386EE: REP #$20 ; 16-bit A
C386F0: LDA #$82c1 ; Tilemap ptr
C386F3: STA $7E9E89 ; Set position
C386F7: SEP #$20 ; 8-bit A
C386F9: TDC ; Clear A
C386FA: PLA ; Stat mods HB
C386FB: AND #$F0 ; Mag.Pwr index
C386FD: LSR A ; Put in b3-b6
C386FE: LSR A ; Put in b2-b5
C386FF: LSR A ; Put in b1-b4
C38700: JSR $8836 ; Draw modifier
;draw defensive properties
C38703: LDX $2134 ; Item index
C38706: LDA $D85000,X ; Properties
C3870A: AND #$07 ; Get class
beq not_weapon ; branch if tool
C3870C: CMP #$01 ; Weapon?
C3870E: BEQ is_weapon ; Branch if so
cmp #$06 ; item?
beq not_weapon ; branch if so
C38710: LDA $D85014,X ; Defense
C38714: JSR $04E0 ; Turn into text
C38717: LDX #$83a1 ; Text position
C3871A: JSR $04C0 ; Draw 3 digits
C3871D: LDX $2134 ; Item index
C38720: LDA $D85015,X ; Mag.Def
C38724: JSR $04E0 ; Turn into text
C38727: LDX #$83bf ; Text position
C3872A: JSR $04C0 ; Draw 3 digits
ldy #bat_pow_dash
jsr $02f9
is_weapon:
tdc
ldx $2134 ; item index
lda $d85000,x ; properties
and #$07
cmp #$01
bne not_weapon
C3868E: LDA #$20 ; Palette 0
C38690: STA $29 ; Color: User's
C387AB: CMP #$51 ; Dice?
C387AD: BEQ hide_bpow ; Hide if so
ldx $2134
C387B3: LDA $D85014,X ; Bat.Pwr
C387B7: JSR $04E0 ; Turn into text
C387BA: LDX #$813f ; Text position
C387BD: JSR $04C0 ; Draw 3 digits
ldy #def_dash
jsr $02f9
ldy #mdef_dash
jsr $02f9
bra not_weaponhide_bpow:
LDY #wpn_unknown ; Text pointer
C387C3: JSR $02F9 ; Draw "???"
not_weapon:
jsr all_dashes
C387EB: REP #$20 ; 16-bit A
C387ED: LDA #$8321 ; Tilemap ptr
C387F0: STA $7E9E89 ; Set position
C387F4: SEP #$20 ; 8-bit A
C387F6: LDX $2134 ; Item index
C387F9: TDC ; Clear A
C387FA: LDA $D8501A,X ; Evasion mods
C387FE: PHA ; Memorize them
C387FF: AND #$0F ; Evade index
C38801: ASL A ; x2
C38802: ASL A ; x4
C38803: JSR $881A ; Draw modifier
C38806: REP #$20 ; 16-bit A
C38808: LDA #$833f ; Tilemap ptr
C3880B: STA $7E9E89 ; Set position
C3880F: SEP #$20 ; 8-bit A
C38811: LDX $2134 ; Item index
C38814: TDC ; Clear A
C38815: PLA ; Evasion mods
C38816: AND #$F0 ; MBlock index
C38818: LSR A ;
C38819: LSR A ;
C3881A: TAX ; Index it
C3881B: LDA $C38854,X ; Sign
C3881F: STA $7E9E8B ; Add to string
C38823: LDA $C38855,X ; Tens digit
C38827: STA $7E9E8C ; Add to string
C3882B: LDA $C38856,X ; Ones digit
C3882F: STA $7E9E8D ; Add to string
C38833: JSR $8847 ; Draw modifier; name and cleanup
REP #$20
lda #$810d ; tilemap ptr
sta $7e9e89
SEP #$20
jsr $bfc2 ; get item
jsr $c068 ; load item name
jsr $7fd9
plp
ply
plx
pla
jsr $bc92
rtsall_dashes:
ldx $2134
lda $d85000,x
and #$07
cmp #$06
bne skip_all_dashes
ldy #bat_pow_dash
jsr $02f9
ldy #def_dash
jsr $02f9
ldy #mdef_dash
jsr $02f9
skip_all_dashes:
rts
gear_desc:
lda $02
cmp $4B
bne gear_desc_end
jsr gear_desc2 ; build description tilemap for shop menu
jsr $b4e6 ; set description flags
jsr $b4ef ; load item description for buy menu
gear_desc_end:
lda $4b
sta $02
rts
gear_desc2:
C3A6F4: LDX #$7849 ; Base: 7E/7849
C3A6F7: STX $EB ; Set map ptr LBs
C3A6F9: LDA #$7E ; Bank: 7E
C3A6FB: STA $ED ; Set ptr HB
C3A6FD: LDY #$0CBC ; Ends at 30,19
C3A700: STY $E7 ; Set row's limit
C3A702: LDY #$0C84 ; Starts at 3,19
C3A705: LDX #$3500 ; Tile 256, pal 5
C3A708: STX $E0 ; Priority enabled
C3A70A: JSR $A783 ; Do line 1, row 1
C3A70D: LDY #$0CFC ; Ends at 30,20
C3A710: STY $E7 ; Set row's limit
C3A712: LDY #$0CC4 ; Starts at 3,20
C3A715: LDX #$3501 ; Tile 257, pal 5
C3A718: STX $E0 ; Priority enabled
C3A71A: JSR $A783 ; Do line 1, row 2
C3A71D: LDY #$0D3C ; Ends at 30,21
C3A720: STY $E7 ; Set row's limit
C3A722: LDY #$0D04 ; Starts at 3,21
C3A725: LDX #$3538 ; Tile 312, pal 5
C3A728: STX $E0 ; Priority enabled
C3A72A: JSR $A783 ; Do line 2, row 1
C3A72D: LDY #$0D7C ; Ends at 30,22
C3A730: STY $E7 ; Set row's limit
C3A732: LDY #$0D44 ; Starts at 3,22
C3A735: LDX #$3539 ; Tile 313, pal 5
C3A738: STX $E0 ; Priority enabled
C3A73A: JMP $A783 ; Do line 2, row 2help_text:
dw $791f : db "Hold Y for details.",$00
text_vigor:
dw $820d : db "Vigor",$00 ; +12 = $821f
text_magic:
dw $828d : db "Speed",$00 ; +12 = $829f
text_stamina:
dw $822b : db "Stamina",$00 ; +12 = $823d
text_speed:
dw $82ab : db "Magic",$00 ; +12 = $82bd
text_def:
dw $838d : db "Defense",$00 ; +12 = $819f
text_mdef:
dw $83ab : db "M.Def.",$00 ; +12 = $81bd
text_eva:
dw $830d : db "Evade",$00 ; +12 = $831f
text_meva:
dw $832b : db "M.Evade",$00 ; +12 = $833f
text_bpow:
dw $812b : db "B.Power",$00 ; + 12 = $813d
wpn_unknown:
dw $813f : db "???",$00
bat_pow_dash:
dw $813f : db "---",$00
def_dash:
dw $83a1 : db "---",$00
mdef_dash:
dw $83bf : db "---",$00
ele_resist:
dw $7B8D : db "Resist:",$00
ele_absorb:
dw $7C0D : db "Absorb:",$00
ele_nullify:
dw $7C8D : db "Nullify:",$00
ele_weakness:
dw $7D0D : db "Weakness:",$00;Window layout data
shop_gear_window:
dw $718B : db $1C,$06
shop_gear_window_actors:
dw $750B : db $1C,$06
shop_gear_weapon_name:
dw $708B : db $1C,$02
shop_gear_description:
dw $738B : db $1c,$04
- 2
-
stop immunity - reverses normal application effect with equipment. not thoroughly tested. may be buggy. also old. i made it years ago.
Spoilerhirom
org $c228c6
jsr remove_stop_from_equiporg $c22914
jsr equip_invert_stop
bra skip_skip
padbyte $ea : pad $c2291forg $c2291f
skip_skip:org $c26610
remove_stop_from_equip:
and #$EF
sta $3c6d,x
rtsequip_invert_stop:
sta $3330,x
pha
sep #$20
lda $D4
and #$10
eor #$ff
sta $3330,x
rep #$20
pla
eor $d2 ; equipment immunities
sta $331c,x ; vulnerable to whatever equipment doesn't
; block in immunity bytes 1 and 2
rts- 2
-
t-edition had to have a custom editor made for it, because literally *nothing* in it works in usME anymore
-
Hack to allow preview of equipment in shops.
ASM for synch: https://www.dropbox.com/s/6vvay7b6k4zdkza/gear_stats_BNW.asm?dl=0
- 7
-
There is an all-in-one either on ff6hacking or slickproductions.org. Not sure of its working state though. The problem with something like that is that so much has changed the disassemblies would only be barely relevent. Meltdown became a massive patchwork mess partially due to that. I also started on it before I understood the concept of building a hack, so I have a lot of things I can't fix now like text assignment and a weird black box on the overworld which I can't fix with any amount of map editing. I'm basically at the point that I can't conscientiously continue to work on it and produce it in the this state. I was also losing motivation due to balance issues, such as dealing with esper stat distribution (which is why I plan to simplify it to something closer to BNW, with two options per esper) and damage formulas being wonky. Other bugs were also frequently popping up as I worked.
- 1
-
I actually plan to release a few once they're cleaned up and made presentable. Natural Magic for the whole party was to be first on the list, but that needs rewritten entirely because it's horribly coded and unoptimized.
- 1
-
Frankly surprised there's still interest in this hack given the amount of time it's remained stagnant. Unfortunately I've discovered irrecoverable bugs, and my development cycle has become such a haphazard mess that I'm likely going to scrap it. I have ideas in mind for a replacement hack, utilizing a lot of the secondary mechanics I'd built for this, but using a different main mechanic (think SaGa). I'll make a thread for it and have this one closed once I have more hammered down. I can say there will be some major changes though. For instance: Elements will be recoded to utilize a % damage variable which can strengthen or weaken a spell's damage. Defense is also being recoded to produce diminishing returns at high numbers. I'm undecided what to do with espers. I may implement a stripped down version of Meltdown's esper system, which I'd kind of been wanting to do anyway.
- 1
-
At first it'll just be a label. We're spitballing bonus perk ideas for down the road.
-
-
Fix for the equip/relic stat display issue:
Headered: https://www.dropbox.com/s/2w43yk9xqoxe3ry/[h]Y_Equip_Fix.ips?dl=0
Unheadered: https://www.dropbox.com/s/uey0fudreae61ap/[n]Y_Equip_Fix.ips?dl=0
I'll need to send the updated file to Synchysi as well, since this patch moves some stuff that will otherwise just be useless.
- 3
-
We just discovered a game breaking bug with the quarterstaff and doomstick: the game outright crashes if they proc.
Headered fix: https://www.dropbox.com/s/c4igwepxtoetwb8/[h]BNW_1.8.5_quartrstaff_fix.ips?dl=0
Unheadered fix: https://www.dropbox.com/s/jxvkist3pj768jp/[n]BNW_1.8.5_quartrstaff_fix.ips?dl=0
- 4
-
PB's in a situation where its creators all have lives outside of hacking now and struggle to find the motivation or time to work on it on any regular basis. My project isn't too much younger than theirs, I believe.
-
Plz restore optimize. I don't know how to equip things.
- 3
-
I'm actually working on making space to expand the F1 targetting command's jump table. I've substantially expanded the miscellaneous command to include a lot of stat manipulation stuff, and have added a few conditionals, but that's it thus far.
-
Pretty clear that I am incapable of finishing projects, so this is probably dead. I may not even be alive to finish it soon anyway.
- 5
Brave New World 2.0 - Beta Thread
in Final Fantasy VI: Brave New World
Posted · Report reply
The damage display bug and the mystery item bug seem to be related. I think the subroutine being called at C2/63A9 may be incorrect.