Author Topic: FF4 code griping thread  (Read 4147 times)

Lenophis

  • Forum Overlord
  • *
  • Posts: 1,680
  • Gender: Male
  • I sad
    • View Profile
    • Slick Productions
FF4 code griping thread
« on: December 08, 2007, 02:30:02 AM »
Ok, I've just stumbled onto something that makes even Baby Jesus cry.

Code: [Select]
$01/81D6 DA          PHX                     A:13E9 X:D998 Y:0007 D:0100 DB:7E S:02E7 P:envmxdIzcHC:0562 VC:114 00 FL:00
$01/81D7 5A          PHY                     A:13E9 X:D998 Y:0007 D:0100 DB:7E S:02E5 P:envmxdIzcHC:0592 VC:114 00 FL:00
$01/81D8 C2 20       REP #$20                A:13E9 X:D998 Y:0007 D:0100 DB:7E S:02E3 P:envmxdIzcHC:0622 VC:114 00 FL:00
$01/81DA A2 7F 00    LDX #$007F              A:13E9 X:D998 Y:0007 D:0100 DB:7E S:02E3 P:envmxdIzcHC:0644 VC:114 00 FL:00
$01/81DD 86 5A       STX $5A    [$00:015A]   A:13E9 X:007F Y:0007 D:0100 DB:7E S:02E3 P:envmxdIzcHC:0668 VC:114 00 FL:00
$01/81DF E6 5A       INC $5A    [$00:015A]   A:13E9 X:007F Y:0007 D:0100 DB:7E S:02E3 P:envmxdIzcHC:0700 VC:114 00 FL:00
$01/81E1 38          SEC                     A:13E9 X:007F Y:0007 D:0100 DB:7E S:02E3 P:envmxdIzcHC:0754 VC:114 00 FL:00
$01/81E2 E9 E8 03    SBC #$03E8              A:13E9 X:007F Y:0007 D:0100 DB:7E S:02E3 P:envmxdIzCHC:0768 VC:114 00 FL:00
$01/81E5 10 F8       BPL $F8    [$81DF]      A:1001 X:007F Y:0007 D:0100 DB:7E S:02E3 P:envmxdIzCHC:0792 VC:114 00 FL:00
$01/81E7 18          CLC                     A:FC79 X:007F Y:0007 D:0100 DB:7E S:02E3 P:eNvmxdIzcHC:0170 VC:115 00 FL:00
$01/81E8 69 E8 03    ADC #$03E8              A:FC79 X:007F Y:0007 D:0100 DB:7E S:02E3 P:eNvmxdIzcHC:0184 VC:115 00 FL:00
$01/81EB 0B          PHD                     A:0061 X:007F Y:0007 D:0100 DB:7E S:02E3 P:envmxdIzCHC:0208 VC:115 00 FL:00
$01/81EC A2 00 42    LDX #$4200              A:0061 X:007F Y:0007 D:0100 DB:7E S:02E1 P:envmxdIzCHC:0238 VC:115 00 FL:00
$01/81EF DA          PHX                     A:0061 X:4200 Y:0007 D:0100 DB:7E S:02E1 P:envmxdIzCHC:0262 VC:115 00 FL:00
$01/81F0 2B          PLD                     A:0061 X:4200 Y:0007 D:0100 DB:7E S:02DF P:envmxdIzCHC:0292 VC:115 00 FL:00
$01/81F1 85 04       STA $04    [$00:4204]   A:0061 X:4200 Y:0007 D:4200 DB:7E S:02E1 P:envmxdIzCHC:0328 VC:115 00 FL:00
$01/81F3 E2 20       SEP #$20                A:0061 X:4200 Y:0007 D:4200 DB:7E S:02E1 P:envmxdIzCHC:0356 VC:115 00 FL:00
$01/81F5 A9 64       LDA #$64                A:0061 X:4200 Y:0007 D:4200 DB:7E S:02E1 P:envMxdIzCHC:0378 VC:115 00 FL:00
$01/81F7 85 06       STA $06    [$00:4206]   A:0064 X:4200 Y:0007 D:4200 DB:7E S:02E1 P:envMxdIzCHC:0394 VC:115 00 FL:00
$01/81F9 20 45 82    JSR $8245  [$01:8245]   A:0064 X:4200 Y:0007 D:4200 DB:7E S:02E1 P:envMxdIzCHC:0416 VC:115 00 FL:00

For those that may not know assembly, I'll give you what I believe this is doing.

Code: [Select]
$01/81EC A2 00 42    LDX #$4200              A:0061 X:007F Y:0007 D:0100 DB:7E S:02E1 P:envmxdIzCHC:0238 VC:115 00 FL:00
$01/81EF DA          PHX                     A:0061 X:4200 Y:0007 D:0100 DB:7E S:02E1 P:envmxdIzCHC:0262 VC:115 00 FL:00
$01/81F0 2B          PLD                     A:0061 X:4200 Y:0007 D:0100 DB:7E S:02DF P:envmxdIzCHC:0292 VC:115 00 FL:00

This is changing the Direct Page register to look at xx/4200. You might already see where this is going, but for those that don't... It gets funky.

Code: [Select]
$01/81F1 85 04       STA $04    [$00:4204]   A:0061 X:4200 Y:0007 D:4200 DB:7E S:02E1 P:envmxdIzCHC:0328 VC:115 00 FL:00
$01/81F3 E2 20       SEP #$20                A:0061 X:4200 Y:0007 D:4200 DB:7E S:02E1 P:envmxdIzCHC:0356 VC:115 00 FL:00
$01/81F5 A9 64       LDA #$64                A:0061 X:4200 Y:0007 D:4200 DB:7E S:02E1 P:envMxdIzCHC:0378 VC:115 00 FL:00
$01/81F7 85 06       STA $06    [$00:4206]   A:0064 X:4200 Y:0007 D:4200 DB:7E S:02E1 P:envMxdIzCHC:0394 VC:115 00 FL:00

This, believe it or not, is storing to the hardware registers to do math, in this case I think division. I don't know if it's 97 divided by 100 or 100 divided by 97. In any event, the game is changing the DP register to do math. Completely unnecessary. :sad: Now I know why JCE thinks this game is a coding disaster. It is a coding disaster. :bah:

Let the fun continue...

119 bugs fixed and counting.

JCE3000GT

  • Master of FF4
  • *
  • Posts: 1,425
  • Gender: Male
  • Vladof
    • View Profile
    • BlitzKrieg Innovations
Re: FF4 code griping thread
« Reply #1 on: December 08, 2007, 02:33:50 AM »
Well put...

Lenophis

  • Forum Overlord
  • *
  • Posts: 1,680
  • Gender: Male
  • I sad
    • View Profile
    • Slick Productions
Re: FF4 code griping thread
« Reply #2 on: December 08, 2007, 02:56:51 AM »
Ok, I found something that looks like it's drawing the item screen:

Code: [Select]
$01/9066 5A          PHY                     A:0001 X:1440 Y:0044 D:0100 DB:7E S:02E9 P:envMxdIzcHC:0070 VC:013 00 FL:08
$01/9067 5A          PHY                     A:0001 X:1440 Y:0044 D:0100 DB:7E S:02E7 P:envMxdIzcHC:0100 VC:013 00 FL:08
$01/9068 80 B3       BRA $B3    [$901D]      A:0001 X:1440 Y:0044 D:0100 DB:7E S:02E5 P:envMxdIzcHC:0130 VC:013 00 FL:08
$01/901D 85 43       STA $43    [$00:0143]   A:0001 X:1440 Y:0044 D:0100 DB:7E S:02E5 P:envMxdIzcHC:0152 VC:013 00 FL:08
$01/901F C2 20       REP #$20                A:0001 X:1440 Y:0044 D:0100 DB:7E S:02E5 P:envMxdIzcHC:0176 VC:013 00 FL:08
$01/9021 A5 29       LDA $29    [$00:0129]   A:0001 X:1440 Y:0044 D:0100 DB:7E S:02E5 P:envmxdIzcHC:0198 VC:013 00 FL:08
$01/9023 18          CLC                     A:B600 X:1440 Y:0044 D:0100 DB:7E S:02E5 P:eNvmxdIzcHC:0230 VC:013 00 FL:08
$01/9024 69 40 00    ADC #$0040              A:B600 X:1440 Y:0044 D:0100 DB:7E S:02E5 P:eNvmxdIzcHC:0244 VC:013 00 FL:08
$01/9027 85 1D       STA $1D    [$00:011D]   A:B640 X:1440 Y:0044 D:0100 DB:7E S:02E5 P:eNvmxdIzcHC:0268 VC:013 00 FL:08
$01/9029 A5 43       LDA $43    [$00:0143]   A:B640 X:1440 Y:0044 D:0100 DB:7E S:02E5 P:eNvmxdIzcHC:0300 VC:013 00 FL:08
$01/902B 0A          ASL A                   A:0001 X:1440 Y:0044 D:0100 DB:7E S:02E5 P:envmxdIzcHC:0332 VC:013 00 FL:08
$01/902C 0A          ASL A                   A:0002 X:1440 Y:0044 D:0100 DB:7E S:02E5 P:envmxdIzcHC:0346 VC:013 00 FL:08
$01/902D 0A          ASL A                   A:0004 X:1440 Y:0044 D:0100 DB:7E S:02E5 P:envmxdIzcHC:0360 VC:013 00 FL:08
$01/902E 65 43       ADC $43    [$00:0143]   A:0008 X:1440 Y:0044 D:0100 DB:7E S:02E5 P:envmxdIzcHC:0374 VC:013 00 FL:08
$01/9030 AA          TAX                     A:0009 X:1440 Y:0044 D:0100 DB:7E S:02E5 P:envmxdIzcHC:0406 VC:013 00 FL:08
$01/9031 E2 20       SEP #$20                A:0009 X:0009 Y:0044 D:0100 DB:7E S:02E5 P:envmxdIzcHC:0420 VC:013 00 FL:08
$01/9033 7A          PLY                     A:0009 X:0009 Y:0044 D:0100 DB:7E S:02E5 P:envMxdIzcHC:0442 VC:013 00 FL:08
$01/9034 BF 00 80 0F LDA $0F8000,x[$0F:8009] A:0009 X:0009 Y:0044 D:0100 DB:7E S:02E7 P:envMxdIzcHC:0478 VC:013 00 FL:08
$01/9038 91 1D       STA ($1D),y[$7E:B684]   A:0029 X:0009 Y:0044 D:0100 DB:7E S:02E7 P:envMxdIzcHC:0534 VC:013 00 FL:08
$01/903A C8          INY                     A:0029 X:0009 Y:0044 D:0100 DB:7E S:02E7 P:envMxdIzcHC:0574 VC:013 00 FL:08
$01/903B A5 DB       LDA $DB    [$00:01DB]   A:0029 X:0009 Y:0045 D:0100 DB:7E S:02E7 P:envMxdIzcHC:0588 VC:013 00 FL:08
$01/903D 05 34       ORA $34    [$00:0134]   A:0004 X:0009 Y:0045 D:0100 DB:7E S:02E7 P:envMxdIzcHC:0612 VC:013 00 FL:08
$01/903F 91 29       STA ($29),y[$7E:B645]   A:0004 X:0009 Y:0045 D:0100 DB:7E S:02E7 P:envMxdIzcHC:0652 VC:013 00 FL:08
$01/9041 91 1D       STA ($1D),y[$7E:B685]   A:0004 X:0009 Y:0045 D:0100 DB:7E S:02E7 P:envMxdIzcHC:0708 VC:013 00 FL:08
$01/9043 C8          INY                     A:0004 X:0009 Y:0045 D:0100 DB:7E S:02E7 P:envMxdIzcHC:0748 VC:013 00 FL:08
$01/9044 E8          INX                     A:0004 X:0009 Y:0046 D:0100 DB:7E S:02E7 P:envMxdIzcHC:0762 VC:013 00 FL:08
$01/9045 A9 08       LDA #$08                A:0004 X:000A Y:0046 D:0100 DB:7E S:02E7 P:envMxdIzcHC:0776 VC:013 00 FL:08
$01/9047 85 45       STA $45    [$00:0145]   A:0008 X:000A Y:0046 D:0100 DB:7E S:02E7 P:envMxdIzcHC:0792 VC:013 00 FL:08
$01/9049 BF 00 80 0F LDA $0F8000,x[$0F:800A] A:0008 X:000A Y:0046 D:0100 DB:7E S:02E7 P:envMxdIzcHC:0816 VC:013 00 FL:08
$01/904D 20 34 8E    JSR $8E34  [$01:8E34]   A:0047 X:000A Y:0046 D:0100 DB:7E S:02E7 P:envMxdIzcHC:0856 VC:013 00 FL:08

$01/9050 91 29       STA ($29),y[$7E:B646]   A:47FF X:000A Y:0046 D:0100 DB:7E S:02E7 P:envMxdIzCHC:1156 VC:013 00 FL:08
$01/9052 EB          XBA                     A:47FF X:000A Y:0046 D:0100 DB:7E S:02E7 P:envMxdIzCHC:1196 VC:013 00 FL:08
$01/9053 91 1D       STA ($1D),y[$7E:B686]   A:FF47 X:000A Y:0046 D:0100 DB:7E S:02E7 P:envMxdIzCHC:1232 VC:013 00 FL:08
$01/9055 E8          INX                     A:FF47 X:000A Y:0046 D:0100 DB:7E S:02E7 P:envMxdIzCHC:1272 VC:013 00 FL:08
$01/9056 C8          INY                     A:FF47 X:000B Y:0046 D:0100 DB:7E S:02E7 P:envMxdIzCHC:1286 VC:013 00 FL:08
$01/9057 A5 DB       LDA $DB    [$00:01DB]   A:FF47 X:000B Y:0047 D:0100 DB:7E S:02E7 P:envMxdIzCHC:1300 VC:013 00 FL:08
$01/9059 05 34       ORA $34    [$00:0134]   A:FF04 X:000B Y:0047 D:0100 DB:7E S:02E7 P:envMxdIzCHC:1324 VC:013 00 FL:08
$01/905B 91 29       STA ($29),y[$7E:B647]   A:FF04 X:000B Y:0047 D:0100 DB:7E S:02E7 P:envMxdIzCHC:1364 VC:013 00 FL:08
$01/905D 91 1D       STA ($1D),y[$7E:B687]   A:FF04 X:000B Y:0047 D:0100 DB:7E S:02E7 P:envMxdIzCHC:0052 VC:014 00 FL:08
$01/905F C8          INY                     A:FF04 X:000B Y:0047 D:0100 DB:7E S:02E7 P:envMxdIzCHC:0092 VC:014 00 FL:08
$01/9060 C6 45       DEC $45    [$00:0145]   A:FF04 X:000B Y:0048 D:0100 DB:7E S:02E7 P:envMxdIzCHC:0106 VC:014 00 FL:08
$01/9062 D0 E5       BNE $E5    [$9049]      A:FF04 X:000B Y:0048 D:0100 DB:7E S:02E7 P:envMxdIzCHC:0144 VC:014 00 FL:08

$01/9064 7A          PLY                     A:FF04 X:0012 Y:0056 D:0100 DB:7E S:02E7 P:envMxdIZCHC:0498 VC:018 00 FL:08
$01/9065 60          RTS                     A:FF04 X:0012 Y:0044 D:0100 DB:7E S:02E9 P:envMxdIzCHC:0534 VC:018 00 FL:08

Those three ASL's and the subsequent ADC is the multiplying. ASL x 3 is the same as multiplying by 8, and adding itself seems to be the 9. That holds true in this case, since the item ID number is 1.

Code: [Select]
$01/902B 0A          ASL A                   A:0001 X:1440 Y:0044 D:0100 DB:7E S:02E5 P:envmxdIzcHC:0332 VC:013 00 FL:08
$01/902C 0A          ASL A                   A:0002 X:1440 Y:0044 D:0100 DB:7E S:02E5 P:envmxdIzcHC:0346 VC:013 00 FL:08
$01/902D 0A          ASL A                   A:0004 X:1440 Y:0044 D:0100 DB:7E S:02E5 P:envmxdIzcHC:0360 VC:013 00 FL:08
$01/902E 65 43       ADC $43    [$00:0143]   A:0008 X:1440 Y:0044 D:0100 DB:7E S:02E5 P:envmxdIzcHC:0374 VC:013

In case it wasn't clear, that's your multiplier. That only gives you 5 bytes to work with, it's probably not going to be easily expanded on here.

If you're wondering where this is in the actual file, it's at 0x901D (add 0x200 if you have a header).

119 bugs fixed and counting.

JCE3000GT

  • Master of FF4
  • *
  • Posts: 1,425
  • Gender: Male
  • Vladof
    • View Profile
    • BlitzKrieg Innovations
Re: FF4 code griping thread
« Reply #3 on: December 08, 2007, 03:14:02 AM »
Per request from Leno...

Unused space (offsets with header):

7F31 = 623 BYTES
E055 = 1195 BYTES
10135 = 203 BYTES
181BE = 66 BYTES
1F3FB = 133 BYTES
200E3 = 285 BYTES
23B4C = 124 BYTES
23DD0 = 1072 BYTES
43AB9 = 1863 BYTES
5FF58 = 680 BYTES

*stopped here, that should be enough for now

Lenophis

  • Forum Overlord
  • *
  • Posts: 1,680
  • Gender: Male
  • I sad
    • View Profile
    • Slick Productions
Re: FF4 code griping thread
« Reply #4 on: December 08, 2007, 12:02:47 PM »
Ok, I've come up with a very simple multiplication routine:

Code: [Select]
01/902B: 2060DE  JSR $DE60      (this used to be the three ASL's)
01/902E: EA      NOP
01/902F: EA      NOP            (this was the ADC)

01/DE60: E220    SEP #$20
01/DE62: 8F024200 STA $004202    (store item index)
01/DE66: A90A    LDA #$0A       (our multiplier, this makes items 10 characters, 9 + icon)
01/DE68: 8F034200 STA $004203    (store the multiplier)
01/DE6C: EA      NOP
01/DE6D: EA      NOP
01/DE6E: EA      NOP
01/DE6F: EA      NOP
01/DE70: C220    REP #$20
01/DE6E: AF164200 LDA $004216    (A now contains our current item index)
01/DE73: 60      RTS

The location for the math routine is at 0xDE60 (add 0x200 if your file has a header). It was the only place within JSR range, though I had room for a JSL.

One thing to note, with this new system, the current location of the item names are no longer valid. They'll need to be moved elsewhere. Expanding is a possibility, just make sure you know where to put them. This won't do much for battles, although a thought occurs. You can do what we did with items, make 2 lists. A 13 letter list and a 16 letter list. The 13 letter list is used for places that obviously can't fit the 16 letter list. The only thing you'd need to do is know when a specific list can be used.

Also, this is untested, though I'm fairly confident that new routine is within range to be JSR'ed to.

Lastly, if you want to expand the names farther, just change the multiplier (LDA #$0A).

--Edit--
I forgot one thing:

Code: [Select]
$01/9045 A9 08       LDA #$08                A:0004 X:000A Y:0046 D:0100 DB:7E S:02E7 P:envMxdIzcHC:0776 VC:013 00 FL:08
$01/9047 85 45       STA $45    [$00:0145]   A:0008 X:000A Y:0046 D:0100 DB:7E S:02E7 P:envMxdIzcHC:0792 VC:013 00 FL:08
That LDA needs to be changed to 1 less than what your new multiplier is. That value is when the game knows to stop drawing letters.

119 bugs fixed and counting.

JCE3000GT

  • Master of FF4
  • *
  • Posts: 1,425
  • Gender: Male
  • Vladof
    • View Profile
    • BlitzKrieg Innovations
Re: FF4 code griping thread
« Reply #5 on: December 08, 2007, 02:13:14 PM »
Cool.  I'll play around with it later.   :cookie:

JCE3000GT

  • Master of FF4
  • *
  • Posts: 1,425
  • Gender: Male
  • Vladof
    • View Profile
    • BlitzKrieg Innovations
Re: FF4 code griping thread
« Reply #6 on: December 12, 2007, 04:42:25 PM »
Awsome it works...mosty. 



My main problem right now is I can't find the colon and item amount positions or pointers.   :bah:

[attachment deleted by admin]

Dragonsbrethren

  • Forum Overlord
  • *
  • Posts: 1,820
    • View Profile
    • Dragonsbrethren Industries
Re: FF4 code griping thread
« Reply #7 on: December 13, 2007, 02:03:07 AM »
Code: (FF2us Character Class Loading and Printing Routine) [Select]
$01/8B41 68          PLA                     A:02DC X:1000 Y:02DC P:envMxdIzc
$01/8B42 4C C8 8F    JMP $8FC8  [$7E:8FC8]   A:0200 X:1000 Y:02DC P:envMxdIZc
$01/8FC8 29 0F       AND #$0F                A:0200 X:1000 Y:02DC P:envMxdIZc
$01/8FCA 48          PHA                     A:0200 X:1000 Y:02DC P:envMxdIZc
$01/8FCB C2 20       REP #$20                A:0200 X:1000 Y:02DC P:envMxdIZc
$01/8FCD 98          TYA                     A:0200 X:1000 Y:02DC P:envmxdIZc
$01/8FCE 18          CLC                     A:02DC X:1000 Y:02DC P:envmxdIzc
$01/8FCF 65 29       ADC $29    [$00:0129]   A:02DC X:1000 Y:02DC P:envmxdIzc
$01/8FD1 A8          TAY                     A:D8DC X:1000 Y:02DC P:eNvmxdIzc
$01/8FD2 E2 20       SEP #$20                A:D8DC X:1000 Y:D8DC P:eNvmxdIzc
$01/8FD4 68          PLA                     A:D8DC X:1000 Y:D8DC P:eNvMxdIzc
$01/8FD5 85 46       STA $46    [$00:0146]   A:D800 X:1000 Y:D8DC P:envMxdIZc
$01/8FD7 0A          ASL A                   A:D800 X:1000 Y:D8DC P:envMxdIZc
$01/8FD8 85 45       STA $45    [$00:0145]   A:D800 X:1000 Y:D8DC P:envMxdIZc
$01/8FDA 0A          ASL A                   A:D800 X:1000 Y:D8DC P:envMxdIZc
$01/8FDB 65 45       ADC $45    [$00:0145]   A:D800 X:1000 Y:D8DC P:envMxdIZc
$01/8FDD 65 46       ADC $46    [$00:0146]   A:D800 X:1000 Y:D8DC P:envMxdIZc
$01/8FDF 85 45       STA $45    [$00:0145]   A:D800 X:1000 Y:D8DC P:envMxdIZc
$01/8FE1 64 46       STZ $46    [$00:0146]   A:D800 X:1000 Y:D8DC P:envMxdIZc
$01/8FE3 A6 45       LDX $45    [$00:0145]   A:D800 X:1000 Y:D8DC P:envMxdIZc
$01/8FE5 A9 07       LDA #$07                A:D800 X:0000 Y:D8DC P:envMxdIZc
$01/8FE7 85 45       STA $45    [$00:0145]   A:D807 X:0000 Y:D8DC P:envMxdIzc
$01/8FE9 BF 64 A7 0F LDA $0FA764,x[$0F:A764] A:D807 X:0000 Y:D8DC P:envMxdIzc
$01/8FED 20 34 8E    JSR $8E34  [$01:8E34]   A:D845 X:0000 Y:D8DC P:envMxdIzc

Code: (FF4 Character Class Loading and Printing Routine) [Select]
$01/8B3F 68          PLA                     A:02DC X:1000 Y:02DC P:envMxdIzc
$01/8B40 4C C6 8F    JMP $8FC6  [$7E:8FC6]   A:0200 X:1000 Y:02DC P:envMxdIZc
$01/8FC6 29 0F       AND #$0F                A:0200 X:1000 Y:02DC P:envMxdIZc
$01/8FC8 48          PHA                     A:0200 X:1000 Y:02DC P:envMxdIZc
$01/8FC9 C2 20       REP #$20                A:0200 X:1000 Y:02DC P:envMxdIZc
$01/8FCB 98          TYA                     A:0200 X:1000 Y:02DC P:envmxdIZc
$01/8FCC 18          CLC                     A:02DC X:1000 Y:02DC P:envmxdIzc
$01/8FCD 65 29       ADC $29    [$00:0129]   A:02DC X:1000 Y:02DC P:envmxdIzc
$01/8FCF A8          TAY                     A:D8DC X:1000 Y:02DC P:eNvmxdIzc
$01/8FD0 E2 20       SEP #$20                A:D8DC X:1000 Y:D8DC P:eNvmxdIzc
$01/8FD2 68          PLA                     A:D8DC X:1000 Y:D8DC P:eNvMxdIzc
$01/8FD3 0A          ASL A                   A:D800 X:1000 Y:D8DC P:envMxdIZc
$01/8FD4 85 45       STA $45    [$00:0145]   A:D800 X:1000 Y:D8DC P:envMxdIZc
$01/8FD6 0A          ASL A                   A:D800 X:1000 Y:D8DC P:envMxdIZc
$01/8FD7 65 45       ADC $45    [$00:0145]   A:D800 X:1000 Y:D8DC P:envMxdIZc
$01/8FD9 85 45       STA $45    [$00:0145]   A:D800 X:1000 Y:D8DC P:envMxdIZc
$01/8FDB 64 46       STZ $46    [$00:0146]   A:D800 X:1000 Y:D8DC P:envMxdIZc
$01/8FDD A6 45       LDX $45    [$00:0145]   A:D800 X:1000 Y:D8DC P:envMxdIZc
$01/8FDF A9 06       LDA #$06                A:D800 X:0000 Y:D8DC P:envMxdIZc
$01/8FE1 85 45       STA $45    [$00:0145]   A:D806 X:0000 Y:D8DC P:envMxdIzc
$01/8FE3 BF 64 A7 0F LDA $0FA764,x[$0F:A764] A:D806 X:0000 Y:D8DC P:envMxdIzc
$01/8FE7 20 32 8E    JSR $8E32  [$01:8E32]   A:D845 X:0000 Y:D8DC P:envMxdIzc

Code: (Prints "Level," "HP," and "MP" in FF2us's main menu) [Select]
$01/89B4 C2 20       REP #$20                A:FF00 X:0007 Y:D8EA P:envMxdIZC
$01/89B6 A5 4B       LDA $4B    [$00:014B]   A:FF00 X:0007 Y:D8EA P:envmxdIZC
$01/89B8 18          CLC                     A:02CE X:0007 Y:D8EA P:envmxdIzC
$01/89B9 69 84 00    ADC #$0084              A:02CE X:0007 Y:D8EA P:envmxdIzc
$01/89BC 85 4B       STA $4B    [$00:014B]   A:0352 X:0007 Y:D8EA P:envmxdIzc
$01/89BE 65 29       ADC $29    [$00:0129]   A:0352 X:0007 Y:D8EA P:envmxdIzc
$01/89C0 AA          TAX                     A:D952 X:0007 Y:D8EA P:eNvmxdIzc
$01/89C1 E2 20       SEP #$20                A:D952 X:D952 Y:D8EA P:eNvmxdIzc
$01/89C3 A9 4D       LDA #$4D                A:D952 X:D952 Y:D8EA P:eNvMxdIzc
$01/89C5 9D 00 00    STA $0000,x[$7E:D952]   A:D94D X:D952 Y:D8EA P:envMxdIzc
$01/89C8 A9 67       LDA #$67                A:D94D X:D952 Y:D8EA P:envMxdIzc
$01/89CA 9D 08 00    STA $0008,x[$7E:D95A]   A:D967 X:D952 Y:D8EA P:envMxdIzc
$01/89CD A9 60       LDA #$60                A:D967 X:D952 Y:D8EA P:envMxdIzc
$01/89CF 9D 02 00    STA $0002,x[$7E:D954]   A:D960 X:D952 Y:D8EA P:envMxdIzc
$01/89D2 9D 06 00    STA $0006,x[$7E:D958]   A:D960 X:D952 Y:D8EA P:envMxdIzc
$01/89D5 A9 71       LDA #$71                A:D960 X:D952 Y:D8EA P:envMxdIzc
$01/89D7 9D 04 00    STA $0004,x[$7E:D956]   A:D971 X:D952 Y:D8EA P:envMxdIzc
$01/89DA A9 49       LDA #$49                A:D971 X:D952 Y:D8EA P:envMxdIzc
$01/89DC 9D 40 00    STA $0040,x[$7E:D992]   A:D949 X:D952 Y:D8EA P:envMxdIzc
$01/89DF A9 51       LDA #$51                A:D949 X:D952 Y:D8EA P:envMxdIzc
$01/89E1 9D 42 00    STA $0042,x[$7E:D994]   A:D951 X:D952 Y:D8EA P:envMxdIzc
$01/89E4 9D 82 00    STA $0082,x[$7E:D9D4]   A:D951 X:D952 Y:D8EA P:envMxdIzc
$01/89E7 A9 4E       LDA #$4E                A:D951 X:D952 Y:D8EA P:envMxdIzc
$01/89E9 9D 80 00    STA $0080,x[$7E:D9D2]   A:D94E X:D952 Y:D8EA P:envMxdIzc
$01/89EC A9 C7       LDA #$C7                A:D94E X:D952 Y:D8EA P:envMxdIzc
$01/89EE 9D 4E 00    STA $004E,x[$7E:D9A0]   A:D9C7 X:D952 Y:D8EA P:eNvMxdIzc
$01/89F1 9D 8E 00    STA $008E,x[$7E:D9E0]   A:D9C7 X:D952 Y:D8EA P:eNvMxdIzc
$01/89F4 A0 02 00    LDY #$0002              A:D9C7 X:D952 Y:D8EA P:eNvMxdIzc
$01/89F7 B1 48       LDA ($48),y[$7E:1002]   A:D9C7 X:D952 Y:0002 P:envMxdIzc
$01/89F9 20 BD 81    JSR $81BD  [$01:81BD]   A:D90A X:D952 Y:0002 P:envMxdIzc

Code: (Prints "LEVEL," "HP," and "MP" in FF4's main menu) [Select]
$01/89B4 C2 20       REP #$20                A:FF00 X:0006 Y:D8E8 P:envMxdIZC
$01/89B6 A5 4B       LDA $4B    [$00:014B]   A:FF00 X:0006 Y:D8E8 P:envmxdIZC
$01/89B8 18          CLC                     A:02CE X:0006 Y:D8E8 P:envmxdIzC
$01/89B9 69 84 00    ADC #$0084              A:02CE X:0006 Y:D8E8 P:envmxdIzc
$01/89BC 85 4B       STA $4B    [$00:014B]   A:0352 X:0006 Y:D8E8 P:envmxdIzc
$01/89BE 65 29       ADC $29    [$00:0129]   A:0352 X:0006 Y:D8E8 P:envmxdIzc
$01/89C0 AA          TAX                     A:D952 X:0006 Y:D8E8 P:eNvmxdIzc
$01/89C1 E2 20       SEP #$20                A:D952 X:D952 Y:D8E8 P:eNvmxdIzc
$01/89C3 A9 4D       LDA #$4D                A:D952 X:D952 Y:D8E8 P:eNvMxdIzc
$01/89C5 9D 00 00    STA $0000,x[$7E:D952]   A:D94D X:D952 Y:D8E8 P:envMxdIzc
$01/89C8 9D 08 00    STA $0008,x[$7E:D95A]   A:D94D X:D952 Y:D8E8 P:envMxdIzc
$01/89CB A9 46       LDA #$46                A:D94D X:D952 Y:D8E8 P:envMxdIzc
$01/89CD 9D 02 00    STA $0002,x[$7E:D954]   A:D946 X:D952 Y:D8E8 P:envMxdIzc
$01/89D0 9D 06 00    STA $0006,x[$7E:D958]   A:D946 X:D952 Y:D8E8 P:envMxdIzc
$01/89D3 A9 57       LDA #$57                A:D946 X:D952 Y:D8E8 P:envMxdIzc
$01/89D5 9D 04 00    STA $0004,x[$7E:D956]   A:D957 X:D952 Y:D8E8 P:envMxdIzc
$01/89D8 A9 49       LDA #$49                A:D957 X:D952 Y:D8E8 P:envMxdIzc
$01/89DA 9D 40 00    STA $0040,x[$7E:D992]   A:D949 X:D952 Y:D8E8 P:envMxdIzc
$01/89DD A9 51       LDA #$51                A:D949 X:D952 Y:D8E8 P:envMxdIzc
$01/89DF 9D 42 00    STA $0042,x[$7E:D994]   A:D951 X:D952 Y:D8E8 P:envMxdIzc
$01/89E2 9D 82 00    STA $0082,x[$7E:D9D4]   A:D951 X:D952 Y:D8E8 P:envMxdIzc
$01/89E5 A9 4E       LDA #$4E                A:D951 X:D952 Y:D8E8 P:envMxdIzc
$01/89E7 9D 80 00    STA $0080,x[$7E:D9D2]   A:D94E X:D952 Y:D8E8 P:envMxdIzc
$01/89EA A9 C7       LDA #$C7                A:D94E X:D952 Y:D8E8 P:envMxdIzc
$01/89EC 9D 4E 00    STA $004E,x[$7E:D9A0]   A:D9C7 X:D952 Y:D8E8 P:eNvMxdIzc
$01/89EF 9D 8E 00    STA $008E,x[$7E:D9E0]   A:D9C7 X:D952 Y:D8E8 P:eNvMxdIzc
$01/89F2 A0 02 00    LDY #$0002              A:D9C7 X:D952 Y:D8E8 P:eNvMxdIzc
$01/89F5 B1 48       LDA ($48),y[$7E:1002]   A:D9C7 X:D952 Y:0002 P:envMxdIzc
$01/89F7 20 BD 81    JSR $81BD  [$01:81BD]   A:D90A X:D952 Y:0002 P:envMxdIzc

Code: (Doesn't exist in FF2us) [Select]
$01/8E37 38          SEC                     A:FF20 X:C774 Y:DB84 P:eNvMxdIzc
$01/8E38 E9 0F       SBC #$0F                A:FF20 X:C774 Y:DB84 P:eNvMxdIzC
$01/8E3A 0A          ASL A                   A:FF11 X:C774 Y:DB84 P:envMxdIzC
$01/8E3B EB          XBA                     A:FF22 X:C774 Y:DB84 P:envMxdIzc
$01/8E3C A9 00       LDA #$00                A:22FF X:C774 Y:DB84 P:eNvMxdIzc
$01/8E3E EB          XBA                     A:2200 X:C774 Y:DB84 P:envMxdIZc
$01/8E3F AA          TAX                     A:0022 X:C774 Y:DB84 P:envMxdIzc
$01/8E40 BF 1F FE 1E LDA $1EFE1F,x[$1E:FE41] A:0022 X:0022 Y:DB84 P:envMxdIzc
$01/8E44 EB          XBA                     A:00C0 X:0022 Y:DB84 P:eNvMxdIzc
$01/8E45 BF 1E FE 1E LDA $1EFE1E,x[$1E:FE40] A:C000 X:0022 Y:DB84 P:envMxdIZc
$01/8E49 EB          XBA                     A:C0A4 X:0022 Y:DB84 P:eNvMxdIzc
$01/8E4A FA          PLX                     A:A4C0 X:0022 Y:DB84 P:eNvMxdIzc
$01/8E4B 60          RTS                     A:A4C0 X:C774 Y:DB84 P:eNvMxdIzc
« Last Edit: December 13, 2007, 02:47:31 AM by Dragonsbrethren »

Lenophis

  • Forum Overlord
  • *
  • Posts: 1,680
  • Gender: Male
  • I sad
    • View Profile
    • Slick Productions
Re: FF4 code griping thread
« Reply #8 on: December 13, 2007, 02:59:11 AM »
The mythical "Time" string:

Code: [Select]
$01/87C5 A0 20 DC    LDY #$DC20              A:B030 X:10B0 Y:0300 D:0100 DB:7E S:02EF P:envMxdIzcHC:0672 VC:235 00 FL:05
$01/87C8 A2 2E 05    LDX #$052E              A:B030 X:10B0 Y:DC20 D:0100 DB:7E S:02EF P:eNvMxdIzcHC:0696 VC:235 00 FL:05
$01/87CB 20 98 87    JSR $8798  [$01:8798]   A:B030 X:052E Y:DC20 D:0100 DB:7E S:02EF P:envMxdIzcHC:0720 VC:235 00 FL:05

$01/8798 8B          PHB                     A:B030 X:052E Y:DC20 D:0100 DB:7E S:02ED P:envMxdIzcHC:0766 VC:235 00 FL:06
$01/8799 4B          PHK                     A:B030 X:052E Y:DC20 D:0100 DB:7E S:02EC P:envMxdIzcHC:0788 VC:235 00 FL:06
$01/879A AB          PLB                     A:B030 X:052E Y:DC20 D:0100 DB:7E S:02EB P:envMxdIzcHC:0810 VC:235 00 FL:06
$01/879B C2 20       REP #$20                A:B030 X:052E Y:DC20 D:0100 DB:01 S:02EC P:envMxdIzcHC:0838 VC:235 00 FL:06
$01/879D 8A          TXA                     A:B030 X:052E Y:DC20 D:0100 DB:01 S:02EC P:envmxdIzcHC:0860 VC:235 00 FL:06
$01/879E 18          CLC                     A:052E X:052E Y:DC20 D:0100 DB:01 S:02EC P:envmxdIzcHC:0874 VC:235 00 FL:06
$01/879F 65 29       ADC $29    [$00:0129]   A:052E X:052E Y:DC20 D:0100 DB:01 S:02EC P:envmxdIzcHC:0888 VC:235 00 FL:06
$01/87A1 AA          TAX                     A:DB2E X:052E Y:DC20 D:0100 DB:01 S:02EC P:eNvmxdIzcHC:0920 VC:235 00 FL:06
$01/87A2 E2 20       SEP #$20                A:DB2E X:DB2E Y:DC20 D:0100 DB:01 S:02EC P:eNvmxdIzcHC:0934 VC:235 00 FL:06
$01/87A4 B9 00 00    LDA $0000,y[$01:DC20]   A:DB2E X:DB2E Y:DC20 D:0100 DB:01 S:02EC P:eNvMxdIzcHC:0956 VC:235 00 FL:06
$01/87A7 F0 09       BEQ $09    [$87B2]      A:DB55 X:DB2E Y:DC20 D:0100 DB:01 S:02EC P:envMxdIzcHC:0988 VC:235 00 FL:06
$01/87A9 9F 00 00 7E STA $7E0000,x[$7E:DB2E] A:DB55 X:DB2E Y:DC20 D:0100 DB:01 S:02EC P:envMxdIzcHC:1004 VC:235 00 FL:06
$01/87AD E8          INX                     A:DB55 X:DB2E Y:DC20 D:0100 DB:01 S:02EC P:envMxdIzcHC:1044 VC:235 00 FL:06
$01/87AE E8          INX                     A:DB55 X:DB2F Y:DC20 D:0100 DB:01 S:02EC P:eNvMxdIzcHC:1058 VC:235 00 FL:06
$01/87AF C8          INY                     A:DB55 X:DB30 Y:DC20 D:0100 DB:01 S:02EC P:eNvMxdIzcHC:1072 VC:235 00 FL:06
$01/87B0 80 F2       BRA $F2    [$87A4]      A:DB55 X:DB30 Y:DC21 D:0100 DB:01 S:02EC P:eNvMxdIzcHC:1086 VC:235 00 FL:06
$01/87B2 AB          PLB                     A:DB00 X:DB36 Y:DC24 D:0100 DB:01 S:02EC P:envMxdIZcHC:0434 VC:236 00 FL:06
$01/87B3 60          RTS                     A:DB00 X:DB36 Y:DC24 D:0100 DB:7E S:02ED P:envMxdIzcHC:0462 VC:236 00 FL:06

--Edit--
Turns out "GP" is right after it:

Code: [Select]
$01/87CE A0 32 DB    LDY #$DB32              A:DB00 X:DB36 Y:DC24 D:0100 DB:7E S:02EF P:envMxdIzcHC:0504 VC:236 00 FL:05
$01/87D1 A2 76 06    LDX #$0676              A:DB00 X:DB36 Y:DB32 D:0100 DB:7E S:02EF P:eNvMxdIzcHC:0528 VC:236 00 FL:05
$01/87D4 20 CD 82    JSR $82CD  [$01:82CD]   A:DB00 X:0676 Y:DB32 D:0100 DB:7E S:02EF P:envMxdIzcHC:0552 VC:236 00 FL:05

$01/82CD 8B          PHB                     A:DB00 X:0676 Y:DB32 D:0100 DB:7E S:02ED P:envMxdIzcHC:0598 VC:236 00 FL:06
$01/82CE 0B          PHD                     A:DB00 X:0676 Y:DB32 D:0100 DB:7E S:02EC P:envMxdIzcHC:0620 VC:236 00 FL:06
$01/82CF DA          PHX                     A:DB00 X:0676 Y:DB32 D:0100 DB:7E S:02EA P:envMxdIzcHC:0650 VC:236 00 FL:06
$01/82D0 DA          PHX                     A:DB00 X:0676 Y:DB32 D:0100 DB:7E S:02E8 P:envMxdIzcHC:0680 VC:236 00 FL:06
$01/82D1 A2 00 01    LDX #$0100              A:DB00 X:0676 Y:DB32 D:0100 DB:7E S:02E6 P:envMxdIzcHC:0710 VC:236 00 FL:06
$01/82D4 DA          PHX                     A:DB00 X:0100 Y:DB32 D:0100 DB:7E S:02E6 P:envMxdIzcHC:0734 VC:236 00 FL:06
$01/82D5 2B          PLD                     A:DB00 X:0100 Y:DB32 D:0100 DB:7E S:02E4 P:envMxdIzcHC:0764 VC:236 00 FL:06
$01/82D6 FA          PLX                     A:DB00 X:0100 Y:DB32 D:0100 DB:7E S:02E6 P:envMxdIzcHC:0800 VC:236 00 FL:06
$01/82D7 4B          PHK                     A:DB00 X:0676 Y:DB32 D:0100 DB:7E S:02E8 P:envMxdIzcHC:0836 VC:236 00 FL:06
$01/82D8 AB          PLB                     A:DB00 X:0676 Y:DB32 D:0100 DB:7E S:02E7 P:envMxdIzcHC:0858 VC:236 00 FL:06
$01/82D9 C2 20       REP #$20                A:DB00 X:0676 Y:DB32 D:0100 DB:01 S:02E8 P:envMxdIzcHC:0886 VC:236 00 FL:06
$01/82DB 8A          TXA                     A:DB00 X:0676 Y:DB32 D:0100 DB:01 S:02E8 P:envmxdIzcHC:0908 VC:236 00 FL:06
$01/82DC 18          CLC                     A:0676 X:0676 Y:DB32 D:0100 DB:01 S:02E8 P:envmxdIzcHC:0922 VC:236 00 FL:06
$01/82DD 65 29       ADC $29    [$00:0129]   A:0676 X:0676 Y:DB32 D:0100 DB:01 S:02E8 P:envmxdIzcHC:0936 VC:236 00 FL:06
$01/82DF AA          TAX                     A:DC76 X:0676 Y:DB32 D:0100 DB:01 S:02E8 P:eNvmxdIzcHC:0968 VC:236 00 FL:06
$01/82E0 E2 20       SEP #$20                A:DC76 X:DC76 Y:DB32 D:0100 DB:01 S:02E8 P:eNvmxdIzcHC:0982 VC:236 00 FL:06
$01/82E2 80 34       BRA $34    [$8318]      A:DC76 X:DC76 Y:DB32 D:0100 DB:01 S:02E8 P:eNvMxdIzcHC:1004 VC:236 00 FL:06

119 bugs fixed and counting.

HHIPDragonFox

  • FF4 Hacker
  • *
  • Posts: 58
  • Gender: Male
  • White Dragon Emerges.
    • View Profile
    • Holyplasmadragonfox DragonFox Pages
Re: FF4 code griping thread
« Reply #9 on: June 26, 2008, 04:31:31 AM »
Hey Lenophis:

   Would the Multiplier and index for the main menu items work with the following:
    (o) 1) Event Get Treasure
    (o) 2) Event Give Treasure
    (*) 3) Main Menu Spell Menu/List
    (*) 4) Main Menu class/name
   (*?) 5) Main Menu player name
(o) = not done, (*) = has been done, (?) = in questionable status, why did I want this.

I just can't figure out where to poke the values or address reroute (JSR)
Your previous asm worked for the item/shop/battle won menus.

thanks..

 :omg:
3) in headered offset format + explanation+base/changes.
  it does work
 
Code: [Select]
    0B4F2 = Magic Menu, Spell List, Spell Generate Index holder.       
    Original = 0A (85 45) 0A (65 45)
    Changed  = (85 45) 20 ## ## (EA)
                    where ## ## is the offset pointer of the rom for the index holder.

Picture:

Still have to rearrange the columns for the spells. yes the last part of the picture does include a couple of enemy spells.


Editted:
(4) The following Code is in headered format with starting areas and changed areas.
Code: [Select]
    091D2 = E2 20  68 85 46  0A 85  45 0A  65 45  65 46  85 45 64 46 A6 45  A9 07 85 45  BF 64 A7 0F
    091D2 = E2 20  68 85 46  C2 20  20 60 DF  EA  E2 20  85 45 64 46 A6 45  A9 08 85 45  BF 64 A7 0F
                                       ## ## address pointer to index sub-routine.
I figured that copying some routine command from the Spell Find/Print every # generate function and make similar to the Class functions and it seemed to work well so far.
I can variate most code given when basically given. now as to what this really does in asm is unknown to me yet.  so feel free to verify this and contact me.


It seems to work and I haven't yet come accross any alterations in the program functionalities.
Just need to find that variable procedure that moderates how the class title disappears when status conditions are on.

(5) Strange, I can set the pointer to generate every number but it seems the program views this differently somehow.
      I can change the name and length to show as well, but it still shows the orignal name for that area.
      Slightly works, but found to be pointless as for the game memory will only store 6 letters when renamed. Also found that the pointer (BD) 00 15 E8 refers to some part of the rom in which I haven't deciphered yet. Help is welcomed.
Code: [Select]
    085B8 = MainMenu, CHaracter Name, Generate Every # original code.    0A  85 45  0A  65 45 20 B4 87 
    085B8 = MainMenu, CHaracter Name, Generate Every # change code.      85 45  20 40 DF   EA 20 B4 87 
                                                                                   ## ##  pointer reference for index generate.
  7A710(7A910) is just the reference viewing for what the rom does, changing this areadoes not reflect the names. It's hard coded elsewhere that I haven't found yet.
« Last Edit: June 30, 2008, 12:57:24 PM by HHIPDragonFox »
Cool is the Holy feeling after being Iced by Hyper Plasma.

HHIPDragonFox

  • FF4 Hacker
  • *
  • Posts: 58
  • Gender: Male
  • White Dragon Emerges.
    • View Profile
    • Holyplasmadragonfox DragonFox Pages
Re: FF4 code griping thread
« Reply #10 on: January 28, 2009, 01:45:16 PM »
 :blush:  Hey Lenophis.

Could you Help me with finding how to expand the length of search chr$ for viewing Item names in the Map Events - Give Item & Treasure Get?

Value needed is expanding the normal 9 letter long name to 0B(11) letter long.
The issue is that it show from a search of every 9 and i need it every 11.   I have it to show a length of letters at 11 but it's the wrong item name.
Here's the Raw Data from Headered Rom(FF2us_v1.1):

Give Item:
Code: [Select]
    03208 = Event, Give Item, ?.                                       [A5 BA] 0A 0A AA [86 3D]
    0320F = Event, Give Item, ?.                                       (A0) 00 00 [84 40]
    03214 = Event, Give Item, ?.                                       (A9) 08 [85 07]
    03218 = Event, Give Item, ?.                                       [A6 3D] [   (BD) 12 07] [D0 03]
    0321F = Event, Give Item, ?.                                       {4C} 94 B0
    03222 = Event, Give Item, ?.                                       [64 19]  0A [26 19]  0A [26 19]  0A [26 19] 
    0322D = Event, Give Item, ?.                                       [(18 7D) 12 07] [85 18]   
    03233 = Event, Give Item, Show Relative Position.                  [A5 19]    (69) 00 [85 19].
    03239 = Event, Give Item, ?.                                       [A6 18]  [A4 40]
    0323D = Event, Give Item, Show Length of Printed Items.          --(A9) 09 to 0B [85 08]  true.
    03241 = Event, Give Item, Items Pointer.                           (BF) 00 80 [0F]  (78000 nohd(78200 hd)).
    03245 = Event, Give Item, Items Positioner.                        [99 74 07]

Treasure Get Item:
Code: [Select]
    03538 = Event, Treasure Get Item, ?.                               [   (AD) FB 08]
    0353B = Event, Treasure Get Item, ?.                               [64 19]  0A [26 19]  0A [26 19]  0A [26 19]
    03546 = Event, Treasure Get Item, ?.                               [(18 6D) FB 08] [85 18]
    0354C = Event, Treasure Get Item, Show Position.                   [A5 19]    (69) 00 [85 19] .
    03552 = Event, Treasure Get Item, ?.                               [A6 18] [A4 3D]
    03556 = Event, Treasure Get Item, Show Length of Printed Items.  --(A9) 09 [85 07]. to 0B  true?.
    0355A = Event, Treasure Get Item, Items Pointer.                   (BF) 00 80 [0F] (78000 nohd(78200 hd)).
    0355E = Event, Treasure Get Item, Show Letters stop value/chr$.    (C9) FF (F0 0B)  ??
    03562 = Event, Treasure Get Item, View Point Position value.       (99) 74 07. ??

Or is it in another section that effects where and how long it looks in the data for showing the exact name?

Any form of Corrected Return Data is accepted. (I can Read ASM, but not yet Write).
Thanks.
« Last Edit: March 15, 2009, 09:32:56 PM by HHIPDragonFox »
Cool is the Holy feeling after being Iced by Hyper Plasma.