From 7969c2e6ad8c2a5f70ddbb3a30c632ac14c58c06 Mon Sep 17 00:00:00 2001 From: Erik Date: Thu, 3 Sep 2026 06:40:35 +0200 Subject: [PATCH] tools(walk-oracle): parts capture guards null part-array slots (cdb aborted the PD/DM action on a null gfxobj) Co-Authored-By: Claude Fable 5.1 --- tools/walk-oracle/oh/oh-capture-parts.cdb.template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/walk-oracle/oh/oh-capture-parts.cdb.template b/tools/walk-oracle/oh/oh-capture-parts.cdb.template index dbd2304e..34d54ad6 100644 --- a/tools/walk-oracle/oh/oh-capture-parts.cdb.template +++ b/tools/walk-oracle/oh/oh-capture-parts.cdb.template @@ -103,8 +103,8 @@ r $t0 = 0 r $t5 = 0 bp 00453aa0 "r $t0 = @$t0 + 1; .printf \"F %d\\n\", @$t0; .printf \"P %08x %08x %08x %08x %08x %08x %08x %08x\\n\", poi(0081ef00+4), poi(0081ef00+0x3c), poi(0081ef00+0x40), poi(0081ef00+0x44), poi(0081ef00+8), poi(0081ef00+0xc), poi(0081ef00+0x10), poi(0081ef00+0x14); .if (@$t0 < 0n) { gc }" bp 005a07a0 "r $t5 = poi(@esp+4); gc" -bp 0050d7a0 "r $t6 = poi(poi(@ecx+0x20) + poi(@ecx+0x14)*4); .printf \"PD gfx=%08x did=%08x force=%d cell=%08x\\n\", @$t6, poi(@$t6+0x28), poi(@esp+4), @$t5; gc" -bp 0059f360 "r $t7 = poi(@esp+4); .printf \"DM gfx=%08x did=%08x force=%d bound=%d cell=%08x\\n\", @$t7, poi(@$t7+0x28), by(@esp+8), poi(@esp+0xc), @$t5; gc" +bp 0050d7a0 "r $t6 = poi(poi(@ecx+0x20) + poi(@ecx+0x14)*4); .if (@$t6 != 0) { .printf \"PD gfx=%08x did=%08x force=%d cell=%08x\\n\", @$t6, poi(@$t6+0x28), poi(@esp+4), @$t5 } .else { .printf \"PD gfx=00000000 did=00000000 force=%d cell=%08x\\n\", poi(@esp+4), @$t5 }; gc" +bp 0059f360 "r $t7 = poi(@esp+4); .if (@$t7 != 0) { .printf \"DM gfx=%08x did=%08x force=%d bound=%d cell=%08x\\n\", @$t7, poi(@$t7+0x28), by(@esp+8), poi(@esp+0xc), @$t5 } .else { .printf \"DM gfx=00000000 did=00000000 force=%d bound=%d cell=%08x\\n\", by(@esp+8), poi(@esp+0xc), @$t5 }; gc" g .echo ===DETACHING=== qd