Hỏi về cấu trúc và cấp phát bộ nhớ của trình giả lập?

Mình đang dùng trình giả lập để tìm hiểu về cấu trúc bộ nhớ khi trình chạy game so với máy thật. Khi chạy trình giả lập sau đó chọn file ROM để load game. Sau đó dùng Cheat Engine để theo dõi.
Các trình giả lập này thường có chức năng cheat mà mã cheat thường là Game Genie Codes. Theo như mình nghĩ chắc nó cũng là một giá trị địa chỉ của ô nhớ trong trình giả lập thôi. Nhưng cái hay là giá trị này nó không bị thay đổi sau mỗi lần nạp game.

Vậy cho mình hỏi là có cách nào để chuyển đổi giá trị địa chỉ code game này về giá trị địa chỉ ô nhớ trong trình giả lập để cheat bằng Cheat Engine không ?

1 Like

Hi Quan.

  1. Nếu bạn không chuyên về lập trình thì cái này khá kho để giải thích. Cơ bản là mỗi trình giả lập họ tao ra một cái máy ảo gồm ram, thanh ghi, tập lệnh v.v.v… khi load rom thì thực tế là load dữ liệu và đọc các lệnh trong đó để thực thi.
  2. Nhưng vấn đề ở chỗ vì là xây dựng lại cấu trúc nên nó không thống nhất mỗi trình giả lập có cách quản lý riêng nên bạn cần phải xem họ cấu trúc bộ nhớ như nào load ảnh vào vùng nào, tập lệnh vào đâu v.v.v…

P/S Nếu thích bạn có thể tự tạo một cái cho mình.

2 Likes

Nhưng nếu chỉ dùng một trình giả lập thì có mối tương quan nào cố định giữa các lần nạp rom không.
Tức là nếu địa chỉ của trình giả lập là x thì có thể rom được nạp vào offset cố định so với x. Tất nhiên là giữa các lần chạy x có thể thay đổi.

Lúc trước mình có dùng Cheat Engine để lấy toàn bộ thẻ bài trong Yu Gi Oh Forbbiden Memories trên giả lập ePSXe. Địa chỉ cũng không thay đổi khi chạy lại, quét giá trị bình thường.

Có lẽ phần bộ nhớ cấp phát cho rom là cố định về vị trí. Có thể kích thước cũng cố định.

1 Like

Hay quá bác, bác có hướng dẫn tìm giá trị không bác. vì em thì trước nay chỉ cheat được giá trị là con số thôi, còn những giá trị bé như thẻ bài không rõ là nó lưu trong chương trình kiểu gì.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?