X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hexed%2Fhexed.s;h=ae77a3eb26060395bb65d2da02423eadbc2679a5;hb=b40440c43fc737d9384d8b7724d8b36b0da2f37d;hp=99d1c084e39c9e66d3e453546c15246a453d3198;hpb=f0e0673602899ee26c6dec3964199e266881241c;p=megadrive.git diff --git a/hexed/hexed.s b/hexed/hexed.s index 99d1c08..ae77a3e 100644 --- a/hexed/hexed.s +++ b/hexed/hexed.s @@ -149,7 +149,7 @@ .macro do_dpad bit op val btst.l #\bit,d0 beq 0f - \op.l \val,a6 + \op \val,a6 bra dpad_end 0: .endm @@ -203,7 +203,8 @@ sprite_data_end: predef_addrs: dc.l 0x000000, 0x200000, 0x400000, 0xa00000, 0xa10000 - dc.l 0xa11100, 0xa12000, 0xa13000, 0xa14000, 0xc00000 + dc.l 0xa11100, 0xa12000, 0xa13000, 0xa14000, 0xa15100 + dc.l 0xc00000 predef_addrs_end: safe_addrs: @@ -214,6 +215,10 @@ safe_addrs: dc.l 0xa12000, 0xa120ff dc.l 0xa13000, 0xa130ff safe_addrs_end: + dc.l 0xa15100, 0xa1513f +safe_addrs_end_32x: + dc.l 0xa15180, 0xa153ff +safe_addrs_end_32x_vdp: sizeof_bin: dc.l _edata @@ -746,20 +751,20 @@ draw_status_bar: btst.l #16+4,d0 /* A - scroll modifier */ beq input_noa - do_dpad 16+0, sub, #0x0800 - do_dpad 16+1, add, #0x0800 - do_dpad 16+10, sub, #0xd800 - do_dpad 16+11, add, #0xd800 + do_dpad 16+0, sub.l, #0x0800 + do_dpad 16+1, add.l, #0x0800 + do_dpad 16+10, sub.l, #0xd800 + do_dpad 16+11, add.l, #0xd800 input_noa: moveq.l #0,d1 move.w d7,d1 lsr.w #7,d1 lsr.w #7,d1 - do_dpad 0, subq, #0x0008 - do_dpad 1, addq, #0x0008 - do_dpad 10, sub, d1 - do_dpad 11, add, d1 + do_dpad 0, subq.l, #0x0008 + do_dpad 1, addq.l, #0x0008 + do_dpad 10, sub.l, d1 + do_dpad 11, add.l, d1 dpad_end: /* update addr */ @@ -1402,6 +1407,19 @@ get_safety_mask: lsr.l #8,d1 lea (safe_addrs,pc),a1 move.w #(safe_addrs_end - safe_addrs)/8-1,d2 + cmp.l #0x4D415253,(0xa130ec) /* 'MARS' */ + bne no_32x + move.w #(safe_addrs_end_32x - safe_addrs)/8-1,d2 + move.w (0xa15100),d0 + and.w #3,d0 + cmp.w #3,d0 /* ADEN and nRES */ + bne no_32x_vdp + btst.b #7,d0 /* FM */ + bne no_32x_vdp + move.w #(safe_addrs_end_32x_vdp - safe_addrs)/8-1,d2 +no_32x_vdp: +no_32x: + 0: move.l (a1)+,d0 cmp.l d0,d1