astrocade presets
This commit is contained in:
parent
9d35615bc4
commit
25a9c16704
|
@ -159,6 +159,10 @@ TODO:
|
||||||
- make sure to flatten subdirs
|
- make sure to flatten subdirs
|
||||||
- astrocade
|
- astrocade
|
||||||
- ctrl+alt+l on ubuntu locks screen
|
- ctrl+alt+l on ubuntu locks screen
|
||||||
|
- cookie
|
||||||
|
- list of stuff for policy
|
||||||
|
- popup
|
||||||
|
|
||||||
|
|
||||||
WEB WORKER FORMAT
|
WEB WORKER FORMAT
|
||||||
|
|
||||||
|
|
|
@ -3,4 +3,6 @@
|
||||||
|
|
||||||
extern void fast_sprite_8(const byte* pattern, byte* dst);
|
extern void fast_sprite_8(const byte* pattern, byte* dst);
|
||||||
extern void fast_sprite_16(const byte* pattern, byte* dst);
|
extern void fast_sprite_16(const byte* pattern, byte* dst);
|
||||||
|
// clips off bottom
|
||||||
|
extern void fast_sprite_16_yclip(const byte* pattern, byte* dst, byte height);
|
||||||
|
|
||||||
|
|
|
@ -44,14 +44,15 @@ _fast_sprite_16:
|
||||||
add ix,sp ; IX = arg pointer
|
add ix,sp ; IX = arg pointer
|
||||||
ld l,4(ix) ; src (HL)
|
ld l,4(ix) ; src (HL)
|
||||||
ld h,5(ix)
|
ld h,5(ix)
|
||||||
ld e,6(ix) ; dst (DE)
|
|
||||||
ld d,7(ix)
|
|
||||||
inc hl ; skip width
|
inc hl ; skip width
|
||||||
ld c,(hl) ; load height -> C
|
ld c,(hl) ; load height -> C
|
||||||
|
fast_sprite_16_clip_entry:
|
||||||
sla c
|
sla c
|
||||||
sla c ; C *= 4
|
sla c ; C *= 4
|
||||||
ld b,#0 ; B always 0 (BC < 256)
|
ld b,#0 ; B always 0 (BC < 256)
|
||||||
inc hl ; move HL to pattern start
|
inc hl ; move HL to pattern start
|
||||||
|
ld e,6(ix) ; dst (DE)
|
||||||
|
ld d,7(ix)
|
||||||
001$:
|
001$:
|
||||||
ldi
|
ldi
|
||||||
ldi
|
ldi
|
||||||
|
@ -69,3 +70,15 @@ _fast_sprite_16:
|
||||||
002$:
|
002$:
|
||||||
pop ix
|
pop ix
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
;void fast_sprite_16_yclip(const byte* src, byte* dst, byte height) {
|
||||||
|
.globl _fast_sprite_16_yclip
|
||||||
|
_fast_sprite_16_yclip:
|
||||||
|
push ix
|
||||||
|
ld ix,#0
|
||||||
|
add ix,sp ; IX = arg pointer
|
||||||
|
ld l,4(ix) ; src (HL)
|
||||||
|
ld h,5(ix)
|
||||||
|
ld c,8(ix) ; height (C)
|
||||||
|
inc hl ; skip width
|
||||||
|
jp fast_sprite_16_clip_entry
|
||||||
|
|
|
@ -98,12 +98,28 @@ byte __at (0x0000) vmagic[VTOTAL][VBWIDTH];
|
||||||
// regular frame buffer RAM
|
// regular frame buffer RAM
|
||||||
byte __at (0x4000) vidmem[VTOTAL][VBWIDTH];
|
byte __at (0x4000) vidmem[VTOTAL][VBWIDTH];
|
||||||
|
|
||||||
|
byte __at(0xfff) WASTER; // to soak up shifter residue
|
||||||
|
|
||||||
|
|
||||||
/// GRAPHICS FUNCTIONS
|
/// GRAPHICS FUNCTIONS
|
||||||
|
|
||||||
void set_palette(byte palette[8]) __z88dk_fastcall; // palette in reverse order
|
void set_palette(byte palette[8]) __z88dk_fastcall; // palette in reverse order
|
||||||
|
|
||||||
|
#define SET_PALETTE(palette)\
|
||||||
|
__asm__("ld hl,#"#palette);\
|
||||||
|
__asm__("ld bc,#0x80b");\
|
||||||
|
__asm__("otir");\
|
||||||
|
|
||||||
|
#define SET_RIGHT_PALETTE(palette)\
|
||||||
|
__asm__("ld hl,#"#palette);\
|
||||||
|
__asm__("ld bc,#0x40b");\
|
||||||
|
__asm__("otir");\
|
||||||
|
|
||||||
|
/// SOUND FUNCTIONS
|
||||||
|
|
||||||
void set_sound_registers(byte regs[8]) __z88dk_fastcall; // in reverse too
|
void set_sound_registers(byte regs[8]) __z88dk_fastcall; // in reverse too
|
||||||
|
|
||||||
// INTERRUPTS
|
/// INTERRUPTS
|
||||||
|
|
||||||
typedef void (*t_interrupt_handler)(void) __interrupt;
|
typedef void (*t_interrupt_handler)(void) __interrupt;
|
||||||
|
|
||||||
|
|
|
@ -220,8 +220,6 @@ byte get1z(byte x) __z88dk_fastcall {
|
||||||
#define PAT_SKY 0x55
|
#define PAT_SKY 0x55
|
||||||
#define PAT_GROUND 0xaa
|
#define PAT_GROUND 0xaa
|
||||||
|
|
||||||
byte __at(0xfff) WASTER; // to soak up shifter residue
|
|
||||||
|
|
||||||
byte road_width = 142;
|
byte road_width = 142;
|
||||||
byte road_cenx = 80;
|
byte road_cenx = 80;
|
||||||
int road_inc = 0;
|
int road_inc = 0;
|
||||||
|
@ -427,7 +425,7 @@ void position_cars() {
|
||||||
|
|
||||||
void main(void) {
|
void main(void) {
|
||||||
// setup palette
|
// setup palette
|
||||||
set_palette(palette);`
|
set_palette(palette);
|
||||||
// set screen height
|
// set screen height
|
||||||
// set horizontal color split (position / 4)
|
// set horizontal color split (position / 4)
|
||||||
// set interrupt status
|
// set interrupt status
|
||||||
|
|
Loading…
Reference in New Issue