Added a few new command line parameters. Actually, they're all new, since before this version Spc2Midi only used the filename. You can read the documentation for the details, or just type "Spc2Midi /?", but mainly, they let you select the sound output mode, sample rate, sample bits, and whether or not to show the note sheet (nogui).
Added new sound output mode, sine wave synthesis. It generates pure sine waves instead of using audio samples. The pitches are exactly the same as with FM; so, it can be used on cards that completely lack an FM synthesizer (I've only encountered one). That also means the pitches will be off, just like FM - at least until I add the ability for you to manually tell the program what the apparent pitch (in hertz) of each sample is.
Added another sound output mode, MPU output. This mode was previously disabled because of lockups on my computer. Those have been fixed, but unfortunately I made some other little change to it (don't remember what), and now it doesn't work anymore. Oh well...
Added keys for toggling various sound output modes. F toggles FM synthesis; A toggles audio samples; S toggles sine wave; G toggles General MIDI output through the MPU401. You can actually play all of them simultaneously. I'm not suggesting that you do, because it sounds rather bad, just informing you that it is possible.
Improved compatibility with Crystal Ware audio card. With most sound cards, the mixing can safely stay immediately ahead of the sound output, but with this one, strange static and clicks are heard unless the DMA is at least 1/30 second ahead of the mixing. Don't know why. Don't care why. Just know that the DMA sync now compensates for it (actually sounds better than ZSNES and SpcTool, no clicking).
Improved compatibility with Telesound 3D card. I refuse to call it a 'bug', because it is one peculiarity of one card, rather an 'incompatibility' ;-) Unlike every card I've ever tested on, this actually has an IRQ connected to the FM timer. So the FM detection/initialization routine was actually making extra IRQ's that the Window's driver didn't know how to handle, thus causing audio to loop infinitely after returning to Windows. Other FM programs caused the same problem. Nevertheless, it's up me to compensate for such things :/
Spc2Midi .113 - minor|
Added pitch sliding to both wave and FM. FM actually sounds more off key in most instances than before because the frequency is now variable 0-6211hz rather than being constrained to whole semitones of the GM scale (0-127), but it was necessary for pitch sliding.
Stops notes at end of song (for songs like the FF6 snowy intro)
Increased compatibility with a few different/unusual configurations, by playing around with my sound card IO in Device Manager, intentionally setting it to every possible configuration supported. Confirmed 8bit DMA channels can be used for 16bit transfers.
Added MPU output (but disabled for now because of strange pc lockups)
Fiery Gui (just for fun)|
In case you've ever wondered, this is what it looks like when your computer overheats. If you wish to be amused, dld it, view it, and simply delete it when it no longer amuses you.
SF Sound Manual|
Anyone read the Super Famicom Sound Manual transcribed by Ledi? It's great and very informative, but notice there are a few missing parts? Well, I added them, using my ASCIIfying ability for the diagrams. Of course, if you have the original TIFs scanned in my Antitrack, by additions are unbeneficial. Personally, I find a huge text file more accessible though.
Added figure 1.2 System Outline
Added figure 1.4 Signal Flow (especially informative)
Included section 8 Development Tools
Corrected opcode for ASL labs
I hereby officially decree Win2k = STUPIDITY! (at least when it comes to DOS support). I used a halt instruction in the main loop to reduce CPU usage, and on my computer it works great. You can even hear the fan tone lower because less power is drawn. Windows 95/98 use the HLT instruction as a welcome opportunity to perform extra processing, but Win2k terminates the program with a GPF. Since the program's birth, it has set the fps to 30 for more precision, but instead of Win2k simply intercepting the port write and chaining to my program at the proper periods (a little jitter acceptable), it's stuck at dumb 18.2 ticks per second. Discovered the real reason why Spc2Midi does not work with the college computers is because they have legacy emulation disabled (and of course, I don't administrative privileges to enable them).|
Tried Spc2Midi last night on my 25Mhz 386, and it played the Mario RPG ending in real time! ;-) (albeit at only 11khz)
Spc2Midi .111 - (source)Added toggle between wave output and FM by pressing 'f' key
Increased timing accuracy by putting Spc2Midi and the real SNES side by side. They should now play in sync for minutes +-1/30 second.
Improved DMA resynchronization greatly
Added left+right volume averaging instead of only using left channel, as some voices were completely silent because they used right volume only.
Set initial key on so that notes playing while saved are played as soon as it starts.
No more 'offensive' HLT instruction
Louis Bontes (author of Naga font editor) site seems to have vanished. I was storing a few of my utilities on there, so the links have been adjusted.
Had a great summer vacation, visiting with family and friends, programming until the next day's dawn, watching tons of anime, and even playing a few video games. No, it only lasted two months, not four like the lack of updates would suggest; but I thought I should let anyone reading that I'm still alive. Amazing, no updates in four months and just this week my counter gave 120 hits!?|
Now I'm back looking for a programming job. Currently I'm just tutoring part time in the college lab.
Added a few minor features to Spc2Midi, simple voice emulation (no gain/adsr yet), fast forward, rewind, and for mere amusement, even playing backwards! Temporarily substituted wave output for the FM. Just found out today that it sometimes unexplainably crashes under Win2k (college computers!?) but has been fully compatible with DOS/Win95/Win98. You might want to download it simply to hear familiar songs played the wrong way.
Btw, did I mention that I'll be graduating in a week and a half! Reiteration for emphasization. ;-)
Minor changes to my page colors. Finally (after wasting several hours!) got it to appear correctly under Netscape too (however, NS still has that stupid bug that changes the font after a table, and of course the nice little menu doesn't appear).|
ShowTmap - simple tilemap shower|
Just a little test program I wrote over the weekend that displays a scrollable Secret of Mana map.
Added variable sized tile blocking, for viewing nonsequential tile arrangements like individual character frames, which are usually 2x2.
Increased maximum wrap width to 1024, hopefully sufficiently large enough for any graphic entity. Also good for scrolling through a huge file really fast.
Added anti-thrashing routine now to spare your hard disk an early death when loading huge files.
'Kirby Superstar' without
'Kirby Superstar' with tile blocking
Added a page to show just a few of my drawings.|
Sorry for the line-feed stripped Zelda routine. Apparently Tripod does not correctly serve the ".asm" filetype. So I renamed it to text, and it appears fine.
Thanks to Necrosaro, Neil, & Fusoya pointing me in the right direction, I figured out Zelda's graphics compression method last night. I probably should have spread finding/tracing/deciphering/commenting over more than one day though so that I got more than 1-1/2 hours sleep ;) For anyone interested, below is the decompiled source with comments. Zelda isn't only game that uses this format. Mario World also does, and Pokemon Silver&Gold both use a more advanced version (more control codes), which is documented by Necrosaro.|
Zelda Decompression Routine
Yay, a new year, a new term, three fun new SNES games...|