News:

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

Main Menu

Metroid Editors/Help Thread

Started by Zhs2, May 26, 2009, 08:39:33 PM

Previous topic - Next topic

snarfblam

No such plans for built-in features. These things can already be done via ASM and/or hex editing. If a hack shows enough promise, there's always the chance you'll be able to enlist help should you need it.

Flower

Where do i have to look for the new Editroid? My fingers are burning!  :bounce:

My hack would be so much more accessible with slope detection, oh my!  :nod:

Thanks for everything snarf though!

Quietus

Snarfblam has said a few times that it'll be released once Rogue Dawn has been released. I presume that doesn't mean the second that RD is released, but rather once the initial furore and bug-quashing session is over (including things that could possible be caused by / related to Editroid), and things have settled down.

Flower

Quote from: Quietus on January 16, 2017, 10:14:28 AM
Snarfblam has said a few times that it'll be released once Rogue Dawn has been released. I presume that doesn't mean the second that RD is released, but rather once the initial furore and bug-quashing session is over (including things that could possible be caused by / related to Editroid), and things have settled down.

Ok gotta admit i am the one utterly impatient here. It is there when it's there.
Apart from that i am curious about what Snarfblam has to say about this.

snarfblam

I feel the need to point out that many features in Rogue Dawn, including the slope feature, are based almost entirely in ASM and not provided by the editor. The two big changes you'll see in Editroid 4.0 are much, much more space for level data and a tile animation system that is more flexible and supports more graphics. But at the moment I'll be focusing on updating Rogue Dawn.

Flower

Quote from: snarfblam on January 18, 2017, 06:48:57 PM
I feel the need to point out that many features in Rogue Dawn, including the slope feature, are based almost entirely in ASM and not provided by the editor. The two big changes you'll see in Editroid 4.0 are much, much more space for level data and a tile animation system that is more flexible and supports more graphics. But at the moment I'll be focusing on updating Rogue Dawn.
Ok thanks for the information given, man my bad you told me already slope is done by asm. Anyway, thanks for everything.

ThatSpoiler

Quote from: snarfblam on September 14, 2015, 06:04:18 PM
You used to be able to drag items around on the map, but due to certain aspects of how the game stores item data, it was quirky and buggy. It's been replaced be a separate, more complete item data editor.



Just select a screen from the area whose items you want to edit, and open the item editor.

I am unable to select the Item Editor. This option is shown but I can't click it. I've tried opening several things (the map, selecting items) to try to trigger it but it remains un-clickable. Several other links are also unable to be selected. Does anybody know why this is?

snarfblam

Have you tried expanding the ROM first via the file menu? Make a backup, expand the ROM, and a number of features will become available.

[spoiler=Why?]
When I do something like write a new item data editor, supporting an unexpanded ROM is just extra work and extra opportunities for bugs. Old versions of Editroid can already edit this data with the old editor, and chances are there isn't any compelling reason not to expand the ROM. I.e. less work makes snarf more happy.[/spoiler]

ThatSpoiler

Awesome! Expanding the ROM is exactly what I needed. Thank you! Though now my emulator is having trouble handling the expanded version of the game. It still plays, but there is a lot of screen tearing. Is this because I use Nestopia as an emulator? Then again, this computer can't handle much graphically. It's probably just my computer. Though it didn't have this problem before the expansion. Maybe my ROM got corrupted. Thank you again for the help Snarf!

snarfblam

Tearing would normally mean that you just need to enable vsync in the emulator. Expanding a ROM shouldn't cause the game or the emulator to perform any worse as far as I can reason.

ThatSpoiler

So I've got a problem. In my NEStroid Hack, Ice Break, whenever I die in Tourian, I respawn in this mess of w's and broken tiles.

[spoiler][/spoiler]

The Tourian music is still playing. Does anyone know why this would be and how to fix it?

Odb718

You probably didnt set your starting point properly for Tourain. Click the elevator room you arrive to, then click start point here or w/e.

TheRaven81

#112
Is it possible to make a hack where the name of the Item/Power Up that you pick up will appear briefly for a few seconds on the screen? This is kind of a "hack request", since I've no idea how to do it myself. Even though I downloaded Editroid, I couldn't figure out how to use it. there was no documentation that I could find.

Grimstar

Quote from: TheRaven81 on April 25, 2018, 09:59:49 AM
Is it possible to make a hack where the name of the Item/Power Up that you pick up will appear briefly for a few seconds on the screen? This is kind of a "hack request", since I've no idea how to do it myself. Even though I downloaded Editroid, I couldn't figure out how to use it. there was no documentation that I could find.
Isn't the 8x8 font just tiles? You would probably have to make a copy of the tile indexes at the positions you want to write to, then overwrite the tiles with the tile indexes for the font so the text appears, right after the normal item grab routine, then replace the tiles with what they were before after the item fanfare is finished and normal gameplay ensues.

Tower

I heard that game gives you 2 shot at ice beam.
As i interpreted that is that you can collect ice beam once and it disapear from both locations until i switch to wave when it reapers.
Am i correct?

Grimlock

Quote from: Tower on June 30, 2018, 07:14:04 PM
I heard that game gives you 2 shot at ice beam.
As i interpreted that is that you can collect ice beam once and it disappear from both locations until i switch to wave when it reapers.
Am i correct?

Correct, you can always go back and pick up the ice beam after getting the wave beam

drr3member

Been using Editroid for several months, but I don't know literally anything about hex coding. All I know is how sprite slots work. How do I make the Squeepts in Norfair and the Sidehoppers in Kraid always jump high? Sometimes when I'm playing my hack they do it but more often than not they only do small jumps. Help is appreciated.

Flower

Quote from: drr3member on September 25, 2020, 01:12:58 PM
Been using Editroid for several months, but I don't know literally anything about hex coding. All I know is how sprite slots work. How do I make the Squeepts in Norfair and the Sidehoppers in Kraid always jump high? Sometimes when I'm playing my hack they do it but more often than not they only do small jumps. Help is appreciated.
The Metroid (USA) - Rom houses a defunct RNG (Random Number Generation).
This RNG is also responsible for certain enemies' behaviour.
For some reason the RNG was still working in the original FDS version, but not in the USA and EUR releases.
You'd wanna replace the RNG with a working one, or you can set the values to a constant value (so they e.g. always jump high).

Flower

;--------------------------------------
; New Random Number Generator
;--------------------------------------
        ; Original game's RNG is virtually useless.
        ; It has a very short period which also syncs with the frame counter used by enemies.
        ; The result is completely non-random behavior. Either they always do something, or they
        ; never do, based on power-on state of RAM.
        ; Here, we replace it with a very compact 8-bit LFSR.
        ; http://codebase64.org/doku.php?id=base:small_fast_8-bit_prng
    .PATCH 1F:C000
        txa                 ; Preserve X
        pha
       
        lda RandomNumber2   ; | LFSR
        beq +               ; |     (uses RandomNumber2)
        asl                 ; |
        beq ++              ; |
        bcc ++              ; |
      * eor #$1d            ; |
      * sta RandomNumber2   ; |
       
        eor #$F0            ; Because there still seems to be a minor sync issue, tweaking the LFSR value varies the apparent randomness.
        sta RandomNumber1   ; The value #$F0 was settled on after testing with various enemies.
       
        pla                 ; Restore X
        txa
        lda RandomNumber1   ; Return RandomNumber1 (return value is not actually used)
        rts
   
    .PATCH 1F:C0AC
        lda #$11            ; | Unmodified, but unneeded
        sta RandomNumber1   ; |
        lda #$1D            ; Seed LFSR (above)
        sta RandomNumber2


This is a solution. Create a project in Editroid and add that code. Result is a true random behaviour.
If you instead wanna have steady constant values, you'd have to do something else. (i can't tell out of the box what)

drr3member

#119
I added the project, clicked build and launch, selected the file, and it came up with an error saying "Patch at Offset 7C010 exceeded the ROM bounds." Doesn't matter whether or not I patch it to my rom hack or an expanded rom with no changes. thanks for the help tho. I might try the more advanced stuff on my next hack, whenever I get to that.

Flower

Quote from: drr3member on September 29, 2020, 07:04:57 PM
I added the project, clicked build and launch, selected the file, and it came up with an error saying "Patch at Offset 7C010 exceeded the ROM bounds." Doesn't matter whether or not I patch it to my rom hack or an expanded rom with no changes. thanks for the help tho. I might try the more advanced stuff on my next hack, whenever I get to that.
We may keep in touch in discord, maybe me or snarfblam can you help you out more. I'm Mindflower#7650 on discord.

Also, i figured the code snippet i sent to you is for the new MMC3 ROM, and not the one you working with probably.

Try this instead:
;This is the randomized enemy behavior.
    .PATCH 0F:C000
        txa                 ; Preserve X
        pha
       
        lda RandomNumber2   ; | LFSR
        beq +               ; |     (uses RandomNumber2)
        asl                 ; |
        beq ++              ; |
        bcc ++              ; |
      * eor #$1d            ; |
      * sta RandomNumber2   ; |
       
        eor #$F0            ; Because there still seems to be a minor sync issue, tweaking the LFSR value varies the apparent randomness.
        sta RandomNumber1   ; The value #$F0 was settled on after testing with various enemies.
       
        pla                 ; Restore X
        txa
        lda RandomNumber1   ; Return RandomNumber1 (return value is not actually used)
        rts

;This can go at the end of the general code file

zaphod77

#121
Or we can actually use the original FDS RNG.

https://forums.nesdev.com/viewtopic.php?f=2&t=20941

the end of the first post has the corrected RNG for non expanded rom.

patch to fix the rng for both normal and expanded metroid here. https://www.romhacking.net/hacks/5433/