diff --git a/hardware/playfield1.c b/hardware/playfield1.c index b44ad10..801b3bb 100644 --- a/hardware/playfield1.c +++ b/hardware/playfield1.c @@ -34,7 +34,6 @@ * A simple setup to display a playfield with a depth of 1 bit. */ extern struct Custom custom; -extern struct CIA ciaa, ciab; extern struct Library *GfxBase; // VBCC Inline assembly diff --git a/hardware/sprites.c b/hardware/sprites.c index 18ff4d8..c1937f9 100644 --- a/hardware/sprites.c +++ b/hardware/sprites.c @@ -9,31 +9,16 @@ #include #include +#include "common.h" /* * A simple setup to display a sprite. */ extern struct Custom custom; -extern struct CIA ciaa, ciab; extern struct Library *GfxBase; // VBCC Inline assembly void waitmouse(void) = "waitmouse:\n\tbtst\t#6,$bfe001\n\tbne\twaitmouse"; -#define EXEC_BASE (4L) -#define TASK_PRIORITY 127 -#define VFREQ_PAL 50 -#define WB_SCREEN_NAME "Workbench" - -#define BPLCON0 0x100 -#define COLOR00 0x180 -#define SPR0PTH 0x120 -#define SPR0PTL 0x122 - -#define BPLCON0_COLOR (1 << 9) - -#define COP_MOVE(addr, data) addr, data -#define COP_WAIT_END 0xffff, 0xfffe - static UWORD __chip coplist_pal[] = { COP_MOVE(SPR0PTH, 0x0000), COP_MOVE(SPR0PTL, 0x0000), @@ -59,7 +44,6 @@ static UWORD __chip spdat0[] = { 0x0000, 0x0000 }; - static struct Screen *wbscreen; static ULONG oldresolution; @@ -113,7 +97,6 @@ static BOOL init_display(UWORD lib_version) printf("PAL/NTSC: %d\n", (int) ((struct ExecBase *) EXEC_BASE)->VBlankFrequency); is_pal = ((struct ExecBase *) EXEC_BASE)->VBlankFrequency == VFREQ_PAL; } - custom.cop1lc = is_pal ? (ULONG) coplist_pal : (ULONG) coplist_ntsc; return is_pal; } @@ -135,12 +118,13 @@ int main(int argc, char **argv) struct View *current_view = ((struct GfxBase *) GfxBase)->ActiView; UWORD lib_version = ((struct Library *) GfxBase)->lib_Version; + BOOL is_pal = init_display(lib_version); coplist_ntsc[1] = ((ULONG) spdat0) & 0xffff; coplist_ntsc[3] = (((ULONG) spdat0) >> 16) & 0xffff; coplist_pal[1] = ((ULONG) spdat0) & 0xffff; coplist_pal[3] = (((ULONG) spdat0) >> 16) & 0xffff; - init_display(lib_version); + custom.cop1lc = is_pal ? (ULONG) coplist_pal : (ULONG) coplist_ntsc; waitmouse(); diff --git a/hardware/startup.c b/hardware/startup.c index 0cce711..d9bf395 100644 --- a/hardware/startup.c +++ b/hardware/startup.c @@ -9,6 +9,8 @@ #include #include +#include "common.h" + /* * This is essentially the code for startup.asm from * "Amiga Demo Coders Reference Manual" translated to C. @@ -19,27 +21,13 @@ * A great starting point to use as a template for demos and games. */ extern struct Custom custom; -extern struct CIA ciaa, ciab; extern struct Library *GfxBase; // VBCC Inline assembly void waitmouse(void) = "waitmouse:\n\tbtst\t#6,$bfe001\n\tbne\twaitmouse"; -#define EXEC_BASE (4L) -#define TASK_PRIORITY 127 -#define VFREQ_PAL 50 -#define WB_SCREEN_NAME "Workbench" - -#define BPLCON0 0x100 -#define COLOR00 0x180 - -#define BPLCON0_COLOR (1 << 9) - -#define COP_MOVE(addr, data) addr, data -#define COP_WAIT_END 0xffff, 0xfffe - static UWORD __chip coplist_pal[] = { - COP_MOVE(BPLCON0, BPLCON0_COLOR), + COP_MOVE(BPLCON0, BPLCON0_COMPOSITE_COLOR), COP_MOVE(COLOR00, 0x000), 0x8107, 0xfffe, // wait for $8107,$fffe COP_MOVE(COLOR00, 0xf00), @@ -49,7 +37,7 @@ static UWORD __chip coplist_pal[] = { COP_WAIT_END }; static UWORD __chip coplist_ntsc[] = { - COP_MOVE(BPLCON0, BPLCON0_COLOR), + COP_MOVE(BPLCON0, BPLCON0_COMPOSITE_COLOR), COP_MOVE(COLOR00, 0x000), 0x6e07, 0xfffe, // wait for $6e07,$fffe COP_MOVE(COLOR00, 0xf00), @@ -109,7 +97,7 @@ static BOOL init_display(UWORD lib_version) } else { // Note: FS-UAE reports 0 this, so essentially, there is no information // for 1.x - printf("PAL/NTSC: %d\n", (int) ((struct ExecBase *) EXEC_BASE)->VBlankFrequency); + //printf("PAL/NTSC: %d\n", (int) ((struct ExecBase *) EXEC_BASE)->VBlankFrequency); is_pal = ((struct ExecBase *) EXEC_BASE)->VBlankFrequency == VFREQ_PAL; } custom.cop1lc = is_pal ? (ULONG) coplist_pal : (ULONG) coplist_ntsc;