11 March 2016 - Forum Rules
Started by Marscaleb, March 18, 2016, 02:26:08 AM
Quote from: tcrf.netThere are some leftover debug routines in the game, but none can be accessed without cheat devices or hacking.Game Genie code KKKZSPIU activates a level select and debug mode.On the title screen: Press Up or Down to select a world to start on. Press A to increase the number of lives by 5 (a tile will change each time you press the button). A + B + Down on Controller 2 warps you to the Princess' chamber at the end of the game. A + B + Right warps you straight to the final curtain. When you start a game, your item box will be filled with one of every item plus an extra Warp Whistle, and the remaining slots will be filled with P-Wings. During gameplay: Press Select on Controller 1 to cycle through all of Mario's forms. A / B + Select gives Mario a Kuribo's Shoe (it may look messed-up in some levels, but will otherwise work fine). Additionally, you'll have infinite time – it will still tick, but Mario won't die once it runs out.
Quote from: Marscaleb on March 18, 2016, 02:22:38 PMMy nephew's 14 I think.We were playing the NES version last night, but really, NES, SNES, GBA, I think you're splitting hairs between the technical differences.
Quote from: Marscaleb on March 18, 2016, 02:22:38 PMAs I think about it, in keeping with making it a challenge, the best result would probably be that getting hurt as the frog suit makes you small.If you're going through the effort to make a new hack, it might be worth taking the slightly extra time to a make a version for all the power-ups. (I mean, once the heavy lifting is done, this would just be a matter of adjusting a single variable, would it not?) It might be fun to always have the hammer bros suit, or tanooki, or even the simple power-ups....Does the Kuribo's shoe count the same as a power-up? I suspect not, since you have have other power-ups while in the shoe, and of course it would need to load specific graphics apart from Mario's normal sprites. I suspect that one could technically make all power-ups turn into Kuribo's shoe, but the graphics would look off unless the level was loading spineys and bob-ombs.
Quote from: GHANMI on March 18, 2016, 08:26:58 PMor 05 for Frog Form... oooor 82 for Kuribo's Shoe with Big Mario.
Quote from: RaidouJFlo on March 18, 2016, 08:37:02 PMDude whaaaat?! I didn't even have to change the second mushroom upgrade on the ground to the frog suit. I think that LDA at 0x0028af effects every mushroom.
Quote from: RyanfaeScotland on March 18, 2016, 08:35:59 PMI think you mean 04 for Frog Form. Knew you were trying to blag your way through this.
Quote from: RaidouJFlo on March 18, 2016, 08:37:02 PMDude whaaaat?! I didn't even have to change the second mushroom upgrade on the ground to the frog suit. I think that LDA at 0x0028af effects every mushroom.0x002C5D - A9 04 (For Tanooki) changed to A9 05. Now literally every tanooki transformation is a frog transformation as well. This is great.
Quote from: GHANMI on March 18, 2016, 10:20:35 PMNah, I tested it and it's just like I said.Maybe SNES version handles the values differently?
Quote from: RyanfaeScotland on March 18, 2016, 07:27:43 PMHow is it splitting hairs? Do you expect a Game Genie code for the NES to also work on the SNES and the GBA? If I go spend 1 or 2 hours getting this to work for the SNES and then you turn round and say you are playing it on the NES do you not think I'll feel like I've slightly wasted my time?
Quote from: GHANMI on March 18, 2016, 10:20:35 PMNah, I tested it and it's just like I said.Maybe SNES version handles the values differently?Makes sense it's every mushroom. You're editing the programming called whenever Mario is in contact with a red Mushroom.To edit each Mushroom individually you'd have to edit the level data, which is time consuming to say the least, and I'm lazy so that won't do.I forgot to mention it but there's also the routine called when Mario loses the frog powerup, which would need to be changed to make Mario small, not big.Oh, by the way, you may take another approach.Find what initializes Mario's state to small on level boot-up, or better, when SMB3 goes in-game. Change that to frog.As for the power-ups, you can then change them to "do nothing": You replace the instructions with the NOP instruction (EA), each byte of the original instruction being replaced with EA. And... I think since NES and SNES assembly languages are so close (SNES includes the whole NES set, if I'm not mistaken), doing the All-Stars version (with Geiger's Snes9X Debugger version... dunno if there's a better debugger SNES emulator though) might be easy provided you know the relevant addresses for Mario's state (nothing a simple dumb cheat search can't solve).The GBA version though is another matter. It's written in another assembly language (ARM) you'd have to go through the effort to learn, though the results would be certainly rewarding enough (you'd learn GBA, DS and 3DS assembly in one go, just very minor differences between them).In GBA ARM7 assembly, there's not only one accumulator, but many registers (r1, r2, ...), and you may recognize LDA and STA as ldr and str.
Quote from: RyanfaeScotland on March 18, 2016, 08:49:08 PMHaha welcome to programming! Of course it affects every mushroom! You aren't editing the individual mushroom, you are editing the code that is executed when a mushroom is collected.
Quote from: Marscaleb on March 19, 2016, 01:57:14 PMOh, sorry! I did not phrase that properly.I meant, as one playing the game, the technical differences in gameplay are splitting hairs...
Quote from: RaidouJFlo on March 19, 2016, 03:20:29 PM...I ended up using A9 05 and EA on the last byte and that worked lol. Never knew about NOP, thanks!I'm going to try to make mario die as a frogsuit and spawn as a frogsuit, so he will forever be a frogsuit...
$23/C261 AD 78 05 LDA $0578 [$21:0578] A:FFE0 X:0000 Y:0001 P:eNVMXdizc Load mushroom to Acc$23/C264 F0 5C BEQ $5C [$C2C2] A:FF02 X:0000 Y:0001 P:enVMXdizc Brach by 5C if equal$23/C266 C9 0F CMP #$0F A:FF02 X:0000 Y:0001 P:enVMXdizc Compare to 0F$23/C268 30 1C BMI $1C [$C286] A:FF02 X:0000 Y:0001 P:eNVMXdizc Branch by 1C if negitive$23/C286 29 0F AND #$0F A:FF02 X:0000 Y:0001 P:eNVMXdizc$23/C288 A8 TAY A:FF02 X:0000 Y:0001 P:enVMXdizc$23/C289 A5 BB LDA $BB [$00:00BB] A:FF02 X:0000 Y:0002 P:enVMXdizc Load power to mem$23/C28B C9 02 CMP #$02 A:FF00 X:0000 Y:0002 P:enVMXdiZc Compare to Big$23/C28D F0 04 BEQ $04 [$C293] A:FF00 X:0000 Y:0002 P:eNVMXdizc$23/C28F C9 03 CMP #$03 A:FF00 X:0000 Y:0002 P:eNVMXdizc Compare to Fire$23/C291 D0 0F BNE $0F [$C2A2] A:FF00 X:0000 Y:0002 P:eNVMXdizc$23/C2A2 A9 00 LDA #$00 A:FF00 X:0000 Y:0002 P:eNVMXdizc Clear Acc$23/C2A4 8F 86 C5 7F STA $7FC586[$7F:C586] A:FF00 X:0000 Y:0002 P:enVMXdiZc Transfer Acc to mem$23/C2A8 88 DEY A:FF00 X:0000 Y:0002 P:enVMXdiZc Dec Y$23/C2A9 84 BB STY $BB [$00:00BB] A:FF00 X:0000 Y:0001 P:enVMXdizc Transer Y to men$23/C2AB 5A PHY A:FF00 X:0000 Y:0001 P:enVMXdizc$23/C2AC DA PHX A:FF00 X:0000 Y:0001 P:enVMXdizc$23/C2AD 20 62 CC JSR $CC62 [$23:CC62] A:FF00 X:0000 Y:0001 P:enVMXdizc
Page created in 0.075 seconds with 20 queries.