Technical discussion for those interested in Supermodel development and Model 3 reverse engineering. Prospective contributors welcome. Not for end-user support.
I don't like the idea of using a zero-sized array for the data block; this is an extension in GNU C but I'm not sure it would necessarily work in Visual C++.
I think it does work, but I don't think it's valid c++. It's part of c99.
We can use data[1] instead, and that is legal c++. This should be fine because the the minimum size that can be written is 1 anyway.
Do you know what the reserved memory address range is? There must be a chunk that is reserved for writing these memory updates. If I can get my head around how these update buffers were working I can fix the frame timing which currently starts off vblank randomly half way through the frame lol.
for (int i = 0; i < 384; i++)
{
TileGen.DrawLine(i);
ppc_execute(lineCycles);
}
My only issue is currently my buffered data I wrote to separate memory locations. Really I think they should live in real3d memory. Just I don't know where and how big these buffers are. It's not a massive issue, but saving/loading won't quite work right unless I add these buffers to the save states .. which means breaking file compatibility again which probably isn't so cool.