logo
 drop

Main

Community

Submissions

Help

80577224 visitors

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

Pages: [1] 2 3 4 5 6 ... 15
1
ROM Hacking Discussion / Re: FF6 randomizer
« on: September 01, 2014, 12:39:18 am »
Vargas' HP was greatly reduced because of the randomizer. You may or may not need to heal once to beat him. Even with the Berserker draw that bxbcore seems to have acquired, you can still win. Berserker may need a little luck, but 1 additional level should do the trick.

We're not evil enough to make you remove 10,000+ HP from the third boss of the game. :crazy:

2
ROM Hacking Discussion / FF6 randomizer
« on: August 27, 2014, 03:02:03 pm »
Hi ho. Dessyreqt and myself have been working on a little project for Final Fantasy 6, aptly called "FF6 randomizer." You can find it here. It is meant to just have some fun, and if racing is your thing, you can race a buddy with this as well.

What this does randomize:
  • Character starting stats. It takes the maximum stat a character has, for instance Gau's 99 battle power, and the lowest, Strago's 10 battle power, and picks a number in that range for each character. Most stats will generally be higher as a result.
  • Treasure chests. All treasure chests in the game, save for the Striker in the Cave of the Veldt, have been put into tiers and will be chosen at random. This means you will not get a Ragnarok in Figaro Castle. If a chest contains a Potion, that chest will have something similar to a Potion. Also because of the tiers, a couple of  Monster-in-a-Boxes have been added.
  • Character skillsets. Terra gets Rage? Sabin can Steal? Umaro can Runic? Sure, why not. To account for non-Gau getting Rage, and because of Gau's recruitment in the WoR, Leap has been removed entirely. Don't worry, leaning Rages is very, very easy now.
  • Natural abilities. The starting Rages, Lores, and spells of whoever has those skills has been shuffled around.
  • Shops! Items that appear in shops are shuffled around, except the Sprint Shoes. Any shop that sells the shoes will still have them.
  • Character names and palettes. Should be fairly self-explanatory.
  • Equipment. Specifically, who can equip what. This also accounts for starting equipment.
  • Espers. The spells they teach, and the rate they teach at have been shuffled around. It will be generally easier to learn spells now. However, there is no guarantee every spell will be available.

Just in case the text above doesn't tell the whole story, both Dessy and myself have streamed a few sessions of the randomizer. My older one from mid-July can be found here, and a highlight from Dessy from just 3 days ago (August 24) can be seen here. While the whole video is still there, you can watch that too, but with recent changes to Twitch it won't be available for very long.

What this does not, and will not change, ever:
  • Dialogue
  • Story
:crazy:

So yeah, please check it out, and if you have any bugs to report, do so here so we can squash them! Any feedback is also welcome! Most importantly, have fun! :laugh:


Clarifying who did what:
Dessyreqt did all of the UI/program stuff, and I did all of the game hacking stuff.

3
General Discussion / Re: romcast 1 and 2
« on: August 23, 2014, 06:45:37 pm »
I'm not sure changing a southern accent for a British accent is an improvement. :P

4
Gaming Discussion / Re: Victoly!
« on: August 21, 2014, 05:07:04 am »
So I picked up a PS3 last month, and the games have been rolling in.

Rogue Legacy - Picked it up on PS3's game launch, and it was very hard. :laugh: I did beat it, though! It only took a badass dragon to beat a boss before Johannes went down. Haven't finished NG+ yet though.

Borderlands 2 - A bunch of co-workers were bugging me to get this, and when I saw it for $13 on Amazon I snatched it up. This game was a lot better than I was expecting, and after going broke fighting Jack and the Warrior, they were finally conquered.

5
ROM Hacking Discussion / Re: FF3usME class editing?
« on: August 20, 2014, 12:16:51 am »
Im fairly new to hacking but I was wondering if ff3usme has a way of changing classes.
FF6 doesn't have any assigned classes, just a set of skills to kind of determine how they will develop.

Quote
I managed to get him to use swords and all of the armor but his battlepower never increases
Battle power never increases naturally, it only goes up with different equipment. If you're using a hack as a base, chances are the hack may have left all weapons with the same battle power, or at least very similar.

Quote
I think this is due to some class hard coding. He is weak as balls without a staff...
Final Fantasy 6 uses the entity level as the primary stat to determine how much damage is done physically. Magic uses level, but it isn't as much of a factor, although it is a large role. If the damage formula wasn't changed, level will still be the primary factor in damage.

6
Unfortunately, this involves bank C1 which is a complete nightmare to even try to understand. I don't know where to begin to try and figure this one out. :'(

7
ROM Hacking Discussion / Re: SNES Debugging, tracking lag?
« on: August 05, 2014, 11:24:19 am »
There's more to it than simply "removing sprites." FF6 at times has upwards of 40 and 50 sprites onscreen at once, usually with low or no lag. If there's logic behind the sprites, ie hit detection, movement, etc, and there's that many sprites onscreen, then that can create lag. An optimized routine will help to reduce the lag, if not eliminate it. A poorly coded routine, such as the green soldier in AlttP, can produce enough lag to make babies cry.

It may help to just scan the code and seeing if there's any way you can speed some of it up. To do this, you'll have to look at an instruction set to see how many cycles each instruction uses, then determine if there's a way specific code can be optimized.

8
7E/1500 is the NMI address the game jumps to. So far this is the only way I've been able to reliably detect if you're in battle or not. If #$C10BA7 is held there, you're in battle. :thumbsup:

9
The game will automatically detect how many pixels per line before it puts in line breaks. If you have manual line breaks to go along with them, then it'll look funny. :P

I'd go with Terii Senshi's Evade Bugfix
Sadly, unless you are hacking the game to accommodate, evade will still be useless. Almost every weapon has a hit rate of 180% (or higher), making the meager 10% evade you'll occasionally see rather pointless.

Quote
and the Rippler Bugfix
Unfortunately, this is just a situational thing to prevent Shadow from getting his dog killed. Although it's not like that can't happen anyway. :-\

I went and checked RHDN's database and there are 69! Which ones are the most useful and more gameplay/graphics/sound-oriented
If you're looking for bug fixes, assassin, Novalia Spirit, Master ZED, and myself have a fair amount of fixes to choose from.

10
Gaming Discussion / Re: Ouya emulation quality?
« on: April 20, 2014, 11:53:50 am »
-PSX
-N64
These two systems aren't even emulated that well on desktops yet (and at this point in time, there's no reason to expect they ever will be, sadly), and they've had the most time put into them. I seriously doubt you'll find a halfways-decent emulator for these two consoles on any other platform.

11
Personal Projects / Re: Standard map Pointers
« on: April 18, 2014, 11:06:14 am »
Having OCD about something as unimportant as this seems rather silly, especially if you're doing it all manually.

If something isn't working, you probably didn't do it correctly. Double check your math, double check that you're tweaking the correct pointers, double check everything.

12
General Discussion / Re: Gaming while married
« on: April 09, 2014, 03:08:32 pm »
As time has passed, I find myself playing games far less often than I used to. If she wanted to spend time with me, I wouldn't have any problem turning it off. She's ok with me playing, but if she said to get rid of them, I wouldn't do it.

I am not married, but that is pretty much the situation.

13
Personal Projects / Re: Paper Mario 64 - General Hacking Tool
« on: April 06, 2014, 12:26:19 am »
Without being a total creeper, the only thing I can say is I love you. :o Love Paper Mario.

14
At one point some years ago, we used assassin's expanded icons patch, and moved the icons to bank C0 like you see with this code. However, about a year ago we moved the icons back to bank C3 since we dumped the whole bank ourselves. The icons still have the C0 labels, but the data is C3. Once C3 became organized, it made sense to keep C3 stuff in C3.

As for F6, that is the new location of the item data and names for a hack we were working on. You can change that label back to D85000 or wherever the item data originally is.

15
Front Page News / Re: Utilities: FF7Tools 1.0 Released
« on: April 01, 2014, 11:10:46 am »
Nah, I don't think kids nowadays have the patience to type everything out for an editor. It'll probably just be about 953 low quality FF7 hacks per month. :laugh:

16
One particular piece of code in bank C3 could get an incredible speed boost, if you haven't implemented it yet:
Code: [Select]
Move inventory to backup ram for now
C3/26B8: 7B      TDC (Put 0 in A)
C3/26B9: AA      TAX (Transfer A = 0 to X)
C3/26BA: BD6918  LDA $1869,X (Load inventory item at position X)
C3/26BD: 9F8DAA7E STA $7EAA8D,X (Store in RAM location)
C3/26C1: A9FF    LDA #$FF (Load an "empty" value)
C3/26C3: 9D6918  STA $1869,X (Put it in inventory location X)
C3/26C6: E8      INX (Increment X)
C3/26C7: E00001  CPX #$0100 (Is X over 256?)
C3/26CA: D0EE    BNE $26BA (If not, branch -> Load inventory item X)
C3/26CC: 7B      TDC (Otherwise, put a 0 in A)
C3/26CD: AA      TAX (Transfer A = 0 to X)
C3/26CE: BD6919  LDA $1969,X (Get quantity of item X)
C3/26D1: 9F8DAB7E STA $7EAB8D,X (Store the quantity in a RAM location)
C3/26D5: 7B      TDC (Put 0 in A)
C3/26D6: 9D6919  STA $1969,X (Put it in for quantity of item X)
C3/26D9: E8      INX (Increment X)
C3/26DA: E00001  CPX #$0100 (Is X 256 yet?)
C3/26DD: D0EF    BNE $26CE (If not, branch -> Get quantity of item X)
C3/26DF: 60      RTS (Exit)

C3/26E0: 7B      TDC
C3/26E1: A8      TAY
C3/26E2: AA      TAX
C3/26E3: BFF526C3 LDA $C326F5,X   (get current icon)
C3/26E7: DA      PHX            (save position in icon list)
C3/26E8: 85E0    STA $E0         (save current icon)
C3/26EA: 200627  JSR $2706       (output any items whose icon matches the one
                                                  in $E0 to our new item list.)
C3/26ED: FA      PLX            (restore position in icon list)
C3/26EE: E8      INX            (move to next icon)
C3/26EF: E01100  CPX #$0011      (loop for all 17 icons or item types)
C3/26F2: D0EF    BNE $26E3
C3/26F4: 60      RTS

I changed it to this:
Code: [Select]
; move entire inventory to backup ram for now
C326B8: TDC
C326B9: TAX
C326BA: LDA $1869,X  ; load this item
C326BD: STA $7EAA8D,X  ; move it
C326C1: LDA #$FF  ; no item
C326C3: STA $1869,X  ; save in this inventory slot
LDA $1969,X  ; load this quantity
STA $7EAB8D,X  ; move it
STZ $1969,X  ; zero current quantity
C326C6: INX
C326C7: CPX #$0100
C326CA: BNE C326BA

C326E0: TDC
C326E1: TAY
C326E2: TYX
C326E3: LDA C0DEA0,X  ; new location of the icons
C326E7: PHX
C326E8: STA $E0  ; save this icon for now
C326EA: ; JSR C32706
C32706: TDC
C32707: TAX
C32708: PHX
C32709: LDA $7EAA8D,X  ; get item in backup inventory
C3270D: CMP #$FF  ; no item?
C3270F: BEQ C32739  ; branch if so
C32711: STA $4202  ; save item ID
C32714: LDA #$10  ;  multiply by 16
C32716: STA $4203
C32719: NOP
C3271A: NOP
C3271B: NOP
C3271C:
C3271F: LDA $F63200,X
C32723: CMP $E0  ; do these icons match?
C32725: BNE C32739  ; branch if not
C32727: PLX
C32728: LDA $7EAA8D,X
C3272C: STA $1869,Y  ; save in this inventory slot
C3272F: LDA $7EAB8D,X
C32733: STA $1969,Y  ; save quantity
C32736: INY
C32737: BRA C3273A
C32739: PLX
C3273A: INX
C3273B: CPX #$0100  ; have we checked the entire inventory yet?
C3273E: BNE C32708  ; branch if not
C326ED: PLX
C326EE: INX
C326EF: CPX #$0023  ; have we checked all icons yet?
C326F2: BNE C326E3  ; branch if not
C326F4: RTS

With the first routine running into the second, you just need to remove the JSR to the second, which is originally at C3/2682.

This code is executed every time you use "Arrange" in the item menu. Optimizing just the loops speed it up by about 60%. :thumbsup:

17
Edit: You'll need to modify the first parameter byte of the 4D command, which is: formation number - 256 (meaning your boss formation must be between #256 and #512 if my memory is good...). What I find odd is that here the formation is $8B while the actual formation is 523... It doesn't match 523 - 256...
It loads the 2-pack formation, which for FF3usME is 512-256. $8B is 2-pack 139, which is number 395 in the "Packs" tab of the formations editor.

18
You know, when I was posting this, I was completely neglecting which free bit corresponds with which check box in the editor. I'm glad you figured that out quickly. :-[

$11D7:1 looks at the "?" check box with "Raise steal rate" and "Raise sketch rate" et al.
$11D8:7 looks at the "?" check box with "Randomly retort" and "Randomly evade" et al.
$11D9:5 and 6 looks at the "?" check boxes with "Shell on low HP" and "Safe on low HP" et al.

I'll just hide now. :laugh:

19
Luck is irrelevant, you are Disch. You will succeed.

20
Hooray, I'm helping! </Zoidberg!>

I would highly recommend you do not make this hard-coded to a specific item. There's enough hard-coded crap already in this game, and it would pretty bad to add to it. My personal recommendation is to claim an unused bit in one of the item property bytes (check boxes with "?" in FF3usME) and use that instead. Here's some handy code for you to help:

Code: [Select]
(Weapon "addition magic")

C2/363E: A5 B5        LDA $B5
C2/3640: C9 16        CMP #$16   (is Command Jump?)
C2/3642: D0 05        BNE $3649  (if not, branch)
C2/3644: AD 70 3A     LDA $3A70  (are there more attacks to do from Offering /
                                  Quadra Slam / Dragon Horn / etc?)
C2/3647: D0 1C        BNE $3665  (if so, exit function)
C2/3649: AD 89 3A     LDA $3A89
C2/364C: 89 40        BIT #$40   (is "cast randomly with fight" bit set in the
                                  weapon spellcast byte?)
C2/364E: F0 15        BEQ $3665  (if not, Exit function)
C2/3650: EB           XBA
C2/3651: 20 xx xx     JSR $xxxx  (JSR to new routine elsewhere with free space in C2)
C2/3654: EA           NOP
C2/3655: EA           NOP
C2/3656: B0 0D        BCS $3665  (branch if spell proc is unsuccessful, either due to no buff or no good RNG roll)
C2/3658: EB           XBA
C2/3659: 29 3F        AND #$3F   (isolate spell # of weapon in bottom 6 bits)
C2/365B: 8D 00 34     STA $3400  (save it)
C2/365E: A9 10        LDA #$10
C2/3660: 14 B2        TRB $B2    (prevent followup spell from hitting random target;
                                  it can only hit the one whacked by the weapon.)
C2/3662: EE 70 3A     INC $3A70  (increment # of attacks remaining.  since the calling
                                  code will soon decrement this, the addition magic
                                  should be cast with the same # of attacks remaining
                                  as the weapon strike preceding it was)
C2/3665: 60           RTS

Some new location in bank C2!

First you should determine which free bit you wish to use. There's technically 4 free bits, but one of them, $11D7:1 is used as scratch for the Earrings. You could use this if you wanted, but you would also get a damage boost for magical attacks. Otherwise you can use $11D8:7, $11D9:5, or $11D9:6.
You could also use the party-wide bit the Sprint Shoes currently use, but then the effect would apply to everyone in the party.

Code: [Select]
If you use $11D8:7...
CLC  (this is our indicator that it is equipped, but if it's not equipped then carry will be changed with the RNG call)
LDA $11D8
BMI equipped (the highest bit holds our effect, and this branch will take if it's equipped)
JSR $4B5A  (our RNG, rolls 0-255)
CMP #$40
equipped:
RTS

If you use $11D9:5 or 6
CLC
LDA $11D9
BIT #$20 or BIT #$40 (depending on above)
BNE equipped
JSR $4B5A  (our RNG, rolls 0-255)
CMP #$40
equipped:
RTS

I didn't test it, but this should work unless I got my branch logic mixed up.

Pages: [1] 2 3 4 5 6 ... 15