Author Topic: Colosseum  (Read 10569 times)

Agent 12

  • Moderator
  • Zurvan Surfer (+2500)
  • *
  • Posts: 2572
    • View Profile
Colosseum
« Reply #120 on: September 03, 2005, 11:50:02 pm »
Whoo, in a stroke of genius I solved the "replacing last character" problem

I check for every character for "being activated" when the colliseum loads, and every time there is one activated I have a temporary variable go up by one.

Then every time somone chooses to "deactivate" a character that variable is reduced by one.

Finally I have a comparison every time someone attempts to deactivate a chracter and if my temp variable is equal to one I don't let them do it.

--jp

Geiger

  • Guru of Life Emeritus
  • Chronopolitan (+300)
  • *
  • Posts: 315
    • View Profile
    • Geiger's Crypt
Colosseum
« Reply #121 on: September 04, 2005, 05:13:44 am »
Just sort of skimmed through the last few posts, but I know there are examples in the game code for checking which party member is where.  Try Spekkio's room and the Tesseract.

---T.Geiger

Agent 12

  • Moderator
  • Zurvan Surfer (+2500)
  • *
  • Posts: 2572
    • View Profile
Colosseum
« Reply #122 on: September 04, 2005, 02:05:07 pm »
Geiger, once again you proven yourself worthy of your fame.

It looks like 7E2980=Mem.PC1

If 7E2980=00  -->First player is crono
If 7E2980=01  -->First player=marle
and so on

atleast that's what I'm getting out of this...This will help clean up the code immensely. If nothing else it's 7 less objects to load thank you very much.

--jp

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10797
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
Colosseum
« Reply #123 on: September 04, 2005, 03:14:56 pm »
Perhaps we can make a feature on the coliseum once it is completed. "The Chrono Trigger Coliseum" would be its name, and it would provide a history of the project, guide, and small interview with jsondaq2 and maybe the new CE co-directors.

Geiger

  • Guru of Life Emeritus
  • Chronopolitan (+300)
  • *
  • Posts: 315
    • View Profile
    • Geiger's Crypt
Colosseum
« Reply #124 on: September 04, 2005, 03:24:48 pm »
Geiger, once again you proven yourself worthy of your fame.

And disproven it at the same time.  ^_^

My second suggestion should have been the penultimate battle with Lavos, not the final one.

---T.Geiger

Agent 12

  • Moderator
  • Zurvan Surfer (+2500)
  • *
  • Posts: 2572
    • View Profile
Colosseum
« Reply #125 on: September 04, 2005, 06:10:13 pm »
Geiger, do you have any idea what would be written to a Mem.PC2 spot in memory if there was no second playable character, if they write something like FFFF to it then it would tremendously cut down the amount of code that I have to write to implement the double BP for similar fights.

Here's what I want to do

(Fight just got won)

170-code to give BP
171 if(mem.pc2=????)
172       code to give BP second time

I can't use a temp variable because it loads a new screen, and I don't want to use up any more permanant variables then I already have.


UPDATE:  Sorry about this, I should really do my own test before I go begging for help.  Though I don't know what the number is, I do know that if there is no second playable character the number being assigned to Mem.PC2 is greater than 6, I can use this to finish the last hard part of the Coliseum.

--jp

Agent 12

  • Moderator
  • Zurvan Surfer (+2500)
  • *
  • Posts: 2572
    • View Profile
Colosseum
« Reply #126 on: September 04, 2005, 07:42:27 pm »
I may post this somewhere else because I think the technical aura of this thread has scared everyone away and really this part of the discussion everyone can partake in.

I've looked and looked but I really think I'm at the end of creating the Coliseum, I put the finishing touches on single/party fights today and that was last big thing on my list.  So now we get to do the fun part, picking monsters.  I'm going to put what I have loaded now, but if there's a monster you think should get loaded then by all means tell me to add it, and I'll see if I can fit it in.

Remember there's that horribly horrible problem of "if monster A is loaded, monster B cannot be loaded" but since I have three rooms hopefully I'll be able to fit it in.

Easy
Blue Imp
Green Imp
T'pole
Juggler
Croaker
Stone Imp
Mud Imp

medium
Diablos
Grimalkin
Gargoyle
Blue Scout
Scouter
Red Scout
all three scouts

hard
Nu
3rd speekio (the armored one that does level 2 spells)
Nu+Nu+3rd Speekio
Pink Nu
Pink Nu +3rd Speekio+3rd Speekio
Pink Nu+Nu+Nu
Pink Nu+Pink Nu

The hard really has to be changed because for some reason when 3rd speekio is loaded with anything else his sprite gets screwed up.  I'm completely open to trying anything you guys liked, I didn't put any actual bosses because I thought people would complain (for ex. I was going to put Ozzie, Flea and Slash).  So.....comment away.

--jp

ZeaLitY

  • Entity
  • End of Timer (+10000)
  • *
  • Posts: 10797
  • Spring Breeze Dancin'
    • View Profile
    • My Compendium Staff Profile
Colosseum
« Reply #127 on: September 04, 2005, 08:01:23 pm »
For easy, I'd throw in stuff to the tune of Reptites, Winged Apes, Kilwalas, Freelancers, etc. since otherwise it'd be reaaaaaaaaally easy. For the medium, I'd add the midrange hard stuff, such as Tubsters, Hexapod, Mohavor, Proto 4, Debuggest, etc.

Basically, I'm just thinking the entire coliseum should be on the higher end of things, where if a monster can be hard on a scale of 1-100, the coliseum would include those 33 and up. The hard part really is going to slaughter some people, which is what we want. However, it seems to be a pretty big jump from the middle right now.

Exodus

  • Acacia Deva (+500)
  • *
  • Posts: 506
  • How do we know we exist?
    • View Profile
Colosseum
« Reply #128 on: September 05, 2005, 01:59:33 am »
Hard is insane.

Tone it down a bit.

Geiger

  • Guru of Life Emeritus
  • Chronopolitan (+300)
  • *
  • Posts: 315
    • View Profile
    • Geiger's Crypt
Colosseum
« Reply #129 on: September 05, 2005, 02:16:52 am »
do you have any idea what would be written to a Mem.PC2 spot in memory if there was no second playable character

I believe the game uses value 0x80, but I would guess that any value 0x80 to 0xFF would work (negative numbers).

---T.Geiger

Agent 12

  • Moderator
  • Zurvan Surfer (+2500)
  • *
  • Posts: 2572
    • View Profile
Colosseum
« Reply #130 on: September 05, 2005, 02:36:44 am »
Good news, bad news everyone

Good news This is probalby my last troubleshooting question
Bad   news:  I have a trouble shooting question

When testing my handicaps I basically just checked to make sure they were working, saw they were working and gave myself a pat on the back.  Little did I know that there was a slight side effect to my "auto equip" handicaps.

For some reason using code to automatically equip something restores HP fully.  I would have thought i was just screwing up somewhere in my code but I added a test NPC who auto equips something for you and it still did it.  Off the top of my head the only time in the game that I can think where something is auto equipped with something is Frog with the Masamune when he opens the cave to magus's castle.  I'm far to lazy to play the game to that point to see if Frog's HP is restored but I'm willing to bet that it is.

SOOO....unless someone knows a way I can fix this I think I'm going to leave it like this atleast for the time being.  The handicaps help to make the colliseum more challenging even if the player's hp is recovered (especially the weapon one).  

Sorry I didn't notice this before, whenever I was doing test I was fastforwarding and assumed my HP going up was due to the HP restore handicap.

Quote
Hard is insane.


Exactly the point of the Hard difficulty of the Colliseum.  The hardest thing in Chrono Trigger was fighting a pink nu, so we definately have to have something harder than that.  Two pink Nu's is definately a very hard fight, maybe impossible one v. one but I think that it can be done in a party fight.  Pairing a pink Nu with anything less than a pink nu would basically make it  a harder fight than Chrono Trigger for two rounds and then the same thing as the hardest fight in Chrono Trigger.

If we start to incorporate Enemy Stat hacking then I'll change it but I think at the very least I'm keeping two pink nu's as the hardest fight.  Sorry cause I made it sound like everything was open to change but I should have said everything is open to change except the two pink nu fight.


--jp

JLukas

  • Fan Project Leader
  • Squaretable Knight (+400)
  • *
  • Posts: 426
    • View Profile
Colosseum
« Reply #131 on: September 05, 2005, 08:11:55 am »
Quote from: Geiger
do you have any idea what would be written to a Mem.PC2 spot in memory if there was no second playable character

I believe the game uses value 0x80, but I would guess that any value 0x80 to 0xFF would work (negative numbers).

---T.Geiger


Yes, it uses 0x80.  I remember seeing 0x81 also, I'll have to check into that.

JLukas

  • Fan Project Leader
  • Squaretable Knight (+400)
  • *
  • Posts: 426
    • View Profile
Colosseum
« Reply #132 on: September 05, 2005, 08:28:20 am »
Quote from: jsondag2
For some reason using code to automatically equip something restores HP fully.  I would have thought i was just screwing up somewhere in my code but I added a test NPC who auto equips something for you and it still did it.  Off the top of my head the only time in the game that I can think where something is auto equipped with something is Frog with the Masamune when he opens the cave to magus's castle.  I'm far to lazy to play the game to that point to see if Frog's HP is restored but I'm willing to bet that it is.
--jp


You're right, it was only used a few times. The Masamune scene at the Magic Cave, Northern Ruins Masamune upgrade, and possibly one or two other spots.

A few notes on that command, the previously equipped item will be sent to the inventory.  If the new item equipped is present in your inventory, it will be subtracted by one.  If not, you'll be given the item "free" (like the Masamune)

I wasn't aware that it restored HP as well.  As a workaround, you can use a memcpy command to load and store the PC's HP to a temporary location, use the equip command, then the memcpy command again to copy it back.  The HP address can be found in the Memory Locations.txt of the Offsets Guide.

Agent 12

  • Moderator
  • Zurvan Surfer (+2500)
  • *
  • Posts: 2572
    • View Profile
Colosseum
« Reply #133 on: September 05, 2005, 11:32:58 am »
Thank you very much JLukas, you helped me with two things, First off I've been giving people the item before I equipped it because I didn't know about the freebie.  Second off you may have just saved the handicaps.  I have one small problem though, I only see Crono's current HP on that list, I'm sure the others are on there because I'm guessing this memory is how they go into their "low hp sprite" so I can probably find it with a little patience.

All the other permanant memory locations I'm using have a downshift of 1.  Crono's current HP has an offset of 2, does this mean I have to do something (downshift?) before I can use it.....Sorry I really have no experience with byte math (though next semester I'm taking a computer archetecture course so that should help).

Last but no least, this code is not working (maybe because of above question)

Assign 7E2605 (crono current HP)  to 7F0240-- variant 48, width one byte
equip crono with something
assign 7F0240 to 7E2605--variant 48, width one bye

Once again I suspect that it is because Crono's current HP has that offset of 2 instead of one.



--jp

JLukas

  • Fan Project Leader
  • Squaretable Knight (+400)
  • *
  • Posts: 426
    • View Profile
Colosseum
« Reply #134 on: September 05, 2005, 09:58:19 pm »
http://www.gamefaqs.com/console/snes/game/563538.html

That's a better memory list for your situation that has all the HP values.  Click the PAR patch code list FAQ at the bottom.

Yes, HP values are 2 bytes.  If it was only one, the characters would only be able to have a Max. HP of 255.

Under Category Memory copy use command 49 (be sure to select width 2 bytes) and command 4D to copy it back after the equip command