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 |