FF6 Hacking
Monster Expansion - Printable Version

+- FF6 Hacking (https://www.ff6hacking.com/forums)
+-- Forum: Discussion Forums (https://www.ff6hacking.com/forums/forum-5.html)
+--- Forum: Magitek Research Facility (https://www.ff6hacking.com/forums/forum-9.html)
+--- Thread: Monster Expansion (/thread-2825.html)

Pages: 1 2 3 4


Monster Expansion - madsiur - 03-08-2015

I stated working on a monster expansion patch. According to assassin's first post in this thread there would be some code that needs to be changed in order to allow monster expansion. If I understand his sentence, monster 0x01FF (511) would be considered absent, which is no big deal in the end. Do anyone has an idea which code he is referring to?

Edit: Problem solved. Monster 511 will be considered the null value.

I documented what needed to be expanded in order to have 511 monsters and came up with this table. This takes into account my two other patches and does a similar AI expansion (almost whole bank) than FF3usME. Speaking of the editor, it will be broke for good with this patch. So I'm thinking coding an editor for everything concerning monsters (graphics, formations, packs, stats, AI) with an expansion management section. In the end, it will simplify the editing for my own hack and I'll save time considering the amount of work editing all this manually would take.

If I'm missing anything, please let me know. Right now I'll work on relocating the data manually to a test with monster 384.

Edit: Test with new monster went well :D

<table border=1 align="center">
<tr align="center" style="font-weight: bold;">
<td style="width:120px; height:30px;">Offset</td>
<td style="width:250px">Description</td>
<td style="width:100px">Bytes</td>
<td style="width:150px">Size</td>
<td style="width:150px">Exp. Size</td>
<td style="width:120px">Exp. Offset</td>
</tr>

<tr align="center">
<td>0FC050</td>
<td>Monster Names</td>
<td>10</td>
<td>0xF00</td>
<td>0x1400</td>
<td>same as original</td>
</tr>

<tr align="center">
<td>0F3600</td>
<td>Monster Y-Shift for Sprite Priority</td>
<td>1</td>
<td>0x180</td>
<td>0x200</td>
<td>N/A</td>
</tr>

<tr align="center">
<td>0FD0D0</td>
<td>Monster Attack Names</td>
<td>10</td>
<td>0xF00</td>
<td>0x1400</td>
<td>3C1400</td>
</tr>

<tr align="center">
<td>0F8400</td>
<td>Monster AI Pointers</td>
<td>2</td>
<td>0x300</td>
<td>0x400</td>
<td>3D0000</td>
</tr>

<tr align="center">
<td>0F8700</td>
<td>Monster AI</td>
<td>var</td>
<td>0x3950</td>
<td>0xFB00</td>
<td>3D0400</td>
</tr>

<tr align="center">
<td>0F3000</td>
<td>Item Stolen/Dropped</td>
<td>4</td>
<td>0x600</td>
<td>0x800</td>
<td>3C0C00</td>
</tr>

<tr align="center">
<td>0F0000</td>
<td>Monster Stats</td>
<td>32</td>
<td>0x3000</td>
<td>0x4000</td>
<td>31C000</td>
</tr>

<tr align="center">
<td>0F3D00</td>
<td>Control commands</td>
<td>4</td>
<td>0x600</td>
<td>0x800</td>
<td>3C0000</td>
</tr>

<tr align="center">
<td>0F4300</td>
<td>Sketch commands</td>
<td>2</td>
<td>0x300</td>
<td>0x400</td>
<td>3C0800</td>
</tr>

<tr align="center">
<td>127000</td>
<td>Monster/Esper visual specs</td>
<td>5</td>
<td>0x820</td>
<td>0xAA0</td>
<td>319D80</td>
</tr>

<tr align="center">
<td>0F37C0</td>
<td>Monster special attacks appearance</td>
<td>1</td>
<td>0x180</td>
<td>0x200</td>
<td>3C2800</td>
</tr>
</table>

Relocalization and expansion ASM changes:

Code:
hirom

; Monster visual specs
org $C1206E
LDA $F19D82,X

org $C1208C
LDA $F19D80,X  

org $C12099
LDA $F19D81,X  

org $C120A2
LDA $F19D82,X

org $C120B7
LDA $F19D84,X  

; Monster visual specs
; used for sketch and espers
org $C124FF
LDA $F19D82,X    

org $C1250E
LDA $F19D80,X    

org $C1251B
LDA $F19D81,X    

org $C12524
LDA $F19D82,X    

org $C12539
LDA $F19D84,X


; Esper numbers
; we add 0x80 to each espers number to get the good visual specs at the end of expanded monsters.

; Crusader
org $C12469
LDX #$020F

; some esper numbers table
org $C2EA9D
dw $0202
dw $0211
dw $0207
dw $0213
dw $0204

; following are each espers
org $C2EB52
LDX #$020F

org $C2EB69
LDX #$021C

org $C2EBC2
LDX #$021B

org $C2EBE1
LDX #$0214

org $C2EBEE
LDX #$020A

org $C2EC01
LDX #$020C

org $C2EC1C
LDX #$0210

org $C2EC29
LDX #$0216

org $C2EC36
LDX #$0208

org $C2F020
LDX #$0218

org $C2F073
LDX #$020B

org $C2F08E
LDX #$0209

org $C2F0C1
LDX #$0206

org $C2F0E2
LDX #$020D

org $C2F0F9
LDX #$0219

org $C2F109
LDX #$0215

org $C2F119
LDX #$021A

org $C2F129
LDX #$0217

org $C2F14D
LDX #$0211

org $C2F16B
LDX #$0213

org $C2F195
LDX #$020E

org $C2F203
LDX #$0203

org $C2F211
LDX #$0202

org $C2F221
LDX #$0200

org $C2F231
LDX #$0212

org $C2F24D
LDX #$0207

org $C2F27B
LDX #$0205

org $C2F289
LDX #$0201

; monster special move graphics
org $C22D4F
LDA $FC2800,X

; monster special move graphics
; rage purpose
org $C20616
LDA $FC2800,X

; monster data
org $C20625
LDA $F1C01A,X

org $C22CA3
LDA $F1C005,X

org $C22CAA
LDA $F1C00C,X

org $C22CB1
LDA $F1C00E,X

org $C22CBD
LDA $F1C00A,X

org $C22CC7
LDA $F1C008,X

org $C22CF5
LDA $F1C001,X

org $C22CFC
LDA $F1C01A,X

org $C22D03
LDA $F1C003,X  

org $C22D0D
LDA $F1C004,X  

org $C22D17
LDA $F1C002,X

org $C22D1E
LDA $F1C010,X

org $C22D25
LDA $F1C000,X

org $C22D2C
LDA $F1C007,X  

org $C22D36
LDA $F1C01E,X  

org $C22D42
LDA $F1C013,X

org $C22DC2
LDA $F1C01F,X  

org $C22DC9
LDA $F1C019,X  

org $C22DD3
LDA $F1C016,X  

org $C22DE9
LDA $F1C01B,X  

org $C22DF0
LDA $F1C01D,X  

org $C22E10
LDA $F1C01C,X  

org $C22E1A
LDA $F1C014,X  

org $C22E27
LDA $F1C017,X  

org $C22E31
LDA $F1C011,X

; control commands
org $C2063D
LDA $FC0000,X

org $C20643
LDA $FC0002,X

org $C23758
LDA $FC0000,X    

; sketch commands
org $C23B5A
LDA $FC0800,X

; item dropped
org $C25F2D
LDA $FC0C02,X

; item stolen
org $C22C41
LDA $FC0C00,X

; monster AI script
org $C21A44
LDA $FD0400,X  

org $C21A64
LDA $FD0402,X

org $C22D78
LDA $FD0000,X

org $C22D88
LDA $FD0400,X

; monster AI pointer
org $C21A6B
LDA $FD0400,X

; monster names (same as vanilla)
; for reference purpose
org $C22C56
LDA $CFC050,X

org $C22C78
CMP $CFC050,X

; rage names (monster names)
org $C3540E
LDY #$C050

org $C35413    
LDA #$CF    

; monster special attack names
org $C1973B
LDA #$FC

org $C1974F
ADC #$1400

; Monster Y-Shift for Sprite Priority (added on 2023/02/23)
; org $C12150
; LDA $CF3600,X ; to be changed



RE: Monster Expansion - Lockirby2 - 03-08-2015

Man, you're a pro!


RE: Monster Expansion - Tenkarider - 03-08-2015

Madsiur for president.


RE: Monster Expansion - JWhiteLXXXIX - 03-08-2015

good job mad sounds promising look forward to seeing this new editor finished


RE: Monster Expansion - madsiur - 03-08-2015

Thanks guys but I almost did nothing so far.

As you can see not everything is going as planned: https://www.youtube.com/watch?v=ia6lKaXyVtI


RE: Monster Expansion - JWhiteLXXXIX - 03-08-2015

oh dear i take it they weren't supposed to commit suicide then lol. Keep at it bro if any1 can crack it its you. Maybe the editor itself can have things like a better import feature, current sprite size display, an addable mould background and a full screen option would rock.


RE: Monster Expansion - madsiur - 03-08-2015

(03-08-2015, 04:33 PM)Jameswhite89 Wrote: Maybe the editor itself can have things like a better import feature, current sprite size display, an addable mould background and a full screen option would rock.

Everything in this is quite easy to program except full screen option. I'm not too sure how I could go about this...


RE: Monster Expansion - JWhiteLXXXIX - 03-08-2015

not 2 much of an issue tbh if u included current sprite size it be amazing, i hate having to draw outlines in paint.. and having square moulds as a selectable background would help so much 2, the grid options from se are needed 2 imo, if u could do full screen id use ur program over paint any day, also thought maybe if the window could be drag minimized 2 that could be helpful especially if some1s working from a reference in a diff picture


RE: Monster Expansion - madsiur - 03-08-2015

I already have a FF6A base portrait editor with all the features of FF6SE plus other features like rotation, X or Y flipping. Adding molds will be easy. I could possibly have it full screen if I set the max zoom to more than 20 times the original size.


RE: Monster Expansion - JWhiteLXXXIX - 03-08-2015

awesome man, figured id try giving some input as i tend to use se more then paint for even unrelated things so if u make a better program i cant wait!