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

Pages: 1 [2] 3 4 ... 112
16
Chrono Trigger Modification / Re: Stuck on a few things.
« on: November 27, 2023, 05:19:33 pm »
I'm busy trying to crack out as many words as I can in a one month period, I'll get back to you after that. In the meantime:

- Do you have any freespace left in bank $C1 (0x10000-0x1FFFF)?
- Which characters, and where are the idle animations?
- Do you have any notes on the flags set during that sequence, or where it takes place?

17
Chrono Trigger Modification / Re: Chrono Trigger - The Fifth Element
« on: August 22, 2023, 10:01:21 pm »
My notes are fairly disorganized, but I can contribute some.

This checks magic and elemental defense in battle. $7E:B190 has the incoming attack's element flags.

Code: [Select]
Disassembly: Check Magic defense
$C1/EF39 7B TDC
$C1/EF3A AD 90 B1 LDA $B190  [$7E:B190]
$C1/EF3D 85 2C STA $2C    [$00:002C]
$C1/EF3F 89 80 BIT #$80
$C1/EF41 F0 03 BEQ $03    [$EF46]
$C1/EF43 7B TDC
$C1/EF44 80 16 BRA $16    [$EF5C]
$C1/EF46 89 40 BIT #$40
$C1/EF48 F0 04 BEQ $04    [$EF4E]
$C1/EF4A A9 01 LDA #$01
$C1/EF4C 80 0E BRA $0E    [$EF5C]
$C1/EF4E 89 20 BIT #$20
$C1/EF50 F0 04 BEQ $04    [$EF56]
$C1/EF52 A9 02 LDA #$02
$C1/EF54 80 06 BRA $06    [$EF5C]
$C1/EF56 89 10 BIT #$10
$C1/EF58 F0 61 BEQ $61    [$EFBB]
$C1/EF5A A9 03 LDA #$03
$C1/EF5C 8D CD B2 STA $B2CD  [$7E:B2CD]
$C1/EF5F A9 04 LDA #$04
$C1/EF61 8D CF B2 STA $B2CF  [$7E:B2CF]
$C1/EF64 AD CD B2 LDA $B2CD  [$7E:B2CD]
$C1/EF67 C2 20 REP #$20
$C1/EF69 18 CLC
$C1/EF6A 6D F6 B1 ADC $B1F6  [$7E:B1F6] // Battle stats offset of first target
$C1/EF6D AA TAX
$C1/EF6E 7B TDC
$C1/EF6F E2 20 SEP #$20
$C1/EF71 BD 6C 5E LDA $5E6C,x[$7E:5E80]
$C1/EF74 8D CE B2 STA $B2CE  [$7E:B2CE]
$C1/EF77 89 80 BIT #$80
$C1/EF79 F0 08 BEQ $08    [$EF83]
$C1/EF7B AD FC B1 LDA $B1FC  [$7E:B1FC]
$C1/EF7E 09 40 ORA #$40
$C1/EF80 8D FC B1 STA $B1FC  [$7E:B1FC]
$C1/EF83 AD CE B2 LDA $B2CE  [$7E:B2CE]
$C1/EF86 29 3F AND #$3F
$C1/EF88 8D CE B2 STA $B2CE  [$7E:B2CE]
$C1/EF8B BD 6C 5E LDA $5E6C,x[$7E:5E80]
$C1/EF8E 89 40 BIT #$40
$C1/EF90 F0 09 BEQ $09    [$EF9B]
$C1/EF92 AD CE B2 LDA $B2CE  [$7E:B2CE]
$C1/EF95 38 SEC
$C1/EF96 E9 02 SBC #$02
$C1/EF98 8D CE B2 STA $B2CE  [$7E:B2CE]
$C1/EF9B AE 89 AD LDX $AD89  [$7E:AD89] // Current damage
$C1/EF9E 86 28 STX $28    [$00:0028]
$C1/EFA0 AD CF B2 LDA $B2CF  [$7E:B2CF] // always 4
$C1/EFA3 AA TAX
$C1/EFA4 85 2A STA $2A    [$00:002A]
$C1/EFA6 20 0B C9 JSR $C90B  [$C1:C90B] // Damage * 4
$C1/EFA9 A6 2C LDX $2C    [$00:002C]
$C1/EFAB 86 28 STX $28    [$00:0028]
$C1/EFAD AD CE B2 LDA $B2CE  [$7E:B2CE] // Elemental Defense
$C1/EFB0 AA TAX
$C1/EFB1 86 2A STX $2A    [$00:002A]
$C1/EFB3 20 2A C9 JSR $C92A  [$C1:C92A] // Current Damage * 4 / (Elemental Defense)
$C1/EFB6 A6 2C LDX $2C    [$00:002C]
$C1/EFB8 8E 89 AD STX $AD89  [$7E:AD89]
$C1/EFBB 60 RTS

I'm not sure why they bothered storing 4 to $7E:B2CF ahead of time.

This is enemy creation at the start of battle.

Code: [Select]
Disassembly: Create enemy routine
$FD/B438 7B TDC
$FD/B439 A8 TAY
$FD/B43A 84 04 STY $04    [$00:0004]
$FD/B43C BD 0D AF LDA $AF0D,x[$7E:AF0E]
$FD/B43F 85 04 STA $04    [$00:0004]
$FD/B441 C2 20 REP #$20
$FD/B443 0A ASL A
$FD/B444 0A ASL A
$FD/B445 0A ASL A
$FD/B446 85 00 STA $00    [$00:0000]
$FD/B448 0A ASL A
$FD/B449 18 CLC
$FD/B44A 65 00 ADC $00    [$00:0000]
$FD/B44C 38 SEC
$FD/B44D E5 04 SBC $04    [$00:0004]
$FD/B44F AA TAX
$FD/B450 A5 02 LDA $02    [$00:0002]
$FD/B452 EB XBA
$FD/B453 4A LSR A
$FD/B454 A8 TAY
$FD/B455 7B TDC
$FD/B456 E2 20 SEP #$20
$FD/B458 20 D6 B4 JSR $B4D6  [$FD:B4D6]
$FD/B45B A5 04 LDA $04    [$00:0004]
$FD/B45D 99 AD 5F STA $5FAD,y[$7E:5FAD]
$FD/B460 BF 00 47 CC LDA $CC4700,x[$CC:4701]
$FD/B464 99 B0 5F STA $5FB0,y[$7E:5FB0]
$FD/B467 99 B2 5F STA $5FB2,y[$7E:5FB2]
$FD/B46A E8 INX
$FD/B46B BF 00 47 CC LDA $CC4700,x[$CC:4701]
$FD/B46F 99 B1 5F STA $5FB1,y[$7E:5FB1]
$FD/B472 99 B3 5F STA $5FB3,y[$7E:5FB3]
$FD/B475 E8 INX
$FD/B476 BF 00 47 CC LDA $CC4700,x[$CC:4701]
$FD/B47A 99 BF 5F STA $5FBF,y[$7E:5FBF]
$FD/B47D 99 BF 5F STA $5FBF,y[$7E:5FBF]
$FD/B480 5A PHY
$FD/B481 7B TDC
$FD/B482 85 00 STA $00    [$00:0000]
$FD/B484 99 CA 5F STA $5FCA,y[$7E:5FCA]
$FD/B487 99 CB 5F STA $5FCB,y[$7E:5FCB]
$FD/B48A 99 CC 5F STA $5FCC,y[$7E:5FCC]
$FD/B48D E8 INX
$FD/B48E BF 00 47 CC LDA $CC4700,x[$CC:4701]
$FD/B492 99 CF 5F STA $5FCF,y[$7E:5FCF]
$FD/B495 C8 INY
$FD/B496 E6 00 INC $00    [$00:0000]
$FD/B498 A5 00 LDA $00    [$00:0000]
$FD/B49A C9 05 CMP #$05
$FD/B49C 90 EF BCC $EF    [$B48D]
$FD/B49E 7A PLY
$FD/B49F B9 D2 5F LDA $5FD2,y[$7E:5FD2]
$FD/B4A2 99 CD 5F STA $5FCD,y[$7E:5FCD]
$FD/B4A5 B9 D3 5F LDA $5FD3,y[$7E:5FD3]
$FD/B4A8 99 CE 5F STA $5FCE,y[$7E:5FCE]
$FD/B4AB 5A PHY
$FD/B4AC 7B TDC
$FD/B4AD 85 00 STA $00    [$00:0000]
$FD/B4AF E8 INX
$FD/B4B0 BF 00 47 CC LDA $CC4700,x[$CC:4701]
$FD/B4B4 99 E4 5F STA $5FE4,y[$7E:5FE4]
$FD/B4B7 C8 INY
$FD/B4B8 E6 00 INC $00    [$00:0000]
$FD/B4BA A5 00 LDA $00    [$00:0000]
$FD/B4BC C9 0C CMP #$0C
$FD/B4BE 90 EF BCC $EF    [$B4AF]
$FD/B4C0 7A PLY
$FD/B4C1 7B TDC
$FD/B4C2 85 00 STA $00    [$00:0000]
$FD/B4C4 E8 INX
$FD/B4C5 BF 00 47 CC LDA $CC4700,x[$CC:4701]
$FD/B4C9 99 C6 5F STA $5FC6,y[$7E:5FC6]
$FD/B4CC C8 INY
$FD/B4CD E6 00 INC $00    [$00:0000]
$FD/B4CF A5 00 LDA $00    [$00:0000]
$FD/B4D1 C9 03 CMP #$03
$FD/B4D3 90 EF BCC $EF    [$B4C4]
$FD/B4D5 6B RTL

Starting at $7E:5E2D, are battle states for all potential participants - 3 PCs and 8 enemies.

I don't have the code where PCs are granted their personal elemental bonus handy.

18
Chrono Trigger Modification / Re: Chrono Trigger - The Fifth Element
« on: August 20, 2023, 03:24:02 pm »
I wrote most of those notes, so I can answer your questions.

Tech data: This part should be good. You should be able to treat Bytes 4 and 5 as a long bitfield.

Menu element graphics: It would be just as easy to add new graphics in the same style as the SNES version and just block off the necessary space through Temporal Flux.

Battle Data: This is the hard part. Not impossible, but you also have to consider the player and enemy data equivalents. I'll address each piece separately.

Byte 1 comes from player data. Each characters gets a bonus to elemental defense based on this value. The labeled unused values are set in character data, but not checked. I gave them labels for my best guess depending on who they were set on. They could easily be repurposed.

Elemental defense: For coding purposes, it would be best keep these together. The unknowns at the end are likely unused, but this was harder to confirm than 4F because of the nature of character data.

Enemy data: This is the biggest hurdle - there's only one unused byte, 05, and elemental defense needs a full byte to be set.

Battle data was designed to be 0x80 bytes long for ease of coding purposes. Character data was designed to be shorter, only 0x50 bytes long. Because 0x4F gets preserved, it's easier to see that end game saves have this unchanged, while anything after that only exists for a single battle. Those large unknown groups are likely unused as well.

For AI purposes, you can have more reaction flags than you have actual elements. The attack flags on byte 4 are ANDed with the reaction flags in AI, and a non-zero result is a hit.

Normally, this means the AI checks one flag against one or two incoming ones, but this could be reversed as checking three elements (Ice, water, shadow) against an incoming attack (magical ice).

AI notes (https://www.chronocompendium.com/Term/Enemy_AI.html)

Basically, it depends on how big a project you want.

19
Chrono Trigger Modification / Re: Temporal Flux Plugins
« on: March 29, 2023, 10:20:28 pm »
Warrior Workshop: Evade Growth and Evade Growth 2 now respect hexadecimal mode check status.

20
Chrono Trigger Modification / Re: New Tech Editor
« on: March 29, 2023, 09:50:32 pm »
Hi-Tech Beta 33!

New progress list:
- Fixed bug with object drag and drop losing data
- Fixed bug with deleting nothing
- Fixed bug with saving tech requirements
- Updated Targetting description
- Added error handling finding broken techs on ROM load

21
Chrono Trigger Modification / Re: Not Learning a Triple Tech
« on: March 23, 2023, 04:37:44 am »
Fixed a couple bugs in Hi-Tech.

The first was a minor one, the first group was being saved as having one too many techs in it.

The second one was actually causing issues. The last evaluated group was not being written back to the requirement data.

The FF FF 00 00 00 data still gets written once at 0x0C27F5. The original data there is FF FF 02 05 00, but this change doesn't matter. Technical details on why follow.

The tech requirements groups indicate the PCs involved, the first tech, the number of techs learned by the group, and a pointer to the first set of techs needed to learn (offset in that PC's list).

The FF FF 00 00 00 dummy data indicates that if all 8 PCs are in the active party, starting at tech 255, this group can learn 0 techs based on data starting at 0x0C0000.

The original data in that spot indicates that if all 8 PCs are in the active party, starting at tech 255, this group can learn 2 techs based on data starting at 0x0C0005.

22
Chrono Trigger Modification / Re: Not Learning a Triple Tech
« on: March 08, 2023, 12:22:19 am »
I'll test some things in Hi-Tech and see if I can address this.

23
I am, just slowly.

24
Kajar Laboratories / Re: Systems programming/reverse engineering
« on: February 25, 2023, 03:09:15 am »
On a somewhat different note, has anyone had success using Ghidra to reverse engineer some of the Chrono Trigger code? Speaking from experience using Ida Pro (very similar), it makes our lives a whole lot easier.

I've been playing with it a little lately. I made my own fork of the current SNES Loader to support HiROM mapping and the latest version of Ghidra. At the moment the loader/language files still need work. It gives errors occasionally, trips up over function calls, and the decompiled C gets... weird... sometimes.

It's definitely helping with organizing my data. I'm seeing more patterns in RAM data, and I've still got a lot of notes to convert.

25
Chrono Trigger Modification / Re: Tile insertion Guide Attempt
« on: February 11, 2023, 07:49:26 pm »
i've never paid attention to compression size so I'm thinking I have been severely lucky so far as this has been my method of insertion for a few years now xD :shock:

That is lucky. The basics are the same, with a couple extra steps.

When you export, the bottom bar will show a message reading Decompressed to File. Decompressed: {Size} Compressed: {Size} Offset Range: {Address}-{Address} {Timestamp}

You want to note that Compressed Size value. Let's use EB5 as an example.

When you recompress that packet, it will show a similar message. Note the compressed size again. If it's less than or equal to the compressed size earlier, you're good. If not, you'll need to repoint the packet.

Repointing is a little trickier. I'll write up a little on that later.

Wait they are arent they there the 4 little tiles that make up a single tile, right?

That's them. You can find them under Window > Tile Swatches > Layer 1/2 Subtiles. These are 8x8, and the subtile index can be treated like a YY/X hex value. The first tile of the first row is 000, and the last tile of the second row would be 01F, etc.

Will edit again when I get caffeine and/or steal Maurons better explaination if she gives one ;)

Yeah, clean up my notes and get some pretty screenshots with them.

I'm also attaching a spreadsheet on the overworld tile packets. The principles are pretty much the same, you just need different addresses.

26
Chrono Trigger Modification / Re: Tile insertion Guide Attempt
« on: February 11, 2023, 03:19:37 pm »
Good tutorial.

The attached tutorial zip just contains SNESPal.  Here's the link to that. https://www.chronocompendium.com/Term/Tutorials_(Chrono_Trigger).html

I recommend adding information about subtiles, and noting the compressed size when compressing and decompressing.

27
Chrono Trigger Modification / Re: Temporal Flux Plugins
« on: January 20, 2023, 10:19:09 pm »
Zakyrus may be thinking of changing text color in the menus. I believe it would be possible to add control codes directly into item names to use existing colors already supported by the menu. I haven't fully explored this option though, since it's a rather limited use case.

28
Chrono Trigger Modification / Re: Temporal Flux Version 3.04 R1 Released
« on: December 16, 2022, 03:47:38 am »
Does it play nice with my plugins?

29
Time to get some actual output again so I get more than a mention next time. :P

30
Site Updates / Re: Chrono Poll
« on: November 23, 2022, 02:13:37 pm »
My favorite Dorgon Bill is the salad lesbians.

Pages: 1 [2] 3 4 ... 112