[SFC]Vọc Tsubasa III

Mã:
Register 2121
Mình có thử dò tìm log theo $2121 nhưng thấy phức tạp quá, không biết phải tìm thế nào. Ví dụ trường hợp muốn tìm offset trong Rom chứa màu tóc của Tsubasa (Sao Paulo) chẳng hạn. Bác có thể hướng dẫn qua ví dụ không ? :D
 
Tiếp tục phần trên, lần này giới thiệu thêm một hướng khác để chỉnh sửa màu sắc đồng phục của các đội dựa trên một bảng value đã được tìm sẵn. Nếu như ở phần trước việc thay các value qui định màu trực tiếp trong Palette phức tạp hơn nhưng dễ dàng thay được các màu sắc mong muốn không theo màu mặc định của game, thì ở phần này, dựa trên bảng value có sẵn, có thể thay được các màu đồng phục của các đội khác nhau theo qui định của game. Có thể xem chỉnh sửa bảng Palette là chỉnh sửa ở tầng dưới cùng thì chỉnh theo bảng value ở phần này là chỉnh ở tầng trên cao hơn (đơn giản hơn nhưng phạm vi tác động không bằng được). Phần này mang tính giới thiệu nên mình không đi sâu, vì về cơ bản chỉnh Palatte xong là chỉnh được tất cả màu sắc trong game.
Mã:
1A732 to 1A74C : qui định màu đồng phục cho các đội của Player 1 Kick Off.
01 = Sao Paulo
03 = Elysees
05 = Mexico
07 = Berkshire
09 = Hamburg
0A hoặc 0B = Japan Blue
0C hoặc 0D = Japan Red
------
1A74E to 1A776  : qui định màu đồng phục cho các đội Enemy của Kick Off

0E = Corinthians
0F = Marseile
10 = Monterrey
11 = Gremio
12 = Manchester
13 = Bayern
14 = Flamengo
... thứ tự tăng dần cho tới 20
Các value tại 2 vùng offset này chủ yếu chỉ tác động lên các cầu thủ / các đội xếp vào loại "không quan trọng". Ví dụ trong đội Sao Paulo các cầu thủ này là No. 2, No. 3 hoặc No. 9, No. 11 sẽ bị tác động khi thay đổi vùng value này. Còn các cầu thủ như : Tsubasa, No.4 No.5 (2 hậu vệ của Brazil), No.8 (của Argentina) sẽ không bị thay đổi ở đây. Các cầu thủ này cần phải ghi log riêng và tìm vùng Lo Rom qui định màu đồng phục (dựa trên các value ở trên).
Ví dụ : tại 1A732 thay giá trị để đổi đồng phục của Sao Paulo thành màu đồng phục của Japan Red. Thay 01 00 thành 0C 00. Vào lại game và kiểm tra các cầu thủ "không quan trọng", ví dụ No. 9 Gil ta được :
co1.jpg

Cuối post này mình cung cấp thêm một bảng value màu đồng phục khác thông qua các hình chụp, tên các file hình sẽ là con số mã hex cần thay. Ví dụ 56.jpg .
Nguồn : captainmajed.com
56.jpg
Thì sẽ thay 56 vào vùng offset cần thay ở trên, ví dụ tại 1A732 thay 01 00 thành 56 00 ta được (xét Gil No.9)
co2.jpg

Link - nguồn captainmajed.com
Mã:
http://www.fshare.vn/file/1TTAQLJJTALV
 
Chỉnh sửa cuối:
Kết thúc phần 2.1 bằng một ví dụ minh họa cách thực hiện để có được một bản hack giống như link youtube như sau : South Korea vs Urugoay
Mã:
Hiệp 1 :
https://www.youtube.com/watch?v=orxTVyheD5Q
Hiệp 2 :
https://www.youtube.com/watch?v=icsLqskcKmA
Nhận xét clip :
- Phần nhạc nền của Korea team : phần music này mình sẽ trình bày ở phần 3 (nếu có thể) sau khi kết thúc phần 2. Ở đây không xét phần nhạc nền của Korea.
- Chỉnh Level cho Korea team : có nhiều cách chỉnh Ram hoặc chỉnh theo phần cuối của Phần 1 đã trình bày ở trên (Level 46). Ở đây không xét phần Level của Korea.
------------------------
- Khi vào trận tại meeting là hình ảnh Coach All Japan, sau đó là hình chụp cả đội All Japan (thay màu đồng phục của Korea), ở meeting giữa trận là hình ảnh của cô áo vàng All Japan. Ở trong trận, dữ liệu của đội Urugoay không thay đổi (về cầu thủ, cú sút, avatar/close up của Victorino No.11).
Vậy kết luận bản hack này đã thay đổi các cầu thủ của Korea vào cho đội Japan tại trận Japan vs Urugoay gốc. Các skill của No.9 và No.10 của Korea không có phần avatar/closeup nên sẽ không gây lỗi hình nền đen.
- Thay đổi lá cờ (flag) của All Japan + tên All Japan thành của Korea
- Thay đổi màu đồng phục của All Japan Blue thành của Korea
- Thay thế GK của Korea thành Morisaki và đổi màu đồng phục của Morisaki thành màu của GK Korea tại màn hình Closeup/Avatar và trong trận (lúc chặn bóng).
Lưu ý : cũng như hầu hết các bản hack trên Internet / Youtube. Các chỉnh sửa ở đây chỉ áp dụng được cho trận đấu Japan vs Urugoay gốc (để phục vụ việc up lên Youtube), nên các tác động sau đó từ các chỉnh sửa này sẽ không được quan tâm (ví dụ dữ liệu màu sắc đồng phục cũng như cầu thủ của All Japan Blue các trận sau sẽ bị đổi).
Ở đây mình sẽ sử dụng các vùng offset cần thiết cho việc chỉnh sửa đã cung cấp ở phần trước (Post #78 và #79).
Để có được trận Japan Blue vs Urugoay thì hoặc là đá Kick Off cho tới trận đó (Continue), hoặc là chỉnh cheat Ram : 7E0400 0A sau đó chọn vào Kick Off để ra được trận Japan vs Urugoay.


Do bản rom Việt ngữ của bác asm65816 đã thay đổi vị trí hiện text của chuỗi (All Japan) tại màn hình có 2 lá cờ vs trước khi vào trận nên mình sẽ dùng Rom gốc tiếng Nhật để thực hiện chỉnh sửa.
---------------------------------------------------------------------------------------------------
* So sánh màn hình lá cờ vs :
Rom gốc :
JapvsU1.jpg
Rom hack :
KvsU1.jpg
Ở bản hack, flag Korea và tên team thay cho Japan, flag Urugoay có sự thay đổi so với flag gốc của Urugoay.
 
Chỉnh sửa cuối:
Ủa vậy muốn thêm Ray Hino vô team Uru có đc ko thím
 
Ủa vậy muốn thêm Ray Hino vô team Uru có đc ko thím
theo mình thấy thì thay Hino vào Victorino thì đc, còn ko thì vô dụng vì mọi đường bóng Uruguay đều tập trung vào anh này. Tất cả đội bóng của COM đều đá theo mặc định sẵn ko như mình muốn.
 
theo mình thấy thì thay Hino vào Victorino thì đc, còn ko thì vô dụng vì mọi đường bóng Uruguay đều tập trung vào anh này. Tất cả đội bóng của COM đều đá theo mặc định sẵn ko như mình muốn.
cái đó xử lý đơn giản mà cơ bản là muốn mod thêm cầu thủ cơ
 
Ủa vậy muốn thêm Ray Hino vô team Uru có đc ko thím
Được. Sau đó chỉ cần phải xử lý phần "hình ảnh đen" avatar/closeup khi dùng skill của các cầu thủ thay vào thôi.

@ ImLucy : cái đó có lẽ liên quan tới phần "Behavior" , Tsubasa 3 kế thừa từ Tsubasa 2 nên có thể tham khảo của Tsubasa 2. Phần này mình không có thời gian nghiên cứu. :D
Mã:
http://www.freewebs.com/kaslghnoon/codes.htm
 
Tranh thủ cuối năm có thời gian, mình post nốt để kết thúc phần ví dụ chỉnh S.Korea vs Urugoay này.
Đầu tiên là danh sách các trận đấu Kick Off của Tsubasa 3. Nguồn gamefaqs.com
Mã:
Address: 7E0400

Values:
00 São Paulo vs. Corinthians
01 Campos Elíseos vs. Marsella
02 Ciudad de México vs. Monterrey
03 São Paulo vs. Grêmio
04 Yorkshire vs. Manchester
05 Hamburgo vs. Bayern Munich
06 São Paulo vs. Flamengo
07 Japón vs. Holanda
08 Japón vs. Francia
09 Japón vs. EE. UU.
0A Japón vs. Uruguay
0B Japón vs. Bélgica
0C Japón vs. Corea del Sur
0D Japón vs. China
0E Japón vs. Inglaterra
0F Japón vs. EE. UU.
10 Japón vs. Italia
11 Japón vs. Argentina
12 Japón vs. Francia
13 Japón vs. Brasil
14 Japón vs. Alemania
Trong ví dụ, người này đã chọn trận Japan vs Urugoay để chỉnh sửa.
Đầu tiên là chỉnh sửa giao diện tại màn hình có lá cờ 2 team vs.

- Flag Shape : Shape Japan thành Shape S.Korea :
Goto offset : 25474 thay D4 D4 ==> 34 D5
Kết quả :
uru1.jpg

- Flag Palette : thay màu sắc lại cho khớp :
Goto offset : 2559C : thay D8 D5 ===> B4 D5
Kết quả :
uru2.jpg

- Đổi team name : đổi dòng All Japan (chữ Nhật) thành S.Korea :
Goto offset : 13D0 : thay 4A 94 ====> D5 94
Kết quả :
uru3.jpg

Đến đây đã xong phần giao diện 2 team VS giống với trong Clip Hack.
 
Tiếp theo là màn hình Meeting.
Các chỉnh sửa của tác giả clip hack bao gồm các mục sau :
- Thay toàn bộ cầu thủ S. Korea vào cho cầu thủ của Japan (4) ngoại trừ thủ môn. Các cầu thủ dự bị của Japan (4) thì để trống (xóa tên).
- Thủ môn mặc định là Ken, thay Morisaki vào cho Ken và sửa tên Morisaki thành tên của thủ môn đội S.Korea (Han).
- Tsubasa sẽ thay thành No.10 của S.Korea (Kim). Hyuga sẽ thay thành No.9 của S.Korea (Cha/Sha).

---------------------------------------------------------------------
Sử dụng offset và code đã cung cấp tại post #78 tiến hành chỉnh như sau :
Japan (4)
- Goto offset : 2197F cho tới 219C3
Trong đó mỗi cầu thủ chiếm 3 value hex. 11 cầu thủ chính sẽ thuộc dãy offset từ : 2197F --> 2199F

Tại : 2197F -> 21981 : 01 00 22 là của Ken, thay 01 00 22 thành 03 00 0F của Morisaki.
Tại 21982 ---> 2199F : là value của các cầu thủ Japan (4) từ No.2 cho tới No.11

Chuỗi offset của S.Korea đi từ 21C9C----->21CBC : trong đó No.2 đến No.11 là từ : 21C9F ---> 21CBC
Tiến hành thay toàn bộ value từ 21C9F ---> 21CBC vào cho các value của dãy trên : 21982 ---> 2199F

Chuỗi offset của các cầu thủ dự bị (bench) của Japan (4) : đi từ 219A0 ---> 219C3 : Fill các value thành 00 (hex) để xóa các vị trí này.

Cuối cùng là đổi tên Morisaki tại vị trí thủ môn chính thành tên Han (GK S.Korea) :
Mã:
Morisaki  = xC4D - $8C4D : 0C 8D
GK Korea name = xF7B - $8F7B : E2 92
Goto offset : C4D : thay 0C 8D ====> E2 92

Kết quả cuối cùng :

uru4.jpg


Lưu ý :
- Các cầu thủ ở phần bench đã bị xóa đi, nhung vẫn chọn được.
- Ở đây dùng cheat 7E0400 0A để chỉnh tới trận Japan (4) vs Urugoay nên Level đang ở khởi đầu (Level 1). Trường hợp nếu file hack này đang có trận Continue Japan (4) vs Urugoay thì khoảng Level sẽ tầm Level 3x với các cầu thủ Japan (4).
Nhưng khi chuyển toàn bộ cầu thủ S.Korea vào Japan (4) thì No. 10 và No.9 sẽ bị reset về level 1, không còn giữ mức Level hiện tại của cả team. Tại đây sẽ tiến hành chỉnh Level của No.9 và No.10 lên cho hợp lý -- sẽ không đề cập ở phần hack đồ họa này.
---------------------------------------------------------------------

Tiếp theo là chỉnh đồng phục của Blue Japan tại màn hình chụp cả đội về thành đồng phục của S.Korea : Palette Team Readiness.
Default Blue Japan :
uru5.jpg

Goto offset D 5022 : thay 84 ===> 1A
Kết quả :

uru6.jpg

Đến đây đã giống với clip hack cho tới phần Meeting.
 
Chỉnh sửa cuối:
Tiếp tục là Palette màu cho Blue Japan (4) thành S.Korea trong trận đấu.
- Cho cả đội : màn hình có trọng tài và trong trận (chưa thay đổi được Morisaki / Han):
Goto offset 1A742 : thay 0A ==> 1A (Blue Japan (4))
Kết quả :

uru7.jpg

uru8.jpg

uru9.png
- Cho cả đội : màn hình khi các cầu thủ đối đầu nhau (chưa thay đổi được Morisaki / Han):
Goto offset 1F2EC : thay 0A ==> 1A (Blue Japan (4))

uru10.jpg

--- Cho riêng thủ môn Han (Morisaki) : (xem lại code ở #78)
- Màn hình trọng tài và trong trận :
Goto offset : 1 A443 thay 26 ====> 35
Kết quả :

uru11.png

uru12.png

uru13.png

- Màn hình closeup / avatar của Han / Morisaki
Mã:
Change x374e6 to D4 11 FF 26
Change of x374f0 64 to 70 7D
Change to 7D 01 5F 1 x374f4

Goto offset:
374E6 : thay 1B 26 DF 46 ====> D4 11 FF 26
374F0 : thay 64 08 C7 10 ====> 70 7D AA 64
374F4 : thay 25 09 EA 21 ====> 7D 01 5F 1E

Kết quả :

uru14.png


Tồn đọng : tại màn hình avatar/closeup của Han/Morisaki vẫn còn viền tay áo màu trắng, có thể áp dụng cách chỉnh màu bằng Palette theo như Post trước để có màu cam giống như clip hack.
 
Chỉnh sửa cuối:
Đến đây chỉ còn 1 tồn đọng cuối là hình ảnh các cầu thủ lúc ăn mừng bàn thắng.
Default Japan Blue (4)

uru15.png

Thay các value như sau :

3 cầu thủ bên trái hình :
Goto offset : C EF68 : thay 0A ====> 1A

Cầu thủ No.9 (Hyuga/Sha/Cha) :
Goto offset : D 163A : thay 0A ====> 1A
Goto offset : C EF66 : thay 0B ====> 1A

Kết quả :

uru16.png


Done. Mình kết thúc ví dụ này ở đây.
 
Gửi bạn ozone và bác asm.
Mình có đọc bài hướng dẫn của 2 người khá kỹ và cũng có hiểu đôi chút, tuy nhiên mình lại thích CT2 phiên bản Nes hơn. Nhưng có điều này mình muốn hỏi 2 người.
Là nếu muốn đọc file log của hệ Nes thì cần dùng phần mềm nào, 2 người giúp mình nha
 
Gửi bạn ozone và bác asm.
Mình có đọc bài hướng dẫn của 2 người khá kỹ và cũng có hiểu đôi chút, tuy nhiên mình lại thích CT2 phiên bản Nes hơn. Nhưng có điều này mình muốn hỏi 2 người.
Là nếu muốn đọc file log của hệ Nes thì cần dùng phần mềm nào, 2 người giúp mình nha

Bạn dùng FCEUX, Nes debugger.
Nes dùng chip 6502, bản đơn giản hơn của chip 65816.
 
Cảm ơn bác asm, e sẽ nghiên cứu thêm ạ :))))
 
1. Một số chỉnh sửa linh tinh - tạm gọi là hack rom cũng được
1.1 Thủ môn angry (hú, hét, ....) :
Ngày xưa lúc thời các game snes còn thịnh hành, có lưu truyền một bản rom game Tsubasa 3 các thủ môn chính "Angry" 100% khi chặn các cú sút. Dẫn đến sẽ khó hơn khi muốn ghi bàn.

Ở một số trướng hợp, khi thực hiện Catch / Punch, các thủ môn (không phải tất cả) sẽ thực hiện một hành động tạm gọi là angry. Sau đó có thể nhận thấy khả năng chặn bóng của thủ môn tăng lên (chỉ tính trong lần sút đó). Đặc biệt khi "angry", Ken sẽ có khả năng thực hiện skill ẩn "Shuto" , là skill có khả năng phá được mọi cú sút.
View attachment 202428

Nhận xét là việc thực hiện "Angry" này diễn ra theo tỉ lệ. Đầu tiên thử tìm giá trị trong Ram qui định việc này. Để chuẩn bị, ta tận dụng khả năng save state nhiều slot của snes9x.
Đầu tiên save vài slot state ở trạng thái chuẩn bị chọn Catch/Punch của một số thủ môn (chọn phần All Star cho đơn giản vì 5 thủ môn của All Star để có khả năng "Angry"). Tiếp đến cố gắng reload các save state này để các thủ môn đạt trạng thái kích hoạt "Angry" và Save các State này (trong tình trạng như hình bên trên). Ngoài ra là Save thêm một số State trong trường hợp không diễn ra "Angry" mà chuyển sang hình ảnh tiếp theo của trái bóng bay đi (save state cũng ngay thời điểm đó).
Thực hiện tìm value ram (cheat) bằng cách bắt đầu với load state tại thời điểm "Angry" giống hình trên.
Tiếp theo Alt+A để search all value. Quay lại game và thực hiện load 1 State khác và lại Alt+A để Search tiếp, tuỳ vào vừa rồi load state nào để chọn cách search cho phù hợp. Nếu state vừa load cũng là hình ảnh lúc "Angry" thì chọn : Comparison type : = (Equal To) ---- Compare To : Previous Value và chọn Search để Filter (lọc) bớt các vùng nhớ mang giá trị khác với trước đó. Nếu state vừa load là hình ảnh không có kích hoạt "Angry" mà chuyển sang hình ảnh bóng bay đi thì phần Comparison Type : =! (Not Equal To) và Search để Filter bớt các vùng nhớ không thoả điều kiện mang value khác với State trước đó.
Tiếp tục load các State khác nhau và chọn kiểu Comparison Type cho phù hợp rồi Search để lọc hết các vùng nhớ không liên quan.
Sau cùng, khi còn 1 vài vùng nhớ còn sót lại, ta có thể tiến hành "freeze" các vùng nhớ này rồi Load State về trạng thái chuẩn bị chọn Catch/Punch để thử nghiệm.
Cuối cùng tìm được vùng nhớ Ram sau : 7E040A , tại thời điểm kích hoạt "Angry" , vùng nhớ này có giá trị 80.
Thử giữ nguyên (freeze) vùng nhớ này với giá trị 80 và tiếp tục chơi. Sẽ có thêm hiệu ứng khác khi vùng nhớ 7E040A có giá trị 80 : Kyo Retsuna Tackle.
View attachment 202429

Quay trở lại với phần "Angry". Với vùng nhớ Ram 7E040A (lưu ý ở đây phải xóa hết các phần add cheat trước đó đi để không ảnh hưởng tới việc ghi log CPU) ta tiến hành ghi log.
Trước hết load State về lại trạng thái một thủ môn nào đó đang chuẩn bị chọn Catch/Punch. Đặt 1 Break Point : 7E040A - Write. Sau đó check CPU (Logging) và thực hiện thao tác chọn Catch/Punch (giả sử ở đây đang sử dụng thủ môn Muller). Break Point sẽ được kích hoạt, có 2 trường hợp :
- Không kích hoạt được trạng thái "Angry" - thường gặp, do tỉ lệ kích hoạt trạng thái này rất thấp. Khi đó sẽ có log :
Mã:
$01/D4E3 9C 0A 04  STZ $040A  [$01:040A]  A:0080 X:0000 Y:000B
Chưa đủ thông tin cần thiết để có thể tìm trạng thái "Angry" trong Rom game. Có thể vào folder Logs trong folder Snes9x để xóa bớt các file .log không cần thiết.
Tiếp tục reload và lặp lại thao tác này (ở đây cần sự kiên nhẫn 1 chút).

Ở đây, bản snes9x debugger mình dùng có 1 số nhược điểm : mỗi lần load State phải check lại mục Break Point ; Mục Break Point không cho nhập thêm phần value của vùng nhớ Ram ; Mỗi khi ghi log thì tạo 1 file log mới, không phù hợp trong điều kiện ta cần ghi log khi phải reload state liên tục để trạng thái "Angry" kích hoạt.
Các điểm trên nếu ai biết cách khắc phục hoặc biết phiên bản mới hơn của snes9x khắc phục được thì xin chỉ giúp :D

Tạm thời mình chuyển sang dùng bsnes debugger. Đầu tiên là thiết lập các nút bấm, các phím tắt cho việc Save State, Load State được thuận tiện. Sau đó cũng Save State tại vị trí thủ môn chuẩn bị chọn Catch/Punch. Ở đây cũng chọn Muller làm ví dụ.
Tiếp theo chọn Tools > Debugger. Trên cửa sổ Debugger tiếp tục chọn Tools > Break Point Editor và chọn như sau :
View attachment 202431
Có thể thấy ở đây cho phép tạo BreakPoint cho vùng nhớ 7E040A có giá trị 80 Write.
Tiếp theo, quay lại cửa sổ và check vào "Trace S-CPU opcode" để bắt đầu ghi log. Quay lại cửa sổ game và cho Muller thực hiện Catch hoặc Punch. Nếu không kích hoạt trạng thái "Angry" thì bỏ check "Trace S-CPU opcode" để kết thúc ghi log. Sau đó reload state để tiếp tục lại. Trình bsnes debugger chỉ lưu lại thành 1 file trace.log duy nhấtrong folder của bsnes debugger.

- Khi kích hoạt được trạng thái "Angry" : BreakPoint được kích hoạt và dừng game lại. Bỏ check Trace S-CPU opcode để kết thúc ghi log. Edit file trace.log trong folder của bsness debugger ta có : (file log của bsnes debugger trình bày không được rõ ràng như của snes9x nhưng nếu đã quen nhìn file log thì cũng phải là vấn đề lớn).
Đi tới cuối file trace.log này , cuối cùng sẽ là dòng opcode nơi break point được kích hoạt (7E0471 có giá trị 80 hex) :
Mã:
02c6c2 sta $040a  [02040a] A:be80 X:0000 Y:0002
Lệnh thực hiện lưu giá trị trong A (80) vào vùng nhớ 02040A (7E040A).
Đi tiếp lên trên 1 chút trong file log là các xử lý sau :
Mã:
02c675 lda [$c0],y  [7e3401] A:3400 X:0018 Y:0001 S:1c34 D:0a00 DB:02 nvMXdIzc V:  8 H:1218
02c677 cmp #$20  A:3448 X:0018 Y:0001 S:1c34 D:0a00 DB:02 nvMXdIzc V:  8 H:1266
02c679 bne $c67f  [02c67f] A:3448 X:0018 Y:0001 S:1c34 D:0a00 DB:02 nvMXdIzC V:  8 H:1282
02c67f lda $050f  [02050f] A:3448 X:0018 Y:0001 S:1c34 D:0a00 DB:02 nvMXdIzC V:  8 H:1304
Lệnh trên thực hiện load vùng nhớ 7E3401 (vị trí thủ môn đội mình) sẽ được giá trị 48 hex (Muller). Tiếp theo là so sánh với 20 hex (Genzo), nếu không phải là Genzo thì nhảy tới vùng 02C67F để xử lý tiếp. Tại đây có thể suy ra có 2 phần xử lý "Angry": 1 cho Wakabayashi (Genzo) và 1 cho các thủ môn còn lại (không phải tất cả thủ môn).
Di chuyển lên 1 chút nữa là phần xử lý Sub Routine. Lên trên nữa là 1 đoạn xử lý trước khi nhảy vào Sub Routine vừa rồi.
Mã:
02c661 sep #$30  A:1e00 X:0018 Y:0000 S:1c34 D:0a00 DB:02 nvmXdIZc V:  8 H: 390
02c663 lda #$08  A:1e00 X:0018 Y:0000 S:1c34 D:0a00 DB:02 nvMXdIZc V:  8 H: 412
02c665 sta $40  [000a40] A:1e08 X:0018 Y:0000 S:1c34 D:0a00 DB:02 nvMXdIzc V:  8 H: 428
02c667 lda $0408  [020408] A:1e08 X:0018 Y:0000 S:1c34 D:0a00 DB:02 nvMXdIzc V:  8 H: 452
02c66a jsl $00ff29  [00ff29] A:1e00 X:0018 Y:0000 S:1c34 D:0a00 DB:02 nvMXdIZc V:  8 H: 484
Ở đây ta có dòng xử lý :
Mã:
02c663 lda #$08  A:1e00 X:0018 Y:0000
Lệnh này thực hiện nạp giá trị 08 hex vào A. Đây là con số thể hiện tỉ lệ % để xuất hiện xử lý "Angry" của các thủ môn chủ yếu (ngoại trừ Genzo).
Tỉ lệ này = 08 hex / FF hex (8 / 255) = 0.03 = 3%. Vậy tỉ lệ để xuất hiện đoạn xử lý "Angry" cho các thủ môn là 3% khi thực hiện chặn bóng (catch/punch).
Để chỉnh tỉ lệ "Angry" này lên 100%. Đầu tiên chuyển địa chỉ LoRom 02C663 bằng Lunar Address ra địa chỉ Offset trong file rom là 1 4663.
Mở rom game bằng Hex Editor và Goto offset 1 4663 ta có :
View attachment 202433
A9 08 trong đó A9 là lệnh LDA và 08 là giá trị hex (lda #08). Để chuyển thành tỉ lệ 100% thì thay 08 = FF (max 1 byte). Code trên trở thành A9 FF.
Reload lại game và test lại với các thủ môn chính.

Với Wakabayashi (Genzo). Cũng thực hiện lấy log tương tự như trên với bsnes debugger (có thể dùng snes9x debugger). Khi Genzo thực hiện "Angry" và ghi lại log, ta có nội dung log như sau (di chuyển tới cuối file log).
Mã:
02c6c0 ora #$80  A:be00 X:0000 Y:0001 S:1c34 D:0a00 DB:02 nvMXdIZc V:  9 H: 648
02c6c2 sta $040a  [02040a] A:be80 X:0000 Y:0001 S:1c34 D:0a00 DB:02 NvMXdIzc V:  9 H: 664
Lưu trữ giá trị 80 vào vùng nhớ 7E040A.
Đi lên tiếp ta có đoạn code xử lý :
Mã:
02c675 lda [$c0],y  [7e3401] A:3400 X:000c Y:0001  // load giá trị từ 7E3401 để kiểm tra thủ môn đội mình
02c677 cmp #$20  A:3420 X:000c Y:0001 // so sánh với 20 xem có phải là Genzo
02c679 bne $c67f  [02c67f] A:3420 X:000c Y:0001 //nếu không phải Genzo thì nhảy tới xử lý ở 02C67F ở dưới
02c67b lda #$10  A:3420 X:000c Y:0001 //nạp vào A giá trị tỉ lệ xuất hiện "Angry" của Genzo
02c67d sta $40  [000a40] A:3410 X:000c Y:0001 // lưu giá trị này vào vùng nhớ 7E0A40
02c67f lda $050f  [02050f] A:3410 X:000c Y:0001
Ở đây ta có đoạn : 02C67B LDA #10 là đoạn nạp giá trị tỉ lệ ra "Angry" của Genzo. Cũng thực hiện như trên, Goto 1 467B (02C67B) : A9 10. Thay thành A9 FF. 10 hex = 16 , tỉ lệ của Genzo thực hiện "Angry" là 6% (16/255).
Reload lại file rom game và kiểm tra lại xem Genzo có thực hiện "Angry" 100% ở các lần Catch/Punch.

Kết luận : để chỉnh tỉ lệ "Angry" 100% cho các thủ môn thì thực hiện chỉnh trong filre rom game như sau :
Goto 14663 : thay thành A9 FF.
Goto 1467B : thay thành A9 FF.

Một số thủ môn đã test được có thực hiện xử lý "Angry" : Renato (Sao Paulo), Morisaki, Wakashimazu, Wakabayashi, Gertize, Muller, Hernandez.

Có bác nào biết chỉnh cái này với CT5 không nhỉ? Bởi CT5 không tận dụng save state được.
 
CT5 thấy phần điều khiển cũng khá giống như các phần trước. Vẫn save / slot state bình thường. Có điều tôi có thử lại (game mới vào chưa có gì hết) với Genzo nhưng không thấy cảnh "Angry" như ở CT2, 3, 4. Không biết do nó rất khó ra hay đã bị bỏ (cái Counter Shot rất hiếm nhưng youtube vẫn có clip). Bạn có link hay clip hay hình ảnh nào của các đoạn "Angry" GK CT5 không ?
 
CT5 thấy phần điều khiển cũng khá giống như các phần trước. Vẫn save / slot state bình thường. Có điều tôi có thử lại (game mới vào chưa có gì hết) với Genzo nhưng không thấy cảnh "Angry" như ở CT2, 3, 4. Không biết do nó rất khó ra hay đã bị bỏ (cái Counter Shot rất hiếm nhưng youtube vẫn có clip). Bạn có link hay clip hay hình ảnh nào của các đoạn "Angry" GK CT5 không ?

CT5 phải sút tuyệt chiêu mới có thể thấy cảnh "angry", và có vẻ chỉ 1 vài thủ môn là thể hiện rõ điều này (Wakabayashi, Wakashimazu, Morisaki, Muller chắc chắn có, chưa rõ về Savicevic, Hernandez, Gertise, Vamora, Dolman và Bruno). Và game này thì không save/load state liên tục để ra "angry" sau khi đối phương sút như các game trước được, nếu có thì load lại vẫn có, nếu không thì load 100 lần vẫn không. Tạm thời mình chưa có hình ảnh hay clip.
 
CT5 phải sút tuyệt chiêu mới có thể thấy cảnh "angry", và có vẻ chỉ 1 vài thủ môn là thể hiện rõ điều này (Wakabayashi, Wakashimazu, Morisaki, Muller chắc chắn có, chưa rõ về Savicevic, Hernandez, Gertise, Vamora, Dolman và Bruno). Và game này thì không save/load state liên tục để ra "angry" sau khi đối phương sút như các game trước được, nếu có thì load lại vẫn có, nếu không thì load 100 lần vẫn không. Tạm thời mình chưa có hình ảnh hay clip.

Save load lại bao lần cũng vậy chứng tỏ là "hạt giống" tạo số ngẫu nhiên đã được quyết định trước lúc bạn save rồi. Thử save trước đó một ít thử xem. Và tham khảo bài số ngẫu nhiên dưới đây.

http://yugisokubodai.blogspot.com/2017/04/RN.html
 
Back
Top