• Welcome to Final Fantasy Hacktics. Please login or sign up.
 
June 16, 2024, 06:48:09 pm

News:

Use of ePSXe before 2.0 is highly discouraged. Mednafen, RetroArch, and Duckstation are recommended for playing/testing, pSX is recommended for debugging.


On the subject of the Mime, Bard & Dancer.

Started by Vanya, September 22, 2009, 11:06:46 pm

Vanya

September 22, 2009, 11:06:46 pm Last Edit: December 31, 1969, 07:00:00 pm by Vanya
I was over at the wiki reading the ASM hacking section and it seems there is a major problem to being able to turn Mime into a normal job.

It seems that the game doesn't keep track of a unit's learned A/R/S/M abilities for the mime job. This explains why if you give a Mime abilities in the patcher and make them learn them in game they disappear immediately as soon as you enter a battle. (Actually I think they disappear as soon as you exit the menu.)

There may be a solution to this, though because of something I noticed with the A/R/S/M ability data that IS held in RAM. The game keeps track of both Bard and Dancer abilities for every unit. This explains why if you remove bard and dancer's requirements they both become default jobs for males and females.

My first idea is to make the game load learned A/R/S/M data for both Bard and Dancer from the one set of RAM addresses. This would leave the other set of RAM addresses available for the Mime to use for it's learned A/R/S/M data.

This is how the RAM addresses are currently used:
Quote*0x00CC Bard Action Abilities 1-8
*0x00CD Bard Action Abilities 7-16
*0x00CE Bard R/S/M 1-6
*0x00CF Dancer Action Abilities 1-8
*0x00D0 Dancer Action Abilities 7-16
*0x00D1 Dancer R/S/M 1-6

They would instead work like this since normally only males have Bard and only females get dancer:
Quote*0x00CC Bard/Dancer Action Abilities 1-8
*0x00CD Bard/Dancer Action Abilities 7-16
*0x00CE Bard/Dancer R/S/M 1-6
*0x00CF Mime Action Abilities 1-8
*0x00D0 Mime Action Abilities 7-16
*0x00D1 Mime R/S/M 1-6

This would require some ASM hacking to modify the code that loads these values. But it would definitely allow the Mime to learn and keep it's A/R/S/M abilities. This wouldn't solve the equipment problem that Mimes have, but it would be a good start.

There is a second alternative that warrants consideration. Supposing that one wanted to keep the Mime as is, one could take advantage of the fact that every character already has separate data for Bard and Dancer and simply remove the sex requirements from them. The complication with this idea is that one would also have to figure out a way to assign male dancers and female bards a sprite to each of them. This would reduce the max number of special units in UNIT.BIN by 2 but would effectively allow for one additional job on the job wheel.

It seems that the way the game works is that it blocks access to Bard or Dancer by checking if either the Male or Female booleans are on.
Evidence of this is that if a character has neither male nor female checked in the ENTD they have access to both jobs, but if they are both male and female they get neither job. So the solution is simply to isolate the code that checks these two booleans and NOP the hell out of it.

This opens up the possibility of replacing Bard & Dancer with new jobs or merging them and adding a single new job.

Comments?


Edit: I also noticed that if a unit is both male and female they use male sprites, but if they're neither they use female sprites. This is regardless of the selected sprite set which seems to still control the portrait regardless of the sex booleans chosen.
  • Modding version: Other/Unknown
¯\(°_0)/¯

SilvasRuin

September 22, 2009, 11:36:40 pm #1 Last Edit: December 31, 1969, 07:00:00 pm by SilvasRuin
It's very interesting, but since Mime still has issues that are unsolved, the second possibility sounds more appealing.

Vanya

September 23, 2009, 07:29:22 am #2 Last Edit: December 31, 1969, 07:00:00 pm by Vanya
I think so, too.
It'll be easier, I think, to make Bard/Dancer normal than to fix everything that Mime has screwed up about it.
  • Modding version: Other/Unknown
¯\(°_0)/¯