How to extract .MIDI files from .SEQ (of Sega Saturn Audio)?

fedex1

New Member
I would like to convert my .seq (extracted with seqext.py) files to .midi

I don’t need the tone/soundfont, I just need the midi file that is inside the .SEQ file.

The game is:
Nobunaga no Yabou - Tenshouki with Power Up Kit

So I tried using SEQ2MID with the help of DosBox, and I can get some .midi but there is a problem. The midi I get aren't full songs, some songs just interrupt after 30-40 seconds.
What to do?

I noticed that songs that are not converted fully, are converted with this error line (from the decode.c):
printf("unknown code: address %x, value %x\n", ftell(fp) - 1, ctl_byte);

I've attached all the .seq files, so you can try and see what I mean

It seem that it can't recognize a single note in the .seq and so it stops the conversion there.
 

Attachments

  • Nobunaga .seq.zip
    58.8 KB · Views: 5

Spitfire

New Member
I'm not sure, but you could try using different directories. I could be a disk issue, such as converting a file from an external HD to an internal SSD that the program doesn't like. Try putting everything on the desktop, and try the usual things like compatibility mode and using admin privileges. Otherwise I'm not knowledgeable on the subject at all, sorry.
 

Knight0fDragon

New Member
SEQ2MID is not 100% accurate. I am currently writing my own version for Shining Force 3, and I tested your file. I am getting weird errors with the file you gave us. This means either I am not doing something correct, or this SEQ is some how altered (some games do this.) I am going to play around with this some more and see if I can find anything out for you.
 

Knight0fDragon

New Member
For file bb_000, It looks like bytes at 0x0802 -> 0x092C are invalid/something else. The command at 0x0802 is 0xC1, meaning a control change should happen for channel 1. The control that it requests (0xCF) is invalid because commands go from 0x00->0x7F. It becomes invalid again at 0x1134 until 0x11A0, then 0x11A1 ends the midi.

I attached what outputted.
 

Attachments

  • checkthis.zip
    2.9 KB · Views: 2

fedex1

New Member
I'm not sure, but you could try using different directories. I could be a disk issue, such as converting a file from an external HD to an internal SSD that the program doesn't like. Try putting everything on the desktop, and try the usual things like compatibility mode and using admin privileges. Otherwise I'm not knowledgeable on the subject at all, sorry.

I don't think the issue is that, since other game sequence works, I think just some games have these type of problems

For file bb_000, It looks like bytes at 0x0802 -> 0x092C are invalid/something else. The command at 0x0802 is 0xC1, meaning a control change should happen for channel 1. The control that it requests (0xCF) is invalid because commands go from 0x00->0x7F. It becomes invalid again at 0x1134 until 0x11A0, then 0x11A1 ends the midi.

I attached what outputted.

How the heck did you do that? I tried extracting bb_000 myself and I only get a few seconds of midi tracks. Your file seem to be a complete tracks!

How did you do that? I would like to have all tracks like this. Can you do it for me? or explain the process to fix the errors?

Thanks

EDIT: not complete track, but longer than my output file
 
Last edited:

Knight0fDragon

New Member
I already explained how I do it.

The non midi hex looks like this:

C1 CF 00 00 00 00 00 00 00 00 43 04 63 69 A7 36 6B 3D 2C 69 18 4E B0 EE A3 11 DF 9B A6 28 F8 4B 42 2E 9F DE 73 E9 F9 C5 3D 1B 74 7C 92 9D FB 8F EB B5 A1 DE 34 8F 03 C8 8B 77 74 78 83 10 1E 15 F9 CE 34 7E D8 5D 48 D5 99 06 A7 24 A0 56 E9 C4 58 71 38 EF E7 32 47 02 87 1E CF 58 A5 84 44 19 36 DF FA E6 59 D7 4D F0 59 ED D8 58 D5 82 30 AD 37 3E D0 DE 1A 84 98 3F 49 1A 5D B6 2F 27 A4 A3 B1 71 30 F2 20 12 30 F7 F4 FE 19 4F 70 F9 CE 3F 10 21 1B C9 0B 53 E8 71 E0 F1 A1 53 14 78 27 A5 44 2B 23 39 3F EE DD DA F0 14 02 65 F2 2E 10 5F FD 7A 8E 67 E6 EA B3 4B 5D 97 6C 2F A5 0A F7 16 BE 2F 06 2B 50 2F B7 18 D8 0A 28 BF 51 F7 A2 B1 DC 54 CF 9B CE B5 CE D9 05 E1 6B 5F A0 03 9D C0 23 0A A6 69 E9 92 53 C1 F3 C1 C5 21 F5 11 AB 57 EE 44 83 32 C9 BA 5D C9 64 61 43 13 91 93 0E 4B 92 2E CE DE 1F 54 E0 C7 9A C8 D1 7E 49 17 8B 75 5F 3A 84 56 A9 B1 87 CB EC C5 15 8C FC 20 00 FF FF FF FF FF FF FF FF FF FF 00 01


and

00 00 00 00 00 00 00 00 B1 9A 47 BF 70 7F 38 52 79 1F 6F 77 A7 1F C1 23 9D B6 0B 01 02 67 3A E3 85 5F 8F 57 AF 0F E5 85 C9 A8 A6 6B 41 53 21 CD 1B FA F1 4A 8F 32 45 53 FC 59 BE 1D 1E DA AE 2E 3B B9 80 30 EE EB D4 5D 31 6B A0 00 BA 8A D1 79 F9 88 F6 6F A5 16 A1 A3 12 7E A2 B2 4D AD A2 15 8D 8D 6C EC AF CB 72 37 58 9A 50 B4 FC


These two areas do not fall into the midi format, so if you are saying the track is not complete, then something is going on in these two sections that will complete it, but is unique to your game. You are probably going to need to trace it in an emulator.


What file housed these binaries? I wonder if your script that extracts got something wrong.
 

fedex1

New Member
Ok so basically I've downloaded the ROM: *removed*

then you extract the .7z and you find 2 bin files. The first one does not contain seq files, only the second bin.

So I have used a python script to extract from .bin to .seq:
So what I did is: I copied the python file in the folder with the .bin

I renamed the second .bin into bb.bin

I opened cmd, gone to the folder of the script with command, I typed seqext.py, then "seqext.py bb.bin output", it will create a folder "output" with all the .seq files.

Ok then I used SEQ2MID: mistydemeo/seq2mid with the help of DosBox as a CMD, since it works only on 32bit mode, executed the code, with extraction of the .midi

So, as an example, this is the same track "bb_000.midi" you shared with me, but extracted with SEQ2MID:
You can see it is very short. I really don't know how to look into hex, I can only use these 2 software.

As a reference go here: Nobunaga no Yabou - Tenshouki with Power Up Kit - Sega Saturn (SSF) Music - Zophar's Domain
Click on "Azuti" track that is bb_000. (you can download .ssf too, but it is useless for midi extraction)

But my opinion is that we can't get the full midi tracks, I have tried with another midi extractor and it is the same...
 
Last edited:

Knight0fDragon

New Member
Do not share ISOs, I just needed to know what file was used so I can verify the extraction. Anyway, that script is not accurate. Just mount the ISO, go into the BACK directory, and find the files with no extension. They are your SEQ files. This one extracted with no problem for me (with my app, did not try SEQ2MID)
 

Attachments

  • checkthis.zip
    6.9 KB · Views: 2

fedex1

New Member
Do not share ISOs, I just needed to know what file was used so I can verify the extraction. Anyway, that script is not accurate. Just mount the ISO, go into the BACK directory, and find the files with no extension. They are your SEQ files. This one extracted with no problem for me (with my app, did not try SEQ2MID)
I see that the new checkthis is a full track.

I tried what you said, however these things are totally new to me. I don't have any ISO files, I just have that folder with the .bin (files), I made a .ISO file with that folder but then I don't know what to do. What do you mean by "going to BACK directory"?

Also can you share the app you use?
I only used SEQ2MID that extract only a few seconds of track (in MIDI), and Sgconv from: Wayback Machine that gives me only error and doesn't extract at all

If you don't want to give me your app or explain the process (I am a noob in this area), can you convert all the sequence and upload like the checkthis.zip file? I would be really grateful.
I'm insterested in this saturn game only
 

Knight0fDragon

New Member
Cue/bin,ISO, all the same. Do not share images of CDs, ROMs of games etc. The cue/bin files are just regular CD images, just mount it with Daemon tools or some other software designed to load them. Heck, burn it to a CDR if you have to. It will them be a regular folder structure, one of which is named BACK. Go into the BACK folder, and you will see files with no extension. Some if not all of those files are your SEQ files.
 

fedex1

New Member
Cue/bin,ISO, all the same. Do not share images of CDs, ROMs of games etc. The cue/bin files are just regular CD images, just mount it with Daemon tools or some other software designed to load them. Heck, burn it to a CDR if you have to. It will them be a regular folder structure, one of which is named BACK. Go into the BACK folder, and you will see files with no extension. Some if not all of those files are your SEQ files.
FINALLY!!! Thank you very much, now I have full tracks!!
 

Knight0fDragon

New Member
No problem. Those extra bytes are probably FAT information or something, which is why the audio was thrown off. Thankfully when you mentioned Azuti, I was able to immediately find what we were looking for. Hope it all works out well for you.
 
Top