[PSX/PC] Field Editor - Makou Reactor (2.1.0)

  • Thread starter Thread starter myst6re
  • Start date Start date
Status
Not open for further replies.
DLPB, that spreadsheet looks like your Beacause non-dialogue translation. Is that what you intended? (Was hoping it had animations or vars.)
 
@ picklejar there are two versions of the save format sheet.. (z_values should corrispond to black chcoobo but may not have been updated after the last change in bc)

the offical one w/ not as much data
http://wiki.qhimm.com/view/FF7/Savemap

and the wip black chocobo one that could have some wrong stuff
http://blackchocobo.sourceforge.net/wiki/index.php?title=Savemap

neither of them use the offsets that the field uses. its faily simple to map the field has access to 15 blocks of 256 data. but its not really that much data it since it uses two methods for access one is 8-bit the other 16-bit.
If you look on the save you will see "save bank 1/2 or save bank 7/f" those are the ones in makou 1{x} in field will be localted in save bank 1/2 and used as 8-bit 2{x}. The var manager is vastly improved in makou since i did this kind of mapping and it shows you in makou how its used!  there are some banks that the field has access to that are not saved in the savemap. They are only tempoary storage for the field.  i forget the exact banks used as temps but if they are not on the savemap they are temp.
 
Last edited:
haha sorry picklejar...  try the link again :P 

Sithlord:  Steal my table above if you want, and add to it.  It's much neater and it also lists actual memory addresses along with the 5 banks.  Either way, you've done a great job.
 
Last edited:
Lots of great info, thanks to both of you!

its not really that much data it since it uses two methods for access one is 8-bit the other 16-bit
The var manager is vastly improved in makou since i did this kind of mapping and it shows you in makou how its used!
That definitely explains a lot. For example, vars.cfg shows stuff like:
1|3|$AerisLovePoints
...
2|0|$GameMoment
...


But, as the Var Manager helps illustrate, Var{1}{x} and Var{2}{x} really point to the same address.

Also, for example, if I open md1stin, Group 0, script S0 - Main, line 7, I see:
Var{2}{28} = 763 (16-bit)

This is nice and clarifies that Var{2}{x} will be a 16-bit operation.

Also, when I go to Variable Manager, I see a button that says "Addresses Used". If I click this, it highlights in yellow all the addresses that are accessed, and shows whether they are read (r) or written to (w) or both (rw). This is also nice.

This is all fantastic. It seems like we're just one step away from doing something even more fantastic. What would be really cool is if I could go to the Variable Manager, then select a specific Var/address, then click a button, then it could show me specifically which scripts actually use it. Is that possible in Makou Reactor yet?

Yet another idea would be to create separate var names for individual bits, so that we could show something like "if (BITSET $HiPotion_mds7st1_PickedUp) ..."

So much to do, so little time... ;)
 
Remember that Makou "find all addresses" is only true of field.  It cannot find ones read/written to by world map and other modules (which is why I made mine).
 
DLPB: Regarding your spreadsheet: https://docs.google.com/spreadsheet...1nybMBAbzGKD5XUpg2_SdKZ4ik/edit#gid=867617175

You have a column called "Use". For the benefit of sithlord and myself and others, can you let us know (perhaps add a tab!) the meaning of the different letters? Something like:

  • F=Field
  • W=WorldMap
  • B=Battle
  • M=? (Minigame?)
  • U=? (Menu?)
  • H=? (Kernel?)
  • (any others)=?

Also, how are you determining the address usages? I'm assuming for Field you're using Makou Reactor, but what about WorldMap and the other modules? Are you using a tool that does reverse assembly? (And if so, which tool, and is it for PSX or PC version?)
 
Last edited:
The world map etc all use the Savemap.  The savemap there is the main 5 banks.  Don't think of the savemap as that crappy "1/2" and "7/15" nonsense.  That's just how the field code writes/reads.  It's just 5 blocks, each 256 bytes.

I can't remember my own key :P

M is minigame.

U is Menu... I think. Although I have no idea why U.

H is probably Hardcoded.
 
(You can't use M for Menu because you're already using M for Minigame, so that's why you're using U for Menu.)

The last thing I was trying to ask you was, how do you know which addresses the WorldMap uses? Is it just based on your intuition/understanding, or are you using some tool?

I just discovered that we have a Wiki page that describes the WorldMap opcodes (and the WorldMap Module in general), but did Tonberry or Ficedula or anybody ever create a tool that actually uses this? I tried Makou Reactor, but it doesn't seem to work, at least not when I try 1.6.5 against the PC version of the worldmap files.
 
Aali worked out exactly which ones world map uses, and I added them to it.  Ochu would tell you what they are all doing too, if you have time:)  That document is complete in terms of what is used or unused.  At least I think so.


Nobody has created a tool to edit the World Map script.
 
Okay, just wanted to make sure nobody has created a tool before re-inventing the wheel. I'm kinda thinking about writing a tool to read the WorldMap script and export the data/opcodes. Might be a nice way to confirm the data that you have. (I'm guessing this is essentially what Aali did.)

BTW, I just discovered that Ficedula created a tool called Reeve (never saw it on this forum, but found it on this Ficedula programs mirror page) that is able to open a FF7 world map file and display it in 3D, similar to what you would see in-game. It even lets you fly around and navigate using the mouse. Pretty slick. The textures looks pretty good with the main world map. It can even open the other 2 maps (underwater map and snowfield map) but doesn't look quite as good. Nice program, but it doesn't do anything with the WorldMap script.
 
I think this tool dump texts and update text references in WM scripts. I can plan to integrate WM scripts and texts in Makou Reactor, that will be not so complicated.
 
Myst6re:

When I change model animation text (to say CCDD.chi - bad example), it is not saved.
 
Thanks.

And does anyone know how Game Over works?  I see that it's only ever set from field once...  when Bombing Mission fails.  But where is the music being set?  It isn't in the music list.  When I try to add my own Game Over (for Weapon)  - there is no Game Over music.
 
I just wanted to say, that I DLoaded Makou Reactor a few months back, and it really has helped me tremendously with my walkthrough in so many ways, I use MR pretty much on a daily basis. I've been able to prove/disprove certain common mis-conceptions, such as how the Huge Materia is distributed; the obscure Potion in Sector 7, and its counter-part in Junon which shares the same flag; and the fact that Bahamut ZERO is permanently missable, as the box will give you nothing if you have obtained the Huge Blue Materia (which is news to me), amongst many other things. MR is the most exciting thing to happen to my guide, and it will really help me to make it as accurate as is possible (for field scripting, that is, Proud Clod is my second favorite  ;)), and you have been duly credited in the Special Thanks section Myst6re.

Anyway, I just wanted to ask, on the screenshot in your first post, I can see that you have the option to add and remove field models, as well as resize them. I however cannot, and it would really help me if I were able to, as I'm trying to create a precise map of Bone Village (excluding dig spot 8, as it's never used), and the blue orbs that are already in place would be perfect as a starting ground. I'd like to then try place a 3D model if a black line (if there is one) over the three lines of the triangle ID of the dig spots. The other option off course would be for me would be to overlap the bonevil2 map with the walkmesh, whilst highlighting the triangle ID of a particular dig spot in photoshop...

Yet another idea would be to create separate var names for individual bits, so that we could show something like "if (BITSET $HiPotion_mds7st1_PickedUp) ..."
I'm currently in the process of doing just that, however character space limitation means that I have to abbreviate each bit as a 3 character reference.
Check out this screenshot to get an idea of what I mean.
What's really cool is the fact that I can use the other memory bank to store a note against the variable itself; only the initial "bit legend" is shown in the scripts (and not the note nor the address).
So, in variable [1][134] (Junon, Icicle Inn and Gaea's Cliff events - 0x0C2A), the script would just appear as:

Bit 0 ON in $E 0~RDT 1~SGM 2~SSS 3~Shv 4~BCS 5~CIM 6~PBC 7~PAC

I have a separate Read Me file that contains the Bit legend. So, Bit 0, "RDT" means "Run Down Town" when Cloud first enters Junon. "SGM" means "Steal Glacier Map", "SSS" means "Screen Shakes, then Schizo fight". You get the picture.

I plan to spend time with every single bit of every single byte, to completely map out the Variable Manager in this way. Once I've finished, I plan to create my own savemap, and stick it in my guide. Memory Bank 5 & 6 are no-go areas, as they are "temporary" variables, and are used frequently in most scripts for a million different things. I do however plan to add a section to the Read Me file in which I note the use of every single variable from 5 & 6, map by map. Don't expect this to be done anytime soon...
 
Last edited:
Oh ok...  "over2" is game over and is there.

Still... I can't understand how Bombing Mission sets this music.
 
Status
Not open for further replies.
Back
Top