Standalone (halo_
This build doesn't include network functionality but can load multiplayer scenarios and test game modes. For testing singleplayer missions, it includes AI debugging code not included in other published builds of the engine. Using custom content paths is supported.
There can be small differences between the way a map plays in Standalone and MCC. Maps should always receive final testing as map cache files loaded by MCC itself.
Usage
The UI works to a limited degree but loading scenarios is best done using the map_name
command in the console. Note: you need to use the full scenario tag path since this is a tag build. The path is relative to the tags
folder and does not include the .scenario
suffix. For example:
; load the singleplayer mission a30:
map_name levels\a30\a30
; set the game mode to slayer and load blood gulch:
game_variant slayer
map_name levels\test\bloodgulch\bloodgulch
; if your tag path contains spaces, use quotes:
map_name "levels\test\my level\my level"
To avoid having to enter these and other debugging commands every time you start Standalone, you can place commands in an init.txt file and they will be run automatically on startup. You also don't need to reopen Standalone every time you make changes to your tags; simply access map_name
again in your console history (Up key) to reload the map with updated tags.
Standalone supports some of the same arguments that H1CE does, such as -vidmode 2560,1440,120
to set resolution and -windowed
mode. You can toggle full-screen with Alt + Enter.
Use cases
This build offers a number of benefits for testing over compiling cache files for H1A:
- Since it loads tags, you can edit tags then simply reload the map with
map_name
to see changes. Remember that the console contains the history of previously run commands. This is not quite real-time tag editing, but it's close. - Script stack space is validated unlike release builds.
- You have access to all console functions and globals in a much more interactive environment than Sapien to help you troubleshoot your content.
Debug camera controls
To enter into the debug camera, open the console and enter debug_camera_save
followed by debug_camera_load
or press Backspace until you are in flying camera mode. Movement of the camera is a little different than in Sapien or H1CE. You do not need to hold the middle mouse button and the camera moves in the direction it's pointed rather than its vertical movement being controlled exclusively with buttons.
- Backspace: Cycle camera modes (1st person, 3rd person, flying)
- Use the mouse to aim
- Move with W, A, S, and D
- Go up with R and down with F (camera relative, not world relative)
- Increase/decrease camera speed by scrolling down/up
- Temporarily boost camera speed by holding Ctrl
- Rotate clockwise with G
You can also use a gamepad to control the camera:
- Right bumper (hold): Cycle camera modes (1st person, 3rd person, flying)
- Right stick click: toggle gamepad control of the debug camera
- Right stick: aiming
- Left stick: horizontal movement
- Right trigger: move up
- Left trigger: move down
- Left stick click: speed boost
- D-pad up/down: speed increase/decrease (make sure to enable
framerate_throttle 1
first) - D-pad left/right: roll
Analog control of the camera with the gamepad makes a great filming tool for your custom map trailers.
Object spawning
You can quickly spawn a variety of objects for testing:
- Spawn all bipeds by pressing Ctrl + F7.
- Spawn all vehicles by pressing Shift + F7 or entering
cheat_all_vehicles
into the console. - Spawn all weapons by pressing F7 or entering
cheat_all_weapons
into the console. - Spawn just a Warthog by entering
cheat_spawn_warthog
into the console.
Profile files
H1 standalone stores its profiles and savegames in a binary format under C:\Users\%username%\Documents\My Games\Halo1A
. Sometimes you may need to delete the contents of this folder if scenarios which loaded successfully before will no longer load, often with debug.txt
errors like these:
EXCEPTION halt in c:\mcc\release\h1\code\h1a2\sources\tag_files\tag_groups.c,#4437: !block->definition || block->definition->element_size==element_size
EXCEPTION halt in e:\jenkins\workspace\mcch1code-release\mcc\release\h1\code\h1a2\sources\memory\data.c,#723: script node index #0 (0x12d0000) is unused or changed
EXCEPTION halt in e:\jenkins\workspace\mcch1code-release\mcc\release\h1\code\h1a2\sources\memory\data.c,#723: hs thread index #0 (0xf3690000) is unused or changed
EXCEPTION halt in e:\jenkins\workspace\mcch1code-release\mcc\release\h1\code\h1a2\sources\memory\data.c,#723: object looping sounds index #4059 (0x40c90fdb) is unused or changed
This is because the files in your profile can contain memory dumps which, when loaded, are not compatible between reloads of your tags or tag edits.
Known issues
- Sound cuts out - ensure
framerate_throttle 1
is set. - Menus are rendered at their native size of 640x480 in the top left corner of the screen rather than stretched to the entire game resolution.
- Low mouse sensitivity in vehicles and when zoomed in.
- Some AI may behave differently than in a cache build. For example, the sentinels during d40's Warthog run are inactive.
- Player cannot be controlled while in debug camera mode.
- Some transparent geometry like lights and decals may be visible even when they are behind an obstruction.
- Crashes that happen in H1A Sapien may also occur.
Acknowledgements
Thanks to the following individuals for their research or contributions to this topic:
- num0005 (Documenting H1A standalone build)
- Zeddikins (Finding the spawning hotkeys)