This program will attach the GBS Player 1.02(or a modified 1.02) program to a GBS file, and make a .GB BGB compatible file. It will overwrite existing .GB files without asking, which is helpful in debugging. It also includes a basic command reference file, and can find potential bank switching writes within bank 0, and the initially loaded 0x4000 - 0x7FFF code. Source code included. GBS2GB 1.17 (Aug-23-08:Added an option to remove font display. Lowers GBS Load limit from 470 to 2D0 when used)
If you want to use the program to convert a GBS as it is into a GSF file, you can download this, and put the files in with the current version of the program: GBS2GSF Addon (Now with Goomba Color 3-31-2008)
If someone else wants to try to make working versions of these, you can at least find working init and play code in these:
None right now.
Fixes to try:
Check the following registers:
FF70 (if written to/read from, try to code out all uses. They are supported, but often not needed, and always make it more complicated to do a rip)
FF24-FF26 (These are channel enable/volume registers. Zeroed out without undoing, or getting written with bad data is something to check)
FF06,FF07 (These are the 0x0E/0x0F GBS header values. FFFF Bits 1,2,4 (& 0x07) are valid writes to include in 0x0F, bit 0x80 is speed doubler. 0x44 is for vblank+timer usage. See GBS2GB docs)
If some notes are missing, check FF30-FF3F for wave pattern writing in the game, then in the GBS. Note that some games have a distinct wave pattern table from a game reset, and won't have one written by code(see rhino rumble for example)
Watch what's written to 2000, 2100, 2666, or whatever address is used for banking. Make sure to adjust bank data, and check again if there's more trouble, like hard-coded writes
Check for writes to 3000-3FFF, which are generally written with 0, and often undo banking procedures, so remove them.
Check what's written to FFFF the last time it's written before a song. Use the same in the GBS's init routine if it's not 1(GBS header 0x0E/0x0F = 00), 4(see 0x0E/0x0F of header), 5(vblank+timer, see GBS2GB documents), or 0/not written(Game Genie BIOS does this, probably not accurately rippable)
Another FFFF issue is that Nezplug doesn't like certain types of FFFF writes that won't screw up a .GB of a GBS. Keep it to none, so the player handles it, or 1 in init if it needs to be non-standard, like Animorphs
One more thing I recently learned is that some GBC programs rely on FF4D to determine how to render the music properly. Most rips can be dealt with just by leaving the GBC setting off, but some rips can use the GBC setting to run more similarly to the original game, even though this may have caused trouble in previous versions of NEZPlug.
Run the same song in the game, and a .GB of the GBS, and check that the initial song data looks right.
If song init seems correct, start from the end of the Init routine on game and .GB of the gbs, put a breakpoint on the Play routine in both, set the .GB's registers to the same as the game's registers when both have hit play, and alt-tab between programs, stepping through the code until they're not identical in registers or PC position.
Beyond this, one starts to see issues like calls that start in the GBS header, jumps into 0000-0150 code without crashing anything, or other similarly hard to deduce problems. Such insane issues can sometime be better debugged with NEZPlug using custom RSTs that hang the GBS with 18FE commands so you can look at the stack addresses. With out-of-range addresses from the nezplug stack, you can add breakpoints in BGB.
Bakuchou Retriever Master defied all of the above, and required manual stepping to make work, as it actually used the RST 38 calls for something, and managed to jump to a spot in 0000-0150 that didn't cause any visible error in code besides the GBS not playing
Banking to 0, or a non-existent bank may screw up the hardware side of GBS playback. This is still to be determined, by me at least.
I'm ready for more NSF ripping now. The Mach Rider track was recorded on the hardware for me, and it turns out it's FCEUXDSP that plays it wrong, and the remix for Smash Bros. is also off. Knowing this, I can more confidently trust my players to be accurate. NotSoFatso Update
An updated FCEUXDSP (Homepage), which supports NSFs a bit better. It can play NSFs with no bankswitching data, and you can use more of the debugging tools with the NSFs, like the trace logger, data logger, and memory viewer. I've also included a CDL scanning VB program, to help get rid of unused banks after logging all song data from a reset. The fast-forward button helps a lot for this. One thing: don't optimize NSFs too much. Many still need some work, for various reasons. Having used banks in a completed form helps get them working right. The changed source files are included.
NotSoFatso-UF's Version + Wave_Square.h update
Simply UF's latest listed NotSoFatso source(09262007), with the Wave_Square.h file updated with some code that functions the way FCEUXDSP's sound code does. Makes 4017 inits work better.
Other miscellaniac stuffs:
I've had an aversion to firefox due to a couple of issues for a while now, but I think I'm ready to switch over. I'm putting this here so I can easily get the info again, and so the specific info can be spread around a bit. All my main concerns have been addressed in a way, so I think I'll be sticking to it.
If you're having trouble logging into a site using Firefox(this may happen with phpBB forums), you can get rid of the cookies for that site by doing this:
Go to Tools->Options->Show Cookies, type in the name of the site, then select all the ones that apply to the site and click 'Remove Cookie'. Could save you several re-logins
NoScript - Without this in place, I managed to get my first adware infection since I learned how to secure IE6. Whitelisting only as needed even saves page load times. Duplicate Tab - Lets you copy the current tab to a new window, and retain the address history. For IE pundits: Duplicate Tab Options>Context Menu>Bottom Checkbox(show in right click menu for links)>ONLY enable Show 'Duplicate Tab to New Window' in the area that appears. This should get you close to how IE deals with a new window. Handy Xtra Stuff - Can be configured to popup "Alt" Text the way "Title" Text is displayed. Practically required for comfort if switching from IE. ImgLikeOpera - Boxes up Alt Text in an image box. Lets you load only cached images, which is nice for flakey or slow connections, or if you like low loading overhead. QuickProxy - So I can enable/disable Proxomitron support really easily. (I prefer the 'Dull square iconset') Greasemonkey - Lets you write/modify scripts to do things to webpages so they're displayed the way you want them.
I used it for this: put_alt_text_in_title.user.js Statusbar Clock - I just wanted a clock with the date/Day of the Week. Updated to seem compatible with the new Firefox, as the comments suggested: Firefox 3 hack(Save, Drag/Drop into a Firefox window to install) Organize Status Bar - I like the list to end in 'statusbar-clock-dis...', 'gm-status', 'ilo-statusbarpanel', 'noscript-status(Icon,Label,Xss,Redi...)', 'quickproxy'. Makes it easy to customize the order.
This small program will allow you to mix multiple RSN files into 1 playlist, with the files contained in the RSN in alphabetical order. I've heard people ask for something like this here and there, so I finally decided to try getting something together. Note that very large playlists can be made with this, and when loaded into winamp, they can slow the computer to a crawl during processing. If you want a complete playlist, you may want to make seperate alphabetical files, so they can be processed by winamp, then saved over the existing unprocessed playlists afterwards. Processing #-B of the Zophar's Domain set took winamp over a minute in generating extended information from the RSNed SPC, and resulted in a playlist of 2574 entries. Once the playlist was resaved with extended information displayed, it reloaded into winamp with no processing time.
SPC Timer Update
I modified Damien Good's(CaitSith2) SPC Timing program with some logic that applied a little better to the GBS-SPC packs I was ripping. May work well with other SPCs as well.
I also made a Password Generator which has yet to be sufficiently indexed on search engines yet. I'm putting this here because they don't crap out on this page.
It supports a password generator for the following games, as of 1.08:
The Genius Bakabon (NES) (Encode/Decode)
Space Shuttle Project (NES) (Encode)
The Battle of Olympus (NES) (Encode/Decode)
Solar Jetman (NES) (Encode/Decode)
Kid Icarus (NES) (Encode, Original + Virtual Console/Revision 1, and NES<->VC convertor)
Fire 'N Ice (NES) (Encode/Decode)
Who Framed Roger Rabbit (NES) (Encode/Decode)
Bubble Bobble (NES) (Encode/Decode)
Casino Kid (NES) (Encode/Decode)
Find it here, under the "Misc. Game Utils" section
My free Hex Editor of choice has a new freeware version up. If you use this version, I suggest you customize the toolbar with a Find bar, Forwards and Backwards search buttons, the Checksum drop down, and take off a couple of the bars. I replaced the Standard toolbar stuff with the 'Old Toolbar' stuff. It can be made to look like the 2.0 version's bar, and it seems promising with a bit of customization. HexEdit 3.0
Also, here's a 2.0 EXE with the intro dialog ResHacked out of it, as well as independent settings from 3.0, to spare a fight over incompatible toolbar settings: HexEdit 2.0, Intro Dialog Removed
(If it won't show the main window, make a file in the same folder as the program named "autoexec.hem", run it, close it, and remove the file. This worked for me. Alternately, you can use the included Hexedit_20_settings_reset.reg to reset the registry entry used for this version of the .EXE file)
2.0 is superior to 3.0 in that it's less bulky, and loads a few moments faster. It's just plain better if you only need it for simple stuff, like copy & paste, or the comparison features. I never bothered to remove the intro screen when I used it as my primary Hex Editing app, but that's because I started it occasionally, and used it for long periods of time. You can install it(or copy it from it's install folder) wherever you want, and also install 3.0, and both will coexist peacefully, if started one at a time. Since both versions are freeware, you get to use either or both. I find I'm not using the new features, and the toolbars on 3.0 start a bit borked, but they can be replaced with working ones.
Grandia Music File Splitter
If you have a Grandia disc for the PSX, you can extract the .GMS files from it. Then you can use VGMStream by HCS to play them. Feel free to batch-file the set into ideal working order, if there's an interest.
A (less) beta-ish USFLib management program. Compresses files into SR64 chunks for manual addition, extracts SR64 sections according to the number of SR64 tags in the file. Now lets you confirm the size and start point, and cancel if it looks wrong.
Can also sometimes be used to make working save-states out of USFLibs and optionally, miniusf patches to the file.
Not heavily debugged, and not well documented, but it tends to work from my use of it. USFLib Extractor (01/16/09)