1.6. Chỉnh sửa linh tinh các chỉ số trong game (phần này còn có thể cập nhật tùy theo khả năng của người post

)
Xin được tiếp tục phần vọc Tsubasa 3. Mình sẽ minh họa bằng Rom Việt ngữ của bác asm65816.
Một số trường hợp đã có sẵn nguồn từ Internet nên mình chỉ thống kê lại, không trình bày cách tìm.
1.6.1 All Stars List :
Dễ thấy danh sách all star đã list sẵn tên cầu thủ, chỉ việc search dãy Hex tương ứng với 1 số cầu thủ trong danh sách trong rom là có được vị trí của all star list.
Ví dụ : all stars list bắt đầu từ Tsubasa - Hyuga - Misaki - Misugi ... - ứng với value ram : 01 19 21 1F ...
Mở rom bằng hex Editor và Ctrl+F để search chuỗi Hex : 0119211F
Ta có tại offset
25200 lưu chuỗi value ram qui định các cầu thủ trong all star list. Kết thúc bằng 3D (TM Dino của Italy).
Vậy việc thay thế cầu thủ trong all star list khá đơn giản, chỉ cần thay value ram vào vị trí tương ứng.
Ví dụ như trong hình, mình đã thay thế 2 cầu thủ khựa bằng Bossis (N.11 France) và Rolima (N.9 England)
Một số điểm cần lưu ý :
- Shaka (Mihael - N.11 USA) : là cầu thủ ẩn, chỉ unlock được khi đá xong trận thứ 8 Kick Off. Nếu cố tính add vào list này cũng không chọn được.
- Một số cầu thủ khác chỉ có trong dữ liệu của đội CPU, cố tính add vào có thể gây lỗi game. Ví dụ thủ môn Lamkane của Belgium.
1.6.2. Các chỉ số cơ bản
- Level : hiện chỉ có thể tác động vào Level thông qua Ram, nếu có tìm hiểu Assembly và code theo hướng dẫn của asm65816 thì có thể qui định cho các vùng nhớ Ram này luôn có giá trị nhất định.
Phần chỉnh chỉ số trong Ram có thể xem ở web gamefaqs mình post ở bài đầu, qui định cho từng vị trí trên sân. Công thức tính Level cho 1 vị trí (slot) như sau :
Level = 16 x A + (B+1) . Với AB là 1 số Hex mang giá trị từ 00 - FF (0-255).
Ví dụ muốn vị trí / slot đó có Level 100 thì 100 = 16 x 6 + (3+1). Vậy con số phải điền vào vùng nhớ Ram đó là 63 (hex).
Vì tăng 1 level thì các chỉ số cơ bản của cầu thủ đó sẽ được +1. Nên chỉnh level sẽ tác động vào các chỉ số cơ bản.
Giả sử lúc đầu chỉ số cơ bản của Tsubasa như sau (Slot 10 - Sao Paulo - trận 1)

Với Tsubasa, chỉ số Through / Bỏ bóng là cao nhất (19). Giá trị max là 255 (1 byte) nên 255 - 19 = 236 = EC (hex). Vậy level tối đa ta có thể áp vào được là EC. Khi lấy con số vượt quá 236 (EC) thì chỉ số cơ bản nào bị + vượt 255 sẽ trả về 0, 1, 2, ....
Như trong trường hợp này . Set freeze vùng ram 7E3525 (qui định level của slot số 10) với giá trị EC. Thì ta có chỉ số của Tsubasa như sau :

Lưu ý việc chỉnh sửa này chỉ mang giá trị tạm thời vì là chỉnh trên Ram.
- Chỉ số cơ bản : minh họa bằng Tsubasa.
Không đơn giản như ở Tsubasa 2, tìm được vị trí các chỉ số cơ bản xong chỉ cần thay thế bằng giá trị mong muốn (hex) sẽ dễ dàng có giá trị cao (ví dụ FF - 255).
Ghi log cho Tsubasa khi bắt đầu nhấn A vào tên Tsubasa để vào màn hình Level 1 như ở trên. Ở đây mình chỉ xét 6 chỉ số cơ bản khi bóng dưới đất (Rê - Chuyền - Sút - Chuồi - Chặn - Cắt)
Các chỉ số cơ bản không được lấy trực tiếp từ trong Rom ra để lưu vào Ram mà là phải trải qua bước /8 (trả về số nguyên 8 bit int8). Tức là các chỉ số cơ bản mà ta thấy hiện lên màn hình phải đem x8 sau đó chuyển thành số Hex sẽ là số qui địnnh trong Rom.
Như hình level 1 của Tsubasa có chỉ số : 18 17 15 15 12 15, tạm thời lấy 3 số đó là chỉ số khi có bóng tấn công : 18 17 15, đem x8 thì được 144 136 120 -> Hex : 90 88 78
Thử search chuỗi hex 90 88 78 thì không tìm được trong rom. Vậy tức là game không bắt đầu nạp theo thứ tự 90 88 78.
Thử đảo thứ tự thành 78 88 90 thì tìm được chuỗi hex này tại :
220B0 .
Dùng Lunar Address đổi offset 220B0 ra địa chỉ LoRom được $04:A0B0.
Mở log và search chuỗi : " [$04:A0" ta có đoạn xử lý :
Mã:
$00/8581 B3 01 LDA ($01,s),y[$04:A0B2] A:A004 X:0006 Y:0002 D:1800 DB:04 S:1C07 P:envMXdIzc HC:0300 VC:018 FC:05 I:00
$00/8583 FA PLX A:A090 X:0006 Y:0002 D:1800 DB:04 S:1C07 P:eNvMXdIzc HC:0360 VC:018 FC:05 I:00
$00/8584 FA PLX A:A090 X:00B0 Y:0002 D:1800 DB:04 S:1C08 P:eNvMXdIzc HC:0396 VC:018 FC:05 I:00
$00/8585 EB XBA A:A090 X:00A0 Y:0002 D:1800 DB:04 S:1C09 P:eNvMXdIzc HC:0432 VC:018 FC:05 I:00
$00/8586 A9 00 LDA #$00 A:90A0 X:00A0 Y:0002 D:1800 DB:04 S:1C09 P:eNvMXdIzc HC:0460 VC:018 FC:05 I:00
$00/8588 C2 20 REP #$20 A:9000 X:00A0 Y:0002 D:1800 DB:04 S:1C09 P:envMXdIZc HC:0484 VC:018 FC:05 I:00
$00/858A 4A LSR A A:9000 X:00A0 Y:0002 D:1800 DB:04 S:1C09 P:envmXdIZc HC:0514 VC:018 FC:05 I:00
$00/858B 4A LSR A A:4800 X:00A0 Y:0002 D:1800 DB:04 S:1C09 P:envmXdIzc HC:0536 VC:018 FC:05 I:00
$00/858C 4A LSR A A:2400 X:00A0 Y:0002 D:1800 DB:04 S:1C09 P:envmXdIzc HC:0598 VC:018 FC:05 I:00
$00/858D A0 04 LDY #$04 A:1200 X:00A0 Y:0002 D:1800 DB:04 S:1C09 P:envmXdIzc HC:0620 VC:018 FC:05 I:00
$00/858F 18 CLC A:1200 X:00A0 Y:0004 D:1800 DB:04 S:1C09 P:envmXdIzc HC:0644 VC:018 FC:05 I:00
$00/8590 77 C0 ADC [$C0],y[$7E:3524] A:1200 X:00A0 Y:0004 D:1800 DB:04 S:1C09 P:envmXdIzc HC:0690 VC:018 FC:05 I:00
Vậy game sẽ nạp từ 4A0B2 trước : value 90 rồi mới tới 4A0B1: 88 , rồi 4A0B0 : 78.
Vậy vùng offset
220B0 sẽ bắt đầu qui định các chỉ số cơ bản ban đầu của Tsubasa. Bây giờ tiến hành thay đổi chỉ số cơ bản. Do chỉ số hiện ra trên màn hình game x8 rồi đổi sang số Hex mới ra số qui định trong Rom. Nên ứng với FF (255) ta có 255 / 8 = 31. (Bởi vì 32 x 8 = 256 vượt 255).
Kết luận chỉ số cơ bản tối đa mà ta có thể chỉnh được trong Rom là FF, nhưng áp vào game thì là 31.
Thử thay 78 88 90 bằng FF FF FF tại 220B0. Reload game và kiểm tra :
Tương tự cho các chỉ số còn lại của Tsubasa. Max sẽ là 31 trong game.
Muốn chỉnh cho các cầu thủ khác thì cũng kết hợp dãy chỉ số trong game x8 và ghi log để chỉnh sửa.
- Chỉ số thể lực:
Chỉ sổ thể lực của Tsubasa trong phần Kick Off khá dễ tìm. Nhận xét nó là số 600 đầu tiên xuất hiện (cả đội Sao Paulo chỉ có Tsubasa có thể lực 600), các chỉ số 600 còn lại là của phần All Stars.
Đổi 600 qua Hex được 0258. Để tìm trong rom thì đảo ngược lại là 5802. Vào rom và search chuỗi hex 5802.
Ta có :
23D22 : 58 02
Có 9999 = 270F. Đảo ngược thành 0F27 và thay vào vị trí : 23D22.
Reload game vào lại phần kick off trận 1. Ta có :
Các cầu thủ xung quanh có thể lực 408 = 0198 => đảo ngược là 9801, vậy tìm 9801 xung quanh khu vực 23D22 để thay đổi.
Lưu ý :
Sửa chỉ số ở đây chỉ tác động ở phần Kick Off, khi ở các trận sau, chỉ số thể lực còn bị tác động bởi tăng level nên sẽ bị trả về giá trị 6xx.
Chuyển sang chỉnh chỉ số thể lực cho các cầu thủ All Star. Từ vị trí lúc nãy của Tsubasa (Kick Off). Search tiếp value 5802. Ta có :
2530E : 5802 =>thay bằng 0F27.
Reload game và kiểm tra lại phần All Star ta có :
Để ý, tại 2530E, sau khi thay 0F 27, ở vị trí kế tiếp là 60 02 => 260 = 608. Đây là chỉ số thể lực cho các cầu thủ All Stars tại level tiếp theo. Cứ tiếp tục cho đến : 2537C : D403 -> 3D4 = 980. Với 980 là chỉ số thể lực max.
Kết luận, để chỉnh chỉ số Thể lực 9999 cho toàn bộ các level của các cầu thủ All Stars:
2350E -> 2537C : thay từng cặp 2 giá trị thành cặp 0F27.