NESICIDE2 Progress

You can talk about almost anything that you want to on this board.

Moderator: Moderators

User avatar
cpow
NESICIDE developer
Posts: 1097
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Post by cpow »

essial wrote:Almost made this a new topic but..
NESICIDE2 has officially been used to compiled and emulate a NES application without support for 3rd party tools.
We're on our way...no looking back [except for the occasional copy/paste migration] now! =]

I'm really glad this is going so well!
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples »

Good job so far.

My current project makes use of ca65 features such as .proc (labels scoped to a procedure, for local variables in low zero page), .repeat (loop unrolling without copy and paste), and .enum (namespaced constants). How do you plan to handle things like these in NESICIDE's assembler?

And is NESICIDE intended to be lightweight enough to run on my laptop? (It has 1024x600px screen, 512 MB of RAM, 900 MHz Celeron CPU, and Ubuntu 9.10.)
User avatar
essial
Posts: 72
Joined: Thu Dec 03, 2009 8:20 am

Post by essial »

tepples wrote:My current project makes use of ca65 features such as .proc (labels scoped to a procedure, for local variables in low zero page), .repeat (loop unrolling without copy and paste), and .enum (namespaced constants). How do you plan to handle things like these in NESICIDE's assembler?
I'm planning on implementing a macro system very similar to how NASM works. After that, I'll take suggestions on what can be added to make life easier for NES deving. Procedure-level label scopes will definitely be in. Loop unrolls of course will be in. .enum sounds sorta like a struct system. I plan on supporting enums and structs in the macro system. The assembler is finished, all of the higher level 'niceties' will be the responsibility of the preprocessor -- but I know what you are saying.
tepples wrote:And is NESICIDE intended to be lightweight enough to run on my laptop? (It has 1024x600px screen, 512 MB of RAM, 900 MHz Celeron CPU, and Ubuntu 9.10.)
Right now, most likely not (in its current state) -- although it seems to run the fastest in linux (compared to Windows and OSX currently). Though right now chris is in the process of importing all of the inspectors, and all of the debuggers are running full steam. Once the debuggers are all ported over (he's done 4 so far), we will toggle the callbacks so that if a debugger is not visible, it will not eat CPU. Aside from that, we run profillers to try to trim down on execution time. If, after we get those debugger toggles in it still runs too slow for you, by all means let us know and we'll work to get things sped up. A celeron processor is pretty weak (regardless of how new it is) due to it's itty bitty cache, but it should be at least usably fast (again, after the debugger toggle logic gets added). If not, we'll have more work to do :)
User avatar
Banshaku
Posts: 2404
Joined: Tue Jun 24, 2008 8:38 pm
Location: Japan
Contact:

Post by Banshaku »

One thing I want to reconfirm: is this time the files (source code) will be in clear text? If I remember well, the original Nesticide used it's own proprietary format.
User avatar
cpow
NESICIDE developer
Posts: 1097
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Post by cpow »

Banshaku wrote:One thing I want to reconfirm: is this time the files (source code) will be in clear text? If I remember well, the original Nesticide used it's own proprietary format.
The NESICIDE2 project file is in XML. Original NESICIDE used MFC CObject serialization...
User avatar
essial
Posts: 72
Joined: Thu Dec 03, 2009 8:20 am

Post by essial »

Banshaku wrote:One thing I want to reconfirm: is this time the files (source code) will be in clear text? If I remember well, the original Nesticide used it's own proprietary format.
Yup, the project file is one big XML, all data is expressed inside of CDATA tags. No compression is currently being used. At some point I may have an option in project properties to compress the entire xml file with gzip, but right now it's all open. Although in the near future I plan on publishing the XML specs, I can go ahead and give you the current specs if you'd like (though they will change a bit as we continue development).
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples »

Popular revision control systems prefer each translation unit to be in a separate file. But you can still single-file and XML: make the project file a zip file containing an XML configuration file and separate source code files.
User avatar
essial
Posts: 72
Joined: Thu Dec 03, 2009 8:20 am

Post by essial »

tepples wrote:Popular revision control systems prefer each translation unit to be in a separate file. But you can still single-file and XML: make the project file a zip file containing an XML configuration file and separate source code files.
Honestly the idea is to have the development of games in nesicide2 be centralized in the community, and revision control in-ide is planned. I plan on getting the nesicide.net domain (and hopefully we can get control of nesicide.com since he knows the guy) and setting up a back-end system on there to host, upload, share, download, rate, etc project files. That way the IDE, while usable offline, can be tightly integrated, and people using it will not feel so isolated. I'll have options for protecting the source code via encryption and pass phrases, but this is further down the line of course.

Having said that, the way the project subsystem is coded, it wouldn't be hard to support external files.

[edit]
Also I don't see a reason why we couldn't explicitly add support for revision control systems internally in the future as well. I just want to make this software as internally accessible as possible.
User avatar
essial
Posts: 72
Joined: Thu Dec 03, 2009 8:20 am

Post by essial »

Although we wont have time to put in any graphics designers before the xmas eve cutoff, we will be able to handle graphics. I have already added support for importing binary files, and am currently working on the CHR-ROM bank designer. Basically under the Project/Graphics/ section of the project browser, there will be a folder called "Banks", which you can add banks. You then double-click said bank to open up the bank designer. In this designer, you will be able to import binary data files. In the future you will also be able to add items from the graphics designers (and yes, these designers will have convenience functionality to automatically add a bank and/or add itself to a bank if the user wants it to).

CHR-ROM banks cannot be declared in the source code because the graphics banks must be already completely assembled to allow preprocessor directives that can get the bank number, as well as offsets into said banks for named resources.
User avatar
Hamtaro126
Posts: 785
Joined: Thu Jan 19, 2006 5:08 pm

Post by Hamtaro126 »

About this project: I can't seem to download anything from these GIT servers via TortiseHG. So is it closed until release, or do I have to sign up for server access?

EDIT: I used the wrong type of GIT for windows, so I read and will use MSYSGIT.
AKA SmilyMZX/AtariHacker.
User avatar
Cheesemeister
Posts: 12
Joined: Fri Feb 06, 2009 10:28 pm

Post by Cheesemeister »

Is this project dead, or what's going on with it?
hyarion
Posts: 164
Joined: Tue May 05, 2009 6:12 pm
Contact:

Post by hyarion »

Nesicide2 is not dead, but it's going much slower after essial disappeared, but progress has been made. (essial, if you are reading this, we miss you :) )

Anyone can download the source from http://gitorious.org/nesicide and build it (dev libs for QT and SDL are required). The x-mas version was delayed we still need some kind of installers for linux to be able to release a n00b-friendly package.

If anyone wants to help with the project or wants to know more about it feel free to join #nesicide on irc.freenode.net
hyarion
Posts: 164
Joined: Tue May 05, 2009 6:12 pm
Contact:

Post by hyarion »

Gradualore wrote:Does NESICIDE currently have the ability to import bitmaps, or, is this a planned feature? There was a bit of discussion in the Art Showcase thread about various custom editors some of us have made that can do this and make it a lot easier to get graphics into your game. I was thinking of suggesting an open source project be created for this graphics editor, but then I thought maybe NESICIDE is going to do this eventually anyhow.
Bitmap import sounds like a nice feature. I think nesicide (1) had some kind of binary import, but .png import wouldn't be that hard to implement either as long as it's only 2bpp... (perhaps even something like tokumaru's level converter could be added)

But don't hold your breath... nesicide2 has some more important features that needs to be worked on before we can start on import/export functions and algorithms for graphics. But thanks for the idea, it's noted as a feature request :)

edit: guess i should have been slightly faster with the submit button :S
User avatar
cpow
NESICIDE developer
Posts: 1097
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Post by cpow »

hyarion wrote:
Gradualore wrote:Does NESICIDE currently have the ability to import bitmaps, or, is this a planned feature? There was a bit of discussion in the Art Showcase thread about various custom editors some of us have made that can do this and make it a lot easier to get graphics into your game. I was thinking of suggesting an open source project be created for this graphics editor, but then I thought maybe NESICIDE is going to do this eventually anyhow.
Bitmap import sounds like a nice feature. I think nesicide (1) had some kind of binary import, but .png import wouldn't be that hard to implement either as long as it's only 2bpp... (perhaps even something like tokumaru's level converter could be added)

But don't hold your breath... nesicide2 has some more important features that needs to be worked on before we can start on import/export functions and algorithms for graphics. But thanks for the idea, it's noted as a feature request :)

edit: guess i should have been slightly faster with the submit button :S
Yep nesicide(1) had binary import for palette/tile/nametable but it was just flat binary. Intent was to extend it to popular picture formats (.bmp, .png) but never got there.

nesicide(2) needs to have the designers implemented to be able to have something to import *to*. The designers are something I keep putting off and putting off [having waaay too much fun with the emulator/debugger side of things right now] but will have to get around to eventually so that I can completely bring over nesicide(1) functionality and sunset it.

Can someone point me to a description of the "nlist" [?] file format or what assemblers generate these? I'm at the point where I am ready to tie in assembler symbol tables to the code browser.
User avatar
GradualGames
Posts: 1106
Joined: Sun Nov 09, 2008 9:18 pm
Location: Pennsylvania, USA
Contact:

Post by GradualGames »

Er, sorry about that. I later browsed the rest of the thread in more detail, and I thought I noticed that bitmap import was already a requested feature. I didn't want to make the conversation redundant.

I've found it really useful in my graphics editor to allow importing of a 256x240 bitmap. It assumes the bitmap in question follows NES graphics constraints (regardless of color depth---it just counts unique colors within the bitmap), and then proceeds to build a palette, pattern table (eliminates duplicates, reports an error if > 256), attribute table and name table. If you're in sprite mode, it builds a bogus attribute table with an attribute for every 8x8 tile so you can build meta sprites instead of backgrounds (I don't support 8x16 yet...). If the bitmap to import violates any constraint, an error is reported. I was going to suggest in the Art Showcase thread that a bunch of people pool their ideas and come up with a new open source project but, then I remembered NESICIDE and thought that feature would be really cool in a comprehensive development IDE.
Post Reply