From f49259ba72e65d96f9f7ceb5b1d444b8fcc2643f Mon Sep 17 00:00:00 2001 From: Zack Buhman Date: Mon, 30 Jan 2023 00:10:57 -0800 Subject: [PATCH] remove incomplete examples I've remade these in the saturn-examples repository. --- example/bitmap.c | 66 -------------------------------------- example/cell.c | 37 --------------------- example/polygon.c | 82 ----------------------------------------------- 3 files changed, 185 deletions(-) delete mode 100644 example/bitmap.c delete mode 100644 example/cell.c delete mode 100644 example/polygon.c diff --git a/example/bitmap.c b/example/bitmap.c deleted file mode 100644 index c052c2c..0000000 --- a/example/bitmap.c +++ /dev/null @@ -1,66 +0,0 @@ -#include "vdp2.h" -#include "vdp1.h" -#include "scu.h" -#include "smpc.h" -#include "sh2.h" -#include "scsp.h" -#include "m68k.h" - -void fill_32(u32 * buf, u32 v, s32 n) -{ - while (n > 0) { - *buf++ = v; - n -= (sizeof (u32)); - } -} - -void copy_16(u16 * src, u16 * dst, s32 n) -{ - while (n > 0) { - *dst++ = *src++; - n -= (sizeof (u16)); - } -} - -static inline void put_pixel(int cx, int cy, u16 color) -{ - #define CW 320 - #define CH 240 - int sx = (CW / 2) + cx; - int sy = (CH / 2) - cy; - vdp2.vram.u16[512 * sy + sx] = (1 << 15) | color; -} - -void start(void) -{ - // DISP: Please make sure to change this bit from 0 to 1 during V blank. - vdp2.reg.TVMD = ( TVMD__DISP | TVMD__LSMD__NON_INTERLACE - | TVMD__VRESO__240 | TVMD__HRESO__NORMAL_320); - - // - // vdp2: bitmap mode - // - - vdp2.reg.BGON = BGON__N0ON; - - vdp2.reg.CHCTLA = ( CHCTLA__N0CHCN__32K_COLOR // 15 bits per pixel, RGB - | CHCTLA__N0BMSZ__512x256_DOT - | CHCTLA__N0BMEN__BITMAP_FORMAT - ); - - vdp2.reg.MPOFN = MPOFN__N0MP(0); // bits 2~0 - // (boundary address value of the bit map pattern) = - // (map offset register value 3 bit) x 20000H - - // zeroize NBG0 (black) - s32 plane_size = 512 * 256 * 2; - fill_32(&vdp2.vram.u32[0x0 / 4], (1 << 15) | (1 << 31), plane_size); - - //vdp2.vram.u16[0x0 / 2] = (1 << 15) | 0x31; - //vdp2.vram.u16[((512 * 239 + 319) * 2) / 2] = (1 << 15) | 0x7fff; - - put_pixel(0, 100, 0x3f); - put_pixel(0, 0, 0x7fff); - - while (1) {} -} diff --git a/example/cell.c b/example/cell.c deleted file mode 100644 index 037aa75..0000000 --- a/example/cell.c +++ /dev/null @@ -1,37 +0,0 @@ - // - // vdp2: define and place a single character on NBG0 - // - - vdp2.reg.BGON = BGON__N0ON; - - vdp2.reg.CHCTLA = ( CHCTLA__N0CHCN__16_COLOR // 4 bits per pixel, palettized - | CHCTLA__N0BMEN__CELL_FORMAT - | CHCTLA__N0CHSZ__1x1_CELL - ); - - vdp2.reg.PNCN0 = PNCN0__N0PNB__2WORD; - - vdp2.reg.PLSZ = PLSZ__N0PLSZ__1x1; - - vdp2.vram.u16[16 + 0] = (1 << 12); // top left pixel of character # 1 - vdp2.vram.u16[16 + 15] = (2 << 0 ); // bottom right pixel of character # 1 - - vdp2.cram.u16[1] = (0x31 << 5); // green - vdp2.cram.u16[2] = (0x31 << 10); // blue - - // given: - // Plane Size: 1h X 1v - // Pattern Name Data Size: 2 Words - // only bits 5~0 are used for map address calculation - // so MPOFN is effectively ignored - vdp2.reg.MPOFN = MPOFN__N0MP(0); // bits 8~6 - vdp2.reg.MPABN0 = MPABN0__N0MPB(0) | MPABN0__N0MPA(1); // bits 5~0 - vdp2.reg.MPCDN0 = MPABN0__N0MPB(0) | MPABN0__N0MPA(1); // bits 5~0 - - // zeroize NBG0 plane; this should be less than 0x8000 above - s32 plane_size = 64 * 64 * 4; // is this correct ? - fill_32(&vdp2.vram.u32[(0x4000 / 4)], 0, plane_size); - - // Table 4.8 Address value of map designated register by setting - // (bit 5~0) * 0x4000 - vdp2.vram.u32[(0x4000 / 4)] = PATTERN_NAME_TABLE_2WORD__CHARACTER(1); diff --git a/example/polygon.c b/example/polygon.c deleted file mode 100644 index 4a8dab0..0000000 --- a/example/polygon.c +++ /dev/null @@ -1,82 +0,0 @@ - // - // vdp1: - // - - // The VBE setting must be set immediately after the V-blank IN interrupt. - // - // TVM settings must be performed from the second H-blank IN interrupt after - // the V-blank IN interrupt to the H-blank IN interrupt immediately after the - // V-blank OUT interrupt. - vdp1.reg.TVMR = ( TVMR__TVM__NTSC_PAL - | TVMR__TVM__FRAMEBUFFER_NONROTATION - | TVMR__TVM__16BPP - ); - - // make FCM and FCT settings immediately after V-blank OUT - vdp1.reg.FBCR = 0; - - // "A command table must always be stored at address 00000H to 0001EH." - // we can't trigger a plot yet because we have no (valid) table. - //vdp1.reg.PTMR = PTMR__PTM__FRAME_CHANGE; - - vdp1.reg.EWDR = 0; // black - - // upper-left - vdp1.reg.EWLR = PTMR__EWLR__16BPP_X1(0) | PTMR__EWLR__Y1(0); - - // lower-right - vdp1.reg.EWRR = PTMR__EWRR__16BPP_X3(319) | PTMR__EWRR__Y3(239); - - vdp1.vram.cmd[0].CTRL = CTRL__JP__JUMP_NEXT | CTRL__COMM__USER_CLIP_COORDINATES; - vdp1.vram.cmd[0].LINK = 0; - vdp1.vram.cmd[0].XA = 0; - vdp1.vram.cmd[0].YA = 0; - vdp1.vram.cmd[0].XC = 319; - vdp1.vram.cmd[0].YC = 239; - - vdp1.vram.cmd[1].CTRL = CTRL__JP__JUMP_NEXT | CTRL__COMM__SYSTEM_CLIP_COORDINATES; - vdp1.vram.cmd[1].LINK = 0; - vdp1.vram.cmd[1].XC = 319; - vdp1.vram.cmd[1].YC = 239; - - vdp1.vram.cmd[2].CTRL = CTRL__JP__JUMP_NEXT | CTRL__COMM__LOCAL_COORDINATE; - vdp1.vram.cmd[2].LINK = 0; - vdp1.vram.cmd[2].XA = 0; - vdp1.vram.cmd[2].YA = 0; - - vdp1.vram.cmd[3].CTRL = CTRL__JP__JUMP_NEXT | CTRL__COMM__POLYGON; - vdp1.vram.cmd[3].LINK = 0; - vdp1.vram.cmd[3].PMOD = CTRL__PMOD__ECD | CTRL__PMOD__SPD; - vdp1.vram.cmd[3].COLR = 0x2; // palette color #2 - vdp1.vram.cmd[3].XA = 50; - vdp1.vram.cmd[3].YA = 50; - vdp1.vram.cmd[3].XB = 150; - vdp1.vram.cmd[3].YB = 50; - vdp1.vram.cmd[3].XC = 150; - vdp1.vram.cmd[3].YC = 150; - vdp1.vram.cmd[3].XD = 50; - vdp1.vram.cmd[3].YD = 150; - - vdp1.vram.cmd[4].CTRL = CTRL__JP__JUMP_NEXT | CTRL__COMM__POLYGON; - vdp1.vram.cmd[4].LINK = 0; - vdp1.vram.cmd[4].PMOD = CTRL__PMOD__ECD | CTRL__PMOD__SPD; - vdp1.vram.cmd[4].COLR = (1 << 15) | (0x31 << 10) | (0x31 << 0); // RGB15 magenta - vdp1.vram.cmd[4].XA = 100; - vdp1.vram.cmd[4].YA = 50; - vdp1.vram.cmd[4].XB = 150; - vdp1.vram.cmd[4].YB = 100; - vdp1.vram.cmd[4].XC = 100; - vdp1.vram.cmd[4].YC = 150; - vdp1.vram.cmd[4].XD = 50; - vdp1.vram.cmd[4].YD = 100; - - vdp1.vram.cmd[5].CTRL = CTRL__END; - - // priorities - vdp2.reg.PRISA = 0x0101; - vdp2.reg.PRISB = 0x0101; - vdp2.reg.PRISC = 0x0101; - vdp2.reg.PRISD = 0x0101; - - // start drawing - vdp1.reg.PTMR = PTMR__PTM__FRAME_CHANGE;