11 March 2016 - Forum Rules
Started by redmagejoe, December 10, 2019, 03:09:14 AM
Quote from: abw on May 01, 2022, 06:54:10 PMSometime shortly after that the formula was updated to divide the sum of skill levels by 8, becauseis exactly how it works, and that was indeed way overpowered ."Working like a normal unresistable spell" translates to "spell power is increased by floor(caster's Spirit / 4)" + "average number of hits = spell level + spell level * accuracy %" + "target's magic evasion is ignored", so the formula for Ultima looks more like:spell power = 25 + floor(caster's Spirit / 4) + floor(sum(caster's skill levels) / [skill levels are 0..15, not 1..16]and then that spell power gets passed in to the standard routine for unresistable spell damage:average damage = (spell power * (1 + random(0..spell power)) + spell power * 0.05) * (spell level * accuracy %)So in the PSP formula, it looks like the base damage value incorporates most of the damage calculation, and the average damage is basically the base damage * 1.05, but in the NES version, the spell power is part of a larger calculation, and the average damage is basically (spell power * 1.55) * number of hits.The damage functions scale very differently (PSP is quadratic in skill levels vs. linear in ours), but in general, the PSP version appears to be more powerful than our current version for low levels of Ultima (where the +100 dominates) regardless of the caster's overall power and when the caster has at least 50% of their maximum power (where the skill level squared dominates) regardless of Ultima's level.
Quote from: flamefury on May 02, 2022, 03:32:52 PMI'm still not sure how you're coming to the conclusion that PSP version is more powerful at lower levels. Reminder that the +100 is not multiplied by Ultima's level. It's only relevant for very low level sums.
<Average Damage> = (<Ultima Level> * (<Tier> + floor(<Tier> / 2)) ^ 2 + 100) * 1.05 + 0.5 * ((<Ultima Level> * (<Tier> + floor(<Tier> / 2)) ^ 2 + 100) % 256)
<Average Damage> = (<Ultima Level> * (1.5 + min(0.5, <Tier> / 16))) * (25 + floor(99 * <Tier> / 16 / 4) + floor(24 * (<Tier> - 1) / 8)) * 1.55
andi a0,s3,0xFF # s3 = base damage, get the lowest bits of damage, save into a0pos_08932D74: jal z_un_088a6470 # Rolls 0~a0(=damage % 256) for random damage bonus, outputs into v0 andi s4,s3,0xFFFF # Copies base damage into s4 andi v0,v0,0xFF # Not necessary, but capping v0 to 255 addu v0,s4,v0 # Adding into s4 for running sum of damage
0C/9EE2: A9 00 LDA #$000C/9EE4: 85 76 STA $760C/9EE6: A9 15 LDA #$150C/9EE8: 85 68 STA $680C/9EEA: A9 08 LDA #$08 ; $08: "No Magic..."0C/9EEC: 85 66 STA $660C/9EEE: A9 58 LDA #$58 ; <- try changing this to LDA #$56 to shift the text left by 2 tiles0C/9EF0: 85 67 STA $670C/9EF2: 4C 2F 97 JMP $972F ; load battle text
Quote from: flamefury on May 14, 2022, 10:27:43 PMMaybe something more like a randomization cap that's determined as a function of Ultima level and the level sum, starting at 0 when level sum tier is 0 and Ultima 1 and then capping out at 255 (or 510 or something like that) when the level sum tier is capped and Ultima 16.
Quote from: Mirage on May 14, 2022, 11:49:02 PMOn the subject of Ultima, would it be possible to break up the Ultima-level-dependent part of the damage formula into individual hits and then tack on the base 100 damage at the end? I'm curious on how having multiple lower-damage hits would affect the randomization and critical damage parts of the formula.
Quote from: AwesomeHairo on June 02, 2022, 01:56:50 PMHi everyone. I was able to remove Firion, or whatever you name him, from when the whole party gets wiped out. Thanks for that, abw.
Quote from: AwesomeHairo on June 02, 2022, 01:56:50 PMSomething else I want to do is move Battle Message, Message 9 (まほうは つかえません) a bit more to the left the Magic submenu in battle is opened.
Quote from: AwesomeHairo on June 02, 2022, 01:56:50 PMAlso, for Misc 1, Message 15 (????), is this unused? I've never found this in any capacity.
Quote from: AwesomeHairo on June 02, 2022, 01:56:50 PMAnd for Misc 2, Message 30, can  (for example, ) be used to save space for Misc 2?
Quote from: AwesomeHairo on June 02, 2022, 01:56:50 PMAnd by the way, I've completed every modification I wanted to regarding text. If anyone is interested in looking over my script to improve any existing translation that has been uploaded, I would be more than happy to provide. I usually aim for a "60% localised, 40% literal" approach.
Quote from: dada78641 on March 09, 2023, 08:47:17 AMThanks for this amazing hack, this game definitely benefits greatly from QOL improvements.
Quote from: capncrunch992 on April 03, 2023, 06:19:52 PMAs a pure spellcaster, status attacks are the way to go. [...]
Quote from: elmontro42 on April 05, 2023, 08:05:25 AMI checked your "to do" list, and am fairly certain you didn't mention it (unless someone cast blind on me).Have you considered "stacking" consumables eg. 99 potions, 99 ethers, 99 eyedrops etc?
Quote from: abooge on October 31, 2023, 12:04:49 PMDear abw and redmagejoe, thank you for your great work!Since this topic has not been active for half a year now, I'd like to know if this project would still be continued?
Quote from: abooge on October 31, 2023, 12:04:49 PMAnd, after looking at the assembly code, I have a question that annoys me - There are two warnings at $0B:$BB78 and $0B:$BB88, telling that they are also seen as data. How can I know what code accessed them? If I move code or data in bank $0B, causing data changed in these places, bugs may occur. Moreover, $0F:$C000-$C07F are also warned as seen as data, I have no idea who accessed them too.
Page created in 0.229 seconds with 19 queries.