Mario RPG minecart Mode 2 graphics mostly fixed
This commit is contained in:
@@ -28,7 +28,7 @@ EXTSYM yposngom,flipyposngom,cbgval,ofsmval,ofsmvalh,vram,CPalPtrng,BGMS1,scadtn
|
|||||||
EXTSYM CMainWinScr,CSubWinScr,UnusedBit,res640,mosclineval,mostranspval
|
EXTSYM CMainWinScr,CSubWinScr,UnusedBit,res640,mosclineval,mostranspval
|
||||||
EXTSYM vcache2bs,vcache4bs,vcache8bs
|
EXTSYM vcache2bs,vcache4bs,vcache8bs
|
||||||
EXTSYM vidmemch2s,vidmemch4s,vidmemch8s
|
EXTSYM vidmemch2s,vidmemch4s,vidmemch8s
|
||||||
EXTSYM cpalval
|
EXTSYM cpalval,bgtxadd2
|
||||||
EXTSYM SpecialLine
|
EXTSYM SpecialLine
|
||||||
|
|
||||||
NEWSYM NewG162AsmStart
|
NEWSYM NewG162AsmStart
|
||||||
|
|||||||
@@ -431,6 +431,7 @@
|
|||||||
inc dword[bg1totng+%9*4]
|
inc dword[bg1totng+%9*4]
|
||||||
add word[ofsmmptr],2
|
add word[ofsmmptr],2
|
||||||
add word[ofsmtptr],2
|
add word[ofsmtptr],2
|
||||||
|
|
||||||
mov ax,[ofsmmptr]
|
mov ax,[ofsmmptr]
|
||||||
mov ebx,[yposngom]
|
mov ebx,[yposngom]
|
||||||
mov edx,[flipyposngom]
|
mov edx,[flipyposngom]
|
||||||
@@ -470,6 +471,11 @@
|
|||||||
add ebx,[ofsmcptr2]
|
add ebx,[ofsmcptr2]
|
||||||
add dword[ofsmcptr2],2
|
add dword[ofsmcptr2],2
|
||||||
and dword[ofsmcptr2],3Fh
|
and dword[ofsmcptr2],3Fh
|
||||||
|
test dword[ofsmcptr2],3Fh
|
||||||
|
jnz %%notzeroed
|
||||||
|
mov bx,[bgtxadd2]
|
||||||
|
add word[ofsmcptr],bx
|
||||||
|
%%notzeroed
|
||||||
test dword[ebx-40h],8000h
|
test dword[ebx-40h],8000h
|
||||||
jnz near %%noofsmh
|
jnz near %%noofsmh
|
||||||
test dword[ebx-40h],2000h << %9
|
test dword[ebx-40h],2000h << %9
|
||||||
@@ -639,6 +645,11 @@
|
|||||||
add dword[ofsmcptr2],2
|
add dword[ofsmcptr2],2
|
||||||
mov ecx,[ofsmvalh]
|
mov ecx,[ofsmvalh]
|
||||||
and dword[ofsmcptr2],3Fh
|
and dword[ofsmcptr2],3Fh
|
||||||
|
test dword[ofsmcptr2],3Fh
|
||||||
|
jnz %%notzeroed
|
||||||
|
mov bx,[bgtxadd2]
|
||||||
|
add word[ofsmcptr],bx
|
||||||
|
%%notzeroed
|
||||||
test dword[ebx-40h],ecx
|
test dword[ebx-40h],ecx
|
||||||
jz %%noofsmh
|
jz %%noofsmh
|
||||||
mov ebx,[ebx-40h]
|
mov ebx,[ebx-40h]
|
||||||
@@ -835,6 +846,11 @@
|
|||||||
%%noofsm
|
%%noofsm
|
||||||
add dword[ofsmcptr2],2
|
add dword[ofsmcptr2],2
|
||||||
and dword[ofsmcptr2],3Fh
|
and dword[ofsmcptr2],3Fh
|
||||||
|
test dword[ofsmcptr2],3Fh
|
||||||
|
jnz %%notzeroed
|
||||||
|
mov bx,[bgtxadd2]
|
||||||
|
add word[ofsmcptr],bx
|
||||||
|
%%notzeroed
|
||||||
|
|
||||||
add edi,16
|
add edi,16
|
||||||
xor dword[switch16x16],1
|
xor dword[switch16x16],1
|
||||||
|
|||||||
@@ -941,6 +941,7 @@ NEWSYM pnglogicval, dd 0
|
|||||||
NEWSYM mosjmptab, times 15 dd 0
|
NEWSYM mosjmptab, times 15 dd 0
|
||||||
NEWSYM Mode7HiRes, dd 0
|
NEWSYM Mode7HiRes, dd 0
|
||||||
NEWSYM pesimpng, dd 0
|
NEWSYM pesimpng, dd 0
|
||||||
|
NEWSYM bgtxadd2, dd 0
|
||||||
|
|
||||||
NEWSYM StartDrawNewGfx
|
NEWSYM StartDrawNewGfx
|
||||||
mov byte[WindowRedraw],1
|
mov byte[WindowRedraw],1
|
||||||
|
|||||||
@@ -2952,6 +2952,21 @@ EXTSYM drawmode7ngextbg,drawmode7ngextbg2
|
|||||||
add eax,ecx
|
add eax,ecx
|
||||||
add [ofsmtptr],ecx
|
add [ofsmtptr],ecx
|
||||||
mov [ofsmmptr],eax
|
mov [ofsmmptr],eax
|
||||||
|
|
||||||
|
mov word[bgtxadd2],0
|
||||||
|
cmp word[BGPT3X+ebx*2],0
|
||||||
|
je .yesoverfl
|
||||||
|
mov cx,word[BG3SXl+ebx*2]
|
||||||
|
add cx,16
|
||||||
|
test cx,100h
|
||||||
|
jz .notoverfl
|
||||||
|
add dword[ofsmcptr],800h
|
||||||
|
sub word[bgtxadd2],800h
|
||||||
|
jmp .yesoverfl
|
||||||
|
.notoverfl
|
||||||
|
add word[bgtxadd2],800h
|
||||||
|
.yesoverfl
|
||||||
|
|
||||||
mov dword[ofshvaladd],0
|
mov dword[ofshvaladd],0
|
||||||
mov ecx,[BGOPT1+ebx*2+%1*512]
|
mov ecx,[BGOPT1+ebx*2+%1*512]
|
||||||
mov edx,[BGMA+ebx]
|
mov edx,[BGMA+ebx]
|
||||||
@@ -3269,6 +3284,21 @@ EXTSYM drawmode7ngextbg,drawmode7ngextbg2
|
|||||||
mov eax,[BGPT1+ebx*2+%1*512]
|
mov eax,[BGPT1+ebx*2+%1*512]
|
||||||
mov [ofsmtptr],eax
|
mov [ofsmtptr],eax
|
||||||
mov [ofsmtptrs],eax
|
mov [ofsmtptrs],eax
|
||||||
|
|
||||||
|
mov word[bgtxadd2],0
|
||||||
|
cmp word[BGPT3X+ebx*2],0
|
||||||
|
je .yesoverfl
|
||||||
|
mov cx,word[BG3SXl+ebx*2]
|
||||||
|
add cx,16
|
||||||
|
test cx,100h
|
||||||
|
jz .notoverfl
|
||||||
|
add dword[ofsmcptr],800h
|
||||||
|
sub word[bgtxadd2],800h
|
||||||
|
jmp .yesoverfl
|
||||||
|
.notoverfl
|
||||||
|
add word[bgtxadd2],800h
|
||||||
|
.yesoverfl
|
||||||
|
|
||||||
mov ecx,[BG1SXl+ebx*2+%1*512]
|
mov ecx,[BG1SXl+ebx*2+%1*512]
|
||||||
mov edx,[BGPT1X+ebx*2+%1*512]
|
mov edx,[BGPT1X+ebx*2+%1*512]
|
||||||
test ecx,100h
|
test ecx,100h
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ EXTSYM ngwinptr,objwlrpos,objwen,objclineptr,CSprWinPtr
|
|||||||
EXTSYM BuildWindow2
|
EXTSYM BuildWindow2
|
||||||
EXTSYM NGNumSpr
|
EXTSYM NGNumSpr
|
||||||
EXTSYM fulladdtab
|
EXTSYM fulladdtab
|
||||||
EXTSYM FPUCopy
|
EXTSYM FPUCopy,bgtxadd2
|
||||||
|
|
||||||
NEWSYM NewGfx16AsmStart
|
NEWSYM NewGfx16AsmStart
|
||||||
|
|
||||||
|
|||||||
@@ -3201,6 +3201,7 @@ EXTSYM osm2dis
|
|||||||
mov eax,[BGPT1+ebx*2+%1*512]
|
mov eax,[BGPT1+ebx*2+%1*512]
|
||||||
mov [ofsmtptr],eax
|
mov [ofsmtptr],eax
|
||||||
mov [ofsmtptrs],eax
|
mov [ofsmtptrs],eax
|
||||||
|
|
||||||
mov dword[taddnfy16x16],0
|
mov dword[taddnfy16x16],0
|
||||||
mov dword[taddfy16x16],16
|
mov dword[taddfy16x16],16
|
||||||
test ecx,08h
|
test ecx,08h
|
||||||
@@ -3240,6 +3241,21 @@ EXTSYM osm2dis
|
|||||||
add eax,ecx
|
add eax,ecx
|
||||||
add [ofsmtptr],ecx
|
add [ofsmtptr],ecx
|
||||||
mov [ofsmmptr],eax
|
mov [ofsmmptr],eax
|
||||||
|
|
||||||
|
mov word[bgtxadd2],0
|
||||||
|
cmp word[BGPT3X+ebx*2],0
|
||||||
|
je .yesoverfl
|
||||||
|
mov cx,word[BG3SXl+ebx*2]
|
||||||
|
add cx,16
|
||||||
|
test cx,100h
|
||||||
|
jz .notoverfl
|
||||||
|
add dword[ofsmcptr],800h
|
||||||
|
sub word[bgtxadd2],800h
|
||||||
|
jmp .yesoverfl
|
||||||
|
.notoverfl
|
||||||
|
add word[bgtxadd2],800h
|
||||||
|
.yesoverfl
|
||||||
|
|
||||||
mov ecx,[BGOPT1+ebx*2+%1*512]
|
mov ecx,[BGOPT1+ebx*2+%1*512]
|
||||||
mov edx,[BGMA+ebx]
|
mov edx,[BGMA+ebx]
|
||||||
and edi,0Fh
|
and edi,0Fh
|
||||||
@@ -3316,6 +3332,7 @@ EXTSYM osm2dis
|
|||||||
mov eax,[BGPT1+ebx*2+%1*512]
|
mov eax,[BGPT1+ebx*2+%1*512]
|
||||||
mov [ofsmtptr],eax
|
mov [ofsmtptr],eax
|
||||||
mov [ofsmtptrs],eax
|
mov [ofsmtptrs],eax
|
||||||
|
|
||||||
test ecx,100h
|
test ecx,100h
|
||||||
jz .noyincd
|
jz .noyincd
|
||||||
add eax,[BGPT1Y+ebx*2+%1*512]
|
add eax,[BGPT1Y+ebx*2+%1*512]
|
||||||
@@ -3348,6 +3365,21 @@ EXTSYM osm2dis
|
|||||||
add eax,ecx
|
add eax,ecx
|
||||||
add [ofsmtptr],ecx
|
add [ofsmtptr],ecx
|
||||||
mov [ofsmmptr],eax
|
mov [ofsmmptr],eax
|
||||||
|
|
||||||
|
mov word[bgtxadd2],0
|
||||||
|
cmp word[BGPT3X+ebx*2],0
|
||||||
|
je .yesoverfl3
|
||||||
|
mov cx,word[BG3SXl+ebx*2]
|
||||||
|
add cx,16
|
||||||
|
test cx,100h
|
||||||
|
jz .notoverfl3
|
||||||
|
add dword[ofsmcptr],800h
|
||||||
|
sub word[bgtxadd2],800h
|
||||||
|
jmp .yesoverfl3
|
||||||
|
.notoverfl3
|
||||||
|
add word[bgtxadd2],800h
|
||||||
|
.yesoverfl3
|
||||||
|
|
||||||
mov dword[ofshvaladd],0
|
mov dword[ofshvaladd],0
|
||||||
mov ecx,[BGOPT1+ebx*2+%1*512]
|
mov ecx,[BGOPT1+ebx*2+%1*512]
|
||||||
mov edx,[BGMA+ebx]
|
mov edx,[BGMA+ebx]
|
||||||
@@ -3703,6 +3735,21 @@ EXTSYM osm2dis
|
|||||||
mov eax,[BGPT1+ebx*2+%1*512]
|
mov eax,[BGPT1+ebx*2+%1*512]
|
||||||
mov [ofsmtptr],eax
|
mov [ofsmtptr],eax
|
||||||
mov [ofsmtptrs],eax
|
mov [ofsmtptrs],eax
|
||||||
|
|
||||||
|
mov word[bgtxadd2],0
|
||||||
|
cmp word[BGPT3X+ebx*2],0
|
||||||
|
je .yesoverfl
|
||||||
|
mov cx,word[BG3SXl+ebx*2]
|
||||||
|
add cx,16
|
||||||
|
test cx,100h
|
||||||
|
jz .notoverfl
|
||||||
|
add dword[ofsmcptr],800h
|
||||||
|
sub word[bgtxadd2],800h
|
||||||
|
jmp .yesoverfl
|
||||||
|
.notoverfl
|
||||||
|
add word[bgtxadd2],800h
|
||||||
|
.yesoverfl
|
||||||
|
|
||||||
mov ecx,[BG1SXl+ebx*2+%1*512]
|
mov ecx,[BG1SXl+ebx*2+%1*512]
|
||||||
mov edx,[BGPT1X+ebx*2+%1*512]
|
mov edx,[BGPT1X+ebx*2+%1*512]
|
||||||
test ecx,100h
|
test ecx,100h
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ EXTSYM vidmemch4,vidmemch2,vidmemch8,mode0add,vcache4b,vcache2b,vcache8b
|
|||||||
EXTSYM cachesingle2bng,cachesingle8bng,ngpalcon4b,ngpalcon8b
|
EXTSYM cachesingle2bng,cachesingle8bng,ngpalcon4b,ngpalcon8b
|
||||||
EXTSYM ngpalcon2b,tleftnb,tltype2b,tltype4b,tltype8b,yposng,flipyposng
|
EXTSYM ngpalcon2b,tleftnb,tltype2b,tltype4b,tltype8b,yposng,flipyposng
|
||||||
EXTSYM ofsmcptr,ofsmtptr,ofsmmptr,ofsmcyps,ofsmady,ofsmadx
|
EXTSYM ofsmcptr,ofsmtptr,ofsmmptr,ofsmcyps,ofsmady,ofsmadx
|
||||||
EXTSYM yposngom,flipyposngom,cbgval,ofsmval,ofsmvalh,vram
|
EXTSYM yposngom,flipyposngom,cbgval,ofsmval,ofsmvalh,vram,bgtxadd2
|
||||||
|
|
||||||
NEWSYM NewGfx2AsmStart
|
NEWSYM NewGfx2AsmStart
|
||||||
|
|
||||||
|
|||||||
@@ -974,6 +974,11 @@
|
|||||||
add dword[ofsmcptr2],2
|
add dword[ofsmcptr2],2
|
||||||
mov ecx,[ofsmvalh]
|
mov ecx,[ofsmvalh]
|
||||||
and dword[ofsmcptr2],3Fh
|
and dword[ofsmcptr2],3Fh
|
||||||
|
test dword[ofsmcptr2],3Fh
|
||||||
|
jnz %%notzeroed
|
||||||
|
mov bx,[bgtxadd2]
|
||||||
|
add word[ofsmcptr],bx
|
||||||
|
%%notzeroed
|
||||||
test dword[ebx-40h],ecx
|
test dword[ebx-40h],ecx
|
||||||
jz %%noofsmh
|
jz %%noofsmh
|
||||||
mov ebx,[ebx-40h]
|
mov ebx,[ebx-40h]
|
||||||
|
|||||||
Reference in New Issue
Block a user