Skip to content

ZD2 - parameter description is similar to 'sonicstomp' #1

Open

Description

@mungewell

First part of seeing how close ZDL and ZD2 are related... from my analysis of ZD2 I had identified a blob of data which defines the parameter names/range/function.

This looks very similar to your 'sonicstomp'
https://github.com/repeat98/ZoomMultistompZDL/blob/main/build/ABI.md#3-sonicstomp--the-plugin-descriptor

	.def LineSel
$C$DW$2	.dwtag  DW_TAG_subprogram
	.dwattr $C$DW$2, DW_AT_name("LineSel")
	.dwattr $C$DW$2, DW_AT_low_pc(LineSel)
	.dwattr $C$DW$2, DW_AT_high_pc(0x00)
LineSel:
           .word 0x664f6e4f		; 'OnOff'
           .word 0x00000066
           .word 0x00000000
           .word 0x00000001		; max
           .word 0x00000000		; init
           .word 0x00000000
           .word 0x00000000
           .word Fx_SFX_LineSel_onf
	; 8000014c  00000701 R_C6000_ABS32          00000000   Fx_SFX_LineSel_onf + 0
           .word 0x00000000
           .word 0x00000000
           .word 0x00000000
           .word 0x00000000
           .word 0x00000000
           .word 0x00000000

           .word 0x656e694c		; 'LineSel'
           .word 0x006c6553
           .word 0x00000000
           .word 0xffffffff		; always 0xffffffff for init func
           .word 0x00000000
           .word 0x00000001
           .word 0x00000000
           .word Fx_SFX_LineSel_init
	; 80000184  00000601 R_C6000_ABS32          00000100   Fx_SFX_LineSel_init + 0
           .word Fx_SFX_LineSel
	; 80000188  00000501 R_C6000_ABS32          00000140   Fx_SFX_LineSel + 0
           .word 0x00000000
           .word 0x00000000
           .word 0x00000000
           .word 0x00000000
           .word 0x00000000

           .word 0x2d786645		; Changed to 'Efx-Lvl' lowercase
           .word 0x006c764c		; debug to confirm modified effect loaded
           .word 0x00000000
           .word 0x00000096		; max
           .word 0x00000064		; init
           .word 0x00000096		; ???
           .word 0x00000000
           .word Fx_SFX_LineSel_EfxLvl_edit
	; 800001bc  00000401 R_C6000_ABS32          00000064   Fx_SFX_LineSel_EfxLvl_edit + 0
           .word 0x00000000
           .word 0x00000000
           .word 0x00000000
           .word 0x00000000
           .word 0x00000000
           .word 0x00000000

           .word 0x2054554f		; 'OUT LVL'
           .word 0x004c564c
           .word 0x00000000
           .word 0x00000096		; max
           .word 0x00000064		; init
           .word 0x00000096		; ???
           .word 0x00000000
           .word Fx_SFX_LineSel_OutLvl_edit
	; 800001f4  00000301 R_C6000_ABS32          000000b0   Fx_SFX_LineSel_OutLvl_edit + 0
           .word 0x00000000
           .word 0x00000000
           .word 0x00000000
           .word 0x00000000
           .word 0x00000006		; bitfield1
           .word 0x00000000		; bitfield2
	.dwendtag $C$DW$2

Activity

  1. mungewell commented on May 15, 2026

    @mungewell
    Author

    Regarding the bitfield, 0x02 may be the 'inverted text'

               .word 0x4f2f4e4f             ; 'ON/OFF'
               .word 0x00004646
               .word 0x00000000
               .word 0x00000001             ; max
               .word 0x00000001             ; init
               .word 0x00000000
               .word 0x00000000
               .word Fx_SFX_Bomber_control_edit
            ; 80000134  00001f01 R_C6000_ABS32          00000cf4   Fx_SFX_Bomber_control_edit + 0
               .word 0x00000000
               .word _GetString_Onf
            ; 8000013c  00001e01 R_C6000_ABS32          00001800   _GetString_Onf + 0
               .word 0x00000000
               .word 0x00000000
               .word 0x00108000             ; bitfield1
               .word 0x00000002             ; bitfield2 invert text?
            .dwendtag $C$DW$1
    
  2. mungewell commented on May 15, 2026

    @mungewell
    Author

    Mostly ZD2 don't have the .audio section (all code is under .text), one exception I found is 'BITCRUSH.ZD2' (from MS70CDR+)

            .sect ".audio"
    
            .def Fx_SFX_BitCrush
            .align 32
    Fx_SFX_BitCrush:
               LDW.D1T1      *A4[2],A3
               MVK.L1        0,A5
               MVK.L2        0,B5
               MVK.L1        0,A7
    
               .word 0x43746942
               .word 0x68737572
               .word 0x00000000
               .word 0xffffffff
               .word 0x00000000
               .word 0x00000001
               .word 0x00000000
               .word 0x00000208
            ; 80000054  00000e01 R_C6000_ABS32          00000208   Fx_SFX_BitCrush_init + 0
               .word 0x00007800
            ; 80000058  00000d01 R_C6000_ABS32          00007800   Fx_SFX_BitCrush + 0
               .word 0x00000000
               .word 0x416e147b
               .word 0x00000000
               .word 0x00000000
               .word 0x00000000
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions