- int reg = REGN_SPR0PTH + i * 4;
- if(i < NUM_HWSPRITES) {
- uint16_t sx, sy, vstop;
- /* initialize active sprites, and set the sprite pointers */
- uint32_t addr = (intptr_t)sprdata[i];
- add_copper(COPPER_MOVE(reg, addr >> 16));
- add_copper(COPPER_MOVE(reg + 2, addr));
-
- sx = 0x80 + sprpos[0] + (i >> 1) * 16;
- sy = 0x2c + sprpos[1];
- vstop = sy + SPRITE_HEIGHT;
-
- sprdata[i][0] = (sx >> 1) | (sy << 8);
- sprdata[i][1] = (vstop << 8) | ((vstop >> 7) & 2) |
- (sx & 1) | ((i & 1) ? 0x80 : 0);
- } else {
- /* point the sprite pointers to the null sprite for the rest */
- add_copper(COPPER_MOVE(reg, nullspr_addr >> 16));
- add_copper(COPPER_MOVE(reg + 2, nullspr_addr));
- }