X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fdebug.c;h=e983ff6084e651755efe8aff971e52426ac83c3f;hb=bbc54accdd0db2f7135964024a3423009b5f571f;hp=60dc387c5a1a5cebe878f54117beefe76fafa546;hpb=5295fa573612c0b9c8c47c3dc42464f75639845b;p=gbajam21 diff --git a/src/debug.c b/src/debug.c index 60dc387..e983ff6 100644 --- a/src/debug.c +++ b/src/debug.c @@ -12,34 +12,16 @@ uint16_t vblperf_color[] = { 0x3e0, 0xf863, 0xffc0, 0x3ff, 0x1ff, 0x001f, 0xf81f, 0x1e0, 0xf81f, 0xf81f, 0xf81f }; -static void vblperf_intr(void) -{ - vblperf_count++; -} - -void vblperf_start(int palidx) +void vblperf_setcolor(int palidx) { vblperf_palptr = (uint16_t*)CRAM_BG_ADDR + palidx; - intr_disable(); - REG_DISPSTAT |= DISPSTAT_IEN_VBLANK; - interrupt(INTR_VBLANK, vblperf_intr); - unmask(INTR_VBLANK); - intr_enable(); } -void vblperf_stop(void) -{ - intr_disable(); - REG_DISPSTAT &= ~DISPSTAT_IEN_VBLANK; - interrupt(INTR_VBLANK, 0); - mask(INTR_VBLANK); - intr_enable(); -} uint32_t panic_regs[16]; void get_panic_regs(void); -void panic(uint32_t pc, const char *fmt, ...) +void panic(void *pc, const char *fmt, ...) { int y; va_list ap; @@ -56,7 +38,7 @@ void panic(uint32_t pc, const char *fmt, ...) fillblock_16byte((void*)VRAM_LFB_FB0_ADDR, 0, 240 * 160 / 16); fillblock_16byte((unsigned char*)VRAM_LFB_FB0_ADDR + 240 * 3, 0xffffffff, 240 / 16); - dbg_drawstr(44, 0, " Panic at %08x ", pc); + dbg_drawstr(44, 0, " Panic at %p ", pc); va_start(ap, fmt); y = dbg_vdrawstr(0, 12, fmt, ap) + 8; @@ -71,6 +53,12 @@ void panic(uint32_t pc, const char *fmt, ...) y = dbg_drawstr(0, y, " r8 %08x r9 %08x\nr10 %08x r11 %08x\n ip %08x sp %08x\n lr %08x pc %08x\n", reg[8], reg[9], reg[10], reg[11], reg[12], reg[13], reg[14], reg[15]); + /* stop any sound/music playback */ + REG_SOUNDCNT_H = SCNT_DSA_CLRFIFO | SCNT_DSB_CLRFIFO; + REG_TMCNT_H(1) &= ~TMCNT_EN; + REG_DMA1CNT_H = 0; + REG_DMA2CNT_H = 0; + for(;;); }