Sounds good to me. The only thing that springs to mind is that legacy builds of DF have some differences in init.txt, so we might need to be able to store both of those side-by-side; diff is in the spoiler below. (data/init/interface.txt also has a completely different format, but mods shouldn't mess with keybinds anyway, so that one probably isn't a problem.)
PyLNP should already be able to detect all the information we need to obtain the URL for a given version (with a small bit of coding to transform the version number). SDL/Windows is available from 0.31.13; legacy builds have a suffix starting with 0.31.04 and no suffix before then. It might be a good idea to try the small/no music version first, in case it exists (optionally with an explicit exception for versions known to not have a small version, meaning 0.31.01, 0.31.04, and anything 0.21.102.19a or earlier), since we should not need the extra files from the "full" version.
11c11
< [SOUND:ON]
---
> [SOUND:YES]
19c19
< [INTRO:ON]
---
> [INTRO:YES]
23c23
< [WINDOWED:PROMPT]
---
> [WINDOWED:YES]
25c25,26
< This is the size and font for windowed mode. Changing to 800x600 and the 800x600 font might make you happier.
---
> This is the size and font for windowed mode. Changing to the 800x600 font might make you happier.
> If set below 256x256 it specifies the grid size instead, with a minimum of 80x25.
27,29c28,30
< [WINDOWEDX:640]
< [WINDOWEDY:300]
< [FONT:curses_640x300.bmp]
---
> [WINDOWEDX:80]
> [WINDOWEDY:25]
> [FONT:curses_640x300.png]
31c32,33
< Full screen info.
---
> You may disable window resizing if you wish.
> [RESIZABLE:YES]
33,35c35
< [FULLSCREENX:800]
< [FULLSCREENY:600]
< [FULLFONT:curses_800x600.bmp]
---
> Full screen info. The 0s below mean that the game will choose a resolution for you, but you can set it yourself as well.
36a37,41
> [FULLSCREENX:0]
> [FULLSCREENY:0]
> [FULLFONT:curses_800x600.png]
>
> If this is set to NO, tiles will be stretched to fit the screen if there is a resolution mismatch.
39c44
< [BLACK_SPACE:NO]
---
> [BLACK_SPACE:YES]
43,44d47
< The legacy version only supports 24 bit BMP files, so any PNGs will have to be converted first.
<
46,51c49,54
< [GRAPHICS_WINDOWEDX:1280]
< [GRAPHICS_WINDOWEDY:400]
< [GRAPHICS_FONT:curses_square_16x16.bmp]
< [GRAPHICS_FULLSCREENX:1280]
< [GRAPHICS_FULLSCREENY:800]
< [GRAPHICS_FULLFONT:curses_square_16x16.bmp]
---
> [GRAPHICS_WINDOWEDX:0]
> [GRAPHICS_WINDOWEDY:0]
> [GRAPHICS_FONT:curses_square_16x16.png]
> [GRAPHICS_FULLSCREENX:0]
> [GRAPHICS_FULLSCREENY:0]
> [GRAPHICS_FULLFONT:curses_square_16x16.png]
54c57,63
< This is the dimensions in tiles of the display grid. Minimum x is 80. Minimum y is 25. Maximums are 200. Make sure the window size or full screen resolution matches the grid/tile size if you don't want the display to be squashed or stretched. The default windowed font has tiles that are 8x12 pixels, for instance, so for a 80x25 grid, you use a 640x300 window, and for a 125x50 grid, you'd use a 1000x600 window. FULLGRID is used in full screen mode, whether graphics is on or not.
---
> These settings can have a significant impact on frame rate, especially for people that have slow frame rates on the title screen. Available modes are 2D, 2DSW, 2DASYNC, STANDARD, PARTIAL:<number>, ACCUM_BUFFER, FRAME_BUFFER and VBO. The number after PARTIAL refers to how many frames it will redo a printed tile before skipping it, so you might try increasing it a bit if you have flickering when PARTIAL is set. Please note that any of these combinations might cause frame rates to drop significantly or cause unpleasant side effects like flickering.
>
> By and large, 2D should be the most reliable, while STANDARD has a good combination of speed and reliability. However, all 2D modes are normally far slower than even STANDARD, which may be the slowest OpenGL mode.
>
> On a multi-core machine none of this is very likely to matter; stick to 2D.
>
> 2DASYNC may be slightly more responsive than 2D on a multi-core machine, but this has recently become doubtful due to improvements to the other modes.
56,57c65
< [GRID:80:25]
< [FULLGRID:80:25]
---
> Linux/OS X users may also use PRINT_MODE:TEXT for primitive ncurses output.
59c67,73
< Change this to YES to only refresh portions of the screen that need to be refreshed. This can have a significant impact on frame rate, especially for people that have slow frame rates on the title screen. The number refers to how many frames it will redo a printed tile before skipping it, so you might try increasing it a bit. PARTIAL_PRINT only works on certain systems, so you might have to disable it again if you notice your display isn't working properly. Fixes are being investigated.
---
> [PRINT_MODE:2D]
> Mode examples:
> PRINT_MODE:2D
> PRINT_MODE:TEXT
> PRINT_MODE:FRAME_BUFFER
> PRINT_MODE:PARTIAL:0
> [SINGLE_BUFFER:NO]
61c75,77
< [PARTIAL_PRINT:NO:2]
---
> Switches truetype on whenever the vertical tile size is this many pixels or larger. You may also use YES/NO to force it on/off. Turning it off may provide a minor speed boost (using font small enough that it doesn't activate won't).
>
> [TRUETYPE:24]
72a89,90
> You may set FPS_CAP to 0 to make it uncapped.
>
79c97,101
< This sets the applications vertical synchronization behavior. Changing this to ON can impact your FPS if your G_FPS is high. The other options are ON and DEFAULT. DEFAULT uses whatever settings you have your system at in general.
---
> On cards that support the OpenGL ARB_sync extension, turning this on can improve framerates in GPU overload conditions. It defaults to NO, as many cards that claim to support this will crash if asked to do so.
>
> [ARB_SYNC:NO]
>
> This sets the applications vertical synchronization behavior. Changing this to YES can impact your FPS if your G_FPS is high. ARB_SYNC is a better option, if your system supports it.
81c103
< [VSYNC:OFF]
---
> [VSYNC:NO]
82a105
> Change this to NEAREST if you want the texture values to use the nearest pixel without averaging.
85c108
< [TEXTURE_PARAM:NEAREST]
---
> [TEXTURE_PARAM:LINEAR]
90a114,118
> Use this to set how fast the game zooms. The default corresponds to
> increasing grid size by 10 units each time you zoom.
>
> [ZOOM_SPEED:10]
>
99c127,140
< This controls the number of milliseconds that must pass before a held key sends a repeat press to the game. You might need to adjust this.
---
> This controls the number of milliseconds that must pass before a held key sends an initial repeat press to the game. You might need to adjust this.
>
> [KEY_HOLD_MS:250]
>
> This controls the number of milliseconds that must pass before a held key sends a repeat press to the game after the repeat process has begun.
>
> [KEY_REPEAT_MS:150]
>
> If you set KEY_REPEAT_ACCEL_LIMIT above one, then after KEY_REPEAT_ACCEL_START repetitions the repetition delay will smoothly decrease until repetition is this number of times faster than at the start.
>
> [KEY_REPEAT_ACCEL_LIMIT:8]
> [KEY_REPEAT_ACCEL_START:10]
>
> This controls the number of milliseconds between macro instructions.
101c142
< [KEY_HOLD_MS:150]
---
> [MACRO_MS:15]