Have you ever thought “having the Detune menu entry next to the Finetune entry would be cool”? Then this HowTo is for you. It's one of the simplest things to change. In this example will change just that - on the “Oscillator page” we'll move “Detune” next to “Finetune”.
Difficulty level:
Required actions:
Affected files [1]:
src/cs_menu_tables.inc
src/cs_menu_tables.inc
.
CS_MENU_TABLE_L_OSC
: Oscillator menu page for the lead engine (notice the _L_
in the name)CS_MENU_TABLE_B_OSC
: Oscillator menu page for the bassline engine (notice the _B_
in the name)CS_MENU_TABLE_L_FIL
: The Filter menu page for the lead engineCS_MENU_TABLE_L_LFO
: The LFO menu page for the lead engine
In this example we want to edit CS_MENU_TABLE_L_OSC
whick looks like this:
; ========================================================================== ; The oscillator menu ; ========================================================================== CS_MENU_TABLE_L_OSC db (CS_MENU_TABLE_L_OSC_End-CS_MENU_TABLE_L_OSC)/CS_MENU_ENTRY_LEN, 0x00 ;; Register (00=dummy) |<->| max print ix exec ix parameter transfer CS_MENU_ENTRY CS_MENU_SELECTED_OSC_FLAGS, "OSC", 0x006, PRINT_VAR_123, EXEC_SELPAR, R2PP2R_VAR_OSC CS_MENU_ENTRY SID_Ix_Vx_WAVEFORM, "Wav", 0x008, PRINT_Vx_WAV, EXEC_SELPAR, R2PP2R_Vx_WAV CS_MENU_ENTRY SID_Ix_Vx_WAVEFORM, "S/R", 0x003, PRINT_Vx_S_R, EXEC_TOGPAR, R2PP2R_Vx_S_R CS_MENU_ENTRY SID_Ix_Vx_DELAY, "Del", 0x0ff, PRINT_Vx_DEC, EXEC_SELPAR, R2PP2R_Vx CS_MENU_ENTRY SID_Ix_Vx_AD, "Atk", 0x00f, PRINT_Vx_DEC4U, EXEC_SELPAR, R2PP2R_Vx_4U CS_MENU_ENTRY SID_Ix_Vx_AD, "Dec", 0x00f, PRINT_Vx_DEC4L, EXEC_SELPAR, R2PP2R_Vx_4L CS_MENU_ENTRY SID_Ix_Vx_SR, "Sus", 0x00f, PRINT_Vx_DEC4U, EXEC_SELPAR, R2PP2R_Vx_4U CS_MENU_ENTRY SID_Ix_Vx_SR, "Rel", 0x00f, PRINT_Vx_DEC4L, EXEC_SELPAR, R2PP2R_Vx_4L CS_MENU_ENTRY SID_Ix_Vx_PITCHRANGE, "PRn", 0x07f, PRINT_Vx_DEC, EXEC_SELPAR, R2PP2R_Vx CS_MENU_ENTRY SID_Ix_Vx_TRANSPOSE, "Trn", 0x07f, PRINT_Vx_PMDEC7, EXEC_SELPAR, R2PP2R_Vx CS_MENU_ENTRY SID_Ix_Vx_FINETUNE, "Fin", 0x0ff, PRINT_Vx_PMDEC8, EXEC_SELPAR, R2PP2R_Vx CS_MENU_ENTRY SID_Ix_Vx_PORTAMENTO, "Por", 0x0ff, PRINT_Vx_DEC, EXEC_SELPAR, R2PP2R_Vx CS_MENU_ENTRY SID_Ix_L_OSC_PHASE, "Phs", 0x0ff, PRINT_DEC8, EXEC_SELPAR, R2PP2R_PAR8 CS_MENU_ENTRY SID_Ix_Vx_PULSEWIDTH_L, "PW ", 0xfff, PRINT_Vx_HEX12, EXEC_SELPAR, R2PP2R_Vx_12 CS_MENU_ENTRY SID_Ix_Vx_FLAGS1, "PMd", 0x002, PRINT_Vx_PMD, EXEC_TOGPAR, R2PP2R_Vx_PMD CS_MENU_ENTRY SID_Ix_Vx_FLAGS1, "GSA", 0x001, PRINT_Vx_GSA, EXEC_TOGPAR, R2PP2R_Vx_GSA CS_MENU_ENTRY SID_Ix_L_OSC_DETUNE, "Det", 0x0ff, PRINT_DEC8, EXEC_SELPAR, R2PP2R_PAR8 #if ENABLE_SWINSID CS_MENU_ENTRY SID_Ix_Vx_SWINSID_MODE, "SwM", 0x0ff, PRINT_Vx_HEX8, EXEC_SELPAR, R2PP2R_Vx CS_MENU_ENTRY SID_Ix_Vx_SWINSID_PHASE, "SwP", 0x0ff, PRINT_Vx_HEX8, EXEC_SELPAR, R2PP2R_Vx #endif CS_MENU_TABLE_L_OSC_End
To change it all you need to do is cut the line you want to move and paste it somewhere else. For this example we will move the line
CS_MENU_ENTRY SID_Ix_L_OSC_DETUNE, "Det", 0x0ff, PRINT_DEC8, EXEC_SELPAR, R2PP2R_PAR8
It's supposed to be after Finetune which is this line
CS_MENU_ENTRY SID_Ix_Vx_FINETUNE, "Fin", 0x0ff, PRINT_Vx_PMDEC8, EXEC_SELPAR, R2PP2R_Vx
So after moving it up there, your table should look like this:
; ========================================================================== ; The oscillator menu ; ========================================================================== CS_MENU_TABLE_L_OSC db (CS_MENU_TABLE_L_OSC_End-CS_MENU_TABLE_L_OSC)/CS_MENU_ENTRY_LEN, 0x00 ;; Register (00=dummy) |<->| max print ix exec ix parameter transfer CS_MENU_ENTRY CS_MENU_SELECTED_OSC_FLAGS, "OSC", 0x006, PRINT_VAR_123, EXEC_SELPAR, R2PP2R_VAR_OSC CS_MENU_ENTRY SID_Ix_Vx_WAVEFORM, "Wav", 0x008, PRINT_Vx_WAV, EXEC_SELPAR, R2PP2R_Vx_WAV CS_MENU_ENTRY SID_Ix_Vx_WAVEFORM, "S/R", 0x003, PRINT_Vx_S_R, EXEC_TOGPAR, R2PP2R_Vx_S_R CS_MENU_ENTRY SID_Ix_Vx_DELAY, "Del", 0x0ff, PRINT_Vx_DEC, EXEC_SELPAR, R2PP2R_Vx CS_MENU_ENTRY SID_Ix_Vx_AD, "Atk", 0x00f, PRINT_Vx_DEC4U, EXEC_SELPAR, R2PP2R_Vx_4U CS_MENU_ENTRY SID_Ix_Vx_AD, "Dec", 0x00f, PRINT_Vx_DEC4L, EXEC_SELPAR, R2PP2R_Vx_4L CS_MENU_ENTRY SID_Ix_Vx_SR, "Sus", 0x00f, PRINT_Vx_DEC4U, EXEC_SELPAR, R2PP2R_Vx_4U CS_MENU_ENTRY SID_Ix_Vx_SR, "Rel", 0x00f, PRINT_Vx_DEC4L, EXEC_SELPAR, R2PP2R_Vx_4L CS_MENU_ENTRY SID_Ix_Vx_PITCHRANGE, "PRn", 0x07f, PRINT_Vx_DEC, EXEC_SELPAR, R2PP2R_Vx CS_MENU_ENTRY SID_Ix_Vx_TRANSPOSE, "Trn", 0x07f, PRINT_Vx_PMDEC7, EXEC_SELPAR, R2PP2R_Vx CS_MENU_ENTRY SID_Ix_Vx_FINETUNE, "Fin", 0x0ff, PRINT_Vx_PMDEC8, EXEC_SELPAR, R2PP2R_Vx CS_MENU_ENTRY SID_Ix_L_OSC_DETUNE, "Det", 0x0ff, PRINT_DEC8, EXEC_SELPAR, R2PP2R_PAR8 CS_MENU_ENTRY SID_Ix_Vx_PORTAMENTO, "Por", 0x0ff, PRINT_Vx_DEC, EXEC_SELPAR, R2PP2R_Vx CS_MENU_ENTRY SID_Ix_L_OSC_PHASE, "Phs", 0x0ff, PRINT_DEC8, EXEC_SELPAR, R2PP2R_PAR8 CS_MENU_ENTRY SID_Ix_Vx_PULSEWIDTH_L, "PW ", 0xfff, PRINT_Vx_HEX12, EXEC_SELPAR, R2PP2R_Vx_12 CS_MENU_ENTRY SID_Ix_Vx_FLAGS1, "PMd", 0x002, PRINT_Vx_PMD, EXEC_TOGPAR, R2PP2R_Vx_PMD CS_MENU_ENTRY SID_Ix_Vx_FLAGS1, "GSA", 0x001, PRINT_Vx_GSA, EXEC_TOGPAR, R2PP2R_Vx_GSA #if ENABLE_SWINSID CS_MENU_ENTRY SID_Ix_Vx_SWINSID_MODE, "SwM", 0x0ff, PRINT_Vx_HEX8, EXEC_SELPAR, R2PP2R_Vx CS_MENU_ENTRY SID_Ix_Vx_SWINSID_PHASE, "SwP", 0x0ff, PRINT_Vx_HEX8, EXEC_SELPAR, R2PP2R_Vx #endif CS_MENU_TABLE_L_OSC_End
* Now recompile the setup_*.asm * Send it to your mbSID via MIOSStudio * You're all done!