Users browsing this thread: 1 Guest(s)
ASM Tasks

#21
Posts: 763
Threads: 83
Thanks Received: 55
Thanks Given: 7
Joined: Apr 2015
Reputation: 22
Status
Obliviscence
Thank you HatZen!

The plan is to get the OAM sorted out, but this is a good alternative should it not pan out as we are hoping. Good work.

A couple things:

Would it have killed you to set all new bits on the gear for us!?! (j/k) ...It's obviously not a real problem, I just thought everything was broken at first. I'll get it set properly later...

That being said, changing equipment in-battle is still checking the wrong bit for merit award. I set the new bits on just a couple pieces of gear, and everything looked great in the menu, but in battle it still allowed all the old "heavy gear", even though I hadn't set the new bit on those.

As far as I've been able to test, it looks like everything else is working as intended.



Has anyone else been able to make progress on their topics?
  Find
Quote  

#22
Posts: 3,966
Threads: 279
Thanks Received: 234
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
I've done the portraits: http://imgur.com/a/mlFh2 (top screenshot is just a coincidence, it should be more glitchy...)

Portraits and palettes expanded take about $4500 bytes in size. I had to modify event command 37 (limit), otherwise nothing really hard. There is about 6 index we can place the two chars in the C3 tables, spots $15 and $16 are the firsts available. This mean somehow we'll need them to have graphics $15 and $16 for their sprites too. I haven't looked into this. Portraits follow the $1601 index. I have not tested imp on character $0E and $0F.

Code:
hirom
;header

;event command 37
org $C09C9A
CPY #$032E  

org $C36C41
LDA $F241A0,X  ; Portrait color

;Set to upload healed member's portrait
org $C36EBF
LDA #$F2       ; Bank: F2

org $C36EF:
ADC #$0000     ; Add base adr


;Portrait palette assignments
org $C36F15
db $13          ; 15: Terra (unused; Kefka)
db $14          ; 16: Terra (unused; Gestahl)


;Pointers to portrait graphics
org $C36F45
dw $3B60        ; 15: Terra (unused; Kefka)
dw $3E80        ; 16: Terra (unused; Gestahl)

org $C37003
LDA $F20000,X   ;portraits
  Find
Quote  

#23
Posts: 3,966
Threads: 279
Thanks Received: 234
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
Shall we move Gesthal spritesheet and some NPC sheets after to make room for the two new sheets? This way they would be $16 and $17. I remember Catone speaking about how the game loads all the battle sprites before each fight, I'm not sure if it loads the first $16 sheets, if so we will need more RAM or we'll need to load selectively like skipping Gogo / Umaro in WOB and Ghost / Leo in WOR... I'll study this today. If anyone has info on the subject though it will be appreciated.
  Find
Quote  

#24
Posts: 763
Threads: 83
Thanks Received: 55
Thanks Given: 7
Joined: Apr 2015
Reputation: 22
Status
Obliviscence
Battle should work fine so long as you expand the pointer list. On the old 15th Man project I had Iris as sprite #$4E or something like that.
  Find
Quote  

#25
Posts: 3,966
Threads: 279
Thanks Received: 234
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
Ok, I'm really tempted as putting their sheets after kefka ($16 and $17) to keep things orderly. I don't mind changing 49214 NPC GFX index in FF6LE after for the index shifted (as much as it will take to make room for 2 full sheets). Btw this thread is making my life easy: https://www.ff6hacking.com/forums/showth...p?tid=2837
  Find
Quote  

#26
Posts: 763
Threads: 83
Thanks Received: 55
Thanks Given: 7
Joined: Apr 2015
Reputation: 22
Status
Obliviscence
Gestahl needs to stay put. He's called into battle once, and his "slot" gets used for the green soldier in certain instances I *think*. I would do $17 and $18. Keep in mind, also, this means finding anytime these sprites are defined in the event code as well, tho hopefully there aren't too many of those. But keeping it in-line would be ideal. Thank you!
  Find
Quote  

#27
Posts: 3,966
Threads: 279
Thanks Received: 234
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
(10-07-2016, 08:55 AM)B-Run Wrote: Gestahl needs to stay put. He's called into battle once, and his "slot" gets used for the green soldier in certain instances I *think*. I would do $17 and $18.

I did this. However Wedge (either $17 or $18) appears as the green soldier in battle... Do you know where this is set? I've looked in C1 in vain...

Otherwise I got a working prototype that work. The battle intro "fix" will let us copy a battle intro of an existing characters for Iris and char 16. I tried to shift all the battle event data of 6 byte to have a dummy pointer then $17 and $18 but the game did not liked that, even after changing pointers programmatically. I realized today battle event command parameter are offsets in the battle event data that doesn't serve as script. Hence the crashing.

I relocated 4 tables which two will stay in .bin files due to their length. I changed everything that needed to except the battle palettes which we don't know yet. The man and old man NPCs are now at the very end. I'll wait before changing all the NPC data that needs to be changed.

If we can find that goddam soldier sprite set (or char $18 setting in $C1 or $C2) we will be set.

http://madsiur.net/asm.zip (the two spritesheet are just two Terra sheets)

Code:
hirom
;header

!BattleSpriteTable = $F30000
!BattleSpriteTableB = $F30002
!BattlePaletteTable = $F300B6
!SpriteTable = $F3004E
!SpriteTableB = $F30050
!NPCTable = $F300D0
!NPCTableA = $F300D1
!NPCTableB = $F30220
!sprites = $F30400

!introAnim0E = $00      ;battle intro animation for Iris (original character ID)
!introAnim0F = $00      ;battle intro animation for character 16 (original character ID)

;event command 37
org $C09C9A
CPY #$0378

org $C1FEEA
JSR room
NOP
NOP
ASL

;fix to allow new chars to copy and intro animation from an existing character
org $C1FFE5
room:
LDA $2EAE,Y
AND #$1F
CMP #$17
BEQ char0E              ;branch if sprite $17
CMP #$18
BNE exit                ;branch if vanilla sprite
LDA #!introAnim0F       ;otherwise it's sprite $18
BRA exit
char0E:
LDA #!introAnim0E
exit:
RTS

org $C13D66
LDA !BattleSpriteTableB,X

org $C13D6E
LDA !BattleSpriteTable,X

org $C13E20
LDA !BattlePaletteTable,X

org $C36CF7
LDA !SpriteTableB,X

org $C36CFD      
LDA !SpriteTable,X

org $C0548D
LDA !NPCTable,X

org $C05496
LDA !NPCTableB,X

org $C067C2
LDA !NPCTable,X

org $C067C8
LDA !NPCTableB,X

org $C06896
LDA !NPCTable,X

org $C0689C
LDA !NPCTableB,X

org $C06992
LDA !NPCTable,X
    
org $C069A3
LDA !NPCTableA,X
    
org $C069AF
LDA !NPCTableB,X    

;$C2CE43 Table
org !BattleSpriteTable
dl $D50000
dl $D516A0
dl $D52D40
dl $D543E0
dl $D55A80
dl $D57120
dl $D587C0
dl $D59E60
dl $D5B500
dl $D5CBA0
dl $D5E240
dl $D5F8E0
dl $D60F80
dl $D62620
dl $D63CC0
dl $D65360
dl $D66A00
dl $D67F60
dl $D694C0
dl $D6AA20
dl $D6BF80
dl $D6D4E0
dl $D6EA40
dl $D63CC0
dl $F30400      ;Iris sprite sheet
dl $F31AA0      ;char 16 sprite sheet

;$CFF910 Table
org !SpriteTable
dd $D5000000
dd $D516A000
dd $D52D4000
dd $D543E000
dd $D55A8000
dd $D5712000
dd $D587C000
dd $D59E6000
dd $D5B50000
dd $D5CBA000
dd $D5E24000
dd $D5F8E000
dd $D60F8000
dd $D6262000
dd $D63CC000
dd $D6536000
dd $D66A0000
dd $D67F6000
dd $D694C000
dd $D6AA2000
dd $D6BF8000
dd $D67F6000        ;Filler
dd $D67F6000        ;Filler
dd $D67F6000        ;Filler
dd $F3040000        ;Iris sprite sheet
dd $F31AA000        ;char 16 sprite sheet

;$C2CE2B Table
org !BattlePaletteTable
db $02
db $01
db $04
db $04
db $00
db $00
db $00
db $03
db $03
db $04
db $05
db $03
db $03
db $05
db $01
db $00
db $00
db $03
db $06
db $01
db $00
db $03
db $03
db $00
db $00      ;Iris battle palette
db $05      ;char 16 battle palette

org !NPCTable
incbin D0F2Table.bin

org !NPCTableB
incbin D23CTable.bin

org !sprites
incbin char0E.bin
incbin char0F.bin
  Find
Quote  

#28
Posts: 149
Threads: 21
Thanks Received: 40
Thanks Given: 3
Joined: Dec 2013
Reputation: 9
Status
Auto-life
Download link: http://www.bwass.org/bucket/ff6re_10.7z

Ok, i fixed the switch of equipments inside battle. Give it a testing.

For reference, the code now checks the relics outside battle for the merit award effect. It isn't possible to change relics inside battle, so checking the relics outside battle should be fine. The code doesn't check if weapons, shields, hats, armors and everything else except relics has the flag for the merit award effect.

I forgot to mention it, but Umaro can now equip items like weapons, shields, hats and armors like any normal character in the field. In battle, he still acts automatically. I don't see how it can be harmfull because Umaro can only equip two items in the entire game and he already begins eqquiped with them. We can let it as it is or we can setup extra equipment for him when we define Iris and the other guest equipments. However, if it is undesired, I can add an exception to block access to Umaro's equipment like the original game.
  Find
Quote  

#29
Posts: 3,966
Threads: 279
Thanks Received: 234
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
For property relocation, can we set a starting point? As an example, starting at the 3 scenarios, only Iris could take spot $0E. Vicks (or Wedge I don't recall) would still use character $0E. This would lighten the edits, especially in the case of the beginning of the game.
  Find
Quote  

#30
Posts: 763
Threads: 83
Thanks Received: 55
Thanks Given: 7
Joined: Apr 2015
Reputation: 22
Status
Obliviscence
The earliest point we have suggested for her introduction is the magitek facility. Can you start from there?
  Find
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite