splat icon indicating copy to clipboard operation
splat copied to clipboard

exclusive_ram_id still allows sections to reference eachother

Open marijnvdwerf opened this issue 3 years ago • 3 comments

In the yaml below, 1773A0.data.s contains labels that are referred to from the hos_05 section. Also, all non-filemenu labels don't respect the symbol_name_format option. Functions that aren't defined in any block also don't use the func_PAL_$VRAM label.

name: Paper Mario (E)
sha1: 2111d39265a317414d359e35a7d971c4dfa5f9e1
options:
  basename: papermario
  target_path: baserom.z64
  base_path: .
  compiler: GCC
  find_file_boundaries: True
  header_encoding: ASCII
  platform: n64
  cache_path: .splat_cache
  # undefined_funcs_auto: True
  # undefined_funcs_auto_path: undefined_funcs_auto.txt
  # undefined_syms_auto: True
  # undefined_syms_auto_path: undefined_syms_auto.txt
  symbol_addrs_path: symbol_addrs_nano.txt
  # asm_path: asm
  # src_path: src
  # build_path: build
  # extensions_path: tools/splat_ext
  # mips_abi_float_regs: o32
  # section_order: [".text", ".data", ".rodata", ".bss"]
  # auto_all_sections: [".data", ".rodata", ".bss"]
  # libultra_symbols: True
  # hardware_regs: True
  symbol_name_format: PAL_$VRAM
  symbol_name_format_no_rom: PAL_$VRAM_$SEG
segments:

  - name: filemenu
    type: code
    dir: filemenu
    start: 0x16F4D0
    vram: 0x80246AB0
    symbol_name_format: filemenu_$VRAM
    exclusive_ram_id: overlay
    subsegments:
      - [0x16F4D0, c, filemenu_common]
      - [0x1716E0, c, filemenu_main]
      - [0x1737E0, c, filemenu_yesno]
      - [0x174820, c, filemenu_info]
      - [0x174D50, c, filemenu_createfile]
      - [0x1760C0, c, filemenu_pal]
      - [0x176B40, c, filemenu_msg]
      - [0x1773A0, data]
      - [0x17A140, .rodata, filemenu_createfile]
      # TODO: 0x10B0 bytes of .bss
      - [0x17A160]

  - start: 0x17A160
    type: bin

  - name: hos_05
    type: code
    start: 0xA96140
    vram: 0x80240000
    exclusive_ram_id: overlay
    subsegments:
      - [0xA96140, c, hos_05]
      - [0xA9B990, data]
      - [0xAA52B0, rodata, hos_05]
      - [0xAA5380]
  - [0xAA5380, bin]
  - [0x4000000]

marijnvdwerf avatar Feb 28 '23 02:02 marijnvdwerf

In the yaml below, 1773A0.data.s contains labels that are referred to from the hos_05 section.

I wasn't able to find any symbol from hos_05 in this data file. Could you provide a concrete example?

Also, all non-filemenu labels don't respect the symbol_name_format option. Functions that aren't defined in any block also don't use the func_PAL_$VRAM label.

Could you give an example of this? Functions from hos_05 seem to follow the symbol_name_format format image

AngheloAlf avatar Feb 28 '23 15:02 AngheloAlf

D_8024F438 is referenced to from hos_05, but (wrongly) defined in filemenu.data.s.

Everything in undefined_func_auto doesn't use symbol_name_format

marijnvdwerf avatar Feb 28 '23 16:02 marijnvdwerf

I am having the same problem from a different repo. This is the YAML: https://github.com/Xeeynamo/sotn-decomp/blob/weapon-split/config/splat.us.weapon.yaml

When I run make extract_weapon, at asm/us/weapon/data/weapon0.data.s it is possible to find the following:

glabel .L8017B0B0
/* 50B0 8017B0B0 */ .word D_8017AFD0

glabel func_8017B0B4
/* 50B4 8017B0B4 */ .word 0x060C0000

glabel .L8017B0B8
/* 50B8 8017B0B8 */ .word 0x00000441

where .L8017B0B0 is from asm/us/weapon/nonmatchings/weapon15/func_8017B00C.s, func_8017B0B4 is from asm/us/weapon/nonmatchings/weapon57/func_8017B0B4.s and so on.

Xeeynamo avatar Mar 18 '23 19:03 Xeeynamo