Updates:

Fans are welcome!

Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - tummai

#1
The Guardian Legend / Re: TGL Password Generator
January 26, 2011, 11:34:46 PM
Quote from: tummai on January 26, 2011, 04:27:46 AM
I could try to make a program that tries to generate all possible passwords and saves the ones that have less than 3 total characters or something.  I don't know if it will be successful - that's a big loop and it might lock up my computer - but it's worth a try.

This didn't work at all.  The program locked up.  I thought of another approach and wrote a password validater and passed it many easy passwords and saved the ones that passed the test.  This worked a lot better.  There are WAY more easy passwords than I thought.  Too many to post in this thread so I'll link to the generated text file:

http://www.tummaigames.com/tgl_pw.txt

Some of the passwords crash the game and some put you in an inescapable room, but they should all work.  If you find one that doesn't work ("WRONG WORD") let me know which one.  I could have a bug in my password validater program.

If you find any cool ones that are fun to play, post them here.  I'll start:

EEEE EeEE EEEE EEEE
EEEE EEEE EEEE EEEE
#2
Quote from: optomon on May 24, 2010, 03:19:15 AM
This isn't a Guardian Legend hack, but I figured that it's appropriate since I recall it was discussed at one point whether or not another game's soundtrack could be put into Guardian Legend. It is very possible to do this in theory, but not easy. I pretty much accomplished it here, but because of the differing ram values used by the engine compared to the original one, the game is not fully operational in it's present condition. If one is going to move the soundtrack of one game into another, you had most likely have to make a LOT of changes. I did this because I'm trying to make a Konami based framework to homebrew my own NES games.

You cannot actually play the game unfortunately, as the newly imported sound engine overwrites certain vital ram from the original game that I didn't bother to move around. The tough part was figuring out how to move the DPCM data, but I managed to crack its format, which seems pretty much universal across all NES games as far as I can tell.

This is a tricky problem.  You could fix the RAM conflicts by finding which page of RAM each game uses for the sound engine and changing the $x00 accordingly for every read/write to RAM within the sound engine code.  This assumes that both games reserve an entire page for sound engine RAM, which may not be the case.  It's easy to find the sound RAM - just open the hex editor in FCEUX and see which values change in time to the music. 

The next step would be to find all JSR/JMPs to old sound engine subroutines and remap them to the new sound engine subroutines.  Once you do that it might work out.  Another thing to look out for would be any flag the sound engines set to communicate to the NMI when they are busy.  You'd have to find song lookup tables and remap them too.

Moving DPCM music into a game with no DPCM (like TGL) could cause a huge headache too, since IIRC the samples must be stored starting at $C000.  In non-DPCM games, $C000 would likely have program code.

Another approach would be to figure out the sound format for the target game and rewrite/port the songs you want into that game's sound format.  No less tedious but it'll be easier to test/debug.
#3
Rom Hacks, MODs, Plugins / Re: Tiles, sprites
January 26, 2011, 06:45:34 AM
Here's a site that has all of the monster/boss/item sprites:

http://www.flyingomelette.com/tglshrine.html
#4
The Guardian Legend / Re: TGL Password Generator
January 26, 2011, 04:27:46 AM
Quote from: UserK on January 20, 2011, 09:14:19 AM
Ok, this makes sense. I suppose the random number is in the password itself. Quite amazing stuff, thank you.

Yes, that's right.

Quote from: arseniy
Tummai - can your password system find easy weird passwords like JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ?

Right now the generator takes the above criteria and uses the input to generate the passwords.  So the generator would produce that JJJ password if you supplied it with the proper input.  It would be a little challenging to do that, because you'd have to check all shops and powerups and corridors to see which ones are closed.

I could try to make a program that tries to generate all possible passwords and saves the ones that have less than 3 total characters or something.  I don't know if it will be successful - that's a big loop and it might lock up my computer - but it's worth a try.
#5
Here's Max Shield, Max Chips, level 2 Saber, 8 life and starting at the gauntlet corridor:

OBVU S3F3 VZxV YhVV
gOmm dC6z WLMj 1S9g

let me know if you need some fine tuning.
#6
Voting / Re: How much it took to beat TGL first time?
January 18, 2011, 11:58:05 PM
Quote from: arseniy on January 17, 2011, 08:25:35 AM
Yay losing passwords :skull::skull::optomon::skull::skull:

Renting a long RPG like Dragon Warrior 3 several weekends in a row and then having somebody erase your save was a terrible feeling too :)
#7
The Guardian Legend / Re: TGL Password Generator
January 18, 2011, 11:38:40 PM
There are actually 256 different possible passwords for each combination of stats/score/pickups/etc.   Basically the game takes all the information I listed up in "criteria" above and makes a long bit string out of the data, then it encodes the string using a key.  The key is a random number 0-255, which allows for 256 possible passwords for the same game state.  My password generator generates all 256 and then picks the ones that are easiest to input.
#8
Voting / Re: How much it took to beat TGL first time?
January 17, 2011, 04:05:38 AM
I don't even remember how long it took the first time.  My brothers and I started out renting it from the local video store once a weekend and if I remember correctly we couldn't get past the first Optomon.  Eventually somebody got the game as a birthday or Xmas present and we won it eventually.  It must have taken months.  I remember having to redo parts because I wrote the password down wrong.
#9
Do you think you could beat him with the grenade?
#10
The Guardian Legend / Re: TGL Japanese booklet PDF :)
January 14, 2011, 08:07:27 AM
Quote from: Izlude on December 06, 2010, 10:53:46 AM
I'd like to hope someone can translate what it says about her in the schematics/cross-sectioning.

Sadly that page doesn't say anything interesting.  The only cool piece of info here is that the main character's official name is "System D.P."   "Miria" is just a nickname:

"Player
System D.P. (codename Miria), a female soldier built with extra-terrestrial technology.

Human Form: Labyrinth
Warship Form: Corridors

She wanders the Labyrinth in human form and flies through the Corridors in warship form.  She fires regular bullets and special weapons called "Options".

You can choose from 12 different "Options" (special weapons).  They are as follows: (list of the weapons).."
#11
That's pretty cool that you beat him while staying right in his face.   I found a video of someone beating him the same way but with regular bullets and EEs only.  I never knew it was possible :)
#12
The Guardian Legend / TGL Password Generator
January 14, 2011, 07:45:06 AM
I wrote a password generator for TGL that outputs the password that is easiest to input.  It's web-based (python/django) and currently I can only run it locally.  If arseniy is able to set up his host to run django maybe he can host it, but if not I can make passwords on demand.  Here are the criteria:


  • MaxHP
  • Guns (Max 4)
  • Shields (Max 7)
  • Bullet Speed
  • Chip Level
  • Score (Max 9999990)
  • Map Coordinates ([X,Y] anywhere from [0,0] to [31, 31])
  • Keys in possession
  • Weapons (which ones, what level, and how many EEs)
  • Which Corridors completed
  • Which pickups collected
  • Which minibosses defeated
  • Which shops bought

For example, here is the output when I max out the stats and start the game in the first room:


Fewest Unique Characters:
A9fP 9svO 6gvN zYfO
wMfM tAvw slwu Mj?I



Most Top Characters:
WVFV TJVU Q9UQ NtER
KhES HZUq 0QSl ii0O



Most Bottom Characters:
oqmm le6l iW6m fKmn
c!lj 3u5Z E7?b sh6f


I find the passwords with the "Most Top Characters" are the easiest to input.  So in the meantime, if anybody wants a custom password just reply to this thread and I'll make one for you.
#13
If Obama is this spoon, it looks like I have vomited.
#14
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:
#15
I think UOROM is the highest in the UxROM series, so 256k.