An IDE for NES 8-bit

Discuss technical or other issues relating to programming the Nintendo Entertainment System, Famicom, or compatible systems.

Moderator: Moderators

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

Post by cpow » Tue Oct 14, 2008 4:10 pm

No Carrier wrote:Gonna give it a try! I'll try to keep my eye out for updates, but please continue to post here when new features are added!

EDIT: Some suggestions after a quick glance. Perhaps when showing the palette, you can include the hex number for each color. Also, it would be great if you could magnify (2x) the nametable editor.
Wow! Thanks for all the great feedback. I'll try to answer all the questions. I want to put together a HELP file for the tool, also...eventually!

1. Exporting to binary or assembly source is supported. Right click on anything in the left side, like a background pattern or the PATTERNS (to export all) and you should see "Export Binary" or "Export Source".
2. To magnify the nametable editor from 1x, 2x, 4x to 8x, either mousewheel over the nametable graphic or right click and select Zoom->100%, 200%, etc.
3. To organize assembly banks to different addresses, use the .org directive. You can specify several ".text" segments (give each a name) like:

.text bank1
.org $8000

...

.text bank2
.org $c000

Size is not yet implemented but I thought something similar to P65's .checkpc would be appropriate.

I will definately look at implementing the suggestions, all great and hope to make this a very useful tool.
I used the Windows "CArchive" class to save/load (the project is in MSVC++ after all). I agree a better file format could be used. There is indeed a mix of binary and text data in the file.

I am adding features daily. Some of them are "little" while others are big. For example, I had just added the "Alpha tile and "Set Alpha Caret" feature to the nametable dev form right before posting. I saw it listed as a feature in someone else's tile editor and thought it'd be cool!

More later! Keep the suggestions flowing. I'd be happy to answer questions via direct mail, also...

christopher_pow@hotmail.com

User avatar
Zepper
Formerly Fx3
Posts: 3214
Joined: Fri Nov 12, 2004 4:59 pm
Location: Brazil
Contact:

Post by Zepper » Tue Oct 14, 2008 4:50 pm

I disagree. You have created much like a frontend + CHR editor. Well, ASM coding is still required, so newbies might get frustrated if 6502 knowledge is strictly required. Next, we have tons of good and bad 6502 disassemblers, and I can't see any improvement about editing subroutines or linking them with your CHR tools, like loading tiles from a certain location as example. For my best, it does not take out manual work.

You barely has implemented a "run" button (using an emulator to run your new 6502 code?), or even a "debug" menu. How would a programmer get inside the things without breakpoints or anything to debug/trace the new 6502 code? Only "edit"s. And *how* does your program locates the SMB1 and Zelda title screens?

My respect, of course. I hope you improve this software, really.

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

Post by cpow » Tue Oct 14, 2008 5:06 pm

Fx3 wrote:I disagree. You have created much like a frontend + CHR editor. Well, ASM coding is still required, so newbies might get frustrated if 6502 knowledge is strictly required. Next, we have tons of good and bad 6502 disassemblers, and I can't see any improvement about editing subroutines or linking them with your CHR tools, like loading tiles from a certain location as example. For my best, it does not take out manual work.

You barely has implemented a "run" button (using an emulator to run your new 6502 code?), or even a "debug" menu. How would a programmer get inside the things without breakpoints or anything to debug/trace the new 6502 code? Only "edit"s. And *how* does your program locates the SMB1 and Zelda title screens?

My respect, of course. I hope you improve this software, really.
I think better help within the tool would have gone a long way to answering your questions. The Emulator does have debug support...click on Breakpoints in the lower right corner of the Emulator form to get to the breakpoints dialog. I have thought about extending it so you can have multiple breakpoints defined and enabled/disabled much like a good IDE but haven't got that far yet. To make changes to assembly and see your updates in the Emulator you just need to right click and select "Assemble..." then go to the Emulator and hit "Reset" and "Run". Code trace is also on the list of improvements...

The SMB1 and Zelda title screens were captured directly from the tool running the SMB1 and Zelda ROMs imported into it via the ROM Snooper (again, right click on the ROMS item and select "ROM Snooper". Import a NES ROM and play). Of course, my mapper support is currently limited to no mapper and MMC1 with a few others in the works.

Thanks for your feedback! It is making it more obvious to me that I need to put some effort into help! I thought a screenshot gallery (posted on website) would be a good start for most.

User avatar
Zepper
Formerly Fx3
Posts: 3214
Joined: Fri Nov 12, 2004 4:59 pm
Location: Brazil
Contact:

Post by Zepper » Tue Oct 14, 2008 5:39 pm

NESICIDE wrote:The SMB1 and Zelda title screens were captured directly from the tool running the SMB1 and Zelda ROMs imported into it via the ROM Snooper (again, right click on the ROMS item and select "ROM Snooper". Import a NES ROM and play).
Unless you're using your own emulator, I don't know how your program would capture the current CPU state on an 3rd part emulator..?
NESICIDE wrote:Of course, my mapper support is currently limited to no mapper and MMC1 with a few others in the works.
It shoudn't be, as ASM coding & running wouldn't matter for an IDE. Even to debug it shouldn't be mapper dependent though. There's no special context of a full mapper knowledgement for an IDE ambient. If I can launch my emulator through your program, fine. Your "ASM text editor" needn't to recognize specific mapper writes...

...unless I'm misunderstanding the things?

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

Post by cpow » Tue Oct 14, 2008 5:51 pm

Fx3 wrote: Unless you're using your own emulator, I don't know how your program would capture the current CPU state on an 3rd part emulator..?
Yes, click on ROM (in the tree-view at the left). Click on EMULATOR in the list-view at the bottom left. Then the Emulator pops into the Form view. I have a bit of trouble getting the EMULATOR item to show up in the tree-view like I want it to...so it's not as obvious that the EMULATOR is there, but it is.

If you right-click on ROM in the tree-view you can select ROM Snooper which will open a file dialog for you to load in a precreated NES ROM (SMB1, Zelda, Zelda 2, Kid Icarus, etc.) or even one that you exported from NESICIDE. Then go to the EMULATOR form and select the ROM from the combo-box at the top of the form. Then click "Reset" and "Go".

So, yes, it is my own emulator, my own assembler/disassembler. I agree with you that there are many others available. This whole thing started as a pet project. It's not perfect and won't, probably ever, meet everyone's expectations...but it is my attempt at it.

User avatar
BMF54123
Posts: 410
Joined: Mon Aug 28, 2006 2:52 am
Contact:

Post by BMF54123 » Tue Oct 14, 2008 6:24 pm

Looks pretty amazing so far, but I would recommend using a different palette, or allow users to import their own. The one you're currently using is really old and inaccurate, and games developed with it might not look so good in either newer emulators (like Nestopia) or real hardware.

I have a good all-purpose NTSC palette grabbed from Nestopia I can upload when I get home, if you're interested.

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

Post by cpow » Tue Oct 14, 2008 6:44 pm

BMF54123 wrote: I have a good all-purpose NTSC palette grabbed from Nestopia I can upload when I get home, if you're interested.
That would be great! Thanks.

User avatar
Laserbeak43
Posts: 188
Joined: Fri Sep 21, 2007 4:31 pm
Contact:

Post by Laserbeak43 » Tue Oct 14, 2008 11:08 pm

hi,
haven't been so enthusiastic over 6502 programming in a while. the idea of an IDE kindof makes it seem like i can accomplish what i want a lot faster. but anyway. when i try to run the parallax demo, i can't run the emulator. is there a reason for this?
Noob sticky!!
Please document this part of the NESdevWiki!! XD
YOU NEED A RETROMACHINESHOP!!

User avatar
BMF54123
Posts: 410
Joined: Mon Aug 28, 2006 2:52 am
Contact:

Post by BMF54123 » Wed Oct 15, 2008 1:34 am

Here's the palette, taken from Nestopia at default NTSC settings.

Image

User avatar
No Carrier
Posts: 290
Joined: Tue Dec 13, 2005 4:19 pm
Location: Gainesville, FL - USA
Contact:

Post by No Carrier » Wed Oct 15, 2008 4:00 am

NESICIDE wrote: 2. To magnify the nametable editor from 1x, 2x, 4x to 8x, either mousewheel over the nametable graphic or right click and select Zoom->100%, 200%, etc.
Not bad, but I would like to see the entire nametable visible when zooming. Perhaps being able to maximize the window that the IDE runs in would be helpful for this purpose. That is one thing I like about tepple's pineight nametable editor - not that you can zoom in and out, but you can see the whole nametable at 2x size.

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

Post by cpow » Wed Oct 15, 2008 5:26 am

No Carrier wrote:Not bad, but I would like to see the entire nametable visible when zooming. Perhaps being able to maximize the window that the IDE runs in would be helpful for this purpose. That is one thing I like about tepple's pineight nametable editor - not that you can zoom in and out, but you can see the whole nametable at 2x size.
I'm still looking for the correct combination of windows message handlers and magic incantations that can make widget resizing on window resizing a reality.

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

Post by cpow » Wed Oct 15, 2008 7:37 pm

Laserbeak43 wrote:hi,
haven't been so enthusiastic over 6502 programming in a while. the idea of an IDE kindof makes it seem like i can accomplish what i want a lot faster. but anyway. when i try to run the parallax demo, i can't run the emulator. is there a reason for this?
I'm still struggling with save-state with the emulator. The NPF file that I have put up on the website, when I download it and load it into NESICIDE and hit "Go" in the Emulator it doesn't display anything. However, if I hit "Reset" either while it is still running or hit "Stop", "Reset", and "Go" it works. I have made a few improvements to the save-state logic but have not yet put those up on the site in the form of a new ZIP. If that doesn't work for you, there's a chance--as always--that your system has something going on that makes my emulator not work. If other NES emulators work on your system then I would suppose mine should also work.

The improvements I'm talking about allow you to stop the emulation, save the NPF, and pick up in the emulation where you left off the next time you load the NPF and hit "Go" (unless you hit "Reset" first, of course).

strat
Posts: 370
Joined: Mon Apr 07, 2008 6:08 pm
Location: Missouri

Post by strat » Wed Oct 15, 2008 8:45 pm

So you can actually write code in this thing and instantly run it ala 6502 Simulator? Niiiice.

... But it would be great if it also worked as a frontend for an existing assembler (say nesasm or ca65), so you can build an existing project and play it.
Last edited by strat on Wed Oct 15, 2008 9:00 pm, edited 1 time in total.

User avatar
Laserbeak43
Posts: 188
Joined: Fri Sep 21, 2007 4:31 pm
Contact:

Post by Laserbeak43 » Wed Oct 15, 2008 8:53 pm

those are cool features. i wont be able to verify what's causing the error till i run my other emus though. I've just recently installed 32-bit vista, and haven't really gotten back into nesdev since.
i'll be...you know what? why not...

loads fine in fceuxdsp...
runs fine in nintendulator as well...
hmm, lemme try nesicide one more time...
ahhh sweet. i see the emulator. maybe it had something to do with me closing the previous project and opening a new one withought exiting nesicide?
hmm lemme check... nope. weird. oh well. if i ever manage to reproduce it, i'll let you know. thank :)
Noob sticky!!
Please document this part of the NESdevWiki!! XD
YOU NEED A RETROMACHINESHOP!!

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

Post by cpow » Wed Oct 15, 2008 9:12 pm

Laserbeak43 wrote:loads fine in fceuxdsp...
runs fine in nintendulator as well...
hmm, lemme try nesicide one more time...
ahhh sweet. i see the emulator. maybe it had something to do with me closing the previous project and opening a new one withought exiting nesicide?
hmm lemme check... nope. weird. oh well. if i ever manage to reproduce it, i'll let you know. thank :)
Thanks for the real-time debugging! :D
There is a slight "problem" with the EMULATOR item not showing up in the tree-view (top left) when the ROM item is expanded. So you kind of clumsily have to click on ROM, then move down to the list-view (bottom left) and click on EMULATOR. Has to do with the way the form-view (right side) switching code works...and, since it is only a minor nuisance, has not been top on the list.

Post Reply