VirtualBox 7 Compatability Changes
- Created a PowerShell script `virtualbox-wrapper.ps1` to wrap calls to vboxmanage and only exit once the virtual machine has been terminated. - Updated launch.json to use the PowerShell launch type to launch `virtualbox-wrapper.ps1` with the machine name supplied as an argument. - Updated `readme.md` to reflect these changes. # Conflicts: # .vscode/launch.json
This commit is contained in:
		
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -10,5 +10,3 @@ | |||||||
| /*.sh~ | /*.sh~ | ||||||
| /*.img | /*.img | ||||||
| src/include/asuro.pas | src/include/asuro.pas | ||||||
| .vscode/launch.json |  | ||||||
| .vscode |  | ||||||
|   | |||||||
							
								
								
									
										13
									
								
								.vscode/launch.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								.vscode/launch.json
									
									
									
									
										vendored
									
									
								
							| @@ -3,18 +3,11 @@ | |||||||
|         { |         { | ||||||
|             "name":"Run", |             "name":"Run", | ||||||
|             "request": "launch", |             "request": "launch", | ||||||
|             "type": "coreclr", |             "type": "PowerShell", | ||||||
|             "preLaunchTask": "Build", |             "preLaunchTask": "Build", | ||||||
|             "program": "VBoxSDL", |             "script": "${workspaceFolder}/virtualbox-wrapper.ps1", | ||||||
|             "args": [ |             "args": ["-MachineName", "7d395c96-891c-4139-b77d-9b6b144b0b93"], | ||||||
|                 "--comment",  |  | ||||||
|                 "Asuro",  |  | ||||||
|                 "--startvm",  |  | ||||||
|                 "0c971fec-6de7-42c0-a377-de11bb1cafa2" |  | ||||||
|             ], |  | ||||||
|             "cwd": "${workspaceFolder}", |             "cwd": "${workspaceFolder}", | ||||||
|             "console": "internalConsole", |  | ||||||
|             "internalConsoleOptions": "neverOpen" |  | ||||||
|         } |         } | ||||||
|     ] |     ] | ||||||
| } | } | ||||||
							
								
								
									
										22
									
								
								readme.md
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								readme.md
									
									
									
									
									
								
							| @@ -13,8 +13,8 @@ We welcome everyone to give building/breaking/fixing/shooting Asuro a go, feel f | |||||||
|     I don't think this needs an explaination. |     I don't think this needs an explaination. | ||||||
| * [VSCode (Optional, but highly recommended)](https://code.visualstudio.com/) | * [VSCode (Optional, but highly recommended)](https://code.visualstudio.com/) | ||||||
|     Visual Studio code is our IDE of choice, and we have a number of recommended plugins. |     Visual Studio code is our IDE of choice, and we have a number of recommended plugins. | ||||||
|     * [C# Plugin by Microsoft](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp) |     * [PowerShell Plugin by Microsoft](https://marketplace.visualstudio.com/items?itemName=ms-vscode.powershell) | ||||||
|         This plugin gives you the ability to use the 'coreclr' task type, allowing the automatic launching of virtualbox with the resulting image generated during compilation of Asuro. |         This plugin gives you the ability to use the 'PowerShell' task type, allowing the automatic launching of virtualbox with the resulting image generated during compilation of Asuro. | ||||||
| * [VirtualBox](https://www.virtualbox.org/) | * [VirtualBox](https://www.virtualbox.org/) | ||||||
|     Virtualbox is our Virtualisation environment of choice, don't ask why, it just is. |     Virtualbox is our Virtualisation environment of choice, don't ask why, it just is. | ||||||
|  |  | ||||||
| @@ -27,7 +27,7 @@ We welcome everyone to give building/breaking/fixing/shooting Asuro a go, feel f | |||||||
| 3. Install Docker for Windows. | 3. Install Docker for Windows. | ||||||
| 4. Install Git for Windows. | 4. Install Git for Windows. | ||||||
| 5. Install VSCode & the listed plugins. | 5. Install VSCode & the listed plugins. | ||||||
| 6. Install VirtualBox. | 6. Install VirtualBox (v7+). | ||||||
| 7. Clone this repository. | 7. Clone this repository. | ||||||
| 8. Run the following command in the root of the repo to build the docker image: | 8. Run the following command in the root of the repo to build the docker image: | ||||||
|     ```powershell |     ```powershell | ||||||
| @@ -57,18 +57,11 @@ We welcome everyone to give building/breaking/fixing/shooting Asuro a go, feel f | |||||||
|             { |             { | ||||||
|                 "name":"Run", |                 "name":"Run", | ||||||
|                 "request": "launch", |                 "request": "launch", | ||||||
|                 "type": "coreclr", |                 "type": "PowerShell", | ||||||
|                 "preLaunchTask": "Build", |                 "preLaunchTask": "Build", | ||||||
|                 "program": "VBoxSDL", |                 "script": "${workspaceFolder}/virtualbox-wrapper.ps1", | ||||||
|                 "args": [ |                 "args": ["-MachineName", "7d395c96-891c-4139-b77d-9b6b144b0b93"], | ||||||
|                     "--comment",  |  | ||||||
|                     "Asuro",  |  | ||||||
|                     "--startvm",  |  | ||||||
|                     "<YOUR UUID HERE>" |  | ||||||
|                 ], |  | ||||||
|                 "cwd": "${workspaceFolder}", |                 "cwd": "${workspaceFolder}", | ||||||
|                 "console": "internalConsole", |  | ||||||
|                 "internalConsoleOptions": "neverOpen" |  | ||||||
|             } |             } | ||||||
|         ] |         ] | ||||||
|     } |     } | ||||||
| @@ -77,5 +70,6 @@ We welcome everyone to give building/breaking/fixing/shooting Asuro a go, feel f | |||||||
| 13. Open your project folder in VSCode, use CTRL+SHIFT+B to build & F5 to build + run in VBox. | 13. Open your project folder in VSCode, use CTRL+SHIFT+B to build & F5 to build + run in VBox. | ||||||
| 14. Congratulations! You can now play with Asuro! | 14. Congratulations! You can now play with Asuro! | ||||||
|  |  | ||||||
| ### Gotchas | ### Notes & Gotchas | ||||||
|  | - The above process has been updated to be compatible with VirtualBox 7+, in which VBoxSDL was removed and vboxmanage should be used in its place. A small wrapper powershell script is used to achieve this. | ||||||
| - It was noted that Windows builds above `20H2` seem to have issues installing WSL2. We may have to wait for a patch from Microsoft to fix this. Our devs are currently using build `20H2`. | - It was noted that Windows builds above `20H2` seem to have issues installing WSL2. We may have to wait for a patch from Microsoft to fix this. Our devs are currently using build `20H2`. | ||||||
|   | |||||||
							
								
								
									
										16
									
								
								virtualbox-wrapper.ps1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								virtualbox-wrapper.ps1
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | |||||||
|  | param ( | ||||||
|  |   $MachineName | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | VBoxManage.exe startvm $MachineName | ||||||
|  |  | ||||||
|  | $running=$true | ||||||
|  | while($running) { | ||||||
|  |   Start-Sleep -Seconds 1 | ||||||
|  |   $status=(VBoxManage.exe list runningvms) | ||||||
|  |   if($status) { | ||||||
|  |     $running=$status.contains($MachineName) | ||||||
|  |   } else { | ||||||
|  |     $running=$false | ||||||
|  |   } | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user