HyperHacker
Oh hai.
Because my ISP sucks and I can't afford real hosting, you might have to reload a few times for these to show up...
So. Linux is pretty fucking awesome, but one thing it doesn't do well is hack SMW. If you've ever tried to run LM, you'd see this:
The problem here is the editing window itself is in a "maximized" state, but Wine doesn't resize maximized windows to their parents' size correctly.
Now, the obvious solution is to fix Wine. Apparently, nobody cares enough to do that. Surprising, because I'd expect this sort of bug to break other programs too, but eh.
The next best thing would be to change how LM handles its windows to work around the bug. Obviously not happening. (One more reason to open your source, people!)
The next next best thing would be to write a program that will automatically find the editor window and resize it. This is possible with the Windows API, but I can't be arsed to set up cross compiling. (This is also why AWM still hasn't been updated.)
Fortunately, it is possible to run Linux, hack SMW, and be a lazy bastard all at once, using SpyNCapture, a program that manipulates windows. (That's that Spy Window there.)
Step 1: Murder the fuck out of FailureFox for deleting my half-written post. Then download the program linked above.
Step 2: Open the window list, since the drag-and-drop function doesn't work in Wine either.
Step 3: Find LM in the list. It only shows Windows programs, so this is usually pretty easy. Click it and then click the arrow button.
That brings us back to this window, with some info filled in.
Step 4: Click the First Child button until you get this window (i.e. click twice):
Step 5: Go to the Misc tab, set the state to Normal, and click the checkbox.
Step 6: Oh, look!
Now that it doesn't think it's maximized, you can resize it:
Et voila:
You can maximize it now and it will work, except if you resize LM, the editor window won't resize with it, and you'll have to use the Spy Window to unmaximize it.
If you don't maximize it, watch that you don't end up making it big enough to trigger the scrollbars at the edge of the window, because that just gets confusing.
The overworld editor can be fixed the same way:
Click Next Window until you find the Overworld Editor:
Click First Child until you find WindowOverWorld:
Go to Misc, set state to Normal, click the checkmark:
Resize the window:
Proceed to destroy.
Same restrictions with resizing and maximizing apply.
(BTW, did that fabled open-source SMW editor ever get anywhere?)
[edit] Here's a shell script to be able to launch a native emulator from LM:
Point LM's emulator path to the script, e.g.:
Since LM is a Windows program it will pass the ROM path in Windows format, that native apps can't understand. This script converts it to standard *nix format. Obviously you can change snes9x-gtk to whatever emulator you want there.
[edit] I've submitted a patched version of BTSD that works on Linux. Someone really needs to write a block inserter that doesn't suck, but this will do for now. This version is able to put the .dsc in the right place, actually assemble files, and not delete all the custom blocks when you reopen a ROM.
Because my ISP sucks and I can't afford real hosting, you might have to reload a few times for these to show up...
So. Linux is pretty fucking awesome, but one thing it doesn't do well is hack SMW. If you've ever tried to run LM, you'd see this:
The problem here is the editing window itself is in a "maximized" state, but Wine doesn't resize maximized windows to their parents' size correctly.
Now, the obvious solution is to fix Wine. Apparently, nobody cares enough to do that. Surprising, because I'd expect this sort of bug to break other programs too, but eh.
The next best thing would be to change how LM handles its windows to work around the bug. Obviously not happening. (One more reason to open your source, people!)
The next next best thing would be to write a program that will automatically find the editor window and resize it. This is possible with the Windows API, but I can't be arsed to set up cross compiling. (This is also why AWM still hasn't been updated.)
Fortunately, it is possible to run Linux, hack SMW, and be a lazy bastard all at once, using SpyNCapture, a program that manipulates windows. (That's that Spy Window there.)
Step 1: Murder the fuck out of FailureFox for deleting my half-written post. Then download the program linked above.
Step 2: Open the window list, since the drag-and-drop function doesn't work in Wine either.
Step 3: Find LM in the list. It only shows Windows programs, so this is usually pretty easy. Click it and then click the arrow button.
That brings us back to this window, with some info filled in.
Step 4: Click the First Child button until you get this window (i.e. click twice):
Step 5: Go to the Misc tab, set the state to Normal, and click the checkbox.
Step 6: Oh, look!
Now that it doesn't think it's maximized, you can resize it:
Et voila:
You can maximize it now and it will work, except if you resize LM, the editor window won't resize with it, and you'll have to use the Spy Window to unmaximize it.
If you don't maximize it, watch that you don't end up making it big enough to trigger the scrollbars at the edge of the window, because that just gets confusing.
The overworld editor can be fixed the same way:
Click Next Window until you find the Overworld Editor:
Click First Child until you find WindowOverWorld:
Go to Misc, set state to Normal, click the checkmark:
Resize the window:
Proceed to destroy.
Same restrictions with resizing and maximizing apply.
(BTW, did that fabled open-source SMW editor ever get anywhere?)
[edit] Here's a shell script to be able to launch a native emulator from LM:
#!/bin/bash
foo=${1//\\/\/}
foo=${foo/Z:/}
snes9x-gtk ${foo}
Point LM's emulator path to the script, e.g.:
Z:\home\hyperhacker\.lmsnes9x.sh
Since LM is a Windows program it will pass the ROM path in Windows format, that native apps can't understand. This script converts it to standard *nix format. Obviously you can change snes9x-gtk to whatever emulator you want there.
[edit] I've submitted a patched version of BTSD that works on Linux. Someone really needs to write a block inserter that doesn't suck, but this will do for now. This version is able to put the .dsc in the right place, actually assemble files, and not delete all the custom blocks when you reopen a ROM.
My projects - ROM hacks, Gameshark codes, homebrew, useful apps, online 65816 disassembler
SCAM: HomebreWare and Wiiunlocker
Generation over 9000: The first time you see this, put a meme in your signature.
SCAM: HomebreWare and Wiiunlocker
Generation over 9000: The first time you see this, put a meme in your signature.