I have an Nt Mini with the CopyNES firmware, a stack of bootlegs, and a dream. A pointless dream to make copies of bootlegs that have already been dumped anyway. Also, it's unclear whether Titanic 1912 has ever been dumped cleanly (all existing ROMs appear to be mapper hacks), so this particular one might be worthwhile. I've already written a few CopyNES plugins for unusual mappers (163, 178, 240) which have worked beautifully (although I'm a lazy shit so they're all overdumpers that require removing extraneous banks from the resulting ROM file), so I'm reasonably confident in my ability to write a plugin.
I'm informed that Titanic 1912 uses mapper 227, and a simple NROM dump seems to support this claim, as it always writes x to $8083+x, which fits with mapper 227's odd the-address-you-write-to-is-what-matters behavior. So, I threw together a trivial CopyNES plugin to dump by writing x to $8083+x for all x in $0 to $80, stepping by $4 (as makes sense for the mapper). This is where the... fun?... begins.
Running that trivial plugin caused it to read $a00 pages, then freeze and get a read timeout. OK... that was weird. How would it get a read timeout? Why would it stop? OK, maybe the cart is invoking an interrupt?
So, I tried disabling interrupts. No effect. This was a ridiculous attempt, since surely the CopyNES doesn't just let the cart interrupt it, but what the Hell do I know.
OK, well, if I can't dump more than $a00 pages, at least I can dump $a00 pages, right? Wrong. I modified the plugin to dump that, and then it started dumping garbage after the $a00, i.e., sending more "data" to the CopyNES than I'd actually programmed it to. It's of course well within the realm of possibility that I made a stupid mathematical mistake, but I did a lot of head-scratching and I'm pretty sure that's not the case.
In desperation, I switched it to dump $800 pages. Now? Now it only dumps $100 and then times out again. What???
OK, next step, throw this all away, do an NROM dump, run it in a debugger, and just reproduce its writes one-by-one, doing an NROM dump each time something interesting happens and adjusting.
Now the game runs. I write $10 to $8093 and the game runs. In CopyNES. ?!?!?!?!?!?!
Is this some mightily conflicted bus conflict or something? Is the cart asserting over RAM? CopyNES plugins are stored in RAM, so anything could happen if it's that insane.
Ironically, I got a CopyNES because I was frustrated with the Kazzo having such poor support, and if this is actually some incredible bus conflict magic, it's exactly the situation that a Kazzo would be better for. I managed to brick mine though...
I'm informed that Titanic 1912 uses mapper 227, and a simple NROM dump seems to support this claim, as it always writes x to $8083+x, which fits with mapper 227's odd the-address-you-write-to-is-what-matters behavior. So, I threw together a trivial CopyNES plugin to dump by writing x to $8083+x for all x in $0 to $80, stepping by $4 (as makes sense for the mapper). This is where the... fun?... begins.
Running that trivial plugin caused it to read $a00 pages, then freeze and get a read timeout. OK... that was weird. How would it get a read timeout? Why would it stop? OK, maybe the cart is invoking an interrupt?
So, I tried disabling interrupts. No effect. This was a ridiculous attempt, since surely the CopyNES doesn't just let the cart interrupt it, but what the Hell do I know.
OK, well, if I can't dump more than $a00 pages, at least I can dump $a00 pages, right? Wrong. I modified the plugin to dump that, and then it started dumping garbage after the $a00, i.e., sending more "data" to the CopyNES than I'd actually programmed it to. It's of course well within the realm of possibility that I made a stupid mathematical mistake, but I did a lot of head-scratching and I'm pretty sure that's not the case.
In desperation, I switched it to dump $800 pages. Now? Now it only dumps $100 and then times out again. What???
OK, next step, throw this all away, do an NROM dump, run it in a debugger, and just reproduce its writes one-by-one, doing an NROM dump each time something interesting happens and adjusting.
Now the game runs. I write $10 to $8093 and the game runs. In CopyNES. ?!?!?!?!?!?!
Is this some mightily conflicted bus conflict or something? Is the cart asserting over RAM? CopyNES plugins are stored in RAM, so anything could happen if it's that insane.
Ironically, I got a CopyNES because I was frustrated with the Kazzo having such poor support, and if this is actually some incredible bus conflict magic, it's exactly the situation that a Kazzo would be better for. I managed to brick mine though...