igwgames/nes-starter-kit

Unsolved Externals

unkn0wncvm1 opened this issue · 3 comments

When Building I get This Error
./tools/cc65/bin/ld65 -C tools/cc65_config/game.cfg -o rom/starter.nes temp/*.o tools/neslib_famitracker/runtime.lib ld65.exe: Warning: tools/cc65_config/game.cfg(61): Segment HEADER' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(62): Segment STARTUP' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(65): Segment ROM_00' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(69): Segment ROM_04' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(70): Segment ROM_05' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(71): Segment ROM_06' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(73): Segment STUB_00' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(74): Segment STUB_01' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(75): Segment STUB_02' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(76): Segment STUB_03' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(77): Segment STUB_04' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(78): Segment STUB_05' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(79): Segment STUB_06' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(84): Segment STUB_PRG' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(85): Segment CHR_00' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(86): Segment CHR_01' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(87): Segment CHR_02' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(88): Segment CHR_03' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(89): Segment CHR_04' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(90): Segment CHR_05' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(91): Segment CHR_06' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(92): Segment CHR_07' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(93): Segment CHR_08' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(94): Segment CHR_09' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(95): Segment CHR_0A' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(96): Segment CHR_0B' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(97): Segment CHR_0C' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(98): Segment CHR_0D' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(99): Segment CHR_0E' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(100): Segment CHR_0F' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(101): Segment CHR_10' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(102): Segment CHR_11' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(103): Segment CHR_12' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(104): Segment CHR_13' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(105): Segment CHR_14' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(106): Segment CHR_15' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(107): Segment CHR_16' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(108): Segment CHR_17' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(109): Segment CHR_18' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(110): Segment CHR_19' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(111): Segment CHR_1A' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(112): Segment CHR_1B' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(113): Segment CHR_1C' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(114): Segment CHR_1D' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(115): Segment CHR_1E' does not exist
ld65.exe: Warning: tools/cc65_config/game.cfg(116): Segment CHR_1F' does not exist ld65.exe: Warning: tools/cc65_config/game.cfg(121): Segment DMC' does not exist
Unresolved external __STARTUP__' referenced in: temp/main.s(12) Unresolved external _bank_spr' referenced in:
temp/main.s(20)
Unresolved external _delay' referenced in: temp/fade_animation.s(21) Unresolved external _errorPalette' referenced in:
temp/error.s(41)
Unresolved external _frameCount' referenced in: temp/player.s(31) temp/map_sprites.s(15) temp/map.s(40) temp/main.s(30) temp/game_text.s(25) Unresolved external _get_prg_bank' referenced in:
temp/game_text.s(19)
Unresolved external _mainBgPalette' referenced in: temp/map.s(50) Unresolved external _mainSpritePalette' referenced in:
temp/map.s(51)
Unresolved external _memcpy' referenced in: temp/load_map.s(12) Unresolved external _music_play' referenced in:
temp/main.s(17)
Unresolved external _music_stop' referenced in: temp/player.s(13) temp/main.s(18) Unresolved external _oam_clear' referenced in:
temp/title.s(16)
temp/credits.s(21)
Unresolved external _oam_hide_rest' referenced in: temp/main.s(16) temp/error.s(18) Unresolved external _oam_spr' referenced in:
temp/player.s(12)
temp/map_sprites.s(12)
temp/map.s(32)
temp/game_text.s(13)
Unresolved external _pad_poll' referenced in: temp/player.s(15) temp/input_helpers.s(15) Unresolved external _pad_trigger' referenced in:
temp/title.s(17)
temp/game_text.s(14)
Unresolved external _pal_bg' referenced in: temp/title.s(12) temp/pause.s(19) temp/map.s(29) temp/game_over.s(16) temp/error.s(12) temp/credits.s(17) Unresolved external _pal_bright' referenced in:
temp/fade_animation.s(20)
temp/error.s(14)
Unresolved external _pal_spr' referenced in: temp/title.s(13) temp/pause.s(20) temp/map.s(30) temp/game_over.s(17) temp/error.s(13) temp/credits.s(18) Unresolved external _ppu_off' referenced in:
temp/title.s(14)
temp/pause.s(21)
temp/main.s(14)
temp/game_over.s(18)
temp/error.s(16)
temp/credits.s(19)
Unresolved external _ppu_on_all' referenced in: temp/title.s(15) temp/main.s(15) temp/error.s(17) temp/credits.s(20) Unresolved external _ppu_on_bg' referenced in:
temp/pause.s(22)
temp/game_over.s(19)
Unresolved external _ppu_wait_frame' referenced in: temp/error.s(15) Unresolved external _ppu_wait_nmi' referenced in:
temp/map.s(31)
temp/main.s(13)
temp/input_helpers.s(14)
temp/game_text.s(12)
Unresolved external _rand8' referenced in: temp/map_sprites.s(13) Unresolved external _reset' referenced in:
temp/main.s(22)
Unresolved external _scroll' referenced in: temp/pause.s(23) temp/map.s(33) temp/game_over.s(20) temp/error.s(19) temp/credits.s(22) Unresolved external _set_chr_bank_0' referenced in:
temp/title.s(20)
temp/pause.s(16)
temp/map.s(13)
temp/game_text.s(20)
temp/game_over.s(14)
temp/error.s(25)
temp/credits.s(15)
Unresolved external _set_chr_bank_1' referenced in: temp/title.s(21) temp/pause.s(17) temp/map.s(14) temp/game_over.s(15) temp/error.s(26) temp/credits.s(16) Unresolved external _set_mirroring' referenced in:
temp/map.s(15)
Unresolved external _set_nmi_chr_tile_bank' referenced in: temp/game_text.s(21) Unresolved external _set_prg_bank' referenced in:
temp/error.s(24)
temp/bank_helpers.s(15)
Unresolved external _set_rand' referenced in: temp/main.s(21) Unresolved external _set_vram_update' referenced in:
temp/text_helpers.s(12)
temp/map.s(36)
temp/hud.s(12)
temp/game_text.s(15)
temp/error.s(20)
temp/credits.s(23)
Unresolved external _sfx_play' referenced in: temp/player.s(14) temp/main.s(19) Unresolved external _split' referenced in:
temp/map.s(34)
Unresolved external _split_y' referenced in: temp/map.s(35) Unresolved external _titlePalette' referenced in:
temp/title.s(25)
temp/pause.s(14)
temp/game_over.s(13)
temp/credits.s(14)
Unresolved external _unset_nmi_chr_tile_bank' referenced in: temp/game_text.s(22) Unresolved external _vram_adr' referenced in:
temp/text_helpers.s(13)
temp/hud.s(13)
Unresolved external _vram_fill' referenced in: temp/text_helpers.s(15) Unresolved external _vram_put' referenced in:
temp/text_helpers.s(14)
temp/hud.s(14)
temp/error.s(21)
Unresolved external _wait_for_sprite0_hit' referenced in: temp/game_text.s(16) ld65.exe: Error: 43 unresolved external(s) found - cannot create output file make: *** [rom/starter.nes] Error 255

Hello,

This appears it may be a setup issue.

My first suggestion is try running make clean then make, being sure you're using cygwin. (Especially if you tried make with another terminal, like git bash)

If that doesn't do it, here are a few things to verify:

  • You downloaded the entire repository - you should have a source folder next to sound, graphics, and a few others
  • You have downloaded the tools zip: https://github.com/cppchriscpp/nes-starter-kit/blob/master/guide/section_1/setting_up_your_tools.md#base-tool-zip and extracted it over your tools folder
  • important: The version of cc65 in the tool zip is a bit older, this codebase has not been updated to use the latest cc65 yet - make sure to use the copy in the tool zip file!
  • You have not moved, deleted, or changed any .c or .asm or .s files (until you see it work once)
  • You are using make to run the compilation, not calling ld65/etc manually.

If none of that solves it, feel free to reach back out. Please let me know as much as you can about your environment, namely:

  • What OS you're on
  • What terminal you are using to run make
  • the output of these commands:
    • ls -lah (root of the checked out repository)
    • ls -lahr (root of checked out repository)/source
    • ls -lah (root of checked out repository)/tools
  • The full output of make clean followed by make. Please wrap the output with triple backticks for readability (```)

I hope something in that helps! To note I am working on replacing the cygwin setup, as this is very clunky and prone to errors.

Thanks It Works

Thank you for confirming!