Users browsing this thread: 2 Guest(s)
Random Questions I have and things I want to do

#1
 
Status
None
Please tell me about the feasibility of these changes for the SNES edition of FF6.  Forgive my sperg posting.

Here's the thread where I brainstorm changes: 
https://gamefaqs.gamespot.com/boards/554...i/77391882

1. Does FF6 (snes and gba) have fields in-battle for current stats, base stats, and equipment bonuses?  I ask because I noticed that there's an enemy skill to decrease level and given that it's not an exploit for infinite esper stat boosts I assume it is temporary.  How does it remain temporary?

Things I want to do with such a routine:
* Growing Threat skill, for enemies to use to boost their stats in battle scripts on certain conditions (< 50% HP, for instance).
* Steal x skills for Locke, where he increases a stat at the expense of an enemy.

2. Repurpose Stamina into a Luck stat.

That is, remove the bonus/penalties to regen, poison, and other HP draining debuffs, and add a bunch of other things to be influenced by this stat, and then rename it Luck.  Other things it could influence are below.
Random evades.
Critical hits.
Misses.
Random damage.
Slots.
Primary damage stat for certain weapon groups.
Steal.
Draw.
Control.
Enemy formations like pincer, back attack, and preemptive strikes.
Some enemy skills and spells.
Morph.
Encounter rates.
Interceptor attacks.
Some Blitzes.
Some tools.
Some items.

3. Changed Sabin's Blitzes to use Strength.

4. Change Cyan's Techs so you select one, and then it "heats up" and then triggers, with the heat up rate partially influenced by speed.  Also create several "stances" for both Cyan and Sabin that counter with a given attack so long as you don't select another tech and don't attack.

5. Simplify the damage formulas so they resemble FF9, and give most weapons unique damage formulas, or remove level from all calculations.
Dice: luck
Darts: (agi + luk) / 2
Cards: (int + luk) / 2
Spear: (str + agi) / 2, random damage part uses Str
Daggers: (str + agi) / 2
Sword: strength, random damage part uses str and agi and divides by 4 instead of 2.
Knuckles: strength
Katana: (str + luk) / 2
Ninjato: (agi + luk) / 2
Brush: (agi + int) / 2
Rod: int
Greatsword: str
Flail: str + agi / 2, but random damage part uses luck.

(Caster attack - target defense) * (strength * (1...Strength) / 2)
(spell power - target mdef) * (caster int * (1...caster int) / 2)

6. Have Runic only work against enemy-cast spells, persist when used until it consumes a spell, then recover MP equal to the spell cost of the consumed spell and temporarily add the consumed spell to the characters spell list until the battle ends (OR add a % learned to that spell on the character's spell list).

7. Only allow certain commands when certain weapon types are equippped.  Sketch with Brushes, Slots with Darts/Dice/Cards; otherwise the character has another command. Not really necessary since I can negate the need for Control by making Sketch always work, let you choose the command used, and use the list with the most commands; and GP Rain effect can replace Joker Doom ( Evil laugh ).

8. An X-Item command for Eddie.

9. Negative esper stat gain boosts (aka penalties).  So you lose a stat, or you lose a percentage of your HP or MP gain, and possibly you lose HP or MP.

10. A switch for each party member to disable esper stat modification on level up.

11. Make Spears randomly Jump when used, and tie the time til resolution to speed and the jump rate to luck.

12. Increase the number of commands used in each Dance to 8.

13. Since level is no longer used in calculations, repurpose the level byte for enemies to something else (got any ideas?).

14. A functioning Call (summon any esper you currently have as many times as you want).

15. Limit the dual wield effect to knives, claws, and ninjato. Otherwise remove the Genji Glove effect.

16. Allow any weapon other than the above to ignore defense for any physical attack used by that character if that weapon is wielded alone and without a shield. Otherwise remove the Guantlet effect.

17. Tie counter attack to shield use.

18. Tie the True Knight effect to heavy armor (helms and plate/mail).

19. Increase near fatal status to 1/3 HP or 1/2 HP.

20. Have True Knight only work if you are in front and targeted ally is in back.
 
Quote  

#2
Posts: 3,966
Threads: 279
Thanks Received: 234
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
(01-31-2019, 05:53 PM)MysticLord Wrote: 1. Does FF6 (snes and gba) have fields in-battle for current stats, base stats, and equipment bonuses?  I ask because I noticed that there's an enemy skill to decrease level and given that it's not an exploit for infinite esper stat boosts I assume it is temporary.  How does it remain temporary?

There is temporary RAM used for battle. I assume it use the level there to lower it and this is not reflected in regular SRAM after battle.


I'm not the greatest combat system ASM hacker but each of your ideas is probably feasible with a moderate or hardcore ASM hack. How fast you can achieve them depends on your ease with 65816 and as an example the $C2 disassembly. Some like #15 and #18 could even maybe be done with simple data editing, with FF3usME or a hex editor.
  Find
Quote  

#3
Posts: 175
Threads: 11
Thanks Received: 10
Thanks Given: 8
Joined: May 2013
Reputation: 13
Status
Well-Fed
Everything is definitely feasible to one degree or another, although I do have some concerns about the different damage formulas based on weapons -- mostly in the form of available space on weapon data to determine which formula each one uses. (You could use the item symbol in the name to determine which formula is used, perhaps, to avoid that.)

All stats are copied over to battle SRAM, and modifiers used to adjust them as necessary. You can do a lot of manipulation in-battle that's not carried back over, because while everything is copied INTO battle SRAM, not everything is copied back to field SRAM/character data. It's why only some statuses persist after battle, for example.


Current Project: FF6: Tensei | Discord ID: TristanGrayse
  Find
Quote  

#4
 
Status
None
Edit
Do monsters have room for vigor and stamina/luck stats? If they don't I'll have to derive some pair of stats from another for calculations. Probabky Evasion and magic evasion, from str+agi and int+agi, probably divided by 8. Still I'd rather add 2 stats. I could use level for vigor/str and give them random lucks.

/edit

My background is in Java, with some Python. I took a poorly taught class on MIPS assembly language and the intro to CS class had a few sections on a very simple assembly language.

I would attempt to break things down into subroutine calls and work from there. For instance, to create a menu where you select Swordtechs, I would first try to manipulate the existing menu to become larger and longer. Then I would try to delete the numbers and progress bar and the logic for transferring the count that takes place to a GUI representation, while still retaining the timer as a subroutine call for later. Then I get it to display an array of dummy text, then an array of actual names, and then I finish the under-the-hood logic. Each of these things I would logically try to do as separate subroutine calls so I'm only debugging one thing at a time, then after that try to integrate them all into one piece or as many pieces as I think will be reused.

Gau's rage would have to read data from a table and display something using part of what I'm guessing is the battle menu module, though it has more in common with the status display in the field menu. Relm's Sketch would be a subset of that, except you select the actual skill used.

All this might be moot if skills have more descriptive names and if all this can be looked up and easily remembered in the field menu. Just giving enemies more apt names is a good idea. That's probably a more appropriate place for it.

I am guessing that GUI stuff is the hardest thing to start with, for a seasoned programmer.

Something where Rage, Sketch, and so on use the table that has 4 skills instead of 2 allows me to delete the obsolete tables, which may save room for other things like Gau's element/statusFX/FightDamageType/attackAttributes informational display.

Do you have advice for coding in SNES assembly language? What are the most salient points, the worst limitations, and the areas most prone to errors?

21. Change the various Techs, Blitzes, and Tools around, as such:

Swordtechs are earned only by completing events.
First 3: 1 hp absorb, 1 hit all that costs hp, 1 counter stance that always counters with an element that enemy is weak against, if any (1 of 9 attacks).
Second 3: 1 powerful hit, 2x multihit, and 1 powerful counter stance.
Last 2: 2x multihit counter stance, 3x multihit.

Blitzes are earned only by completing events.
1st three: Pummel, Suplex, Heart Chakra.
2nd three: Aurabolt, Fire Dance, Crown Chakra.
3rd three: Bum Rush, Air Blades, Sacrifice.

Sacrifice: heal all allies by half their max HP, reduce Sabin's current HP by current HP + 1.
Heart Chakra: restore Sabin's HP.
Crown Chakra: add two of either protect, shell, regen, or blur to Sabin and a random ally; add only statuses that are not currently present.
Blitz: powerful hit on random enemy.
Aurabolt: holy elemental, powerful hit, preferentially targets undead then others at random.
Fire Dance: counter stance, hit all.
Air Blades: hit 3x, air elemental.
Bum Rush: hit all, water elemental.
Suplex: remains same, but instead of damage reduction have it increase damage when a target is alone.

Edgar only gets new Tools commands from events, and they are completely decoupled from items. Not sure what they should be.

22. Allow Drain effect to deal any amount of damage, but only heal up to the casters current HP.

23. Create a Drain MP weapon attribute.

24. Terra's current Morph effect is nulled, instead she gets 1/2 MP and x-magic. Also remove the revert command since she has no way to roll over unused Morph, and give her a slightly more sane way to accumulate Morph uses.

25. Allow effects like 1/2 MP to stack.

26. Make Locke's normal attack always steal too, and change his Steal command to a skillset of maybe 4 to 8 skills that would be useful for him. Mostly status and ATB modification.
 
Quote  

#5
Posts: 200
Threads: 1
Thanks Received: 10
Thanks Given: 0
Joined: Oct 2015
Reputation: 18
Status
None
Quote:7. Only allow certain commands when certain weapon types are equipped.  Sketch with Brushes, Slots with Darts/Dice/Cards; otherwise the character has another command. Not really necessary since I can negate the need for Control by making Sketch always work, let you choose the command used, and use the list with the most commands; and GP Rain effect can replace Joker Doom ( Evil laugh ).

already been done (grays out command and prevents it from being chosen automatically):
http://web.archive.org/web/2015100212112...m#anchor17
Quote  

#6
Posts: 3,966
Threads: 279
Thanks Received: 234
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
(02-01-2019, 05:44 PM)MysticLord Wrote: Do you have advice for coding in SNES assembly language? What are the most salient points, the worst limitations, and the areas most prone to errors?

Your best friends will be a good 65816 reference doc (something like this), the RAM maps and different disassemblies, mainly the $C2 disassembly for the battle system. Maybe also something like a SNES registers list can be helpful. With these you would be all set for 90% of your hacks.

You can do whatever you want with 65816, the cool hacks will come with practice and knowledge of the game.
  Find
Quote  

#7
Posts: 89
Threads: 11
Thanks Received: 3
Thanks Given: 1
Joined: Dec 2015
Reputation: 3
Status
Debrave
It's good that you have ideas...but a lot of these ideas are highly unrealistic. In order to modify the game you have to know how the game works, and once you peel back the layers and view the disassembly, it becomes clear that there are hard limitations to consider. Contrary to what people often state, it is not really possible to do anything with modifications.

For instance, to tackle one of your ideas.

(01-31-2019, 05:53 PM)MysticLord Wrote: 6. Have Runic only work against enemy-cast spells, persist when used until it consumes a spell, then recover MP equal to the spell cost of the consumed spell and temporarily add the consumed spell to the characters spell list until the battle ends (OR add a % learned to that spell on the character's spell list).

The first three steps have been done already and are relatively easy fixes, but the fourth step (adding consumed spell) is going to be near impossible unless you ENTIRELY recode how the spell list is generated in battle.

Final Fantasy VI sets all available spells for the entire party at the beginning of a battle, and it does this, more specifically, by eliminating unknown spells. The battle system does not even check for the list to be modified in the battle "loop" so there's no structure to even account for a dynamic spell list.

Plus the in-battle magic list doesn't display partially learned spells, so it's an all or nothing propsect, but that's minor compared to the dynamic availability issue.

Now even if you want to limit it to "Runic Use = Learn Absorbed Spell or Percentage" after battle, you still have to come up with a way to track which spell was used, set a flag to be set upon a successful Runic, then add extra code to do this post-battle. This is much more doable but still not easy.
  Find
Quote  

#8
Posts: 3,966
Threads: 279
Thanks Received: 234
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
(02-02-2019, 01:00 PM)Turbotastic Wrote: Contrary to what people often state, it is not really possible to do anything with modifications.

Please elaborate on this.. I have the impression everything is feasible, and the only limitations are hardware ones. Are the ideas far away from the current system feasible? I think yes. Will they require a lot of work and mastering partially the FF6 engine? Yes. That does not mean they cannot be done.
  Find
Quote  

#9
 
Status
None
A better question is, "Is this more feasible to do in a clone of FF6 than by hacking FF6?"

That specific Runic mod was one we discussed where the other options were to counter with the spell (bad) or add it to your next attack as an also-cast spell. How feasible are these?

Edit

There are tiers of asm hacks. Some are literally hex edits, some are jumps to free space due to space limits (done less if you use labels and especially if you have a lot commented and disassembled) - essentially a function call, some are small rewrites, and last are those big rewrites.
 
Quote  

#10
Posts: 200
Threads: 1
Thanks Received: 10
Thanks Given: 0
Joined: Oct 2015
Reputation: 18
Status
None
madsiur: any idea when my site went back up?  haha; figures i learn about it right after posting an archive.org link. Tongue  i never got around to contacting those clowns, so either they spontaneously gained a clue, or somebody else got fed up and wrote them on my behalf.
Quote  



Forum Jump:

Users browsing this thread: 2 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite