Rev 1931 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log
Rev 1931 | Rev 1934 | ||
---|---|---|---|
Line 414... | Line 414... | ||
414 | if (j >= (y+sprhgt)) break; |
414 | if (j >= (y+sprhgt)) break; |
415 | }; |
415 | }; |
416 | } |
416 | } |
417 | 417 | ||
418 | void emitcolorspr(int xchr, int y, int sprwid8, int sprhgt, FILE * fout) |
418 | void emitcolorspr(int xchr, int y, int sprwid8, int sprhgt, FILE * fout) |
419 | { //coloured sprite, one row of attrchrs: (antimask, ~antipixels, ...),attr |
419 | { //coloured sprite, one row of attrchrs: (mask, antipixels, ...),attr |
420 | BYTE b; |
420 | BYTE b; |
421 | int i; |
421 | int i; |
422 | int j; |
422 | int j; |
423 | i = xchr; |
423 | i = xchr; |
424 | while (1) { //chrs in row |
424 | while (1) { //chrs in row |
Line 443... | Line 443... | ||
443 | i++; |
443 | i++; |
444 | if (i >= (xchr+sprwid8)) break; |
444 | if (i >= (xchr+sprwid8)) break; |
445 | }; |
445 | }; |
446 | } |
446 | } |
447 | 447 | ||
- | 448 | void emitcolorline(int xchr, int y, int sprwid8, int sprhgt, FILE * fout) |
|
- | 449 | { //for coloured line: 8 lines of pixels (no attrs) |
|
- | 450 | BYTE b; |
|
- | 451 | int i; |
|
- | 452 | int j; |
|
- | 453 | j = y; |
|
- | 454 | while (1) { //lines |
|
- | 455 | fputs("\tdb ", fout); |
|
- | 456 | i = xchr; |
|
- | 457 | while (1) { //chrs in row |
|
- | 458 | b = pixrow[i][j] ^ invattr; |
|
- | 459 | fprintf(fout, "0x%x%x", b>>4, b&0x0f); |
|
- | 460 | i++; |
|
- | 461 | if (i >= (xchr+sprwid8)) break; |
|
- | 462 | fputs(",", fout); |
|
- | 463 | }; |
|
- | 464 | fputs("\n", fout); |
|
- | 465 | j++; |
|
- | 466 | if (j >= (y+8)) break; |
|
- | 467 | }; |
|
- | 468 | } |
|
- | 469 | ||
- | 470 | void emitattrline(int xchr, int y, int sprwid8, int sprhgt, FILE * fout) |
|
- | 471 | { |
|
- | 472 | BYTE b; |
|
- | 473 | int i; |
|
- | 474 | fputs("\tdb ", fout); |
|
- | 475 | i = xchr; |
|
- | 476 | while (1) { //chrs in row |
|
- | 477 | b = attrrow[i]; //0x07; |
|
- | 478 | if (invattr) b = (b&0xc0) + ((b&0x07)<<3) + ((b&0x38)>>3); |
|
- | 479 | if (forceattr) b = defaultcolor; |
|
- | 480 | fprintf(fout, "0x%x%x", b>>4, b&0x0f); |
|
- | 481 | i++; |
|
- | 482 | if (i >= (xchr+sprwid8)) break; |
|
- | 483 | fputs(",", fout); |
|
- | 484 | }; |
|
- | 485 | fputs("\n", fout); |
|
- | 486 | } |
|
- | 487 | ||
448 | void emitspry(int xchr, int y, int sprwid8, int sprhgt, FILE * fout) |
488 | void emitspry(int xchr, int y, int sprwid8, int sprhgt, FILE * fout) |
449 | { |
489 | { |
450 | BYTE b; |
490 | BYTE b; |
451 | int i; |
491 | int i; |
452 | int j; |
492 | int j; |
Line 785... | Line 825... | ||
785 | rowhgt = sprhgt; |
825 | rowhgt = sprhgt; |
786 | }else if (sprformat == 'P') { //DDp palette |
826 | }else if (sprformat == 'P') { //DDp palette |
787 | fputs("\n", fout); |
827 | fputs("\n", fout); |
788 | putlabel(labelbuf, fout); |
828 | putlabel(labelbuf, fout); |
789 | fputs("\n", fout); |
829 | fputs("\n", fout); |
- | 830 | rowhgt = sprhgt; |
|
790 | i = 0; |
831 | i = 0; |
791 | while (i < 64) { //DDp palette: %grbG11RB(low),%grbG11RB(high), шэтхЁёэ√х //color = highlow |
832 | while (i < 64) { //DDp palette: %grbG11RB(low),%grbG11RB(high), шэтхЁёэ√х //color = highlow |
792 | color = 0; //pal = ярышЄЁр (B, G, R, 0) |
833 | color = 0; //pal = ярышЄЁр (B, G, R, 0) |
793 | if (pal[i]&0x80) color = color | 0x0100; |
834 | if (pal[i]&0x80) color = color | 0x0100; |
794 | if (pal[i]&0x40) color = color | 0x2000; |
835 | if (pal[i]&0x40) color = color | 0x2000; |
Line 807... | Line 848... | ||
807 | i++; |
848 | i++; |
808 | emitdw(~color, fout); |
849 | emitdw(~color, fout); |
809 | i++; |
850 | i++; |
810 | }; |
851 | }; |
811 | fputs("\n", fout); |
852 | fputs("\n", fout); |
812 | rowhgt = sprhgt; |
- | |
813 | }else if ((sprformat == 'w')||(sprformat == 'W')||(sprformat == 'z')||(sprformat == 'Z')||(sprformat == 'y')) { |
853 | }else if ((sprformat == 'w')||(sprformat == 'W')||(sprformat == 'z')||(sprformat == 'Z')||(sprformat == 'y')) { |
814 | putlabel(labelbuf, fout); |
854 | putlabel(labelbuf, fout); |
815 | fputs("\n", fout); |
855 | fputs("\n", fout); |
816 | rowhgt = sprhgt; |
856 | rowhgt = sprhgt; |
817 | }else if (sprformat == 'c') { |
857 | }else if (sprformat == 'c') { |
Line 825... | Line 865... | ||
825 | emitdb((BYTE)(sprhgt), fout); |
865 | emitdb((BYTE)(sprhgt), fout); |
826 | rowhgt = sprhgt; |
866 | rowhgt = sprhgt; |
827 | }else if (sprformat == 'S') { |
867 | }else if (sprformat == 'S') { |
828 | putlabel(labelbuf, fout); |
868 | putlabel(labelbuf, fout); |
829 | fputs("\n", fout); |
869 | fputs("\n", fout); |
- | 870 | rowhgt = 8; |
|
- | 871 | }else if ((sprformat == 'A')||(sprformat == 'a')) { |
|
- | 872 | putlabel(labelbuf, fout); |
|
- | 873 | fputs("\n", fout); |
|
830 | rowhgt = sprhgt; |
874 | rowhgt = 8; |
831 | }; |
875 | }; |
832 | 876 | ||
833 | //copy comment as code line |
877 | //copy comment as code line |
834 | fputs(commentlabelbuf, fout); |
878 | fputs(commentlabelbuf, fout); |
835 | //fputs("\n", fout); |
879 | //fputs("\n", fout); |
Line 909... | Line 953... | ||
909 | yi = yi+1; |
953 | yi = yi+1; |
910 | }; |
954 | }; |
911 | xi = xi+1; |
955 | xi = xi+1; |
912 | }; |
956 | }; |
913 | //fprintf(fout, "\n"); |
957 | //fprintf(fout, "\n"); |
- | 958 | }else if (sprformat == 'A') { //for coloured lines |
|
- | 959 | emitcolorline(sprx/8,y,sprwid/8,sprhgt,fout); |
|
- | 960 | }else if (sprformat == 'a') { //attr lines |
|
- | 961 | emitattrline(sprx/8,y,sprwid/8,sprhgt,fout); |
|
914 | }else if (sprformat == 's') { //sprite |
962 | }else if (sprformat == 's') { //sprite |
915 | emitspr(sprx/8,y,sprwid/8,sprhgt,fout); |
963 | emitspr(sprx/8,y,sprwid/8,sprhgt,fout); |
916 | }else if (sprformat == 'S') { //coloured sprite |
964 | }else if (sprformat == 'S') { //coloured sprite |
917 | emitcolorspr(sprx/8,y,sprwid/8,sprhgt,fout); |
965 | emitcolorspr(sprx/8,y,sprwid/8,sprhgt,fout); |
918 | }else if (sprformat == 'y') { //spritey |
966 | }else if (sprformat == 'y') { //spritey |