News:

Don't forget to visit the main site! There's lots of helpful docs, patches, and more!

Main Menu

Editroid Thread

Started by snarfblam, July 27, 2009, 09:44:57 PM

Previous topic - Next topic

snarfblam



RealRed

Quote from: snarfblamIf so, is anyone interested in testing, or have any suggestions?
Really, the minimal amount stuff you put into your posts is getting old, now I'm gonna start bothering Zhs2.

GF_Kennon

I would help you with testing, i never really hacked NESTroid much, but thats because i tend to destroy the rooms inside the ROM too much, though ill be willing to help a bit.

Maybe if i knew more about how it works and how to not fuck up like last time, then i might hack it a bit more :>

snarfblam

Quote from: Bloodsonic on July 28, 2009, 05:08:01 PM
Really, the minimal amount stuff you put into your posts is getting old, now I'm gonna start bothering Zhs2.

?

CaptainHayashi

#5
Quote from: snarfblam on July 28, 2009, 05:38:53 PM
?

Quote from: IRC<hayashi> Electroria: is it me or did you [quote] the wrong thing in that post?
<PZ-powa|TASing> Watch.
<@Electroria> no
<PZ-powa|TASing> THE WRONG THING IS HE IS TALKING FOR NOTHING
<@Electroria> I pointed out the question he missed

He was referring to Samus-Aran, I think

snarfblam

oic

So, Editroid 2.0 is nearing alpha, but there is a feature that I would like to add that I've barely started on. I would like to be able to add a "drop samus here" feature, which would patch the ROM (or a temporary copy) to start the game at a specific location in a specific level with specific equipment, then launch the rom. Great for testing the level. Other than that, though, it's close to something useful. When I get there (alpha build minus "drop sammy here"), I'll post a current build in case anyone wants to try/test it. Hopefully in about a week.

Zhs2

My NES experience all came from Final Fantasy (and even then, that was only byte-changing in a hex editor and FFHackster;) I've never attempted Metroid before. Should try it sometime. >_> Oh, man. I just remembered my thingy table I made for changing text in Metroid. Gotta go grab a copy and donate it here!

The patching a temporary copy would probably be most preferred, although if you could figure out how to place Samus with certain weaponry with a couple 6502 ASM hacks, that'd be even better yet (that's the method Kejardon and Jathys used for SMILE.)

Also, I only recently learned that you (snarfblam) were the one who made Editroid. Is this a bad thing? :<

snarfblam

The idea is to patch the startup asm to skip the title screen and start with the selected options. Should be easy enough. I've found most of the initialization code.

Phazar

Today, I was bored of recreating old M1 rooms in my SM hack by watching NEStroid speed runs, pausing them, and copying from the screen to SMILE, so I downloaded Editroid to make it easier on me.  I'm considering possibly hacking Metroid 1 in the near future, and the editor is great so far(although COMPLETELY different from SMILE!).  Also, this new start idea sounds cool.  Will it be similar to SMILE's QuickMet/RoomTest?  An in-editor testing mechanism is always useful.

snarfblam

Quote from: Phazar on July 30, 2009, 10:50:31 PM
Will it be similar to SMILE's QuickMet/RoomTest?  An in-editor testing mechanism is always useful.
Pretty much. I've got the patches all figured out. Editroid will make the appropriate changes to a temporary copy of the ROM and launch it with the default NES emulator.

snarfblam

One week, two weeks, it's all the same.

Anyone who can help test, here's the link.
http://ilab.ahemm.org/editroid/download/AlphaRelease_8_10_09.zip

By all means, please try to break it, then tell me how you did it (here, e-mail, or AIM).

xorxif

One month later....

So are you still looking for someone who's looking to put together a Metroid hack? I downloaded the alpha of 2.0, but have been using the old version so far...

Hacker347

Whats editroid?

i know its a hacking tool but what is it else wise


GF_Kennon

Its a hacking tool for the original NES Metroid, also on a side note I had a little test with the alpha, was only able to break the ROM, not the editor, and on another side note you best stop violating the bump rule.

Quote from: MetConst Rules3. No pointless bumping - Topic bumping is allowed, as long as one is able to add to the subject matter at hand with a thoughtful and intelligent post (or new content otherwise, since this is a hacking forum.) Violations of this manner will usually result in a warning.

Topic has been locked, unless Snarfblam wants it unlocked, in which case he can PM me.

GF_Kennon ~

Infinitys_End

Don't know if this is the right place to mention this, but I figured it's as good a place as any.

I have been tinkering around in Editroid 2.0.
I just had a few suggestions, specifically for the GUI of the Palette Editor, which is fantastic, btw, but, as far as I can tell, my ROM does NOT like. :P
It would be nice if the colors could show each corresponding hex data that goes along with it -- possibly if you hover over them or just have a check box to turn the hex byte digits on/off.  I use a great tile editing program called YY-CHR that does this and it's wonderful.

The second suggestion I have is to completely remove that shiny gradient/bevel effect from the color squares completely - just make them all 1 solid color.  When dealing with color, it is very important that you see the exact one you want, and with your setup, it is extremely difficult to tell what color is which sometimes, because that bevel you have on the squares is distracting.  I shouldn't have to squint and pull my face really close to my monitor to see what color is what. 
On top of that, instead of having a big dot in the middle of the color square to show you that it's selected, you should have an outline (possibly bright yellow or magenta or cyan, even white, some color that's not used) around the box not inside of it.  To add to this, it would be very nice if you could implement some kind of eyedropper tool, or maybe an undo, but that might be just wishful thinking...

I have created a mockup pic to help illustrate my suggestions:


Lastly, I wanted to suggest (plead, actually) is there any possible way to make a Samus palette editor?  I know the Missile palette is linked directly with Samus, and I don't know what else, but I did have a want to change Samus's palette for my new hack, without figuring out all the hex involved.  I know it's possible since the guys did it with Suitless Samus in the Metroid Omega patch...

Well that's all for now.  Keep up the great work, otherwise.

snarfblam

Hmm... I guess I'm gonna itemize this.

Quote from: Infinitys_End on May 27, 2010, 03:26:21 PM
It would be nice if the colors could show each corresponding hex data that goes along with it -- possibly if you hover over them or just have a check box to turn the hex byte digits on/off.  I use a great tile editing program called YY-CHR that does this and it's wonderful.
I like this. I'll put it in my to-do list for Editroid.

Quote from: Infinitys_End on May 27, 2010, 03:26:21 PM
The second suggestion I have is to completely remove that shiny gradient/bevel effect from the color squares completely - just make them all 1 solid color.
That's a fair complaint. I hesitated to do that in the first place for that exact reason. I ended up adding the effect anyways because the colors vary from emulator to emulator, and I figured that if it were difficult to perceive the difference in the editor you couldn't count on the player being able to see the color you want anyways. Having run into the same problem myself, though, I have to agree I made the wrong choice between sexyness and function.

Quote from: Infinitys_End on May 27, 2010, 03:26:21 PM
On top of that, instead of having a big dot in the middle of the color square to show you that it's selected, you should have an outline (possibly bright yellow or magenta or cyan, even white, some color that's not used) around the box not inside of it.
I've tried using an outline, and couldn't come up with a color/style that made me happy. The white dot has a black outline. This makes it easy to see on any color, including black and white. I suppose I could try some sort of double-outline to the same effect, but what I have now seems satisfactory and I think there are just better ways to invest my time, especially since right now Editroid is on the back burner.

Quote from: Infinitys_End on May 27, 2010, 03:26:21 PM
To add to this, it would be very nice if you could implement some kind of eyedropper tool, or maybe an undo, but that might be just wishful thinking...
You should be able to undo palette edits using the undo button in the main window. Honestly, I thought you could right-click a color to select it, but apparently I've only imagined that feature. It'll go on the to-do list.

Quote from: Infinitys_End on May 27, 2010, 03:26:21 PM
Lastly, I wanted to suggest (plead, actually) is there any possible way to make a Samus palette editor?
The palette editor edits each level's sprite palettes and primary and secondary background palettes. One of the sprite palettes is for Samus.

The problem is that the game actually discards one or two of the level sprite palettes after loading them and replaces them with a global Samus palette. The difficulty starts with the fact that there are two palettes used for Samus: one for normal suit and one for the justin bailey suit (no suit). But it gets worse: there is actually a series of palettes for each suit. The game cycles through the palettes when the player starts the game for the fade-in effect. It's because of all these intricacies that I relegated this to the hex editor. To me this falls under the category of "advanced hacks," reserved for those who, at least, know their way around a hex editor. It's not that I'm opposed to having such a feature, but like I said, I'm only willing to invest a finite amount of time in the editor. I've opted to spend minimal effort on certain features when another program easily gets the job done. That's why there's no built-in tile editor. I started working on one and gave up one tenth of the way through when I realized I was re-inventing the wheel.


One other thing I noticed. You've posted a number of screen shots where there are graphics that have "wrapped" or "looped" around. I'm guessing that this is happening because you have set your system to use large fonts. By default C# automatically scales programs up to accommodate large fonts, but it can fark up graphics in programs that aren't designed with this in mind. I'm going to put this in my to-do list as a bug.


Thanks for the suggestions. I'm much more interested in making fixes and features that someone finds useful than in things that sound interesting or that I think someone might find useful.

snarfblam

Quote from: Infinitys_End on May 27, 2010, 03:26:21 PMLastly, I wanted to suggest (plead, actually) is there any possible way to make a Samus palette editor?
I did some looking around and discovered exactly how Samus' palette works (now that you've probably completely finished your hack). Nestroid uses "ppu macros" for a number of purposes. For example, the title screen is drawn with ppu macros. Ppu macros are also used to manage Samus' palette.

The Samus palette you see in Editroid is what is initially loaded. However, Samus' colors vary depending on a number of factors (missiles equipped, varia, and justin-bailey-ness). Nestroid executes one of the macros when the game starts and every time one of the above factors changes. Rather than modify the name table, these particular macros target the palette table, changing two or three colors in the Samus palette.

This is an abbreviated list of the offsets of the ppu macros and what they are for (some unlabeled ones are probably for fading in at the start of the game, others I haven't looked into).


Addresses are in RAM
#  offset   description

00 A155
01 A179
02 A185     normal samus
03 A17F     varia
04 A18B     missiles
05 A191     varia / missilse
06 A191
...
18 A1B5
19 A1BD     suitless samus
1A A1C5     suitless / varia
1B A1CD     suitless / missiles
1C A26D     suitless / varia / missiles
...


These are referenced by a pointer table. Here's the fun part: these are for Kraid's hideout. The ppu macros are repeated for each level, and at a different address for each level. The good news is that the pointer table is banked into the same address for each level. In other words, the pointer table is at the same location in each ROM bank, making it fairly straightforward to find the pointer table, which can then be used to find the ppu macros.

So this might be a possibility for Editroid.

Infinitys_End

#18
Hahah, yep!  :lol:

I figured it all out the hard way.  From my hack notes page, concerning Samus's palette colors:
($62A8 in Brinstar - page 1)
($A1AF in Norfair - page 2)
($E74F in Tourian - page 3)
($1218C in Kraid - page 4)
($16122 in Ridley - page 5)

And the rest of the suit palettes all in the same general area.  Another thing is Samus's palette is also shared with the red doors.  I would have loved to separate those two, but I think it wouldn't have been worth it.

Like you said, since they're all organized in the same place on each page, changing the palettes was relatively easy.  I was able to make Samus's colors the same as what people are used to by now (yellow for Power suit, orange for Varia).

Something else I figured out (with a little help from Dirty McDingus) was where to find Ridley's and Kraid's hitpoints... KRAID'S HITPOINTS: $11643
RIDLEY'S HITPOINTS: $15644

P.S. - I really don't want to sound like I'm insulting your intelligence -- but do you know that Editroid has it spelled as "Tourain" in multiple places, right?  It's Tourian.

snarfblam

Quote from: Infinitys_End on July 12, 2010, 08:43:45 PM

P.S. - I really don't want to sound like I'm insulting your intelligence -- but do you know that Editroid has it spelled as "Tourain" in multiple places, right?  It's Tourian.
Hmm... I guess I misread it the first time I saw it and never realized I got it wrong. Looks like everyone else on the internet did too (which spelling do you think has more hits on google?). I'll put that on my growing Editroid todo list.

Hmm... should I correct the spelling throughout the Editroid source code too?

Malpercio

wow, i find that sad. Tourain has 202000 results and Tourian only has 168k

snarfblam

[spoiler][/spoiler]

Decided to post my progress on Editroid. I've made some UI changes, added a couple new editors, and a handful of small changes. You can see the new physics preview in the image. I just have to finish up one last thing, then do some more-thorough-than-last-time testing.

Though I hadn't been planning on doing it, it turned out to be quite simple to make a palette editor capable of editing Samus' palettes.

xorxif

It's looking great and very time saving. I'm looking forward to tinkering with it.

The palette editor looks good.

As far as the physics preview, can you show which scrolling direction the door tiles will change the scrolling state to?

Also, in the expando rom, is it possible to add in the changes that Infinitys_End made to make the title screen much more customizable? And (if he is willing to provide the info,) the changes he made to add a tail to Kraid and Ridley?

Thanks man, appreciate all the work.


snarfblam

Here are the specific changes to the physics preview:
-Solid objects are outlined in white (very helpful if you use invisible walls)
-Breakable objects are outlined in red (depending on the graphics in question, breakable objects were sometimes hard to spot before)
-Normal doorways are shown in green. Horizontal-to-horizontal doors are shown in yellow.

[spoiler=Doors][/spoiler]

Quote from: xorxif on August 08, 2010, 08:03:34 PM
Also, in the expando rom, is it possible to add in the changes that Infinitys_End made to make the title screen much more customizable? And (if he is willing to provide the info,) the changes he made to add a tail to Kraid and Ridley?

Thanks man, appreciate all the work.

FYI, as far as the expando rom goes, any patch intended for a metroid rom will almost certainly fail on an expando rom. All level data is moved around, most program code has been moved, and all pattern data has been moved. Patches aside, anything that could be done to a NesTroid rom could be done as easily or even more easily to an expando rom.

As for customizing the title screen, Infinitys_End's work is documented on Metroid Database. The issue with this one is that I think IE used Editroid's "pattern source editor" to get more tiles available for the title screen. You can't use the pattern source editor in an Expando ROM, but it would be easy to tweak the assembly by hand to load as many tiles as you would like for the title screen.

The process for changing the boss sprites would be exactly the same as before, except that the sprite/animation/pattern data has been relocated. Editing the layout of the sprites is very doable (though I wouldn't use IE's graphics without asking first). You can check out the original rom data (it is well documented) in the Metroid disassembly found at romhacking.net. Or, if IE shares the details you can skip the disassembly, but I imagine IE won't be releasing that kind of info at least until MDbTroid is released (which is supposedly some time this month).

The upcoming version of Editroid has no editor for the title screen or sprites, but since the data is pretty simple, it is possible that a future version of Editroid would be able to edit them.

Infinitys_End

#24
I was going to add this file with the .zip of MDbtroid when it was just a title screen hack.


Hopefully this gives you some insight on how I was able to enlarge the title screen.
The "title screen expansion" patch (made by Kejardon) can be downloaded here.  The patch loads graphics at 1B8D0 during the title screen.