Basic SMB1 title editing question (solved)

Started by Nokia3310, May 09, 2021, 07:06:36 AM

Previous topic - Next topic

Nokia3310

I'm a big fan of the Game and Watch games. This one was released last year and I want to make the 35th anniversary version that you see below (the copyright string is the only difference from the original SMB1). Looks like a pretty basic edit.



I've tried using the SMB Title Screen Editor (this one: https://www.romhacking.net/utilities/1513/) but I get 'The title data exceeds the size limit' box on screen. Strangely, I also get this if I try to save, having made no edits at all so I'm not sure if this is a problem with the program or if the edit I'm trying to make really would exceed the size limit. The only way I'm able to get the program to actually edit the rom is to remove at least one tile first.

So, I guess my question is (to those who know), is it possible to recreate the 35th anniversary Game and Watch variant as a rom that works on NES hardware? If so, what's the best way for a programming layman like me to do this?

If you're asking 'why would you want to?' my answer is 'because I want to recreate the latest, official variant and see it running on the SNES using Project Nested'. The image above is the same image on the box. I already have the 25th anniversary variant working (released for limited edition Wii consoles where the '?' blocks were swapped out for '25' blocks).

I watched a video where the Game and Watch was hacked. The original SMB1 NES rom is in there but it seems the extra text characters are added by the emulator hot patching the rom rather than a different rom being on the device (flick to 9:20 in this video: https://youtu.be/Rsi8p5gbaps). He runs a hacked version of SMB1 and it replaces that string of text with the 2020 text.

frantik

#1
I noticed that about the title screen editor too.. not sure why it doesn't encode the title screen in the same amount of space it originally takes up.  There's actually a just a few spare bytes you can use to fit the "-2020" text.  Easier to just hex edit the file and add the spare text.  The title screen is just a bunch of strings so you can move the data around a little bit.  Searching for 01 09 08 05 will help you find the 1985 text, then you need to extend it by 5 bytes and push the rest of the text over

To add the 2020 date, edit the last bit of the Mario rom to look like this.. the glowing part is the date string that has been extended.  The 21 E8 is the address in the PPU to put the tiles, the 13 is the string length, and then the next 0x13 bytes are the dates and the word Nintendo


00009fb0h: 95 7A 21 E8 13 CF 01 09 08 05 28 02 00 02 00 24
00009fc0h: 17 12 17 1D 0E 17 0D 18 22 4B 0D 01 24 19 15 0A
00009fd0h: 22 0E 1B 24 10 0A 16 0E 22 8B 0D 02 24 19 15 0A
00009fe0h: 22 0E 1B 24 10 0A 16 0E 22 EC 04 1D 18 19 28 22
00009ff0h: F6 01 00 23 C9 56 55 23 E2 04 99 AA AA AA 23 EA
0000a000h: 04 99 AA AA AA 00 FF FF FF FF FF FF FF FF FF FF



Nokia3310

Quote from: frantik on May 09, 2021, 09:37:04 PM
I noticed that about the title screen editor too.. not sure why it doesn't encode the title screen in the same amount of space it originally takes up.  There's actually a just a few spare bytes you can use to fit the "-2020" text.  Easier to just hex edit the file and add the spare text.  The title screen is just a bunch of strings so you can move the data around a little bit.  Searching for 01 09 08 05 will help you find the 1985 text, then you need to extend it by 5 bytes and push the rest of the text over

To add the 2020 date, edit the last bit of the Mario rom to look like this.. the glowing part is the date string that has been extended.  The 21 E8 is the address in the PPU to put the tiles, the 13 is the string length, and then the next 0x13 bytes are the dates and the word Nintendo


00009fb0h: 95 7A 21 E8 13 CF 01 09 08 05 28 02 00 02 00 24
00009fc0h: 17 12 17 1D 0E 17 0D 18 22 4B 0D 01 24 19 15 0A
00009fd0h: 22 0E 1B 24 10 0A 16 0E 22 8B 0D 02 24 19 15 0A
00009fe0h: 22 0E 1B 24 10 0A 16 0E 22 EC 04 1D 18 19 28 22
00009ff0h: F6 01 00 23 C9 56 55 23 E2 04 99 AA AA AA 23 EA
0000a000h: 04 99 AA AA AA 00 FF FF FF FF FF FF FF FF FF FF


Thanks very much. It works!!! I edited the end of the rom using Cygnus Hex Editor and that code does the job. At first I just edited the part you highlighted, not realising that everything after 'Nintendo' continues as it does in the original rom. This is the first time I've edited any hex code and now I feel like I'm in The Matrix  :laugh:

And it works on the SNES with Protect Nested  :thumbsup:

Nokia3310

#3
I have made an IPS pack of the SMB1 Anniversary variants (link below). This has patches for both the 35th Anniversary Game & Watch version and the 25th Anniversary Wii variant (this was pre-installed on limited edition Wii consoles in Japan and Australia). The 25th Anniversary version has the '?' blocks swapped out for '25' blocks and shows the 2010 date on the title screen.

https://www.dropbox.com/s/nelvzdr0stc51iy/SMB1_Anniversary_variants_IPS_pack.zip?dl=0

The pack has both NTSC and PAL patches for the 25th and 35th anniversary versions.

Again, big thanks to frantik for giving me the info I needed to recreate these  :thumbsup: