So my Mode 7 engine currently allows turning around on the map (i.e., rotate the map), and moving freely on a Y axis (i.e., scrolling along the Y axis of the demo graphics used, though not the screen's).
I've been trying and trying to get scrolling along the X axis work as well in order to eventually make "forward" movement, no matter the current rotation angle, possible.
However, there are several problems/considerations:
Please try it for yourself:
http://manuloewe.de/snestuff/projects/furryrpg_build_00235.7z (This is a test build that boots straight to the Mode 7 map.)
Controls:
D-pad r/l – rotate map left/right
R/L (shoulder buttons) – increment/decrement X scroll offset by 1
D-pad u/d – decrement/increment Y scroll offset
Please try rotating the map with an X scroll offset of 1.
Clearly, I'm missing something here, and would greatly appreciate any help on this.
Thanks!
I've been trying and trying to get scrolling along the X axis work as well in order to eventually make "forward" movement, no matter the current rotation angle, possible.
However, there are several problems/considerations:
- Doing any horizontal scrolling completely breaks subsequent rotation operations. But why? Vertical scrolling does work flawlessly, so what's the difference?
- Not only that, but any horizontal scrolling offset other than $0000 (like, $0001) causes the rotation algorithm to do weird and unexpected things (like, changing the camera altitude in an actually pleasant way, even though I thought THAT was a totally different thing to achieve altogether).
- Is the scrolling direction really actually "tied" to the orientation of the source GFX, rather than the screen? If so, how did RPGs like FF6 or SoM ever manage to allow smooth scrolling in whichever direction the "camera" was facing?
Please try it for yourself:
http://manuloewe.de/snestuff/projects/furryrpg_build_00235.7z (This is a test build that boots straight to the Mode 7 map.)
Controls:
D-pad r/l – rotate map left/right
R/L (shoulder buttons) – increment/decrement X scroll offset by 1
D-pad u/d – decrement/increment Y scroll offset
Please try rotating the map with an X scroll offset of 1.
Clearly, I'm missing something here, and would greatly appreciate any help on this.
Thanks!