NESICIDE v0.2

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
NESICIDE v0.2
by on (#38822)
I'm baaack...just posted NESICIDE v0.2. As the version suggests, it is a pretty incremental update.

www.nesicide.com

Things added/changed:
0. Palette updated -- thanks BMF54123. Working on palette import but haven't settled on a file format...is there one?!
1. Window maximize will double nametable size if window is big enough.
2. Smarter combining of auto-generated sourcecode objects into ROM image on assembling.
a)Included ".incobj" directive in assembler that allows explicit placement of auto-generated sourcecode in ROM (for PRG-ROM pattern placement, for example).
b)Updated SimpleParallaxDemo to show usage of .incobj directive.
3. Minor GUI improvements.

Things in-work, possibly for v0.3:
0. Subroutine library (mapper interface subs, typical activity subs, etc.)
1. Nametable compression algorithm support (RLE with vertical or horizontal striping, ... are there others?).
2. Enhancements to assembler to support anonymous labeling.

I've also started working on an MMC1 demo.

I'd love to hear more of what you all would want / not want in future versions. I still have these on the list:

0. Palette numbering.
1. Portable file format (XML...)
2. Auto-create patterns on nametable painting or BMP import.

Thanks!
Re: NESICIDE v0.2
by on (#38825)
NESICIDE wrote:
Working on palette import but haven't settled on a file format...is there one?!

Yeah, same as the palette I uploaded. 64 colors, 3 bytes per color (RGB), 192 bytes.

by on (#38830)
I have been toying around with NESICIDE and I must say it's quite impressive! I have some doubts that maybe have been answered but I prefer to ask them directly.

-You have developed the assembler that comes integrated with NESICIDE and I am curious about its features compared for example with ASM6 or even CA65 (wich being a generic 6502 assembler has lots of stuff that may be omitted in a NES-specific assembler).

-Also I wondered how much different the syntax is in respect to these assemblers.

-Is there any way to export the entire assembler source code to a text file? More for backup purposes of the code.

Any way, good job, I really look forward to see NESICIDE going on! :)
Re: NESICIDE v0.2
by on (#38839)
BMF54123 wrote:
NESICIDE wrote:
Working on palette import but haven't settled on a file format...is there one?!

Yeah, same as the palette I uploaded. 64 colors, 3 bytes per color (RGB), 192 bytes.

Ahhh! Big duh for me. :oops:
That makes it easy...
Guess the engineer in me was looking to overcomplicate things as usual.

by on (#38841)
SaucJedi wrote:
-You have developed the assembler that comes integrated with NESICIDE and I am curious about its features compared for example with ASM6 or even CA65 (wich being a generic 6502 assembler has lots of stuff that may be omitted in a NES-specific assembler).

http://hkn.eecs.berkeley.edu/~mcmartin/P65/ref.html
This is the assembler that mine is most like. All of the Command Modes and Basic Arguments are supported. Normal labels are supported but, as I said, I plan to implement temporary labels also. I don't yet, but plan to support ".ascii" directive. Argument construction is partially supported (no expression support yet, in the plans). ".text" and ".data" named or anonymous segmenting is supported. ".checkpc" will be supported. ".include" is ".incasm" in mine (not sure why...I should change that back!). Macros are not supported. The maturity level of the assembler tends to evolve as I realize I need new things from it, like the ability to have it mid-parse call back into NESICIDE to get the assembly source for an .incobj'ed element and assemble it into the stream. I had previously just shoved all of the assembly source for all elements together (even if they were not used by the ROM) and passed the whole mess to the assembler. This, of course, leads to inefficient use of ROM space! Thus, the .incobj directive allows clear and direct specification of what elements should be included and where.

SaucJedi wrote:
-Also I wondered how much different the syntax is in respect to these assemblers.

Shouldn't be much different other than what I outlined above.

SaucJedi wrote:
-Is there any way to export the entire assembler source code to a text file? More for backup purposes of the code.

There should be, but there isn't. I'll add one.

Thanks again!

by on (#38874)
Maybe give out a small demo that we (in other words I) can mess with?

by on (#38878)
CKY-2K/Clay Man wrote:
Maybe give out a small demo that we (in other words I) can mess with?

If you go to the Screenshots page, there are two downloadable demos there at the top of the page -- yes, they are very small. I will post more as I create them. Right now I'm working on an MMC1 demo and have found a couple of assembler issues so that one will be put on the site when I put the next version of NESICIDE up. Ahh, the drawbacks of not having an assembler DLL separate...

www.nesicide.com/nesicide-screens.html

by on (#39185)
- Call me newbie, but the interface isn't so user-friendly after all. Once you launch the program, I selected ROM, right click, "New ROM". A small window appears as "Loading PRG bank" and the program locks. Next, you should think about a blank form, as ASM source ready to code, much like any C/C++ environment/editor.

- The File -> New or Save only gives the option for NESICIDE projects. Why not source files too?

by on (#39216)
Fx3 wrote:
- Call me newbie, but the interface isn't so user-friendly after all. Once you launch the program, I selected ROM, right click, "New ROM". A small window appears as "Loading PRG bank" and the program locks. Next, you should think about a blank form, as ASM source ready to code, much like any C/C++ environment/editor.


The delay [it should just be a short delay, not a complete lock-up?] is because the same code that disassembles ROM images for stepping in the emulator is [for the moment, anyway] used to disassemble the empty ROM bank when it is being created. You could, for example, create a new ROM and go immediately to trying to emulate it [which would be kind of useless].

Fx3 wrote:
- The File -> New or Save only gives the option for NESICIDE projects. Why not source files too?

Because I put most effort into the context menus. I rarely use the application menus except for to load/save or create a new project. A Visual Studio-like "Wizard" interface would be nice, I agree. That would also provide the opportunity to create a "New Project" that is, for example, based on a No Mapper ROM, a MMC1 Mapper ROM, etc. I am working on this!

I don't think newbie-ness has anything to do with it...you bring up a good point about the File New/Load/Save.

by on (#39218)
NESICIDE wrote:
The delay [it should just be a short delay, not a complete lock-up?] is because the same code that disassembles ROM images for stepping in the emulator is [for the moment, anyway] used to disassemble the empty ROM bank when it is being created. You could, for example, create a new ROM and go immediately to trying to emulate it [which would be kind of useless].


Yup, but the small window (loading) remains in background (locked).

by on (#47304)
simulation credit auto
This is so far the best site I've seen regarding NESdev :D