ProjectArcade

Форк
0
28 строк · 1.3 Кб
1
# RX4PMT - Casper's Scare School: Spooky Sports Day
2

3
[OnFrame]
4
# Work around a dcache issue by preventing the game from doing something pointless.
5
#
6
# The game's DVD read function writes 0x87654321 to the entire read buffer and 0x12345678 to the
7
# last 4 bytes. It then calls DVDReadAsync() and without waiting for the read to complete at all,
8
# it checks if the last 4 bytes are still 0x12345678. If they are, then the game fails.
9
#
10
# The check always passes on console because DVDReadAsync() -> issueCommand() calls
11
# DCInvalidateRange() (dcbi) on the read buffer.
12
#
13
# Dolphin cannot emulate this without an extremely significant performance hit.
14
#
15
# .text:80164B8C lis       r7, game_dvd_read_callback@ha
16
# .text:80164B90 stw       r0, 0(r17) # write 0x12345678 to the end of the buffer
17
# .text:80164B94 mr        r5, read_length # length
18
# .text:80164B98 mr        r6, read_offset # offset
19
# .text:80164B9C addi      r3, this, file.file_info # file_info
20
# .text:80164BA0 subi      r4, r4, dvd_read_buf@l # addr
21
# .text:80164BA4 addi      r7, r7, game_dvd_read_callback@l # callback
22
# .text:80164BA8 li        r8, 2         # unknown
23
# .text:80164BAC bl        DVDReadAsync
24
#
25
$Fix file reads (dcache bypass)
26
0x80164b90:dword:0x60000000
27
[OnFrame_Enabled]
28
$Fix file reads (dcache bypass)
29

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.