How to make fireballs in smb1 could ruin the bricks?

Started by lancuster, December 23, 2017, 05:34:08 AM

Previous topic - Next topic

Psyklax

Quote from: nesrocks on December 24, 2017, 07:45:23 AM
So you always expand your roms or hack only games with clearly unused bytes like sequences of 00 or $FF?

Yep. :D I'm too scared of messing with whatever's already there.

Quote from: nesrocks on December 24, 2017, 07:45:23 AM
The code data logger is really useful to get the most of the rom, specially without expanding it. Sometimes you can check the unused code itself to see that there's no way it can be called and is just leftover code. Some other times there are branches that never go to it, and you can analyze that to know if there's a chance it will be used or not.

Tell me more: how can I analyse code to be sure it'll never be used? Having the CDL recording will be useful, sure, but I'd have to play through the entire game and in every possible situation, and even then I wouldn't be sure. As for knowing there are no branches or jumps to it, sure, but how can you search for that?

nesrocks

Yes, you need to play the entire game in every possible situation and you still won't be sure. I have only hacked games for small roms so far, so it wasn't a big deal to:
1 - play it all
2 - use judgement to what was used and what wasn't. usually unused bytes that looked like code would be in small chunks, like 5-10 bytes, so it isn't usable anyway.

As for searching, if your routine starts at 0xDE53 a simple search for 2043DE or 4C43DE could give you some confidence that it isn't used, but it could still be partially used or indirectly used, so even then you can't be sure.

Anyway, in my experience, code is usually used. There isn't always a lot of sequencial bytes of unused code, but there are of data, and that is more easily identifiable.

lancuster

edale, how to compare asm code with machine code? Which program use for that?

nesrocks

I think you forget machine code, just use the disassembly, make the modifications in asm and recompile.

lancuster

Quote from: nesrocks on December 31, 2017, 02:38:48 PM
I think you forget machine code, just use the disassembly, make the modifications in asm and recompile.
Romhacking documents didn't compiled. :(
I successfully fixed the frames of character (but not the enemies), and some of this is remain to fix.
I need to erase "world number" to correct display "get ready" and wanna to fix this tile:


Eden.GT

#25
The direct link to the patch of which fireballs can destroy brick blocks: http://www.geocities.jp/masa_yuu_kaimari/support/BreakBrickb.zip
This patch uses castle loop processing for the data, so you can no longer use that feature upon patching. If using an expanded ROM you can get the code to be inserted in the free space though.

Side effects, according to the author:
· Block fragments can appear at random positions when blocks are hit.
· When striking a hole, part of the screen may change in colour.
· When you hit hidden coin blocks, the used block cannot be seen after coin deposits.
· In rare cases, only hit judgment disappears, and the block sometimes remains visible.
Is the pool clean?

lancuster

#26
Quote from: Eden.GT on January 07, 2018, 07:23:25 AM
The direct link to the patch of which fireballs can destroy brick blocks: http://www.geocities.jp/masa_yuu_kaimari/support/BreakBrickb.zip
This patch uses castle loop processing for the data, so you can no longer use that feature upon patching. If using an expanded ROM you can get the code to be inserted in the free space though.

Side effects, according to the author:
· Block fragments can appear at random positions when blocks are hit.
· When striking a hole, part of the screen may change in colour.
· When you hit hidden coin blocks, the used block cannot be seen after coin deposits.
· In rare cases, only hit judgment disappears, and the block sometimes remains visible.
I already have a patch with the same effects and the same bugs. I've only want to fix sprites on black screen, wanna fix phrase "get ready" and want make breakable all of blocks, except of pipes and flagpole (now ALL is breakable). Current version (patch): http://dropmefiles.com/KEWPv

Eden.GT

Quote from: lancuster on January 07, 2018, 10:38:59 AM
I already have a patch with the same effects and the same bugs. I've only want to fix sprites on black screen, wanna fix phrase "get ready" and want make breakable all of blocks, except of pipes and flagpole (now ALL is breakable). Current version (patch): http://dropmefiles.com/KEWPv

So I tested your hack out, and the green-blue title screen looks kind of sloppy, so I'm offering you the change if you want.
And really, using U1's music patches for your hack? I suggest some original music. I know you may not have a perfect pitch, but what would you change the overworld and other music to if you have the choice?
Is the pool clean?

lancuster

Quote from: Eden.GT on January 08, 2018, 01:25:00 AM
So I tested your hack out, and the green-blue title screen looks kind of sloppy, so I'm offering you the change if you want.
And really, using U1's music patches for your hack? I suggest some original music. I know you may not have a perfect pitch, but what would you change the overworld and other music to if you have the choice?
Example? :D
I don't know how to write music on NES :-\

edale

Quote from: lancuster on December 31, 2017, 09:20:24 AM
edale, how to compare asm code with machine code? Which program use for that?
I have absolutely no idea. I don't know machine code, and I don't know ASM. What I am good at is digging around for the raw data that more experienced/knowledgeable people can use. The only mod I've ever personally made was done 10% with a tool, and 90% through raw hex editing of the ROM.

lancuster

There is a patch that allows you to break bricks/blocks under water?

Eden.GT

#31
Quote from: lancuster on January 21, 2018, 06:44:34 AM
There is a patch that allows you to break bricks/blocks under water?

Yes, there're two patches, actually. One of them only change two bytes of the whole ROM:
Change $5CED and $5CEE's default values ($F0, $13) to $EA, $EA.

From the SMB disassembly:

bcs SolidOrClimb         ;if player collided with solid metatile, branch
                          ldy AreaType                ;otherwise check area type
                           beq NYSpd                   ;if water level, branch ahead
Is the pool clean?

lancuster

#32
Eden.GT, thanks, all is working. :)

January 23, 2018, 11:59:16 AM - (Auto Merged - Double Posts are not allowed before 7 days.)

I did a screen move to the next level(where Mario himself goes forward) as ordinary level. What the numbering a bit off. How to disable the numbering in this case, in this level?

lancuster

Does anyone know how to change the properties of the coins to "killing coins"?
And how to find properties of other blocks to make them like bricks?