Fri Sep 5 22:34:06 EDT 2014

NMK004 ROM dumping progress

Current dumping setup

The previous time that I had worked on this project, I had written up a huge WIP post, but that file no longer exists due to my recent loss of computers so I'll write something totally new. This is actually my second attempt at working on dumping the NMK004's internal ROM; I had worked on doing this dump about nine months ago. My previous effort was actually successful and worked very well, but had one major flaw: it took forever to dump. As in, 9 hours for 128 bytes. Yeah.

After dumping a bit over half of the ROM, I ended up moving my setup around for some reason (I can't recall exactly why) and didn't want to recalibrate all of my tools and set it all back up, so I just stopped bothering. After a while, Lord Nightmare gave me a suggestion to try a different method and recommended some SMD clips to me. I bought some not long after, but never got back to dumping it. I'd go on to use these clips for a while for miscellaneous projects, but didn't really want to try revisiting the NMK004 stuff for various reasons.

Fast forward to 22 August 2014. I've moved back home and am unemployed. What am I going to do now? Why not revisit an old project that still needs to be dealt with instead of being terminally bored! This seemed a great idea, so I spent a good 26 nearly-straight hours working on writing VHDL code and crafting trojan ROMs to spew out the internal ROM to the OPN's PSG registers in a peculiar way. Once I had it theoretically working, I tried dumping the first sector of the internal ROM, as I knew that it had a very distinguishable string there from the last dump attempt. To my surprise, it worked with very little debugging.

First dump

My development process was gradual and built up all the elements over time, making bug elimination a short hiccup through the steps, rather than doing large amounts of debugging at the end. I think this was essential in keeping my motivation high. After getting the sample dump working, I decided I was quite tired and needed sleep, so I postponed further efforts to another day. As I usually do, I ended up not getting back to the project for another several weeks. Typical me.

Now it's 5 September, and my motivation has been renewed. I resumed work yesterday, starting with documenting all of my tools and my hardware setup in the case that I actually have to tear my setup down again, it'll be easy to put it back together. It'll also allow others to dump their own PCBs, though I doubt this will be necessary. This is the last piece of the documentation for a while, so I will start performing the actual dump soon enough. The new method dumps quite quickly (a few minutes for about 192 bytes), so I don't believe it will take too long to actually do the dumping.

There is still a good amount of work I want to put into the code before I release them publicly. I'm not sure how I want to release the actual dumped ROM yet, or what I want to do with it, but it shouldn't be too much longer until emulation of NMK sound should no longer be an issue. It's sad that it's taken this long, and that I of all people had to do it. I don't think this solution is very difficult to have come up with or done, so I'm disappointed that it hadn't already been done. Details of how this dumping method works, and how my previous one works will be given in my next post on this subject, which will probably be around the time that the dump is released.

Posted by trap15 | Permanent link | File under: arcade, nmk004, emulation, reverse_engineering