Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - nfitc1

Pages: [1] 2 3 4 5 6 ... 120
General Discussion / Re: I promise I'm a good speller
« on: Today at 01:44:12 »
I believe it was changing “of course” to “off course”. I vaguely remember seeing that pop up a few times. Maybe it was a random correction.

General Discussion / Re: Do you think it's pointless?
« on: 2023-01-14 23:25:10 »
Someone feel free to correct me if I’m wrong, but they would both use the same windows registry entries. I actually have two sets of exe files (disc based) that are modified to look at different registry keys. One for modding and one for vanilla. I’d say install the disc version and make a copy of the exe and modify it to look at a different location. Then you can have the steam version separate from the disc version.

General Discussion / Re: FF7 Steal Rate
« on: 2022-12-19 20:00:48 »
PrC is a bit...haphazard when it comes to enemy stat editing. I put that together as an afterthought. It was originally only supposed to be an enemy action editor, but it slowly expanded to more and doesn't do any of it perfectly even though it's the defacto scene.bin editor now.

The "garbled stuff" in the first scenes are debug/test enemies and formations. Why so many? I dunno. The text doesn't seem to mean anything. It's not in ASCII and it doesn't seem to translate to anything in the Japanese text either.

5. There's really only Diamond Weapon that uses this script so that's all I have to go on. I don't know of a case where there are other enemies in the battle that have preActionScripts, but here's what I can glean from my limited testing:

- After the enemy turnTimer indicates that a enemy has a turn, the enemy 'turn' is added to a prioritised turn queue
- When it is the enemy turn get priority it:
- Executes the 'main' script, which may or may not result in a 0x92 command (with < 0x20 arg)
- The script continues processing until it reaches the end code
- Before executing any action, all TARGETS of the queued action run each of their preActionSetup scripts prior to the action performing damage calculation/status change. Multiple scripts are never run asynchronously and damage calculations wait until all preActionSetup scripts are resolved.
- Damage calculations/status changes are performed (though not applied immediately) and animation scripts of all queued actions are executed.
- postActionScripts are run sequentially on all active actors (not just targets).
- The previous three steps are repeated until the action queue is empty.

Lot to unpack here.

1. You are correct on all counts. Keep in mind the game will process an entire script in a single frame. Rather, it will not draw the next actor/background animation frame until the current script is complete. For the PC that means halting the entire battle, for the PSX that just means halting the actor models. Only one script is run per frame just by design. When an enemy's timer is full, it will run its main script after the current active battle action is complete. If everyone is idle then the script will execute immediately. Enemies get queued on their order to execute their scripts based on these timers. Counter action scripts will run in battle index order (Actor 4, Actor 5, etc). General counters first, then physical/magic counter script depending on the type of damage that they took.

2. This is actually an excellent question and one I didn't look into much. NOT masking a bit range has limited uses so I never saw a 02 data type on the stack. However, keep in mind that these are word arguments. They are represented as, say,
Code: [Select]
01  4160 in most disassemblers it will look like
Code: [Select]
01 60 41 in a hex editor.

3. There is a distinction between global values and global variables. It's might be more accurate to call the 2XXX addresses to be the actions' metadata. The 20A0 address contains a bitmap of all the active targets the current script owner considers an opponent. This does not include dead/nullified opponents. There is only room for a two-byte value here so an enemy will find the value of 0007 during their turn (assuming all playable characters are alive and not petrified). This is set at the beginning of script execution and can be modified, though that's not the desired function.

4. I'm not great with video editing, but I have done a considerable amount of reversing the scripts and can tell you how all of it works. We can keep the conversation here rather than DMs or Discord. I just don't check those as often.

General Discussion / Re: FF7 Steal Rate
« on: 2022-12-10 15:24:22 »
Due to the way the stealing mechanic works it’s dependent on the steal rate of the items in the enemy data. If you want to increase the stealing rate of an enemy or individual item that’s where to go. Making steal always succeed would require some drastic changes to the way the game calculate item chances. I helped DLPB remake the steal mechanics a while back. Those changes are likely on the board somewhere.

There are a few NPCs in the same field as the battler that cause the RNGLUT to progress. As they move they will change the next value. When the NPCs complete their random action they will pick a new RNG value. Since they both use the same RNGLUT they have a moderate influence on each other.
The field’s RNGLUT doesn’t increment by frame. There’s only one RNG value in the game that I know of that does and it’s in battle and only very rarely used.
There might be some initial condition and set up that will allow for a turbo controller to win, but it would take a lot of math to figure out the ideal condition.

I’ve done lots of reversing with the 3D battler, actually. The fifth fighter is a programming mistake that happens because defeating the fourth battler doesn’t properly end the game. The last action you took during the fourth fight is what dictates the “active” move the game will react to. If you won with a low punch then the script will continue to cause Cloud to react as if a low punch is a scoring strike. Freezing Cloud’s hit counter will show there’s no way to break this cycle. Since the script that plays this game doesn’t update its reactions after the fourth battle it repeatedly reacts the same way. Oddly it doesn’t update its own hit counter either so it’s impossible to win. I documented this behavior on the ffwiki, but left out the technical details to make it readable to a wider audience.

You are correct that it doesn’t read your input and which punch you decide to throw is completely arbitrary, but it’s unlikely a turbo controller could win. 3DB uses the field’s RNGLUT to pull its random values from and for a single punch to be used to win would require watching that value in memory and pushing a button when that value was within a certain range of values. I bet that could be scripted with relative ease, though thats not something I have experience with.

Wonder Catcher is the lowest hanging fruit in GS. I didn’t even remember it was a thing.
The Chocobo race reversing is extremely interesting! I’ve often wondered about it. I wish I could help, but my laptop is half busted.

No. And this thread is for discussing the tool, not modding.

That’s not a WM question. That’d have better luck as its own topic.

Is it possible to increase how often 'Added Effect' goes off and change Chocobuckle to also multiply by level like in the original Japanese release? Or would I need something else like 'Materia Keeper'?
This is a function of the special effect of the action (summon). It would require some asm rewrite to change it.

Same. I came up with a good idea, but suck at graphic design and couldn’t pull it off if I tried.

General Discussion / State of current wiki
« on: 2022-05-26 20:52:38 »
Is the replacement qhimm wiki gone? This page doesn't seem to exist any longer. I don't remember the last time I checked. Probably years.

Head canon, no matter the source, is just that. “If it didn’t happen on screen it didn’t happen.” All we saw is Midgar being overgrown after 500 years. According to the other sources (AC, DoC) the events in this game did not cause the extinction of humanity.

Troubleshooting / Re: OG PC disks or Steam release?
« on: 2022-02-04 19:42:59 »
All of the mods should work fine with the OG disks. The Steam edition needs a small tweak to get mods to work, but they all work with both versions. Apart from that, Steam won’t need a no-CD patch and has a speed up cheat. My disks work except for one video file that is corrupted on the first one so I can’t play with disks anymore. I have my videos saved on my drive and the registry pointed to them as the source of the FMVs.
My take is if you have working disks then don’t bother with the Steam edition. I have made minimal changes to my config and it all still works fine for me. I also stay away from board drama so I couldn’t advise about what topics not to bring up.

Hmmm. Why do you think there's a boosting stat for the two it wants to win?

Observation. I have no hard evidence, but I've seen the lower speed chocos win over higher speed with better sprint. There might be more going on, but it looked like they were "favored" because they were making better use of their speed and sprint. Otherwise you could just bet on the two with the highest speed stat and win every time.

I'm going to provide some preliminary speculation based on my own observations on this minigame.

Stats are important, but in the end it's all random. Whether the chocobos will sprint or if they will veer left or right and at what time. The chocobo's rank is based on a holistic calculation of all its stats. I can't tell you HOW that calculation is performed. The higher the intelligence, the less they will swerve. The higher the stamina, the longer they can sprint. yadda, yadda.

It also seems like there's some external data at work here. As the race begins, the game just "boosts" some of the positions. It sort of chooses which two it wants to win and gives them some stat-independent advantages at random intervals. These two are more likely to win and it's just completely random whether they do or not. The highest ranks don't always get boosted either.

What I would do: Since you have identified where these are in the PSX memory, what you can do is make a savestate before the chocobos begin running, check the winners vs losers, reload the save, swap the winners' stats with the losers' stats and see how that affects the outcome.

Addendum: I haven't seen ergonomy_joe for a while. Not saying he's not reading the forums. I still do, but I rarely post anymore.
I have looked at the chocobo.wat file, but it doesn't seem independent enough to parse into individual files. This is a "big" hassle in the lgp files too. They don't contain enough metadata on their own to be used separately. It's all contained in the exe file where different fragments start and their size.
However, looking at the bytes inside it looks like it contains several parts that consist of default values for some things. Possibly even proprietary AI scripts which I can't immediately find handlers for. I say that because they LOOK like scripts, but not asm code. It's more like the WM scripts or Field scripts, but they're quite short. It also likely contains the modeling info for the different tracks though the model data and textures for the objects are saved independently in the chocobo.lgp file.

General Discussion / Re: FF7-PSX Tifa slots
« on: 2022-01-13 17:36:26 »
WallMarket cannot help. I can't give you actual memory addresses, but on the PC version(s) it's in the executable as a byte array of 0s, 1s and 2s. It's a 10x16 array and should be searchable in any hex editor. Sometimes knowing what to search for can help you find it. I can't guarantee that information helps.

First four "rows" are like this:
Code: [Select]
01 02 02 02 02 01 01 01 01 01 01 01 01 01 01 01
01 00 02 02 02 00 01 01 01 01 01 01 01 01 01 01
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
01 01 00 02 02 00 01 01 01 01 01 01 01 01 01 01

The rows of 0s are "buffer" rows for the unusable X-3 limits

It's actually in the Battle AI script so Proud Clod can (should anyway) be able to prevent the "defeated flag" from getting set for both.

I don’t know if an editor is in use yet, but the easiest way to make a mod is to modify the world map scripts. As soon as the battle ends their flag for defeat is set and they disappear. Change the script to prevent this defeat flag from getting set and they’ll stay for repeat battles. You could edit your save and reset their defeat status manually. You might not get more than one reward I forget how the reward script works exactly.

7th Heaven / Re: random battles bug?
« on: 2021-10-10 13:05:18 »
That’s a SLUT problem in the KERNEL.BIN file. Make sure the KERNEL.BIN and the scene.bin file you are using are synced

General Discussion / Re: Help about 9999 limit
« on: 2021-08-06 14:58:16 »
Which version?

General Discussion / Re: FF Pixel Remaster
« on: 2021-07-08 03:01:49 »
Pretty much every Japanese font is fixed-width. The higher the resolution the more detail you can put into the kanji. I’ve seen FF7’s Jap font and its characters are so small and ambiguous (though context would make them obvious). They’re all 24x24 pixels and with 48x48 you can get way better looking characters. When you translate that size into a variable width font with too small space between the characters it ends up looking squished. Just increase that blank space from 0 padding to 2 px on the menus and the problem would probably resolve itself.

Yes, the GS/RT values were way off. I must have typed something into my calculator wrong and just kept on keeping on with the transcription error. The encounter chances are actually

Code: [Select]
GS/RT1 5120
GS/RT2 10240
GS/RT3 21504
GS/RT4 32768

I'll update the tables above accordingly so there's as little duplicate data as possible.

According to your table: the chance of getting Mideel2 with a mastered lure is 21.9% * 50% = 10.95%
I thought the mastered lure went up to 20. It does not. You are correct based on the wording I gave.

And thanks for doing some practical tests on these values. I still can't get my game to load and test them myself. :(

Pages: [1] 2 3 4 5 6 ... 120