allows negative vertical offsets in credits

This commit is contained in:
duncathan 2021-03-24 05:41:38 -06:00
parent b1e9b4d1c3
commit f2158589ba
5 changed files with 149 additions and 111 deletions

View File

@ -0,0 +1,108 @@
; ActionCredit_Read
offset 0040d684
#define
var_a=ebp-30
len=ebp-34
var_text=ebp-2c
Credit.pData=49d614
Credit.offset=49d618
Credit.wait=49d61c
Credit.start_x=49d624
_memcpy=4813c0
GetScriptNumber=40db00
SetStripper=40d150
IsShiftJIS=410e90
#enddefine
mov ecx,[Credit.offset]
inc ecx
mov [Credit.offset],ecx
mov [var_a],ecx
:loop
mov eax,[Credit.pData]
add eax,[var_a]
movsx ecx,BYTE [eax]
cmp ecx,5d
je :break
push ecx
call IsShiftJIS
pop ecx
mov ecx,[var_a]
test eax,eax
je :notShiftJIS
inc ecx
:notShiftJIS
inc ecx
mov [var_a],ecx
jmp :loop
:break
; len = a - Credit.offset
mov edx,[var_a]
sub edx,[Credit.offset]
mov [len],edx
push edx ; Arg3 = len
mov ecx,[Credit.pData]
add ecx,[Credit.offset]
push ecx ; Arg2 = &Credit.pData[Credit.offset]
lea ecx,[var_text]
push ecx ; Arg1 = text
call _memcpy
add esp,0c
; text[len] = '\0'
mov ecx,[len]
mov [ecx+var_text],0
; Credit.offset = a+1
mov eax,[var_a]
inc eax
mov [Credit.offset],eax
add eax,[Credit.pData]
push eax ; Arg1 = &Credit.pData[Credit.offset]
call GetScriptNumber
; len = GetScriptNumber
mov [len],eax
pop ecx
push eax ; Arg4 = len
lea eax,[var_text]
push eax ; Arg3 = text
mov edx,1f000
mov eax,[Credit.wait]
cmp eax,0
jge :more
imul eax,eax,200
add edx,eax
:more
push edx
mov eax,[Credit.start_x]
push eax ; Arg1 = Credit.start_x
call SetStripper
add esp,10
; Credit.wait = 0
mov [Credit.wait],0
; Credit.offset += 0
mov eax,[Credit.offset]
add eax,4
mov [Credit.offset],eax
jmp 0040da6a

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -958,153 +958,83 @@ l2069
l3000
-0048
f7001:3002f7000:3001
+0030[N.A]0221j3003
-0000+0030[N.A]0221j3003
l3001
+0030[Pol]0208j3003
-0000+0030[Pol]0208j3003
l3002
+0030[Spu]0216j3003
-0000+0030[Spu]0216j3003
l3003
f7009:3005f7008:3004
+0070[N.A]0222j3006
-000.+0070[N.A]0222j3006
l3004
+0070[Mis]0209j3006
-000.+0070[Mis]0209j3006
l3005
+0070[Sup]0217j3006
-000.+0070[Sup]0217j3006
l3006
f7005:3007
+0110[N.A]0223j3008
-000,+0110[N.A]0223j3008
l3007
+0110[M.G]0210j3008
-000,+0110[M.G]0210j3008
l3008
f7004:3009
+0150[N.A]0224j3010
-000*+0150[N.A]0224j3010
l3009
+0150[Bub]0211j3010
-000*+0150[Bub]0211j3010
l3010
f7002:3011
+0190[N.A]0225j3012
-000(+0190[N.A]0225j3012
l3011
+0190[FiB]0212j3012
-000(+0190[FiB]0212j3012
l3012
f7003:3013
+0230[N.A]0226j3014
-000&+0230[N.A]0226j3014
l3013
+0230[Snk]0213j3014
-000&+0230[Snk]0213j3014
l3014
f7006:3015
+0270[N.A]0227j3016
-000$+0270[N.A]0227j3016
l3015
+0270[Bld]0214j3016
-000$+0270[Bld]0214j3016
l3016
f7007:3017
+0310[N.A]0228j3018
-000"+0310[N.A]0228j3018
l3017
+0310[Nem]0215j3018
-000"+0310[Nem]0215j3018
l3018
-0096
+0050[pup?]0132
+0100[pup?]0155
+0150[pup?]0168
+0200[pup?]0181
+0250[pup?]0194
-0000+0050[pup?]0132
-000.+0100[pup?]0155
-000,+0150[pup?]0168
-000*+0200[pup?]0181
-000(+0250[pup?]0194
-0024
+0050[pup?]0132
+0100[pup?]0155
+0150[pup?]0168
+0200[pup?]0181
+0250[pup?]0194
-0000+0050[pup?]0132
-000.+0100[pup?]0155
-000,+0150[pup?]0168
-000*+0200[pup?]0181
-000(+0250[pup?]0194
-0024
+0050[pup?]0132
+0100[pup?]0155
+0150[pup?]0168
+0200[pup?]0181
+0250[pup?]0194
-0000+0050[pup?]0132
-000.+0100[pup?]0155
-000,+0150[pup?]0168
-000*+0200[pup?]0181
-000(+0250[pup?]0194
-0024
+0050[pup?]0132
+0100[pup?]0155
+0150[pup?]0168
+0200[pup?]0181
+0250[pup?]0194
-0024
+0050[pup?]0132
+0100[pup?]0155
+0150[pup?]0168
+0200[pup?]0181
+0250[pup?]0194
-0024
+0050[pup?]0132
+0100[pup?]0155
+0150[pup?]0168
+0200[pup?]0181
+0250[pup?]0194
-0024
+0050[pup?]0132
+0100[pup?]0155
+0150[pup?]0168
+0200[pup?]0181
+0250[pup?]0194
-0024
+0050[pup?]0132
+0100[pup?]0155
+0150[pup?]0168
+0200[pup?]0181
+0250[pup?]0194
-0024
+0050[pup?]0132
+0100[pup?]0155
+0150[pup?]0168
+0200[pup?]0181
+0250[pup?]0194
-0024
+0050[pup?]0132
+0100[pup?]0155
+0150[pup?]0168
+0200[pup?]0181
+0250[pup?]0194
-0024
+0050[pup?]0132
+0100[pup?]0155
+0150[pup?]0168
+0200[pup?]0181
+0250[pup?]0194
-0024
+0050[pup?]0132
+0100[pup?]0155
+0150[pup?]0168
+0200[pup?]0181
+0250[pup?]0194
-0024
+0050[pup?]0132
+0100[pup?]0155
+0150[pup?]0168
+0200[pup?]0181
+0250[pup?]0194
-0024
+0050[pup?]0132
+0100[pup?]0155
+0150[pup?]0168
+0200[pup?]0181
+0250[pup?]0194
-0024
+0050[pup?]0132
+0100[pup?]0155
+0150[pup?]0168
+0200[pup?]0181
+0250[pup?]0194
-0024
+0050[pup?]0132
+0100[pup?]0155
+0150[pup?]0168
+0200[pup?]0181
+0250[pup?]0194
-0000+0050[pup?]0132
-000.+0100[pup?]0155
-000,+0150[pup?]0168
-000*+0200[pup?]0181
-000(+0250[pup?]0194
-0024
-0096
/
j0999