Final Fantasy Hacktics

Modding => PSX FFT Hacking => Topic started by: Xifanie on November 19, 2013, 12:28:59 AM

Title: Synthesis Shop 1.00
Post by: Xifanie on November 19, 2013, 12:28:59 AM
LINK TO VERSION 1.00 (http://ffhacktics.com/smf/index.php?topic=10108.msg194219#msg194219)

Inspired from FFIX

Turn the Fur Shop into a Synthesis Shop.

Examples:

Chameleon Robe + Leather Vest + 3000gil = C Bag
5 Potions + 200 Gil = Hi-Potion
3 White Robes + Crystal Mail + 50000gil = Venetian Shield

The fur shop's sold inventory would be automatically calculated based on the player's inventory. To not screw things up, poach items could be sent directly into player inventory instead of going through the Fur Shop, but it might still be possible to have it work without that.

There should probably be a new list of prices for each item or simply use the good old half or full price of the item, alongside the consumption of the other items in the player's inventory.
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Angel on November 19, 2013, 12:36:22 AM
I am in favor of this :o (which should come as a surprise to absolutely no one).
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Pride on November 19, 2013, 01:59:58 AM
... This is interesting enough for me to consider...
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Elric on November 19, 2013, 02:11:38 AM
Sounds pretty cool to me.
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Timbo on November 19, 2013, 10:41:20 AM
This sounds bad ass. I'm rather fond of the broken gear is appears at fur shop hack, is there a way to keep these two compatible?
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Xifanie on November 19, 2013, 01:57:14 PM
I don't think it's possible without making a buy menu in the Fur shop specifically for Synthesis items, while leaving the normal Buy from the Fur Shop intact.
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Choto on November 19, 2013, 02:02:33 PM
You could definitely keep the broken weapons part. You'd just have to keep an item table with a count of broken weapons. So it would have to run it's initial routine to calculate synthesis items based on your inventory. Then add broken/stolen weapons from the table.

When you actually buy something, it would have to check that broken/stolen table again to see if a count exists. If so, you would get the item for freeeeeee. Or whatever the cost associated with that is.

It would take a bit of code, but it's doable.
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Pride on November 19, 2013, 03:34:26 PM
Not sure if its worth it though. When I get off I'm going to do some research on the shop buying and see what I can do.
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Xifanie on November 19, 2013, 03:50:26 PM
Choto, that sounds tremendously complicated to code it like that, managing:
- Item X at Y Price
- Item X at Z Price consuming A, B, C

In one item slot? You'd have to force the player to buy one over the other, or code something to allow the player to pick & choose.


As for the item inventory, I was thinking of displaying every possible item you can synthesis, and then, alongside the gil amount checking routine, force it like you wouldn't have enough gil if you don't have the required items. That way it would just grey it out.

Synthesis information for each item could simply be written in the description of each item.
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Pride on November 19, 2013, 04:03:47 PM
Yeah I was thinking you'd have to put the requirements in the item description
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Choto on November 19, 2013, 04:20:59 PM
ehhh I don't think it's as much complicated as it is strenuous to code extra routines. Ya the assumption would be if there's a "broken" item available, that would override the synthesis.

Complicated is my middle name lol...
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: formerdeathcorps on November 22, 2013, 05:48:32 PM
How does the game decide which items are consumed to form the synthesized item?  Is it a fixed recipe (like refining in PSP TO), or does it simply remove certain items from your inventory that add up to the required cost for refine?  I was thinking for the patch makers who have extra item slots could make "gems" that are used only for refining or selling for a high price that can't be equipped or otherwise used and the game randomly removes gems equal to the cost of the item you are to synthesize (as this routine would be easy and save the need for yet another table for recipes).
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Xifanie on November 22, 2013, 07:00:45 PM
FFIX uses 63 synthesis slots, using a gil cost and only 2 items to merge into one; sometimes it's the same item but x2.

My idea for this hack is:
- 64 slots
- Gil cost
- Up to 3 items from 1-99 quantity

There could also be a byte to determine which shops can sell the item.

People could assign item slots to be used as materials only for synthesis (I recommend the throw-only items if you get rid of the Throw vanilla skillset in your patch)


@fdc:
I remember someone using a coin system, coins that you could sell for extra money. The thing is, we already have gold, so I don't see the point of making a synthesis shop that basically uses just a 2nd type of gold currency. Maybe have it your way for your patch, but I definitely wouldn't want a broad use hack like that to be so limited.
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Pride on December 02, 2013, 09:05:42 PM
Haven't forgotten this yet, important routines for the cause. Some scarce notes on some of the routines while I figure out what is happening during it all. Sorry :oops:

Code: (Sort Items by type) [Select]
Sort Items
00125374: 308403ff andi r4,r4,0x03ff
00125378: 2882007a slti r2,r4,0x007a
0012537c: 14400013 bne r2,r0,0x001253cc
00125380: 00001821 addu r3,r0,r0
00125384: 28820080 slti r2,r4,0x0080
00125388: 14400010 bne r2,r0,0x001253cc
0012538c: 34030005 ori r3,r0,0x0005
00125390: 28820090 slti r2,r4,0x0090
00125394: 1440000d bne r2,r0,0x001253cc
00125398: 34030001 ori r3,r0,0x0001
0012539c: 288200ac slti r2,r4,0x00ac
001253a0: 1440000a bne r2,r0,0x001253cc
001253a4: 34030002 ori r3,r0,0x0002
001253a8: 288200d0 slti r2,r4,0x00d0
001253ac: 10400003 beq r2,r0,0x001253bc
001253b0: 00000000 nop
001253b4: 080494f3 j 0x001253cc
001253b8: 34030003 ori r3,r0,0x0003
001253bc: 288200f0 slti r2,r4,0x00f0
001253c0: 10400002 beq r2,r0,0x001253cc
001253c4: 34030005 ori r3,r0,0x0005
001253c8: 34030004 ori r3,r0,0x0004
001253cc: 03e00008 jr r31
001253d0: 00601021 addu r2,r3,r0

Code: (Load Poached Items into shop) [Select]
00123824: 308403ff andi r4,r4,0x03ff Item ID
00123828: 3c018006 lui r1,0x8006 r1 = 0x8006
0012382c: 00240821 addu r1,r1,r4 r1 = 0x80060000 + Item ID
00123830: 90229494 lbu r2,-0x6b6c(r1) Load Poach'd item inventory
00123834: 00000000 nop
00123838: 00451821 addu r3,r2,r5 Inventory + r5 ?
0012383c: 04610003 bgez r3,0x0012384c
00123840: 28620100 slti r2,r3,0x0100
00123844: 00001821 addu r3,r0,r0 Set r3 to 0
00123848: 28620100 slti r2,r3,0x0100
0012384c: 14400002 bne r2,r0,0x00123858
00123850: 00000000 nop
00123854: 340300ff ori r3,r0,0x00ff r3 = 0xff
00123858: 3c018006 lui r1,0x8006
0012385c: 00240821 addu r1,r1,r4
00123860: a0239494 sb r3,-0x6b6c(r1) Store Inventory Item
00123864: 03e00008 jr r31
00123868: 00601021 addu r2,r3,r0 Move to r2

Code: (Best Fit Routine) [Select]
0012457c: 27bdffe0 addiu r29,r29,0xffe0
00124580: afb10014 sw r17,0x0014(r29)
00124584: 00808821 addu r17,r4,r0
00124588: afb00010 sw r16,0x0010(r29)
0012458c: 30b003ff andi r16,r5,0x03ff Move Item ID to r16
00124590: 16000003 bne r16,r0,0x001245a0 Branch if item exist
00124594: afbf0018 sw r31,0x0018(r29)
00124598: 0804917f j 0x001245fc Jump to end if Item does not exist
0012459c: 34020001 ori r2,r0,0x0001
001245a0: 0c0494dd jal 0x00125374 Sort items
001245a4: 02002021 addu r4,r16,r0 Move Item ID to r4
001245a8: 34030005 ori r3,r0,0x0005 r3 = 0x05
001245ac: 14430003 bne r2,r3,0x001245bc
001245b0: 00111400 sll r2,r17,0x10
001245b4: 0804917f j 0x001245fc Jump to end
001245b8: 2402ffff addiu r2,r0,0xffff
001245bc: 00021383 sra r2,r2,0x0e
001245c0: 3c01801d lui r1,0x801d
001245c4: 00220821 addu r1,r1,r2
001245c8: 8c24d5ec lw r4,-0x2a14(r1)
001245cc: 0c04ac6d jal 0x0012b1b4
001245d0: 24840073 addiu r4,r4,0x0073
001245d4: 0c0493f4 jal 0x00124fd0 Load Item's Item Type
001245d8: 02002021 addu r4,r16,r0 r4 = Item ID
001245dc: 0c04ac7b jal 0x0012b1ec
001245e0: 00402021 addu r4,r2,r0 Move Item type to r4
001245e4: 0c04ac7b jal 0x0012b1ec
001245e8: 34040001 ori r4,r0,0x0001
001245ec: 14400002 bne r2,r0,0x001245f8
001245f0: 34030001 ori r3,r0,0x0001
001245f4: 2403ffff addiu r3,r0,0xffff
001245f8: 00601021 addu r2,r3,r0
001245fc: 8fbf0018 lw r31,0x0018(r29)
00124600: 8fb10014 lw r17,0x0014(r29)
00124604: 8fb00010 lw r16,0x0010(r29)
00124608: 27bd0020 addiu r29,r29,0x0020
0012460c: 03e00008 jr r31
00124610: 00000000 nop

Code: (Main Shop Routine: Best Fit, Poach, Buy) [Select]
0012502c: 27bdffa0 addiu r29,r29,0xffa0
00125030: afb60050 sw r22,0x0050(r29)
00125034: 8fb60070 lw r22,0x0070(r29)
00125038: 34020001 ori r2,r0,0x0001
0012503c: afbf005c sw r31,0x005c(r29)
00125040: afbe0058 sw r30,0x0058(r29)
00125044: afb70054 sw r23,0x0054(r29)
00125048: afb5004c sw r21,0x004c(r29)
0012504c: afb40048 sw r20,0x0048(r29)
00125050: afb30044 sw r19,0x0044(r29)
00125054: afb20040 sw r18,0x0040(r29)
00125058: afb1003c sw r17,0x003c(r29)
0012505c: afb00038 sw r16,0x0038(r29)
00125060: afa70018 sw r7,0x0018(r29)
00125064: 16c20008 bne r22,r2,0x00125088
00125068: a7a40010 sh r4,0x0010(r29)
0012506c: 3c028004 lui r2,0x8004
00125070: 8c4273ac lw r2,0x73ac(r2)
00125074: 3c030180 lui r3,0x0180
00125078: 00431024 and r2,r2,r3
0012507c: 10400003 beq r2,r0,0x0012508c
00125080: 00061400 sll r2,r6,0x10
00125084: 34160002 ori r22,r0,0x0002
00125088: 00061400 sll r2,r6,0x10
0012508c: 00021c03 sra r3,r2,0x10
00125090: 28620002 slti r2,r3,0x0002
00125094: 10400004 beq r2,r0,0x001250a8
00125098: afa00020 sw r0,0x0020(r29)
0012509c: 0000a021 addu r20,r0,r0
001250a0: 08049445 j 0x00125114
001250a4: 341e0001 ori r30,r0,0x0001
001250a8: 34020002 ori r2,r0,0x0002
001250ac: 14620004 bne r3,r2,0x001250c0
001250b0: 34020003 ori r2,r0,0x0003
001250b4: 34140002 ori r20,r0,0x0002
001250b8: 08049445 j 0x00125114
001250bc: 341e0002 ori r30,r0,0x0002
001250c0: 14620004 bne r3,r2,0x001250d4
001250c4: 34020004 ori r2,r0,0x0004
001250c8: 34140003 ori r20,r0,0x0003
001250cc: 08049445 j 0x00125114
001250d0: 341e0003 ori r30,r0,0x0003
001250d4: 14620004 bne r3,r2,0x001250e8
001250d8: 34020005 ori r2,r0,0x0005
001250dc: 34140004 ori r20,r0,0x0004
001250e0: 08049445 j 0x00125114
001250e4: 341e0004 ori r30,r0,0x0004
001250e8: 14620004 bne r3,r2,0x001250fc
001250ec: 34020006 ori r2,r0,0x0006
001250f0: 0000a021 addu r20,r0,r0
001250f4: 08049445 j 0x00125114
001250f8: 0000f021 addu r30,r0,r0
001250fc: 14620004 bne r3,r2,0x00125110
00125100: 341e0005 ori r30,r0,0x0005
00125104: 34140001 ori r20,r0,0x0001
00125108: 08049445 j 0x00125114
0012510c: 341e0001 ori r30,r0,0x0001
00125110: 34140005 ori r20,r0,0x0005
00125114: 00051400 sll r2,r5,0x10
00125118: 00028403 sra r16,r2,0x10
0012511c: 2a020064 slti r2,r16,0x0064
00125120: 1040004c beq r2,r0,0x00125254
00125124: 00009021 addu r18,r0,r0
00125128: 0c03bc6a jal 0x000ef1a8 Get Integer (Shop ID)
0012512c: 3404006f ori r4,r0,0x006f r4 = 0x6f (Shop ID integer)
00125130: 00009021 addu r18,r0,r0
00125134: afa20028 sw r2,0x0028(r29)
00125138: 34028000 ori r2,r0,0x8000
0012513c: 02021007 srav r2,r2,r16
00125140: 8fa80020 lw r8,0x0020(r29)
00125144: 0000b821 addu r23,r0,r0
00125148: afa20030 sw r2,0x0030(r29)
0012514c: 00081040 sll r2,r8,0x01
00125150: 8fa80018 lw r8,0x0018(r29)
00125154: 00008821 addu r17,r0,r0
00125158: 0048a821 addu r21,r2,r8
0012515c: 00121400 sll r2,r18,0x10
00125160: 00029c03 sra r19,r2,0x10
00125164: 0c0494dd jal 0x00125374 Sort Items
00125168: 02602021 addu r4,r19,r0
0012516c: 3283ffff andi r3,r20,0xffff
00125170: 3042ffff andi r2,r2,0xffff
00125174: 10620003 beq r3,r2,0x00125184
00125178: 02408021 addu r16,r18,r0
0012517c: 17c2002e bne r30,r2,0x00125238
00125180: 00000000 nop
00125184: 3c018019 lui r1,0x8019
00125188: 00310821 addu r1,r1,r17
0012518c: 9023d844 lbu r3,-0x27bc(r1)
00125190: 3c018019 lui r1,0x8019
00125194: 00310821 addu r1,r1,r17
00125198: 9022d845 lbu r2,-0x27bb(r1)
0012519c: 8fa80030 lw r8,0x0030(r29)
001251a0: 00031a00 sll r3,r3,0x08
001251a4: 00431025 or r2,r2,r3
001251a8: 00481024 and r2,r2,r8
001251ac: 10400022 beq r2,r0,0x00125238
001251b0: 00000000 nop
001251b4: 3c018006 lui r1,0x8006
001251b8: 00370821 addu r1,r1,r23
001251bc: 90222ec2 lbu r2,0x2ec2(r1)
001251c0: 8fa80028 lw r8,0x0028(r29)
001251c4: 00000000 nop
001251c8: 0102102a slt r2,r8,r2
001251cc: 1440001a bne r2,r0,0x00125238
001251d0: 00000000 nop
001251d4: 12c00013 beq r22,r0,0x00125224
001251d8: 02602821 addu r5,r19,r0
001251dc: 97a80010 lhu r8,0x0010(r29)
001251e0: 00000000 nop
001251e4: 00082400 sll r4,r8,0x10
001251e8: 0c04915f jal 0x0012457c Best Fit Routine
001251ec: 00042403 sra r4,r4,0x10
001251f0: 00401821 addu r3,r2,r0
001251f4: 34020002 ori r2,r0,0x0002
001251f8: 16c20004 bne r22,r2,0x0012520c
001251fc: 00000000 nop
00125200: 2408ffff addiu r8,r0,0xffff
00125204: 1068000c beq r3,r8,0x00125238
00125208: 00000000 nop
0012520c: 34020001 ori r2,r0,0x0001
00125210: 16c20004 bne r22,r2,0x00125224
00125214: 2408ffff addiu r8,r0,0xffff
00125218: 14680002 bne r3,r8,0x00125224
0012521c: 00000000 nop
00125220: 36504000 ori r16,r18,0x4000
00125224: a6b00000 sh r16,0x0000(r21)
00125228: 8fa80020 lw r8,0x0020(r29)
0012522c: 26b50002 addiu r21,r21,0x0002
00125230: 25080001 addiu r8,r8,0x0001
00125234: afa80020 sw r8,0x0020(r29)
00125238: 26f7000c addiu r23,r23,0x000c
0012523c: 26520001 addiu r18,r18,0x0001
00125240: 2a4200fe slti r2,r18,0x00fe
00125244: 1440ffc5 bne r2,r0,0x0012515c
00125248: 26310002 addiu r17,r17,0x0002
0012524c: 080494c5 j 0x00125314
00125250: 00000000 nop
00125254: 8fa80020 lw r8,0x0020(r29)
00125258: 3295ffff andi r21,r20,0xffff
0012525c: 00081040 sll r2,r8,0x01
00125260: 8fa80018 lw r8,0x0018(r29)
00125264: 2414ffff addiu r20,r0,0xffff
00125268: 00489821 addu r19,r2,r8
0012526c: 00121400 sll r2,r18,0x10
00125270: 00028c03 sra r17,r2,0x10
00125274: 0c0494dd jal 0x00125374 Sort Items
00125278: 02202021 addu r4,r17,r0
0012527c: 3042ffff andi r2,r2,0xffff
00125280: 12a20003 beq r21,r2,0x00125290
00125284: 02408021 addu r16,r18,r0
00125288: 17c2001e bne r30,r2,0x00125304
0012528c: 00000000 nop
00125290: 02202021 addu r4,r17,r0 Move r17 to r4
00125294: 0c048e09 jal 0x00123824 Get Poached Items
00125298: 00002821 addu r5,r0,r0 Clear r5
0012529c: 10400019 beq r2,r0,0x00125304
001252a0: 00000000 nop
001252a4: 12c00012 beq r22,r0,0x001252f0
001252a8: 02202821 addu r5,r17,r0
001252ac: 97a80010 lhu r8,0x0010(r29)
001252b0: 00000000 nop
001252b4: 00082400 sll r4,r8,0x10
001252b8: 0c04915f jal 0x0012457c Best Fit Routine
001252bc: 00042403 sra r4,r4,0x10
001252c0: 00401821 addu r3,r2,r0
001252c4: 34020002 ori r2,r0,0x0002
001252c8: 16c20003 bne r22,r2,0x001252d8
001252cc: 00000000 nop
001252d0: 1074000c beq r3,r20,0x00125304
001252d4: 00000000 nop
001252d8: 34020001 ori r2,r0,0x0001
001252dc: 16c20004 bne r22,r2,0x001252f0
001252e0: 00000000 nop
001252e4: 14740002 bne r3,r20,0x001252f0
001252e8: 00000000 nop
001252ec: 36504000 ori r16,r18,0x4000
001252f0: a6700000 sh r16,0x0000(r19)
001252f4: 8fa80020 lw r8,0x0020(r29)
001252f8: 26730002 addiu r19,r19,0x0002
001252fc: 25080001 addiu r8,r8,0x0001
00125300: afa80020 sw r8,0x0020(r29)
00125304: 26520001 addiu r18,r18,0x0001
00125308: 2a4200fe slti r2,r18,0x00fe
0012530c: 1440ffd8 bne r2,r0,0x00125270
00125310: 00121400 sll r2,r18,0x10
00125314: 8fa80020 lw r8,0x0020(r29)
00125318: 00000000 nop
0012531c: 00081040 sll r2,r8,0x01
00125320: 8fa80018 lw r8,0x0018(r29)
00125324: 2403ffff addiu r3,r0,0xffff
00125328: 00481021 addu r2,r2,r8
0012532c: a4430000 sh r3,0x0000(r2)
00125330: 8fa50018 lw r5,0x0018(r29)
00125334: 0c048595 jal 0x00121654 Main Shop Routine
00125338: 34040006 ori r4,r0,0x0006
0012533c: 8fa20020 lw r2,0x0020(r29)
00125340: 8fbf005c lw r31,0x005c(r29)
00125344: 8fbe0058 lw r30,0x0058(r29)
00125348: 8fb70054 lw r23,0x0054(r29)
0012534c: 8fb60050 lw r22,0x0050(r29)
00125350: 8fb5004c lw r21,0x004c(r29)
00125354: 8fb40048 lw r20,0x0048(r29)
00125358: 8fb30044 lw r19,0x0044(r29)
0012535c: 8fb20040 lw r18,0x0040(r29)
00125360: 8fb1003c lw r17,0x003c(r29)
00125364: 8fb00038 lw r16,0x0038(r29)
00125368: 27bd0060 addiu r29,r29,0x0060
0012536c: 03e00008 jr r31
00125370: 00000000 nop

Code: (Load Item's Type) [Select]
00124fd0: 308403ff andi r4,r4,0x03ff
00124fd4: 00041040 sll r2,r4,0x01 Item ID * 2
00124fd8: 00441021 addu r2,r2,r4 Item ID * 3
00124fdc: 00021080 sll r2,r2,0x02 Item ID * 12
00124fe0: 3c018006 lui r1,0x8006
00124fe4: 00220821 addu r1,r1,r2 0x80060000 + Item ID * 12
00124fe8: 90222ebd lbu r2,0x2ebd(r1) Load Item's Item Type
00124fec: 03e00008 jr r31
00124ff0: 00000000 nop
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Xifanie on December 14, 2013, 07:34:50 PM
Small Progress on the hack:

Had to hack the text, because FFTactext doesn't allow editing that text <.< unless the newer versions do, but I haven't tried them.
As you can see in the screenshot, I changed "Buy / Sell / Leave store" to "Buy / Synth / Sell / Leave". Sorry folks but that's all I can do for now, I had to play with the space I had.
You should be able to, however, edit the help descriptions in Tactext.

Up to now, what the hack does is write 0x01 to 0x8013D990 if the Synthesis option is selected, and 0x00 with buy. So, using this byte, we should be able to customize the fur shop into 2 sections. "Synth" simply loads the same routine as "Buy".

Right now my spreadsheet supports 64 Synthesis slots, with the following data:
12 bytes per item

Code: ("Synthesis Shop xml") [Select]
<?xml version="1.0" encoding="utf-8" ?>
<Patches>
<Patch name="Synthesis Shop: Text Edits">
<Location file="WORLD_WORLD_BIN" offset="B5054">0B383CF81C3C31372BF81C282F2FF81528243928FE</Location>
</Patch>
<Patch name="Synthesis Shop">
<Location file="WORLD_WORLD_BIN" offset="B519E">5000</Location>
<Location file="WORLD_WORLD_BIN" offset="B51A6">5000</Location>
<Location file="WORLD_WORLD_BIN" offset="B51AE">5000</Location>
<Location file="WORLD_WORLD_BIN" offset="B51B6">0300</Location>
<Location file="WORLD_WORLD_BIN" offset="57288">
1D80043C
28D78384
1480013C
0200622C
12004010
02000234
382F8290
90D923A0
</Location>
</Patch>
</Patches>
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Xifanie on December 19, 2013, 01:10:40 AM
Progress~

(https://dl.dropboxusercontent.com/u/89448064/SCUS_942.21_18122013_204859_0642.png)



Alright, time to test 100gil + 5 Hi-Potions = X-Potion

First, we start with 50
(https://dl.dropboxusercontent.com/u/89448064/SCUS_942.21_18122013_205045_0016.png)
Let's buy... 5 ;o
(https://dl.dropboxusercontent.com/u/89448064/SCUS_942.21_18122013_205055_0999.png)
Now we has 55 X-Potions :O
(https://dl.dropboxusercontent.com/u/89448064/SCUS_942.21_18122013_205112_0956.png)
And 25 Hi-Potions
(https://dl.dropboxusercontent.com/u/89448064/SCUS_942.21_18122013_205111_0048.png)



Items are still displayed even if you don't have the required items to synthesis. However this causes the player being able to select the item for purchase: see bug.
Items have a custom price just for Synthesis.

I'm working to add completely Custom text. For instance, for this Example, I want it to display:
Quote
Clerk
You'll need: 5 Hi Potions.



BUG:
I have no clue how to prevent players from completing a transaction of buying 0 items.
(https://dl.dropboxusercontent.com/u/89448064/SCUS_942.21_18122013_204350_0193.png)
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Pride on December 19, 2013, 01:26:00 AM
...That's awesome ^_^
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Choto on December 19, 2013, 03:27:51 AM
...That's awesome ^_^

Really... with all I've learned about ASM... i still don't know how Xiffie does the things she does. O_O
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Xifanie on December 19, 2013, 03:33:46 AM
I don't know how SA and fdc figure out how routines work. :v
They read routines as if they were paragraphs in a book. For me it's all... O.o o.O what's that?
I can still code though.

But yeah, for me it's mostly Cheat Engine + convert address to RAM address, breakpoint, find place to add a jump to the bigger routine, and that's it.


(https://dl.dropboxusercontent.com/u/89448064/ASMing_in_excel.PNG)

This is pretty much how I work. Nearly every lui/addiu/sb/lb/branches/jumps/whatever are using formulas to make sure that even if I move ANYTHING around, everything else will be recalculated perfectly.
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Xifanie on December 20, 2013, 06:13:17 PM
Well, my routine is working perfectly, but I need to move it to trigger under the right conditions and trigger a Clerk message refresh (which is simple as hell).

Remedy: 50gil + 3 Antidotes + 3 Echo Grass + 3 Eye Drops


Prints item in red if you don't have
enough to Synthesize a single one.

(https://dl.dropboxusercontent.com/u/89448064/SCUS_942.21_20122013_135455_0956.png)
Otherwise, multiplies the amount
needed by the number your are
selecting.
(This will update automatically)
(https://dl.dropboxusercontent.com/u/89448064/SCUS_942.21_20122013_140229_0489.png)
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Angel on December 20, 2013, 06:17:03 PM
That is too awesome! :O

I love the red highlight saying which item(s) are insufficient in quantity. Really looks amazing!

Edit: my keyboard still hates me.
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Elric on December 20, 2013, 06:57:02 PM
Holy fucking god, this is awesome!
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Xifanie on December 21, 2013, 09:33:11 PM
Well, it's release time! No bug to it to my knowledge. http://xifanie.ffhacktics.com/Synthesis%20Shop/Synthesis%20Shop.xlsx (http://xifanie.ffhacktics.com/Synthesis%20Shop/Synthesis%20Shop.xlsx)
Edit the spreadsheet as you wish and xml away!
PS: You will need to edit the Fur Shop help popups in FFTactext. Without doing so, Synthesis has Sell's description, and Sell has Leave store's description.

You might have noticed the amount of items isn't recalculated by how many you're buying. I had no real alternative because refreshing the Clerk's message would make it blink repeatedly when increasing the amount when I kept pressing . It looked atrocious. Plus, listing the amount of items you have is already an improvement over FFIX.

WARNING: Do NOT use Razele's "Secret Hunt ability isn't needed to enter Fur Shop" hack.

(http://xifanie.ffhacktics.com/Synthesis%20Shop/SCUS_942.21_21122013_171803_0262.png)
Standard Fur Shop Menu
(http://xifanie.ffhacktics.com/Synthesis%20Shop/SCUS_942.21_21122013_171758_0162.png)
Buy is disabled if you don't have
enough shop progression
(http://xifanie.ffhacktics.com/Synthesis%20Shop/SCUS_942.21_21122013_171728_0461.png)
What happens if Secret Hunt
is required to enter the fur
shop, but isn't equipped
(if enabled)
(http://xifanie.ffhacktics.com/Synthesis%20Shop/SCUS_942.21_21122013_171746_0193.png)
What happens if Secret Hunt
is required to use the Buy
command, but isn't equipped
(if enabled)


(http://xifanie.ffhacktics.com/Synthesis%20Shop/SCUS_942.21_21122013_171703_0443.png)
Synthesizing elixirs
(http://xifanie.ffhacktics.com/Synthesis%20Shop/SCUS_942.21_21122013_171706_0076.png)
New custom text for purchase
(http://xifanie.ffhacktics.com/Synthesis%20Shop/SCUS_942.21_21122013_171712_0076.png)
Transaction completed and
stock recalculated
(http://xifanie.ffhacktics.com/Synthesis%20Shop/SCUS_942.21_21122013_171549_0229.png)
For your convenience, items required
will still be displayed even if you don't
have enough gil or items


Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Timbo on December 21, 2013, 09:49:30 PM
And the most creative hack award goes to...
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Pride on December 21, 2013, 09:57:48 PM
(http://replygif.net/i/95.gif)
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Zareb on December 21, 2013, 10:15:32 PM
Phenomenal work, Xifanie... I can see a lot of patch makers jumping all over this!!
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Angel on December 21, 2013, 11:50:04 PM
Amazing work, sweetheart! <3
Title: Re: ASM Hack proposal: Synthesis Shop
Post by: Celdia on December 22, 2013, 11:24:40 AM
This makes me want to pick up my Minimal project. Seems like it would fit right in there. Absolutely wonderful work.
Title: Re: Synthesis Shop 1.00
Post by: Timbo on December 22, 2013, 02:38:03 PM
There was talk of rerouting poached items to go directly into your inventory. Does this hack accomplish this?
Title: Re: Synthesis Shop 1.00
Post by: Xifanie on December 22, 2013, 05:07:10 PM
Given the idea was based on completely sacrificing the "Buy" option at the fur shop, no, it didn't happen.

Thanks for the comments everyone~ ♥

I would just love to actually see someone use it
Title: Re: Synthesis Shop 1.00
Post by: Timbo on December 22, 2013, 05:39:30 PM
I feel dumb but I have to ask what is the difference between buy and synth and what is the point of having a Secret Hunt support? It seems like the basic functionality of the Secret Hunt thing is left in tact, is that correct?
Title: Re: Synthesis Shop 1.00
Post by: Xifanie on December 23, 2013, 03:36:01 PM
I tested my hack, and it seems all its functions are working on the Playstation console. However, if you downloaded it less than ~30min after I posted it, it won't. I forgot to check for console breaking errors before releasing the hack... I can just confirm that if you downloaded after that, it should work perfectly on console, and PSP eboot too I'm guessing.



I feel dumb but I have to ask what is the difference between buy and synth and what is the point of having a Secret Hunt support? It seems like the basic functionality of the Secret Hunt thing is left in tact, is that correct?
Buy is Fur Shop's Buy
Synthesis is that thing that allows you to consume items and money to get a new item
Secret Hunt requirements are there for those who still want to go at it vanilla style.
Title: Re: Synthesis Shop 1.00
Post by: LastingDawn on December 27, 2013, 06:33:48 PM
This is the most impressive (absolutely working) hack I have seen in a very long time! Great work Xifanie! I am certain it will find use in people's future mods!
Title: Re: Synthesis Shop 1.00
Post by: Zero Dozer on May 27, 2015, 02:05:04 AM
Heh, I've never seen it before. Seems fantastic.
Title: Re: Synthesis Shop 1.00
Post by: Aqueous on May 27, 2015, 08:44:49 AM
Joisus.

Never knew this existed. Goddammit now this is ANOTHER hack I -have- to add to my game. Synthesis in FF9 is one of my favourite item-based mechanics.

Absolutely awesome Xif, thank you.
Title: Re: Synthesis Shop 1.00
Post by: gatebuster202 on June 28, 2015, 06:03:25 AM
So, I think I just found a use for all those pesky consumables that would have been obsolete in my patch. (Provided I can remove the Chemist class and still have a balanced game...) Thanks Xifanie
Title: Re: Synthesis Shop 1.00
Post by: Elric on June 28, 2015, 12:00:41 PM
Thought I'd ask this here in case anyone else ran into the issue in the future.

I tried to adjust the Tactext, however it seems like both the normal Shop and the Fur Shop use the same Sell dialogue. Also, I opened up my Tactext in notepad and located the Fur Shop help messages, but it only has the buy and leave messages. No matter were I tried to add in a new entry, I was not able to edit the Synth help message without changing the Sell message from the normal shop. Even when adding a new entry, the Exit option would remain blank. Not sure what to do in this case.
Title: Re: Synthesis Shop 1.00
Post by: Xifanie on July 09, 2015, 09:29:45 PM
Alright, I'd like to ask people for their opinions.

As you all know, I'm making a new version of the Synth Shop.
Originally, I was going to force a new poaching system, up to 4 different items, with specified amounts.
Also introducing materials, using item slots 0x100 to 0x1FF.
Basically, poaching a Chocobo could give you up to 10 Chocobo Feathers and 1 Chocobo Beak, stuff like that.

But, how should I handle the materials? I'm not sure, I've thought about replacing the Buy option, with a Buy Materials option. Basically the same thing only that you can only purchase materials. Obviously, this would slash any possibility of buying regular poached items which might be an issue for some people?. But most materials are meant to be acquired via poaching, so I'm not sure if it would be worth it. I'd also want to allow synthing materials, like: 1 Steel Ingot = 1 Iron Ingot + 2 Bones + 3 Fire Balls.

Hopefully I can get some feedback on this, because I want to keep working on this hack, yet I'm confused about what to do next.
Title: Re: Synthesis Shop 1.00
Post by: gatebuster202 on July 09, 2015, 09:48:34 PM
So, how would this restrict the synthesis aspect? How would the materials cut into items space? If this is all free space, I'm for doing just materials. Even if that means that prefab'd(Normal) shop inventory and move finds can't be used. (As long as we aren't encroaching on the limited space for materials, I would prefer it be just materials. To give an opinion.)

Makes those ransoms far more important, if done right!
Title: Re: Synthesis Shop 1.00
Post by: Xifanie on July 09, 2015, 10:02:04 PM
Restrict? Materials are only meant to improve the synthesis aspect.
Well, it's free space (kanji space), but it's rare for anyone in this community to come up with such ambitious hacks as mine, so usually I have a fair amount of space to spare. :v (I always try to use it intelligently to save space though)

Also, move-find items have nothing to do with the fur shop, they are added directly into your inventory.
Title: Re: Synthesis Shop 1.00
Post by: Aiolon on July 09, 2015, 10:48:31 PM
i use your amazing hacks and i find them super useful but that question is hard. some people will likely disagree with the idea of replacing poached items me included there. but thats because of how i designed the item availability.
    common/uncommon = shops   Rare=Poach      Very rare=Synth
well but mine its a personal project so that wouldnt count as much as the official community projects. their creators are the ones that should give an opinion. but i will go ahead and ask some questions.

1. if the Buy materials option is implemented, what will happen to the changes made in FFTPatcher related to poaching?

2.how could we administer our earned materials? do we get them sent to our Stock item inventory? we get a totally new menu for them? or will they only show up in the synth menu? i ask because if thats the case what about item icon and description.

i assume this will come in the spreadsheet but i will ask anyway.
3.the materials will have an especific default name made by you or they will be free to be modified by players. this is considering there is people that replaced monsters and it would be awkward to have a flan or a tomberry droping wings and beaks im yes im aware that the player will be likely to modify the drops of each monster but what if i want them to drop something such as Jelly or a Tomberry knife?

D: sorry for my engrish when it comes to questions... my english runs away  :oops:


Title: Re: Synthesis Shop 1.00
Post by: gatebuster202 on July 09, 2015, 10:57:51 PM
Clarity on the move-finds - I was referring to non-material items. (I often forget to re-read my posts.)

If it's in Kanji space, (I.E. space I know zero about) Then that's awesome. I just wanted to know how much free space we are playing with. Which of course you mentioned in the OP but I dont read Hex well. (16 squared extra spaces for materials.) 256 Materials is plenty, assigning a max of four per monster is a great limit too. (But is that per monster or family?)

All I know is I'd use this hack twice for public use myself.

So we should be able to go into the synthesis shop. Buy our materials, then go to synthesis, and combine materials for items in our regular item space or new materials?

Also, more ambitiously, Combine a Rare Material (Example-Dragon Iron (Made from dragon base materials and synthesized) w/ a Defender and a Elixir, to make a Excalibur.)?
Title: Re: Synthesis Shop 1.00
Post by: Xifanie on July 09, 2015, 11:09:27 PM
I figured it would be more simple to have the menu as follows:
Quote
Buy (Original Fur Shop poached contents)
Buy Materials
Synthesis
Sell
Leave Store

Or for those who would prefer not having the original buy option at all:
Quote
Buy (Materials)
Synthesis
Sell
Leave Store

If I add the option to buy materials, I think I can make the new poaching system optional, but I'm honestly pretty set on not coding the new one to include rare drops. I don't think they add ANY value to gameplay. If you really want something "rare", just require the player to use 8 times as many "regular" items for synthing and you're good. On average, the player should only be able to acquire as many synthed item as with rare drops. So in the end, I'm not even sure why anyone would want to stick with the original poaching system.

My hack will use either the fur shop inventory for materials if you don't plan to use that anymore, or some extra space available that no one else is using. The latter is just less convenient for mods that could use a lot of extra space (that is also stored on memory cards). So either way, you can still keep the regular Buy option.
Title: Re: Synthesis Shop 1.00
Post by: gatebuster202 on July 09, 2015, 11:17:53 PM
Xifanie, I'd take either option, just because they both help me. However, more options are always nice. I guess this will mean my players will have to synth consumables, from materials.

We are still locked into the 48 items for Synthesis, correct? (If we could get 16 more I'd be over the moon, but that probably a space limitation, so ignore my wishlisting because I'm just grateful for the first 48.)
Title: Re: Synthesis Shop 1.00
Post by: Xifanie on July 09, 2015, 11:19:45 PM
It's 64, not 48. And that's going to be increased to either 253 or 254.

You just have to remember the more stuff you make my hack do, the bigger it gets and the more chance it will have to "crush" another ASM hack.
Title: Re: Synthesis Shop 1.00
Post by: Aiolon on July 09, 2015, 11:23:22 PM
I figured it would be more simple to have the menu as follows:
Or for those who would prefer not having the original buy option at all:
If I add the option to buy materials, I think I can make the new poaching system optional, but I'm honestly pretty set on not coding the new one to include rare drops. I don't think they add ANY value to gameplay. If you really want something "rare", just require the player to use 8 times as many "regular" items for synthing and you're good. On average, the player should only be able to acquire as many synthed item as with rare drops. So in the end, I'm not even sure why anyone would want to stick with the original poaching system.

My hack will use either the fur shop inventory for materials if you don't plan to use that anymore, or some extra space available that no one else is using. The latter is just less convenient for mods that could use a lot of extra space (that is also stored on memory cards). So either way, you can still keep the regular Buy option.
:) with this in mind i would totally use it
yes rare poached items have always been a term of lets say "vanity" but to my point of view it will never be the same to say oh i finally got 50 chocobo feathers yay!! to say: OMG HOLY SHIT i poached a chocobo blade FUCK YEAH!! <--- dramatization. (yes i know nobody does that ) i would gladly use the buy original poach contents option :'v
Title: Re: Synthesis Shop 1.00
Post by: Xifanie on July 09, 2015, 11:28:12 PM
You wouldn't have to buy the materials though, I can't have 4 inventories:
- Player's Inventory
- Player's Materials
- Fur Shop's Inventory
- Fur Shop's Materials

It's just not possible; there's not enough space.
Basically the "vanilla" Buy with the new poaching system would send all 0x00-0xFF items into the fur shop, and the materials (0x100-0x1FF) would already be yours to use for synthesis.

And most people tend to be:
Quote
JESUS FUCKING CHRIST IT'S 20% WHY HAVE I NOT GOTTEN IT IN 30 FUCKING TRIES!?!?

Just a little infuriating when it happens
Title: Re: Synthesis Shop 1.00
Post by: Elric on July 09, 2015, 11:49:41 PM
I'm definitely in favor of the idea of changing the BUY option into something to purchase materials (though at a high price for people that are too lazy to kill the required monster to get the materials) it really brings out the Monster Hunter aspect that this idea originated via a post about, in that game, you can trade high level/rare materials for other high level/rare materials from another monster via a special shop. I think it's a really cool idea.

Honestly with the fact that the other spreadsheet still exists, you can still have both posted. One for people who want to just have the synth shop with the normal poach function and don't want to setup the materials, which still allows them to remove the buy option in the newest version of the spreadsheet, if, once again, they just want synth and don't want to setup the extra materials, while at the same time being able to remove the buy option. You'd still have the new spreadsheet for everyone that wanted to utilize the extra material item space for this, like me. :D

Title: Re: Synthesis Shop 1.00
Post by: gatebuster202 on July 10, 2015, 02:19:59 AM
I'm in favor of having the poached materials, because that makes sense. (I've got two classes with Innate Secret Hunt, that go to a Tame class, at this point someone can properly strip materials) However, I am more then satisfied with the majority.

(Also, sorry I misread the initial number of Synth options, no idea where 48 came from.) Also the RNG on Poaches deserves a funeral in favor of a new mechanic. (Not actually saying we do something with it, but agreeing with the rediculousness of it.)
Title: Re: Synthesis Shop 1.00
Post by: Xifanie on July 10, 2015, 02:59:46 AM
Something that I mentioned in another topic: I made a scavenging formula. You can use this formula on any active ability and you can poach with it without having secret hunt equipped BUT ONLY WORKS ON DEAD TARGETS. It was made because I thought Secret Hunt was too overkill... no charge time or anything (yet allows you to kiss goodbye undead monsters so easily), and found it dumb your attack had to be the finisher. That is 100% complete.

Attaching some screenshots:
#1 and #2: I reworked the menus. I'm 100% done remodeling them to what you see below.
#3: Selecting "Buy Materials" will immediately take you to the Chemist Items/Shurikens/Throwing Balls page, where all the materials are going to be. I plan on removing Stock/000-255/Eq./All/00/99 in this section. Yes this is nitpicking. Yes I am nitpicky.
Title: Re: Synthesis Shop 1.00
Post by: gatebuster202 on July 10, 2015, 03:16:49 AM
Madame Webmistress, you may be as Nitpicky as you want. That just looks brilliant. When you are final in your nitpicks, I will make it my priority to install it and have a Dortor save ready to browser through the awesome. (And probably ask a half dozen stupid questions on setting the thing up. Sry, ahead of time.)
Title: Re: Synthesis Shop 1.00
Post by: Aiolon on July 10, 2015, 04:10:50 AM
wow xif this is to awesome and that scanvenging formula sounds like 1 of my FFT dreams because secret hunt weapon deathblow is really annoying... specially when the monster has element resistance/absorb , stupid ass evasion, your weapon is a bitch and triggers magic spell :l
i was like: wouldnt it be easier if i just had to kill the damn ugly stupid mutant furry-like antrophomorphic artificial inteligent made in japan ass monster and then bag its dead body?
stuff like that~

Title: Re: Synthesis Shop 1.00
Post by: Xifanie on July 10, 2015, 10:21:22 PM
Buy Materials menu mostly done! (just some bugs left to fix: the price is slashed in 2 and that you can't enter it without something in the fur shop inventory)
You can change the item type icon, the graphic/palette of the other icon, name, price.
Up to 256 of these little bastards.

Sadly, the materials aren't being added as craftables in the synth menu so I'll have to figure what's going on but I think it's safe to say that the worst has been coded! \o/
Title: Re: Synthesis Shop 1.00
Post by: Xifanie on July 11, 2015, 12:40:57 PM
As far as I know, not much left to do on my list
Title: Re: Synthesis Shop 1.00
Post by: gatebuster202 on July 11, 2015, 12:59:56 PM
Well, damn. Xifanie, that is awesome, I'm super excited to see all the progress!
Title: Re: Synthesis Shop 1.00
Post by: Xifanie on July 13, 2015, 08:06:53 PM
Still got the poach routine to rewrite, which should be no big deal at all. Otherwise, only bugtesting and console testing left. \o/

New menus! Yes they're big, but I think it was really the best option to keep the hack as functional as possible, and as user-friendly as possible.
Sell Materials! Okay, I admit I didn't want people to be able to sell materials at first, but you can also force the selling price to 0 gil if you want. Or 1/2, 1/4th, 1/8th and so on.

PS: Buy/Sell Materials menu force you on the 5th inventory tab, and you can't leave it. No materials are found on page 1-4 anyway, so there's no reason for you to go there.
Title: Re: Synthesis Shop 1.00
Post by: gatebuster202 on July 13, 2015, 08:31:29 PM
Wow, that's more then I'd hope for. (And the sell materials will be exactly what I wanted to balance my Gil incomes.)

Can't wait to install and use the new routines!
Title: Re: Synthesis Shop 1.00
Post by: Vanya on August 28, 2015, 01:37:49 PM
Most impressive.
I will definitely be using this once it's done.
The new scavenging routine sounds like a great alternative to the old poach system and makes a lot more sense contextually.
And more importantly it sounds fun.