øAslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;u=4;area=showposts;start=120e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index1baa.htmlslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;area=showposts;u=4e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index1baa.html.zx‡âg^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈÀKOOKtext/htmlISO-8859-1gzip0|ÖOÿÿÿÿÿÿÿÿTue, 10 Mar 2020 19:11:27 GMT0ó°° ®0®P®€§²ð®‡âg^ÿÿÿÿÿÿÿÿ÷(O Show Posts - Dragonsbrethren

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Dragonsbrethren

121
Gaming Discussion / Re: Final Fantasy IV Complete Collection
« on: January 30, 2013, 05:10:17 PM »
I guess the only "new" thing the tunneler and the extended Mist Cave... but that is FF6's Locke mission in a nutshell. I think the more important part is the development between the two characters... much less the events that surround them.

No, video games don't get to work this way.  I'm playing through the same damn content I did in the original with a few new lines of dialogue, no amount of characterization that happens during that changes anything. Locke's scenario was entirely different; they reused the locations, but with entirely new dialogue and events. After Years just consistently takes the lazy route throughout most of the game.

122
General Discussion / Re: Hi
« on: January 30, 2013, 01:01:38 PM »
Hi Imzo. :cycle:

123
Gaming Discussion / Re: Final Fantasy IV Complete Collection
« on: January 30, 2013, 12:59:16 PM »
They imply Rydia's been living in the Feymarch again too, so shouldn't she be, uh, dead, now? I think Rydia had the worst characterization in this, she acts like a kid looking for acceptance through her entire tale. She's somehow less mature than she was in the original.

My biggest gripe with TAY has to do with it recycling content from the original game. I don't have any problem with the reused monsters or maps or equipment, because having those around grounds it as being a part of FF4's world, but the parts of it that follow the original plot identically are ridiculous. Really, Ceodore and the Hooded Man escape Baron through Mist, get attacked by Baron's soldiers in Kaipo, fight an Octomammoth in the Watery Pass...? It's stupid and lazy. It doesn't help that we get to do the same recycled dungeons multiple times over the course of the tales.

I never really got into the Bands. I played the game when it was brand new and avoided looking anything up about it, so if I didn't figure them out myself I didn't know about them. For the ones I did figure out, I rarely used them, just playing it like it was normal FF4 instead.

124
I'm probably just misremembering, then.

125
I think Yousei's editor expands the ROM and saves world map edits in the expanded space, but it's been forever since I used it.

126
They're placeholders; it should be safe to remove them as long as you leave the null terminators.

127
Final Fantasy IV Research & Development / Re: Item descriptions
« on: January 24, 2013, 01:37:35 PM »
This would be a nice patch fix for the bug...
I don't believe in releasing one byte patches, sorry.

Wow this is great! I would love for there to be space to allocate for the entire gambit of items. however what you have here looks really good on its own.
There probably is enough space, provided you don't go overboard with unique descriptions. If I ever work on another large scale project, I'd probably rewrite the routine entirely (not to the extent J2e did, which was overkill) to read the description table for every item but compare the description byte to $00, using that to bypass drawing rather than limiting it to a certain range. (A combination of both could work too, but would take more space.)

128
I worked out item descriptions this morning:

http://slickproductions.org/forum/index.php?topic=1804

Allowing the item range to be changed is painless enough, but there's only 44 usable descriptions with the default text offset. Moving the text is probably beyond the scope of the editor, but you can use this data to at least read expanded descriptions in a modified ROM if you want (it would be nice for letting us set them, but again, probably a lot more work for you and beyond the scope of the editor).

129
Final Fantasy IV Research & Development / Item descriptions
« on: January 24, 2013, 09:33:46 AM »
Turns out item descriptions are a simple range check and subtraction. The reason the "Caller's Magic Orb" description isn't shown? They test if the item value is less than $E7, not $EB.

Code: [Select]
$01/A7BA C9 CE       CMP #$CE                A:03CE X:0000 Y:D8E8 P:eNvMxdIzc
$01/A7BC 90 2B       BCC $2B    [$A7E9]      A:03CE X:0000 Y:D8E8 P:envMxdIZC
$01/A7BE C9 E7       CMP #$E7                A:03CE X:0000 Y:D8E8 P:envMxdIZC
$01/A7C0 B0 27       BCS $27    [$A7E9]      A:03CE X:0000 Y:D8E8 P:eNvMxdIzc
$01/A7C2 38          SEC                     A:03CE X:0000 Y:D8E8 P:eNvMxdIzc
$01/A7C3 E9 CE       SBC #$CE                A:03CE X:0000 Y:D8E8 P:eNvMxdIzC
$01/A7C5 20 B4 87    JSR $87B4  [$01:87B4]   A:0300 X:0000 Y:D8E8 P:envMxdIZC


$01/A7C8 BF 00 AE 0F LDA $0FAE00,x[$0F:AE00] A:0300 X:0000 Y:D8E8 P:envMxdIZC
$01/A7CC 85 45       STA $45    [$00:0145]   A:0301 X:0000 Y:D8E8 P:envMxdIzC
$01/A7CE A2 2A AE    LDX #$AE2A              A:0301 X:0000 Y:D8E8 P:envMxdIzC
$01/A7D1 F0 0C       BEQ $0C    [$A7DF]      A:0301 X:AE2A Y:D8E8 P:eNvMxdIzC
$01/A7D3 E8          INX                     A:0301 X:AE2A Y:D8E8 P:eNvMxdIzC
$01/A7D4 BF 00 00 0F LDA $0F0000,x[$0F:AE2B] A:0301 X:AE2B Y:D8E8 P:eNvMxdIzC
$01/A7D8 D0 F7       BNE $F7    [$A7D1]      A:0345 X:AE2B Y:D8E8 P:envMxdIzC
$01/A7DA C6 45       DEC $45    [$00:0145]   A:0300 X:AE2C Y:D8E8 P:envMxdIZC
$01/A7DC D0 F3       BNE $F3    [$A7D1]      A:0300 X:AE2C Y:D8E8 P:envMxdIZC
$01/A7DE E8          INX                     A:0300 X:AE2C Y:D8E8 P:envMxdIZC
$01/A7DF 9B          TXY                     A:0300 X:AE2D Y:D8E8 P:eNvMxdIzC
$01/A7E0 A9 0F       LDA #$0F                A:0300 X:AE2D Y:AE2D P:eNvMxdIzC
$01/A7E2 A2 54 00    LDX #$0054              A:030F X:AE2D Y:AE2D P:envMxdIzC
$01/A7E5 20 E4 82    JSR $82E4  [$01:82E4]   A:030F X:0054 Y:AE2D P:envMxdIzC

Code: [Select]
$01/A7BA C9 CE       CMP #$CEItem value to start showing descriptions for.

Code: [Select]
$01/A7BE C9 E7       CMP #$E7Item to stop showing descriptions for.

Code: [Select]
$01/A7C2 38          SEC
$01/A7C3 E9 CE       SBC #$CE
Subtracts $CE from the item value. Change this to be the same as your starting item.

Code: [Select]
$01/A7C8 BF 00 AE 0F LDA $0FAE00,xItem description assignment table offset. (SNES LoROM Slow ROM) One byte per item.

Code: [Select]
$01/A7CE A2 2A AE    LDX #$AE2AStart of item descriptions in bank - 1. Each description is terminated with $00.

Code: [Select]
$01/A7D4 BF 00 00 0F LDA $0F0000,xBank to load the item descriptions from.

So yeah, simple stuff, explains how J2e was able to give everything descriptions in their translation. I always assumed it would be more involved. They still did more work on top of that (their description hack uses a pointer table and supports using positioning on the string. This supports it too, but $00 will cause the string to terminate, which isn't an issue in J2e's hack.)

130
Fun fact: The Japanese descriptions include strings for spells as well.

 :edit:

And a table of assignments that I completely forgot about, yet knew existed at some point. The magic menu never seems to read the table, so it can be safely overwritten with more item descriptions. (Even if the menu did read it, it's obviously not showing anything, so it'd be safe anyway :tongue: )

131
Final Fantasy IV Research & Development / Re: Monster Attacks/Spells
« on: January 23, 2013, 01:06:19 PM »
The menu code is fine. Leave the six character spells where they currently are and redo all of the enemy spells you want to be six characters. For the name display in battle, you're in luck since the game actually has two different loading routines, so it's pretty painless to do this hack.

Here's the relevant code:

Code: [Select]
$02/CB95 AD C8 34    LDA $34C8  [$7E:34C8]   A:0040 X:0004 Y:6400 P:envMxdiZC
$02/CB98 D0 01       BNE $01    [$CB9B]      A:0023 X:0004 Y:6400 P:envMxdizC
$02/CB9B C9 48       CMP #$48                A:0023 X:0004 Y:6400 P:envMxdizC
$02/CB9D 90 25       BCC $25    [$CBC4]      A:0023 X:0004 Y:6400 P:eNvMxdizc

; load eight character spell name ---------------------------------------------
$02/CB9F 38          SEC                     A:0051 X:0004 Y:0012 P:envMxdizC
$02/CBA0 E9 48       SBC #$48                A:0051 X:0004 Y:0012 P:envMxdizC
$02/CBA2 85 26       STA $26    [$00:0026]   A:0009 X:0004 Y:0012 P:envMxdizC
$02/CBA4 A9 08       LDA #$08                A:0009 X:0004 Y:0012 P:envMxdizC
$02/CBA6 85 28       STA $28    [$00:0028]   A:0008 X:0004 Y:0012 P:envMxdizC
$02/CBA8 20 60 85    JSR $8560  [$02:8560]   A:0008 X:0004 Y:0012 P:envMxdizC

$02/CBAB A6 2A       LDX $2A    [$00:002A]   A:0009 X:0004 Y:0012 P:envMxdizc
$02/CBAD 7B          TDC                     A:0009 X:0048 Y:0012 P:envMxdizc
$02/CBAE A8          TAY                     A:0000 X:0048 Y:0012 P:envMxdiZc
$02/CBAF BF B0 8A 0F LDA $0F8AB0,x[$0F:8AF8] A:0000 X:0048 Y:0000 P:envMxdiZc
$02/CBB3 99 FD 74    STA $74FD,y[$7E:74FD]   A:0044 X:0048 Y:0000 P:envMxdizc
$02/CBB6 C8          INY                     A:0044 X:0048 Y:0000 P:envMxdizc
$02/CBB7 E8          INX                     A:0044 X:0048 Y:0001 P:envMxdizc
$02/CBB8 C0 08 00    CPY #$0008              A:0044 X:0049 Y:0001 P:envMxdizc
$02/CBBB D0 F2       BNE $F2    [$CBAF]      A:0044 X:0049 Y:0001 P:eNvMxdizc
$02/CBBD 7B          TDC                     A:00FF X:0050 Y:0008 P:envMxdiZC
$02/CBBE 99 FD 74    STA $74FD,y[$7E:7505]   A:0000 X:0050 Y:0008 P:envMxdiZC
$02/CBC1 4C A0 BC    JMP $BCA0  [$02:BCA0]   A:0000 X:0050 Y:0008 P:envMxdiZC

; load six character spell name ------------------------------------------------
$02/CBC4 AD C8 34    LDA $34C8  [$7E:34C8]   A:0023 X:0004 Y:6400 P:eNvMxdizc
$02/CBC7 85 26       STA $26    [$00:0026]   A:0023 X:0004 Y:6400 P:envMxdizc
$02/CBC9 A9 06       LDA #$06                A:0023 X:0004 Y:6400 P:envMxdizc
$02/CBCB 85 28       STA $28    [$00:0028]   A:0006 X:0004 Y:6400 P:envMxdizc
$02/CBCD 20 60 85    JSR $8560  [$02:8560]   A:0006 X:0004 Y:6400 P:envMxdizc

$02/CBD0 7B          TDC                     A:0034 X:0004 Y:6400 P:envMxdizc
$02/CBD1 A8          TAY                     A:0000 X:0004 Y:6400 P:envMxdiZc
$02/CBD2 A6 2A       LDX $2A    [$00:002A]   A:0000 X:0004 Y:0000 P:envMxdiZc
$02/CBD4 A9 03       LDA #$03                A:0000 X:00D2 Y:0000 P:envMxdizc
$02/CBD6 99 FD 74    STA $74FD,y[$7E:74FD]   A:0003 X:00D2 Y:0000 P:envMxdizc
$02/CBD9 C8          INY                     A:0003 X:00D2 Y:0000 P:envMxdizc
$02/CBDA BF 00 89 0F LDA $0F8900,x[$0F:89D2] A:0003 X:00D2 Y:0001 P:envMxdizc
$02/CBDE 99 FD 74    STA $74FD,y[$7E:74FE]   A:003F X:00D2 Y:0001 P:envMxdizc
$02/CBE1 C8          INY                     A:003F X:00D2 Y:0001 P:envMxdizc
$02/CBE2 E8          INX                     A:003F X:00D2 Y:0002 P:envMxdizc
$02/CBE3 C0 07 00    CPY #$0007              A:003F X:00D3 Y:0002 P:envMxdizc
$02/CBE6 D0 F2       BNE $F2    [$CBDA]      A:003F X:00D3 Y:0002 P:eNvMxdizc
$02/CBE8 7B          TDC                     A:0081 X:00D8 Y:0007 P:envMxdiZC
$02/CBE9 99 FD 74    STA $74FD,y[$7E:7504]   A:0000 X:00D8 Y:0007 P:envMxdiZC
$02/CBEC 4C A0 BC    JMP $BCA0  [$02:BCA0]   A:0000 X:00D8 Y:0007 P:envMxdiZC

chilly, all you're interested in is this:

Code: [Select]
$02/CBAF BF B0 8A 0F LDA $0F8AB0,x
This is the code loading the eight character names. The offset is in SNES LoROM SlowROM format (WindHex can show offsets as this, there's Lunar Address, probably other programs to convert if you're not familiar with it). All you need to do is change that to another offset where you've placed the eight character names and you're good to go.

JCE, this isn't going to be as extensive as what J2e did. If you want the text window changes and ridiculously long names, you're on your own. This'll give normal spells eight characters when cast; they'll still use six in the menu.

Code: [Select]
$02/CB9B C9 48       CMP #$48
$02/CB9D 90 25       BCC $25

This is what's checking if the spell value is below $48. NOP it all out ($EA).

Code: [Select]
$02/CB9F 38          SEC
$02/CBA0 E9 48       SBC #$48

This is subtracting $48 from the spell value. This is because they started the eight character names at index 0 to save ROM space. NOP it out as well.  Conveniently, the previous code runs directly into this, so you're basically going to 2/CB9B and typing $EA seven times.

Code: [Select]
$02/CBAF BF B0 8A 0F LDA $0F8AB0,x
Same as chilly's example, except you've got to have all of the spell names at the new offset.

 :edit:

Remember that the spells start with a blank entry. Doesn't matter for chilly's hack (because everything was already set up to handle it properly), but JCE, you're starting with a blank eight character entry, not <white>Hold.

132
Unheadered support will be cool. As for inserting new font characters, I'd suggest adding a new key which would just display all 256 possible font characters in a table and let you select the one you want with a cursor. No need to detect new characters. If you don't want to do that, a key that works the same as insert but allows you to go through everything would be an okay solution.

133
That's all there is by default. You can add new icons and whatever else in the blank font space. Some of them can't be used in field dialogue because the DTE code makes use of those values, but the menus and battle are fair game for the most part (the old Japanese DTE is still enabled in them, but utilizes the values used by the icons and above, so that's basically a non-issue.)

134
Underscore enters an ellipsis. Being able to insert any font character anywhere would be nice, though.

You can.

How? Insert only does the default icons and /chr is limited to the start of the font glyphs.

135
Underscore enters an ellipsis. Being able to insert any font character anywhere would be nice, though.