Page 1 of 1

Hacking Ideas for 2015

Posted: Tue Sep 02, 2014 10:49 pm
by ShaneM
If you all have checked out my hacks, you see that I do a lot of Pokemon and Mario games. Well, here is your opportunity to share some of your ideas with me for when I begin hacking again in 2015. They can be about any 8 bit Mario game (Mario Bros, SMB1, SMB2J, SMB USA or SMB3) or any 1 Gen Pokemon game.

My current finished hacks include:
Super Mario Bro. 1 with SRAM and "SMB2J-ized"
Super Mario Bros 2 Japan glitch fixed with SRAM
Super Mario USA with glitch fixes
Super Mario Bros. 3 with SRAM and extra stuff
Pokemon Red/Blue/Green 100% English.
Pokemon Crystal with Celebi event (the only exception I've made for Gen. II hacking.)

I look forward to some very creative ideas. I'm very big on fixing glitches as well as adding features to games.

Re: Hacking Ideas for 2015

Posted: Wed Sep 03, 2014 8:00 am
by tepples
Your mission, should you choose to accept it, in order of increasing impossibility:
  • SMB1 to UNROM, so that your SMB1 hack and the entirety of SMB2J can be combined into one 20+world monster, where Peach's "new quest" is SMB2J.
  • SMB1 to MMC3 with the sound engine completely factored out into a separate bank, so that NSF covers can be adapted. I mention MMC3 because it supports Sunsoft bass.
  • SMB1 with more backtracking. As I understand it, SMB1 keeps its scroll seam half a screen in front of the player. If the seam is kept closer to the player, it could allow backtracking within the 32-metatile-wide window without any changes to the level data format.
  • A made-from-scratch replacement for each subsystem in SMB1. The concept here is similar to LAME, which started in mid-1998 as a set of patches to the MPEG reference encoder source and replaced each part to eventually make a free* MP3 encoder two years later.

* Free in the sense of its copyright being under a free software license. In the United States and other countries that recognize Fraunhofer's patents on MP3 encoding processes, LAME won't be completely free until 2017 when the last essential patents expire.

Re: Hacking Ideas for 2015

Posted: Wed Sep 03, 2014 8:32 am
by Zelex
tepples wrote: * Free in the sense of its copyright being under a free software license. In the United States and other countries that recognize Fraunhofer's patents on MP3 encoding processes, LAME won't be completely free until 2017 when the last essential patents expire.
Well that's lame.... =D

Re: Hacking Ideas for 2015

Posted: Wed Sep 03, 2014 10:12 am
by ShaneM
tepples wrote:so that your SMB1 hack and the entirety of SMB2J can be combined into one 20+world monster, where Peach's "new quest" is SMB2J.
I'm going to share some of my SMB wisdom with you, since I've mastered the game's coding. A 20+ World hack is not possible with the current SMB engine. This is why: Every area (water, ground, underground and castle) is divided up into categories. These categories are determined by "EnemyAddrHOffsets:" and "AreaDataHOffsets:". Rooms of a certain kind cannot be greater than $1F. For example, water areas are between $00-1F, ground 20-3F, underground 40-5F and castle 60-7F (nothing is to go above 7F even after castle stages or the game will crash, and I mean seriously crash). The only possible max I can see would be an 18 World hack using something like the FDS version of SMB2J. But why? Simple, because Worlds 1-9 are fine and then on the 4th data block Worlds A-D are counted as 1-3 and 8 so the addresses are reset (giving you up to $1F rooms of each type).

Another option would be to make use of Side B of the game's disk to store more levels. But you'll need to switch disk sides. This is the only way I can see getting past 18. (The checks in bank $00 are easy to NOP out, though.)

As for the NES, it can be done (UNROM has 16k PRG, swapping with eight 16k PRG banks), but the game's engine will have to be redone to make rooms greater than $1F of their kind (homebrew). Also, cloud bonuses are stored as ground type rooms, though they can get by as castle rooms. Assigning them as underground rooms will cancel out the cloud-type terrain ("NextTBit:"). So having cloud rooms will eat up ground space.

EDIT: On my SMB1 FDS hack with SRAM I posted last, it already includes a special version of SMB2J on Side B and it has SRAM saving, plus all glitch fixes and brings all the features from the Allstars version.

Re: Hacking Ideas for 2015

Posted: Wed Sep 03, 2014 10:33 am
by tepples
Then perhaps the different banks of level data could have different tables of EnemyAddrHOffsets and AreaDataHOffsets mapped to the same address: one set for SMB1 1-8, one set for SMB2J 1-9, and one set for SMB2J A-D.

Re: Hacking Ideas for 2015

Posted: Wed Sep 03, 2014 10:44 am
by ShaneM
tepples wrote:Then perhaps the different banks of level data could have different tables of EnemyAddrHOffsets and AreaDataHOffsets mapped to the same address: one set for SMB1 1-8, one set for SMB2J 1-9, and one set for SMB2J A-D.

That sounds reasonable. Though, the Worlds above 8 would have to be counted as 1-8 still on RAM address 075F (World number) for this to work. I'll also need to set a new flag for them. Plus, I can do a simple LDA BNE routine for springs etc for Worlds above 8 (like how I got springs on World B to be red but on World 2 they were green; World B = World 2 on the World number address, I just did a check on if HardWorldFlag bit was set. I did this to correct it to the Allstars version, which did not suffer the limitation of A-D being 1-3 and 8). Hmm.. I like it. I may give this a try come next year. But this will be a lot of work. What are the advantages to doing this? My SMB1 FDS already has SMB2J on Side B. What are some good reasons to do all this?

Re: Hacking Ideas for 2015

Posted: Wed Sep 03, 2014 11:41 am
by tepples
A cart version of SMB1/SMB2J would be useful for people who aren't willing to import a Famicom and FDS and get the drive belt fixed.

The most challenging request ("made-from-scratch replacement for each subsystem") was intended to bootstrap the SMB mod community's transition from SMB modding to original homebrew games containing no Nintendo code.

Re: Hacking Ideas for 2015

Posted: Wed Sep 03, 2014 1:39 pm
by ShaneM
tepples wrote:A cart version of SMB1/SMB2J
In this case you do realize that using loopy's MMC3 conversion of SMB2J may be the best bet here, right? Because then that means if I did this from SMB1 after converting it from NROM to UNROM I would literally have to remake SMB2J (wind, upside-down piranha object, stars on title screen etc.). It also means I'll have to really be keen on how loopy did things, since his disassembly is very different. I'll consider it.

Re: Hacking Ideas for 2015

Posted: Wed Sep 03, 2014 10:29 pm
by Dwedit
loopy's hack was ported from a pirate cart.

Re: Hacking Ideas for 2015

Posted: Wed Sep 03, 2014 11:48 pm
by ShaneM
Dwedit wrote:loopy's hack was ported from a pirate cart.
Which one? My guess would be the LF36.