Skip to content

Commit b1e3c61

Browse files
dancinlifedancinlifeclaude
authored
docs: session-close cleanup โ€” collapse E5 round history + retire manjeom=0/Blacksmith drift (#38)
ARCHITECTURE.json blocking-frontiers: ๋ผ์šด๋“œ๋ณ„ ์ธก์ • ๋…ธ๋“œ 6๊ฐœ(r5/r7-r9/r10/r11/r12/ ๊ฒŒ์ดํŠธ์žฌ๋ถ„๋ฅ˜)๋ฅผ ํ˜„์žฌ์ƒํƒœ 3๋…ธ๋“œ(์‚ฌ๋‹ค๋ฆฌ ํ—ค๋“œ๋ผ์ธ + ์ฆ๋ช…๋œ E5 ํŒŒ์ดํ”„๋ผ์ธ + open ์ƒ์—…๊ฒŒ์ž„ ํ”„๋ก ํ‹ฐ์–ด)๋กœ collapse โ€” changelog์‹ ๋ˆ„์ ์€ single-doc ์œ„๋ฐ˜(์ด๋ ฅ์€ CHANGELOG+git+memory). ์˜› 'Blacksmith CI ๊ฒŒ์ดํŠธ'ยท'validated_manjeom ์—ฌ์ „ํžˆ 0' ์„œ์ˆ  ์ œ๊ฑฐ. CLAUDE.md: header validated_manjeom=0 โ†’ pipeline proven(์ธํ”„๋ผ)ยทStructure tree Blacksmith โ†’ github-hosted. Co-authored-by: dancinlife <mk55911@proton.me> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 6285066 commit b1e3c61

2 files changed

Lines changed: 12 additions & 27 deletions

File tree

โ€ŽARCHITECTURE.jsonโ€Ž

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -23,36 +23,20 @@
2323
"summary": "Skeleton-tier loaders/perf compile + probe; the PEโ†’D3D11โ†’Metal pipeline is proven end-to-end with a self-authored own1 D3D11 PE (r12, pixel-readback verified) = validated_manjeom first_own1_authored_d3d11_pe_to_metal_frame (infrastructure milestone). NO commercial game frame evidenced yet (real game = full Win32/D3D11 surface + real assets + real PE)."
2424
},
2525
{
26-
"name": "๐Ÿšง blocking-frontiers โ€” validated_manjeom>0 ๊ฒฝ๋กœ (fleet-lab SSOT)",
27-
"summary": "validated_manjeom=0(์‹ค ๊ฒŒ์ž„ ํ”„๋ ˆ์ž„ ๋ฏธ์ฆ๋ช…) ๋ŒํŒŒ์˜ ๋ช…๋ช…๋œ ์‚ฌ๋‹ค๋ฆฌ = native E-series (docs/CLOSURE_ROADMAP.md ยง5). fleet-lab F-NSWINDOW-E5 ๊ฐ€ ์ถ”์ . ๊ฐ ๋ผ์šด๋“œ measured ๊ฒฐ๊ณผ๋ฅผ ์—ฌ๊ธฐ update-in-place ๋ฐ•์ œ โ†’ ์ฐจ์„ธ์…˜ research ๊ฐ€ ํฉ์–ด์ง„ ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์‹  ํ•œ ๊ณณ์—์„œ ํ‘œ์ ์„ ๋ณธ๋‹ค.",
26+
"name": "๐Ÿšง frontiers โ€” E5 ์ธํ”„๋ผ โœ… proven / ์ƒ์—… ๊ฒŒ์ž„ โฌœ open",
27+
"summary": "validated_manjeom ์‚ฌ๋‹ค๋ฆฌ(docs/CLOSURE_ROADMAP.md ยง5)์˜ ํ˜„์žฌ์ƒํƒœ SSOT. E5 ์ธํ”„๋ผ ํŒŒ์ดํ”„๋ผ์ธ(PEโ†’i386 ์ธํ„ฐํ”„๋ฆฌํ„ฐโ†’IAT autobindโ†’D3D11โ†’Metalโ†’readback)์€ r10โ€“r12๋กœ ์ฆ๋ช… ์™„๋ฃŒ(์ž์ž‘ own1 PE ๊ธฐ์ค€). ์ƒ์—… ๊ฒŒ์ž„ ํ”„๋ ˆ์ž„์€ ๋ฏธ์ฆ๋ช…(open). ๋ผ์šด๋“œ๋ณ„ ์ธก์ • ์ด๋ ฅ์€ CHANGELOG+git+memory(project_gamebox_e3_frontier).",
2828
"children": [
2929
{
3030
"name": "F-NSWINDOW-E5 โ€” E1โœ… E2โœ… E3โœ… E4โœ…(IAT name-autobind) E5โœ…(r12: PEโ†’D3D11โ†’Metal ์ธํ”„๋ผ ๋งˆ์ผ์Šคํ†ค)",
3131
"summary": "validated_manjeom ์‚ฌ๋‹ค๋ฆฌ(docs/CLOSURE_ROADMAP.md ยง5). E1 PE-parse+mmap doneยทE2 i386 ๋””์ฝ”๋” doneยทE3 i386 ์ธํ„ฐํ”„๋ฆฌํ„ฐ done(์‹ค game-binary EXECUTE)ยทE4 kernel32 IAT name-autobind done(ํ•ฉ์„ฑ prologue CRTโ†’user-entry handoffยทinsns=60ยทK32 13ยทIAT name-autobind)ยทE5 r10-r12 ์™„๋ฃŒ: r10 ํ—ค๋“œ๋ฆฌ์Šค Metal ์˜คํ”„์Šคํฌ๋ฆฐ ๋ Œ๋”+readback PASSยทr11 D3D11โ†’Metal ๋ธŒ๋ฆฌ์ง€ ๋„ค์ดํ‹ฐ๋ธŒ PASSยทr12 PEโ†’D3D11โ†’Metal end-to-end PASS(insns=11 imports=7 px_clear=0x0000FFFF px_triangle=0xFF0000FF nonuniform=1). validated_manjeom=first_own1_authored_d3d11_pe_to_metal_frame(์ธํ”„๋ผ ๋งˆ์ผ์Šคํ†คยท์ƒ์—… ๊ฒŒ์ž„ ์•„๋‹˜). ๋‹ค์Œ: ์ƒ์—… ๊ฒŒ์ž„ ๋ฐฉํ–ฅ โ€” Win32 API ์„œํ”ผ์Šค ํ™•์žฅยทopcode ์ปค๋ฒ„๋ฆฌ์ง€ยทvtable [reg+offset] ๊ฐ„์ ‘ callยท์‹ค ๊ฒŒ์ž„ PE IAT ์ถ”์ ."
3232
},
3333
{
34-
"name": "E4 r5 measured (2026-06-26ยท#19/24/25/26 merged) โ€” 18๋ช…๋ น ์‹คํ–‰ยทkernel32 5 import ๋ฐ”์ธ๋”ฉ",
35-
"summary": "native/i386_cpu.c ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ ์‹ค __scrt_common_main prologue 18๋ช…๋ น ์‹คํ–‰. import-stub registry 5์—”ํŠธ๋ฆฌ ๋ฐ”์ธ๋”ฉ(GetCurrentThreadIdยทGetCurrentProcessIdยทGetTickCountยทGetSystemTimeAsFileTime[๋ฒ„ํผ์“ฐ๊ธฐ shimยทLPFILETIME 8B mem_write]ยทQueryPerformanceCounter). ๋””์ฝ”๋” group-1 imm+mov r/m imm+byte mov+test+and/or+shift(0xC1/D1/D3) ์ปค๋ฒ„(C+i386_decode.hexa RUNEQ byte-eq). EFLAGS(CF/PF/AF/ZF/SF/OF) ๋ชจ๋ธ. ์ธก์ •: insns 1(r2)โ†’9(r3)โ†’11(r4)โ†’**18(r5)**ยทhalt@0x5392A1=unbound IAT slot 0x538014. Blacksmith CI ๊ฒŒ์ดํŠธ(i386_cpu_test PASSยทci.yml native step). own1: ๋กœ๋”๊ฐ€ ์ž๊ธฐ import ๋ฐ”์ธ๋”ฉ=๋กœ๋”ฉ(๋ฐ”์ดํŒจ์Šค ์•„๋‹˜)ยทkernel32=OS APIยทWine/QEMU 0. โš ๏ธ validated_manjeom ์—ฌ์ „ํžˆ 0(๋กœ๋” ์ง„์ฒ™ยทํ”„๋ ˆ์ž„ ์•„๋‹˜ยทE5๊ฐ€ ํ”„๋ ˆ์ž„)."
34+
"name": "E5 ์ธํ”„๋ผ ํŒŒ์ดํ”„๋ผ์ธ (proven ยท CI ๊ฒ€์ฆ) โ€” PEโ†’interpโ†’autobindโ†’D3D11โ†’Metalโ†’readback",
35+
"summary": "๋ ˆ์ด์–ด: โ‘  ์ž์ž‘ own1 i386 PE(d3d11.dll importยทnative/fixtures) โ†’ โ‘ก native/i386_cpu.c i386 ์ธํ„ฐํ”„๋ฆฌํ„ฐ(decodeโ†’executeยทEFLAGSยทbyte-eq ํŠธ์œˆ native/i386_decode.hexa RUNEQ) โ†’ โ‘ข IAT name-based autobind(native/pe_parse.c import_dir + IMAGE_IMPORT_BY_NAME strcmp โ†’ shim ๋ ˆ์ง€์ŠคํŠธ๋ฆฌยท๋ฏธ๋งค์นญ I386_HALT_UNBOUND_IMPORT) โ†’ โ‘ฃ native/d3d11_metal_bridge.m(D3D11-COM-ํ˜•์ƒ vtable โ†’ MTLDeviceยท์˜คํ”„์Šคํฌ๋ฆฐ 64ร—64 BGRA8ยท์ธ๋ผ์ธ MSL PSO) โ†’ โ‘ค Apple Metal ํ—ค๋“œ๋ฆฌ์Šค ๋ Œ๋” โ†’ โ‘ฅ [MTLTexture getBytes:] readback. ์ธก์ •(native/e5_end_to_end_test.c): __E5__ PASS pe_executed=1 frame_rendered=1 px_clear=0x0000FFFF px_triangle=0xFF0000FF nonuniform=1 insns=11 imports=7. validated_manjeom=first_own1_authored_d3d11_pe_to_metal_frame(์ธํ”„๋ผ ๋งˆ์ผ์Šคํ†คยท์ƒ์—… ๊ฒŒ์ž„ ์•„๋‹˜). own1: Wine/DXVK/d3d11.dll 0ยทDRM 0ยท๊ฒŒ์ž„์• ์…‹ 0. CI=github-hosted macos-15(PUBLIC repo ๋ฌด๋ฃŒ)."
3636
},
3737
{
38-
"name": "E4 r7โ€“r9 measured (2026-06-26ยท#29/#30/#31 merged) โ€” 60๋ช…๋ นยทuser-entry handoffยทIAT name-autobindยทCMPXCHG โœ…",
39-
"summary": "native/i386_cpu.c ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ ํ•ฉ์„ฑ __scrt_common_main prologue๋ฅผ r7 ๋ฒฝ(unbound IAT @0x539318, insns=44) ๋„ˆ๋จธ๋กœ ์ „์ง„ โ†’ CRT init ์ข…์  = `call WinMain` CRTโ†’user-entry handoff(i386_cpu_t.user_entry_va + I386_HALT_USER_ENTRY). ๋””์ฝ”๋”: 0F AF/69/6B IMULยท0F A2 CPUIDยท0F 31 RDTSC(r7) + 0F A3/AB/B3/BB BT/BTS/BTR/BTC(r8) โ€” C + i386_decode.hexa RUNEQ byte-eq. import: security cookie ์‚ฐ์ˆ  + GetCommandLineW(0x53802C)ยทSetUnhandledExceptionFilter(0x538030) ๋ฐ”์ธ๋”ฉ, K32 11โ†’13. ์ธก์ •: insns 44(r7)โ†’60(r8)ยทhalt@0x539400=user_entry(call). Blacksmith CI ๊ฒŒ์ดํŠธ(i386_cpu_test 25 checks PASSยท-Wall -Wextra -std=c11). real-PE ๊ฒฝ๋กœ i386_cpu_load_pe ๊ตฌ์กฐ์  ๋ฐฐ์„ ์™„๋ฃŒ(์„น์…˜+entry ๋งคํ•‘)ยท๋ฏธ์‹คํ–‰(IAT name-autobind ํ•„์š”). โš ๏ธ validated_manjeom ์—ฌ์ „ํžˆ 0(ํ•ฉ์„ฑ user-entryยท์‹ค ํ”„๋ ˆ์ž„ ์•„๋‹˜). **r9(#31)**: IAT **name-based autobind** ๊ตฌํ˜„ โ€” ์‹ค PE์˜ IAT๋ฅผ ํ•ฉ์„ฑ VA๊ฐ€ ์•„๋‹ˆ๋ผ import ์ด๋ฆ„์œผ๋กœ native shim์— ๋ฐ”์ธ๋”ฉ(pe_parse import_dir + IMAGE_IMPORT_BY_NAME walk + strcmp), ๋ฏธ๋งค์นญโ†’I386_HALT_UNBOUND_IMPORT+์ด๋ฆ„๊ธฐ๋ก. CMPXCHG 0F B0/B1 ๋””์ฝ”๋”+executor(RUNEQ). Run E: autobind total=3 bound=3 unbound=0ยทmini-run GetCurrentThreadId ์Šฌ๋กฏํ†ต๊ณผ(eax=0x1A2B). **์‹ค PE๊ฐ€ ์ฒซ import ๋„ˆ๋จธ ์‹คํ–‰ ๊ฐ€๋Šฅ = real-PE ๊ฒฝ๋กœ ๋ฐฐ์„  ์ง„์ „**. ๋‹ค์Œ r10 ํ‘œ์  = DXโ†’Metal ๋ธŒ๋ฆฌ์ง€(ํ—ค๋“œ๋ฆฌ์Šค Metal ์˜คํ”„์Šคํฌ๋ฆฐ readback smoke ๋จผ์ € CI ๊ฒ€์ฆ)."
40-
},
41-
{
42-
"name": "E5 r10 measured (2026-06-26ยท#32) โ€” ํ—ค๋“œ๋ฆฌ์Šค Metal ์˜คํ”„์Šคํฌ๋ฆฐ ๋ Œ๋”+readback ๋กœ์ปฌ PASS (์„œ๋ธŒ์ŠคํŠธ๋ ˆ์ดํŠธ ์ฆ๋ช…)",
43-
"summary": "native/metal_offscreen_smoke.m (ObjC+Metal+Foundation): 64ร—64 MTLPixelFormatBGRA8Unorm ์˜คํ”„์Šคํฌ๋ฆฐ ํ…์Šค์ฒ˜ยท์ธ๋ผ์ธ MSL(newLibraryWithSource:)ยทblue ํด๋ฆฌ์–ด+red ์‚ผ๊ฐํ˜• 1 ๋“œ๋กœ์šฐยทwaitUntilCompletedยทgetBytes readbackยทํ”ฝ์…€ ์–ด์„œ์…˜ (px_clear=0x0000FFFFยทpx_triangle=0xFF0000FFยทnonuniform=1). ๋กœ์ปฌ M4 ๊ฒฐ๊ณผ: __METAL_SMOKE__ PASS device=Apple M4. CI(blacksmith-6vcpu-macos-15ยท์‹ค Apple-SiliconยทGPU) ๊ฒฐ๊ณผ: ํ™•์ธ ์˜ˆ์ •(warn-only step). own1: ์ˆœ์ˆ˜ Apple MetalยทWine 0ยท๊ฒŒ์ž„ ์• ์…‹ 0. ์„œ๋ธŒ์ŠคํŠธ๋ ˆ์ดํŠธ ์ฆ๋ช… โ€” ๊ฒŒ์ž„ ํ”„๋ ˆ์ž„ ์•„๋‹˜ยทvalidated_manjeom=0. break-walls+verify-done: \"๋””์Šคํ”Œ๋ ˆ์ด ๋ถˆํ•„์š”ยทMetal ํ—ค๋“œ๋ฆฌ์Šค ๋ Œ๋” ๊ฐ€๋Šฅ\" ์–ด์„œ์…˜์„ ์‹คํ–‰ยทCI-๊ฒŒ์ดํŠธ ์‚ฌ์‹ค๋กœ ์ „ํ™˜. r11 ํ‘œ์ : D3D11 device/swapchain ์…ฐ์ž„ โ†’ Metal ์˜คํ”„์Šคํฌ๋ฆฐ ๊ฒฝ๋กœ ๋ฐฐ์„ ."
44-
},
45-
{
46-
"name": "E5 r11 measured (2026-06-26) โ€” D3D11โ†’Metal ๋ธŒ๋ฆฌ์ง€ ๋„ค์ดํ‹ฐ๋ธŒ ์ฆ๋ช… (๊ตฌํ˜„๋จยท๋ฏธ๋ฐฐ์„ )",
47-
"summary": "native/d3d11_metal_bridge.{h,m} (Cํ—ค๋”+ObjC+Metal+Foundation): D3D11-์ธํ„ฐํŽ˜์ด์Šค-ํ˜•์ƒ COM ์˜ค๋ธŒ์ ํŠธ(ID3D11DeviceยทID3D11DeviceContextยทIDXGISwapChainยทID3D11RenderTargetViewยทID3D11Texture2D) + ์ปดํŒฉํŠธ vtable(๊ตฌํ˜„ ๋ฉ”์„œ๋“œ๋งŒ; IUnknown ์Šคํ… [0-2] ํฌํ•จ). gamebox_D3D11CreateDeviceAndSwapChain โ†’ MTLDevice+์˜คํ”„์Šคํฌ๋ฆฐ 64ร—64 BGRA8 backBuffer+์ธ๋ผ์ธ MSL PSO. ClearRenderTargetView=loadAction:Clear ๋…๋ฆฝ ํŒจ์Šค; Draw=loadAction:Load+์‚ผ๊ฐํ˜•; Present=no-op(ํ—ค๋“œ๋ฆฌ์Šค). gamebox_d3d11_readback=[MTLTexture getBytes:]. native/d3d11_metal_bridge_test.c(์ˆœ์ˆ˜ C): vtable ํฌ์ธํ„ฐ ๊ฒฝ๋กœ๋กœ CreateDeviceAndSwapChainโ†’GetBufferโ†’CreateRenderTargetViewโ†’OMSetRenderTargetsโ†’ClearRenderTargetView(blue)โ†’Draw(3,0)โ†’Presentโ†’readbackโ†’ํ”ฝ์…€ ์–ด์„œ์…˜. ๋กœ์ปฌ M4 ๊ฒฐ๊ณผ(๋นŒ๋“œ cleanยท-Wall -Wextra ๊ฒฝ๊ณ  ์—†์Œ): __D3D11_BRIDGE__ PASS px_clear=0x0000FFFF px_triangle=0xFF0000FF nonuniform=1. CI warn-only ์Šคํ… ์ถ”๊ฐ€(r10 ํŒจํ„ด). own1: Wine 0ยทDXVK 0ยทd3d11.dll ์†Œ์Šค 0ยทDRM 0. ๊ตฌํ˜„๋จยท๋ฏธ๋ฐฐ์„  dead-until-wired โ€” ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ํ†ตํ•œ PE ๊ตฌ๋™์€ r12. validated_manjeom=0(๋„ค์ดํ‹ฐ๋ธŒ ํ…Œ์ŠคํŠธยท๊ฒŒ์ž„ ํ”„๋ ˆ์ž„ ์•„๋‹˜). ๋‹ค์Œ r12: ์ตœ์†Œ D3D11 ํ…Œ์ŠคํŠธ PE(own1 ์ž์ž‘ i386 PE) + ์ธํ„ฐํ”„๋ฆฌํ„ฐ IAT autobind ๋ฐฐ์„  โ†’ ์ด ๋ธŒ๋ฆฌ์ง€ shim โ†’ Metal ์˜คํ”„์Šคํฌ๋ฆฐ โ†’ readback = validated_manjeom>0 ๊ฒŒ์ดํŠธ."
48-
},
49-
{
50-
"name": "E5 r12 measured (2026-06-26) โ€” ์ฒซ own1 D3D11 PE โ†’ Metal ํ”„๋ ˆ์ž„ (์ธํ”„๋ผ ๋งˆ์ผ์Šคํ†ค) โœ…",
51-
"summary": "native/e5_end_to_end_test.c: ์ž์ž‘ i386 PE32(9๋ช…๋ นยท49๋ฐ”์ดํŠธยทd3d11.dll 7 import) โ†’ i386 ์ธํ„ฐํ”„๋ฆฌํ„ฐ IAT autobind(by nameยทown ์ž„ํฌํŠธ ๋กœ๋”ฉ) โ†’ ๋ธŒ๋ฆฌ์ง€ shim layer(7 C ๋ž˜ํผ) โ†’ gamebox D3D11โ†’Metal ๋ธŒ๋ฆฌ์ง€(d3d11_metal_bridge.m) โ†’ Apple Metal ํ—ค๋“œ๋ฆฌ์Šค ์˜คํ”„์Šคํฌ๋ฆฐ ๋ Œ๋”(64ร—64 BGRA8) โ†’ ํ”ฝ์…€ readback โ†’ ์–ด์„œ์…˜. ๋กœ์ปฌ M4 ์‹ค์ธก: __E5__ PASS pe_executed=1 frame_rendered=1 px_clear=0x0000FFFF px_triangle=0xFF0000FF nonuniform=1 insns=11 imports=7. own1: Wine 0ยทDXVK 0ยทd3d11.dll 0ยทDRM 0ยท๊ฒŒ์ž„ ์• ์…‹ 0. ์ •์ง ํ‰๊ฐ€: validated_manjeom=first_own1_authored_d3d11_pe_to_metal_frame (์ธํ”„๋ผ ๋งˆ์ผ์Šคํ†ค). ์ƒ์—… ๊ฒŒ์ž„ ์•„๋‹˜ โ€” ์‹ค ๊ฒŒ์ž„์€ ์ „์ฒด Win32/D3D11 API ์„œํ”ผ์Šคยท์‹ค ์• ์…‹ยท์‹ค PE ํ•„์š”. ๋‹ค์Œ: Win32 API ์„œํ”ผ์Šค ํ™•์žฅยทopcode ์ปค๋ฒ„๋ฆฌ์ง€ยทvtable [reg+offset] ๊ฐ„์ ‘ callยท์‹ค ๊ฒŒ์ž„ PE IAT ์ถ”์ ."
52-
},
53-
{
54-
"name": "๐Ÿงฑ E5 ๊ฒŒ์ดํŠธ ์žฌ๋ถ„๋ฅ˜ (2026-06-26 ์‹ค์ธก โ€” substrate/ํˆฌ์ž ํ”„๋ก ํ‹ฐ์–ด, ํ•˜๋“œ์›จ์–ด ์ฒœ์žฅ ์•„๋‹˜)",
55-
"summary": "validated_manjeom>0(์‹ค ํ”„๋ ˆ์ž„) ๋„๋‹ฌ ๊ฒŒ์ดํŠธ๋ฅผ ์‹ค์ธก ์žฌ๋ถ„๋ฅ˜. โ‘  real i386 D3D PE โ€” ์ตœ์†Œ D3D11 ํ…Œ์ŠคํŠธ PE ์ž์ž‘ ๊ฐ€๋Šฅ(own1 ํด๋ฆฐยท๊ผญ AAA ์•„๋‹˜). โ‘ก D3DMetal SDK โ€” 'CI ๋ถ€์žฌ'๋Š” ํ‹€๋ฆผ: `brew tap apple/apple && brew install game-porting-toolkit`๋กœ Blacksmith macos-15(์‹ค Apple SiliconยทGPU)์— ์„ค์น˜ ๊ฐ€๋Šฅ(ํ•˜๋“œ์›จ์–ด ๋ฌด๊ด€). โ‘ข ๋””์Šคํ”Œ๋ ˆ์ด โ€” ๋ถˆํ•„์š”: Metal ํ—ค๋“œ๋ฆฌ์Šค(์˜คํ”„์Šคํฌ๋ฆฐ MTLTextureโ†’getBytes readback)๋กœ ํ™”๋ฉด ์—†์ด ํ”„๋ ˆ์ž„ ์ฆ๋ช… ๊ฐ€๋Šฅ(M4/Metal4 ํ™•์ธ). โ†’ ์ง„์งœ ๋ฒฝ = ์—”์ง€๋‹ˆ์–ด๋ง ๊ฑฐ๋ฆฌ: lib/loader/dx_d3d11.hexa ๋“ฑ DXโ†’Metal ๋ธŒ๋ฆฌ์ง€๋Š” MTL* ์ด๋ฆ„๋งŒ ์ ํžŒ ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ ์Šค์บํด๋“œ(์‹ค Metal ํ˜ธ์ถœ 0๊ฑด). ๋‹ค์Œ ์‚ฌ๋‹ค๋ฆฌ(์ž์œจ๊ฐ€๋Šฅ, ์‹ค-GPU CI ์œ„): real-PE IAT name-autobind โ†’ ๋„“์€ opcode ์ปค๋ฒ„ โ†’ D3D11 device shim โ†’ ์‹ค MTLDevice/์˜คํ”„์Šคํฌ๋ฆฐ โ†’ readback. ์ด์ „ 'real-asset user-only ๊ฒŒ์ดํŠธ' ๋ถ„๋ฅ˜๋Š” verify ์•ˆ ํ•œ ๊ฒŒ์œผ๋ฅธ ๋ฒฝ(break-walls ์œ„๋ฐ˜)์ด๋ผ ์ •์ •."
38+
"name": "โฌœ OPEN โ€” ์ƒ์—… ๊ฒŒ์ž„ ํ”„๋ ˆ์ž„ (๋ฏธ์ฆ๋ช…)",
39+
"summary": "์ธํ”„๋ผ๋Š” ์ž์ž‘ PE๋กœ ์ฆ๋ช…๋์œผ๋‚˜ ์ƒ์—… ๊ฒŒ์ž„(๋””์•„๋ธ”๋กœ/๋ฆฌ๋‹ˆ์ง€ ๋“ฑ)์€ ๋ฏธ์ฆ๋ช…. ํ•„์š”: ์ „์ฒด Win32/D3D11 API ์„œํ”ผ์Šคยทvtable [reg+offset] ๊ฐ„์ ‘ callยท๋„“์€ opcode ์ปค๋ฒ„ยท์‹ค ๊ฒŒ์ž„ PE IAT ์ถ”์ ยท์‹ค ์• ์…‹. own1 ์œ ์ง€(no Wine/DRM/Warden/anti-cheat bypass)."
5640
}
5741
]
5842
},

โ€ŽCLAUDE.mdโ€Ž

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@
33
Apple-native Win32 game runtime โ€” run unmodified Win32 PE binaries on macOS
44
Apple Silicon **without Wine** (Wine 0), via D3DMetal graphics + a hexa-only
55
loader / perf / dispatch layer, under a strict **own1** posture (no DRM /
6-
Warden / anti-cheat bypass, no anima clone). Skeleton-tier: modules compile and
7-
probe, but no real game frames are evidenced (`validated_manjeom = 0`). Full
8-
design lives in [ARCHITECTURE.md](ARCHITECTURE.md); history in
9-
[CHANGELOG.md](CHANGELOG.md).
6+
Warden / anti-cheat bypass, no anima clone). The PEโ†’D3D11โ†’Metal pipeline is
7+
proven end-to-end with a self-authored own1 D3D11 PE (`validated_manjeom =
8+
first_own1_authored_d3d11_pe_to_metal_frame`, an infrastructure milestone) โ€” but
9+
**no commercial game frame is evidenced yet**. Full design lives in
10+
[ARCHITECTURE.md](ARCHITECTURE.md); history in [CHANGELOG.md](CHANGELOG.md).
1011

1112
## Structure
1213

@@ -31,7 +32,7 @@ gamebox/
3132
โ”œโ”€ ARCHITECTURE.md โ€” architecture SSOT (update-in-place)
3233
โ”œโ”€ CHANGELOG.md โ€” append-only history
3334
โ”œโ”€ harness.config.json โ€” harness config (lockdown, lint, docs discipline)
34-
โ”œโ”€ .github/workflows/ โ€” CI (ci.yml โ€” Blacksmith macOS build+test)
35+
โ”œโ”€ .github/workflows/ โ€” CI (ci.yml โ€” github-hosted macOS build+test)
3536
โ””โ”€ .harness-engine/ โ€” dancinlab harness submodule (governance engine)
3637
```
3738

0 commit comments

Comments
ย (0)