øAslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;u=278;area=showposts;start=630e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexce84.htmlslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;area=showposts;u=278e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/indexce84.html.zxËåg^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ0P.Ç_OKtext/htmlISO-8859-1gzip@øÕÇ_ÿÿÿÿÿÿÿÿTue, 10 Mar 2020 19:25:23 GMT0ó°° ®0®P®€§²ð®Ëåg^ÿÿÿÿÿÿÿÿÍ5Ç_ Show Posts - chillyfeez

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 - chillyfeez

631
Final Fantasy IV Research & Development / Re: Graphics info
« on: January 30, 2015, 08:56:53 AM »
Yes, quite clear.
Unfortunately, what you're trying to do involves using a brand new Special size that you will have to create (because the palette of special size monsters is determined by byte 2 in the table referenced in the post I linked above).
Doing so won't be too difficult, except that there are only two completely unused special sizes in the entire game, meaning you can only do this for two Underworld fiends before you have to get... creative... by which I mean destructive... by which I mean that you'll have to cannibalize some other monsters' special sizes in order to make this dream a reality.
In the past, I've suggested that if somebody wanted to do something like this, they could steal a couple of Octomamm's forms, since 8 is a little excessive, and I imagine few people see all 8 forms in a normal playthrough anyway. but regardless, you'll have to make a concession or two somewhere.
Aside from creating a new special size specifically for the new palette, you'll want all other graphical information to be identical to that of Kainazzo - same graphical pointer and aside from the palette same other four bytes in the special size detail table.
The post I linked above should contain all of the info you need to do what you're trying to do (even if it does miss some information we're only discovering now... you don't really need that for what you're trying to accomplish), but again, let me know if you need clarification on anything.

Of course, the other "problem" with this proposition is that it's going to require some hacking outside of FF4kster. Nothing that will make your ROM incompatible (I know, I've done it several times now in my hack), but since I think you've said before that you're trying to make a hack that specifically showcases the editor's capabilities, this might be something you don't want to get into... or you might want to whip up a new version of FF4kster that allows a hacker to edit the special size table (I know, that makes it sound so easy, huh?).
Anyway, that's all up to you. I'm working the closing shift tonight, so I won't be around most of the (EST) evening, but I'm home all weekend so if you have any questions, ask away.

632
Final Fantasy IV Research & Development / Re: Graphics info
« on: January 30, 2015, 07:55:20 AM »
There's a lot involved in changing monster sprites, pinkpuff, and from your description, I'm not quite sure which of the details you're missing...
First of all, the palette for a special size monster is coded into the table referenced here, instead of the regular monster info palette assignment (note how most bosses "use" palette 00, because they are actually ignoring that byte altogether), that's how, for instance, k. And q. Eblan can change palettes mid-battle.
Also, it's important to know that all special size monsters in the same battle draw from the same pool of sprites - 254 of them beginning with the first one pointed by the graphical pointer, so they all have to share a graphical pointer that begins with the earliest sprite used, and the sprtite arrangement of all of the special sized monsters has to account for this common starting point.
If you're making a monster that is just a second Kainazzo, it'll probably be easiest to just copy Kainazzo's details. But if you're doing something more like the Elements battle, it'll likely be more complicated.
Did that help at all?
I don't think I explained that very well, so let me know if you need clarification.

633
Final Fantasy IV Research & Development / Re: Graphics info
« on: January 29, 2015, 10:19:48 PM »
Good going with transition style!
I figured out those top two bits just recently, too, because I'm working on a dual special boss battle in my hack currently.
The upper four bits in byte three have to do with palettes. If they match for both monsters, then they will both use the latest slot's palette (until that monster dies). I really took the long, confusing way round to figure that all out, too... I put together the monster in slot 0 first, and put an imp (as a dummy) in slot 1 just to test it all out, and everything worked fine. Then I made the second monster, and things kinda went haywire. Monster 0 was sporting monster 1's palette, and while monster 0 transitioned fine, 1's transition was all kinds of buggy. So then I spent a couple of hours researching the Eblans. Would have been far less if slick was up at the time, but even though I needed to go back to look at my own research, what I have saved on my computer is not complete, so I had to actually find the Eblans' data before I could study them. But once I knew I was looking at the right entries the missing pieces became pretty clear.

BTW, I also discovered that byte 0 is entirely position. The upper four bits are X, and the lower four are Y. Not quite sure how I missed that before...

634
Final Fantasy IV Research & Development / Re: Graphics info
« on: January 28, 2015, 07:33:00 PM »
Whether the monster uses a lunar script or not is determined entirely by whether you are on the moon or not.
So if you put lunar monsters in the Overworld, they will use entirely different battle sequences.

... Did that answer your question?

635
Quote
(which is never done for any area in FFIV aside from Crystal Chambers)
Well, and towns and castles... but I get your drift, and it is a fun idea.

636
Oh, that's the multiplication subroutine from the original Monster Level-Up patch. And 1/E100 is division.

637

Looks like things are moving smoothly! I am still a little confused about your adjustment Ratio and plan and how an Imp and EvilMask would be next to nothing. An Imp's ratio at a Level 60 or so should give roughly 1200 Exp. per Imp? Or something like that? Whereas with an early EvilMask fought at level... say 10. it would decrease from 50000 Exp to... (50000 /10 =) 5000 Exp.
... Yeah, I'm not really sure what I was thinking there. I guess I was thinking that the average of, say 1/2 and 3/2 is 1, so if your adjusted APL is exactly between the base level of two enemies, their ratios will cancel each other out for EXP award, but I can't seem to actually make that happen with my calculator, so never mind.

Quote
Also will this plan allow for breaking of the 65535 limit on default Exp. assignments?
I don't know yet. I have to look at exactly how the exp award routine works. I have to figure that each monster can only have that as its base max, but the "total exp award" pool must be three bytes, because 7 monsters with 0xFFFF each would be 0x06FFF9. The questions I'd have to answer would be:
1) can I multiply numbers that are more than two bytes? (I don't think so, but three byte products are ok)
2) does the game add each monster's exp individually, or does it multiply then add? (FFFF+FFFF+FFFF vs. 3*FFFF - it matters in this particular situation)

At any rate, I haven't even started that portion yet, but the new stat adjustment routine seems to be working great!
I'll refrain from making a patch until the whole shebang is done, but here's some code disassembly:
Code: [Select]
main routine:
$01/DE60 9D 24 20    STA $2024,x[$7E:22A4]
$01/DE63 5A          PHY                 
$01/DE64 DA          PHX                 
$01/DE65 FE 00 20    INC $2000,x[$7E:2280]
$01/DE68 C2 20       REP #$20             
$01/DE6A A9 80 02    LDA #$0280           
$01/DE6D 8D 90 22    STA $2290  [$7E:2290]
$01/DE70 7B          TDC                 
$01/DE71 E2 20       SEP #$20             
$01/DE73 22 20 E0 01 JSL $01E020[$01:E020]
$01/DE77 C2 20       REP #$20             
$01/DE79 0A          ASL A               
$01/DE7A 0A          ASL A               
$01/DE7B 0A          ASL A               
$01/DE7C 0A          ASL A               
$01/DE7D 0A          ASL A               
$01/DE7E 0A          ASL A               
$01/DE7F 0A          ASL A               
$01/DE80 0A          ASL A               
$01/DE81 7A          PLY                 
$01/DE82 BE 02 20    LDX $2002,y[$7E:2085]
$01/DE85 20 00 E1    JSR $E100  [$01:E100]
$01/DE88 99 12 20    STA $2012,y[$7E:2095]
$01/DE8B C9 00 01    CMP #$0100           
$01/DE8E B0 11       BCS $11    [$DEA1]   
$01/DE90 7B          TDC                 
$01/DE91 E2 20       SEP #$20             
$01/DE93 B9 70 20    LDA $2070,y[$7E:20F3]
$01/DE96 10 07       BPL $07    [$DE9F]   
$01/DE98 4C B8 DF    JMP $DFB8  [$01:DFB8]
$01/DE9B EA          NOP                 
$01/DE9C EA          NOP                 
$01/DE9D EA          NOP                 
$01/DE9E EA          NOP                 
$01/DE9F C2 20       REP #$20             
$01/DEA1 B9 12 20    LDA $2012,y[$7E:2095]
$01/DEA4 BE 02 20    LDX $2002,y[$7E:2085]
$01/DEA7 86 E8       STX $E8    [$00:00E8]
$01/DEA9 48          PHA                 
$01/DEAA 20 70 E1    JSR $E170  [$01:E170]
$01/DEAD E2 20       SEP #$20             
$01/DEAF 99 02 20    STA $2002,y[$7E:2085]
$01/DEB2 EA          NOP                 
$01/DEB3 EA          NOP                 
$01/DEB4 EA          NOP                 
$01/DEB5 18          CLC                 
$01/DEB6 69 0A       ADC #$0A             
$01/DEB8 99 2F 20    STA $202F,y[$7E:20B2]
$01/DEBB C2 20       REP #$20             
$01/DEBD B9 1B 20    LDA $201B,y[$7E:209E]
$01/DEC0 29 FF 00    AND #$00FF           
$01/DEC3 85 E8       STA $E8    [$00:00E8]
$01/DEC5 68          PLA                 
$01/DEC6 48          PHA                 
$01/DEC7 20 70 E1    JSR $E170  [$01:E170]
$01/DECA C9 0E 00    CMP #$000E           
$01/DECD 90 03       BCC $03    [$DED2]   
$01/DECF A9 0D 00    LDA #$000D           
$01/DED2 E2 20       SEP #$20             
$01/DED4 99 1B 20    STA $201B,y[$7E:209E]
$01/DED7 C2 20       REP #$20             
$01/DED9 B9 1D 20    LDA $201D,y[$7E:20A0]
$01/DEDC 29 FF 00    AND #$00FF           
$01/DEDF 85 E8       STA $E8    [$00:00E8]
$01/DEE1 68          PLA                 
$01/DEE2 48          PHA                 
$01/DEE3 20 70 E1    JSR $E170  [$01:E170]
$01/DEE6 C9 AF 00    CMP #$00AF           
$01/DEE9 90 03       BCC $03    [$DEEE]   
$01/DEEB A9 AE 00    LDA #$00AE           
$01/DEEE E2 20       SEP #$20             
$01/DEF0 99 1D 20    STA $201D,y[$7E:20A0]
$01/DEF3 C2 20       REP #$20             
$01/DEF5 B9 28 20    LDA $2028,y[$7E:20AB]
$01/DEF8 29 FF 00    AND #$00FF           
$01/DEFB 85 E8       STA $E8    [$00:00E8]
$01/DEFD 68          PLA                 
$01/DEFE 48          PHA                 
$01/DEFF EA          NOP                 
$01/DF00 20 70 E1    JSR $E170  [$01:E170]
$01/DF03 C9 00 01    CMP #$0100           
$01/DF06 90 03       BCC $03    [$DF0B]   
$01/DF08 A9 FF 00    LDA #$00FF           
$01/DF0B E2 20       SEP #$20             
$01/DF0D 99 28 20    STA $2028,y[$7E:20AB]
$01/DF10 C2 20       REP #$20             
$01/DF12 B9 2A 20    LDA $202A,y[$7E:20AD]
$01/DF15 29 FF 00    AND #$00FF           
$01/DF18 85 E8       STA $E8    [$00:00E8]
$01/DF1A 68          PLA                 
$01/DF1B 48          PHA                 
$01/DF1C 20 70 E1    JSR $E170  [$01:E170]
$01/DF1F C9 00 01    CMP #$0100           
$01/DF22 90 03       BCC $03    [$DF27]   
$01/DF24 A9 FF 00    LDA #$00FF           
$01/DF27 E2 20       SEP #$20             
$01/DF29 99 2A 20    STA $202A,y[$7E:20AD]
$01/DF2C C2 20       REP #$20             
$01/DF2E B9 22 20    LDA $2022,y[$7E:20A5]
$01/DF31 29 FF 00    AND #$00FF           
$01/DF34 85 E8       STA $E8    [$00:00E8]
$01/DF36 68          PLA                 
$01/DF37 48          PHA                 
$01/DF38 20 70 E1    JSR $E170  [$01:E170]
$01/DF3B C9 00 01    CMP #$0100           
$01/DF3E 90 03       BCC $03    [$DF43]   
$01/DF40 A9 FF 00    LDA #$00FF           
$01/DF43 E2 20       SEP #$20             
$01/DF45 99 22 20    STA $2022,y[$7E:20A5]
$01/DF48 C2 20       REP #$20             
$01/DF4A B9 24 20    LDA $2024,y[$7E:20A7]
$01/DF4D 29 FF 00    AND #$00FF           
$01/DF50 85 E8       STA $E8    [$00:00E8]
$01/DF52 68          PLA                 
$01/DF53 48          PHA                 
$01/DF54 20 70 E1    JSR $E170  [$01:E170]
$01/DF57 C9 00 01    CMP #$0100           
$01/DF5A 90 03       BCC $03    [$DF5F]   
$01/DF5C A9 FF 00    LDA #$00FF           
$01/DF5F E2 20       SEP #$20             
$01/DF61 99 24 20    STA $2024,y[$7E:20A7]
$01/DF64 BB          TYX                 
$01/DF65 C2 20       REP #$20             
$01/DF67 9E 09 20    STZ $2009,x[$7E:2289]
$01/DF6A B9 07 20    LDA $2007,y[$7E:208A]
$01/DF6D AA          TAX                 
$01/DF6E 29 FF 00    AND #$00FF           
$01/DF71 85 E8       STA $E8    [$00:00E8]
$01/DF73 68          PLA                 
$01/DF74 48          PHA                 
$01/DF75 20 70 E1    JSR $E170  [$01:E170]
$01/DF78 99 07 20    STA $2007,y[$7E:208A]
$01/DF7B 8A          TXA                 
$01/DF7C 29 00 FF    AND #$FF00           
$01/DF7F EB          XBA                 
$01/DF80 85 E8       STA $E8    [$00:00E8]
$01/DF82 68          PLA                 
$01/DF83 48          PHA                 
$01/DF84 20 70 E1    JSR $E170  [$01:E170]
$01/DF87 18          CLC                 
$01/DF88 79 08 20    ADC $2008,y[$7E:208B]
$01/DF8B C9 00 01    CMP #$0100           
$01/DF8E 90 03       BCC $03    [$DF93]   
$01/DF90 A9 FF 00    LDA #$00FF           
$01/DF93 99 08 20    STA $2008,y[$7E:208B]
$01/DF96 B9 07 20    LDA $2007,y[$7E:208A]
$01/DF99 99 09 20    STA $2009,y[$7E:208C]
$01/DF9C B9 15 20    LDA $2015,y[$7E:2098]
$01/DF9F 29 FF 00    AND #$00FF           
$01/DFA2 85 E8       STA $E8    [$00:00E8]
$01/DFA4 68          PLA                 
$01/DFA5 20 70 E1    JSR $E170  [$01:E170]
$01/DFA8 C9 00 01    CMP #$0100           
$01/DFAB 90 03       BCC $03    [$DFB0]   
$01/DFAD A9 FF 00    LDA #$00FF           
$01/DFB0 E2 20       SEP #$20             
$01/DFB2 20 90 E0    JSR $E090  [$01:E090]
$01/DFB5 99 15 20    STA $2015,y[$7E:2098]
$01/DFB8 BB          TYX                 
$01/DFB9 7A          PLY                 
$01/DFBA FE 00 20    INC $2000,x[$7E:2280]
$01/DFBD AD A5 28    LDA $28A5  [$7E:28A5]
$01/DFC0 5C FB 90 03 JMP $0390FB[$03:90FB]

Code: [Select]
Determine Adjusted APL Routine:
$01/E020 C2 20       REP #$20             
$01/E022 7B          TDC                 
$01/E023 AA          TAX                 
$01/E024 A8          TAY                 
$01/E025 85 A9       STA $A9    [$00:00A9]
$01/E027 E2 20       SEP #$20             
$01/E029 B9 00 20    LDA $2000,y[$7E:2083]
$01/E02C F0 0B       BEQ $0B    [$E039]   
$01/E02E B9 02 20    LDA $2002,y[$7E:2085]
$01/E031 C2 20       REP #$20             
$01/E033 18          CLC                 
$01/E034 65 A9       ADC $A9    [$00:00A9]
$01/E036 85 A9       STA $A9    [$00:00A9]
$01/E038 E8          INX                 
$01/E039 C2 20       REP #$20             
$01/E03B 98          TYA                 
$01/E03C 18          CLC                 
$01/E03D 69 80 00    ADC #$0080           
$01/E040 A8          TAY                 
$01/E041 7B          TDC                 
$01/E042 CC 90 22    CPY $2290  [$7E:2290]
$01/E045 90 E0       BCC $E0    [$E027]   
$01/E047 A5 A9       LDA $A9    [$00:00A9]
$01/E049 20 00 E1    JSR $E100  [$01:E100]
$01/E04C A2 03 00    LDX #$0003           
$01/E04F 20 00 E1    JSR $E100  [$01:E100]
$01/E052 0A          ASL A               
$01/E053 E2 20       SEP #$20             
$01/E055 6B          RTL                 

Code: [Select]
Speed Adjusting Routine:
$01/E090 D9 15 20    CMP $2015,y[$7E:2098]
$01/E093 F0 2D       BEQ $2D    [$E0C2]   
$01/E095 90 0B       BCC $0B    [$E0A2]   
$01/E097 38          SEC                 
$01/E098 F9 15 20    SBC $2015,y[$7E:2098]
$01/E09B 4A          LSR A               
$01/E09C 18          CLC                 
$01/E09D 79 15 20    ADC $2015,y[$7E:2098]
$01/E0A0 80 20       BRA $20    [$E0C2]   
$01/E0A2 C2 20       REP #$20             
$01/E0A4 EB          XBA                 
$01/E0A5 E2 20       SEP #$20             
$01/E0A7 B9 15 20    LDA $2015,y[$7E:2098]
$01/E0AA C2 20       REP #$20             
$01/E0AC EB          XBA                 
$01/E0AD E2 20       SEP #$20             
$01/E0AF 99 15 20    STA $2015,y[$7E:2098]
$01/E0B2 A9 00       LDA #$00             
$01/E0B4 C2 20       REP #$20             
$01/E0B6 EB          XBA                 
$01/E0B7 E2 20       SEP #$20             
$01/E0B9 38          SEC                 
$01/E0BA F9 15 20    SBC $2015,y[$7E:2098]
$01/E0BD 4A          LSR A               
$01/E0BE 18          CLC                 
$01/E0BF 79 15 20    ADC $2015,y[$7E:2098]
$01/E0C2 60          RTS   

Sorry, there's no commentary for now.
I'll repost with explanations at some point; but at least since I posted it I won't lose where I put it (like I did half the shadow party hack).

638
I'm making some progress on the new level adjustment code today. Hopefully I can finish it soon.
The way it will work is this:
All normal monster stats will adjust the same as before, except for Agility. Agility will adjust by half the difference it was adjusting before.
So, if a Monster normally had an agility score of 0x10, and the adjustment ratio would normally adjust it up to 0x20, then it will instead adjust to 0x18.
Likewise, if a Monster had an agility score of 0x10 and the ratio would adjust it down to 0x08, then it will adjust down to 0x0C instead.
So the agility changes will be half as drastic as all other stat changes.

As for Bosses...
If the boss monster's starting level is higher than the adjusted APL, then there will be no effect on the Monster's stats at all (boss monsters will not weaken under any circumstances).
If the boss monster's starting level is lower than the adjusted APL, then all stats will adjust as though the Boss was a normal monster (Weaker bosses will get significantly harder the higher your party's level).

I still have to debug the APL calculations before this is complete, but he new coding jumps to a subroutine to calculate APL, so making changes is easy to do without disturbing the rest of the code.


As for Exp adjustment...
I haven't begun that portion yet, but if I recall correctly, what the game does is look at the monster types and quantities and simply perform some calculations based on those figures to determine the total experience award.
This presents a bit of an issue with adjustments, since a different adjustment cannot be made for each individual monster.
SO, my plan is to save each monster's adjustment ratio in the unused stat bytes 2012,x and 2013,x (base wisdom and willpower). At the end of the battle, an average adjustment ratio will be calculated, and the total experience award will be multiplied by this number.
This will make things kinda weird if you fight a battle against, say, an Imp and an EvilMask (I know, this generally will never happen, but you get my point), because the adjustment average will be close to nothing.
For most normal battles, though, this will work nicely, I think...

639
You can definitely make that crater thing a trigger.
It's already walkable, so you'd just have to set it's "trigger" flag in tile properties, which I documented here:
http://slickproductions.org/forum/index.php?topic=1866.msg18872#msg18872
And for reference, which tile you're editing and the location of the underworld map properties is in this post:
http://slickproductions.org/forum/index.php?topic=1866.msg19013#msg19013
And like we discussed previously, you could take one of the "tanks shooting the tower" trigger points.
That's definitely all doable.
The Gulg volcano location maps are definitely an issue as you said... Wonder if maybe a palette swapped cave tileset would work? At least you'd still have the rocky terrain, and then you could have flowing water (lava), as well.

640
So Gulg volcano will be sort of an underground Zot, in that you never see it and you cannot enter it after the story progresses? It's an innovative solution to the lack of map editing ability.

In general, I like the ideas. What would you do differently if you could edit the map, though? Because though it's not as easy as using FF4kster, I have had some success using a somewhat convoluted method using Yousei's editor...
Since World Map data are in the same place in versions 1.0 and 1.1, you can terraform on a 1.0 ROM, make a patch, then apply the patch to your 1.1 hack. You have to take care not to edit too much, though, because Yousei's editor will automatically expand the ROM and relocate map data if it runs out of room.
Also, this method won't help change triggers or anything like that. Anything beyond terraforming still needs to be done "the hard way."

I'm wondering, also... How many "free" monsters do you have left? Will there be enough to give a unique feel to two new dungeons?
 :hmm:

641
So:
1) reduce the degree to which speed is affected, and
2) have bosses adjust up but not down.

I like those ideas a lot. I think I'll even make those changes in my own hack. Thanks!

The rewrite will be pretty significant, but not particularly difficult - the relative level calculation will remain the same (except for the part about skipping empty slots), only the stats affected will have to change. So it'll take a while to fix, but should be worth it in the end.

 :edit:
Do you think this mod could benefit from a level-appropriate exp adjustment while I'm at it?
It would have to be entirely separate coding from the stat adjustment, because stats are populated at the beginning of battle and exp is figured at the end. I can store the adjustment ratio in some unused stat record bytes, though - monsters have plenty of them. The purpose of something like that would be so that people don't exploit the mod against, say, Flamedogs around Eblan (probably many possibilities in the Underworld, too).

642
Hey, Grimoire. So when I find the time over the next week, I'll be working on a fix for the level-up patch APL problem.
While I'm doing that would be as good a time as ever to change which boss stats are affected... Any thoughts about that, since you were talking about it recently?

643
You're right that those messages appear... I'd be surprised if they weren't part of the pool of battle messages, though.
Or am I misunderstanding the question?

644
Looks to me like, no, it's not easily fixable. That is, there isn't enough space in the Sylph routine itself to rewrite the code so that it works properly.
That being said, it would be very easy to write a new routine that handles the MP reduction properly for both spells, but it would have to occupy a new space. Are you sure these are the only two spells that use this subroutine for MP reduction, Grimoire? I mean, that doesn't really matter, I guess, except that if they were, and I wrote a new routine in a new place that doesn't use them, then I would blank out the space they occupy once the new routine is created.

By the way, regarding processor status (since you put those question marks in there): the SNES CPU has eight processor status flags that can either be turned off (reset) or on (set) with these instructions, and the parameter identifies which flag(s) is (are) being affected by bit identification (01, 02, 04, 08, 10, 20, 40, 80). Flags 4 and 5 (10 and 20) are the only ones I've ever seen FFIV use (and flag 4 is rare), and they affect the 16-bit status of the x/y registers and the accumulator (A) respectively.
So, SEP #$20 makes the Accumulator 8 bits, and REP #$20 makes it 16 bits (SEP #$10 and REP #$10 do the same for x and y).

I just realized that you may have disassembled that a long time ago, so... sorry if you knew that already.

645
Oooh, yeah.

That certainly is a problem. I'll probably have to rework the routine a bit to fix it.
Now that you mention it, there's probably nothing in there that tells it to ignore dead party members either, which I think I would want to do.

Gimme a little time on this one, I'm not positive I'll have the time to fix it before I go away for the weekend, but it's high on the priority list - especially since this is an issue that would manifest in TfW, too.