Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11478
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
This was the initial talk in #bizhawk https://pastebin.com/aDYCUPjE And then I asked slamo and Dacicus to provide some insight on what's needed https://pastebin.com/KUdpvZBC I haven't tested how 86Box works with different media types and how many it supports at once, but here's a list of files PCem works with:
  • ROM files for a given machine. They also determine what will be available in emulated hardware options, may not be relevant for hawk.
  • NVR file that stores battery info of the BIOS. Not every setup needs it to launch. Not sure if any setup will create this while running. UPDATE: If NVR is missing and that firmware uses it, it pulls it from a default NVR file for that firmware and starts from that
  • 2 floppy disks can be loaded at once. The system can record to them. Swappable.
  • 1 CD can be loaded at once. Can't be recorded to? Swappable.
  • 1 HDD can be loaded at once. The system records to it a lot. Can't be swapped? UPDATE: Some firmwares can use up to 4 hard drives (3 if you're using a CD drive).
  • Textual config file for machine description, listing what devices it consists of and where on the host they are. Each configured machine has its own file. 86Box has only one file for whatever the current config is.
PCem also supports zip drives and cassettes, but for games those don't seem to be needed. So writes to those files will need to be captured and stored in a save RAM style, so a new movie could start from that. This is important because if you install something without capturing emulated timing fully, resulting hashes will be wrong and the movie may desync. This is why we require game installation to be inside a movie (either main or separate). Games come in the form of media images or in the form of file bunches. In order to load the latter into PCem one needs to create a compatible image on the host (for example using mkisofs). Only then such an image can be sent to the emulator. So since so many things have to be loaded at once, I thought that maybe extending functionality of Multi-disk Bundler could work? It allows us specify the platform, so it works fine as a core loader. And it even already supports loading several game files at once for Sega. What it doesn't have is knowing the difference between loading in parallel and swapping. For most cores it's the latter (PSX disks for example). It could also calculate hashes (for huge files - on demand). This would help with setting up MAME probably (tho simply renaming the game zip to something that launches the MAME core is a great idea too), and most definitely with Amiga emulators since they can load several mediums at once too. In terms of porting to hawk, PCem is has been on hiatus recently and we can't tell how active it will remain in the future. While 86Box has a huge team and is very active.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Reviewer, Expert player (2435)
Joined: 5/21/2013
Posts: 414
Looks pretty accurate now with what I mentioned on Discord - and yes, hard drives can't be swapped and CDs are read only. Also, flash.bin should be mentioned as one of the files. This is the flash memory of the computer. If flash.bin is not present, it's created from the contents of the ROM files and some parameters from the system. The programs only store one flash.bin for each chipset, not one for each config. For sync purposes we have all movies start with flash.bin deleted, although we could use it if it's created from a verification movie. 86box and PCem work about the same internally, they just organize things a little differently.
  • NVR is stored in the nvr folder, exactly the same for both programs.
  • ROMs are organized better for 86box. Each type of hardware has its own folder, and each piece of hardware has its own subfolder.
  • flash.bin is renamed after the firmware (the name of the folder the machine ROMs are in) and is put in the nvr folder.
  • One big weakness of 86box is that it only supports one configuration at a time. The format of the config file is quite a bit different from PCem. The configuration screen is about the same for most tabs, but 86box gets a lot more in-depth with ports and storage controllers.
  • PCem has a global config file that mainly contains info about the paths for different types of files and window positioning, 86box does not seem to store this anywhere.
86box is constantly being worked on and has more hardware options, so it's probably the best choice going forward. For loading the actual game files, it might be nice to have a built-in image creator to make CDs like JPC-rr has. This would standardize the way we make them instead of all of us using different software. If that's too much to ask, we can discuss what else to use. I probably missed some things, if I think of something else I'll post it.