Register FAQ Search Today's Posts Mark Forums Read
Go Back   JazzJackrabbit Community Forums » Maintenance & Feedback » JJ2+ Issue Tracker

Bug Report jjCOLORMAP using a layer in xlmdragon.j2l eventually causes access violation

froducish

JCF Member

Joined: Jan 1970

Posts: 10

froducish has disabled reputation

Feb 9, 2026, 05:02 PM
froducish is offline
Reply With Quote
jjCOLORMAP using a layer in xlmdragon.j2l eventually causes access violation

Code:
void onLevelBegin() {
	jjCOLORMAP what(uint(206), uint(1830), uint(128), uint(71), jjLayerOrderGet()[4]);
}
Cycle to xlmdragon.j2l (https://www.jazz2online.com/download...-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.
Attached Images
File Type: png violations.png (45.5 KB, 0 views)
Violet CLM

Administrator

Joined: Mar 2001

Posts: 11,257

Violet CLM has disabled reputation

Feb 10, 2026, 12:30 AM
Violet CLM is offline
Reply With Quote
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

JCF Member

Joined: Jan 1970

Posts: 10

froducish has disabled reputation

Feb 10, 2026, 07:39 AM
froducish is offline
Reply With Quote
This one seems to have a higher likelihood of crashing:
Code:
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:
Code:
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);
	}
}
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT -8. The time now is 11:33 AM.