News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: FF1 MMC5 Disassembly Updates  (Read 101152 times)

Disch

  • Hero Member
  • *****
  • Posts: 2746
  • NES Junkie
    • View Profile
Re: FF1 MMC5 Disassembly Updates
« Reply #280 on: May 10, 2019, 12:48:31 am »
I'm also running FCEUX 2.2.2 and I am not seeing that at all.

Are you using the code from the latest master?  Did you make any changes to it?

Mari42

  • Jr. Member
  • **
  • Posts: 84
    • View Profile
Re: FF1 MMC5 Disassembly Updates
« Reply #281 on: May 10, 2019, 12:52:48 am »
Ah, its normal.... I also noticed that the music sounded as an echo. Is it because the new music was added?  :-\

I also noticed when I tried to use an item such as heal in-battle, the suddenly the game freezes in the spot. Awkward...
« Last Edit: May 10, 2019, 01:06:26 am by Mari42 »

Jiggers

  • Sr. Member
  • ****
  • Posts: 274
    • View Profile
Re: FF1 MMC5 Disassembly Updates
« Reply #282 on: May 10, 2019, 01:57:55 am »
Yep! Tiny bit of echo is normal.

I'll test all the battle items again...

I fixed a bunch more little bugs I ran into while playing, and there's one I can't.



The dialogue ID displayed is $FD, but should be $FF. The code all looks good, though. Everything went right as far as I could tell. Everything made sense with $FF*2 being $FE with carry set.

Code: [Select]
DrawDialogueString:
    TAX                   ; put string ID in X temporarily

    LDA #BANK_DIALOGUE
    STA cur_bank          ; set cur_bank to bank containing dialogue text (for Music_Play)
    JSR SwapPRG_L         ; and swap to that bank

    TXA                   ; get the string ID back
    ASL A                 ; double it (2 bytes per pointer)
    TAX                   ; and put in X for indexing
    BCS @HiTbl            ; if string ID was >= $80 use 2nd half of table, otherwise use first half

    @LoTbl:
      LDA lut_DialoguePtrTbl, X        ; load up the pointer into text_ptr
      STA text_ptr
      LDA lut_DialoguePtrTbl+1, X
      STA text_ptr+1
      JMP @PtrLoaded                   ; then jump ahead

    @HiTbl:
      LDA lut_DialoguePtrTbl+$100, X   ; same, but read from 2nd half of pointer table
      STA text_ptr
      LDA lut_DialoguePtrTbl+$101, X
      STA text_ptr+1

Lich's ball is $FA and displayed fine. Sooo... *shrug*

(And fixed all that fiend graphic stuff! Going to try to make the enemy name box not pop up for a split-second since you can't target them yourself.)
« Last Edit: May 10, 2019, 02:56:07 am by Jiggers »
I know exactly what I'm doing. I just don't know what effect it's going to have.

Vanya

  • Hero Member
  • *****
  • Posts: 1502
    • View Profile
Re: FF1 MMC5 Disassembly Updates
« Reply #283 on: May 10, 2019, 02:31:37 am »
I'm using Mesen v0.9.7.

I just started a new game with the build from less than an hour ago and I'm not getting any graphical glitches so far. I'll play up to Pravoka to make sure.



Edit:

I should mention that I'm also not getting any delays in the music at all as far as I can tell.

I did notice that when I try to buy more stuff in any of the shops than I can afford, the message it displays is random-ish, but definitely not the correct "you broke-ass" message.



Edit2:

The song restart code seems to work fine up to the bridge scene.

However, after the bridge scene, it kept playing the Prologue song instead of switching back to the overworld music.

AAAND!! It doesn't restart the overworld music after leaving the map screen either.



Edit3:

I fought a group of GrIMPs and WrWolves south of the peninsula of power and for some reason the command menu did not erase during most of the battle. Afterwords it displayed the end of battle messages but there were 2 lines of jumbled letters and numbers behind the messages AND as the screen faded to black the top row of the background graphics glitched into... something.

Fought another group near by the same spot, but no glitches this time.
« Last Edit: May 10, 2019, 04:40:00 am by Vanya »

Jiggers

  • Sr. Member
  • ****
  • Posts: 274
    • View Profile
Re: FF1 MMC5 Disassembly Updates
« Reply #284 on: May 10, 2019, 04:30:42 am »
Oof.

The music should reset properly after those things (and the puzzle) now, I hope.

The shop wasn't set to display any message because I'm super dumb sometimes. It displays the right message, but I still have to update it to move the cursor away!

So I was fiddling with how the boxes are drawn when fighting Fiends, but I must have missed something. I'll work on that tomorrow.  :-[

I also have something great that's mostly done, except right now it lets corpses do the thing, and corpses should not do things.
I know exactly what I'm doing. I just don't know what effect it's going to have.

Vanya

  • Hero Member
  • *****
  • Posts: 1502
    • View Profile
Re: FF1 MMC5 Disassembly Updates
« Reply #285 on: May 10, 2019, 04:49:46 am »
Intriguing!
Yeah, we don't need any corpse party shenanigans around here.

Jiggers

  • Sr. Member
  • ****
  • Posts: 274
    • View Profile
Re: FF1 MMC5 Disassembly Updates
« Reply #286 on: May 10, 2019, 03:43:18 pm »
And its live.

Press Start in the command menu in battle to just... go nuts. It won't work in magic, gear, items, selecting an enemy, or selecting a character. Characters who have already picked a command won't be set. Characters who are dead or asleep or stoned or stunned or whatnot, shouldn't do it (I re-wrote the check for that so the game makes sure players can act before trying to do their turn, rather than trying to do their turn then checking to see if they can act.) So... what is it!

It's fight. It just makes everyone choose fight.  :P

I got tired of holding the A button down.

Also, if auto-target is turned off in the menu, it will turn it on for this, then turn it back off after the turn. Since it just automatically sets it to attack the first enemy in the list...

Next, turn select into auto-run? Yeah why not!

Also: That one battle that messed up, did you try to cast a single-target spell? That's what's messing up for me in non-fiend battles. Workin' on it next. Update; Should work as normal now? The bug was if you canceled targeting it, it would draw an extra command box...

P.S.--Mari, I'm so happy you're using the pink battle menu colours.  :D
« Last Edit: May 10, 2019, 04:48:47 pm by Jiggers »
I know exactly what I'm doing. I just don't know what effect it's going to have.

Disch

  • Hero Member
  • *****
  • Posts: 2746
  • NES Junkie
    • View Profile
Re: FF1 MMC5 Disassembly Updates
« Reply #287 on: May 10, 2019, 05:35:03 pm »
It's fight. It just makes everyone choose fight.  :P

I got tired of holding the A button down.

This is why I was never a fan of auto targetting, and why I always loved FF1's "ineffective" system.

Just thoughtlessly holding A is boring.  But I guess now you can just press start and watch the game play itself... which is slightly less boring... I guess?  ;P

Sorry.  Just being a wiseass.   :laugh:

Bregalad

  • Hero Member
  • *****
  • Posts: 2650
    • View Profile
Re: FF1 MMC5 Disassembly Updates
« Reply #288 on: May 10, 2019, 05:36:59 pm »
This is why I was never a fan of auto targetting, and why I always loved FF1's "ineffective" system.

Just thoughtlessly holding A is boring.  But I guess now you can just press start and watch the game play itself... which is slightly less boring... I guess?  ;P
Another way to make the game interesting is to actually make magic or skills useful and powerful, and so there's a incitative to not just attack. Unfortunately you had to wait until FF3 in order to actually have spells being significantly stronger than attack.

KingMike

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 6928
  • *sigh* A changed avatar. Big deal.
    • View Profile
Re: FF1 MMC5 Disassembly Updates
« Reply #289 on: May 10, 2019, 06:47:53 pm »
As well, maybe having more than a maximum of 9 MP for AN ENTIRE DUNGEON might've made using magic a more viable strategy. :P
"My watch says 30 chickens" Google, 2018

Jiggers

  • Sr. Member
  • ****
  • Posts: 274
    • View Profile
Re: FF1 MMC5 Disassembly Updates
« Reply #290 on: May 10, 2019, 07:03:57 pm »
This is why I was never a fan of auto targetting, and why I always loved FF1's "ineffective" system.

XD I completely agree with you. FF1 is higher on my list of favourite FF games because of the strategy and thinking involved. Trying to make sure your party's strength is spread out enough to take out enemies in a certain order and not waste damage and all that! The auto-fight button was really less of a "I'm too lazy to play this!" and more like, "I wonder if I can get this to work!"--and I did, so I'm happy about that.

Someday we'll get to the point where we can re-balance everything better...

Maybe I'll make my own branch where doing double digit damage is considered a lot, like those early strategy games where you do 1 damage a turn, 2 if its critical.

As well, maybe having more than a maximum of 9 MP for AN ENTIRE DUNGEON might've made using magic a more viable strategy. :P

We got ethers now, though! Just gotta figure out at what point they should be available and for what price.
I know exactly what I'm doing. I just don't know what effect it's going to have.

Vanya

  • Hero Member
  • *****
  • Posts: 1502
    • View Profile
Re: FF1 MMC5 Disassembly Updates
« Reply #291 on: May 10, 2019, 08:16:49 pm »
I'm in the minority here when it comes to auto-target, I guess.
I get it, though.

My hypothetical solution to this in my dream redesign document for FF1 is an idea for making auto-target a function of the character's intelligence and dexterity.

Basically, if the character is mentally and/or physically slow, they will have a harder time redirecting their attack in the heat of battle.

You get to keep some of the strategy of the 'ineffective' system and the smarter/faster characters (that tend to do less damage) are able to hit more consistently to balance things out a bit more.



The MP situation is one of my pet peeves.
Mostly it's because I loathe the Vancian casting system for it's inflexibility.
In my branch I definitely going to nix it in favor of a an MP pool.

The inclusion of ethers is great though.
To start, I think having them be available in Elfheim for at least 2x the cost of a Potion would work well.
I distinctly remember when I first played the game years ago having to treck back out of the Marsh cave once or twice in order to refill on spell charges before I could explore the whole thing.



Actually, I was thinking about tents, cabins, and houses last night.
FF1 is heavily influenced by D&D, so it struck me as strange that the Tent and Cabin don't let you restore your spell charges.
I know it was for balance purposes since the passage of time really has no meaning in the game, but I think it would be fine to have only have the Tent and Cabin items.
They would both restore all spell charges.
Tents would restore HP based on each character's level and stamina.
Cabins would restore maybe 3x the amount of HP?
That would put them a bit more in line with D&D.



To further that idea in a different, more realistic direction for a hypothetical branch project...
Turn the Tent and Cabin into artifacts/quest items.
Scrap the House and use it for something else.

The main menu would have a new command called Rest.
By default the Rest command would restore all spell charges and heal a minimal amount of HP equal to the character's level.
However, when using it like this there is a chance that instead of resting you could be forced into an a random battle with a higher chance to get ambushed.

If you have a Tent, you may choose to use it when resting.
Each tent has a total of 10 uses, and each time it is used it has a chance to consume 2 uses due to wear and tear.
While using a tent, the party still regains all spell charges, but instead restores HP based on level x some fraction of their stamina (level * stamina/4 or something).
When using a tent, the chances of getting attacked and of getting ambushed is reduced by 1/2.
Each tent would be at least 10x more expensive.

If you have a Cabin, you may use it during rest.
The cabin would work largely the same way as the Tent with only 1/2 as much chance of the wear and tear penalty on uses.
The amount of healing would be bumped up to 2x to 4x that of the tent.
Unlike tents, cabins provide sturdy enough shelter that there is no chance of getting attacked overnight.
Cabins should also be at least 10x their original price.

Now you have a more realistic resting system.

Ideally, you'd be limited to a maximum of 1 tent and 1 Cabin at any time.
If need be you could even give it a pseudo day/night cycle by giving it a cooldown period between uses.

And if I'm not mistaken it should even be possible to darken the screen on the overworld for a little tent/cabin cutscene like in the later games.
« Last Edit: May 10, 2019, 08:38:33 pm by Vanya »

Jiggers

  • Sr. Member
  • ****
  • Posts: 274
    • View Profile
Re: FF1 MMC5 Disassembly Updates
« Reply #292 on: May 10, 2019, 10:39:47 pm »
Things I wanted to do but thought: Gosh, this is really only FF1, why bother?
1: Day/Night cycle
2: A timer in the menu to show how long you've been playing (would need to use MusicPlay or WaitForVBlank to count the active frames.)

The pause button (select) does darken the screen. A shame there's not more ways to darken colors to show night... With only red, blue, and green emphasis, there's not really even enough combinations to make a good sunset/sunrise effect in the transition.

Random thoughts: Some message box popping up saying, "Its getting late..."
Next random battle gives enemies some kind of buff/surprise attack. Win/escape and its darker; random battles are twice as likely until morning.
Have another message pop up when morning comes, brighten the screen again.
The Lamp spell sets the battle rate back to normal. Maybe in dungeons it halves the battle rate for that floor.
Perhaps half battle rate is default in daytime.
Probably take the battle rate option out so this system is part of gameplay and not broken.
Using a tent when the "Its getting late" message pops up keeps night-time from happening.
Maybe make a game-time clock separate from play-time.
Make a tent icon and have 3 kinds of tents: Tattered, Sturdy, and Luxuriant
Players have to decide: Risky extra battles and EXP or safer travel?
FOREBODING OVERWORLD MUSIC.

...these are just dreams for now.

I'm at the Ice Cave. I'm level 14. I KEEP DYING. I don't remember it being this hard! I remember eking through at level 11! Did Mages always go with Rub > Lit 3? Did Ice Dragons always use Blizzard on their second turn? Is something wonky with AI and its using their spells/special attacks more often if they have them?

I might have screwed myself with the enemy speed stats, because I always get to go last with these enemies.

ORRRR its just rubbish RNG time. Just like how every time I want to test a player ability, I get surprised by 9 enemies.
« Last Edit: May 10, 2019, 11:12:45 pm by Jiggers »
I know exactly what I'm doing. I just don't know what effect it's going to have.

Vanya

  • Hero Member
  • *****
  • Posts: 1502
    • View Profile
Re: FF1 MMC5 Disassembly Updates
« Reply #293 on: May 11, 2019, 02:02:39 am »

If the original RNG is still in the game, then it's probably rubbish RNG.
One of the Enhancement/Bugfixes in the Astral/Anomie work is a new improved RNG.

Jiggers

  • Sr. Member
  • ****
  • Posts: 274
    • View Profile
Re: FF1 MMC5 Disassembly Updates
« Reply #294 on: May 11, 2019, 02:11:21 am »
Anyone who wants to do that is welcome to. I don't understand it myself, so I don't wanna try. I got my tiny hands full.

I fixed a whole slew of bugs with Key Items printing in their item page, and had to work up a way to rename the Bottle item while its in the Caravan shop, without renaming the weapon that has the same item ID. I decided to have the Caravan shop stay even after you pop the fairy out since he sells cool stuff. Popping the fairy no longer takes the Bottle out of your inventory, though I guess it should. You can't buy more than one bottle, I decided, so there's code to skip choosing the amount when doing that... Then more code to replace the Bottle in the caravan's inventory after you buy it... Then more code to uphold Final Fantasy traditions...

It's been a busy night. And now I got an airship, so I can go find more bugs!
I know exactly what I'm doing. I just don't know what effect it's going to have.

Vanya

  • Hero Member
  • *****
  • Posts: 1502
    • View Profile
Re: FF1 MMC5 Disassembly Updates
« Reply #295 on: May 11, 2019, 02:24:22 am »
Nice.
I'm definitely going to be taking up as many of the remaining bug fixes and enhancements as I can manage.
There are a lot of little modifications I want to do to the battle code.

Bregalad

  • Hero Member
  • *****
  • Posts: 2650
    • View Profile
Re: FF1 MMC5 Disassembly Updates
« Reply #296 on: May 11, 2019, 06:11:57 pm »
Things I wanted to do but thought: Gosh, this is really only FF1, why bother?
1: Day/Night cycle

[...]

Random thoughts: Some message box popping up saying, "Its getting late..."
Next random battle gives enemies some kind of buff/surprise attack. Win/escape and its darker; random battles are twice as likely until morning.
WHAT AN HORRIBLE NIGHT TO HAVE A CURSE.

Sorry couldn't resist. This idea is really in the wrong game in my opinion. Day/night cycles were never part of Final Fantasy series (except for story-related events).

Vanya

  • Hero Member
  • *****
  • Posts: 1502
    • View Profile
Re: FF1 MMC5 Disassembly Updates
« Reply #297 on: May 11, 2019, 09:10:10 pm »
True, but keep in mind that this is more of a project base so the more out there ideas are not going to be in the main release.
« Last Edit: May 12, 2019, 06:37:12 am by Vanya »

needsleepnow1983

  • Newbie
  • *
  • Posts: 2
    • View Profile
Re: FF1 MMC5 Disassembly Updates
« Reply #298 on: May 11, 2019, 11:46:02 pm »
Good Evening;
I'm excited to see this project coming along so nicely.  I would like to ask a couple questions or make a couple suggestions (I didn't see them mentioned in the thread).
1)  Would it be possible to implement the ability to 'forget' spells? i.e. I purchased three level 1 spells, and I want to remove one of them.  In the original FF1 game this would not be possible and I would be stuck.
2)  The ability to move spells around.  For instance I have 'Fire' on the right portion of the level 1 spell list and I want to move it to the left hand side (for convenience)...or ideally anywhere I want.

Keep plugging along :)

~needsleepnow

daman.tm

  • Jr. Member
  • **
  • Posts: 12
    • View Profile
Re: FF1 MMC5 Disassembly Updates
« Reply #299 on: May 12, 2019, 05:49:47 am »
WHAT AN HORRIBLE NIGHT TO HAVE A CURSE.

I had the exact same thought when I read this :D