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

  • Thread starter Thread starter myst6re
  • Start date Start date
Status
Not open for further replies.
I tested, and edit {MEMORY:var[15][74];size=1} seems to work. You replace 15 by what exactly?
I don't think you understood what I meant. If you create a new text dialogue box, and use the memory feature, it's impossible to use any number in the first variable box except 1 or 11. I'm not talking about editing that chocobo one. For example try to set {MEMORY:var[5][74];size=1} to a new text box and look what happens after you click OK and come back to it. It will switch to {MEMORY:var[1][74];size=1}
 
That's because bank 5 is a temporary bank and can't be used in the memory tag.
 
That's because bank 5 is a temporary bank and can't be used in the memory tag.
I see, that makes more sense. I did not know this tag was restricted to certain banks. I actually needed it for a temp reason, but 11[0] serves my purpose well anyway as I found out its the temporary Chocobo name from the Gold Saucer.
 
Could you add a comparison between two flevels (and for PSX dat files)? It would be a big help to compare a modified flevel against a unmodified. Even a comparison between PSX and PC would be great. There are a few differences in the scripts (I only knew gldgate has on PSX more scripts for Cloud).
I think it's enough if the difference would be highlighted with a color and should only indicate the field and the group of the field.
 
Could you add a comparison between two flevels (and for PSX dat files)? It would be a big help to compare a modified flevel against a unmodified. Even a comparison between PSX and PC would be great. There are a few differences in the scripts (I only knew gldgate has on PSX more scripts for Cloud).
I think it's enough if the difference would be highlighted with a color and should only indicate the field and the group of the field.
Yeah, not sure how important it is to you, but some extra helper functions for the script editor would be handy.. anything that saves some time. Such as..

1. Perhaps a better way to add If statements and labels? It's a little awkward using it currently. Especially when you copy and paste and it does a major freak out messing up your view of the script until you fix the labels. And then when you fix it, it leaves behind an extra if statement for some reason. It's rather simple to fix, but takes a little time..
2. I think before you mentioned a text editor? That might be handy for some things if you can switch in and out easily. Possibly for the above point.
 
Mystere:

Have you given any thought to what I suggested before regarding dealing with the vars v actual banks?

Instead of there being [1] and [2] There would simply be [1]
Instead of [3] and [4] there would be [2]
Instead of [5] and [6] there would be [T]
Instead of [11] and [12] there would be [3]
Instead of [13] and [14] there would be [4]
and instead of [15] and [7] there would be [5]

T would be the temp bank.

You'd make it so the field var stuff is dealt with behind the scenes.  All the user would concern themselves with is the value they want to input.  This way, a TRUE reflection of the REAL memory banks can be seen, and it's neater and easier.
 
Could you add a comparison between two flevels (and for PSX dat files)? It would be a big help to compare a modified flevel against a unmodified. Even a comparison between PSX and PC would be great. There are a few differences in the scripts (I only knew gldgate has on PSX more scripts for Cloud).
I think it's enough if the difference would be highlighted with a color and should only indicate the field and the group of the field.
That's hard for now, maybe for the next major version.

[New bank mechanism]

  • I'm OK to hide 8, 9 and 10.
  • I'm OK to indicate that 5 & 6 are temporary banks.
  • Sometimes the GETDIR opcode (which store a 8-bit value) is used with a 16-bit bank, how can I detect that? (example jundoc1a > hei3 > Script 10 > Line 2)
 
A comment system could be handy. You would have to save the comments to another file obviously.. But then you could add some handy notes to the scripting (sometimes looking at my old scripts can be a little confusing if I haven't changed it in awhile).
 
Also another small thing I just stumbled across, the old "MMMMMMMMM" name thing (which Square used in the debug room). Maybe you can add a button in the dialog editor which adds that string to the dialog? Might be handy when getting the right size for small text boxes!
 
In fact there are some new features in Makou Reactor 1.6.3, and one of them is the feature to change character names displayed in text preview.
 
In fact there are some new features in Makou Reactor 1.6.3, and one of them is the feature to change character names displayed in text preview.
Great :) Sounds like you are on top of things.
 
I work hard for the next version. There is currently a crash on the last build, I try to fix it. We're close to a new release.
 
Download Makou Reactor 1.6.3

1374939876-logo-shinra.png
Changelog:

  • "Find all" feature
  • Text editor: Some modifications about autosize feature + configuration of margins and character names.
  • Window opcode editor: Fixing crash and bug (when changing current displayed text).
  • Window opcode editor: Adding buttons to align the window vertically and horizontally.
  • Text preview: can change page with the wheel.
  • Splitting movie list in three lists: one for each disc.
  • Search var: Fixing regression when searching without value, adding "all" operation to search every occurrences of var.
  • Text editor: renaming {VAR1}, {VAR2} and {VAR3} tags into {VARDEC}, {VARHEX} and {VARDECR}.
  • Var Manager: Adding some infos about vars (r/w, size).
  • Var Manager: Merging related banks (1/2, 3/4, 5/6, 11/12, 13/14 and 15/7) hidding unusable banks (8, 9, 10).
  • ISO: fixing FIELD.BIN update bug. (need tests)
  • Fixing bug: window.bin not opened if kernel.bin is not opened.
  • Fixing CMUSC opcode length.

Thanks to Acro, Roden and DLPB for all their bug reports.
 
Last edited:
Changelog:

  • "Find all" feature
  • Text editor: Some modifications about autosize feature + configuration of margins and character names.
  • Window opcode editor: Fixing crash and bug (when changing current displayed text).
  • Window opcode editor: Adding buttons to align the window vertically and horizontally.
  • Text preview: can change page with the wheel.
  • Splitting movie list in three lists: one for each disc.
  • Search var: Fixing regression when searching without value, adding "all" operation to search every occurrences of var.
  • Text editor: renaming {VAR1}, {VAR2} and {VAR3} tags into {VARDEC}, {VARHEX} and {VARDECR}.
  • Var Manager: Adding some infos about vars (r/w, size).
  • Var Manager: Merging related banks (1/2, 3/4, 5/6, 11/12, 13/14 and 15/7) hidding unusable banks (8, 9, 10).
  • ISO: fixing FIELD.BIN update bug. (need tests)
  • Fixing bug: window.bin not opened if kernel.bin is not opened.
  • Fixing CMUSC opcode length.

Thanks to Acro, Roden and DLPB for all their bug reports.
Thanks Myst6re for a great release. Regarding the ISO FIELD.BIN update bug.. I can test this. Though I don't think reallocation is suitable for expanding the field DATs of the ISO.. It will work OK for awhile but then you'll run out of space (unless you resize the ISO/delete files). Isn't that right?

Recently I resized every field DAT manually to 35KB (via FIELD.BIN) as no tool could suit my needs. I had to map each sector using my own chart, but this is handy as I can refer to the chart whenever I edit a new room (instead of changing all the offsets at the same time). I could only do it by overwriting the Shinra car movie..

sec_zps43f0992e.png


Without overwriting that movie, resizing all fields to 35KB would be impossible even if you grouped all MIMs/BSX together (you would still be 7MB over the limit or 200 whole rooms, plus it would take a very long time changing those offsets).

If you're wondering why 35KB, its because most fields are unable to attain that size (it seems maximum file size is relative to the scene somewhat, but they can all handle same amount of scripting/text dialogues). It will crash the game and then self-corrupt in Makou long before then. To put 35KB into perspective, the chocobo stable is the largest scene at 33kb, it handles the viewing of six chocobos plus all the feeding, mating, riding, naming, buying greens features. And more. No other scene really comes close.

Only after the following points does the PS1 version start crashing/corrupting:
- Around 8000 lines of scripting
- An average amount of field groups in the scene
- All unused text still in the scene (in my test case, 120 or so text dialogues from the first Mako reactor mission).

So that's pretty good performance IMO.

You could also change that too:
- 13000 lines of script
- 10 text dialogues (seems to be a link there between code/text).
 
Is there a way to display arrows in the walkmesh view?
It's like display the background in the walkmesh view, normally it isn't hard, but I need time to learn how.
 
This is a great release!  Well done :)  ;D

A small improvement could be that when 2 byte writes occur, both bytes are marked used in the map.  So Gamemoment should cover Byte 0 and 1.
 
It's a good release. I'm glad the walkmesh crash is gone (at least so far). I haven't noticed any problems other than the things I posted earlier "we need comments!" :P
 
Field md1_2 script av_b Init is:

This group is a field model (ID=1)
Place field Model (X=3437, Y=31524, Z=642, triangle ID=47)
Deactivate contact with field model
If $GameMoment >= 8 (else go to label 1)
   Deactivate talk script for the current field model
   Deactivate contact with field model
   Hide field model
Label 1
Return

My QGears tool for conversion outputs:

0000036F: void script_av_b_2_0_init() {
0000036F:   Char(1);
00000371:   placeObject(0, 0, 3437, 31524, 642);
0000037C:   setSolid(1);
0000037C:   if (game:variable_get(2_0) >= 8) {
00000386:     setTalkable(1);
00000388:     setSolid(1);
0000038A:   }
0000038A:   setVisible(0);
0000038C:   return;
0000038C: }


From:

0000036f: CHAR 1
00000371: XYZI 0, 0, 3437, 31524, 642, 47
0000037c: SOLID 1
0000037e: IFSW 2, 0, 0, 8, 4, 7 (False target address: 0x38a)
00000386: TLKON 1
00000388: SOLID 1
0000038a: VISI 0
0000038c: RET

It seems that VISI 0 should be outside of the if statement, but your tool is including it inside of the if statement? Is this a bug in your tool or mine? I think its yours because 0x37e+7+5 = 0x38A which is the VISI 0 meaning this will be executed when the if block is not entered.
 
Status
Not open for further replies.
Back
Top