Portable DOSBox machine

There are many ways to achieve what you're asking but let's look at the quickest (& cheapest) to set up:

  • A laptop/notebook
  • An X-input controller (Xbox 360/One, or ones based on the same standard)
  • Multiple copies of DOSBox
  • Use Shortcuts to DOSBox to control which game to launch.

Initial Setup

Start by installing DOSBox, and put your games in an accessible location (let's say C:\Games). Now we need to configure the shortcuts to DOSBox. The DOSBoxShortcuts page on the Wiki explains this in detail:

  • Create a new shortcut to the DOSBox.exe file, or copy the one created when you installed DOSBox.
  • Edit the properties of the shortcut.
  • At the end of the "Target" line, add, in quotes, the full path of the main game executable that you wish to launch.
  • For example, if "The Settlers 2" was installed into the folder C:\Games\Settlers 2\, and DosBox is installed at it's default location, the target box would contain:
    "C:\Program Files\DOSBox-0.72\dosbox.exe" -conf "C:\Program Files\DOSBox-0.72\dosbox.conf" "C:\Games\Settlers 2\S2.exe"

Controller Configuration

If you want multiple games to have different keybinds & configurations, it's probably easiest to set up multiple copies of DOSBox, then use the inbuilt Mapper tool to map certain keys to the controller's buttons & sticks. Doing it this way, each copy of DOSBox will be precisely configured for the particular game that you wish to play.

Hardware

A laptop, notebook or tablet running Windows or a Linux distro, and a controller (wired or wireless) is probably the cheapest & simplest option. Personally I use a laptop with a wired Xbox 360 controller (cheap and reliable, lots of support for the controller).

A 'custom' hardware solution built to look like a handheld gaming portable Nintendo Switch or other portable console is a little out of scope for this site, but certainly not out of the realm of possibility if you have the tools & know-how. Modifying an existing semi-modern device like a Nintendo 3DS with a bootloader would also be an option, but I can't speak to how easy this would be as I've never done it personally.