Skip to content

Instantly share code, notes, and snippets.

@KaiStarkk
Last active July 25, 2025 04:39
Show Gist options
  • Select an option

  • Save KaiStarkk/78687087950ae30be1e04d45109e353e to your computer and use it in GitHub Desktop.

Select an option

Save KaiStarkk/78687087950ae30be1e04d45109e353e to your computer and use it in GitHub Desktop.
launchbox-VAPF-helper - this helper program is to enable setting up VAPF in LaunchBox

launchbox-VAPF-helper

This is a helper program. All credit for VAPF belongs with its author. VAPF can be found at https://www.orphanedgames.com/APF/apf_emulation/apf_emulation.html This helper program is to enable setting up VAPF in LaunchBox. This allows you to emulate APF MP-1000(/Imagination Machine1) games.

Steps to set up Launchbox

  1. Setup 1a. Download VAPF from link above. 1b. Save to your LaunchBox emulators folder 1c. Clone this repo inside the VAPF directory
  2. Normal import 2a. Import your ROMs folder in LaunchBox as normal. 2b. Select APF Imagination Machine when choosing a platform 2c. On the Emulator page of the wizard, click "Add"
  3. Configuring emulator 3a. For application path, use Emulators\VAPF\VAPF_run.exe 3b. Tick 'Extract ROM archives' option

Compatibility

Currently working for MP-1000 ROMs in the No-Intro format (.zipped .bin files). I haven't yet figured out how to make casette .wav files run in VAPF...

Footnotes

  1. (To save you the time searching, the MP-1000 is a consolized version of the Imagination Machine. It was common practice in the second generation of consoles for PC manufacturers to do this; they would take their 8-bit computer, add peripherals to it, and put it in a console-shaped box.)

param (
[string]$newValue,
[switch]$debug
)
# Define the file paths
$iniFile = "default.ini"
$tempFile = "temp_default.ini"
$searchString = "GAMEfilename="
$currentValue = ""
# Check if the new value is provided
if (-not $newValue) {
Write-Host "Usage: .\update_ini.ps1 -newValue 'your_new_value' [-debug]"
exit
}
# Check if the ini file exists
if (-not (Test-Path $iniFile)) {
Write-Host "File $iniFile not found!"
exit
}
# Create a temporary file to store the modified content
if (Test-Path $tempFile) {
Remove-Item $tempFile
}
# Read the ini file and replace the matching line
Get-Content $iniFile | ForEach-Object {
if ($_ -like "$searchString*") {
$currentValue = $_.Substring($searchString.Length)
"$searchString$newValue" | Out-File -Append -FilePath $tempFile
} else {
$_ | Out-File -Append -FilePath $tempFile
}
}
# Debug information
if ($debug) {
Write-Host "Current value: $currentValue"
Write-Host "New value: $newValue"
Write-Host "Running VAPF.exe"
}
# Replace the old ini file with the modified content
Move-Item -Force $tempFile $iniFile
# Run VAPF.exe
Start-Process "VAPF.exe"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment