andwhyisit wrote:All of the bugs you say? Well here's a bug you guys haven't posted yet (to my knowledge at least):
The denjuu name is overwriting the habitat name.
That's /still/ the exact same bug - when writing a string, the VWF always overwrites one more character than it should (which explains disappearing first characters in all of the following: Denjuu names in-battle, Attack option in-battle, the HP/SP bar, personality and the ?/ characters on the status screen, and the type in the index).
I'll give a short explanation of why the VWF core does this and what I plan to do in the next patch to fix it. Keep my ROM B 79C1 disassembly handy, even though it's obsolete as of v65.
A critical part of any VWF is that letters are not aligned to tiles. This means that the VWF keeps a 1bpp copy of both the current and next tile in what is called the "Temporary Compositing Area" (int size ptr at WRAM C7C3). When a letter hangs off of the edge of one tile, the VWF -must- draw it onto the next tile, because the VWF gets called once per letter to do it's magic.
Now, we -are- doing this behavior a little too frequently in my opinion. The VWF only needs to draw the next tile when a letter hangs off of it. We could be more conservative about when we actually draw into the next tile instead of doing it all the time. Also, the reason why this bug doesn't crop up more often is because most code in the game writes to VRAM in forward order, i.e. increasing addresses. Only when the game writes to tiles that are behind something already drawn with the VWF do we get this sort of behavior.
Also Sanky said on #telefang that the INVALID nature is caused by a bug he introduced; INVALID is a placeholder text he added if an invalid denjuu nature is selected. Apparantly his code sends the wrong nature string to the graphics routines or something.