Phantasy Star II Improvement v4.4 | ReConstruct: Phantasy Star IV v1.2

Started by FlamePurge, May 21, 2012, 03:45:02 PM

Previous topic - Next topic

tryphon

I think too Fanbi should be enhanced. It'd be even nicer if its efficiency depended of Anna's level.

Quote from: lory1990 on August 19, 2014, 12:06:25 PM
I also polished it a little with some window expansions, using full names for the planets, etc... Still there's nothing that could be defined as improvement that I want to implement. I would like some advice about the sound produced by a technique: Fanbi. It uses the same sound as Res, but I don't like it very much. What sound could I apply to it? I also changed the sound made by Shift which was originally the same as Res as well, and I changed it to that used by buffs like Deban, Shu, etc...

Did you try to allow full char names (6 char per names would fit) ? I tried earlier, but gave up because names are stored in RAM and there's really 4 bytes availables, so I'd have to move names in another part of the RAM, which would cause problems with saves.

An easier hack would be to disable character renaming and keep original names.

lory1990

Quote from: vivify93 on August 19, 2014, 04:20:13 PM
I'll probably release it within the week. As for Fanbi's sound, you could use the noise that happens when you go from Motavia to Dezoris. It sounds like a "sucking" noise to me.

Speaking of Fanbi, it's a little useless in its current state, isn't it? It only does 7 damage and gives Anna back 7 HP, right? Would there be a way to make it do 30 damage and drain 30 HP? It'd be a little better than Res that way.

Hmm... I tried using that sound, but in battle it doesn't feel much right. I was also thinking about the sound the acid, stun and poison shots make: they share the same graphics but for the sound, it doesn't sound like a technique cast to me. I'll think it over. Thanks anyway.

For Fanbi, the damage rating is currently 10, meaning the value will range from 6-7 to 11-12. I changed it 1E (30) and the damage/heal is certainly more reasonable. Values are from 25-26 to 34-35. Just fiddle with the values and see what you like best. The address for the value is 135DF (should see 0A).

Quote from: tryphon on August 19, 2014, 05:32:45 PM
Did you try to allow full char names (6 char per names would fit) ? I tried earlier, but gave up because names are stored in RAM and there's really 4 bytes availables, so I'd have to move names in another part of the RAM, which would cause problems with saves.

An easier hack would be to disable character renaming and keep original names.

This is just a simple hack dealing with bug fixes and I only changed some aesthetic things just to make it slightly more interesting. It's also to try creating at least one hack (not counting the sound driver one) and see how it goes so I just want to make it simple. I will create a more extensive hack dealing with much more stuff, including the hard parts. It will be a nice challenge.
For the characters' data I know there's a space of 64 bytes for each, but I don't know if all of these bytes are used. Maybe you can find a free spot here. Otherwise a new, bigger space can certainly be found but I don't know if it would be easy to include code for saving this data to SRAM. I never delved into this process to be honest, but I surely will in the future to see what can be done and what the limitations are.

tryphon

Just out of curiosity : why do you work on this game in particular ?

FlamePurge

I submitted the new patch, Lorenzo. It should be up soon! I used 1F for Fanbi and get around 29-34 healing to Anna / damage to enemies.

Quote from: tryphon on August 19, 2014, 06:40:01 PMJust out of curiosity : why do you work on this game in particular ?
Are you asking lory1990 or both of us, tryphon?
Check out and discuss my projects


FlamePurge

2.0 is up! Quick link is here.

Quote from: tryphon on August 20, 2014, 03:55:15 AMboth of you  :)
Well, to be honest, I only kind of wanted to play the Phantasy Star series. I was mildly interested, but was frustrated at PSI. I didn't like the battle music, and the learning curve and grinding were a bit discouraging. I had made the Phantasy Star II and IV patches for personal use, but figured I may as well share them... Little did I know, the PSIV patch had tons of bugs in it. Oy..

I tried to move on to PSII after looking up I's ending, but I was aggravated at the slow walking, or so it seemed, so I shelved the series and looked up the ending to PSII. It was pretty badass, but nonetheless the ship had sailed, so to speak, on my wanting to play the games.

But I eventually did get back into PSI, muting the battle music, (Which I now can tolerate, though I still am not a fan of it.) and got to play Phantasy Star II, which became one of my favorites. I did a few updates, fixing typos and script errors, but it wasn't until the creation of v0.3 of Phantasy Star II Proper-caser, what my PSII patch used to be called, that I finally started getting serious about it. A lot of people asked for possible bug fixes, and I think around that time I contacted fedorajoe to fix a few inherent bugs in the game.

So I added on and enhanced, and I eventually, thanks to fedorajoe, got to finish the original proper-casing job, and then I gave Nei the extra equipment options, and then Lorenzo messaged me to fix the last three inherent, glaring bugs we could find, and now we're here. Well, I guess to answer your question, I work on PSII because I really love it. It's a great game with surprisingly great writing in an English script for 1990, with an entrancing cast despite lack of plot involvement, a beautiful story, ass-kicking dungeons, amazing music, and an odd sense of "harmony" to the game, even with all its quirks.

I mean, this was a game children played at Christmas, after begging their parents for it when seeing it in the store back in March. This is a game teenagers shared with their friends, that adults analyzed and loved. I just wanted to give a childhood classic the treatment it deserved: mostly bug-free, with improvements and most importantly, no caps locked text.

I just hoped that people can find out about PSII Improvement, and share it with their friends who liked it back in the day, too.
Check out and discuss my projects

lory1990

When I was like 5-6 years old, I used to watch my sister playing video games and Phantasy Star II (and other installments) was one of them. I didn't particularly like it to be honest because I had played Phantasy Star IV before this and being a child I couldn't really play RPGs by myself. These games were not even translated into Italian, my language, so I had to ask my sister a few times how to continue and where to go. I could play PSIV because of its... well, everything in it. It is really a great game.

For PSII it was different: I didn't have enough patience and I stopped playing after 3 or 4 dungeons, and it was too hard for me. Then after 7-8 years I wanted to play this game again (it kinda popped into my mind all of a sudden) and I tried again. I wanted to finish the game without a guide. It took a while but it was worth it. I started to love it. Then I kept playing the Phantasy Star series (II, III, IV) for months. It happened often that I played certain video games (Sonic the Hedgehog series, Phantasy Star, Tomb Raider, Final Fantasy, etc...) for a long period of time without getting tired of them.

Last year I was curious to learn about Megadrive programming because I wanted to fix bugs and extend the games I love, namely Sonic the Hedgehog and Phantasy Star. I started with Sonic the Hedgehog and I managed to edit a few things.

Then months later I also wanted to have disassemblies for Phantasy Star, like there are for Sonic the Hedgehog, and I tried finding a tool to help me achieve this. The most popular disassembler, IDA Pro, turned out to be too expensive and I looked for static disassemblers but for a Megadrive game they are not exactly ideal.
I found this useful and great emulator, Exodus, made by Nemesis which has an active disassembler, so after fiddling with it to get the hang of it, I started playing these games with that feature on. I have the disassemblies for the Phantasy Star and Sonic series thanks to that emulator.

So I'm working on PSII because, other than loving it, I wanted to start with the oldest game released, so no particular reason to choose this over the others (I love the other games too). I'm impressed with all the progress I managed to make; but once you start figuring out stuff, it becomes easier and easier. This also gives me an opportunity to learn more about the hardware and how things were handled. Now that I have this disassembly mostly cleaned up and managed to get a general picture of how certain routines are handled, I can play around a little with the hardware like scrolling, sound, etc, by using this game code.

tryphon

I worked a little on PSII in January.

As I told, I'm involved in the translation of the Playstation 2 remake, for hacking (it was my first hack job, I'm quite happy with the result I came to, considering that I had no debuger, no tracing tools, just a normal emulator -PCSX2 - and a simple disassembler -PS2Dis).

As the remake also contain the original japanese ROM, we decided that, as an Easter Egg, we would include a French translation of the original. I wanted to add some sugar to it, as full names, resized windows, unlimited script (and maybe VWF, but I'm not sure it's doable for this game : free VRAM is very limited) and some other things (I coded a way to make Nei resurrectable and optionnally selectable after Climatrol) . It was too much time-consuming so I postponed for a while (but plan to finish it).

I too used Nemesis' Exodus (great tool), but unfortunately my machine is too slow to make it work decently (6 fps at most). So I switched to another great emulator : Regen (see gendev.spritesmind.net forum, you must know it if you're interested in Genesis programming). I have found some things about the code, I documented some on datacrystal, but there are others I didn't write. I can't remember exactly though (it was 7 months ago), but I wrote it somewhere and can share them if you want.

FlamePurge

We will soon see an update for Phantasy Star II that fixes Shinb!

Shinb will now correctly make your team have a 100% chance of escaping a regular battle! I think this may make Hugh an MVP of sorts. In the interest of balance, the Green Sleeves now cast Shift when used as an item. These changes are all thanks to lory1990. :)
Check out and discuss my projects

tryphon

How do you know it was the intended effect of Shinb ?

(At last, Hugh will get the love he deserves)

FlamePurge

You'd have to ask Lory about that. I'm not sure about the coding stuff, I just do what people tell me. >.> I've really only gotten this far with a hex editor thanks to you, Lory, and Fedorajoe...
Check out and discuss my projects

tryphon

I'll ask him :)

I didn't check if it was the effect in the PS2 remake.

lory1990

The logic for Shinb was complete, but in the original there's a call to a routine which was not meant for Shinb (you'd need to see the code to understand this);  this call, after doing some stuff, does a check. There's a bit for techs which determines if it's usable against a monster or a robot... This check compares that bit with the the value in the enemy stats buffer which state if the enemy is a monster or a robot. This enemy stats buffer is generally store in the a1 register when you branch here from techniques like Vol, Brose, Gag, etc. For Shinb a1 has a different pointer, thus it's not relevant for this check. The problem is that the value after the comparison is always 0, so after that it loads the "didn't work" text and moves the value -1 to a register to mean failure for the technique. A little bit further down in the code which takes care of the success rate algorithm.

I made it branch to this algorithm directly. Every technique has a success rate value, and Shinb has $FF which means 100% success or 255/255. So it's always successful. After this call, it moves to the "RUN" routine and it exits the battle automatically without doing the check for the escape rate. The logic was already there.

It's most likely the functionality they had mind, but you can't really know for sure if you don't ask the original programmers. We just made the technique do something now.

FlamePurge

Check out and discuss my projects

tryphon


lory1990

Anytime  ;)

By the way tryphon, did you have a chance to check Shinb in PS Generation 2? I don't have a save and I don't wanna play the game now just for that...

FlamePurge

v2.1 is live with the Shinb fix and the Green Sleeves' new function! :)
Check out and discuss my projects

Reiska


FlamePurge

Thank you for the confirmation, Reiska. It's nice to have peace of mind. :)
Check out and discuss my projects

tryphon

Thanks. I was sick these last days and not in shape to check :)