Page 1 of 2  [ 11 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Thu Nov 30, '17, 6:28 am 
Phantasy Star II. I want to say it's my favorite out of the Original Series, and it's true, but... let's face facts, everyone. It's about as sluggish and slow as Phantasy Star III, the combat is less JRPG combat that we're used to and more "Keep doing this, press button to intervene and change tactics," Techniques are less "hit this enemy with elemental damage to hurt him more" like in Phantasy Star IV and more "hit slightly harder," and the confusing first-person mazes from Phantasy Star I are replaced with confusing third-person mazes. (That last one's not even my own; I got it from The Cutting Room Floor.)

It's still got its charm. But... holy crap, I've never seen an RPG with stats as... I hesitate to call them user-unfriendly; Final Fantasy I for the NES was user un-friendly. PSII is user-mendacious. Almost nothing works as expected.

Let's start with the least-broken and work our way down the list.

Hit Points (HP) and Technique Points (TP) work as intended. Hit Points measure how much physical abuse a character can take, and once they hit the big goose-egg, that character's body bag filler. Technique Points represent how much psychic power a character's capable of using before they're exhausted and have to whip out the hunting rifles.

Agility determines the party's initiative order in combat; generally, the higher it is, the faster a character acts in a round. There may be a little bit of fudging behind the scenes to randomize the order, though. This is improved by equipping footwear. Anna's Ner Technique and Amy's Saner Technique boost Agility by +10 for an entire combat, and repeated manifests stack. (Saner is more cost-effective due to Amy having more Tech Points overall, and four uses of Ner are more expensive than one use of Saner.)

Defense reduces incoming damage. Not surprisingly, armor helps improve this. Amy's Shu and Sashu Techniques boost Defense by 20 for the duration of one combat to one target (Shu) or the whole party (Sashu). Sashu is more cost-effective, and I think it stacks with itself.

Dexterity works more or less as intended, too. Roughly, each character has a 90% accuracy with their attacks; having a higher Dexterity than a target's Agility increases that to 100%; having a lower Dexterity reduces that to 80%.

Luck does what the manual says it does and helps determine the accuracy of enemy special attacks. It's not a 1:1 thing, though. It's in blocks. Less than 50 Luck? Nothing happens. 50 to 99 luck grants a -10% accuracy bonus to enemy specials; 100 to 149 grants a -20% accuracy, and 150+ Luck grants a -30% penalty.

Now, the fun one. Attack helps determine a character's damage bonus to attacks. Each weapon has a specific amount of damage that it does, and a character's Attack stat increases that roughly 1% for each point of Attack. It looks like a character's Attack stat improves when you equip better weapons, right? PHANTASY STAR II LIES. The boost is cosmetic. The only things that help improve your Attack stat are leveling up, Knife Boots, and Anna's Shift Technique (which gives her +20 Attack per use.)

Oh, and I should mention that guns in PSII work like guns in PSI. They do a fixed range of damage. Attack stat means nothing to them.

Fun fact through research: Amy's second-best weapon, the Silent Shot, is a pistol according to her attack animation with it in PSGen2. Yeah. That's right. That sweet, cute, innocent doctor can pack heat when she needs it.

Rolf: ...Someone tell Rudo to wipe the drool off his chin. Geez. >=/

Strength and Mental... do absolutely nothing. That's right. These numbers are like Charisma in Dungeons & Dragons. They look cool, but serve absolutely no purpose.

That out of the way, I also found out what some of the Techniques actually do. Yeah, they're kinda obfuscated and whoever did the work on the wiki I'm using probably spent a lot of time on this. But essentially:

Brose: Kain points at a robot, they have a 50/50 chance of biting it on the spot.
Conte: Kain picks a robot, it has its special attack accuracy halved. No save.
Vol/Savol: Hugh has a 60% chance of outright slaying one biological target (Vol) or a 70% chance of slaying a group of biologics (Savol.)

Rimit: 50/50 chance of paralyzing one biomonster. Like Amy's Silent Shot but worse. At least that works on robots. I think.

Shinb: Does jack. The Technique's bugged.

Fun stuff, huh? =P


Top
PostPosted: Thu Nov 30, '17, 1:08 pm 
SNORB : very interesting description of all those points concerning Phantasy Star II !
Especially concerning three points :
in fact I dkidn't know about them !
First of all, the fact that "Attack helps determine a character's damage bonus to attacks"
:o it's incredible ! Very strange decision from the conceptors of the game !

Quote:Oh, and I should mention that guns in PSII work like guns in PSI. They do a fixed range of damage. Attack stat means nothing to them

Didn't know about it too and very strange too ! :)

Quote:Luck does what the manual says it does and helps determine the accuracy of enemy special attacks. It's not a 1:1 thing, though. It's in blocks. Less than 50 Luck? Nothing happens. 50 to 99 luck grants a -10% accuracy bonus to enemy specials; 100 to 149 grants a -20% accuracy, and 150+ Luck grants a -30% penalty.

Incredible too and hard to "watch" it ! lol

Without any explanation, impossible to know about it so thank you very much ! :)


Top
PostPosted: Thu Nov 30, '17, 4:37 pm 
That is really, really, REALLY weird. Interesting digging Snorb. I mean you'd think it'd be straightforward enough that strength would affect how much damage you do, like with a physical sword? The stronger Rolf is, the more damage he does when he attacks with his sword because he can swing harder? I dunno, make it akin to the the attack stat in Pokemon, which has an affect on your physical attacks (granted that change didn't kick in until Gen II, that was when they did the attack vs. special attack split that's currently used...and that was dependent on type, now it's on a per attack basis introduced in Gen IV, but I digress...point still stands!)

Also interesting on the elemental damage thing. You'd think it'd be kind of intuitive, at least on some level, what works against what? Like, a fire spell shouldn't work well against a lava monster or something. And an electric spell should be pretty effective against a robotic foe (though now I wonder how in Horizon Zero Dawn some machines resist shock damage...special builds or something? I digress again.) Again, compare to Pokemon, you have fairly simply type advantages-disadvantages thing going on. Water beats Fire, Fire beats Grass, Grass beats Water, Electric beats Flying, Flying is immune to Ground, etc. Yeah, some of them aren't very intuitive, some of them are as they are just to fix imbalances (looking at you Dark, being super effective against Psychic only because the latter was grossly OP in Gen I when you didn't exist) and with so many types now it can be hard to remember them all..and that's without throwing in the dual-types and getting IVs/EVs involved. But once you get into the games it's pretty easy to understand and often times, intuit what will work and what won't And that's even without SuMo/USUM introducing labeling how effective a move will be after you first encounter a given Pokemon. The system generally works. To be fair though, RNG is still a part of turn-based RPGs in terms of afflicting status conditions, especially if inflicting said status condition is more of a side effect of a given attack.

Still though why isn't Charizard Dragon-type? Come on, Game Freak.


Last edited by Wolf Bird on Thu Nov 30, '17, 4:37 pm, edited 1 time in total.

Top
PostPosted: Thu Nov 30, '17, 9:59 pm 
I had already read things about how attack did not work as intended and about the useless stats (although not with such detail). Since the game was aimed people who most probably didn't care much about the real effect of numbers in stats, it worked for most, in an intuitive way.


Top
PostPosted: Fri Dec 1, '17, 12:23 pm 
True that when you play PSII, there are a LOT of times when your attack misses ! It's truly impressive and a bit boring sometimes...Not for you ?
Maybe it's tied to all those facts, too ?


Top
PostPosted: Fri Dec 1, '17, 4:42 pm 
It's possible; like I said, your accuracy goes down if your Dexterity is lower than an enemy's Agility, but there's no way to realistically view an enemy's stats in-game. You don't have Libra magic like in Final Fantasy, and you don't have one of your friends monitoring your opponents and remembering their fighting capabilities like in Persona 5.

I'm sure someone's looked at PSII's data with a hex editor and figured out how to view stats, but that seems a little out of my league.

Fun Fact #2: Phantasy Star IV has a hidden stat for each party member, Mental Defense. It's roughly equivalent to a character's Mental stat. The higher Mental Defense is, the less damage a character takes from Techniques.

I also didn't know the new Pokemon games were adding type effectiveness reminders. At least it isn't as surprising as adding Fairy types to the game and retconning several Pokemon to be Fairy types, so now all of a sudden Clefairy can go head-to-head against a Dragon-type and win.


Top
PostPosted: Fri Dec 1, '17, 6:25 pm 
I didn't know about the PSIV mental defense stat, but it makes sense. But the fact that there's nothing to see in game stats makes it slightly less fair, especially with the turn-based system already having RNG and minimal player input/influence. Making a hit or not (or critical hitting) can make the difference between winning and losing the fight so hiding that...I'm not sure I like that.

It's one of the additions to SuMo/USUM. I'm ambivalent on the change...you can argue it removes some challenge from an already easy game of remembering the type matchups, but with so many types and Pokemon, you can also argue it's a QoL change at this point. It doesn't bother me either way as someone who just enjoys the game and doesn't care about the competitive scene/metagame, and also doesn't really care about difficulty either way (if I want a challenge, I'm not going to turn to Pokemon for it). That said, I think an option to turn it off (it's on by default) would be helpful, and I can't remember offhand if the games have that toggle. I know a lot of old Pokemon got retconned into Fairy types when the type was introduced in XY in Gen VI, but it doesn't much matter to me to maintain some semblance of equality among the types. I think some Gen I Pokemon also got retconned into Steel types.


Last edited by Wolf Bird on Fri Dec 1, '17, 6:25 pm, edited 1 time in total.

Top
PostPosted: Sat Dec 2, '17, 6:39 pm 
Straight from the Phantasy Star II disassembly - this is the damage algorithm:

CalculateAttackDamage:
bsr.w UpdateRNGSeed
andi.l #$1F, d0 ; random value from 0 to 31
addi.w #$54, d0 ; add 84 to it
add.w $1A(a3), d0 ; add the attack value for character
lsl.l #8, d0 ; multiply it by 256
move.w $1E(a1), d1 ; get enemy's defense
mulu.w #5, d1 ; multiply it by 5
addi.w #$64, d1 ; add 100 to it
divu.w d1, d0 ; divide character's attack by the enemy's defense
move.w d3, d1 ; index for weapon used
andi.w #$7F, d1
lsl.w #4, d1 ; get weapon currently used
lea (InventoryData+$E).l, a4 ; get attack value
adda.w d1, a4
moveq #0, d1
move.b (a4), d1 ; get weapon attack value
addq.w #2, d1 ; add 2 to it
mulu.w d1, d0 ; multiply character's attack value by this number
lsr.w #8, d0 ; divide total attack value by 256
CheckEnemyAlive:
sub.w d0, 2(a1) ; subtract damage from enemy's current HP
bhi.s + ; return if enemy is still alive
move.w #0, 2(a1) ; force enemy's HP to 0 (enemy dead)
bset #5, 3(a2)
moveq #0, d1
move.w $C(a1), d1 ; get experience points of enemy which was killed
add.l d1, (enemy_data_buffer+$30).w ; add them to the total
move.w $A(a1), d1 ; get meseta value
add.l d1, (enemy_data_buffer+$34).w ; add it to the total
+
rts

ASM is a pain to try and parse through and read, but basically what Snorb says is basically correct. Strength is nowhere to be found in this algorithm. Now, its possible to edit this algorithm to include it but that would also require reworking every single enemy's stats to account for the change.

If you're curious about the Technique Damage algorithm, this would be it:

CalculateTechniqueDamage:
bsr.w UpdateRNGSeed
andi.l #$1F, d0 ; random value from 0 to 31
addi.w #$54, d0 ; add 84 to it
mulu.w d6, d0 ; multiply this by the technique attack rate
divu.w #$64, d0 ; divide the total by 100
bra.s CheckEnemyAlive

Not nearly as long, but as you'll notice - it doesn't include Mental at all. And for what its worth, I'm still trying to figure out how exactly Phantasy Star III handles physical and technique damage. That game's code makes zero sense to me.


Last edited by Hukos on Sat Dec 2, '17, 6:39 pm, edited 2 times in total.

Top
PostPosted: Sat Dec 2, '17, 11:32 pm 
That's awesome, Hukos. (Also, holy crap, I have no idea what programming language this is or what's going on in that code.)


Top
PostPosted: Sun Dec 3, '17, 1:01 am 
Its Motorola 68000 Assembly language. The tl;dr is that each keyword issues an incredibly specific binary command to the processor to execute. Assembly language is the lowest level you can possibly get (except for maybe, microcode) in programming. Other programming languages like C, Java, Python, etc. have things that are done automatically via the compiler and are far closer to how humans think and speak to each other. Assembly language represents how a computer thinks instead.

At the processor level, modern programming languages do eventually do stuff like this, its just abstracted away from the programmer so they don't have to deal with it. Like your "system.out.println(arguments);" command in java does stuff like this, you just won't be able to see or interact with it due to how modern programming langauges are designed.

For instance, bsr.w means "Branch to SubRoutine", with the .w representing a word length operation. This uses a label name as an argument to jump to a label with that name and then pushes that label's return address to the stack. This is done so that you can jump back to where you started later on with a rts instruction - "Return To Subroutine".

Also, I didn't find that source code on my own, the disassembly was posted by someone else (Just so I don't end up taking credit for it) - I just thought it was relevant to the topic.


Last edited by Hukos on Sun Dec 3, '17, 1:01 am, edited 1 time in total.

Top
 Page 1 of 2  [ 11 posts ]  Go to page 1, 2  Next


Who is online

Users browsing this forum: No registered users and 0 guests


Display posts from previous:
Sort by  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to: