This page is simply a place for me to put up my utilities and documents. The utilities include SpriteView for viewing raw graphics in several formats, TileView for viewing byte/word arrays in a file, BgMapper for ZSNES savestate scenes, and lastly Spc2Midi for converting SPC captures to MIDIs. These were all written for myself just to figure out how the SNES, its games, graphics, levels, and anything else all worked, but if somebody else can get some use out of them, here they are. The docs include the ZSNES savestate structure, SNES bitplane graphics, fx chip graphics, levelmap tile tables, how SNES graphic layers are arranged...

Recent - 2001 - 2000 - 1999
2003-10-10 Piken's Pursuits - new site URL

Get this: "Your Tripod website is among our most popular. We know this because it's generating tons of page views! This kind of traffic is a tribute to the content of your site, as well as your self-promotion abilities."

Don't ask me how, considering I don't have enough content to bring anybody by.

Tripod has served me well, and I will always be grateful for that; but it will much easier for me to update my site there. Plus, that ads won't mess up my main menu's formatting :) I'll admit, they are not too intrusive and do have relevant content; however, I probably won't update this mirror as often.

2003-09-01 LanMole 1.2 - project in progress
It's not emulation related, but I've been working on it a few months now.

2003-03-10 BgMapper .177 - minor change
  • Added command line parameter to force a desired SNES video mode '-fv #'. Someone was at wit's end trying to view savestates from SD3 during the map screen because it never showed it in mode 7 - never. I can't figure out what SD3 is doing either because it seems like no matter when the state is saved, the video mode register is ALWAYS 1 - regardless of what scanline or cycle it is saved on. So, I just cheated by forcing it to mode 7, "-fv 7". (credit A.Lurker)
  • Recompiled to PE format rather than RDOFF - no real significance, just a note. It's still a DOS program after all.

  • 2002-12-12 As if you couldn't tell by the lack of updates, I haven't been working on my utilities at all, since college simply takes more time now. Yay, last final of fall term was today. Don't depend on any progress soon, but be comforted I will NOT remove this site simply because of lack of interest - even if only one person a week visits it.

    2002-10-01 Spc2Midi .130 preview
  • **Preview** GUI version created.
  • Rather than using numbers from the source directory (0-255), emulation and simulation use uniquely identified samples, since some games remap them while playing. Secret of Evermore and DOOM sound correct (no longer the wrong instruments) and Return of the Jedi is finally audible. Also should fix the rare case of an SPC state captured while the game code begins to play but is still setting up the table.
  • Added clear oscilliscope, faded oscilliscope, ocean oscilliscope, volume bars, and voice info visualizations. And of course, the old horizontal roll sheet is still in there. They are slow because of using the GDI SetDIbitsToDevice. Any suggestions?
  • Set function keys F5,F6,F8 to play/pause/stop. No F7 for record yet.
  • Silly fix. MIDI files exported all notes the same volume because of debugging code I forgot to remove :/
  • Change the stupid hack for drums. Implement drums and banks in all MIDI sound and file outputs.
  • Stop now stops emulation too, when before emulation would continue. Pause still continues preemulate.
  • Put hacks in for both "Sailor Moon RPG" and "Super Puyo Puyo 2" (they were stuck in an infinite loop polling the data port) but they are not yet applied because I'm unsure what method would best detect when those are loaded. Header game name would work, but only if a header was present in the SPC and wouldn't work with savestates.
  • Typo in last version. Dump buffer should have been "dbrr", not "brrd".

  • 2002-08-27 Spc2Midi .121 - Felt like working on this old project some more. Still a console app, but it should work in helpless WinNT/XP now.
  • Spc2Midi finally converts 'SPCs' to 'MIDIs'. The sad thing being most of the MIDI exporting code was already done two years ago, I just never bothered to finish it :/ Use the "/midi" parameter. It records to a file with the same name as the SPC/ZST/ZMV file, but with a .MID extension. Yes, the result sounds terribly out of key.
  • After much conversion, Windows console version included.
  • Note visualization has been removed for now, in preparation for GUI.
  • GM synthesizer output for Windows version (if your soundcard has wavetable synthesis or a software driver synthesis).
  • Dynamic initialization of sound outputs, so if a sound output is toggled on that was not originally specified on the command line, it will initialize the hardware even while playing.
  • Parameter to dump entire BRR buffer to wave file "/brrd".
  • Solo parameter to start playing with only selected voices "/solo#". Voices can be in any order, or even 0.
  • Disassembly listing parameter "/asm". Before, disassembly could only be viewed by recompiling. The listing is my own hybrid syntax. If you don't like it, too bad.
  • Fast parameter to play at maximum speed on your PC. Plays the whole Mario RPG ending parade in only 4 seconds "/fast".
  • Tune parameter to play a constant tone 0-12543hz "/tune#". Default is A440hz, and for anyone wondering, middle C = 262 (261.625). Press 't' to toggle.
  • Pitch slide can be disabled while playing. Press 'p' to toggle.
  • Parameters may be either DOS '/' or Unix '-' style, whichever you prefer.

  • 2002-04-15 Most curious?? Sorry all you nearly 200 visitors Sunday. Not sure why flood, but I haven't done anything new :/
    Piken's Utilities, had a total of 294 visitors last week. Visitors for last week divided per weekday:
    2002-04-08: 20
    2002-04-09: 19
    2002-04-10: 17
    2002-04-11: 14
    2002-04-12: 16
    2002-04-13: 17
    2002-04-14: 191

    2002-03-20 Comb ordering DLL with VB demo
    Totally unrelated to emulation: A friend recently asked me to speed up his already speedy Visual Basic comb sorting routine. Since I recently learned how to create DLLs in assembler, I thought this would be a good exercise/challenge to try. The demo includes the DLL and a VB example that shows how to call it using a few different array types. On this test machine (PII 350Mhz), it ordered 1 million longs in 10 seconds. I'm not sure if that is really that good or not, but it seems fast enough to me.

  • Good news, I'm not dead! Unfortunately that's about the extent of the good news. Well, there is one good thing. That GUI I've been too lazy to make any significant progress on is now about 95% done; the one I've been teasing you about since last year, so long that you don't even care anymore? ;-)
  • I've also learned that XP is not only more bloated and slower than any Windows, it also doesn't improve DOS compatibility worth a dime.

  • 2003 PikenSoft