PDA

View Full Version : Bug Report jjCOLORMAP using a layer in xlmdragon.j2l eventually causes access violation


froducish
Feb 9, 2026, 05:02 PM
void onLevelBegin() {
jjCOLORMAP what(uint(206), uint(1830), uint(128), uint(71), jjLayerOrderGet()[4]);
}

Cycle to xlmdragon.j2l (https://www.jazz2online.com/downloads/7884/the-dragon-eyrie/) with the mutator on several times until access violation occurs. If it takes too long to trigger it then you might need to relaunch JJ2. What's weird about this one is that the crash happens at the same instruction pointer most of the time, not all the time. That could add difficulty to a potential fix.

Tested with JJ2+ v6.6a in Windows 10.

Violet CLM
Feb 10, 2026, 12:30 AM
I cycled 55 times with that mutator and got no crashes. Can you think of anything else you might be doing that might contribute to the crash, that you didn't specify in the first post?

froducish
Feb 10, 2026, 07:39 AM
This one seems to have a higher likelihood of crashing:

void onLevelBegin() {
jjCOLORMAP(uint(206), uint(1830), uint(128), uint(71), jjLayerOrderGet()[4]);
jjCOLORMAP(uint(1105), uint(786), uint(128), uint(71), jjLayerOrderGet()[4]);
jjCOLORMAP(uint(3237), uint(1699), uint(128), uint(71), jjLayerOrderGet()[4]);
jjCOLORMAP(uint(3264), uint(1203), uint(128), uint(71), jjLayerOrderGet()[4]);
}

I don't know if it would be helpful to say these values are sampled from me "randomly" clicking on different walls of the map, so this one would be the second most minimal reproducible example:

void onPlayer(jjPLAYER@ player) {
if (jjKey[0x02]) { // right click
uint x = uint(jjMouseX + player.cameraX - player.subscreenX - jjBorderWidth);
uint y = uint(jjMouseY + player.cameraY - player.subscreenY - jjBorderHeight);
jjCOLORMAP(x, y, uint(128), uint(71), jjLayerOrderGet()[4]);
jjSample(float(x), float(y), SOUND::RAPIER_HITCHAR);
}
}

Violet CLM
Feb 13, 2026, 06:21 PM
I tried changing onLevelBegin to onMain and still nothing. 1.23 or 1.24, host or client, still nothing.