Updates:

Fans are welcome!

Play this substantially Modified NES Guardian LEgend

Started by optomon, March 11, 2010, 06:55:09 PM

Previous topic - Next topic

Jigglysaint

Quote from: tummai on May 11, 2010, 04:14:13 AM
Quote from: arseniy on May 04, 2010, 07:31:19 PM
Yeah but is it possible to expand the rom?

Should be possible, but probably not easy.  It's not much work to turn UNROM (128k) into UOROM (256k).  The problem is that the fixed bank is packed full so there's not much room to expand the existing fixed bank subroutines to support 16 banks instead of 8.  But if we could pull it off the hack possibilities are endless.  We'd have an extra 128k of space to do whatever we wanted to.

If I recall correctly, there would still need to be alot of recoding involved in order to make room for new code.  If $C000 to $DFFF could be swapped out, more room could be added.  You only need to have the main PRG bank running for things that must always be active.  There could also be the possibility to use the save ram area to hold extra data.  Games like Kid Icarus and The Legend of Zelda use the Save Ram area to temporarily place data, and it could even be technically possible to alter existing data on the fly in that area.

tummai

Quote from: arseniy on May 11, 2010, 09:13:57 AM
Quote from: tummai on May 11, 2010, 06:12:45 AM
I think UOROM is the highest in the UxROM series, so 256k.
Hm no way to switch it to SNES for example? Or only NES possible with Max of 256k?

Not possible to switch it to SNES.  NES is capable of more than 256k, but you kinda have to stay in the same mapper family when expanding ROMs.  The Guardian Legend uses the UNROM mapper, so the only choice for expansion is UOROM.  256k is plenty though.  TGL fits in 128k and that includes all the graphics and music and game engine.  By expanding to UOROM you'd double your space.

Quote from: JigglySaint
If I recall correctly, there would still need to be alot of recoding involved in order to make room for new code.  If $C000 to $DFFF could be swapped out, more room could be added.  You only need to have the main PRG bank running for things that must always be active.  There could also be the possibility to use the save ram area to hold extra data.  Games like Kid Icarus and The Legend of Zelda use the Save Ram area to temporarily place data, and it could even be technically possible to alter existing data on the fly in that area.

The problem is still the mapper.  TGL uses UNROM, which swaps 16k banks in the $8000-$BFFF space and has $C000-$FFFF fixed.  8k swaps not possible.  Even if they were, all of the code in $C000-$DFFF needs to be there.  All of the enemy/object code and NMI/PPU toggling is there.  The bankswitching routines are there too ($D705 onwards).  IIRC, UNROM doesn't allow WRAM either  :bluelander:

There are about 50 bytes of free space at the end of the fixed bank, and a patch of ~40 bytes that can be cleared out of the RESET routine.  I don't know if that's enough.

I have one idea that might work.   $C000-$C173 in the fixed bank is a big table of JMPs to fixed bank subroutines.  It acts like a table of contents.  When code in one of the swappable banks calls a subroutine in the fixed bank, it always uses these JMPs as a middleman.  For example, if there is code in a swappable bank that needs to read the controller, they will do a "JSR $C01E".  $C01E is just a JMP instruction to the real controller reading routine (located at $D64C).  I don't know why the programmers set it up like this.  Maybe it was a primitive way to keep a bank's subroutines private? 

Anyway, I think we could gut it.  For example, if we could find every single instance of "JSR $C01E" and change them to "JSR $D64C", we could skip the middle-man and free up the 3 bytes that make up the JMP instruction.  If we did the same thing for ALL of the JMPs we could free up about 370 bytes at the beginning of the fixed bank, which would be plenty to hook up support for 8 new banks that UOROM would give us.  Sounds like a pain in the ass to do though   :redlander:
My NesDev blog: http://tummaigames.com/blog

arseniy

yay, pain in ass! Sounds like professional programming :3
Lets imagine there was some budget. How much would it need and what goal to set if was possible to expand rom?
Like adding another stage few bosses and several enemies? And add more places for plot(RPG text)?

Jigglysaint

#48
I've seen other games use the jmp tables as well, mainly Blaster Master.  From what I understand, it's a kernal table that makes the program easier to keep track of while coding.  Imagine if that they needed to go and tweak one of the subroutines, they could leave the JSR to one of those jmps alone, and just alter the jmp itself.  That way you are only making one edit, rather than several edits.  I don't think it would be wise to mess with that table, though doing so might free up alot of space.

I thought it was possible to change mappers.  I recall that DharkDaiz managed to change the mapper for SMB1 in order to implement his season changing effects.

Edit:  Unfortunatly rom hacking is not a thing that you can just pay people to do for you.  For one thing, this is a hobby, not a job, and second, people with the skills prefer to focus on work that interests them.  The only way that a really awesome TGL hack would come to fruition is if one among us is talented enough to make that happen, and is willing to devote alot of time, for free, to making such a game.  Sad to say that many classic NES games do not recieve the love and care that they deserve because not enough people with the skills know about or desire to hack the game.

Unfortunatly I don't posess the skills to make a really great hack of this game, but I am talent at data finding.  In fact I believe I was the first one to start hacking TGL, though others may have been first in writing notes or producing hacks and utilities.

RagnarokNAJU

i keep playing this rom hack... maybe ill get a faq written out.. we need to spread the word and get more people to try this hack
~~ Cleaveland

arseniy

Quote from: RagnarokNAJU on August 20, 2010, 07:38:05 AM
i keep playing this rom hack... maybe ill get a faq written out.. we need to spread the word and get more people to try this hack
Well I not sure about it. Optomon probably will do another attempt or improve the existing hack.

BmpCorp

Really good hack. Especially a fight with an Optomon in the labyrinth trap :optomon: That was good idea.

CODE RGB

Quote from: RagnarokNAJU on August 20, 2010, 07:38:05 AM
i keep playing this rom hack... maybe ill get a faq written out.. we need to spread the word and get more people to try this hack
you really should get a FAQ written out cause right now i feel like i need one lol. I'm pretty much stuck at corridor 5, i know it says to keep fireing to open the gate but i have been doing that and for the life of me i can't get the damn thing open. any suggestions?
Hoping and praying for a Virtual Console release someday!

arseniy

LOL! Did u tried to read through all messages using glitch?
Hold select and it will keep list through all messages

CODE RGB

i don't get it, i have been firing all day inside corridor 5 just like it said and the gate is not opening. has anyone els had this problem? I'm beginning to think it's my emulator or something. should i just move on to the next area and then come back to it later?  ???
Hoping and praying for a Virtual Console release someday!

BmpCorp

Maybe you should fire at some specific place in the room. Try to search for it, you'll hear different hit sound when you find it.

arseniy

I think only Optomon can answer you! I didn't made it too far so I just don't know!

CODE RGB

screw it. I've tried everything lol. i have beaten thru the entire game except for corridor 5 and i still can't figure out how to open it. i guess if anyone els gets corridor 5 opened then let me know how you did it cause i can't finish the game with out beating corridor 5. Thanks  :)
Hoping and praying for a Virtual Console release someday!

RagnarokNAJU

~~ Cleaveland

optomon

I think the hint goes something like "If you keep firing, the corridor will open"

Just keep shooting, like corridor 10 in the original game. Or it should open anyway. Not sure why that could have happened.