Intro Runtime Fade Review

게임 시작부의 compile.cns / aaa.cns 로고 페이드가 런타임에서 어떤 draw/palette 단위로 보이는지 정리합니다.

index · palette pipeline · render pipeline

statuspalette-fade-runtime-confirmed
events3803
palette updates48
palette runs2
logo draws1

현재 캡처는 trace-start 시점에 compile.cns가 이미 0x1025D128 서피스로 존재하고, frame 134에서 같은 핸들이 aaa.cns로 재라벨/업로드되는 흐름을 잡습니다. 따라서 첫 로고의 로드 자체는 부분 캡처이고, 페이드와 두 번째 로고 로드는 런타임 근거가 있습니다.

Conclusions

fade-rendering-model confirmed

The observed intro fade is driven by repeated palette updates on the primary 8-bit surface, not by per-frame alpha Blt opacity.

{
  "surfacePaletteEventCount": 48,
  "paletteRuns": [
    {
      "firstFrame": 119,
      "lastFrame": 152,
      "eventCount": 34,
      "caller": "0x004166C8"
    },
    {
      "firstFrame": 253,
      "lastFrame": 266,
      "eventCount": 14,
      "caller": "0x004166C8"
    }
  ]
}

logo-surface-swap confirmed-partial

The trace starts with the shared full-screen logo surface already labeled compile.cns, then reloads the same handle as aaa.cns at frame 134.

{
  "sharedLogoSurface": "0x1025D128",
  "compileSnapshotSeq": 21,
  "aaaLabelSeq": 1770,
  "aaaResourceFrame": 134
}

animation-boundary supported-boundary

This capture can ground full-screen CNS fade timing and surface replacement. It does not yet prove battle/helper sprite motion; those still need object/helper draw traces during the relevant action.

{
  "logoDrawCount": 1,
  "fullFramePresentCount": 247,
  "vmRowsNearFadeOrLoad": 290
}

Palette Fade Runs

runframeseventscallerfirst hashlast hash
1119..152340x004166C812017b0d2ccda74cc6f0c40a76d7adbf
2253..266140x004166C887c18e348288860741c8ca7bde2bcb2d

Logo Resource Lifecycle

seqframeeventresourcesurfacepccallerrect/hash
2119resource-surface-labelcompile.cns0x1025D1280x0040199F4eb79719f4543ee7
1765134resource-openaaa.cns0x004235DF0x00422F926ef51c04332d37e9
1766134resource-readaaa.cns0x700002706ef51c04332d37e9
1767134resource-decodeaaa.cns0x004278100x0042301Ca219901dcd36b89b
1769134surface-colorkeycompile.cns0x1025D1280x102C2C1C0x004191E3
1770134resource-surface-labelaaa.cns0x1025D1280x004193D50x004193D5d2b69744a6829481
1771134surface-uploadaaa.cns0x1025D1280x004193D50x004193D50,0,1,1
1772134surface-uploadaaa.cns0x1025D1280x10297C880x004195170,0,640,480

Draw Surface Pairs

sourcedestinationsource labeldestination labelpcmethodcount
0x1004C4380x10001330surface 640x480x8 @0x1004C478primary-surface0x10001340IDirectDrawSurface::Blt247
0x1025D1280x1004C438aaa.cnssurface 640x480x8 @0x1004C4780x0041747BIDirectDrawSurface::BltFast1

VM Rows Near Fade/Load

seqframeeventobjectstreamopcodenextpc
3020vm-op0x0055BE000x004A2D800x1D0x00402321
3220object-stream-change0x0055BE000x004023DB
3420vm-op-transition0x0055D7BC0x004A2D800x1D0x004A34380x00402321
3520vm-op0x0055D7BC0x004A34380x030x00402321
4421vm-op-transition0x0055BE000x004A34380x030x004A2D800x00402321
4521vm-op0x0055BE000x004A2D800x1D0x00402321
4721object-stream-change0x0055BE000x004023DB
4921vm-op-transition0x0055D7BC0x004A2D800x1D0x004A34380x00402321
5021vm-op0x0055D7BC0x004A34380x030x00402321
1484117vm-op-transition0x0055BE000x004A34380x030x004A2D800x00402321
1485117vm-op0x0055BE000x004A2D800x1D0x00402321
1486117object-stream-change0x0055BE000x0040248E
1488117object-stream-change0x0055BE000x0040249E
1490117object-stream-change0x0055BE000x004023DB
1492117vm-op-transition0x0055D7BC0x004A2D800x1D0x004A34380x00402321
1493117vm-op0x0055D7BC0x004A34380x030x00402321
1502118vm-op-transition0x0055BE000x004A34380x030x004A3C440x00402321
1503118vm-op0x0055BE000x004A3C440x380x00402321
1505118object-stream-change0x0055BE000x004023DB
1507118vm-op-transition0x0055D7BC0x004A3C440x380x004A34380x00402321
1508118vm-op0x0055D7BC0x004A34380x030x00402321
1518119vm-op-transition0x0055BE000x004A34380x030x004A3C440x00402321
1519119vm-op0x0055BE000x004A3C440x380x00402321
1521119object-stream-change0x0055BE000x004023DB
1523119vm-op-transition0x0055D7BC0x004A3C440x380x004A34380x00402321
1524119vm-op0x0055D7BC0x004A34380x030x00402321
1534120vm-op-transition0x0055BE000x004A34380x030x004A3C440x00402321
1535120vm-op0x0055BE000x004A3C440x380x00402321
1537120object-stream-change0x0055BE000x004023DB
1539120vm-op-transition0x0055D7BC0x004A3C440x380x004A34380x00402321
1540120vm-op0x0055D7BC0x004A34380x030x00402321
1550121vm-op-transition0x0055BE000x004A34380x030x004A3C440x00402321
1551121vm-op0x0055BE000x004A3C440x380x00402321
1553121object-stream-change0x0055BE000x004023DB
1555121vm-op-transition0x0055D7BC0x004A3C440x380x004A34380x00402321
1556121vm-op0x0055D7BC0x004A34380x030x00402321
1566122vm-op-transition0x0055BE000x004A34380x030x004A3C440x00402321
1567122vm-op0x0055BE000x004A3C440x380x00402321
1569122object-stream-change0x0055BE000x004023DB
1571122vm-op-transition0x0055D7BC0x004A3C440x380x004A34380x00402321
1572122vm-op0x0055D7BC0x004A34380x030x00402321
1582123vm-op-transition0x0055BE000x004A34380x030x004A3C440x00402321
1583123vm-op0x0055BE000x004A3C440x380x00402321
1585123object-stream-change0x0055BE000x004023DB
1587123vm-op-transition0x0055D7BC0x004A3C440x380x004A34380x00402321
1588123vm-op0x0055D7BC0x004A34380x030x00402321
1598124vm-op-transition0x0055BE000x004A34380x030x004A3C440x00402321
1599124vm-op0x0055BE000x004A3C440x380x00402321
1601124object-stream-change0x0055BE000x004023DB
1603124vm-op-transition0x0055D7BC0x004A3C440x380x004A34380x00402321
1604124vm-op0x0055D7BC0x004A34380x030x00402321
1614125vm-op-transition0x0055BE000x004A34380x030x004A3C440x00402321
1615125vm-op0x0055BE000x004A3C440x380x00402321
1617125object-stream-change0x0055BE000x004023DB
1619125vm-op-transition0x0055D7BC0x004A3C440x380x004A34380x00402321
1620125vm-op0x0055D7BC0x004A34380x030x00402321
1630126vm-op-transition0x0055BE000x004A34380x030x004A3C440x00402321
1631126vm-op0x0055BE000x004A3C440x380x00402321
1633126object-stream-change0x0055BE000x004023DB
1635126vm-op-transition0x0055D7BC0x004A3C440x380x004A34380x00402321