Can you explain the significance of these values:

0.13 (Setting the newX variable)

0.90 (Setting the newY variable)

(And the condition where if the newY variable is greater than half the height (On the higher half-plane)

I would like to know how you got those approximations because they seem to work for the interior of the boards but for the exterior, they become WAY off...

I probably know this, but onGetBoardCoordsFromGameCoords and onGetGameCoordsFromBoardCoords are simply inverse functions, correct? And boardCoords from gameCoords is getting the coordinates from the actual game where gameCoords from boardCoords get the coordinates from the editor board?

There really is no rhyme or reason to any of the numbers in those functions.

The minimum conversion required is the following, which is needed because the coordinates are stored differently in the game vs in the editor. In the game, X and Y are zero at the center of the board, and they grow outward. I wanted the editor to start X and Y at 0 in the upper left corner. So that's what I use right now for every board but DK right now for example.

`newX = (width / 2) + x;`

newY = (height / 2) + y;

newZ = 0;

From there I just kept messing with it until it reached what it is today

. I would tweak it and reload the ROM and see how close it made the spaces line up with an

image of the board.

The overall idea is that X needs to shrink inwards at the top and expand outwards at the bottom. Y probably has some scaling involved. I'm sure there is some sort of mathematical thing that could help, like a

transformation matrix or some perspective math. The truth of it lies in the ROM somewhere.

You're correct that the one should be an inverse of the other, one for parsing and one for overwriting. They are

~~probably~~ not true inverses. I just ran them through Wolfram Alpha when I was done.