Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HLE: Another DebugPrint case added #4301

Merged
merged 1 commit into from Oct 5, 2016
Merged

Conversation

sepalani
Copy link
Contributor

@sepalani sepalani commented Oct 4, 2016

I found another "___blank" function but with another prototype. Otherwise, the code is exactly the same. Furthermore, this function is located in memory right before the currently supported __blank functions and is also used to print debug messages.

Ready to be reviewed & merged.


This change is Reviewable

@shuffle2
Copy link
Contributor

shuffle2 commented Oct 5, 2016

@dolphin-emu-bot rebuild

@shuffle2 shuffle2 merged commit 44323c5 into dolphin-emu:master Oct 5, 2016
@shuffle2
Copy link
Contributor

shuffle2 commented Oct 5, 2016

@sepalani what is an example game to test this with?
do you need to do any patches to enable more logging?

@sepalani sepalani deleted the hle_log branch October 5, 2016 09:15
@sepalani
Copy link
Contributor Author

sepalani commented Oct 5, 2016

You can test this with Monster Hunter Tri. You'll need to go online and make it up to 20% for some messages to show up. Then the NAS connection have to succeed or fail (using or not altwfc server). The PAL's ___blank/nlPrintf location is at 0x80419018, JAP/US versions are normally detected.

This new case is located in memory near the actual ___blank and nlPrintf functions.

  • RMHJ08: 0x803f994c
  • RMHE08: 0x80418adc
  • RMHP08: 0x80418f70

You'll get messages such as:

NASLogin failed
NASLogin succeeded
ok to call PMICInit() -> %ld

The totaldb.dsy signature database is pretty inefficient to identify those functions, even though they are the same and are found multiple times. Well, there are tiny differences across localized versions ___blank <-> nlPrintf concerning function detection but in sum the inner code does the exact same job.

In order for them to appear in logs you'll have to use this PR and add ___blank in the generated symbol map manually (or remove other ___blank occurrences w/o that PR) due to the lack of auto-detection. Otherwise, it can be done by placing breakpoints and by checking registers manually.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
2 participants