Quote:
if someone is to that degree of proficiency, I'm not sure this would be too difficult a problem on the code side even if we don't implement it...
Yes, but as I said earlier in this thread the reasons why I'd prefer native support are:
Quote:
...I wouldn't have to figure out how to best shoehorn my code into the NESmaker code (which may change between versions).
[...]
And yes, I know I could always do this by hacking the existing NESmaker code. But having to patch the main engine is a bit of a hurdle when collaborating, so it'd be way better if this use-case was natively supported.
So if I am collaborating with someone less technical that uses NESmaker, then without a settable IRQ-address I would have to first find some free zeropage bytes (which in worst case may not even be available), and then I would either need to:
1) Ask my fellow NESmaker user to manually modify their output code according to my instructions - tedious and error-prone.
2) Write a program that tries to do the patching of the output code automatically - likely to break with NESmaker version changes.
None of those options seem very appealing TBH.
In contrast, if there was native support for a configurable NMI/IRQ address, I'd just ask the NESmaker user to INCBIN my precompiled 16kB binary in one of the PRG banks, then do a JSR $8000 to give control to my code for doing the cool screen transition/cutscene I've provided for them.
(and perhaps even adding the INCBIN/JSR $8000 wouldn't be necessary, if NESmaker would allow a feature for inserting "plugin code" like this)
Quote:
There is no IRQ, using Mapper 30
Tepples's DMC IRQ was indeed what I was having in mind. The forum thread linked to is quite long though, so I think
the wiki about the DMC summarizes it better if you're short on time.
An even simpler variant of this that I've used successfully is to combine a coarse DMC IRQ which waits for a sprite#0 hit. That way you make sure the DMC will interrupt code that takes a variables amount of cycles, while still relying on the sprite#0 hit to get the finer timing needed for PPU register writes.
Both methods are obviously a lot more cumbersome than a proper scanline IRQ like the MMC3 has, but do enable screen-effects that would otherwise be very difficult to do on mapper's that have no IRQ support.
There's also other neat uses of the DMC IRQ, such as [url=Blargg's DMC saw wave]http://www.slack.net/~ant/misc/nes-saw/[/url]
Quote:
Our main demographic here are people who have zero ASM experience (and only limited coding experience), while hopefully providing enough back doors to more easily hack the engine for the needs of those who are much more confident.
Yeah, that's fair enough. But my hope was that this tool would also allow easy collaboration between people with less programming knowledge (who can use the NESmaker tool without touching the asm output) and those with more programming knowledge (who'd like to add more bells&whistles to the NESmaker-made game, but would prefer using their own tools/assembler). And having to do loads of error-prone patching to glue these things together sounds like not a lot of fun. And seems unnecessary, as it can be avoided with just a little bit of foresight...