Project

General

Profile

Actions

Emulator Issues #8037

open

1080 Snowboarding (VC N64) Requires Accurate icache emulation

Added by JMC4789 over 9 years ago. Updated over 2 years ago.

Status:
Accepted
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

Game Name?

1080 Snowboarding NAOE01, NAOJ01

What's the problem? Describe what went wrong in few words.

Without accurate icache emulation, the game will hang at startup

What did you expect to happen instead?

I expected it to play fine.

What steps will reproduce the problem?
[Don't assume we have ever played the game and know any level names. Be as
specific as possible.]
1.Have 1080 Snowboarding for VC
2.Attempt to boot it.
3.Look on in dismay as you find a game that relies on the icache being emulated, and despair.

Dolphin 3.5 and 3.5-367 are old versions of Dolphin that have
known issues and bugs, so don't report issues about them and test the
latest Dolphin version first.
Which versions of Dolphin did you test on?

4.0.2, 4.0-4875

Does using an older version of Dolphin solve your issue? If yes, which
versions of Dolphin used to work?

Nopers.

What are your PC specifications? (including, but not limited to: Operating
System, CPU and GPU)

Core i5 3570K, GTX 760, Windows 7 x64

Is there any other relevant information? (e.g. logs, screenshots,
configuration files)

Fiora's accurate icache emulation branch makes it work at the expense of the game running like 6 fps.


Files

RAM_NTEP (48 KB) RAM_NTEP Wii ytrezq, 08/01/2021 02:50 AM
1080 Snowboarding (E) (M4) [b1][f2] (NTSC).sra (32 KB) 1080 Snowboarding (E) (M4) [b1][f2] (NTSC).sra Emulator ytrezq, 08/01/2021 02:52 AM
Actions #1

Updated by JMC4789 over 6 years ago

  • Status changed from New to Accepted

Why is this not accepted.

Actions #2

Updated by ytrezq over 5 years ago

Well looks like the problem is about the handling code cache because it doesn’t work too with cached interpreter but works with uncached interpreter.

I tried to load a savestate and it appears the problem only occurs when not displaying 3D graphics (JIT mode works in that case) so it’s might be related to something special the emulator.

The fact it crashes on boot with JIT is only because the game doesn’t perform 3ᴅ rendering first. If not, it would crash later.

Anyway, here’s the log before when it crashes.

36:41:739 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00ad575c returned stale data: CACHED: 48a89185 vs. RAM: 4bff3ea4
36:41:838 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00fc14e0 returned stale data: CACHED: 4859d401 vs. RAM: 4bb20120
36:41:925 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00fc14e0 returned stale data: CACHED: 4859d401 vs. RAM: 4bb1a320
36:42:001 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00fc14e0 returned stale data: CACHED: 4859d401 vs. RAM: 4bb1a120
36:42:071 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00fc14e0 returned stale data: CACHED: 4859d401 vs. RAM: 4bb17720
36:42:136 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00fc14e0 returned stale data: CACHED: 4859d401 vs. RAM: 4bb1a320
36:42:267 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00fc14e0 returned stale data: CACHED: 4859d401 vs. RAM: 4bb18b20
36:42:311 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00af4898 returned stale data: CACHED: 48a6a049 vs. RAM: 48000168
36:42:314 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00af66f8 returned stale data: CACHED: 48a681e9 vs. RAM: 4bffff08
36:42:314 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00af66f8 returned stale data: CACHED: 48a681e9 vs. RAM: 4bffff08
36:42:336 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00afe330 returned stale data: CACHED: 48a605b1 vs. RAM: 480008d0
36:42:417 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00ad6884 returned stale data: CACHED: 48a8805d vs. RAM: 4800017c
36:42:702 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00af9ee0 returned stale data: CACHED: 48a64a01 vs. RAM: 48000520
36:42:783 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00ae76f4 returned stale data: CACHED: 48a771ed vs. RAM: 48003b0c
36:42:787 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00aec53c returned stale data: CACHED: 48a723a5 vs. RAM: 4bffeac4
36:42:793 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00aeed1c returned stale data: CACHED: 48a6fbc5 vs. RAM: 4bffaae4
36:42:794 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00aef084 returned stale data: CACHED: 48a6f85d vs. RAM: 4800017c
36:42:808 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00af05ec returned stale data: CACHED: 48a6e2f5 vs. RAM: 4bfff014
36:42:811 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00af139c returned stale data: CACHED: 48a6d545 vs. RAM: 48001064
36:42:812 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00af152c returned stale data: CACHED: 48a6d3b5 vs. RAM: 480014d4
36:42:836 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00af96e0 returned stale data: CACHED: 48a65201 vs. RAM: 4bfff720
36:42:979 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00b00730 returned stale data: CACHED: 48a5e1b1 vs. RAM: 480004d0
36:42:994 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00b004f0 returned stale data: CACHED: 48a5e3f1 vs. RAM: 48001710
36:43:175 core\powerpc\ppccache.cpp:156 I[PowerPC]: ICache read at 00b130c8 returned stale data: CACHED: 48a4b819 vs. RAM: 4bff2138
36:45:085 common\msghandler.cpp:92 E[MASTER]: Warning: Invalid read from 0x0112badc, PC = 0x80af7444
36:46:558 common\msghandler.cpp:92 E[MASTER]: Warning: Invalid read from 0x0112bacc, PC = 0x80af74fc
36:47:492 common\msghandler.cpp:92 E[MASTER]: Warning: Invalid read from 0x0112bad4, PC = 0x80b013a0
36:48:254 common\msghandler.cpp:92 E[MASTER]: Warning: Invalid read from 0x0112badc, PC = 0x80af7444
36:48:853 common\msghandler.cpp:92 E[MASTER]: Warning: Invalid read from 0x0112bacc, PC = 0x80af74fc
36:49:269 common\msghandler.cpp:92 E[MASTER]: Warning: Invalid read from 0x0112bae8, PC = 0x80b016c4
36:49:653 common\msghandler.cpp:92 E[MASTER]: Warning: Invalid read from 0x0112babc, PC = 0x80b01804
36:49:956 common\msghandler.cpp:92 E[MASTER]: Warning: Invalid read from 0x4990d947, PC = 0x80b02c2c
36:50:164 common\msghandler.cpp:92 E[MASTER]: Warning: Invalid read from 0x4990d949, PC = 0x80b02c5c
36:50:342 common\msghandler.cpp:92 E[MASTER]: Warning: Invalid read from 0x4990d94b, PC = 0x80b02c8c
36:50:525 common\msghandler.cpp:92 E[MASTER]: Warning: Invalid read from 0x0112ba60, PC = 0x80b02c2c
36:50:703 common\msghandler.cpp:92 E[MASTER]: Warning: Invalid read from 0x0112ba62, PC = 0x80b02c5c
36:50:903 common\msghandler.cpp:92 E[MASTER]: Warning: Invalid read from 0x0112ba64, PC = 0x80b02c8c
36:51:076 common\msghandler.cpp:92 E[MASTER]: Warning: Invalid read from 0x0112ba60, PC = 0x80b02c2c
36:51:260 common\msghandler.cpp:92 E[MASTER]: Warning: Invalid read from 0x0112ba62, PC = 0x80b02c5c
36:51:430 common\msghandler.cpp:92 E[MASTER]: Warning: Invalid read from 0x0112ba64, PC = 0x80b02c8c
36:51:630 core\powerpc\jit64\jit.cpp:771 W[PowerPC]: ISI exception at 0x00000000

There’s also something strange in ᴊɪᴛ mode (so when 3ᴅ rendering is performed) : when I decrease my Intel ᴄᴘᴜ maximum clock rates, it increases overall emulation and framerate speed.

I agree to perform all required debugging/testing if needed.

Actions #3

Updated by ytrezq over 5 years ago

I confirm the problem still occurs as of 5.0-9322.

This really sounds to be about code caching is performed than the use of Powerᴘᴄ using it’s caches.

Actions #4

Updated by ytrezq over 5 years ago

Ok, it seems there’s a problem with the commands :

But I don’t know if it’s a consequence or the trigger but anyway it’s the place where the first invalid read occurs as for the start up phase (not like above) the first invalid read is triggered by
51:04:368 common\msghandler.cpp:92 E[MASTER]: Warning: Invalid read from 0x0112ba60, PC = 0x80ae7fdc

0x80ae7fdc is disasembled as a NOP.

And the call stack is :

  • --- [ LR = 80ae7e30 ]
  • mDoGph_Painter_Fv m_Do_graphic.o [ addr = 8000ba04 ]
  • mDoCPd_Convert__FP27interface_of_controller_pad10JUTGamePad m_Do_controller_pad.co [ addr = 80007699 ]
  • wether_move_housi__Fv d_kankyo_wether.o [ addr = 8008cbc4 ]
  • --- [ addr = 800041a0 ]
Actions #5

Updated by ytrezq over 5 years ago

At the beginning there’s also that issue which happens with uncached interpreter :
27:06:929 core\ios\fs\filesystemproxy.cpp:55 E[IOS_FS]: ReadDirectory(/shared2/sys/SYSCONF): result -101

Actions #6

Updated by ytrezq over 3 years ago

Ok, I wanted to know if there were something special with the game itself, so I extracted the n64 rom from the executable and found nothing special when running it on a pc n64 emulator.

This is definitely something which come from the emulator which looks like unrelated to the game.

Updated by ytrezq over 2 years ago

I don’t understand the reason and if it’s related but it seems something like a filter is applied to the savegame on the console :
The 2 files linked here are about a fresh new savefile with one generated on the console and the other the Wii’s Virtual Console.

The size doesn’t matter as the data after 32Kb is rubbish.

This isn’t happening with other N64 virtual console titles : I’m meaning that I can export/import savestates from/to the computer Emulator and the Virtual Console.

Actions

Also available in: Atom PDF