I have a related question: How many blocks on a T4.1? My patch is presently using upward of 256 blocks, can I go to 400 or 500?
Sorry I am not sure what you mean by blocks and Patch... I am guessing your sketch is taking about 256KB?
As Defragster mentioned, the T4 product page has a lot of good memory information.
Before that I started a thread:
https://forum.pjrc.com/threads/57326-T4-0-Memory-trying-to-make-sense-of-the-different-regions
that also tries to discuss some of the issues about the different memory regions.
As for 400, 500 it is really hard to say what is happening without seeing code.
For example: You have the 512kb of memory RAM1, which is used by is used to both keep faster copy of most of the code as well as all of your normal program variables and the stack.
Now if you have a bunch of area that you need to store things that is not constant or the like, you can place those variables in the RAM2, which you can control, by declaring a variable as DMAMEM:
or by using memory allocate function (malloc or new).
Or if you have bunch of read only tables and the like, if you mark them like: const uint8_t my_table[] PROGMEM = {....};
or the like, these memory allocations will stay in the flash memory.
Also back to code. As mentioned all code by default is brought down into the lower 512KB space, in 32kb chunks. That is if your code is 33KB it will take 64KB away from variables.
You can tell some functions to stay up in flash by marking the functions with the keyword FLASHMEM
Note: The T4 page has not been updated to say FLASHMEM in this case instead of PROGMEM.
Hope that helps.