From 4a6b86341e5e0a6d0b0c79df5497d6a3fdee7c52 Mon Sep 17 00:00:00 2001 From: ikari Date: Wed, 29 Feb 2012 21:46:45 +0100 Subject: [PATCH] menu: add feature to run previously loaded file --- snes/const.a65 | 6 ++++ snes/memmap.i65 | 4 ++- snes/menu.a65 | 78 ++++++++++++++++++++++++++++++++++++++++++++----- 3 files changed, 80 insertions(+), 8 deletions(-) diff --git a/snes/const.a65 b/snes/const.a65 index 37217f4..d548063 100644 --- a/snes/const.a65 +++ b/snes/const.a65 @@ -154,6 +154,10 @@ sysinfo_win_x .byt 10 sysinfo_win_y .byt 9 sysinfo_win_w .byt 43 sysinfo_win_h .byt 17 +last_win_x .byt 2 +last_win_y .byt 12 +last_win_w .byt 60 +last_win_h .byt 5 text_mm_file .byt "File Browser", 0 text_mm_last .byt "Run last game", 0 @@ -163,3 +167,5 @@ text_mm_vmode_menu .byt "Menu video mode", 0 text_mm_vmode_game .byt "Game video mode", 0 text_mm_sysinfo .byt "System Information", 0 text_statusbar_keys .byt "A:Select B:Back X:Menu", 0 +text_last .byt "Run previous ROM: Press Start again to confirm", 0 + diff --git a/snes/memmap.i65 b/snes/memmap.i65 index 97f1497..baefb8c 100644 --- a/snes/memmap.i65 +++ b/snes/memmap.i65 @@ -20,7 +20,9 @@ #define AVR_CMD $307000 #define AVR_PARAM $307004 #define RTC_STATUS $307100 -#define SYSINFO_BLK $307110 +#define LAST_STATUS $307101 +#define SYSINFO_BLK $307200 +#define LAST_GAME $307420 #define ROOT_DIR $C10000 diff --git a/snes/menu.a65 b/snes/menu.a65 index 8914a1a..3d0c15c 100644 --- a/snes/menu.a65 +++ b/snes/menu.a65 @@ -126,6 +126,9 @@ menu_updates: lda #$80 and pad1trig+1 bne key_b + lda #$10 + and pad1trig+1 + bne key_start lda #$20 and pad1trig+1 bne key_select @@ -157,10 +160,12 @@ key_a key_x jsr menu_key_x bra menuupd_out - key_select jsr menu_key_select bra menuupd_out +key_start + jsr menu_key_start + bra menuupd_out menuupd_out lda #$09 @@ -447,13 +452,10 @@ menu_key_a: rts menu_key_select: - lda barstep - beq do_setup448 -do_setup224 - jsr setup_224 rts -do_setup448 - jsr setup_448 + +menu_key_start: + jsr select_last_file rts menu_key_b: @@ -514,6 +516,7 @@ select_file: sep #$20 : .as lda #$01 sta @AVR_CMD +select_file_fade: lda #$00 sta @$4200 sei @@ -723,3 +726,64 @@ menu_statusbar pla rts +select_last_file: + php + sep #$20 : .as + rep #$10 : .xl + lda @LAST_STATUS + bne + + plp + rts ++ jsr backup_screen + lda #^text_last + sta window_tbank + ldx #!text_last + stx window_taddr + lda @last_win_x + sta window_x + inc + inc + sta bar_xl + pha + lda @last_win_y + sta window_y + inc + sta bar_yl + inc + pha + lda @last_win_w + sta window_w + lda @last_win_h + sta window_h + jsr draw_window + stz print_pal + lda #^LAST_GAME + ldx #!LAST_GAME + sta print_bank + stx print_src + stz print_pal + pla + sta print_y + pla + sta print_x + lda #56 + sta bar_wl + sta print_count + jsr hiprint +- lda isr_done + lsr + bcc - + jsr printtime + jsr read_pad + lda #$80 + and pad1trig+1 + bne + + lda #$10 + and pad1trig+1 + beq - + lda #$04 + sta @AVR_CMD + jmp select_file_fade ++ jsr restore_screen + plp + rts