aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2016-09-05 05:16:16 -0400
committerB. Watson <yalhcru@gmail.com>2016-09-05 05:16:16 -0400
commitdbd902a52a742563abac281778c92b5ef5ccd4c7 (patch)
tree81c52944756d64f6bae5edba623ffff7bf38c8f9
parenteb9c8f2cf6d47c2495f36aeef638a4e1d2c35f4b (diff)
downloadjumpmanjr-dbd902a52a742563abac281778c92b5ef5ccd4c7.tar.gz
now I know what the all-black shapes are
-rw-r--r--jumpmanjr.dasm15
-rw-r--r--jumpmanjr.info6
-rw-r--r--main.info6
-rw-r--r--renderlevels.pl13
4 files changed, 28 insertions, 12 deletions
diff --git a/jumpmanjr.dasm b/jumpmanjr.dasm
index 9ab269d..b303023 100644
--- a/jumpmanjr.dasm
+++ b/jumpmanjr.dasm
@@ -1,5 +1,5 @@
; da65 V2.15 - Git 104f898
-; Created: 2016-09-04 17:23:00
+; Created: 2016-09-05 05:15:49
; Input file: jumpmanjr.rom
; Page: 1
@@ -4174,7 +4174,8 @@ sh_girder:
.byte $04,$00,$00,$01,$01,$01,$01,$04 ; 9C33 04 00 00 01 01 01 01 04 ........
.byte $00,$01,$01,$00,$01,$00,$04,$00 ; 9C3B 00 01 01 00 01 00 04 00 ........
.byte $02,$01,$01,$01,$01,$FF ; 9C43 02 01 01 01 01 FF ......
-sh_blank_4x4:
+; all the bombs on blackout are drawn as this
+sh_black_4x3:
.byte $04,$00,$00,$00,$00,$00,$00,$04 ; 9C49 04 00 00 00 00 00 00 04 ........
.byte $00,$01,$00,$00,$00,$00,$04,$00 ; 9C51 00 01 00 00 00 00 04 00 ........
.byte $02,$00,$00,$00,$00,$FF ; 9C59 02 00 00 00 00 FF ......
@@ -4185,8 +4186,9 @@ sh_ladder:
.byte $02,$02,$02,$02,$02,$02,$02,$02 ; 9C77 02 02 02 02 02 02 02 02 ........
.byte $00,$03,$02,$02,$02,$06,$03,$02 ; 9C7F 00 03 02 02 02 06 03 02 ........
.byte $02,$FF ; 9C87 02 FF ..
-; dunno, solid black shape
-sh_9c89:.byte $02,$00,$00,$00,$00,$02,$06,$00 ; 9C89 02 00 00 00 00 02 06 00 ........
+; ladder in black pixels, used for erasing ladders
+sh_black_ladder:
+ .byte $02,$00,$00,$00,$00,$02,$06,$00 ; 9C89 02 00 00 00 00 02 06 00 ........
.byte $00,$00,$02,$00,$01,$00,$00,$02 ; 9C91 00 00 02 00 01 00 00 02 ........
.byte $06,$01,$00,$00,$08,$00,$02,$00 ; 9C99 06 01 00 00 08 00 02 00 ........
.byte $00,$00,$00,$00,$00,$00,$00,$02 ; 9CA1 00 00 00 00 00 00 00 02 ........
@@ -4203,8 +4205,9 @@ sh_down_rope:
.byte $01,$00,$00,$02,$01,$00,$01,$02 ; 9CDA 01 00 00 02 01 00 01 02 ........
.byte $01,$01,$02,$02,$01,$01,$03,$02 ; 9CE2 01 01 02 02 01 01 03 02 ........
.byte $FF ; 9CEA FF .
-; dunno, solid black shape
-sh_9ceb:.byte $02,$00,$00,$00,$00,$02,$00,$01 ; 9CEB 02 00 00 00 00 02 00 01 ........
+; not sure where this is used, probably for erasing ropes
+sh_black_2x4:
+ .byte $02,$00,$00,$00,$00,$02,$00,$01 ; 9CEB 02 00 00 00 00 02 00 01 ........
.byte $00,$00,$02,$00,$02,$00,$00,$02 ; 9CF3 00 00 02 00 02 00 00 02 ........
.byte $00,$03,$00,$00,$FF ; 9CFB 00 03 00 00 FF .....
; jumpman's animation frames and other sprites, seem to be 10 bytes per sprite
diff --git a/jumpmanjr.info b/jumpmanjr.info
index 46e83c7..1b62dee 100644
--- a/jumpmanjr.info
+++ b/jumpmanjr.info
@@ -527,13 +527,13 @@ range { name "color0_table"; start $9728; end $972b; type bytetable; };
range { name "color0_table_minus_one"; start $9727; end $9727; type bytetable; };
range { name "level_gfx"; start $9C21; end $9cff; type bytetable; comment "definitions for level graphics objects aka shapes. (girder segment, ladder, rope, etc)"; };
label { name "sh_girder"; addr $9C33; comment "3 rows of pixels. 1st: 04 = 4 pixels wide, 00 00 = no X/Y offset, 01 01 01 01 = actual pixel data (4 color0 pixels). see level_maps.txt"; };
-label { name "sh_blank_4x4"; addr $9C49; };
+label { name "sh_black_4x3"; addr $9C49; comment "all the bombs on blackout are drawn as this"; };
label { name "sh_ladder"; addr $9C5F; };
-label { name "sh_9c89"; addr $9c89; comment "dunno, solid black shape"; };
+label { name "sh_black_ladder"; addr $9c89; comment "ladder in black pixels, used for erasing ladders"; };
label { name "sh_bomb"; addr $9cb3; };
label { name "sh_up_rope"; addr $9cc9; };
label { name "sh_down_rope"; addr $9cda; };
-label { name "sh_9ceb"; addr $9ceb; comment "dunno, solid black shape"; };
+label { name "sh_black_2x4"; addr $9ceb; comment "not sure where this is used, probably for erasing ropes"; };
range { name "sprite_table"; start $9d00; end $9dff; type bytetable; comment "jumpman's animation frames and other sprites, seem to be 10 bytes per sprite"; };
range { name "sxf_teleport"; start $b319; end $b31f; type bytetable; comment "referenced by herethere_bomb_sub"; };
range { name "herethere_sprite0"; start $b2a8; end $B2b1; type bytetable; comment "portal animation frames"; };
diff --git a/main.info b/main.info
index 507f535..1a5ea58 100644
--- a/main.info
+++ b/main.info
@@ -525,13 +525,13 @@ range { name "color0_table"; start $9728; end $972b; type bytetable; };
range { name "color0_table_minus_one"; start $9727; end $9727; type bytetable; };
range { name "level_gfx"; start $9C21; end $9cff; type bytetable; comment "definitions for level graphics objects aka shapes. (girder segment, ladder, rope, etc)"; };
label { name "sh_girder"; addr $9C33; comment "3 rows of pixels. 1st: 04 = 4 pixels wide, 00 00 = no X/Y offset, 01 01 01 01 = actual pixel data (4 color0 pixels). see level_maps.txt"; };
-label { name "sh_blank_4x4"; addr $9C49; };
+label { name "sh_black_4x3"; addr $9C49; comment "all the bombs on blackout are drawn as this"; };
label { name "sh_ladder"; addr $9C5F; };
-label { name "sh_9c89"; addr $9c89; comment "dunno, solid black shape"; };
+label { name "sh_black_ladder"; addr $9c89; comment "ladder in black pixels, used for erasing ladders"; };
label { name "sh_bomb"; addr $9cb3; };
label { name "sh_up_rope"; addr $9cc9; };
label { name "sh_down_rope"; addr $9cda; };
-label { name "sh_9ceb"; addr $9ceb; comment "dunno, solid black shape"; };
+label { name "sh_black_2x4"; addr $9ceb; comment "not sure where this is used, probably for erasing ropes"; };
range { name "sprite_table"; start $9d00; end $9dff; type bytetable; comment "jumpman's animation frames and other sprites, seem to be 10 bytes per sprite"; };
range { name "sxf_teleport"; start $b319; end $b31f; type bytetable; comment "referenced by herethere_bomb_sub"; };
range { name "herethere_sprite0"; start $b2a8; end $B2b1; type bytetable; comment "portal animation frames"; };
diff --git a/renderlevels.pl b/renderlevels.pl
index 8d0140c..e967991 100644
--- a/renderlevels.pl
+++ b/renderlevels.pl
@@ -8,6 +8,9 @@
$verbose = 0; # 0 = quiet, 2 = very chatty
+$black_is_white = 0; # 1 = draw all-black shapes in white. only affects
+ # level09.png (the bombs are invisible there).
+
use Image::Magick;
use bytes;
@@ -35,6 +38,13 @@ sub getdelta {
sub draw {
my ($img, $shape, $dx, $dy, $xpos, $ypos, $copies) = @_;
warn sprintf "drawing shape %04x at $xpos, $ypos, $copies copies, delta ($dx, $dy)\n", $shape if $verbose > 1;
+ my $white = 0;
+ if($black_is_white && ($shape == 0x9c89 || $shape == 0x9ceb || $shape == 0x9c49)) {
+ warn "drawing all-black shape in white\n";
+ $white = 1;
+ #$shape = 0x9c89; # see the other black shapes in level09.png
+ #$shape = 0x9ceb;
+ }
while($copies--) {
my $width;
my $addr = $shape;
@@ -44,6 +54,9 @@ sub draw {
for(my $p = 0; $p < $width; $p++) {
my $pixel = getbyte($addr++);
my $color = $palette{$pixel};
+ if($white) {
+ $color = [ 0xffff, 0xffff, 0xffff]; # make invisible stuff show up white
+ }
$img->SetPixel(x => $xpos + $xoffs + $p, y => $ypos + $yoffs, color => $color);
}
}