Fallout 2 Community Edition - Extended (Et Tu/RPU compatible, cross-platform)
Find a file
Nobu 2fabd980a1
Some checks failed
Auto Format with Clang / format (push) Has been cancelled
Build and deploy webassembly version / Build webassembly version (push) Has been cancelled
Build / Static analysis (push) Has been cancelled
Build / Code format check (push) Has been cancelled
Build / Build ce.dat (push) Has been cancelled
Build / macOS (push) Has been cancelled
Build / Android (push) Has been cancelled
Build / iOS (push) Has been cancelled
Build / Linux (x64) (push) Has been cancelled
Build / Linux (x86) (push) Has been cancelled
Build / Linux (armhf) (push) Has been cancelled
Build / Linux (arm64) (push) Has been cancelled
Build / Windows (x64) (push) Has been cancelled
Build / Windows (x86) (push) Has been cancelled
Build / Release Continuous build (push) Has been cancelled
Production audit pass 17: 106 verified findings fixed across 300-agent discovery + adversarial verification — CRITICAL: interpreter.cc procedure index bounds check (RPU crash root cause at opProcCall line 3218), buffer overflow/format string/use-after-free fixes across sfall/window/combat modules; HIGH: item.cc drugPid save format compatibility (reverted to original 6-int32 format), window handle validation, combat array bounds checks, combat_ai team validation; MEDIUM: overflow guards (interpreter UB), off-by-one fix (window_manager_private >=), longjmp recovery with resource cleanup (endgame.cc), memory leak fixes, null pointer guards across animation/audio/character_editor/config/game_mouse/interface/inventory/loadsave/object/pipboy/proto/sfall_arrays/sfall_ini/sfall_opcodes/sfall_script_hooks/tile/window/window_manager/worldmap; 27 files changed +607/-119; 84/84 tests pass
2026-07-11 00:06:46 +05:00
.github Production audit: 25 verified fixes — 3 HIGH (FO1 level cap, perk save, game_loaded order), 22 MEDIUM (opcode bugs, save integrity, build system, test coverage) 2026-07-07 21:54:30 +05:00
cmake
files
os
scripts Production audit pass 5: 86 verified fixes — bounds validation, UB guards, save/load integrity, dialog circular buffer, build hardening, test quality 2026-07-08 08:26:46 +05:00
sfall_testing Production audit pass 10: 9 verified findings fixed — string persistence for perk/fake perk/trait overrides (F-003/F-004), gTalkingHeadMood save/load/reset/wiring into _gdSetupFidget (F-011/I2F-006), NPC fake perk/trait C++ accessors wired into characterEditorDrawPerksFolder (I2F-007), HOOK_ENCOUNTER test script arg0=2 fix (F-016/I2F-008), stale doc comment (F-014), INI traversal check component-based (F-022), stale string data clearing pass (OP-02), stringVars.clear symmetry (OP-01), gDude explicit skip (MT-01), test_sfall_ini linking stub (HK-01), traversal integration tests (HK-03); sfall_global_vars extended with string support (version 1→2), metarules save version 6→7; 3 build fixes (missing brace, const-correctness, test expectation); 70/70 tests pass 2026-07-09 06:38:12 +05:00
src Production audit pass 17: 106 verified findings fixed across 300-agent discovery + adversarial verification — CRITICAL: interpreter.cc procedure index bounds check (RPU crash root cause at opProcCall line 3218), buffer overflow/format string/use-after-free fixes across sfall/window/combat modules; HIGH: item.cc drugPid save format compatibility (reverted to original 6-int32 format), window handle validation, combat array bounds checks, combat_ai team validation; MEDIUM: overflow guards (interpreter UB), off-by-one fix (window_manager_private >=), longjmp recovery with resource cleanup (endgame.cc), memory leak fixes, null pointer guards across animation/audio/character_editor/config/game_mouse/interface/inventory/loadsave/object/pipboy/proto/sfall_arrays/sfall_ini/sfall_opcodes/sfall_script_hooks/tile/window/window_manager/worldmap; 27 files changed +607/-119; 84/84 tests pass 2026-07-11 00:06:46 +05:00
tests Production audit pass 16: 22 verified findings fixed across 68-agent discovery + 14-agent adversarial verification — CRITICAL: automapShow return -1 in void function compile error (F-C01, REG-001), configGetString nullptr UB (F-C02); HIGH: ARRAY_ACTION_REVERSE no-op std::reverse(rbegin,rend) (F-H01); MEDIUM: empty list arrays become associative on save/load (F-M01), party_member_list associative for empty party (F-M02), fake traits missing from Mutate! dialog (F-M04), HOOK_FINDTARGET missing critterIsDead at 4 sites (F-M12), HOOK_USEANIMOBJ return values ignored (F-M13), gPartyCooperativeCombat not persisted/reset (F-M17), explosive radius/pattern not consumed (F-M18), VK→SDL left/right modifier distinction lost (F-M19), remove_timer_event no-op after save/load (F-M20), per-critter hit chance overrides not serialized (F-M23), config bridge dead code in op_get_ini_string (F-M30/F-M47), header CRC failure mapped to wrong slot state (F-M32), scriptWindowCreate doesn't propagate failure (F-M36), scriptWindowDelete doesn't invalidate current window (F-M37), opMetarule/metarule3 unknown-rule return 0→-1 (F-M38/F-M40), empty list array round-trip test (F-M43), HOOK_CARTRAVEL carSteps unbounded (F-M44); floatToIntSafe IEEE 754 INT_MAX boundary fix; 84/84 tests pass 2026-07-10 18:05:08 +05:00
third_party
tools
.clang-format
.editorconfig
.gitattributes
.gitignore
build_mac_arm_release.sh Production audit pass 5: 86 verified fixes — bounds validation, UB guards, save/load integrity, dialog circular buffer, build hardening, test quality 2026-07-08 08:26:46 +05:00
CHANGELOG.md fix: RPU and Fallout et tu compatibility gaps — 23 verified findings fixed, 37 tests added 2026-07-09 04:42:35 +05:00
CMakeLists.txt Production audit pass 5: 86 verified fixes — bounds validation, UB guards, save/load integrity, dialog circular buffer, build hardening, test quality 2026-07-08 08:26:46 +05:00
CMakePresets.json Production audit pass 5: 86 verified fixes — bounds validation, UB guards, save/load integrity, dialog circular buffer, build hardening, test quality 2026-07-08 08:26:46 +05:00
fix_formatting.sh
INSTALL.md Production audit pass 7: 39 verified fixes — 1 CRITICAL (item weight overflow), 3 HIGH (VFS traversal, inventory leak, PTR propagation), 28 MEDIUM (opcode bounds, hook validation, YAAM DR fix, save CRC32, dialog OOB guard, encounterTableId bounds, realloc leak), 5 MEDIUM docs (compatibility citations, changelog, install guide), 2 post-fix regression corrections; save format bumped to 1.3R; 67/67 tests pass 2026-07-08 17:15:13 +05:00
LICENSE.md
README.md Production audit pass 5: 86 verified fixes — bounds validation, UB guards, save/load integrity, dialog circular buffer, build hardening, test quality 2026-07-08 08:26:46 +05:00
SFALL_COMPATIBILITY.md Production audit pass 15: 86 verified findings fixed across 2 convergence rounds — 123-agent discovery + 28-agent adversarial verification of full codebase against RPU/et tu/sfall references 2026-07-10 15:09:00 +05:00

Fallout 2 CE Extended

Fallout 2 CE Extended is a fully working re-implementation of the Fallout 2 engine, optimized for a hassle-free experience on multiple platforms. It provides high resolution support, quality-of-life improvements, and dozens of bug fixes.

Why you may need this

Currently there is no easy way to play both Fallout 1 and Fallout 2 on Mac with Apple Silicon and all the updates installed (like RPU and Et Tu) to get the best gaming experience. This project is aimed to fix that and deliver a native macOS ARM Fallout 1-2 engine which is also compatible with all improvements.

Mod Compatibility

The following total conversion mods are tested:

Mod Status Notes
Fallout 2 Restoration Project (RPU) Supported set_hero_style (0x8215) and set_hero_race (0x8214) hero appearance opcodes. CarTravel, SetGlobalVar, Sneak, OnExplosion, TargetObject hooks. Combat tracking (get_last_target/get_last_attacker). XP mod (set_xp_mod), skill points per level mod. get_stat_max/get_stat_min return correct per-stat limits (no longer hardcoded 10/0). State variables reset on new game (gSkillMaxCap, gPerkFrequencyOverride, gSkillPointsPerLevelMod, hero model globals). Critter type safety guards on stat setters. Knockback integration complete (combat.cc:4837-4857) for all 3 types with absolute/additive modes. SpeedMulti with ddraw.ini [Speed] parsing.
Fallout Et Tu Supported FO1-mode behavior controlled via gFallout1Behavior config flag (TRAITS — trait selection and mutation rules, COMBAT — hit-chance and damage calculation, REST — resting and healing mechanics, ENCOUNTER — random encounter handling, WORLD_MAP — world map city labels and travel, DIALOG — dialog interface and reaction thresholds, INTERFACE — UI behavior and overlays modules). VOODOO memory patches implemented as native CE config-driven behavior. FO1 hit-chance and damage modifiers, encounter dialog override (skip "Investigate?"), rest hours/messages (wake-up 6, RESTMODE_NO_HEALING), reaction thresholds (25/-25), worldmap city labels gated to FO1 cities. set_town_title, set_car_intface_art, SET_WM_MUSIC metarule3, set_rest_mode, r_get_ini_string, r_message_box, metarule_exist("rotators") metarules. USEANIMOBJ, DESCRIPTIONOBJ, SETLIGHTING, OnExplosion, TargetObject hooks. reg_anim_callback, set_perk_name/desc, set_fake_trait opcodes. Timer event system (add_g_timer_event, remove_timer_event). Interface overlay rendering via windowCreate integration. Lock unjamming metarule. Save/load with backward compat. VFS write-mode enforcement. GlobalScriptPaths config integration. Dogmeat PID in _Dogs array. Engine reports sfall 4.5.1. get_object_ai_data type 0 returns AI packet; types 1-2 return AI flags and procedure via accessors.

See Also

License

The source code in this repository is available under the Sustainable Use License.