Nesicide compile error

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Nesicide compile error
by on (#132452)
I am trying to compile the sample Russian Roulette project and am getting the following:


ca65 --create-dep obj/nes/main.d -g --debug-info -o obj/nes/main.o src/main.s
ca65.exe: Unknown option: --create-dep
make: ***[obj/nes/main.0] Error 255
Build Failed

Are there any Nesicide users out there that have see this error and possibly know how to fix/get around it?
Re: Nesicide compile error
by on (#132468)
What does the About box, versions tab, say regarding cc65 version?
Re: Nesicide compile error
by on (#132469)
Versions of external dependencies:
cc65:
cc65 V2.13.3
SVN version: 5495

ca65
ca65 V2.13.3 - (C) Copyright 1998-2012 Ullrich von Bassewitz
ca65.exe: No input files

ld65
ld65 V2.13.3 - (C) Copyright 1998-2009, Ullrich von Bassewitz
ld65.exe: Error: No object files to link

make
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for i386-pc-mingw32
Re: Nesicide compile error
by on (#132470)
mattheweston wrote:
Versions of external dependencies:
cc65:
cc65 V2.13.3
SVN version: 5495

You need at least 2.13.9, which should be what the Windows installer comes with.
Re: Nesicide compile error
by on (#132472)
Ok, I may have overwritten it while trying to fix my issue of not having make installed.
Re: Nesicide compile error
by on (#132473)
mattheweston wrote:
Ok, I may have overwritten it while trying to fix my issue of not having make installed.

The Windows installer should come with both CC65 and GNU Make 3.81, and point to them to use. Did you get both the nesicide-win32 and nesicide-dependencies MSIs?
Re: Nesicide compile error
by on (#132474)
Yes installed both, but it wouldn't build the demo game. I'll try reinstalling from scratch.
Re: Nesicide compile error
by on (#132497)
I reinstalled and it appears as if the dependencies installer doesn't install cc65. There are mingwm10.dll and libgcc_s_dw2-1.dll in the application folder, but I don't see anything that would point to CC65. Also can't see anything in program files(x86) that would point to cc65.
Re: Nesicide compile error
by on (#132498)
mattheweston wrote:
I reinstalled and it appears as if the dependencies installer doesn't install cc65. There are mingwm10.dll and libgcc_s_dw2-1.dll in the application folder, but I don't see anything that would point to CC65. Also can't see anything in program files(x86) that would point to cc65.

That's strange. I just blew away my installation and reinstalled from those packages on my website and cc65-master is there. It's inside C:\Program Files\NESICIDE\.

When you open NESICIDE, go to NESICIDE->Environment Settings and go to the "Compiler" tab. What does it say down near the bottom "NESICIDE found the CC65 toolchain here: ..." ?
Re: Nesicide compile error
by on (#132499)
I believe I've fixed things for the most part now. The app looks different, but in a good way. I'm wondering if I didn't grab an earlier version or didn't install properly.

Now I'm on V1.041 of Nesicide
and v2.14 of CC65


It's giving me an error now trying to load the russian roulette code. The project failed to load. Missing required attribute 'target' of element <nesicideproject>

At least now, I see the website being loaded in the welcome page.
Re: Nesicide compile error
by on (#132500)
Can you explain what is needed for the linker file? The Russian Roulette app uses nes.ini for it's linker file. Is this a generic file that can be used for all apps or is it something that needs to be customized for each app(game)?
Re: Nesicide compile error
by on (#132501)
Just tried using the nes.ini from russian roulette for another game and got

make: *** No rule to make target ' COLOR.o', needed by 'color.prg'. Stop.
Build failed while processing source.

I am showing under versions

ld65: Error: no object files to link....

Is that normal?
Re: Nesicide compile error
by on (#132502)
I think I figured out part of my problem. The Project Base Path under Project Properties->Project is set wrong. Is there a way to change this?
Re: Nesicide compile error
by on (#132506)
mattheweston wrote:
I think I figured out part of my problem. The Project Base Path under Project Properties->Project is set wrong. Is there a way to change this?


The Project Base Path should reflect the location of the .nesproject file. I don't keep track of where that is because people can move stuff around at will. I wanted the project to be as moveable as possible. That is why the field is read-only. It's just telling you where the .nesproject is located. It is your responsibility to define the location of other things such as source files if they are non-obvious, in the .nesproject file with the controls provided in the Project Properties.

With regard to using the nes.ini from this project it certainly should be possible. It is a basic NROM-128 linker script as can be seen in the commentary at the top of it.
Re: Nesicide compile error
by on (#132507)
I finally got the russian roulette code to compile for me, but the resulting rom doesn't look like it does much. The source would suggest it's a fairly involved game, but if you open the tilesets there isn't much in the way of graphics to back that up.
Re: Nesicide compile error
by on (#132510)
mattheweston wrote:
I finally got the russian roulette code to compile for me, but the resulting rom doesn't look like it does much. The source would suggest it's a fairly involved game, but if you open the tilesets there isn't much in the way of graphics to back that up.


It is a full game. Choose a number of players. Take turns pulling the "trigger".

I didn't write it. All over the source code you see Damian Yerrick (tepples). tepples is a rather prolific author of NES-related gamery, and is usually glad to have his simpler projects turned into example projects for NESICIDE. :)

Sounds like you're up and running though. Phew. I will take a note to fix that assembly INCLUDE path problem.
Re: Nesicide compile error
by on (#132511)
It may also be a good idea to setup a default linker file (nes.ini).


I would also suggest limiting the options a person can choose from to add/create a file under each folder. Granted I'm new to NES Dev, but I would think that you would only want sound files under sounds and binary files under binary files.

Also when you load the hello world template you get a file that still has the header for Russian Roulette. =)
Re: Nesicide compile error
by on (#132512)
mattheweston wrote:
It may also be a good idea to setup a default linker file (nes.ini).

If you pick a template project there is a default nes.ini, right? Maybe I misunderstand.
mattheweston wrote:
I would also suggest limiting the options a person can choose from to add/create a file under each folder. Granted I'm new to NES Dev, but I would think that you would only want sound files under sounds and binary files under binary files.

If I read you right, you can select any new or existing file type from right clicking anywhere in the tree. If you select a new source file in the graphics banks subtree it won't put the source file there.
mattheweston wrote:
Also when you load the hello world template you get a file that still has the header for Russian Roulette. =)

Because I used tepples' Russian Roulette as the template. :) I didn't want to distract attention from the fact that I blatantly copied his project into the template.
Re: Nesicide compile error
by on (#132514)
cpow wrote:
If you pick a template project there is a default nes.ini, right? Maybe I misunderstand.

Yes or even if you select an empty project it would still be nice to have a generic file there.
cpow wrote:
If I read you right, you can select any new or existing file type from right clicking anywhere in the tree. If you select a new source file in the graphics banks subtree it won't put the source file there.


So if I select source file under graphics banks, it won't put the source file there? Then why have it as an option?


cpow wrote:
Because I used tepples' Russian Roulette as the template. :) I didn't want to distract attention from the fact that I blatantly copied his project into the template.


I understand, but you need to say something to the effect of Hello World template based on tepples' Russian Roulette game. Here you would be giving him credit, but it makes it less confusing. I can see people thinking what the heck? I picked Hello World and got Russian Roulette.
Re: Nesicide compile error
by on (#132516)
Put and take is pretty much the "hello world" of actually making an interactive project.
Re: Nesicide compile error
by on (#132517)
Hi Tepples. I am currently trying to digest the source for the Russian Roulette rom. Is there a better breakdown of what each piece is doing? For example, I've looked at Patater's NESASM tutorials and am trying to wrap my head around the differences for CA65. Currently I'm trying to break down what you are doing with setup of the PPU and loading of sprites/backgrounds.

Can you shed some light on this in the form of either a more detailed explanation or links to further documentation ?
Re: Nesicide compile error
by on (#132605)
Quote:
Currently I'm trying to break down what you are doing with setup of the PPU and loading of sprites/backgrounds.

I'm not doing much with sprites in that ROM. I think the only place it uses sprites at all is choosing the number of players.

Which "setup" are you talking about? The init code? Name a comment or a .proc and I'll explain what's going on below it. Or do you want a line-by-line breakdown of all 560 lines of main.s, all 85 lines of pads.s, and all 69 lines of random.s? If part of the program is confusingly undercommented, let me know. I don't want too few comments, but I don't want too many either.

Quote:
Can you shed some light on this in the form of either a more detailed explanation or links to further documentation ?

Have you explored the wiki yet?
Re: Nesicide compile error
by on (#132607)
I think I've got enough understanding of nes development to do some damage now. =) The one thing that I am still a bit fussy on is setting the colors of the sprites. For example, if I have a tileset that has mario in the typical SMB colors, I load it up and draw mario's head and it's in the wrong color? I know the palette plays a part, but I'm still fussy on how that all works together. Once upon a time I think I had found a document explaining it in the documents on this site, but am not finding it now.
Re: Nesicide compile error
by on (#132668)
In any case, I just released Russian Roulette 0.02 with some refactoring as well as updates for newer build tools.
Re: Nesicide compile error
by on (#132726)
Quick question:

I am working on a piece of code to load a simple sprite, but when I load it in FXEUX it get a black screen. The Sprite data looks like it loads in the ppu viewer, but doesn't get drawn to the screen.

Is there any particular place I should focus my debugging efforts?
Re: Nesicide compile error
by on (#132734)
Obvious question: did you tell the PPU to draw sprites?
Re: Nesicide compile error
by on (#132735)
If you want to debug sprites, Nintendulator(DX) is a big help because it can display the sprites in the debugger window.
Re: Nesicide compile error
by on (#132741)
mattheweston wrote:
Quick question:

I am working on a piece of code to load a simple sprite, but when I load it in FXEUX it get a black screen. The Sprite data looks like it loads in the ppu viewer, but doesn't get drawn to the screen.

Is there any particular place I should focus my debugging efforts?


You started this thread with Nesicide, now you're asking questions about FCEUX? Did you notice that Nesicide has PPU/OAM debuggers? If there is something missing, let me know how I can make it clearer.
Re: Nesicide compile error
by on (#132771)
lidnariq wrote:
Obvious question: did you tell the PPU to draw sprites?


Honestly, I may not have. I'll go back and double check. Please be patient as I'm still trying to learn how to put the op codes together to build a complete program.


cpow wrote:
You started this thread with Nesicide, now you're asking questions about FCEUX? Did you notice that Nesicide has PPU/OAM debuggers? If there is something missing, let me know how I can make it clearer.


I haven't abandoned it yet. Still trying various options. I just had FCEUX as my original emulator to "Play" games, and it happened to have some debugging tools. I'm definitely going to check out the other tools that Nesicide has to offer. I'm still new to all of this (but not assembly in general), so I'm evaluating everything trying to see what I feel most comfortable with. So far I like Nesicide and think that the CA65 assembler has far more logical syntax than the NESASM line of assemblers. I just have to work with it more and slow down and take the time to understand what is going on with each line.