rokfpoewrkcpoqwkcp wrote:Apologies for posting in the dev board. I know we're not supposed to but I have a question related to this thread.
Can I fiddle the code to add an extra condition to the 'stretchBottom' bool to try and make it a tiny bit more intelligent ?
Logic would be something like,
stretchBottom = "WideBackground" && isBottom && 3D stuff being drawn
I'd like to see if it would clean up scenes like this.
My thinking is, you only really need a wide background to fill the gaps the wider 3d creates. If there is no 3d then the wide bg isn't needed.
Although I guess it may cause more problems than it solves for some games.
I take it this is the code doing the magic ?
- Code: Select all
bool stretchBottom = m_config["WideBackground"].ValueAs<bool>() && isBottom;
Is it even possible to achieve this ? How would I change it ?
This is going to be an endless rabbit hole because frequently, 3D content is indeed drawn behind the loading screens (see Virtua Fighter 3 for an example). The way the Model 2 emulator solves this, AFAIK, is through Lua scripts that are custom written for each game and which monitor the game state by peeking at game RAM. You can go ahead and try to implement your idea but one problem you'll encounter is communicating between the 3D engine and 2D tilemap engine, which are entirely decoupled from each other. You'd need to place this logic somewhere in the top-level code above CModel3 (e.g., Main.cpp operates at this level) and then peek at the state of the Real3D memory to determine whether anything is being drawn. This won't be easy because there may be numerous ways to "draw nothing."