... | ... |
@@ -1,14 +1,15 @@ |
1 | 1 |
#!/bin/bash |
2 | 2 |
|
3 | 3 |
echo "Formatting.." |
4 |
-clang-format -i src/assembler.c |
|
5 | 4 |
clang-format -i src/uxn.h |
6 | 5 |
clang-format -i src/uxn.c |
7 |
-clang-format -i src/emulator.c |
|
8 |
-clang-format -i src/debugger.c |
|
6 |
+clang-format -i src/ppu.h |
|
9 | 7 |
clang-format -i src/ppu.c |
10 |
-clang-format -i src/apu.c |
|
11 | 8 |
clang-format -i src/apu.h |
9 |
+clang-format -i src/apu.c |
|
10 |
+clang-format -i src/assembler.c |
|
11 |
+clang-format -i src/emulator.c |
|
12 |
+clang-format -i src/debugger.c |
|
12 | 13 |
|
13 | 14 |
echo "Cleaning.." |
14 | 15 |
rm -f ./bin/assembler |
... | ... |
@@ -31,7 +32,7 @@ else |
31 | 32 |
fi |
32 | 33 |
|
33 | 34 |
echo "Assembling.." |
34 |
-./bin/assembler projects/software/noodle.usm bin/boot.rom |
|
35 |
+./bin/assembler projects/software/nasu.usm bin/boot.rom |
|
35 | 36 |
|
36 | 37 |
echo "Running.." |
37 | 38 |
if [ "${2}" = '--cli' ]; |
... | ... |
@@ -83,6 +83,7 @@ quit(void) |
83 | 83 |
free(ppu.output); |
84 | 84 |
free(ppu.fg); |
85 | 85 |
free(ppu.bg); |
86 |
+ SDL_UnlockAudioDevice(audio_id); |
|
86 | 87 |
SDL_DestroyTexture(gTexture); |
87 | 88 |
gTexture = NULL; |
88 | 89 |
SDL_DestroyRenderer(gRenderer); |
... | ... |
@@ -136,21 +137,18 @@ domouse(Uxn *u, SDL_Event *event) |
136 | 137 |
mempoke16(u, addr + 0, x); |
137 | 138 |
mempoke16(u, addr + 2, y); |
138 | 139 |
u->ram.dat[addr + 5] = 0x00; |
139 |
- switch(event->button.button) { |
|
140 |
- case SDL_BUTTON_LEFT: flag = 0x01; break; |
|
141 |
- case SDL_BUTTON_RIGHT: flag = 0x10; break; |
|
142 |
- } |
|
140 |
+ flag = event->button.button == SDL_BUTTON_LEFT ? 0x01 : 0x10; |
|
143 | 141 |
switch(event->type) { |
144 |
- case SDL_MOUSEBUTTONUP: |
|
145 |
- setflag(&u->ram.dat[addr + 4], flag, 0); |
|
146 |
- break; |
|
147 | 142 |
case SDL_MOUSEBUTTONDOWN: |
148 |
- setflag(&u->ram.dat[addr + 4], flag, 1); |
|
143 |
+ u->ram.dat[addr + 4] |= flag; |
|
149 | 144 |
if(flag == 0x10 && (u->ram.dat[addr + 4] & 0x01)) |
150 | 145 |
u->ram.dat[addr + 5] = 0x01; |
151 | 146 |
if(flag == 0x01 && (u->ram.dat[addr + 4] & 0x10)) |
152 | 147 |
u->ram.dat[addr + 5] = 0x10; |
153 | 148 |
break; |
149 |
+ case SDL_MOUSEBUTTONUP: |
|
150 |
+ u->ram.dat[addr + 4] &= (~flag); |
|
151 |
+ break; |
|
154 | 152 |
} |
155 | 153 |
} |
156 | 154 |
|
... | ... |
@@ -183,14 +181,8 @@ doctrl(Uxn *u, SDL_Event *event, int z) |
183 | 181 |
switch(event->key.keysym.sym) { |
184 | 182 |
case SDLK_LCTRL: flag = 0x01; break; |
185 | 183 |
case SDLK_LALT: flag = 0x02; break; |
186 |
- case SDLK_BACKSPACE: |
|
187 |
- flag = 0x04; |
|
188 |
- if(z) u->ram.dat[devkey->addr + 2] = 0x08; |
|
189 |
- break; |
|
190 |
- case SDLK_RETURN: |
|
191 |
- flag = 0x08; |
|
192 |
- if(z) u->ram.dat[devkey->addr + 2] = 0x0d; |
|
193 |
- break; |
|
184 |
+ case SDLK_BACKSPACE: flag = 0x04; break; |
|
185 |
+ case SDLK_RETURN: flag = 0x08; break; |
|
194 | 186 |
case SDLK_UP: flag = 0x10; break; |
195 | 187 |
case SDLK_DOWN: flag = 0x20; break; |
196 | 188 |
case SDLK_LEFT: flag = 0x40; break; |
... | ... |
@@ -293,9 +285,8 @@ audio_poke(Uxn *u, Uint16 ptr, Uint8 b0, Uint8 b1) |
293 | 285 |
} |
294 | 286 |
apu.queue->dat[apu.queue->n++] = (m[0xb] << 8) + m[0xc]; |
295 | 287 |
apu.queue->dat[apu.queue->n++] = (m[0xd] << 8) + b1; |
296 |
- } else if(b0 == 0xf && apu.queue != NULL) { |
|
288 |
+ } else if(b0 == 0xf && apu.queue != NULL) |
|
297 | 289 |
apu.queue->finishes = 1; |
298 |
- } |
|
299 | 290 |
return b1; |
300 | 291 |
} |
301 | 292 |
|
... | ... |
@@ -362,20 +353,19 @@ start(Uxn *u) |
362 | 353 |
while(SDL_PollEvent(&event) != 0) { |
363 | 354 |
switch(event.type) { |
364 | 355 |
case SDL_QUIT: |
365 |
- SDL_UnlockAudioDevice(audio_id); |
|
366 | 356 |
quit(); |
367 | 357 |
break; |
358 |
+ case SDL_KEYDOWN: |
|
359 |
+ case SDL_KEYUP: |
|
360 |
+ doctrl(u, &event, event.type == SDL_KEYDOWN); |
|
361 |
+ evaluxn(u, devctrl->vector); |
|
362 |
+ break; |
|
368 | 363 |
case SDL_MOUSEBUTTONUP: |
369 | 364 |
case SDL_MOUSEBUTTONDOWN: |
370 | 365 |
case SDL_MOUSEMOTION: |
371 | 366 |
domouse(u, &event); |
372 | 367 |
evaluxn(u, devmouse->vector); |
373 | 368 |
break; |
374 |
- case SDL_KEYDOWN: |
|
375 |
- case SDL_KEYUP: |
|
376 |
- doctrl(u, &event, event.type == SDL_KEYDOWN); |
|
377 |
- evaluxn(u, devctrl->vector); |
|
378 |
- break; |
|
379 | 369 |
case SDL_TEXTINPUT: |
380 | 370 |
dotext(u, &event); |
381 | 371 |
evaluxn(u, devkey->vector); |
... | ... |
@@ -143,7 +143,6 @@ initppu(Ppu *p, Uint8 hor, Uint8 ver, Uint8 pad) |
143 | 143 |
p->pad = pad; |
144 | 144 |
p->width = (8 * p->hor + p->pad * 2); |
145 | 145 |
p->height = (8 * p->ver + p->pad * 2); |
146 |
- |
|
147 | 146 |
if(!(p->output = malloc(p->width * p->height * sizeof(Uint32)))) |
148 | 147 |
return 0; |
149 | 148 |
if(!(p->bg = malloc(p->width * p->height * sizeof(Uint8) * 2))) |