News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

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.

Messages - lory1990

Pages: [1] 2 3
Thanks, Reiska.  :)

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...

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.

Personal Projects / Re: Sonic 3 and Knuckles: Co-op
« on: December 06, 2014, 01:55:44 pm »
Are you planning on adding other features for your teams? Anyway this looks very interesting and I like what you've been implementing so far.

Personal Projects / Re: Sonic 3 and Knuckles: Co-op
« on: September 13, 2014, 10:13:32 am »
You can find the disassemblies for the classic Sonic the Hedgehog games here:

You need to learn Motorola 68000 assembly and at least the basics for Megadrive/Genesis programming. You can find tutorials quite easily if you google them. The Sonic Retro website can also be a good starting point.

If you have other questions, you can ask in the Programming section or send me a PM and I'll see if I can help you. However for Sonic 3 in particular you should ask someone who is more experienced and made some hacks for it; they can surely give you some good advice and guidelines if you happen to get stuck.

Personal Projects / Re: Sonic 3 and Knuckles: Co-op
« on: September 13, 2014, 06:57:02 am »
what is this?

Are you asking about the code snippet posted there? That's assembly language and that piece of code is part of the S3&K disassembly. Check out this website if you're interested:

It has tons of information about Sonic in general and how to hack games. It also provides tutorials about assembly and other stuff. You can also find the programs the hack creator most likely used to make the changes.

Are you just curious about this hack or are you interested in hacking Sonic games?

Personal Projects / Re: Sonic 3 and Knuckles: Co-op
« on: September 11, 2014, 05:01:58 am »
It's too bad there are no download links anywhere. I would really love to play this hack...

Yeah, I kinda realized it was not pretty, but I was just messing around just to see how things turn out. I'm leaving the menu as is. Thanks tryphon!

By the way the font in that screenshot looks neat, and it's certainly great to have more text in one box. How long do you think it will take you to finish the PSIII project you mentioned in other posts? I'd definitely play it.

Hello everyone! I'm working on a PSII hack aimed to fix bugs. I also wanted to change a few aesthetic things just to make it look a little more interesting.
I expanded a few windows including the player menu to have the words techniques and equipment fit in the window, but this is where I would like your opinion of. Here's a screenshot:

Do you think it's too large and I should just settle for TECHS and EQUIP?

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.

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).

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.

Are you going to release the new version soon?

Anyway, I'm working on a little and simple hack (almost done) which contains mainly bug fixes, like music freeze, cut-off texts, and other things which could get kind of annoying in the whole gaming experience. 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...

Also just to let you know, I submitted a hack which ports the sound driver from the US and European versions to the Japanese version, so now those loud snare drums are gone and the quality is better. It must still be approved, though.

No. The 100% thing was just a test of mine to see if it actually worked. The patch contains the change of Shir not stealing on Dezolis and when her lv is less than 2. Sorry, I should have been more clear.

Here's the patch:

I tested it removing another instruction dealing with a random factor for stealing, so that Shir always succeeds. She never stole on Dezolis , and always did on Motavia. You test it as well just in case. If there are problems, let me know.

Among the conditions for Shir stealing there's one which is less relevant and important than others: when you steal the at the Central Tower Room. When it checks which building you get out of, it sees if you got out of the Central Tower Room. If you did, then it checks if Shir's level is lower than 10. If it is, it skips the routine. You have two options:

- Remove the check of which building you get out of. This means that in order to steal any item, Shir's level must be at least 10 no matter what.

- Remove Shir's level condition, so you can also steal in the room from level 1. The condition for which building you exit becomes useless so that can also be removed

Another thing I remembered which I think is a bug:

The ability of Kain in using his techs on Noah. It doesn't make any sense since the enemies there are not robots. It also makes Dark Force and Mother Brain battles easier.

For the first one (Shir joining when re-entering town), it's not easy due to having to add some more code. For the latter I'll check the part that deals with stealing and see what kind of fix I can work out for you. There's a flag which determines whether you are on Dezolis or not, so the logic is easy per se. I'll see how to handle it in your case without breaking the game.

Are you actually interested or just wondering how it'd work? If you are interested, can I propose a simpler solution like prevent Shir from stealing in Dezolis?
I'll see if I can find a solution suitable for you in that case...

- I uploaded some screenshots about unused enemy data. There are six of them but I got only 4 because the other two were the same as the 4th one.

As you can see they share the same art as the ants, except for the 2nd one, and when they attack the game crashes as there's no functionality for them

- There's a technique after Megid in the list: it's called RRRRR and has TP consumption of 28. No idea what this was supposed to be used for and there's no trace of functionality for it. There are also 10 empty spaces in the list so you can include new ones, although functionality must be integrated as well

- There's some data about two unused items: one is called T, and costs 62000 meseta; the other one is called H, and costs 46000 meseta. No logic applied to them, just some data sitting there.

- vivify93, I noticed a line that doesn't sound totally right to me in this context. It's said by a woman in Oputa:

"Even if those monsters are gone, Mota has already been devastated. There's nothing we can do."

Since this line is used before the dam quest, the monsters are still around. So shouldn't it be "Even if those monsters were gone..."?

What do you think?

Edit - I made a little mistake: the 2nd picture of the unused enemy does reference the graphics for the ants, it's really messed up though

Programming / Re: IDE for assembly languages?
« on: August 13, 2014, 07:47:18 am »
The keywords you mentioned are called labels in assembly, and like BlackDog61 said, they are supported by almost every assembler as it's a basic feature.

Do you have an idea on what processor, or processor family you want to start using assembly for? There are tons of them, and after you've decided, you can try looking up information on existing IDEs for that processor.

The idea of a day/night cycling system sounds interesting. To keep it simple though, if we wanted to include all the palettes, we could do this:

Use the first set of palettes from the start of the game until the dam quest, then the second one during the dam quest, and finally the third one after the dam quest

For the dexterity fix, go to address $2769 and change the value 48 to 88. That's it. For those who are interested, the instruction was

Code: [Select]
lsl.w    #8, d0
and now it's

Code: [Select]
lsl.l    #8, d0

Pages: [1] 2 3