biisi optimoitu
This commit is contained in:
174
4klang.asm
174
4klang.asm
@ -76,7 +76,7 @@ global _su_render_song@4
|
||||
_su_render_song@4:
|
||||
pushad ; Stack: edi, esi, ebp, esp, ebx, edx, ecx, eax, retaddr_su_render_song, OutputBufPtr
|
||||
xor eax, eax
|
||||
push 5792 ; Stack: VoiceTrackBitmask, edi, esi, ebp, esp, ebx, edx, ecx, eax, retaddr_su_render_song, OutputBufPtr
|
||||
push 1696 ; Stack: VoiceTrackBitmask, edi, esi, ebp, esp, ebx, edx, ecx, eax, retaddr_su_render_song, OutputBufPtr
|
||||
push 1 ; Stack: RandSeed, VoiceTrackBitmask, edi, esi, ebp, esp, ebx, edx, ecx, eax, retaddr_su_render_song, OutputBufPtr
|
||||
push eax ; Stack: GlobalTick, RandSeed, VoiceTrackBitmask, edi, esi, ebp, esp, ebx, edx, ecx, eax, retaddr_su_render_song, OutputBufPtr
|
||||
su_render_rowloop: ; loop through every row in the song
|
||||
@ -85,8 +85,8 @@ su_render_rowloop: ; loop through every row in the song
|
||||
xor eax, eax ; ecx is the current sample within row
|
||||
su_render_sampleloop: ; loop through every sample in the row
|
||||
push eax ; Stack: Sample, Row, GlobalTick, RandSeed, VoiceTrackBitmask, edi, esi, ebp, esp, ebx, edx, ecx, eax, retaddr_su_render_song, OutputBufPtr
|
||||
push 126672 ; Stack: PolyphonyBitmask, Sample, Row, GlobalTick, RandSeed, VoiceTrackBitmask, edi, esi, ebp, esp, ebx, edx, ecx, eax, retaddr_su_render_song, OutputBufPtr ; does the next voice reuse the current opcodes?
|
||||
push 17 ; Stack: VoicesRemain, PolyphonyBitmask, Sample, Row, GlobalTick, RandSeed, VoiceTrackBitmask, edi, esi, ebp, esp, ebx, edx, ecx, eax, retaddr_su_render_song, OutputBufPtr
|
||||
push 31664 ; Stack: PolyphonyBitmask, Sample, Row, GlobalTick, RandSeed, VoiceTrackBitmask, edi, esi, ebp, esp, ebx, edx, ecx, eax, retaddr_su_render_song, OutputBufPtr ; does the next voice reuse the current opcodes?
|
||||
push 15 ; Stack: VoicesRemain, PolyphonyBitmask, Sample, Row, GlobalTick, RandSeed, VoiceTrackBitmask, edi, esi, ebp, esp, ebx, edx, ecx, eax, retaddr_su_render_song, OutputBufPtr
|
||||
mov edx, dword su_synth_obj ; edx points to the synth object
|
||||
mov ebx, dword su_patch_opcodes ; COM points to vm code
|
||||
mov esi, dword su_patch_operands ; VAL points to unit params
|
||||
@ -185,7 +185,7 @@ su_update_voices_nexttrack:
|
||||
pop edx ; edx=patrnrow
|
||||
add esi, 41
|
||||
inc ebp
|
||||
cmp ebp,su_synth_obj + 11
|
||||
cmp ebp,su_synth_obj + 10
|
||||
jl su_update_voices_trackloop
|
||||
ret
|
||||
|
||||
@ -301,7 +301,6 @@ su_op_xch:
|
||||
section .su_op_filter code align=1
|
||||
su_op_filter:
|
||||
lodsb ; load the flags to al
|
||||
call su_effects_stereohelper
|
||||
fld dword [edx + 4] ; r x
|
||||
fld dword [edx]; f r x
|
||||
fmul st0, st0 ; f2 x (square the input so we never get negative and also have a smoother behaviour in the lower frequencies)
|
||||
@ -323,14 +322,6 @@ su_op_filter:
|
||||
jz short su_op_filter_skiplowpass
|
||||
fadd dword [ebp]
|
||||
su_op_filter_skiplowpass:
|
||||
test al, byte 0x20
|
||||
jz short su_op_filter_skipbandpass
|
||||
fadd dword [ebp+8]
|
||||
su_op_filter_skipbandpass:
|
||||
test al, byte 0x10
|
||||
jz short su_op_filter_skiphighpass
|
||||
fadd dword [ebp+4]
|
||||
su_op_filter_skiphighpass:
|
||||
test al, byte 0x04
|
||||
jz short su_op_filter_skipneghighpass
|
||||
fsub dword [ebp+4]
|
||||
@ -346,14 +337,12 @@ su_op_filter_skipneghighpass:
|
||||
;-------------------------------------------------------------------------------
|
||||
section .su_op_pan code align=1
|
||||
su_op_pan:
|
||||
jc su_op_pan_do ; this time, if this is mono op...
|
||||
fld st0 ; ...we duplicate the mono into stereo first
|
||||
su_op_pan_do:
|
||||
fld dword [edx] ; p l r
|
||||
fld1 ; 1 p l r
|
||||
fsub st1 ; 1-p p l r
|
||||
fmulp st2 ; p (1-p)*l r
|
||||
fmulp st2 ; (1-p)*l p*r
|
||||
fld dword [edx] ; p s
|
||||
fmul st1 ; p*s s
|
||||
fsub st1, st0 ; p*s s-p*s
|
||||
; Equal to
|
||||
; s*p s*(1-p)
|
||||
fxch ; s*(1-p) s*p SHOULD PROBABLY DELETE, WHY BOTHER
|
||||
ret
|
||||
|
||||
;-------------------------------------------------------------------------------
|
||||
@ -644,7 +633,6 @@ su_op_oscillat_normalized:
|
||||
test al, byte 0x80
|
||||
jz short su_op_oscillat_not_sample
|
||||
fst dword [ebp] ; for samples, we store the phase without mod(p,1)
|
||||
fadd dword [edx + 8]
|
||||
call su_oscillat_sample
|
||||
jmp su_op_oscillat_shaping ; skip the rest to avoid color phase normalization and colorloading
|
||||
su_op_oscillat_not_sample:
|
||||
@ -654,22 +642,12 @@ su_op_oscillat_not_sample:
|
||||
fprem ; we actually computed mod(p+1,1) instead of mod(p,1) as the fprem takes mod
|
||||
fstp st1 ; towards zero
|
||||
fst dword [ebp] ; store back the updated phase
|
||||
fadd dword [edx + 8]
|
||||
fld1 ; this is a bit stupid, but we need to take mod(x,1) again after phase modulations
|
||||
fadd st1, st0 ; as the actual oscillator functions expect x in [0,1]
|
||||
fxch
|
||||
fprem
|
||||
fstp st1
|
||||
fld dword [edx + 12] ; // c p
|
||||
; every oscillator test included if needed
|
||||
test al, byte 0x40
|
||||
jz short su_op_oscillat_notsine
|
||||
call su_oscillat_sine
|
||||
su_op_oscillat_notsine:
|
||||
test al, byte 0x20
|
||||
jz short su_op_oscillat_not_trisaw
|
||||
call su_oscillat_trisaw
|
||||
su_op_oscillat_not_trisaw:
|
||||
su_op_oscillat_shaping:
|
||||
; finally, shape the oscillator and apply gain
|
||||
fld dword [edx + 16]
|
||||
@ -678,20 +656,6 @@ su_op_oscillat_gain:
|
||||
fmul dword [edx + 20]
|
||||
ret
|
||||
|
||||
section .su_oscillat_trisaw code align=1
|
||||
su_oscillat_trisaw:
|
||||
fucomi st1 ; // c p
|
||||
jnc short su_oscillat_trisaw_up
|
||||
fld1 ; // 1 c p
|
||||
fsubr st2, st0 ; // 1 c 1-p
|
||||
fsubrp st1, st0 ; // 1-c 1-p
|
||||
su_oscillat_trisaw_up:
|
||||
fdivp st1, st0 ; // tp'/tc
|
||||
fadd st0 ; // 2*''
|
||||
fld1 ; // 1 2*''
|
||||
fsubp st1, st0 ; // 2*''-1
|
||||
ret
|
||||
|
||||
section .su_oscillat_sine code align=1
|
||||
su_oscillat_sine:
|
||||
fucomi st1 ; // c p
|
||||
@ -817,19 +781,7 @@ su_power:
|
||||
ret
|
||||
|
||||
|
||||
;-------------------------------------------------------------------------------
|
||||
; DISTORT opcode: apply distortion on the signal
|
||||
;-------------------------------------------------------------------------------
|
||||
; Mono: x -> x*a/(1-a+(2*a-1)*abs(x)) where x is clamped first
|
||||
; Stereo: l r -> l*a/(1-a+(2*a-1)*abs(l)) r*a/(1-a+(2*a-1)*abs(r))
|
||||
; This is placed here to be able to flow into waveshaper & also include
|
||||
; wave shaper if needed by some other function; need to investigate the
|
||||
; best way to do this
|
||||
;-------------------------------------------------------------------------------
|
||||
section .su_op_distort code align=1
|
||||
su_op_distort:
|
||||
fld dword [edx]
|
||||
|
||||
section .su_waveshaper code align=1
|
||||
su_waveshaper:
|
||||
fld st0 ; a a x
|
||||
|
||||
@ -845,23 +797,6 @@ su_waveshaper:
|
||||
fmulp st1 ; x*a/(1-a+(2*a-1)*abs(x))
|
||||
ret
|
||||
|
||||
;-------------------------------------------------------------------------------
|
||||
; su_effects_stereohelper: moves the workspace to next, does the filtering for
|
||||
; right channel (pulling the calling address from stack), rewinds the
|
||||
; workspace and returns
|
||||
;-------------------------------------------------------------------------------
|
||||
section .su_effects_stereohelper code align=1
|
||||
su_effects_stereohelper:
|
||||
jnc su_effects_stereohelper_mono ; carry is still the stereo bit
|
||||
add ebp, 16
|
||||
fxch ; r l
|
||||
call [esp] ; call whoever called me...
|
||||
fxch ; l r
|
||||
sub ebp, 16 ; move WRK back to where it was
|
||||
su_effects_stereohelper_mono:
|
||||
ret ; return to process l/mono sound
|
||||
|
||||
|
||||
section .su_clip code align=1
|
||||
su_clip:
|
||||
fld1 ; 1 x a
|
||||
@ -883,16 +818,15 @@ section .su_vm_jumptable data align=1
|
||||
su_vm_jumptable:
|
||||
dd su_op_envelope
|
||||
dd su_op_oscillator
|
||||
dd su_op_distort
|
||||
dd su_op_addp
|
||||
dd su_op_mulp
|
||||
dd su_op_xch
|
||||
dd su_op_filter
|
||||
dd su_op_outaux
|
||||
dd su_op_pan
|
||||
dd su_op_delay
|
||||
dd su_op_send
|
||||
dd su_op_noise
|
||||
dd su_op_filter
|
||||
dd su_op_in
|
||||
dd su_op_out
|
||||
|
||||
@ -903,16 +837,15 @@ section .su_vm_transformcounts data align=1
|
||||
su_vm_transformcounts:
|
||||
db 5
|
||||
db 6
|
||||
db 1
|
||||
db 0
|
||||
db 0
|
||||
db 0
|
||||
db 2
|
||||
db 2
|
||||
db 1
|
||||
db 4
|
||||
db 1
|
||||
db 2
|
||||
db 2
|
||||
db 0
|
||||
db 1
|
||||
|
||||
@ -931,9 +864,9 @@ su_patterns:
|
||||
db 64,1,1,1,1,1,1,1,69,1,1,1,1,1,1,1
|
||||
db 33,0,0,0,33,33,33,33,0,0,33,0,0,33,0,0
|
||||
db 28,0,0,0,28,28,28,28,0,0,28,0,0,28,0,0
|
||||
db 26,1,1,1,26,26,26,28,0,0,28,0,0,28,0,0
|
||||
db 26,0,0,0,26,26,26,26,0,0,26,0,0,26,0,0
|
||||
db 23,0,0,0,23,23,23,23,0,0,23,0,0,23,0,0
|
||||
db 28,1,1,1,28,28,28,30,0,0,30,0,0,30,0,0
|
||||
db 28,0,0,0,28,28,28,30,0,0,30,0,0,30,0,0
|
||||
db 32,0,0,0,32,32,32,32,0,0,32,0,0,32,0,0
|
||||
db 26,1,1,1,1,1,1,1,1,1,25,1,1,1,1,1
|
||||
db 23,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||
@ -943,7 +876,7 @@ su_patterns:
|
||||
db 45,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||
db 45,0,0,0,45,45,45,45,0,0,45,0,0,45,0,0
|
||||
db 40,0,0,0,40,40,40,40,0,0,40,0,0,40,0,0
|
||||
db 38,0,0,0,38,38,38,40,0,0,40,0,0,40,0,0
|
||||
db 38,0,0,0,38,38,38,38,0,0,38,0,0,38,0,0
|
||||
db 35,0,0,0,35,35,35,35,0,0,35,0,0,35,0,0
|
||||
db 40,0,0,0,40,40,40,42,0,0,42,0,0,42,0,0
|
||||
db 47,0,0,0,47,47,47,47,0,0,47,0,0,47,0,0
|
||||
@ -971,62 +904,66 @@ su_patterns:
|
||||
db 62,1,1,1,1,1,1,1,1,1,62,1,1,1,1,1
|
||||
db 62,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||
db 64,1,1,1,1,1,1,1,64,1,1,1,1,1,64,1
|
||||
db 33,1,1,1,33,33,33,33,1,1,33,1,1,33,1,1
|
||||
db 32,1,1,1,32,32,32,32,1,1,32,1,1,32,1,1
|
||||
db 30,1,1,1,30,30,30,30,1,1,30,1,1,30,1,1
|
||||
db 50,1,1,1,50,1,1,1,50,1,1,1,50,1,1,1
|
||||
db 52,1,1,1,52,1,1,1,52,1,1,1,52,1,1,1
|
||||
db 56,0,0,0,56,56,56,56,0,0,56,0,0,56,0,0
|
||||
db 54,0,0,0,54,54,54,54,0,0,54,0,0,54,0,0
|
||||
db 52,1,1,1,52,1,1,1,0,0,0,0,0,0,0,0
|
||||
db 45,1,1,1,45,45,45,45,1,1,45,1,1,45,1,1
|
||||
db 44,1,1,1,44,44,44,44,1,1,44,1,1,44,1,1
|
||||
db 42,1,1,1,42,42,42,42,1,1,42,1,1,42,1,1
|
||||
db 62,1,1,1,62,1,1,1,62,1,1,1,62,1,1,1
|
||||
db 64,1,1,1,64,1,1,1,64,1,1,1,64,1,1,1
|
||||
db 64,1,1,1,64,1,1,1,0,0,0,0,0,0,0,0
|
||||
db 0,0,0,0,0,0,0,0,0,0,0,0,69,1,1,1
|
||||
db 73,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0
|
||||
db 74,1,1,1,1,1,1,1,1,1,0,0,73,1,0,71
|
||||
db 73,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||
db 0,0,0,0,0,0,0,0,73,1,1,1,1,1,1,1
|
||||
db 1,1,1,1,0,0,0,0,73,1,1,1,1,1,1,1
|
||||
db 81,1,1,1,1,1,1,1,1,1,1,1,83,1,1,1
|
||||
db 85,1,1,1,1,1,1,1,83,1,1,1,1,1,1,81
|
||||
db 80,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||
db 1,1,1,1,0,0,0,0,78,1,1,1,1,1,1,80
|
||||
db 1,1,1,0,0,0,0,0,78,1,1,1,1,1,1,80
|
||||
db 81,1,1,1,1,1,1,1,1,1,0,0,78,1,1,80
|
||||
db 81,1,1,1,1,1,1,1,1,0,0,0,83,1,1,81
|
||||
db 80,1,1,1,1,1,1,1,81,1,1,1,1,1,1,1
|
||||
db 83,1,1,1,1,1,0,0,81,1,1,1,1,1,1,83
|
||||
db 85,1,1,1,1,1,1,1,0,0,0,0,85,83,85,86
|
||||
db 85,1,1,1,1,1,1,1,0,0,0,0,81,83,85,86
|
||||
db 85,1,1,1,1,1,1,1,0,0,0,0,85,1,1,83
|
||||
db 85,1,1,1,1,1,1,1,0,0,0,0,81,1,1,85
|
||||
db 83,1,1,1,1,1,1,1,81,1,1,1,1,1,83,81
|
||||
db 80,1,1,1,1,1,1,1,76,78,80,83,80,81,83,88
|
||||
db 80,1,1,1,1,1,1,1,0,0,0,0,76,1,1,1
|
||||
db 86,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||
db 1,1,1,1,1,1,0,0,86,1,1,1,85,1,1,1
|
||||
db 1,1,1,1,0,0,0,0,86,1,1,1,85,1,1,1
|
||||
db 83,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||
db 1,1,1,1,1,0,0,0,83,1,1,1,88,1,1,1
|
||||
db 1,1,1,1,1,1,1,0,86,1,1,1,88,1,1,1
|
||||
db 1,1,1,1,0,0,0,0,83,1,1,1,88,1,1,1
|
||||
db 1,1,1,1,1,1,0,0,86,1,1,1,88,1,1,1
|
||||
db 88,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||
db 1,1,1,1,1,1,0,0,76,1,1,1,1,1,1,1
|
||||
db 1,1,1,1,0,0,0,0,76,1,1,1,1,1,1,1
|
||||
db 81,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||
db 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0
|
||||
db 50,1,1,1,1,1,1,1,1,1,49,1,1,1,1,1
|
||||
db 47,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
||||
db 38,1,1,1,1,1,1,1,1,1,49,1,1,1,1,1
|
||||
db 1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
|
||||
db 60,1,1,1,60,1,1,1,60,1,1,1,60,1,1,1
|
||||
db 60,1,1,1,62,62,62,62,1,1,62,1,1,62,1,1
|
||||
db 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
db 62,1,1,1,62,62,62,62,1,1,62,1,1,62,1,1
|
||||
db 62,1,1,1,62,1,1,1,62,1,1,1,62,1,62,62
|
||||
db 62,1,1,1,62,1,1,1,62,1,1,1,62,1,62,1
|
||||
db 62,1,1,1,62,1,1,1,1,1,1,1,1,1,1,1
|
||||
db 60,1,1,1,60,1,1,1,60,1,1,1,60,1,1,1
|
||||
db 60,1,1,1,60,1,1,1,1,1,1,1,1,1,1,1
|
||||
|
||||
;-------------------------------------------------------------------------------
|
||||
; Tracks
|
||||
;-------------------------------------------------------------------------------
|
||||
section .su_tracks data align=1
|
||||
su_tracks:
|
||||
db 16,1,1,2,3,4,5,6,1,7,7,7,7,7,7,7,7,7,7,8,8,9,10,11,12,7,7,11,12,13,14,15,1,13,14,15,1,0,1,1,1
|
||||
db 17,1,1,1,1,1,18,1,1,19,19,19,19,19,19,19,19,19,19,20,20,21,22,23,24,19,19,23,24,25,26,27,1,25,26,27,1,0,1,1,1
|
||||
db 0,28,1,1,1,1,28,1,1,20,20,20,20,20,20,20,20,20,20,24,24,19,19,24,29,20,20,24,29,30,31,32,1,30,31,32,1,0,1,1,1
|
||||
db 0,1,33,1,1,1,33,1,1,34,34,34,34,34,34,34,34,34,34,29,29,35,35,29,36,34,34,29,36,37,38,39,1,37,38,39,1,0,1,1,1
|
||||
db 0,1,1,40,41,31,42,43,1,44,44,44,44,44,44,44,44,44,44,36,36,45,45,36,1,44,44,36,1,46,47,48,1,46,47,48,1,0,1,1,1
|
||||
db 0,1,1,1,1,1,1,1,1,7,7,7,7,7,7,7,7,7,7,29,29,35,35,29,29,19,19,29,29,49,49,50,50,49,49,50,50,0,1,1,1
|
||||
db 0,1,1,1,1,1,1,1,1,19,19,19,19,19,19,19,19,19,19,51,51,52,52,51,51,45,45,51,51,53,53,54,54,53,53,54,54,0,1,1,1
|
||||
db 0,1,1,1,1,1,1,1,1,1,1,1,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,72,76,77,78,79,80,1,1
|
||||
db 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,81,82,27,1,83,82,27,84,1,1,1,1
|
||||
db 0,1,1,1,1,1,1,1,1,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,1,1,1,1
|
||||
db 0,1,1,1,1,1,1,1,1,86,87,86,87,86,87,86,87,86,87,86,87,86,87,86,87,86,87,86,87,86,87,86,87,86,87,86,87,0,1,1,1
|
||||
db 16,1,1,2,3,4,5,6,1,7,7,7,7,7,7,7,7,7,7,8,8,9,10,11,12,7,7,8,8,13,14,15,1,13,14,15,1,0,1,1,1
|
||||
db 17,1,1,1,1,1,18,1,1,19,19,19,19,19,19,19,19,19,19,20,20,21,22,23,24,19,19,20,20,25,26,27,1,25,26,27,1,0,1,1,1
|
||||
db 0,28,1,1,1,1,28,1,1,20,20,20,20,20,20,20,20,20,20,24,24,19,19,24,29,20,20,24,24,30,31,32,1,30,31,32,1,0,1,1,1
|
||||
db 0,1,33,1,1,1,33,1,1,34,34,34,34,34,34,34,34,34,34,29,29,35,35,29,36,34,34,29,29,37,38,39,1,37,38,39,1,0,1,1,1
|
||||
db 0,1,1,40,41,31,42,43,1,44,44,44,44,44,44,44,44,44,44,36,36,45,45,36,1,44,44,36,36,46,47,48,1,46,47,48,1,0,1,1,1
|
||||
db 0,1,1,1,1,1,1,1,1,49,49,49,49,49,49,49,49,49,49,50,50,51,51,50,50,49,49,50,50,52,52,53,53,52,52,53,54,1,1,1,1
|
||||
db 0,1,1,1,1,1,1,1,1,55,55,55,55,55,55,55,55,55,55,56,56,57,57,56,56,55,55,56,56,58,58,59,59,58,58,59,60,1,1,1,1
|
||||
db 0,1,1,1,1,1,1,1,1,1,1,1,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,78,82,83,84,85,86,1,1
|
||||
db 0,1,1,1,1,1,1,1,1,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,88,89,88,89,88,89,88,90,1,1,1,1
|
||||
db 0,1,1,1,1,1,1,1,1,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,92,1,1,1,1
|
||||
;-------------------------------------------------------------------------------
|
||||
; Sample offsets
|
||||
;-------------------------------------------------------------------------------
|
||||
@ -1044,15 +981,12 @@ su_sample_offsets:
|
||||
dd 1622065
|
||||
dw 1916
|
||||
dw 76
|
||||
dd 1252819
|
||||
dw 6513
|
||||
dw 905
|
||||
dd 741926
|
||||
dw 1034
|
||||
dw 1
|
||||
dd 560606
|
||||
dw 4276
|
||||
dw 1
|
||||
dd 741926
|
||||
dw 1034
|
||||
dw 1
|
||||
|
||||
;-------------------------------------------------------------------------------
|
||||
; Delay times
|
||||
@ -1067,14 +1001,14 @@ su_delay_times:
|
||||
;-------------------------------------------------------------------------------
|
||||
section .su_patch_opcodes data align=1
|
||||
su_patch_opcodes:
|
||||
db 2,4,4,6,8,10,2,4,4,6,12,8,10,15,17,0,2,4,4,8,14,10,18,21,17,0,3,5,11,19,21,17,2,4,10,22,0,2,4,4,8,4,14,8,10,14,18,17,0,2,4,10,18,17,0,2,4,10,2,24,10,14,14,8,18,17,0,27,21,29,0
|
||||
db 2,4,4,6,8,2,4,4,10,6,8,13,0,2,4,4,6,8,14,17,13,0,3,5,9,17,13,2,4,8,18,0,2,4,8,2,20,8,22,22,6,14,13,0,2,4,8,14,13,0,25,17,27,0
|
||||
|
||||
;-------------------------------------------------------------------------------
|
||||
; The parameters / inputs to each opcode
|
||||
;-------------------------------------------------------------------------------
|
||||
section .su_patch_operands data align=1
|
||||
su_patch_operands:
|
||||
db 57,85,62,63,84,91,65,0,0,67,35,128,79,61,0,1,65,78,128,32,57,87,50,64,71,91,54,0,0,64,64,128,79,62,0,1,80,68,128,64,92,128,96,27,41,10,70,0,72,61,77,32,0,2,81,74,130,77,48,0,2,42,128,128,47,128,112,64,69,128,53,98,0,1,39,33,0,67,87,71,128,62,64,0,3,63,88,128,73,76,128,61,16,2,1,92,76,95,0,92,89,82,81,64,0,128,64,128,72,89,41,0,40,65,77,71,74,52,64,64,126,64,128,66,64,64,75,118,61,128,33,93,64,42,4,104,128,128,50,100,68,94,128,64,64,39,0,0,43,89,50,128,79,42,0,5,72,128,128,64,124,0,14,68,0,0,110,76,52,0,6,81,53,128,0,68,0,0,83,2,39,128,67,68,110,116,64,59,128,8,2,30,128,125,25,4,15,128
|
||||
db 57,82,62,63,128,91,65,0,0,67,41,129,79,63,0,1,65,62,129,57,87,50,64,100,91,54,0,0,64,64,129,79,62,0,1,64,78,129,18,19,31,70,0,66,76,77,31,0,2,64,128,130,89,48,0,2,64,97,130,75,28,128,59,86,0,1,20,32,25,64,88,64,112,62,64,0,3,64,47,129,84,128,37,18,2,1,56,53,91,0,92,89,82,82,64,0,128,64,128,72,80,41,0,0,68,0,0,90,76,52,0,4,81,53,128,0,68,0,0,83,2,39,128,67,68,110,116,64,59,77,56,0,43,89,50,103,79,42,0,5,72,128,128,64,72,0,2,33,128,123,14,4,15,90
|
||||
|
||||
;-------------------------------------------------------------------------------
|
||||
; Constants
|
||||
|
||||
Reference in New Issue
Block a user