Thanks a lot for everything you've written here. I've been messing around with this game a lot in the past week.
Since Arena dropped on Steam, I've been trying to mod it. I'm having a few issues (basically attempting to override a lot of the textures/music):
1. Compressed IMG files. If I don't compress the IMG, the game skips to the BSA directory for the original image. I'm still working on figuring this out.
2. I can't find any program online that can read DFA. I can't split the animation layers in GIMP but I can in ezgif. The DFA files in Arena are not the same format as the DFA files in that one poker game that shows up when you try to websearch them.
3. Midis completely lose me with this game. I can put some Daggerfall songs into this game, but a lot of them will have missing instrument audio (due to not using an instrument soundfont that's supported by Arena). I have my own midis, and I've tried swapping instruments to the soundfont Arena uses (there's a list of the instruments in the ULTRAMID.INI.) Unfortunately, it still doesn't work. I wonder if it has to do with the header information not being the same standard as the rest of the game's XMI/XFM files. Midis give me such a headache, I don't want to work with them again... If only I knew what I'm doing wrong in the first place, lol.
Some things of note about Arena's FM(OPL2)s/XMIDIs (XFM/XMI): The game is MT32MPU compatible (I know Wikipedia says it isn't because the soundfont isn't standard, but MT-32 uses XMI and that's what matters. Even though the game seems to only run OPL2 (XFM) files but also have a copy of XMI files as well? Idk. Maybe that's for the other version of the game.)
Arena seems to only use Chns 1-11 for instruments (I could be wrong. I only tested like 3 XMI files.) You can play Arena's XMI files via AIL2 with the command "XPLAY [xmi file] MT32MPU.ADV", or if you don't feel like using MS-DOS, you can play XMI files in MIDIPLEX (which can also export MID files as XMI, and vice versa) or in MidiEditor (but I should note, use WinArena to rip Arena's base game music into MIDIs, as exporting them to MID with MIDIPLEX seems to make them unplayable in MidiEditor. Idk.) MIDIFORM also can convert MID > XMI but it runs on MS-DOS. I also used MidiEditor which won't read MID files that won't work in Arena (even if you can still play them in MidiPlex or literally any other midi player. How frustrating...) Regardless, it's a solid way to test if you've accidentally made it unplayable for Arena. It also doesn't seem to be able to read MIDs that's been converted from XMI.
--- some time passed as I was writing this post ---
I finally figured out how to kinda get some custom MIDIs to work. In MidiEditor, keep Channel 0 blank. That seems to be used for general events (like time signatures, tempo, stuff). The big issue is that nothing on Channel 0 will play. I haven't edited anything with more than 2 channels, but I'm assuming the max is 1-11? Maybe only use Channels 1-10 to be safe. Then, in MIDIPLEX, you can add an event for playback looping.
I'm assuming the color glitch I keep encountering is due to having an instrument on the wrong channels, but I'm not going to bother testing this. This literally took me two full days of brain-numbing research to figure out.
Hopefully, this helps, idk, someone.
Some things I've noticed:
1. I think that offset 9 in the hex data of CIF files represents transparency (I think?). If it's 00, the CIF file has a black background but if it's flagged 08, it's transparent. This doesn't apply to IMG files which use black for transparency.
2. The first layer of colors in the color palette (PAL.COL) are used for special effects (I think?). It's a good idea to check whether or not an IMG that's been converted from PNG contains those colors because they show up wrong in-game. (For IMGs) black becomes blue, blue becomes green, etc. The light green color on the top row is for reflections (I think?). The dark blue and dark cyan color in the first row seems to be linked to the color of the sky as the custom UI I made will integrate the color of the sky instead of dark blue and dark cyan when I walk outside. It's actually a pretty cool effect so I kept it (although originally my Redguard's eyes were a different color and would change with the color of the sky. Kinda reminds me of the Time Hair Dye from Terraria, lol.) Some of the colors will strangely glow rather than fade to black like normal (you can see that the shading doesn't seem to work in my image so walls will pop into view rather than fade to black. Don't know what's the deal with that. It might have been originally been used for the glowing effect windows will have at night.
3. Hypothetically, you could change some stuff in the INF files so that places won't be taking from the same SET, e.g. I only wanted the palaces to have the King Dedede aesthetic but other dungeons will pull from the SET as well. I haven't messed with this yet.
4. Here's another thing that should probably be mentioned. You had an issue with exporting faces that required you copying and pasting the same face over and over. That is entirely on purpose, because the game stores the different facial presets in one CIF, so it needed 10 different layers for each race because there's 10 different facial presets to choose from. (I think. Idk.)
I have yet to figure out how to convert anything into DFA, CFA, or compressed IMG. I have a suspicion that they don't actually need to be compressed in the modern era but I don't know.
Color indexing was done by pulling color palettes from images and saving them in GIMP before indexing the new file to the palette(s) used in Arena. PNG to IMG done in BSATools.
If I made a mistake, whatever.