1

(1 replies, posted in Guests & account requests)

thanks

should anyone know how to actually use the quickbms tool, here's a .bms script in which you can use with that exact tool

open FDDE "gdi"

get GDI_BNAME basename

get tracks line
xmath last_track "tracks - 1"
math track_last_size = 0

log MEMORY_FILE10 0 0
for i = 0 < tracks
    get track_info line
    string track_elements S track_info track_number track_offset track_filetype track_blocknumber track_filename track_unknown
    
    string cue_struct01 p "FILE"
    string cue_struct02 p "BINARY"
    string cue_struct03 p "TRACK"
    string cue_struct04 p "%02d" track_number
    string cue_struct05 p "MODE1/2352"
    string cue_struct06 p "AUDIO"
    string cue_struct07 p "INDEX"
    
    putct cue_struct01 string -1 MEMORY_FILE10
    put 0x20 byte MEMORY_FILE10
    put 0x22 byte MEMORY_FILE10
    putct track_filename string -1 MEMORY_FILE10
    put 0x22 byte MEMORY_FILE10
    put 0x20 byte MEMORY_FILE10
    putct cue_struct02 string -1 MEMORY_FILE10
    put 0x0d byte MEMORY_FILE10
    put 0x0a byte MEMORY_FILE10
    put 0x20 byte MEMORY_FILE10
    put 0x20 byte MEMORY_FILE10
    putct cue_struct03 string -1 MEMORY_FILE10
    put 0x20 byte MEMORY_FILE10
    putct cue_struct04 string -1 MEMORY_FILE10
    put 0x20 byte MEMORY_FILE10
    if track_filetype == 0
        putct cue_struct06 string -1 MEMORY_FILE10
    elif track_filetype == 4
        putct cue_struct05 string -1 MEMORY_FILE10
    endif
    put 0x0d byte MEMORY_FILE10
    put 0x0a byte MEMORY_FILE10
    put 0x20 byte MEMORY_FILE10
    put 0x20 byte MEMORY_FILE10
    put 0x20 byte MEMORY_FILE10
    put 0x20 byte MEMORY_FILE10
    if track_filetype == 0
        putct cue_struct07 string -1 MEMORY_FILE10
        put 0x20 byte MEMORY_FILE10
        putct "00" string -1 MEMORY_FILE10
        put 0x20 byte MEMORY_FILE10
        putct "00:00:00" string -1 MEMORY_FILE10
        put 0x0d byte MEMORY_FILE10
        put 0x0a byte MEMORY_FILE10
        put 0x20 byte MEMORY_FILE10
        put 0x20 byte MEMORY_FILE10
        put 0x20 byte MEMORY_FILE10
        put 0x20 byte MEMORY_FILE10
        putct cue_struct07 string -1 MEMORY_FILE10
        put 0x20 byte MEMORY_FILE10
        putct "01" string -1 MEMORY_FILE10
        put 0x20 byte MEMORY_FILE10
        putct "00:02:00" string -1 MEMORY_FILE10
    elif track_filetype == 4
        /*
        if last_track == i
            putct cue_struct07 string -1 MEMORY_FILE10
            put 0x20 byte MEMORY_FILE10
            putct "01" string -1 MEMORY_FILE10
            put 0x20 byte MEMORY_FILE10
            putct "00:01:00" string -1 MEMORY_FILE10
        else
            putct cue_struct07 string -1 MEMORY_FILE10
            put 0x20 byte MEMORY_FILE10
            putct "01" string -1 MEMORY_FILE10
            put 0x20 byte MEMORY_FILE10
            putct "00:00:00" string -1 MEMORY_FILE10
        endif
        */
        putct cue_struct07 string -1 MEMORY_FILE10
        put 0x20 byte MEMORY_FILE10
        putct "01" string -1 MEMORY_FILE10
        put 0x20 byte MEMORY_FILE10
        putct "00:00:00" string -1 MEMORY_FILE10
        #putct "00:01:00" string -1 MEMORY_FILE10 # <- you can try this one too
    endif
    put 0x0d byte MEMORY_FILE10
    put 0x0a byte MEMORY_FILE10
next i

get CUE_FSIZE asize MEMORY_FILE10
string CUE_FNAME p "%s.cue" GDI_BNAME
log CUE_FNAME 0 CUE_FSIZE MEMORY_FILE10

simply put, it converts a single .gdi file into the simplified .cue format in case no one is happy with the obtuse .gdi format at all