Collecting my random comments and thoughts from elsewhere into here, and some are certainly repeats I'm just adding my vote to, and I understand the real way to get any of this is to code it myself. I hope not too many already exist in DosBox and I'm just showing my ignorance. 😀 All that said, I'd love to see these features in future dosbox versions:
* A way to pre-load keystrokes from inside dosbox.conf in a way that can answer early dos game questions like 'K'eyboard or 'J'oystick, 'C'ga 'E'ga 'V'ga, '1' No Sound '2' PC Speaker '3' Sound Blaster so I don't have to answer them every time I run the game. Example game: Pango asks Color Monitor (Y/N)? and Joystick (Y/N)? before getting to the game menu.
* paste OS clipboard text as keystrokes
* redirect/capture all keystrokes, joystck, and mouse inputs to a data file. And maybe the ability to replay that file back into dosbox, though that's a much more advanced feature.
* "screenshot" text mode screen as .txt or html/rtf color text or some such. (I thought DOSBox used to have this, but I couldn't find it. My bad memory? "Lost" feature? Poor google skills on my part, showing my ignorance?)
* The 'more' pagination utility for dos game instruction files - add my vote. Someone said piping redirects work already? I'm surprised we don't have 'more' then, I thought that was the only hold up. 😀
* A nice and free Edit utility on the Z: drive.
* "Opcode cycle counting Core" to get closer to "real XT" and other "slow" machines speed - the next step closer to cycle perfect 5150, 5160 and similar stable emulation targets for the pre-386 games. I hope it is as easy as not just counting 1 cycle per opcode, and instead having an opcode cycle-count lookup tables for different chips; but I know the problem is not "easy". And after that, I assume questions of cycles stolen for memory refresh and cannonical CGA/Mono/EGA speeds will come up.
* SuperZaxxon. I didn't know about the game until I learned DOSBox has trouble with it; I gave it a try and saw the issues, and now I have an unreasonable burning desire to play it unsatisfied by breaking out the actual arcade game. (Unless I'm just missing some config steps to get it running correctly, and am just ignorant? Anyway, fun with video emulation indeed!)
* "EasyBBS Mode" - not sure if this is a dosbox feature or just needs knowledge on my part and an easy install package, but it'd be fun to easily access a BBS running in one dosbox from another dosbox even if only on the same computer. I know some have gotten it to work, but the "follow these steps" were daunting last I looked. But to have a dosbox setup to relive FIDO and door games easily... {happy sigh}.
* Even more improved joystick -> keyboard mapping. Recently I tried a cheap but "nice" Sabrent gamepad with Captain Comic, trying to map the D-Pad "Hat Control" directions and 1234 buttons to the keyboard directions & fire/action keys, but it didn't really work more than marginally. It could be my ignorance and a messed up config, or bad hardware that looks OK in windows joystick config, but the mapping seemed to work only intermittently and I suspect software/mapping improvements could be made.
---
Nice-to-have extensions for writing new games or in-dosbox menus; these are not actual classic games, I know.
* Choice command-like app that can display graphic menus included on z: drive. (Yes, yes, I'll write one then we talk. Fair enough:)) I'm thinking like "Litude's Ansi Menu bat file launchers for early Apogee Trilogies of games" uses ANSI chars and Choice; something that loads a CGA/EGA/VGA/etc. image and then acts like Choice.com to select batch file options. Example: press 1-5 to choose which Commander Keen episode to launch, but a graphical menu image showing title graphics from each game.
* dirtree utility on the z: drive. I remember being happily addicted to that utility back in the day.
* built-in norton commander like file manager, with bonus ability to browse 'host' as well as dosbox and mount/refresh/unmount/swap images as appropriate.
* built-in video and sound "test/config" app to compare display and sound modes, pick one, and save the .conf file - more about comparison and tweaking than configuring. "Just use a front-end", I know. 😀
* Mount a zip file (.7z, whatever) as a drive, readonly or bonus points if actually writable. At least "fake" writable for the session.
* Floppy disk image that is read-only and unchanged even if "save files" are written, and "delta" disk image with the new data. Even better if could be done with directories - source directory is read-only, all changes like save and config files written to redirected alternate directory.
* Create image files from within dosbox, i.e. "mount b floppy.img -new 360k", same with hard drives and even 'writable' ISOs.
* A way to include a zip file or directory's files on the Z: drive from dosbox.conf. More about organization, I suppose, since modifying 'path' and mounting an odd drive like q: is functionally the same AFAIK to put utilities in an accessible place.
* a canonical second "dosbox.conf" file extension/type like .dos or .dbgame for click-to-launch in supported OSs - Windows and Mac for certain, I don't know about Linux. I can invent an extension on my computer, but community support is everything on this feature. Example: "Pango.dos" is a dosbox.conf file that launches Pango.exe in dosbox with correct settings and autoexec, and in the same directory "Infiltrator.dos" launches Infiltrator with its correct config settings and autoexec.
---
Programmer extensions probably in "extension" bios or vai ports or some such for using dosbox for new games:
* Joystick axes and buttons beyond what dos allowed (ie. all the items on two PS3/4/Xbox 360/1 gamepads for head to head play, or on a full flightstick HOTAS).
* Random number function
* Png/Jpg, etc. image decoding to memory (ie. INT 0xDB ah=10 ES:DI -> "sprite1.png" DX:BX -> target memory location, dx:bx -> 0 means return decompressed memory size needed)
* Ogg/Mp3/Wav, etc. sound decoding to memory, or playback "bios" interface (same as above for sound)
* Text file format reader: ini/.config reader, XML reader?, for easy modern config file support in new dos games.
* Timer/timespan/stopwatch bios function more like modern GetTickCount or millisecond resolution clock for easy game timing / frame duration measuring
* quickload a large datafile into XMS "upper" memory in real modes to avoid the pain of doing the the real dos way
* quick / easy video double/tripple buffering via "cheating" emulation to save memory. Example: in VGA hirez 640x??? mode, but actual image being displayed is in emulator memory, and "video memory" in dosbox can be altered without changing display. Then trigger a function, and the newly composed frame is queued up to become the display frame at the next flicker-free moment while the emulated dos code is drawing the new frame in "video memory" at 0xA0000. Also with features like "background image automatically copied into frame" so game only hast to draw the sprites on top of the easy no-memory-required background image, or even that background image is a viewport/rectangle on a much larger "scrollable" background. (I guess this is basically emulating a 2D graphics accelerator card that maybe never existed? Put some sprite drawing and collision code, and you've got an overpowered Atari. Sounds good to me. 😀 )
* Testsuite/automated test report mode? Run through a suite of regression tests (CPU, Video, Audio, Joystick etc.) and spit out the results file. Particularly good for pre-release testing and 3rd party patch reality checking.
---
The dosbox debugger is a grand little thing, but intentionally limited as I understand, so I have a grand and unlikely vision:
* "Debugger Services" API (like, across network sockets for "remote debugging" from same or different machine), with features similar to a real cpu and richer: code breakpoints, memory access breakpoints, single step, memory & registry access, opcode decoding, "pause"/break right now; basically the building blocks for 3rd party debugger and memory cheat/trainer apps, and possibly a way to achieve saving & loading state, though that may not be the right design for that.
(That took a while to write, but it was a fun walk through dreamland and avoiding of other projects. 😁)