Browse code

Do not trigger on asdr change

neauoire authored on 04/04/2021 03:29:00
Showing 2 changed files
... ...
@@ -133,13 +133,13 @@ BRK
133 133
 		DUP #f0 AND STH #01 ~Mouse.state #10 EQU #0e MUL ADD ADD #0f AND STHr ADD
134 134
 		,Audio #00 ~track.active #02 MUL ADD2 ++ POK2 $no-r
135 135
 	DUP #05 NEQ ^$no-left JNZ
136
-		,Audio #0009 ADD2 #00 ~track.active #02 MUL ADD2 PEK2
136
+		,Audio 8+ #00 ~track.active #02 MUL ADD2 PEK2
137 137
 		#10 ~Mouse.state #10 EQU #e0 MUL ADD ADD 
138
-		,Audio #0009 ADD2 #00 ~track.active #02 MUL ADD2 POK2 $no-left
138
+		,Audio 8+ #00 ~track.active #02 MUL ADD2 POK2 $no-left
139 139
 	DUP #06 NEQ ^$no-right JNZ
140
-		,Audio #0009 ADD2 #00 ~track.active #02 MUL ADD2 PEK2
140
+		,Audio 8+ #00 ~track.active #02 MUL ADD2 PEK2
141 141
 		DUP #f0 AND STH #01 ~Mouse.state #10 EQU #0e MUL ADD ADD #0f AND STHr ADD
142
-		,Audio #0009 ADD2 #00 ~track.active #02 MUL ADD2 POK2 $no-right
142
+		,Audio 8+ #00 ~track.active #02 MUL ADD2 POK2 $no-right
143 143
 	POP
144 144
 	( release ) #00 =Mouse.state
145 145
 	,draw-controls JSR2
... ...
@@ -336,10 +336,10 @@ RTN
336 336
 	( vol )
337 337
 	~ctlframe.x1 #0058 ADD2 ~ctlframe.y1 8+ #02 ,vol_txt ,draw-label JSR2
338 338
 	~ctlframe.x1 #0058 ADD2 ~ctlframe.y1 #0010 ADD2
339
-		,Audio #0009 ADD2 #00 ~track.active #02 MUL ADD2 PEK2 #04 SFT
339
+		,Audio 8+ #00 ~track.active #02 MUL ADD2 PEK2 #04 SFT
340 340
 	,draw-knob JSR2
341 341
 	~ctlframe.x1 #0068 ADD2 ~ctlframe.y1 #0010 ADD2 
342
-		,Audio #0009 ADD2 #00 ~track.active #02 MUL ADD2 PEK2 #0f AND
342
+		,Audio 8+ #00 ~track.active #02 MUL ADD2 PEK2 #0f AND
343 343
 	,draw-knob JSR2
344 344
 
345 345
 RTN
... ...
@@ -108,19 +108,6 @@ paintpixel(Uint8 *dst, Uint16 x, Uint16 y, Uint8 color)
108 108
 		dst[row + 8] |= 1UL << col;
109 109
 }
110 110
 
111
-void
112
-painticn(Uint8 *dst, Uint16 x, Uint16 y, Uint8 *sprite, Uint8 blend)
113
-{
114
-	Uint16 v, h;
115
-	for(v = 0; v < 8; v++)
116
-		for(h = 0; h < 8; h++) {
117
-			Uint8 ch1 = ((sprite[v] >> (7 - h)) & 0x1);
118
-			if(ch1 == 0 && (blend == 0x05 || blend == 0x0a || blend == 0x0f))
119
-				continue;
120
-			paintpixel(dst, x + h, y + v, ch1 ? blend % 4 : blend / 4);
121
-		}
122
-}
123
-
124 111
 #pragma mark - Helpers
125 112
 
126 113
 void
... ...
@@ -459,12 +446,19 @@ sprite_poke(Uxn *u, Uint16 ptr, Uint8 b0, Uint8 b1)
459 446
 	Uint8 *m = u->ram.dat;
460 447
 	ptr += 8;
461 448
 	if(b0 == 0x0e) {
449
+		Uint16 v, h;
462 450
 		Uint16 x = (m[ptr] << 8) + m[ptr + 1];
463 451
 		Uint16 y = (m[ptr + 2] << 8) + m[ptr + 3];
464
-		Uint16 a = (m[ptr + 4] << 8) + m[ptr + 5];
465
-		Uint8 source = (b1 >> 4) & 0xf;
466
-		Uint8 *layer = source % 2 ? screen.fg : screen.bg;
467
-		painticn(layer, x, y, &m[a], b1 & 0xf);
452
+		Uint8 blend = b1 & 0xf;
453
+		Uint8 *layer = ((b1 >> 4) & 0xf) % 2 ? screen.fg : screen.bg;
454
+		Uint8 *sprite = &m[(m[ptr + 4] << 8) + m[ptr + 5]];
455
+		for(v = 0; v < 8; v++)
456
+			for(h = 0; h < 8; h++) {
457
+				Uint8 ch1 = ((sprite[v] >> (7 - h)) & 0x1);
458
+				if(ch1 == 0 && (blend == 0x05 || blend == 0x0a || blend == 0x0f))
459
+					continue;
460
+				paintpixel(layer, x + h, y + v, ch1 ? blend % 4 : blend / 4);
461
+			}
468 462
 		screen.reqdraw = 1;
469 463
 	}
470 464
 	return b1;
... ...
@@ -500,7 +494,7 @@ audio_poke(Uxn *u, Uint16 ptr, Uint8 b0, Uint8 b1)
500 494
 {
501 495
 	Uint8 *m = u->ram.dat;
502 496
 	m[PAGE_DEVICE + 0x0070 + b0] = b1;
503
-	if(b0 & 1) {
497
+	if(b0 > 0x08 && b0 & 1) {
504 498
 		Uint16 addr = ptr + (b0 & 0x6);
505 499
 		Channel *c = &channels[(b0 & 0x6) >> 1];
506 500
 		SDL_LockAudioDevice(audio_id);