Instructions
 
In the retroarch folder (place to put your ROMS) go to the cores folder and delete everything (to make just enouph space to fit the OS(es)
Put the dosbox_libretro.so file into the cores folder
Create a .img file with 20-25mb space (i used 25)
Look online how to get ms-dos running in dosbox and install it using the .img file you made on a pc/laptop (most guides explain how to make the img file)
just a note i cannot provide windows 3.1 or ms-dos install disks as they are Microsofts
after installing MS-DOS on a pc go to the roms folder inside retroarch and put your .img file you installed MS-DOS onto in there. Btw if you wanted windows 3.1, install that while the .img is on your pc/laptop and add it into autoexec.bat
at the bottom of this page you will find a boot file, preset to boot "c.img" so name your .img file to "c.img" without speech marks
before flashing check the size of retroarch by going into the "games" folder (in your hakchi2 folder), right click and hit properties and make sure its under 30mb (Mine was 29mb but it worked fine)
if your file size is ok you can flash retroarch to your NES using hakchi2
On the nes go into retroarch, load core, cores, dosbox_libretro.so
then click load content, start directory, nesdos.bat
If all done correctly (probably not this is a crappy rushed guide) you should boot into MS-DOS (or win3.1 if you installed it
Enjoy this POC 

 
Extra: Wii Controller users in 3.1 you can control the arrow keys (ive been told) and so i want you to play minesweeper if you can 

 (requested by @nesito but i couldnt do it cos i dont have a wii controller)