Author Topic: Unprecedented Crisis now on RHDN  (Read 27553 times)

Entroper

  • FF4 Hacker
  • *
  • Posts: 235
  • Gender: Male
    • View Profile
Re: Unprecedented Crisis now on RHDN
« Reply #105 on: July 15, 2015, 05:37:41 PM »
There should be a checksum on the RHDN page though. Does it match up with that?

I just checked it, and it does not.  The filename is exact, too.  Someone must have messed with this one, or just labeled it wrong.   :bah: :lame:

Entroper

  • FF4 Hacker
  • *
  • Posts: 235
  • Gender: Male
    • View Profile
Re: Unprecedented Crisis now on RHDN
« Reply #106 on: July 15, 2015, 05:51:24 PM »
I just checked the source of my download link.  It was jce3000gt.com.   :laugh:   I'm intensely curious what's in that chest now, in the unmodified ROM.  Going to play for 3 minutes and find out.  :)

EDIT: Yup!  The RuneAxe was in that chest!  Someone's been messing in my ROM.   :finger:
« Last Edit: July 15, 2015, 05:56:25 PM by Entroper »

Grimoire LD

  • FF4 Hacker
  • *
  • Posts: 1,684
    • View Profile
Re: Unprecedented Crisis now on RHDN
« Reply #107 on: July 15, 2015, 06:18:42 PM »
I just checked the source of my download link.  It was jce3000gt.com.   :laugh:   I'm intensely curious what's in that chest now, in the unmodified ROM.  Going to play for 3 minutes and find out.  :)

EDIT: Yup!  The RuneAxe was in that chest!  Someone's been messing in my ROM.   :finger:

Is that a joke... or did that actually happen...? If so I had no idea there were so many bad dumps of FFIV out there. There's only supposed to be 300 GP in the chest.

Entroper

  • FF4 Hacker
  • *
  • Posts: 235
  • Gender: Male
    • View Profile
Re: Unprecedented Crisis now on RHDN
« Reply #108 on: July 15, 2015, 07:45:14 PM »
Is that a joke... or did that actually happen...? If so I had no idea there were so many bad dumps of FFIV out there. There's only supposed to be 300 GP in the chest.

It definitely happened.  I'm sure JCE was in the ROM at some point and just didn't realize that he had edited that version.  Funny coincidence that it ended up giving me Thor's Hammer after applying a hack patch.

Entroper

  • FF4 Hacker
  • *
  • Posts: 235
  • Gender: Male
    • View Profile
Re: Unprecedented Crisis now on RHDN
« Reply #109 on: July 15, 2015, 08:06:07 PM »
I'm uploading my streamed videos directly to YouTube now, as they retain much better quality than when you archive them from Twitch.  I'll start streaming again in a few minutes, while I wait.  :)

Grimoire LD

  • FF4 Hacker
  • *
  • Posts: 1,684
    • View Profile
Re: Unprecedented Crisis now on RHDN
« Reply #110 on: July 15, 2015, 08:29:54 PM »
I'm uploading my streamed videos directly to YouTube now, as they retain much better quality than when you archive them from Twitch.  I'll start streaming again in a few minutes, while I wait.  :)

Looking forward to it, From what I've seen of your video thus far it seems it will be an enjoyable watch.

Entroper

  • FF4 Hacker
  • *
  • Posts: 235
  • Gender: Male
    • View Profile
Re: Unprecedented Crisis now on RHDN
« Reply #111 on: July 15, 2015, 10:55:22 PM »

chillyfeez

  • FF4 Hacker
  • *
  • Posts: 1,285
  • Gender: Male
  • Go ahead, ask me about Angel Feathers!
    • View Profile
Re: Unprecedented Crisis now on RHDN
« Reply #112 on: July 16, 2015, 10:56:29 AM »
Okay, Cid's Tackle is ready to go!
Couple of things to note:
  • The command is still called "Peep." I figured Pinkpuff should get to rename it to whatever she feels is appropriate
  • The spell I replaced was "Something happens to Adult Rydia," A.K.A. "y    ."
  • I made the command unperformable when critical, and thus had to make it so Kick can be executed when floating
  • The attached patch should be applied to an Unheadered ROM

For those of you interested in what's going on under the hood...
Code: [Select]
$02/FFBE 22 18 FF 03 JSL $03FF18[$03:FF18];Jump to Failure/Success (depending on whether targeting ally/enemy) subrtouine
++++++++++++++++++++++++++++++++++++++++++
$03/FF18 AD D3 26    LDA $26D3  [$7E:26D3];Load "Next Action Enemy Target" byte
$03/FF1B F0 01       BEQ $01    [$FF1E]   ;If zero (because you've targeted an ally), jump ahead
$03/FF1D 6B          RTL                  ;If enemy is targeted, return to routine
$03/FF1E FA          PLX                  ;
$03/FF1F A2 EE C7    LDX #$C7EE           ;
$03/FF22 DA          PHX                  ;Basically, this manipulates the stack, so that the RTL will return to a different routine instead of the one it jumped out of - namely, the routine for Sneak/Pray/Cover (character steps forward, strikes a pose, then steps back)
$03/FF23 6B          RTL                  ;"Return," as discussed above
------------------------------------------
$02/FFC2 EA          NOP                 
$02/FFC3 EA          NOP                  ;unused remnants of old code that would take a long time to eliminate
$02/FFC4 20 8B C2    JSR $C28B  [$02:C28B];not quite sure - it's used in the "Land" routine, I think to set some variables...
$02/FFC7 22 E3 FE 03 JSL $03FEE3[$03:FEE3];Jump to subroutine (this is done to conserve valuable space in the 02 block)
++++++++++++++++++++++++++++++++++++++++++
$03/FEE3 A5 49       LDA $49    [$00:0049];Load slot # of targeted enemy
$03/FEE5 0A          ASL A                ;multiply by 2
$03/FEE6 AA          TAX                  ;transfer A to X
$03/FEE7 BD 5D F0    LDA $F05D,x[$7E:F061];Load targeted enemy's x-position
$03/FEEA 29 F8       AND #$F8             ;Eliminate (relatively insignificant and potentially bothersome) lower 7 bits
$03/FEEC 85 00       STA $00    [$00:0000];store result in 00 (custom routine won't use this, but it's done by "Land," and since we're still using a piece of that routine, best to just keep doing this)
$03/FEEE 8D 33 F1    STA $F133  [$7E:F133];store result in 7EF133
$03/FEF1 BD 5E F0    LDA $F05E,x[$7E:F062];Load targeted enemy's y-position
$03/FEF4 38          SEC                  ;
$03/FEF5 E9 18       SBC #$18             ;Subtract 18 (because the y-position here represents the top row of sprites, and things will look better if we reference a space 0x18 pixels down from there)
$03/FEF7 29 F8       AND #$F8             ;Get rid of those insignificant and potentially bothersome lower 7 bits
$03/FEF9 8D 34 F1    STA $F134  [$7E:F134];Store result in 7EF134
$03/FEFC 85 01       STA $01    [$00:0001];Store result in 01 (see note above about 00)
$03/FEFE 6B          RTL                  ;Return
------------------------------------------
$02/FFCB 20 B6 C5    JSR $C5B6  [$02:C5B6];
$02/FFCE 90 03       BCC $03    [$FFD3]   ;
$02/FFD0 20 AC C2    JSR $C2AC  [$02:C2AC];not quite sure - it's used in the "Land" routine, I think to set some variables...
$02/FFD3 A9 03       LDA #$03             ;Load "walking animation" into A
$02/FFD5 20 F7 C7    JSR $C7F7  [$02:C7F7];Jump to subroutine that stores the specified stance into the rpoper location in RAM
$02/FFD8 20 13 85    JSR $8513  [$02:8513];Jump to subroutine that writes all the changes we've made so far to the PPU
$02/FFDB 20 B6 C5    JSR $C5B6  [$02:C5B6];not quite sure - it's used in the "Land" routine, I think to set some variables...
$02/FFDE BD C5 EF    LDA $EFC5,x[$7E:F194];Load current x-position
$02/FFE1 38          SEC                  ;
$02/FFE2 E9 06       SBC #$06             ;Subtract 6
$02/FFE4 9D C5 EF    STA $EFC5,x[$7E:F194];Store in current x-position
$02/FFE7 90 03       BCC $03    [$FFEC]   ;
$02/FFE9 20 AC C2    JSR $C2AC  [$02:C2AC];not quite sure - it's used in the "Land" routine, I think to set some variables...
$02/FFEC 22 FF FE 03 JSL $03FEFF[$03:FEFF];Jump to subroutine (again, to conserve space in the 02 block)
++++++++++++++++++++++++++++++++++++++++++
$03/FEFF BD C6 EF    LDA $EFC6,x[$7E:F195];Load current y-position
$03/FF02 CD 34 F1    CMP $F134  [$7E:F134];Compare with target's y-position (minus 18, as discussed above)
$03/FF05 F0 0D       BEQ $0D    [$FF14]   ;If equal, skip ahead (and make no changes)
$03/FF07 90 05       BCC $05    [$FF0E]   ;If current y-position is less than target's, skip ahead
$03/FF09 38          SEC                  ;
$03/FF0A E9 04       SBC #$04             ;
$03/FF0C 80 03       BRA $03    [$FF11]   ;If current y-position is greater than target's then subtract 4 from current y-position
$03/FF0E 18          CLC                  ;
$03/FF0F 69 04       ADC #$04             ;If current y-position is less than target's then add 4 to current y-position
$03/FF11 9D C6 EF    STA $EFC6,x[$7E:F195];store (added or subtracted) result in current y-position
$03/FF14 AD 33 F1    LDA $F133  [$7E:F133];Load target's x-position into A
$03/FF17 6B          RTL                  ;Return
------------------------------------------
$02/FFF0 DD C5 EF    CMP $EFC5,x[$7E:F194];Compare Target's x-position with current x-position
$02/FFF3 90 E3       BCC $E3    [$FFD8]   ;If target's x-position is lower (further left), then jump back up to pass through all the position adjustments again
$02/FFF5 A9 0C       LDA #$0C             ;If currentx-positon matches target's x-position (and thus the "advance" portion is done), load 0C ("Casting" pose)
$02/FFF7 DA          PHX                  ;
$02/FFF8 20 F7 C7    JSR $C7F7  [$02:C7F7];
$02/FFFB FA          PLX                  ;Store pose in appropriate place in RAM
$02/FFFC 4C F9 C4    JMP $C4F9  [$02:C4F9];Jump to the "Jump Back" portion of the "Land" routine

 :edit:
Just for fun...
I was playing around with some of those subroutines that I don't really know what they do. When you EA out the one at $02/FFC4, this is the result:
TackLOL
 :laugh:
« Last Edit: July 16, 2015, 11:25:17 AM by chillyfeez »

Grimoire LD

  • FF4 Hacker
  • *
  • Posts: 1,684
    • View Profile
Re: Unprecedented Crisis now on RHDN
« Reply #113 on: July 16, 2015, 12:16:45 PM »
Wow, that looked fantastic! (Aside from the running in circles for ever) I have to wonder why FFIV kept it so basic. That idea has so much potential! Granted it wasn't until FFVI where Square really started experimenting with battle animations and all of that.

chillyfeez

  • FF4 Hacker
  • *
  • Posts: 1,285
  • Gender: Male
  • Go ahead, ask me about Angel Feathers!
    • View Profile
Re: Unprecedented Crisis now on RHDN
« Reply #114 on: July 16, 2015, 12:21:18 PM »
If you watch that video closely, Cid also runs backwards.
That doesn't happen in the actual animation.

The patch actually can be applied to any ROM (as long as you don't plan on running the "Adult Rydia Returns" battle, of course), if you wanna see the real command in action.

Pinkpuff

  • Flan Princess
  • *
  • Posts: 924
  • Find a Megalixir in Unprecedented Crisis!
    • View Profile
Re: Unprecedented Crisis now on RHDN
« Reply #115 on: July 16, 2015, 12:43:08 PM »
I can't wait to try it out! Thank you  so, so much for doing this for me, Chillyfeez!

And just in case it got lost in the discussion, was the damage display the only obstacle to having Lancet deal half of Kain's missing HP? Or was space an issue as well?
Let's dance!

Grimoire LD

  • FF4 Hacker
  • *
  • Posts: 1,684
    • View Profile
Re: Unprecedented Crisis now on RHDN
« Reply #116 on: July 16, 2015, 01:22:05 PM »
In Lancet's case it would turn out to be space. A simplified routine of giving Kain Drain and dividing his attack by 2 and jumping to the Fight routine wasn't so bad but adding a failure message took up a fair amount of remaining space.

The way that hypothetical would be drawn up is tricky

It would require basically writing the Remedy/Absorb routine and then having that deal damage at the end of it. Quite a few bytes really.

Pinkpuff

  • Flan Princess
  • *
  • Posts: 924
  • Find a Megalixir in Unprecedented Crisis!
    • View Profile
Re: Unprecedented Crisis now on RHDN
« Reply #117 on: July 16, 2015, 01:26:08 PM »
Oh ok no problem as it is, just wanted to check ^_^

Thank you both for this. The plain fighters should be considerably more interesting in the next version.
Let's dance!

chillyfeez

  • FF4 Hacker
  • *
  • Posts: 1,285
  • Gender: Male
  • Go ahead, ask me about Angel Feathers!
    • View Profile
Re: Unprecedented Crisis now on RHDN
« Reply #118 on: July 17, 2015, 08:58:10 PM »
Hey, Pinkpuff, Am I correct in assuming because you haven't said anything else that the tackle command is working as planned?

... I have to wonder why FFIV kept it so basic. That idea has so much potential! Granted it wasn't until FFVI where Square really started experimenting with battle animations and all of that.
My guess would be that the pretty much just ran out of room. Vanilla FFIV only has about four lines of empty space in the 02 block, and that seems to be where every single bit of visual assembly is for battle (as well as some other situations). Command visuals are actually pretty simple - it's just making adjustments to x-position, y-position and pose sprite - but it can take quite a bit of coding space to do anything interesting, as I learned firsthand with this tackle command. If I had to guess, I'd say that's exactly why they nixed whatever plans they had for Cid's "crash" command.

Pinkpuff

  • Flan Princess
  • *
  • Posts: 924
  • Find a Megalixir in Unprecedented Crisis!
    • View Profile
Re: Unprecedented Crisis now on RHDN
« Reply #119 on: July 17, 2015, 09:00:53 PM »
Actually I've been super busy. I promise I'll try it out tomorrow morning and let you know either way.
Let's dance!