Banner
Views: 236,583,104
Time: 2013-05-24 04:45:44 PM
25 users online: AirShip, Akireyano, Amos Defamos, baphomet, cyphermur9t, Donaldthescotishtwin, Egadd, Grav, hypershadic, KirbyPizzaPalace, LaughingLuigi, Luckiest3, luigiman09, MaxodeX, Plato, Ramidalv, Shog, shreerocks1324, Sokobansolver, StinNoO, o Tahixham, tatanga, vashvaati, WeegeeBen, yoshicookiezeus - Guests: 39 - Bots: 8Users: 22,881 (1,273 active)
Latest: Shizufuzu
Tip: Don't place Yoshi coins near a goal post because they keep glowing when a level fades out.
ASMPad
Forum Index - SMW Hacking - Resource and Tool Releases - ASMPad
Pages: « 1 2 3 4 »
About time I make a thread about this.

Some of you may remember me releasing the first version of this program last C3. From then onwards, it received many changed until I stopped working on it sometime in January or February this year. Not many people were even using the program since it will bloated, buggy and had tons of useless features.

About 2 weeks ago, I decided to code it again from scratch when I got a hold of SWR's cskas.dll and found a nice new text-editor control. Right now I have most of the program done, although some features don't work right now or are buggy.

Here are a couple of screenshots:

1
2

Anyway, what it currently can do:

- Provide tooltip descriptions for RAM/ROM Addresses (courtesy of AlcaRobot), opcodes (though these are complete shit so I will rewrite them all) and decimal/hexadecimal/binary values.
- Code folding.
- Syntax-highlighting which for the most part works. I still need to fix up a few things though.
- Code snippet library.
- Multi-document support, all of the text-editing stuff Notepad has and some other stuff.
- Main code set up for when you want to code a new custom block, sprite or patch (those 3 SMW image buttons in the toolbar).
- Has an embedded command prompt.
- Ability to search for RAM/ROM Addresses by using Ctrl+R.

Here is a link to the program itself. Note that some features don't work yet (assembling file, go to label, recent files and hotkeys) so I will work on those later. Also, there's a lot of crap in that .ZIP file. Place all of them in a separate directory. Once I submit this, I'll try to organize everything.

Since I want this program to be useful for many users, please do provide feedback on how the program is, how I could improve it, what features you would find useful and what features you find unnecessary in this version.

That's about it, I guess.
Last edited on 2011-10-29 07:51:04 AM by Nesquik Bunny.
Provide source. I will leave no stone unturned.
..the source, you say? Well then, look no further than this link and laugh at how awesome the code I've written is.

Anyway, .. isn't anyone else going to comment on this? Kind of disappointing how dead this (sub)forum is.
willing to try GTK# port for a proper Linux version
This is pretty awesome, but I has questions:

In the first screenshot, you can see the description of a RAM address by hovering your mouse over it. Is the description hardcoded in the program to contain SMW descriptions, or are they stored in a seperate txt file which you can edit later for other things (like a homebrew ROM)?

Is syntax highlighting optional or forced? It would be great if you could disable it because me + ASM syntax highlighting doesn't go well together.

Quote
- Main code set up for when you want to code a new custom block, sprite or patch (those 3 SMW image buttons in the toolbar).

Is it possible use template ASM files other than those 3? (As in, create your own templates and use them in the future)

In general I like the looks of it. Loving the multiple tabs! In my opinion the best feature of ASMpad would be its customizeability. We'll see what'll come out of this :D
Quote
willing to try GTK# port for a proper Linux version

You can go for it, but when I'm done with the entire tool.

Quote
Is the description hardcoded in the program to contain SMW descriptions, or are they stored in a seperate txt file which you can edit later for other things (like a homebrew ROM)?

Actually, I use AlcaRobot for that. Alcaro made a command-line version of it where you can pass arguments and it'll load the descriptions from text files in a separate folder. I used that to get the descriptions. It would be possible and easy to load the descriptions from a text file but I didn't go with that because creating descriptions for every RAM and ROM Address would have been tedious.

Quote
Is syntax highlighting optional or forced? It would be great if you could disable it because me + ASM syntax highlighting doesn't go well together.

As of now, it's forced but I'll make it optional since that's a good idea. For the time being, you can just set all of the syntax highlighting colors to black. How do you and syntax-highlighting not go together though? :P

Quote
Is it possible use template ASM files other than those 3? (As in, create your own templates and use them in the future)

It isn't in the current version but it will be in the future. I did this with the old ASMPad and had templates kept in a separate folder.

Anyway, thanks for the comments. :D Progress is going pretty well on it and within a week or so I should submit it to the tools section. Right now I am focusing the important features, once I'm done with that I'll clean the code.
I admit it, the first version you released at the latest C3 has been sitting on my desktop since then but I still don't really know ASM :P so meh

But I'm really glad to hear that you're still working on it and the new version looks pretty awesome (though not really that different), I really like the tooltip descriptions. I can't really think of anything new you could add so I look forward to finally see this tool in the Tools section.
Well it's good you didn't use that version since I'm not really satisfied with how it went (buggy, crap, useless features were added, etc). I want most users to use this instead of Notepad for SMW ASM hacking so I'm trying to make this as useful as possible. I might make another version of ASMPad which will be probably be very lightweight with minimum features like Notepad since some people prefer simplicity instead.
So far I'm rather liking the program. It'll probably become a replacement to Notepad for my ASM purposes immediately! I'll keep ya posted if there's anything I think could be beneficial to add, but it seems very useful already as it stands (especially taking into account the features already planned).
Doesn't run with mono :(

Looks neat though, besides the color scheme, which I assume is just because of your system. I wonder if something similar could be done as an eclipse plugin...
I'll run MoMA on it, see what's wrong...

edit: Nope, P/Invokes. Don't call native libraries if you want your app to be cross-platform; the docking library for WinForms is known to cause problems like this...
Last edited on 2011-11-02 04:20:59 PM by CommieYoshi.
HFD: Yeah, I know that. It is because of the docking control I am using. There's another docking control library out there but it relies on P/Invokes extensively too so using that isn't an option. I don't really want to remove it because that would mean having a crappy tabbed interface (with the standard C# tab control) and modifying a lot of code. I dunno, really. I'll see if I can do anything about it.

Also, the colors are screwed up because of my graphics card, I think. They won't look messed up on your own system.
One thing I've found bothersome so far is that it seems to be impossible to set ASM files to open up with the program by default (with the "Open with..." dialogue in Windows). Maybe you could see about making an installer or some other way to choose to associate ASM files with the program? I prefer having several different folders open at once with all the tools and their associated files ready for easy access, so having to go through the program to navigate to those folders is somewhat inconvenient for me. I reckon not everyone would want this, and some prefer opening with Notepad instead, so leaving association optional seems like a good idea.
Ah, yes. I forgot about file association, thanks for reminding me about it. It will probably be implemented in the version that'll get submitted to the tools section in a bit.

Thanks for testing and trying the tool out, it's much appreciated.
This one's kind of a big problem, in the sense that it's making notepad necessary!

For some reason, every time I've saved this sprite I'm working on, a gibberish character appears at the start of the file. Not visible within ASMPad, but it stops Sprite Tool from assembling the file properly, and I have to delete the offender manually in Notepad. If the character is necessary, perhaps just putting a semicolon before it and making the program read one byte ahead would be a simple enough band-aid fix.

Additionally, I think having an index of all the sprite tables (and possibly extended/cluster) on hand would be nice, it would also prevent a lot of trips to the RAM map! Perhaps it could be some pull out menu thing, like the code snippets box. I think having a filter you can toggle to ignore all the tables that are currently referenced within the file would be a good option too, as a lot of times I find myself just looking for an unused one.
Originally posted by Vic Rattlehead

Additionally, I think having an index of all the sprite tables (and possibly extended/cluster) on hand would be nice, it would also prevent a lot of trips to the RAM map! Perhaps it could be some pull out menu thing, like the code snippets box. I think having a filter you can toggle to ignore all the tables that are currently referenced within the file would be a good option too, as a lot of times I find myself just looking for an unused one.


Have fun ;)
Originally posted by Vic Rattlehead
For some reason, every time I've saved this sprite I'm working on, a gibberish character appears at the start of the file. Not visible within ASMPad, but it stops Sprite Tool from assembling the file properly, and I have to delete the offender manually in Notepad. If the character is necessary, perhaps just putting a semicolon before it and making the program read one byte ahead would be a simple enough band-aid fix.

Probably because it saves the files as the wrong text encoding. That's definitely something you need to fix.
Vic: Thanks for pointing that out. It was a problem with the method I used to save the file (BinaryWriter apparently doesn't work properly with the encoding I'm using). I fixed that, and added file association as well.

Quote
Additionally, I think having an index of all the sprite tables (and possibly extended/cluster) on hand would be nice, it would also prevent a lot of trips to the RAM map! Perhaps it could be some pull out menu thing, like the code snippets box. I think having a filter you can toggle to ignore all the tables that are currently referenced within the file would be a good option too, as a lot of times I find myself just looking for an unused one.

I don't see why you'd need to look up the RAM Map all the time when you could just use Ctrl+R and search what you're looking for. BTW, the form that pops up on that key combination has been changed around a little and renamed to 'ASMPad - AlcaRobot' since it fits better. I could implement what you want with the link p4 posted, but I am still confused as to how it should look like and work. Could you elaborate a little?

Also, SWR has been optimizing the code lately because he's a freaking hater. Once/if he finishes the .dll library file which xkas-related stuff, I'll finally get around to coding the file assembling function and then submit the tool since it has enough features now to warrant a release.
A few reasons I'd still like something like that:

1) As useful as AlcaRobot is, the window it displays results in is awfully small for a postall search as broad as "sprite table," making it a little clunky feeling to use for that purpose.
2) I forgot about that feature at the time. I did try looking through the menus for a RAM map searcher, but nothing seemed to do that. Perhaps making this feature a little more transparent would be a good idea (though maybe just having a readme will take care of this, as that's typically my first go-to for answers).


p4plus2's post right there (thanks for that!) takes care of most anything I would need it for though (see: laziness/convenience), so its value has already sort of been depreciated. If no one else thinks it would be useful, then don't worry about it - I'm just expressing my thoughts as I go.

I had another idea for a feature though - one relating to jumping to labels. Hows about ya make it to where you can right click on a piece of text (maybe even require it to be highlighted for specificness) and jump to a label that way? It'd be the same thing as putting it in the Go To Label field and jumping from there, and it's certainly something I'd make extensive use of.
Well, about your first point. You are right, it displays it in a small crappy window, but I can't think of anything better right now (for me, it's fine but I guess others would disagree). If you have any better suggestions, do let me know and I'll change it. About your second point, I will probably mention it in the readme, help or something like that.

Quote
I had another idea for a feature though - one relating to jumping to labels. Hows about ya make it to where you can right click on a piece of text (maybe even require it to be highlighted for specificness) and jump to a label that way? It'd be the same thing as putting it in the Go To Label field and jumping from there, and it's certainly something I'd make extensive use of.

You mean right-click it, and then have some button that'd jump to the label when clicked? It sounds like a good idea, and I will probably add that for defines too if I can get it to work smoothly.
Pages: « 1 2 3 4 »
Forum Index - SMW Hacking - Resource and Tool Releases - ASMPad

The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.

Copyright © 2005 - 2013 - SMW Central
Legal Information - Link To Us


Total queries: 27

Menu