diff --git a/games/lemm/graphics/Makefile b/games/lemm/graphics/Makefile index aa814c2a..b54f4078 100644 --- a/games/lemm/graphics/Makefile +++ b/games/lemm/graphics/Makefile @@ -5,7 +5,10 @@ LZSA = ~/research/lzsa/lzsa/lzsa B2D = ../../../utils/bmp2dhr/b2d HGR_SPRITE = ../../../utils/hgr-utils/hgr_make_sprite -all: graphics_test.inc graphics_level1.inc graphics_level5.inc sprites.inc +all: graphics_test.inc \ + graphics_level1.inc \ + graphics_level2.inc \ + graphics_level5.inc sprites.inc ### @@ -24,6 +27,13 @@ graphics_level1.inc: \ echo "level1_lzsa: .incbin \"level1.lzsa\"" > graphics_level1.inc echo "level1_preview_lzsa: .incbin \"level1_preview.lzsa\"" >> graphics_level1.inc +graphics_level2.inc: \ + level2.lzsa +# level1_preview.lzsa + echo "level2_lzsa: .incbin \"level2.lzsa\"" > graphics_level2.inc +# echo "level1_preview_lzsa: .incbin \"level1_preview.lzsa\"" >> graphics_level1.inc + + graphics_level5.inc: \ level5.lzsa \ level5_preview.lzsa @@ -138,6 +148,14 @@ level1_preview.lzsa: level1_preview.hgr level1_preview.hgr: level1_preview.png $(PNG2HGR) level1_preview.png > level1_preview.hgr +### + +level2.lzsa: level2.hgr + $(LZSA) -r -f2 level2.hgr level2.lzsa + +level2.hgr: level2.png + $(PNG2HGR) level2.png > level2.hgr + ### diff --git a/games/lemm/graphics/level2.png b/games/lemm/graphics/level2.png new file mode 100644 index 00000000..b7d07603 Binary files /dev/null and b/games/lemm/graphics/level2.png differ diff --git a/games/lemm/intro_level1.s b/games/lemm/intro_level1.s index b1be535a..a75d73b8 100644 --- a/games/lemm/intro_level1.s +++ b/games/lemm/intro_level1.s @@ -185,6 +185,10 @@ split_screen_iie: ; wait for vblank on IIe ; positive? during vblank +; bit SET_GR ; 4 +; bit HIRES ; 4 +; bit FULLGR + wait_vblank_iie: lda VBLANK bmi wait_vblank_iie ; wait for positive (in vblank) @@ -198,8 +202,6 @@ split_loop: ; hires for 64 lines ; each line 65 cycles (25 hblank+40 bytes) - bit HIRES ; 4 - bit SET_GR ; 4 ; (64*65)-8 = 4160-8 = 4152 @@ -214,25 +216,51 @@ loop2: dex ; 2 dey ; 2 bne loop1 ; 2nt/3 + ; text for 128 lines + horizontal blank ; vblank = 4550 cycles - ; (128*65)+4550-15 = 8320+4550-15 = 12855 bit LORES ; 4 bit SET_TEXT ; 4 + ; (128*65)+4550-15 = 8320+4550-15 = 12855 + + ; ZZZZ 8305 + + ; Try X=68 Y=24 cycles=8305 + + ldy #24 ; 2 +loop13: ldx #68 ; 2 +loop14: dex ; 2 + bne loop14 ; 2nt/3 + dey ; 2 + bne loop13 ; 2nt/3 + + + bit SET_GR ; 4 + bit HIRES ; 4 + + ; don't really need to split this up? Was trying + ; to get retrotink to display properly instead of black/white + ; Try X=150 Y=17 cycles=12853 - nop ; 2 + ; ZZZZ 4550 - ldy #17 ; 2 -loop3: ldx #150 ; 2 + ; Try X=13 Y=64 cycles=4545 + + nop ; 2 + lda $0 ; 3 + + ldy #64 ; 2 +loop3: ldx #13 ; 2 loop4: dex ; 2 bne loop4 ; 2nt/3 dey ; 2 bne loop3 ; 2nt/3 + lda KEYPRESS ; 4 bpl split_loop ; 2nt/3t diff --git a/games/lemm/lemm.s b/games/lemm/lemm.s index 3aa7b667..4de8910c 100644 --- a/games/lemm/lemm.s +++ b/games/lemm/lemm.s @@ -318,7 +318,7 @@ load_song_chunk_good: .include "intro_level1.s" .include "draw_flames.s" .include "draw_door.s" - .include "wait.s" + .include "hgr_hlin.s" .include "hgr_vlin.s" .include "update_menu.s" @@ -327,6 +327,7 @@ load_song_chunk_good: .include "audio.s" .include "letsgo.s" .include "particle_hgr.s" + .include "wait.s" ; pt3 player