Power On + SRAM clear now works.

This commit is contained in:
n-a-c-h
2005-03-31 10:50:20 +00:00
parent 9af356f1eb
commit ffc7fbde72

View File

@@ -81,7 +81,7 @@ Header
2 bytes - Length of author name 2 bytes - Length of author name
3 bytes - ZST size 3 bytes - ZST size
1 byte - Flag Byte 1 byte - Flag Byte
2 bits - Start from ZST/Power On/Reset 2 bits - Start from ZST/Power On/Reset/Power On + Clear SRAM
1 bit - NTSC or PAL 1 bit - NTSC or PAL
5 bits - Reserved 5 bits - Reserved
ZST size - ZST (no thumbnail) ZST size - ZST (no thumbnail)
@@ -160,7 +160,7 @@ ZMV header types, vars, and functions
*/ */
enum zmv_start_methods { zmv_sm_zst, zmv_sm_power, zmv_sm_reset }; enum zmv_start_methods { zmv_sm_zst, zmv_sm_power, zmv_sm_reset, zmv_sm_clear_all };
enum zmv_video_modes { zmv_vm_ntsc, zmv_vm_pal }; enum zmv_video_modes { zmv_vm_ntsc, zmv_vm_pal };
#define INT_CHAP_SIZE (cur_zst_size+4+8) #define INT_CHAP_SIZE (cur_zst_size+4+8)
@@ -226,6 +226,11 @@ static void zmv_header_write(struct zmv_header *zmv_head, FILE *fp)
flag &= ~BIT(7); flag &= ~BIT(7);
flag |= BIT(6); flag |= BIT(6);
break; break;
case zmv_sm_clear_all:
flag |= BIT(7);
flag |= BIT(6);
break;
} }
switch (zmv_head->zmv_flag.video_mode) switch (zmv_head->zmv_flag.video_mode)
@@ -287,7 +292,7 @@ static bool zmv_header_read(struct zmv_header *zmv_head, FILE *fp)
break; break;
case BIT(7)|BIT(6): case BIT(7)|BIT(6):
return(false); zmv_head->zmv_flag.start_method = zmv_sm_clear_all;
break; break;
} }
@@ -589,6 +594,9 @@ static void zmv_create(char *filename)
asm_call(GUIDoReset); asm_call(GUIDoReset);
ReturnFromSPCStall = 0; ReturnFromSPCStall = 0;
break; break;
case zmv_sm_clear_all:
powercycle(false);
break;
} }
zst_save(zmv_vars.fp, false); zst_save(zmv_vars.fp, false);
@@ -779,6 +787,10 @@ static bool zmv_open(char *filename)
ReturnFromSPCStall = 0; ReturnFromSPCStall = 0;
zst_sram_load(zmv_vars.fp); zst_sram_load(zmv_vars.fp);
break; break;
case zmv_sm_clear_all:
powercycle(false);
fseek(zmv_vars.fp, cur_zst_size, SEEK_CUR);
break;
} }
zmv_open_vars.input_start_pos = ftell(zmv_vars.fp); zmv_open_vars.input_start_pos = ftell(zmv_vars.fp);