News:

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

Main Menu

M1 Title Text Editor

Started by Samusoidal, September 25, 2018, 12:54:30 AM

Previous topic - Next topic

Samusoidal

FIRST BETA RELEASE!



Github

Edit the NEStroid title screen with ease!



Samusoidal

Windows build will be up later plus more features (source already on GitHub):
- Left/Right and Centered text
- The program now automatically trims your text to length (26 characters) and allows only 4 lines.
- Adds those two extra FF values on the end that break the game if their changed (i.e. the hex is now fully independent, cut and paste into your ROM at 68D).
- Expanded the HEX data field to show all values with no word wrap.

Working on applying the fix directly to a ROM file or saving as an IPS, and adding support for any punctuation found in the game data.

Samusoidal

Latest version online: updated main post.

Samusoidal

Reference images for title text locations:





All hex ranges below INCLUDE blank FF spaces that can be used for letters.

[--TITLE TEXT--]
PUSH START BUTTON
0x513-0x527

(c) 1986 NINTENDO
0x52B-0x53C

[--INTRO TEXT--]
EMERGENCY ORDER
0x67B-0x689

DEFEAT THE METROID OF
0x68D-0x6A8

THE PLANET ZEBETH AND
0x6AC-0x6C5

DESTROY THE MOTHER BRAIN
0x6C9-0x6E2

THE MECHANICAL LIFE VEIN
0x6E6-0x6FF

GALAXY FEDERAL POLICE
0x703-0x717

M510
0x71B-0x72C

Samusoidal

First release published on GitHub, check it out: Releases


Samusoidal

Repositioning code, write-up later.
   
    def convertCoordinates(self, section, offset):
        """
        Converts two signature bytes to x and y screen coordinates.
        """

        offset = int(offset, base=16)
        section = (int(section, base=16) - 32) - 4*((int(section, base=16) - 32) // 4)

        _x = 0
        _y = 0

        _y = (8*(section)) + ((offset // 32)-1)

        _x = offset % 32

        return [_x, _y]

    def encodeCoordinates(self, x, y, screen):
        """
        Converts x and y screen coordinates to two signature bytes
        """

        _section = ((y + 1) // 8) + 32 + 4*(screen - 1)

        _extralines = (y + 1) % 8

        _offset = x + _extralines*32

        return [hex(_section), hex(_offset)]


Roebloz

Thanks, helped a lot with my hack!!!

TobiMikami

So have they come up with a way to throw out the messages at whim like they did with Super Metroid like Subversion and Adcent where they got the room name on screen, or are you confined to editing the original "time bomb set!" End/intro text type stuff.