case studyUpdated Aug 11, 202643 min read$23

I Gave Gold War Machine Onslaught's Boss Beam.

Mega Optic Blast is now a two-level air super in MvC. Making the stolen beam playable meant fixing its input, palette, damage, and the landing after the light goes out.

All versions · Every public patch

Jump to evidence
cps2reverse-engineeringmarvel-vs-capcomgold-war-machineonslaught
CPS-2 Reverse EngineeringPart 25 of 43
Browse all writing
On this page

Gold War Machine already looks like a boss character, so giving him first-form Onslaught's Mega Optic Blast feels almost inevitable. The implementation is less obvious. The visible beam is a linked family of stock class-$B4 objects, the body is Gold's native airborne medium-punch choreography, and the palette is shared engine state that can be overwritten mid-super.

The first working version proved the route. Combined v3 makes it a playable move: a short punch piano works, the super costs two levels, Duo Team Attack locks it out, hit and chip are deliberately balanced, only Gold loses OTG, and the final lit pose hands off to stock unlit recovery and natural air physics instead of floating motionless.

Combined v3 is the only current player build

Gold v5 ships only inside Mega Man + Gold War Machine Combined v3

There is no standalone Gold v5 player CMD or standalone Gold v5 Discord package. The sole current player product is MVSC-MEGAMAN-GWM-COMBINED-v3.cmd, built in one pass from an exact clean encrypted Euro parent. Older standalone and Combined names are historical evidence, not alternate current downloads. Never stack an old installer into Combined v3.

Combined v3 player artifactFinal identity
Windows installerDownload MVSC-MEGAMAN-GWM-COMBINED-v3.cmd
CMD bytes37,330
CMD SHA-256c2af03214b5c4c8e41554fc1c479b5a14d45fa1d6fe4066396b4aea025eabd72
ROM-free Discord transportDownload MVSC-MEGAMAN-GWM-COMBINED-v3-DISCORD.zip
Discord ZIP bytes17,374
Discord ZIP SHA-2563a80cd4ac781e8483ca892a4d3a7005022008f398b6ae643910a86468a3f33f7
Compact evidence binderfreeze-manifest.json, SHA-256 b608b4b1c43c85ea5dca1a595ec880da90c66962c452f1ee9c4286dce8b493bb
Installer gateinstaller-gate.json, SHA-256 91dbc6278f242fe772b0cbecb43484517c558afc8ab8bece4f4e451103cc8f4b
Release ledgerrelease-ledger.json, SHA-256 8aa4b8ca9a32767ff443817aeff853ae0a1c86c98d3b0529f8335cb12af95d7f
Semantic composition fingerprintaf80e769d61bd7d260f618b76648a8ca8d707fd7c3c8554579f48c1a04bace14
Full ROM-free audit mirrorPUBLIC-MIRROR.md

Run the final CMD beside your own clean mvsc.zip:

& ".\MVSC-MEGAMAN-GWM-COMBINED-v3.cmd" ".\mvsc.zip"

It writes mvsc_megaman_gwm_combined_v3.zip, includes and downloads no ROM, preserves the input, and refuses a patched, stacked, reordered, duplicated, missing, extra or mislabeled set.

For online play, both peers need identical case-sensitive ordered member data and a room/emulator that accepts modified CRCs. Stock member sizes and no graphics expansion do not guarantee that a Fightcade room will accept the set. This is unofficial and has no claimed Capcom or Fightcade support. The one current Discord announcement lives in the Mega Man companion article, so there is not a second standalone Gold message to drift out of sync.

What Combined v3 fixes

The input accepts a controller piano without becoming sloppy

Gold's command remains airborne QCF + any two punches in either a normal jump or a true down-up super jump. At the terminal stage, v5 accepts all three punch pairs together or a short one-update roll when at least two punches are held and at least one punch has a new press edge. It preserves the native direction-release window. Singles, QCB, stale-held pairs, release-only pairs and an active repeat state +$B0=$2A reject.

Ground QCF+2P remains Proton Cannon. Plain air MP remains Gold's ordinary plasma. Ordinary War Machine ($02) is unchanged; every custom path requires Gold fighter id $0028.

The beam costs two full levels and cannot run inside Duo

One level now rejects before custom state, beam allocation or palette lease. Two levels accept and pay exactly 2→0; hit and guard cannot refund the shooter. The commit adapter at $3F26B6 calls the native hyper commit wrapper and reaches stock meter spend with d0=1, producing the required second debit without inventing a separate meter store.

On a one-level attempt, native QCF parser progress occurs during the motion, then the final +$1C8..+$1CD record returns to 000000000000; meter remains 1→1, with no custom state, B4 object or palette lease. Duo is a separate earlier gate: its real countdown check rejects before parser consumption, so that lane truly leaves the parser unchanged.

Variable Cross is not identified by fighter +$B0. Its authoritative per-side countdown words are $FF4034 for P1 and $FF4036 for P2, selected by fighter +$02. During a real QCB+HP+HK Duo, the custom recognizer checks that timer before touching its six-byte parser record. The measured reject leaves meter, parser, custom action, B4 allocation and palette lease unchanged.

Hit damage is 52 and guarded chip is 7

The donor's 17 standing/air contacts dealt 45 total damage from shared Dmg $06 rows. Gold v5 substitutes owner-private clones with Dmg $07 before common collision math caches the row. The result is 17 contacts and 52 total damage without editing native Onslaught's $0F78D2/$0F78F2.

On guard, 13 contacts used to produce 13 chip. Subtype B is naturally no-chip. For subtype A, guard contacts alternate between the ordinary private row and a private +$16 bit-1 clone; only the guard path advances parity. Seven guarded contacts pay one point, six skip it. All hit contacts stay active, so the hit total remains 52.

Gold's beam does not OTG

This policy is Gold-specific. When the target is genuinely prone in state $08, step $0004, the owner-scoped wrapper marks the custom Gold B4 object so the engine skip at $0D711E ignores that attacker. The frozen true-prone lane records zero Gold B4 contacts. Standing, crouching and airborne controls still connect, and native Onslaught is untouched.

Mega Man's Magnetic Shockwave intentionally follows the opposite policy: it preserves the original move's OTG behavior. Combined v3 distinguishes the two owners rather than imposing a global rule.

The ending is unlit and immediately returns to natural falling

The old cooldown fix turned off the chest light but held Gold in a private motionless countdown, which produced the choppy “two falling frames, then float” report. V5 removes that manual loop. On the first frame with no marked B4 object, it releases the palette lease, selects Gold's stock unlit air-MP recovery group $02 / subaction $12, clears the private hold metadata, and calls the native return-to-air path.

LaneLast B4First stock unlitVertical motion resumesLanding
right-facing normal jumpage 186age 187age 189observed
left-facing true super jumpage 203age 204age 205observed

The first unlit frame provides the requested cooldown/finish read, but Gold no longer sits there. Gravity resumes immediately through the stock air system.

Missing beam graphics are not reproduced from a clean accepted parent

Reports #1–4 showed missing or corrupted beam graphics on local archives, but both reported local ROMs were also known to be corrupted and the defect did not appear in the patch delta. Gold v5 writes only mvc.10, mvce.03a and mvce.04a. Every graphics member mvc.13m through mvc.20m is byte-identical between the installer-accepted canonical parent and the tested candidate.

Treat a missing segment as a real patch regression only after the final installer accepts the exact canonical parent and the same clean-parent reproduction still shows it. Do not use a previously patched, corrupt, reordered or relabeled archive as the graphics oracle.

There is a separate visual limitation: the large white/cyan oval or apparent “cutout” at beam contact is native class-$B4 Onslaught composition. Removing its live subtype slices produced invisible damage or rectangular gaps. Combined v3 keeps that coherent stock donor presentation. It is not evidence that graphics data was omitted from the patch.

Compact release evidence

ClaimBounded case / observationEvidence identityComponent fingerprintStatus
two-level acceptmeter 2→0, custom B4 accepted1d846d90a1a4b6d7edec645d06871e6608e99bc7c9523c7762f1683047e97e9epayload 5888cd0154a204a3c8d6eca385eb01dc335f510909f889b5983740985d56cfd5PASS
one-level rejectnative QCF parser progresses during the motion, final +$1C8..+$1CD=000000000000; meter 1→1; no custom state/B4/leasea1faf6c296b201eacd0bda57631536631395ed287769bd44db0741d4cf886de8same payloadPASS
real Duo rejectparser/meter/B4/lease unchangedd77efd0edba6f65d0b577462a199fe9838b495d9377ae9d093e407e99858b056$FF4034/$FF4036 gatePASS
real stale-held pair rejectLP+MP held in current/previous at stage $08, newPunch=$00; no custom/B4/debit/leaseright 7c9cdf0532fba6822955b18c456055b5188432a3ac213dcce9b28aa30838acee; left c4ebb8a01733cecdb1e3116ae9fd08b803b750e3b4c92e24f113288d371ad54fharness 431c30e8886dab412d1a530edd29e9d3ae37b19b16513b2c18e610c12cd46885PASS
hit balance17 contacts, 52 damage, no refund7102d7e44d3b8a9bf8d57b12adc249d60b17ff7c5a6b59c4eefa587bd2d7c85eprivate Dmg $07PASS
guard balance13 contacts, 7 chip, no refund781c7c1c480402bb6faee730f0ce55519a917e70f68ed1c812dae5e9bbb21a08guard parity +$1CF bit1PASS
Gold no-OTGtrue prone $08/$0004, zero B4 contactsbafefcea60f55f10035921d986422c817380f59e15b5953272fd7d9378eada24owner-scoped skipPASS
crouch / air contactscrouch PASS; air 17 contacts/522d0de2307c6fbb1c3b61027b4f73bc435a669833c95a7b45521ecb51392e80ca / 7807d8dab631e2823ce346f6ed0859acf74bfc2602da4e25f4b268bc803a5130same private rowsPASS
natural recoverynormal and true-superjump fall/land lanesdbd784be941b3299cf80605f35e861b8af6c57f2b7a191cf4d70599363fa6df9 / 0f5779eebd82c4345ee6ca461ad6b4cb7c9401655e032253ff54e54c4b7fd037stock $02/$12PASS
air-normal cancel windowreal LK→HK enters $1A00; hyper accepted age 295f1e84115407959ba765ab91e539e53e5de6768166a5330d1d973c05e05a4e88whiff action-window oraclePASS / qualified
graphics unchangedall eight mvc.13m..20m byte-identical23ce24cbefed11f2d391bf45b7b7593a04a6c6ea2af70b828584a73fdb7bdbafno graphics writesPASS
Combined v3 compositionexact clean parent + one shared meter owner8aa4b8ca9a32767ff443817aeff853ae0a1c86c98d3b0529f8335cb12af95d7faf80e769d61bd7d260f618b76648a8ca8d707fd7c3c8554579f48c1a04bace14PASS / FROZEN
public CMD/transportWindows gate + ROM-free inventory91dbc6278f242fe772b0cbecb43484517c558afc8ab8bece4f4e451103cc8f4b / b608b4b1c43c85ea5dca1a595ec880da90c66962c452f1ee9c4286dce8b493bbc2af03214b5c4c8e41554fc1c479b5a14d45fa1d6fe4066396b4aea025eabd72 / 3a80cd4ac781e8483ca892a4d3a7005022008f398b6ae643910a86468a3f33f7PASS / FROZEN

The frozen Gold component identities are source 97197eb0986b66960de86383dc80d1b8034af4920bb8c7d2de145173de191e62, 2,168-byte payload 5888cd0154a204a3c8d6eca385eb01dc335f510909f889b5983740985d56cfd5, resource 6252bae7ba2abeca572d5df1d5f18841e4696fbc689982e103986cafaee710a9, hook plan c4e463bb5703a280d9ccfb5a0cedbf49c50362006f64b168c0fdc21e5539bbbb, final evidence component record 77cf2ade30e302c6b0d9bccc68fcf96a294fcb3c69e1587a96b0b5279d8f2876, and normalized release component 5cbc7b714a24406e29821a69eaa4e1f1cbaef53adaed72cf8213faf64b585803.

The air-normal cancel evidence proves the action window on a true whiff. The shared hit-contact timing control also failed to make LK/HK contact for stock Ryu, so this binder does not pretend it has a separate hit-confirm oracle. That qualification is part of the freeze, not hidden in a footnote.

N41 replication ledger: exact state, hooks and private rows

Live RAM ownership

MeaningFighter-relativeP1P2
current / previous input+$D6/+$D8$FF30D6/$FF30D8$FF34D6/$FF34D8
fighter state / accepted move+$B0/+$E6$FF30B0/$FF30E6$FF34B0/$FF34E6
Gold command parser+$1C8..+$1CD$FF31C8..$FF31CD$FF35C8..$FF35CD
palette lease+$1CE$FF31CE$FF35CE
runtime flags+$1CF$FF31CF$FF35CF
native Duo countdownglobal/per side$FF4034$FF4036

+$1C8..+$1CD is temporary command-parser progress, not a moves-used list. +$1CE is the $A5 palette/provenance lease. In +$1CF, bit 0 records a common palette-writer interruption and bit 1 is guarded-contact chip parity. Both runtime bits clear on action init/release. Fighter +$02 selects which native Duo timer belongs to the owner. On an accepted Gold Mega Optic activation, fighter +$B0=$2A and +$E6=$1A (P1 $FF30B0/$FF30E6, P2 $FF34B0/$FF34E6).

Fixed Gold payload map

The payload links at CPU $3F2000..$3F2877, stored in mvc.10 +$072000..+$072877 after 68000 word-order conversion.

EntryCPU addressEntryCPU address
air command gate$3F2000special dispatcher$3F207E
beam handler$3F209AB4 object dispatcher$3F2214
subtype identity 0/2/4/6$3F22B0/$3F22BA/$3F22C4/$3F22CEsubtype placement 0/6$3F2314/$3F2350
palette reload gate$3F23E8input piano adapter$3F25C6
component meter wrapper$3F2560prone gate / Duo gate$3F2658/$3F269E
two-bar commit$3F26B6collision-row substitution$3F26CE
hit-row cache substitution$3F271Echip balance$3F2766

Corrected 13-hook plan

The hit-row cache hook is CPU $01A952, not the stale research address $0D7426. $0D73D4 is a different, earlier collision-row hook; both are necessary so the private Dmg $07 row exists before each common consumer caches it.

The two byte columns below are copied from the frozen hook plan. Plain member is the decrypted, word-swapped member order used for a plaintext preimage comparison. Encrypted member is the actual HxD byte order in the canonical encrypted parent. Do not paste the plain column into mvce.03a/.04a.

CPU / canonical member offsetPurposePlain member before → afterEncrypted member before → after
$02896A / mvce.03a +$02896Aairborne recognizerBA4E4A02714E → B94E3F000020140985FCC3C6 → 9AC65AB03140
$02A41E / mvce.03a +$02A41Especial dispatcher00702E10E600 → F94E3F007E20FF7BE8697134 → 6A8530B84426
$0A54F4 / mvce.04a +$0254F4B4 owner/cleanup6E205400680C → F94E3F0014222FD01A6EFE19 → F2F6E06B1939
$0A558E / mvce.04a +$02558Esubtype 0 identity682D68006800 → F94E3F00B022B8D5AEFD1994 → 2A50F3CB355E
$0A57C4 / mvce.04a +$0257C4subtype 2 identity682D68006800 → F94E3F00BA22F4439FCDFDC7 → 58A8E06C86FA
$0A593C / mvce.04a +$02593Csubtype 4 identity682D68006800 → F94E3F00C422B7BB8047B87F → AC2B79B21D78
$0A5AAC / mvce.04a +$025AACsubtype 6 identity682D68006800 → F94E3F00CE22D651D637798F → E7AAA7738167
$0A55D0 / mvce.04a +$0255D0subtype 0 placement3C30C9FF2E4A → F94E3F00142377CE50EA9EA5 → AEEA45FD79D9
$0A5AB8 / mvce.04a +$025AB8subtype 6 placement3C30CAFF2E4A → F94E3F0050231ACA3265BBF1 → 4F4CDE874687
$0D73D4 / mvce.04a +$0573D4private row before collision math48298C00681907008500 → B94E3F00CE26714E714E2A751064AA988C4FB367 → C3A256C6B0CDB238AC96
$01A952 / mvce.03a +$01A952private victim row before hit math482D8C006E208C00 → B94E3F001E27714E2D79ED0AC7C578E8 → C7F9CA6602E17B37
$01CD1E / mvce.03a +$01CD1Eattacker meter filter2E4AE80000670C00 → F94E3F006025714EB7E6BA813793ED6B → 59A8A5A9823AC4AF
$00A4C6 / mvce.03a +$00A4C6palette reload/repaint2D4AB77900662000 → F94E3F00E823714EAB7DAECEC156EF83 → CE7AB586A5031ECE

In final Combined v3, $01CD1E is intentionally replaced by the one shared owner instead:

CPU plaintext fetched: 4A2E00E86700000C -> 4EF9003F30004E71
encrypted member HxD:   B7E6BA813793ED6B -> 59A8A5A973B6C4AF
dispatcher:              $3F3000, class $B4 -> $3F2560, otherwise -> Mega $3F138A

Every other Gold hook remains exactly the frozen component hook above.

Stock rows and Gold-private rows

Native Onslaught's rows remain byte-identical:

$0F78D2  060003c010300008000f190a80050c2404640012001404010000000000000000
$0F78F2  060003c010300008000f190a80050c2405640012001406010000000000000000

Gold uses these unique private byte patterns:

$3F27F8  070003c010300008000f190a80050c2404640012001404010000000000000000
$3F2818  070003c010300008000f190a80050c2405640012001406010000000000000000
$3F2838  070003c010300008000f190a80050c2404640012001406010000000000000000

$3F27F8 is hit row A, $3F2818 is hit row B, and $3F2838 is the alternating no-chip A clone. The fourth allocation at $3F2858 is byte-identical to $3F2818; subtype B is already naturally no-chip. The meaningful byte edits are Dmg +$00: $06→$07 and row-A guard property +$16: $04→$06. Keeping private clones prevents native Onslaught or another consumer of $0F78D2/$0F78F2 from inheriting Gold's balance.

Graphics-member clean-parent proof

The candidate changed only mvc.10, mvce.03a and mvce.04a. The clean/candidate SHA-256 for each 4 MiB graphics member is identical:

MemberSHA-256
mvc.13m689b9f2e2f9105f6b6a456e836a289c65caf642d9c7d246ea95c2db256f2ce0d
mvc.14m1be6ba60b3cc0e6b647c2a54ca06b948dbc72eb32efdead84bcaa1d2efd69db5
mvc.15m37365288e38a8c41fb5d2eb72808038478def8c8aa368d85816b70a89f6a6f55
mvc.16mc94231770a7377bf6c7817427f28b87db79f3be03287279e8a19bea34cca85be
mvc.17mdc29f2f0bf56d60408e9b9a2fcfae6c684f8be97712c94f146386c9bbb9ab46f
mvc.18m4f3ceefa11958fd92f88047f876e37a5a9a226ca9c28e3b9915a03f39a268947
mvc.19md245405b8fa57b315300d915b9b5f96859bc31b9a97f653e370c7f0f28a1fc7f
mvc.20m6cb08b23e33cc97bd14c6bf0ed179c99952146328f0dc0f01e8135c2783466bd

The compatibility identity is the exact member data, not the outer ZIP's compression metadata. The recorded clean outer archive SHA-256 is 6f63627cc37c554f74e8bf07b21730fa7f85511c7d5d07449850be98dde91da8, but the installer makes its decision from the canonical ordered member catalogue.

Permanent-edit workflow

  1. Observe live fighter/object/row state in MAME or FBNeo; $FFxxxx is RAM, not an HxD offset.
  2. Assemble with m68k-elf-as, link at $3F2000, and fail on exported symbol drift.
  3. Store the 2,168-byte payload in mvc.10 +$072000 after swapping each 68000 word's byte order.
  4. For every hook, require the exact clean plaintext and encrypted preimage shown above.
  5. Derive encrypted executable words at the exact CPU word address; byte swapping alone is not CPS-2 encryption.
  6. Build a new ordered archive, decrypt changed program ranges back to CPU order, and re-encrypt to prove byte-for-byte equality.
  7. Run owner negatives: ordinary War Machine, native Onslaught, ground Proton Cannon, plain air MP, one-bar and Duo states.
  8. Run behavior deltas: hit, guard, true prone, crouch, air, normal-jump fall and true-superjump fall.

HxD answers “what bytes are stored in this extracted member?” SwapEndian/word_swap answers “how are bytes ordered inside each 68000 word?” XCopy/CPS-2 encryption answers “what encrypted opcode word represents this CPU instruction at this exact address?” They are three separate transforms.

Harness architecture and reuse

Gold v5 uses bounded lanes instead of replaying every historical matrix after every edit. smoke checks install/boot/command. delta checks the behavior touched by the edit. release runs the full composition, static byte scope and packaging only after both components freeze.

Each emulator case is isolated and has a hard wall timeout. A cached PASS binds ordered ZIP member semantics, post-sign output, receipt, emulator, manifest, runner, Lua 5.1 compiler, harness, declared dofile dependencies, allowed environment, command, timeout, completion marker and exact artifact inventory. A case-local DONE without that fingerprint is rejected. The runner also rehashes source and dependencies after execution and terminates the whole process group if a case hangs.

The contact harness logs object class/subtype, owner chain, cached row at object +$8C, victim row, HP-write PC, contact count, damage and meter. That is how the late-row substitution bug was found: putting Dmg $07 only into a postprocessor was too late because $0D73D4 had already cached the stock row. The fixed pair $0D73D4→$3F26CE and $01A952→$3F271E moves substitution before both consumers.

Recovery lanes record the last live B4, first unlit animation, subsequent Y/velocity changes and landing. The prone lane requires the actual $08/$0004 state when the beam arrives; “the target looked down” is not enough. The Duo lane performs the real QCB+HP+HK activation and observes the native per-side countdown, rather than forcing a convenient fighter state byte.

Historical engineering appendix

Old unversioned, v1 and v2 Gold installers are revoked. Standalone v3/v4 and Combined v1/v2 are historical freezes only and are intentionally not linked as current player choices. Combined v3 must always begin from the exact clean parent.

Follow the boss object's topology

Onslaught does not draw one huge beam sprite. A class-$B4 root creates linked subtype objects that own placement, palette, collision and render lists. Gold's custom action calls the native family, then marks only the lineage whose owner is fighter $0028. Native Onslaught and unmarked B4 objects resume the displaced stock dispatcher.

Gold's measured chest origin comes from ordinary air MP: subtype $06 uses forward +20, vertical -82; subtype $00 keeps the donor family's one-pixel relation at forward +21, vertical -81. The custom super suppresses Gold's normal class-$1C chest plasma only during this action. It does not add a body hitbox.

Why palette lifetime needed a lease

The beam's colors can look right on spawn and then inherit Gold's palette after hit flash or a common palette reload. The fix is owner-scoped lifetime, not a one-time palette copy. Fighter +$1CE=$A5 marks the lease; marked descendants keep it live, the common repaint hook restores the optic palette while active, and the final descendant releases it. +$1CF bit0 records an interrupted palette write so the next safe update reapplies it.

Why the native contact oval remains

Render-queue tracing showed that repeated subtype-$04 display lists compose the bright contact oval. Removing a live slice did not remove its collision; the game produced invisible damage. Replacing it with narrower donor lists opened rectangular holes. Because the patch does not import new art or expand graphics ROM, the coherent native Onslaught presentation is the honest stock-size limit.

Why v5 recovery replaced the v4 cooldown loop

The earlier presentation revision correctly removed the unexplained chest light but stayed in a private fixed-air countdown. Testers then saw Gold alternate two falling frames while hovering. V5 keeps the desired first unlit frame and deletes the motionless policy: the engine's own RETURN_TO_AIR owns gravity, fall animation and landing from that point onward.

That distinction is the general lesson of this port. Reusing a native effect is not just calling its spawner. A robust character port must own command grammar, cost, team modes, object ancestry, collision-row timing, meter returns, palette lifetime, recovery and cleanup—and must prove that every shared donor remains unchanged.

Archived deep research record

The following original reverse-engineering sections are retained intact for provenance and reuse. Their v2/v3/v4 wording is historical context only. They expose no current player download and do not override Combined v3's two-level cost, Duo ban, 52 damage, 7 chip, Gold-only no-OTG, natural recovery, corrected $01A952 hook or frozen identities above.

What v2 got wrong—and how v3 fixes it

The new play captures invalidate the old “chest-origin” label. V2 installs a fixed −64 placement formula, advances the borrowed air-MP chain only until its fire event, then holds Gold motionless while the class-$B4 family continues. That explains both visible complaints: the cap is attached to the fighter origin rather than the rendered chest plate, and the body stops performing the move. The donor property rows also feed hyper-gauge charge through their stock boss behavior. V3 filters only the Gold-owned donor returns, so the shooter earns zero meter from the custom beam on hit, block or whiff while the defender keeps the unmodified stock gauge path. A stock Ryu control later settled the separate repeat-use question: a second air Hyper can be legal in the same jump if the first move fully recovers before landing. Gold therefore follows that timing instead of receiving an invented one-use-per-jump lock.

Gold War Machine airborne with the native chest flash from his medium punch
Native mvsc.zip reference // air-MP visibly establishes the chest emitter
Withdrawn v2 Mega Optic Blast beginning below and beside Gold War Machine's chest
Withdrawn v2 // fixed object offset starts the beam around the side and hip

The presentation target is the readable logic of an airborne Uni-Beam: wind-up, chest flash, braced discharge and recovery. Marvel Super Heroes Iron Man and Marvel Tōkon: Fighting Souls make that intent especially clear, but their art is reference only. Cross-ROM analysis found no exact Iron Man/War Machine body-tile twins, and importing those graphics would violate this patch's stock-ROM/Fightcade constraint. V3 therefore continues Gold's existing group $18, sub $02 body chain through all twelve observed records, suppresses only the normal class-$1C plasma child while the custom action marker is live, and attaches Onslaught's already present beam family to the measured chest pixel. The anchor is forward +20, Y −82 on subrecord $06, then forward +21, Y −81 on subrecord $00; “forward” mirrors with facing. The fighter body carries zero attack metadata during the super, so only the native class-$B4 beam family can hit.

Iron Man performing an airborne Uni-Beam with a clear chest-centered emitter
Choreography reference // chest origin, readable firing pose and recoil
Marvel Tokon Iron Man firing the large Unibeam Max from his chest
Scale reference // a giant beam still reads correctly when the body and muzzle agree

An exact render-consumer trace proves that the huge white/cyan contact cap is real class-$B4 donor composition—not a random tile, background hole, palette fault or hit spark. The repeated subtype-$04 display lists at $322AC4 and $322D2A build the oval slice by slice. Hiding a slice leaves active, invisible damage; substituting narrower stock lists opens rectangular gaps. Under the Fightcade constraint—no ROM expansion, new graphics or imported sprite data—there is no safe stock-list replacement. V3 therefore keeps the donor-native cap as a documented visual limitation instead of disguising collision or weakening the object family.

Withdrawn Gold War Machine v2 build showing the oversized white and cyan native Onslaught cap during beam contact
Donor-art diagnostic // the apparent square is the stock B4 composite cap, not a background or palette glitch
A second super in one jump is not automatically a bug

A clean stock-ROM control answers the comparison directly: Ryu can perform a second airborne Shinku Hadoken in one ordinary jump when the first starts early enough, its full recovery finishes before landing, and another meter level remains. Gold follows that rule. He may not retrigger the beam while its action or recovery is still active, but v3 does not invent a one-use-per-jump lock that stock Ryu lacks. The actual meter bug was different: v2's borrowed attack row awarded Gold gauge on the beam's own hits. Historical v3 spent one level per activation and gave the shooter zero meter back on hit, block or whiff while preserving the defender's stock meter behavior. Current Combined v3 replaces that old balance: Gold requires and spends exactly two levels.

Fix the refund at the return path, not in the damage table

Simply changing HIT TEST Shc would affect every stock user of the borrowed rows. V3 instead interposes at the common hyper-gauge adder $1CD1E and checks the caller that is returning into it. The custom Gold path is suppressed only for the subtype-$04 hit return at $1CCAE and the subtype-$02 guard return at $1CD16; both must also trace back to the marked Gold-owned class-$B4 family. The defender route at $1CC2A is never redirected. Ordinary attacks, native Onslaught and the victim's gauge therefore keep using the stock adder.

Scope the meter repair to the custom shooter's return
Drawing the diagram…
The shared adder remains stock unless a marked Gold B4 hit or guard return tries to credit its owner.

That historical v3 gate was tested three ways because “one level spent” alone was not enough. A whiff ended one level lower; a hit ended one level lower; a guard ended one level lower. The defender received the same gauge as the stock control. This separates activation cost from post-contact reward and makes the rule reusable for any future borrowed boss attack.

Status line: v2 is a defect oracle, not a download

The first screenshots below establish the stock donor and its native object family. The later left/right captures document the superseded Gold War Machine build, not final visual acceptance. The 1,214-byte v2 ledger remains only as a fingerprint for identifying the withdrawn hip-origin build. V3's frozen 1,478-byte behavior ledger and final player-package identities supersede it.

First, name the two things correctly

Gold War Machine is not “ordinary War Machine with whatever palette happens to be loaded” at the point where code should be gated. The two share art and much of a dispatcher family, but the engine keeps distinct playable identities:

FighterInternal idThis patch may change it?
Ordinary War Machine$02No
Gold War Machine$28Yes, only in the air and only on the new command
First-form Onslaught$22No playable change; native effect donor only

That one comparison must sit in front of the command recognizer, the new fighter state and every object exception. Testing the gold palette on screen is not enough; the live gate must read fighter id $28. A control run with id $02 must remain byte-for-byte on War Machine's stock routes.

Published move lists call the requested first-form attack Mega Optic Blast. The executable does not contain or display an ASCII MEGA OPTIC BLAST label; it identifies the move numerically as e6=$0A and structurally through its class-$B4 family. Its fire event creates a subtype-$06 root, which grows subtype-$00, $02 and $04 pieces. It is not the e6=$06 lunge/fragment action we first mistook for the donor, and it is not a separate second-form Giant Onslaught sequence. In this post, “Mega Optic Blast” is established guide/community nomenclature tied to the proven numeric route, not a title card added by the patch or a readable string found in the ROM.

Resolve the request before touching a hook
Drawing the diagram…
Character identity chooses the recipient; Onslaught form and action choose the donor.

Follow the boss, not the screenshot

First-form Onslaught's special dispatch cluster begins at $26F78. Action e6=$0A routes to handler $277BE. The event body begins at $2784E, advances the phase, sets hold timer +$4E=$00A0, then tail-jumps from $27858 to $A546E. That allocator creates the native class-$B4, subtype-$06 root. The root is the entry to a linked $00 / $02 / $04 segment family, not a stream of independent class-$68 fragments.

There is one less obvious dependency. Stock class-$B4 expects an Onslaught $22 parent showing animation group $02, sub $2C. That animation is the boss body/charge presentation wrapped around the effect. Gold War Machine is supposed to keep his airborne MP pose, so the mod omits Onslaught's body and charge art—but it cannot omit the contract silently. A custom admission path must be limited to a privately marked Gold-owned root. Gold War Machine himself stays $28 at all times; donor identity is written directly to the beam objects at their native subtype initializer tails.

The useful donor trail is compact:

Stock systemAddress / valueWhat it owns
Onslaught special dispatch$26F78, e6=$0ASelects the attack published guides call Mega Optic Blast
Onslaught parent handler$277BEOwns the native boss action
Native fire eventbody $2784E; tail JMP $A546E at $27858Enters the effect root allocator
Native root spawner$A546EAllocates class-$B4, subtype $06
Native beam family$B4: $06$00 / $02 / $04Builds the complete linked blast
Effect palette sources$1CBDE4, $1CBE04Class-$B4 beam rows
Stock parent animationgroup $02, sub $2COnslaught body/charge omitted by this design
Object-local donor identity+$52=$0022Onslaught identity stamped on beam objects, never on Gold
Stock first-form Onslaught Mega Optic Blast beginning in Marvel vs. Capcom
Stock donor trace // class-$B4 subtype-$06 root begins
Stock first-form Onslaught Mega Optic Blast active across the stage
Stock donor trace // native beam and column geometry
First-form Onslaught firing the large beam from his torso in a gameplay reference capture
Presentation reference // Onslaught's boss-scale body explains why the same native muzzle reads differently on Gold War Machine

This is the opposite of a sprite-import problem. The target ROM already contains the art, palette, object allocator, animation schedule and collision behavior. The missing work is permission: admit one privately marked Gold-owned root to the stock class-$B4 family without weakening the same checks for every other object in the match or temporarily changing the fighter's identity.

These two frames remain stock Onslaught donor references. They are not class-$68 candidate captures and they are not the patched fighter proof; the frozen left/right Gold War Machine captures appear below and are tied to the release payload by the evidence ledger.

The first donor map was wrong—and the picture caught it

The original candidate labeled e6=$06, handler $27522 and class-$68 as Mega Optic Blast. Static control flow made that route look plausible, but the live result produced the wrong lunge/fragment imagery. Matching an object id and surviving several frames did not make it the requested beam. Comparing the render against Onslaught's actual blast sent the trace back to the dispatcher and exposed e6=$0A / class-$B4 as the real lineage. Nothing built on the rejected mapping is being represented here as a release.

How one beam object summons the rest

The native beam does not allocate six columns from one fixed “draw this move” table. It is a small object network driven by events and counters:

  1. $A546E allocates one class-$B4, subtype-$06 root and links owner +$54 to the fighter.
  2. The root's animation event at $A5AE2 calls $A5488.
  3. $A5488 reserves two objects and creates the linked subtype-$00 body emitter and subtype-$02 tip; the tip points back to the body through +$58.
  4. Subtype $00 initializes its timer to $6000. It emits one subtype-$04 middle/tail piece immediately, then $A5650..$A565C emits another every three eligible updates through $A54D4.
  5. Timer underflow, animation completion, off-screen rules, interruption or allocation failure ends the family through the native free paths.
Mega Optic Blast is an event-driven class-B4 object family
Drawing the diagram…
The root creates a linked body and tip; the body emits short-lived middle pieces over time, so lifetime allocations exceed the simultaneous object peak.

The $60 high-byte timer permits 33 subtype-$04 allocation attempts. Including the root, body and tip, the theoretical lifetime is 36 allocations, not 36 simultaneous objects. The accepted fixtures peak at six or seven live $B4 objects because older tail pieces retire while new ones are emitted. This is how the game “knows how many”: an explicit counter and event schedule, not the number of beam sprites and not a global projectile preload.

Every marked damaging descendant is stamped with bank +$47=$04, id +$52=$22, hit-set +$68=$000FD7FC and shape table +$6C=$003A8800. Subtypes $00/$02/$04 begin on property row +$80=$34; subtype $00 periodically rearms row $35, and a $04 child can inherit its emitter's current row. Row $34 at $000F78D2 displays Dmg=$06, Piy=$00, Sto=$08, Snd=$00, Slp=$0F, Shc=$04, Grd=$00, Mut=$0000; row $35 at $000F78F2 displays the same fields except Shc=$05. Their other differences live in bytes HIT TEST does not show, so I do not invent names for them. Snd does not mean sound—it is the standing hit-stun countdown. The subtype-6 event posts projectile cue $0450 separately after the linked pair is created.

The same Hit Test columns apply to the beam

Capcom's developer menu labels the 32-byte property record Dmg Piy Sto Snd Slp Shc Grd Mut. The Magnetic Shockwave construction ledger shows real Roll, Hulk and 10 ROCK MAN captures and the complete byte layout. The operational meaning is the same for Onslaught's row $34:

Real Marvel vs. Capcom developer Hit Test grid for Hulk
Real framebuffer // $03 HULK · fighter id $06
Real Marvel vs. Capcom developer Hit Test grid for Rock Man Mega Man
Real framebuffer // $10 ROCK MAN · fighter id $20
FieldOffsetConsumer-backed meaning
Dmg+$00.BBase life damage before scaling
Piy+$06.BPiyo/dizzy reserve drain
Sto+$07.BHit-stop ticks
Snd+$08.BStanding hit-stun ticks; not audio
Slp+$09.BSleep/knockdown/down-time budget
Shc+$10.BHyper-gauge charge parameter
Grd+$18.BGuard-stun override
Mut+$1A.WLow-six-bit multi-hit rehit-vulnerability window; not invulnerability

00 Dachi is a different developer-menu artifact: Capcom's shipped name for internal id $00, apparently a large standing/template scaffold rather than a finished secret fighter. It is not the meaning of Snd, and its animation tree is not this property table. Experiments that replace a Dachi branch and alter an assist are evidence of a reused helper route, but not proof that every assist literally has id zero; each helper still needs its own allocator, owner, donor identity, palette, collision, sound and lifetime.

This also answers why copying beam pictures or Cajun Explosion pictures into another animation can produce art with no damage. Collision belongs to a live object carrying the correct class/subtype, owner, donor identity, hit-set, shape table, property row and active flags. Audio is a separate event. Nothing is missing because it was not loaded at boot; the runtime initializer contract was never created.

One motion, two altitude contracts

Gold War Machine's ground QCF + two punches already belongs to Proton Cannon. That route must stay exactly where it is. The new recognizer exists only in the airborne command chain and runs after the stock air hypers and specials have had first refusal.

SituationInputExpected result
Gold War Machine on groundQCF + any 2PStock Proton Cannon
Gold War Machine in a normal jumphistorical v3: QCF + any 2P, one levelMega Optic Blast
Gold War Machine in a true down-up super jumphistorical v3: QCF + any 2P, one levelMega Optic Blast
Gold War Machine airborneMP without the commandStock air medium punch
Gold War Machine airborneQCF + one punchReject; do not spend meter
Gold War Machine airborneQCB + any 2PReject; direction is not interchangeable
Ordinary War Machine airborneQCF + any 2PStock behavior; never the new action
Gold War Machine airborneQCF + any 2P, zero levelsReject without entering the new action

The “use air MP” request describes presentation, not a replacement normal. The parent state enters Gold War Machine's stock airborne medium-punch chain—animation group $18, sub $02—and lets its twelve observed records continue through wind-up, discharge and recovery. The normal class-$1C plasma allocation is rejected only when Gold's private super marker is live. The body attack fields are zero during that state, so a chest flash or pose cannot become a second invisible hitbox. With no matching QCF+2P record, plain air MP still creates its normal plasma and follows the stock route.

Why calling the stock spawner is not enough

The native class-$B4 family defends its assumptions. Its root follows +$54 to the parent and expects fighter id $22 plus animation $022C: group $02, sub $2C. Calling $A546E directly from Gold War Machine $28 therefore does not recreate the boss context. Globally removing that check would be worse—it would loosen the contract for every stock $B4 object in the match.

The subtype chain also copies donor-owned graphics and collision identity at several initializer tails. Fixing only the $06 root is insufficient because $00, $02 and $04 descendants can inherit Gold War Machine fields and render the wrong art. The release therefore uses narrow hooks for each native subtype, and every one must distinguish the marked custom lineage from stock Onslaught objects.

V3 keeps the correction object-local and explicit. At each marked $B4 subtype initializer tail, the payload stamps +$47=$04, +$52=$0022, +$68=$000FD7FC and +$6C=$003A8800 directly on that effect object. It never writes $22 into Gold War Machine, not even for one instruction window. The v2 formula was measured from the fighter root rather than the rendered chest plate, which is why real play showed the cap around Gold's side/hip. V3 instead uses two measured body records: sub $06 attaches forward +20, Y −82; sub $00 attaches forward +21, Y −81. “Forward” is evaluated after facing, so the art and collision roots mirror together. Gold's own X/Y remains untouched.

The release design keeps those defenses intact for stock objects and creates a narrow exception:

Gold remains the owner; Onslaught remains the beam identity
Drawing the diagram…
Private provenance admits only this B4 chain while stock Onslaught keeps the ordinary group-2/sub-$2C branch.

Gold War Machine remains the real parent and owner for scope and cleanup. The effect roots and descendants receive Onslaught's object-local art identity where the rendering tree expects it. The exception therefore requires the object class, private marker, Gold owner id and owner marker together. Native Onslaught follows the unaltered $022C stock branch; unrelated class-$B4 allocations cannot enter the custom one.

The palette has the same lifetime trap found during the Magnetic Shockwave restoration, but not the same legal solution. Mega Man's frozen patch could lease a writable character source workspace. Gold War Machine's +$2C8 instead points into immutable program ROM. The rejected draft tried to treat that address as writable; CPS-2 ignores those writes, so any apparently correct first frame was really depending on later native class-$B4 palette updates. There was nothing valid to back up or restore at that ROM address.

The 1,214-byte v2 payload therefore leases the writable runtime destinations directly: row +$20 under the primary pointer at +$288, and row +$20 under the secondary pointer at +$28C. It copies the donor's 12-bit colors from $1CBDE4 while preserving the CPS-2 tag nibble required by each destination: the primary row retains its existing high tags, and the secondary row receives the stock $F high tags. The adjacent $1CBE04 row remains part of the native class-$B4 cycling path; it is not misrepresented as a writable Gold source.

A direct runtime repaint would still lose a race with a later common base-palette reload. V3 keeps the scoped interpose at $A4C6, reproduces the displaced $A4B0 copy/busy behavior, and reapplies the optic row only when all of these are true: fighter id $28, state b0=$2A, action e6=$1A, and provenance byte +$1CE=$A5. Fighter byte +$1CF records that the global palette writer was busy; when it clears, the active lease is repainted once instead of advancing through a partially written row.

Cleanup reverses that ordering deliberately. It clears +$1CE provenance and the +$1CF busy latch before calling stock $A4B0. The common reload reconstructs Gold War Machine's current base and alternate runtime rows, while the scoped $A4C6 wrapper sees no $A5 marker and therefore does not repaint Onslaught colors. V3 requalifies those palette-lifetime mechanics in the dense contact and interruption matrix. The same traces rule out the shared-row lifetime as the source of the apparent cutout: the shape persists with correct palette rows because it belongs to the native subtype-$04 display lists.

Runtime palette lease without writing Gold War Machine's ROM source
Drawing the diagram…
V3 paints only writable +$288/+$28C rows, survives the contact matrix and clears provenance before stock cleanup.

The “cutout square” is native beam composition

The alarming screenshot is not a corrupt sprite decode, checkerboard palette failure, stage hole or hit spark. The giant pink honeycomb body, white center and layered cyan/purple cap are genuine first-form Onslaught class-$B4 art. A clean stock boss capture produces the same shapes and colors. The difference is context: boss-scale pieces now surround a human-sized airborne fighter, so their overlap reads like a square missing from the beam.

The reusable answer came from tracing the renderer instead of guessing at screenshots. $494A enqueues six-byte (layer word, object long) pairs into $FFE080..$FFE588, with the count at $FFE07E. Consumer $24BD0 walks that queue backward; $24C3A reads the selected object's +$40 sprite-list pointer. On the marked frame, the custom family contributes one subtype-$00 muzzle list at $322A62 and repeated subtype-$04 lists. Active list $322AC4 and its alternate $322D2A both keep the rounded cap. The shape is the combined result of multiple stock pieces, not one bad rectangle that can simply be hidden.

The controlled removals also establish the safety boundary:

Render experimentWhat happenedDecision
Suppress subtype $00Removes the muzzle layer, not the rounded capReject
Suppress one subtype $04Removes a successive 64-pixel body/oval slice while its collision remains liveReject: invisible damage
Substitute terminal $322BCA/$322C26/$322C62/$322CA6 listsKeeps collision but creates narrow rectangular gapsReject
Keep active $322AC4/$322D2APreserves native art, collision, damage and cleanupAccepted stock-only result

That gives future character work a repeatable draw-queue method:

  1. capture the exact objectionable frame, not merely the move's action number;
  2. record every queue pair, owner, class, subtype and +$40 display-list pointer before the consumer draws it;
  3. suppress one marked draw at a time in a research-only ROM and compare the framebuffer;
  4. keep collision overlays and damage logs running during every visual suppression; and
  5. remove the research interpose before freezing the release.

This distinguishes a background seam from a composite object and prevents a “cleaner” screenshot from silently shipping an invisible hitbox.

There is therefore no safe correction available under the project's constraints. Removing the shape would require a custom same-count display list or new graphics composition, which is a separate art project. This release does not expand the ROM, import another game's sprites or ship an invisible damaging segment. V3 transparently keeps the native donor cap as a known visual limitation. The temporary $24C3A research interpose used to prove the lists is not present in the release payload.

Origin trialWhat the live gate foundDecision
Native boss originCorrect Onslaught geometry, visibly detached from the human-sized fighterReject for Gold
v1 +16Improved over the boss origin, but was not measured against the rendered chestSuperseded
v2 −64Mechanical damage and cleanup passed, but real play shows hip origin, frozen body choreography and a contact squareReject
v3 measured anchorNative air-MP body without its plasma child; mirrored +20/−82 and +21/−81 chest attachment with native cap documentedAccept
The placement sweep treated presentation and collision as one contract
Drawing the diagram…
The visual review rejected fixed fighter-root offsets; v3 measures the rendered chest and keeps collision and native donor art together.

The withdrawn captures explain why v3 exists

These are not donor frames or a forced debug state. Each image came from an ordinary-input v2 run, and the right/left reversal proved the family could mirror and clean up. They are retained as superseded engineering evidence. They did not prove a chest attachment, moving body choreography, clean contact art or visually aligned collision.

Gold War Machine airborne on the left firing Onslaught's full Mega Optic Blast to the right
withdrawn v2 // right-facing B4 family, not chest-origin acceptance
Gold War Machine airborne on the right firing Onslaught's full Mega Optic Blast to the left
withdrawn v2 // mirrored B4 family, not final visual proof
Withdrawn-run measureResultWhat it established
historical one-level commit3→2debited exactly once at the startup event
fixture damage42–45pair/timing dependent; right/left visual fixtures ended at 101/102 from 144
live B4 objects6–7one native subtype 0/2/4/6 family
visual contractREJECThip origin, frozen body and blank-square contact remained

Each family cleaned up its object ownership, runtime palette lease, $A5 provenance and +$1CF busy latch. That remains valuable lifecycle evidence. V3 preserves it and adds the missing body, chest, meter-return and contact proof in ordinary and true super jumps.

Frozen v3 Gold War Machine startup with the measured chest anchor marked
Frozen v3 // native air-MP body and measured chest anchor before B4 discharge
Frozen v3 Gold War Machine firing the full Onslaught beam to the right
Frozen v3 // right-facing full family; ordinary plasma suppressed
Frozen v3 Gold War Machine firing the full Onslaught beam to the left
Frozen v3 // mirrored chest attachment and native B4 presentation
Frozen v3 Mega Optic Blast contacting an airborne Spider-Man
Dense contact proof // airborne target, damage and cleanup lane
Frozen v3 Mega Optic Blast being blocked by Spider-Man
Dense guard proof // zero shooter refund; defender gauge remains stock
Historical frozen-v3 measureResultNote
dense contact lanes18/18both facings, normal and true super jumps, hit and guard coverage
interrupt lanes4/4no orphan B4 family, palette lease or stale provenance
startup chest anchor+20/−82sub $06; mirrors by facing before the body advances
sustain chest anchor+21/−81sub $00; native group-$18/sub-$02 choreography continues
shooter refund0hit, block and whiff; defender gauge remains stock
body attack metadata0only the native class-$B4 family deals damage

How the address map becomes the patch

The full CPS-2 hex workflow applies here too. The Gold build is a useful second example because the donor and recipient share neither a safe parent identity nor a writable palette source:

  1. verify the exact clean archive and construct the logical 68000 view;
  2. trace e6=$0A$277BE → event body $2784E → tail jump $27858 → allocator $A546E;
  3. map every $B4/$06/$00/$02/$04 initializer, identity field, palette consumer and free path;
  4. add an airborne command record and Gold-only parent state in an all-$FF park at $3F2000;
  5. interpose only the eleven exact sites whose stock preimages match, including the full eight-byte common-palette hook at $A4C6;
  6. encrypt only the changed opcode words for the canonical encrypted-Euro mvsc parent, then word-swap and split them back into their original members; and
  7. accept the result only after real-input normal/super-jump, meter, both-facing, close-range, palette-busy, interruption, pool-failure, native-Onslaught and ordinary-War-Machine controls.

That is what “hex editing a move onto another character” means in a release build. The visible hook bytes are the smallest part. Most of the work is proving which state owns the objects and that every rejection and cleanup route remains stock. The published installer contains the custom payload, preimage assertions and hashes—not Capcom ROM data.

This architecture suggests a Mega Corridor; it does not ship one

Reusing one vertical pillar from second-form Onslaught with Captain Commando's Corridor startup is plausible without importing art, and the donor is now traced: second-form e6=$08 reaches $0685D8; its event calls $0962F8 with d0=$0400, allocating class-$28, subtype-$04, whose handler is $096750. One stock pillar is itself a recursive chain—seven active segments plus a terminal sentinel—so a wrapper must make exactly one root call and preserve that internal chain, not suppress the children that construct the pillar. Its row $3D is boss-scale (Dmg=$26, Sto=$0A, Slp=$0A, Shc=$3C) and needs deliberate rebalance; an explicit sound id has not been proven.

Making an attack a super does not automatically grant even one invulnerable frame. Invulnerability has to be authored explicitly through the fighter's hurtbox/state flags and verified frame by frame. The requested one or two post-freeze invulnerable updates belong on Captain's real hurtbox gate. HIT TEST Mut is not that gate; it opens a victim to repeat hits. The proposed standing-heavy-kick → custom super → Captain Sword route remains a combo design to test, not a result claimed by this Gold War Machine release.

What the v3 harness proves

The v3 verifier drives the ordinary matcher, watches the full object family and deliberately disturbs the lifetime edges that broke earlier candidates. Every lane starts in a fresh emulator process, and every pass is tied to a checksummed evidence file rather than a summary label alone.

GateFrozen v3 result
Fresh-process base matrixPASS; 16 Gold lanes plus two controls boot separately so temporary parser state cannot contaminate the next case
LP+MP, LP+HP and MP+HPPASS through real input in normal and true down-up super jumps; same action and one-time debit
Existing airborne hook selectionPASS A/B control; $02896A is live for both jump types and $028A00 is not patched
Zero meterPASS; no custom action and no root allocation
Ground QCF+2P / plain air MPPASS; Proton Cannon and the normal remain stock
Ordinary War Machine id $02PASS on ground and in air; never enters the Gold route
Body choreographyPASS; group $18 / sub $02 continues through all 12 observed records; body attack metadata stays zero
Plasma ownershipPASS; class $1C is suppressed only inside the marked custom action; plain air MP still creates it
Measured chest originPASS; sub $06 uses forward +20, Y −82; sub $00 uses forward +21, Y −81; both mirror
Dense contact matrixPASS 18/18; contact, facing, jump-state, hit/guard, object, palette and cleanup evidence retained
Shooter meter returnsPASS; zero refund on hit, block and whiff; defender gauge path remains stock
Repeat timingPASS; active/recovery retrigger rejects; a later activation after full recovery follows stock Ryu timing
Palette source and runtime rowsPASS; immutable +$2C8 unchanged, both writable rows keep correct RGB12 and CPS-2 tags
Real $A4B0 reloadPASS with the scoped $A4C6 wrapper
Busy writer plus two repeatsPASS; repaint is bounded and every lease/latch clears
Four interruption lanesPASS 4/4; no orphan family, palette lease or stale provenance
Forced allocator carryPASS; the dedicated pool stub is hit once, returns carry, creates zero $B4 objects, exits promptly and leaves lease/latch bytes at zero
HP+HK team commandPASS; cleanup does not steal the stock team route
Native Onslaught differentialPASS; object/contact logs are byte-identical and 109/110 adjacent framebuffers match. The reproducible k261 delta is a one-frame stage/UI palette phase; beam/object state remains identical and the evidence preserves the difference mask.
Supported baseCanonical 21-member encrypted-Euro mvsc; Phoenix clone fixtures fail closed and are not advertised

One negative test is supposed to fail. The harness removes only the $A4C6 wrapper and triggers a real $A4B0 reload during the beam's first update; the palette mismatch then appears exactly where predicted. Restoring the hook makes the otherwise identical run pass. That controlled failure is evidence that the wrapper fixes the palette lifetime, rather than a release failure hidden by the suite.

The historical v3 answer was yes with at least one level. In current Combined v3, select Gold War Machine, enter an ordinary jump or a true down-up super jump, then perform QCF + any two punch buttons with two levels. He continues through the native air-MP body choreography and fires Onslaught's class-$B4 Mega Optic Blast from the measured chest anchor. Ground QCF+2P remains Proton Cannon; plain air MP and ordinary War Machine stay stock. The apparent contact cutout remains because it is native donor composition and no safe stock-only substitute preserved both presentation and collision.


Public corroboration: the Marvel vs. Capcom mini-FAQ lists first-form Onslaught's QCF+two-punch move as Mega Optic Blast and separates it from the second-form move list. The corrected e6 value, handler, fire event, object-class/subtype lineage, parent-animation prerequisite and palette sources in this construction ledger come from local disassembly and visual validation against the verified arcade program.

Written by Daniel Plas Rivera · 9,529 words · $23

ShareXLinkedIn