serial debugging fail
authorJohn Tsiombikas <nuclear@member.fsf.org>
Sat, 4 Aug 2018 15:52:45 +0000 (18:52 +0300)
committerJohn Tsiombikas <nuclear@member.fsf.org>
Sat, 4 Aug 2018 15:52:45 +0000 (18:52 +0300)
src/amiga/libc/stdlib.c
src/amiga/main.c
src/game.c
src/sprite.c

index 6496c8d..9b8dcc4 100644 (file)
@@ -77,9 +77,9 @@ void itoa(int val, char *buf, int base)
        }
 
        while(val) {
-               int digit = val % 10;
+               int digit = val % base;
                *ptr++ = digit < 10 ? (digit + '0') : (digit - 10 + 'a');
-               val /= 10;
+               val /= base;
        }
 
        if(neg) {
index bd66f1c..46c777a 100644 (file)
@@ -14,7 +14,7 @@ int main(void)
        REG_INTENA = SETBITS(INTEN_VERTB | INTEN_MASTER);
        REG_DMACON = CLRBITS(DMA_ALL);
 
-       ser_init(9600);
+       ser_init(38400);
        ser_print("retrocrawl amiga starting up...\n");
 
        init_gfx();
index 87edac7..8afa769 100644 (file)
 void draw_tile(int tid, int x, int y, int light);
 
 static uint16_t *sprdata[NUM_HWSPRITES];
+static uint16_t *sprdata2[NUM_HWSPRITES];
 
 /* hardcoded test sprite */
 static struct sprite test_sprite;
+static struct sprite test_sprite2;
 
 int game_init(void)
 {
@@ -37,12 +39,12 @@ int game_init(void)
                REG_COLOR_PTR[i + 16] = sprpal[i];
        }
 
-       sprdata[0] = spr0a;
-       sprdata[1] = spr0b;
-       sprdata[2] = spr1a;
-       sprdata[3] = spr1b;
-       sprdata[4] = spr2a;
-       sprdata[5] = spr2b;
+       sprdata[0] = sprdata2[0] = spr0a;
+       sprdata[1] = sprdata2[1] = spr0b;
+       sprdata[2] = sprdata2[2] = spr1a;
+       sprdata[3] = sprdata2[3] = spr1b;
+       sprdata[4] = sprdata2[4] = spr2a;
+       sprdata[5] = sprdata2[5] = spr2b;
 
        test_sprite.width = test_sprite.height = 48;
        test_sprite.origx = 24;
@@ -53,6 +55,11 @@ int game_init(void)
                test_sprite.hwspr[i] = i < 6 ? sprdata[i] : 0;
        }
 
+       test_sprite2 = test_sprite;
+       for(i=0; i<8; i++) {
+               test_sprite2.hwspr[i] = i < 6 ? sprdata2[i] : 0;
+       }
+
        return 0;
 }
 
@@ -75,7 +82,8 @@ void game_draw(void)
        }
 
        begin_sprites();
-       draw_sprite(&test_sprite, 160, 100);
+       draw_sprite(&test_sprite, 160, 80);
+       draw_sprite(&test_sprite2, 160, 160);
        end_sprites();
 }
 
index 7b68892..528ce68 100644 (file)
@@ -1,3 +1,4 @@
+#include <stdio.h>
 #include <string.h>
 #include "sprite.h"
 #include "hwregs.h"
@@ -41,6 +42,7 @@ void end_sprites(void)
                reg += 4;
        }
 
+#if 0
        /* sort sprites by increasing start position */
        for(i=0; i<scount; i++) {
                for(j=i+1; j<scount; j++) {
@@ -51,6 +53,7 @@ void end_sprites(void)
                        }
                }
        }
+#endif
 
        /* set sprite positions and populate copperlist to draw
         * hardware sprites
@@ -79,9 +82,10 @@ void end_sprites(void)
                }
                if(nchan_found < s->hwslices) continue;
 
-               if(reuse) {
-                       add_copper(COPPER_VWAIT(sy));
-               }
+//             if(reuse) {
+                       printf("copper wait: %d\n", (int)s->y - 1);
+                       add_copper(COPPER_VWAIT(s->y - 1));
+//             }
 
                for(j=0; j<s->hwslices; j++) {
                        int idx = chan[j] * 2;