Skip to content

File I/O#

Purpose#

Low-level file open wrappers bridging game code to Win32 CreateFileA and the MSVC CRT _open/__read layer.

Key entry points#

Symbol Address Role
lotr2_io_open 0x4e70c0 Game-facing open wrapper
lotr2_io_create_file 0x4e7110 CreateFileA + GetFileType
crt_write 0x4e4da0 MSVC _write lowio via WriteFile
crt_close 0x4e6e40 CRT handle close
crt_file_length 0x4e7b50 File size via __lseek tell/end
crt_set_current_drive 0x4e7c10 SetCurrentDirectoryA + drive env var (=X:)
crt_chsize 0x4e7cf0 Truncate file (SetEndOfFile)
crt_stack_probe 0x4e81b0 MSVC stack probe for large stack frames

Dependencies#

  • kernel32.dllCreateFileA, ReadFile, WriteFile, CloseHandle
  • MSVC CRT lowio (__read, __lseek, crt_write, crt_close, crt_file_length, crt_chsize)

Data files#

All game assets; primary consumer is asset/MODULE.md. Save/load uses lotr2_io_open for .sav/.sva/.svb and lords2.inf; see save/MODULE.md.

Open questions#

  • Map CRT handle table (DAT_005ff9b0) if documenting save-game I/O