rstewart215804: Yes, I just set the Flatworld terrain to 000A and lowered the "Y" vertice values. I didn't delete the level terrain polygons, just set them clockwise, so they won't show up in the game (but will in TT64 if you don't enable culling). The reason for that is if I just replaced the 0xBF commands with 00 values, or set the triangles to 00, 00, 00, TT64 will crash. There is some explanation for this on some older thread.
Edit: While checking for collision errors (and indeed I found one in my platform), I discovered something very interesting. Collision triangles are also sensitive to culling, so clockwise/counter-clockwise DOES matter. In fact, you can have one kind of fake wall which can only be trepassable by one side! I can't remember seeing that kind of use in the game, but it could be used for hidden areas.
Update: I still get some errors, but those occur only on some rotated platforms. Also, be sure to check the behavior thread for some interesting update regarding scaling commands!
Preview Screenshots for Version 002

Building Level Geometry with 0x24 objects.
I also had another idea for this, but I would need some help with it. Maybe I could create 2 copies of FlatWorld Battlefield in my release: one would be just a "geometry level" creator. All its loaded 0x22/0x21 commands would be custom blocks/platforms/terrains, etc. Then some custom program would read the 0x24 object data and write it as level terrain in the *other* Flatworld, so it wouldn't waste useful 0x24 objects slots for this. I think this would be a feasible way to create levels from scratch using the current TT64 interface and would require very simple coding (this is the part where I need help, I could design the program and prepare the ROM, but writing the program is something beyond my current knowledge).
One note about extending bank 0x13 (behavior bank): TT64 works well with extended banks, detects new behaviors and assign them new labels. However, I am not sure if there is too much RAM space for bank 0x13 for expansion. One of the side effects I noticed is that if you expand it too much, the game may crash or you'll miss some textures in the game! Behaviors are very short, so probably this won't be a problem, but I don't want to abuse my luck .
Since my custom behaviors are only used in the Flatworld level, there is one easy solution, and that is writing the custom behaviors to the 0x07 or 0x0E Bank, which are very expansable. That is, they will be only loaded in FlatWorld, unlike the 0x13 bank which is loaded all the time. The problem is that probably TT64 won't support this. It will create a new behavior, however when you assign it to some model, it will point to bank 13, and you have to manually change the 0x24 command to point to bank 07.
Maybe this is a too specific need to be added for now in TT64, but if you want a lot of new behaviors inside a level, or modified ones without affecting the global 0x13 bank, that could be one interesting feature. Let me stress that TT64 is already amazingly flexible to modifications (thanks a lot for that VL-Tone). |