Users browsing this thread: 2 Guest(s)
The New FFIV

#91
Posts: 1,261
Threads: 250
Thanks Received: 11
Thanks Given: 7
Joined: Jun 2009
Status
Traitor
I'll look into this Djinn, would you like to try and help me with this part of the hack?

I just now applied the following font that took 3-5 minutes to import with YY-CHR. FF3usME's font creator is really nice for the big text fonts, but YY-CHR is better with the smaller fonts because of the copy and paste feature. I copy and pasted all of the text into YY-CHR overwriting the existing alphabet.
http://www.romhacking.net/fonts/6/

[Image: imgshk.png]

I'd like to give credit to the creator ... but RomHacking.net doesn't show who did it... on any of the fonts...
I think it was DragonsBretheren however.


-Twin Cast Notes-

Twin Cast: Uses Control as a base and selects four skills like Control normally does. These skills are:
-Pyroblast
-Twin Flare
-Comet
-Twin Meteor


A synopsis of this entire document is we can change the targeting of "Control" to choose any character on the battle instead of an enemy. We can designate a monsters skill set so each time control is used on a random monster, it'll use that designated monsters skill set. This is only if used on a monster, not on a player.
We cannot set it to load a monsters skill set if Control targets a character and we cannot set Control to target one specific character. To avoid exploitation of Twin Cast so that Palom or Porom doesn't cast it on themselves, it needs to either be disabled if the other twin isn't in the battle, or have it so it can only target the other twin who's not casting.
A log between Me, Lenophis and Angelo.
Quote:<Zeemis> Do you know where the data for where the ability Control is off the top of your head by any chance?
<Lenophis> what data?
<Zeemis> I want to try to change the targeting to target one character.
<Zeemis> once that player is targeted, it offers the skill Twin Meteor or Star Fall
<Zeemis> That seems like it'd be a bit to hard lol.
<Lenophis> CFFE00-CFFE7F - DATA
Command info, 2 bytes each. 0001 = Gogo can use command, 0002 = Can be mimicked, 0004 = Use when an Imp, FF00 = Aiming
<Zeemis> I believe the new version of FF3usME can do the targeting.
<Zeemis> Possibly:
<Zeemis> C2/1A43: 7B TDC
<Zeemis> C2/1A44: BF 00 87 CF LDA $CF8700,X
<Zeemis> C2/1A48: E8 INX
<Zeemis> C2/1A49: C9 FE CMP #$FE
<Zeemis> C2/1A4B: B0 F5 BCS $1A42 (Exit if #$FE or #$FF - Done with commands)
<Zeemis> C2/1A4D: E9 EF SBC #$EF
<Zeemis> C2/1A4F: 90 F3 BCC $1A44 (Branch if not control command)
<Zeemis> C2/1A51: DA PHX
<Zeemis> C2/1A52: AA TAX
<Zeemis> C2/1A53: BF AF 1D C2 LDA $C21DAF,X (# of bytes following control command)
<Zeemis> C2/1A57: FA PLX
<Zeemis> C2/1A58: CA DEX
<Zeemis> C2/1A59: E8 INX
<Zeemis> C2/1A5A: 3A DEC
<Zeemis> C2/1A5B: D0 FC BNE $1A59
<Zeemis> C2/1A5D: 80 E5 BRA $1A44
<Zeemis> Something like: If Palom/Porom is affected by skill: Control
<Zeemis> Use "x" monsters skill set.
<Zeemis> And I change that monsters skill set.
<Zeemis> At the same time, the skills can be learned if cast on so twin magic can be learned
<Lenophis> you're talking about adding a lot of code
<Zeemis> But I'm still trying.
<Zeemis> C2/1A43: 7B TDC
<Zeemis> C2/1A44: BF 00 87 CF LDA $CF8700,X
<Zeemis> C2/1A48: E8 INX
<Zeemis> C2/1A49: C9 FE CMP #$FE
<Zeemis> C2/1A4B: B0 F5 BCS $1A42 (Exit if #$FE or #$FF - Done with commands)
<Zeemis> C2/1A4D: E9 EF SBC #$EF
<Zeemis> C2/1A4F: 90 F3 BCC $1A44 (Branch if not control command)
<Zeemis> C2/1A51: DA PHX
<Zeemis> C2/1A52: AA TAX
<Zeemis> C2/1A53: BF AF 1D C2 LDA $C21DAF,X (# of bytes following control command)
<Zeemis> C2/1A57: FA PLX
<Zeemis> C2/1A58: CA DEX
<Zeemis> C2/1A59: E8 INX
<Zeemis> C2/1A5A: 3A DEC
<Zeemis> C2/1A5B: D0 FC BNE $1A59
<Zeemis> C2/1A5D: 80 E5 BRA $1A44
<Zeemis> oops.
<Zeemis> I think the command looks for a monster, reads up to 4 bytes from the script, and displays the skills
<Zeemis> [11:27:40 PM] neptuneknight1: Read 4 bytes from command script
<Zeemis> C2/1A6B: BF 00 87 CF LDA $CF8700,X (Command scripts)
<Lenophis> ...
<Zeemis> This is Angelo who's helping me.
<Lenophis> right, 4 bytes for 4 possible commands
<Lenophis> for display and selection
<Zeemis> So 4 bytes total. 2 for displaying the menu and 2 for selecting an ability in the menu?
<Lenophis> no
<Lenophis> 4 for the 4 commands you pick from for that monster
<Lenophis> 1 byte per command
<Lenophis> per spell, per action, whatever
<Zeemis> what we need to do then is diable the function of the command so it loads only two bytes - corresponding to star fall and twin meteor
<Zeemis> ^ Angelo.
<Zeemis> yeah, it reads 4 bytes - some monsters have fewer bytes
<Lenophis> all monsters have the same
<Lenophis> just some are FF (no selection)
<Zeemis> but there's code we need to disable so the command doesn't go looking for all the enemies in the game
<Zeemis> [11:34:40 PM] Zεεຕใร: Do you know how to change it from trying to load a monster skill set once used on a particular character?
<Zeemis> [11:35:29 PM] neptuneknight1: C2/1A64: BF 02 87 CF LDA $CF8702,X
<Zeemis> C2/1A68: 8D 2E 3A STA $3A2E
<Zeemis> C2/1A6B: BF 00 87 CF LDA $CF8700,X (Command scripts)
<Zeemis> C2/1A6F: 8D 2C 3A STA $3A2C
<Zeemis> Maybe it has something to do with those lines
<Zeemis> are the monster's scripts located at CF/8700?
<Lenophis> CF8700-CF9FEE MONST Monster AI scripts <--
<Lenophis> not what you are looking for
<Lenophis> CF3D00-CF42FF MONST "Control" command attacks (384 enemies, 4 commands per enemy)
<Lenophis> CF4300-CF45FF MONST "Sketch" command attacks (384 enemies, 2 commands per enemy)
<Lenophis> CF4600-CF47FF MONST "Rage" command attacks (256 enemies, 2 commands per enemy)
<Lenophis> that's what you want
<Lenophis> I need to sleep
<Zeemis> Alright
<Zeemis> Thanks for the help.
* Lenophis has quit (Quit: )
Quote:[12:02:57 AM] neptuneknight1: sure, go ahead
[12:03:04 AM] neptuneknight1: (Relm's Control menu)

C2/372F: DA PHX
C2/3730: 5A PHY
C2/3731: 08 PHP
C2/3732: C2 31 REP #$31 (set 16-bit A, X and Y. clear Carry)
C2/3734: BF 4A 54 C2 LDA $C2544A,X (address of controlling character's menu?)
C2/3738: 69 30 00 ADC #$0030
C2/373B: 8F 81 21 00 STA $002181
C2/373F: BB TYX
C2/3740: BD 08 3C LDA $3C08,X (MP of monster?)
C2/3743: 1A INC
C2/3744: 85 EE STA $EE (add 1, as it'll make future comparisons easier)
C2/3746: BD F9 1F LDA $1FF9,X (Monster Type)
C2/3749: 0A ASL
C2/374A: 0A ASL
C2/374B: AA TAX (X = monster number * 4)
C2/374C: E2 20 SEP #$20 (set 8-bit accumulator)
C2/374E: 7B TDC (clear A)
C2/374F: 8F 83 21 00 STA $002183
C2/3753: A0 04 00 LDY #$0004
C2/3756: 7B TDC
C2/3757: 48 PHA
C2/3758: BF 00 3D CF LDA $CF3D00,X (get Relm's Control command)
C2/375C: 8F 80 21 00 STA $002180 (store it in a menu)
C2/3760: C9 FF CMP #$FF
C2/3762: F0 1C BEQ $3780 (branch if the command [aka the spell #] was null)
C2/3764: EB XBA
C2/3765: A9 0E LDA #$0E (there are 14d bytes per spell in magic data)
C2/3767: 20 81 47 JSR $4781 (spell number * 14)
C2/376A: DA PHX
C2/376B: AA TAX
C2/376C: BF C5 6A C4 LDA $C46AC5,X (get MP cost)
C2/3770: EB XBA
C2/3771: BF C0 6A C4 LDA $C46AC0,X (get targeting byte)
C2/3775: FA PLX (restore X = monster num * 4)
C2/3776: 83 01 STA $01,S (replace zero value on stack from C2/3757 with
targeting byte?)
C2/3778: 18 CLC (clear carry)
C2/3779: A5 EF LDA $EF (retrieve (MP of monster + 1) / 256 ?)
C2/377B: D0 03 BNE $3780 (if it's nonzero, branch. spell MP costs are
only 1 byte, so we don't have to worry whether
it's castable)
C2/377D: EB XBA (get MP cost of spell)
C2/377E: C5 EE CMP $EE (carry will be clear if the Cost of spell is less
than (monster MP + 1), or if the foe has >= 255 MP)
(IOW, if the spell is affordable.)

C2/3780: 6A ROR (rotate carry into top bit of A. doubt the other bits
matter, given the XBA above is only done sometimes..)
C2/3781: 8F 80 21 00 STA $002180
C2/3785: 68 PLA (get the targeting byte, or zero if the menu entry
was null)
C2/3786: 8F 80 21 00 STA $002180
C2/378A: E8 INX
C2/378B: 88 DEY
C2/378C: D0 C8 BNE $3756 (loop 4 times, once for each Control command)
C2/378E: 28 PLP
C2/378F: 7A PLY
C2/3790: FA PLX
C2/3791: 60 RTS
  Find
 

#92
Posts: 846
Threads: 91
Thanks Received: 7
Thanks Given: 1
Joined: Aug 2010
Reputation: 10
Status
Crystal
I havent got round 2 the riding sprite yet Zeemis :p
  Find
 

#93
Posts: 341
Threads: 12
Thanks Received: 0
Thanks Given: 2
Joined: Sep 2010
Reputation: 5
Status
None
I'm not quite sure how the Control targetting works, but as an abstract idea, you might be able to build a table from its targetting data that essentially checks a character's ID, like CMP $01 for Locke, and then refers it to a blank Monster table? (Or better yet, a blanked Monster with the 'Cannot be Controlled' tag set.)

This would require 10 blank monster slots, however, and I'm not entirely sure how targeting works in Control. And I don't know how you would keep a twin from casting it on his/herself. On the plus side, if you're disabling the Control command for monsters, then you technically have a lot of space you can JMP to add in the necessary code.

Sorry I'm not more help.
 

#94
Posts: 1,261
Threads: 250
Thanks Received: 11
Thanks Given: 7
Joined: Jun 2009
Status
Traitor
I wasn't expecting to get it all in one day, so it's fine. We're getting closer and closer to making this happen. If you have Skype, can you add me? My Skype is Zemious.
I'll be talking with Lenophis tonight hopefully around 10:00PM, eastern time. It's almost 7:00PM now.

Here's a question for the people who're good with coding and the such on this site. I want to split the magic system up into two magics called "Black" and "White", like in FFIV. I've seen this done with the Test Patch, sort of. Master Zed replaced the "Row" ability with a new menu that lets you choose any spell or ability in the game. I just want to replace an ability like Tools and expand the list of how many you have, or something. I'm already using Lore for Summon.
  Find
 

#95
Posts: 341
Threads: 12
Thanks Received: 0
Thanks Given: 2
Joined: Sep 2010
Reputation: 5
Status
None
Unfortunately, I am at work at this time and cannot be using Skype while I'm supposed to be working. (Obviously, occasionally checking a message board is okay, though~)

I live in Japan, so I suspect my schedule doesn't mesh well with most people's on this site.
 

#96
Posts: 1,261
Threads: 250
Thanks Received: 11
Thanks Given: 7
Joined: Jun 2009
Status
Traitor
I was thinking of a way to fix Control today to fix exploiting it.
Palom has Control, renamed to Twin Cast or something. Porom doesn't have the ability. Palom can only cast it on Porom. I need to find a way to designate Porom as a monster so I can give her the four abilities. As of right now, no one is designated as a monster, so Control won't work on them. That part is done, so Palom can't use Control on himself to bring up the Twin Cast menu.
A new exploit that's major is all four abilities are present after using Twin Cast, they're not learnable. This means a level 12 Palom can have access to all four abilities instead of gaining the abilities over time naturally. I need to have it so it changes monster ID's. One monster has on ability, another has two, so on and so forth. We can assign these monster ID's to Porom. Twin Cast is use on Porom, it brings up the menu. Vwah-la.

So the objective now is to just set Porom to a monster ID and have the monster ID change at a certain level. Maybe we can have it so when Porom reaches level 25, an event occurs that switches her with another Porom that's level 25 and uses the 25-50 monster ID spell set. Then theres the deal with what gear and relics the first Porom had opposed to this porom. Maybe we can set it so soon as she's level 25, she deequips everything and switches?
Another thing I noticed is that when anyone uses "Control" on a monster, that monster is controlled until dead as well as the menu stays up. We may need to set it so the monster ID perishes after control is used and is re-summoned or brought back to life so it can be used again.
Monster ID Control Abilities
Level 1-25 = Pyroblast
Level 25-50 = Pyroblast, Twin Flare
Level 50-75 = Pyroblast, Twin Flare, Comet
Level 75-99 = Pyroblast, Twin Flare, Comet, Twin Meteor

If or when Imzogelmo finishes his 24-bit patch, I can have Twin Meteor surpass the 9999 damage limit and have Comet do the same damage as a normal Meteor. Twin Meteor will be stronger than Ultima, seeing as it requires two people.
  Find
 

#97
Posts: 2,769
Threads: 88
Thanks Received: 24
Thanks Given: 87
Joined: Jun 2009
Reputation: 25
Status
None
are you sure u can pull it off?


"Sometimes ninjas do wrong to each other, and in dat way the force of tha earf' comes around da moon - and at that presence, da dirt, it overshadows the grass, so you're like, I can't cut dis grass, there's no sun comin' through. So in order to enable each other the two fruits have to look each other in da eye and understand we can only be right, as da ripe is wrong, you know what I mean?"

-HNIC
 

#98
Posts: 1,261
Threads: 250
Thanks Received: 11
Thanks Given: 7
Joined: Jun 2009
Status
Traitor
If I can assign four monster ID's somehow to a character, yes. We as a community are helping each other, I wouldn't have come to this conclusion if it weren't for the community. It would have just been an idea with no results.
  Find
 

#99
Posts: 220
Threads: 30
Thanks Received: 0
Thanks Given: 0
Joined: Mar 2010
Reputation: 5
Status
None
Wasn't Ultima a Twincast in 4? Also Will TAY be represented in anyway whatsoever? Golbez could do the job... We have a sheet. He works with a palette... He was playable only in TAY... He fits the bill... Also I am trying to become the master of ellipses...


[Image: finalfantasy6textboxshe.png]
  Find
 

Posts: 1,261
Threads: 250
Thanks Received: 11
Thanks Given: 7
Joined: Jun 2009
Status
Traitor
I may be able to put Golbez in. It just so happens I have an extra slot available. If I can move Edge to share a palette with my two homeboys FuSoYa and Tellah, that gives that slot free.
  Find
 



Forum Jump:

Users browsing this thread: 2 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite