What seems to be happening in Sol Sanctum is that room 3 is on a separate floor from most of the other rooms. When walking around off map you can run into the boundaries of most of the other rooms, but particularly you cannot run into the rooms you can retreat glitch out of.
It is really strange that when I underflow Y coordinates I can suddenly get inside room boundaries or something. I may make a camera hack soon.
Use this new script to observe and record coordinates.
local AD1 = 0x0200053a --Isaac Cur PP
local AD1Value = 18
local AD2 = 0x0200047a -- Step Counter
local AD2Value = 1
while true do
gui.text(0,20,"Isaac PP " .. memory.readword(AD1))
gui.text(0,30,"Step Counter" .. memory.readbyte(AD2))
memory.writeword(AD1, AD1Value)
memory.writebyte(AD2, AD2Value)
gui.text(0,0,"X: " .. math.floor((memory.readdword(0x02030ec4))/1000000))
gui.text(0,10,"Y: " .. math.floor((memory.readdword(0x02030ecc))/1000000))
vba.frameadvance();
end
If you find new doors please give coordinates to describe them, in addition to which room you left.
Doors I found off screen:
1: 30, 4282
2: 28, 4278
3: 4265, 4278
4: 4263, 4289
5: 50, 4280
6: 4289, 4284
(The maximum coordinate is 4294.)
Note that doors 1 and 2 compared to doors 3 and 4 seem to be mirrored coordinates of the same staircases. I have yet to figure out exactly what is happening, this is why a camera hack may or may not help.
Also a friend of mind mentioned trying this twice in a row. Retreat glitch warp off map, retreat glitch warp while off map. I may try to find a 'floor number' address in memory.
I really want to get to the upper floor of the sol/luna room and possibly skip the ridiculous Kraden cutscene.
EDIT:: Some relevant camera values, I assume these are merely reflections from somewhere else in memory, as manually setting them only messes things up. I may try to see if there is a byte representing "center camera on Isaac." I'm not sure if I'll be able to make this part work.
--Differentials from X and Y position
local dxHigh = 43515904
local dxLow = 7864320
local dyHigh = 39845888
local dyLow = 6291456
local AD2 = 0x0200047a -- Step Counter
local AD2Value = 1
while true do
gui.text(0,10,"1: " .. memory.readdword(0x02030db0)) --LowX
gui.text(0,20,"2: " .. memory.readdword(0x02030dd0)) --LowX
gui.text(0,30,"3: " .. memory.readdword(0x02030e00)) --LowX
gui.text(0,40,"4: " .. memory.readdword(0x02030e30)) --HighX
gui.text(0,50,"5: " .. memory.readdword(0x02030db4)) --LowY
gui.text(0,60,"6: " .. memory.readdword(0x02030dd4)) --LowY
gui.text(0,70,"7: " .. memory.readdword(0x02030e04)) --HighY
gui.text(0,80,"8: " .. memory.readdword(0x02030e34)) --LowY
gui.text(0,90,"9: " .. memory.readdword(0x0203108c)) --EqualY
gui.text(0,100,"X: " .. memory.readdword(0x02030ec4))
gui.text(0,110,"Y: " .. memory.readdword(0x02030ecc))
memory.writebyte(AD2, AD2Value) --Remove Encounters
--0x03001ad4 , 0x03001ad8 , and 0x03001adc (words)
--seem to contain an x coordinate for the background layers.
vba.frameadvance();
end
EDIT: New idea, try glitching in room 9 once glitching to room 9 from room 3 and see if it puts you on a different floor. The goal is to skip the Kraden cutscenes by getting onto the top floor, or by some random chance get into inner sol sanctum.