Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

exclusive_ram_id still allows sections to reference eachother #221

Open
marijnvdwerf opened this issue Feb 28, 2023 · 3 comments
Open

exclusive_ram_id still allows sections to reference eachother #221

marijnvdwerf opened this issue Feb 28, 2023 · 3 comments

Comments

@marijnvdwerf
Copy link
Contributor

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]
@AngheloAlf
Copy link
Collaborator

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

@marijnvdwerf
Copy link
Contributor Author

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

@Xeeynamo
Copy link
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants