| ... | ... |
@@ -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))) |