N64 NSO - SM3DAS | Get All Idle Threads for Nintendo 64 Switch Emulator

Imancol

Otak Productions
OP
Member
Joined
Jun 29, 2017
Messages
1,375
Trophies
0
XP
2,751
Country
Colombia
Show and Insert Idle



[Get RDRAM] = Get N64 RAM Memory Address (Keep Alive)

IA Idle = Get Addrss and Inst from Idles, and automatically set them in the emu. You need "[Get RDRAM]" to get Inst.

The rest is just information, import them in the Edizon SE or Zing bookmark to see the inactive ones and insert them later in a .cfg

This doesn't work on Games that have multiple jumps. You will only get the last jump. You will have to resort to an emulator like Pj64 and get the idles there using the information provided by my CheatCode.

It is very simple to use and is the best I can provide. Just turn one of the 5 "AI Idle" on and off until the game stops stuttering. It won't work in any case.

This will not prevent NSO blocking if you don't have any Idle in CFG. In any case, the Emulator is causing a block to prevent an unofficial game from being functional.


NSO N64
ID 0100C9A00ECE6000
BID f53b28ee1b46aaf4

Code:
[Get RDRAM]
580F0000 005DC0C0
04000000 00ADC5F0 0000002D

[1-IA Idle LOOP by ImanCol]
540C0000 00ADCA80
A4C00400 00ADC738
9808F0C0
11050000 00ADC73B 00000070
78081000 70000000
21000000
11050000 00ADC73B 00000080
78081000 80000000
20000000
30000000 00000004
98958000
51051000 00000000
A1500500 00ADC73B
78080000 00000001
31000000
04000000 00ADC740 00000001

[2-IA Idle GPR-RA by ImanCol]
540C0000 00ADCA78
A4C00400 00ADC744
9808F0C0
11050000 00ADC747 00000070
78081000 70000000
21000000
11050000 00ADC747 00000080
78081000 80000000
20000000
30000000 00000004
98958000
51051000 00000000
A1500500 00ADC747
78080000 00000001
31000000
04000000 00ADC74C 00000001

[3-IA Idle STATIC by ImanCol]
540C0000 00ADC970
A4C00400 00ADC750
9808F0C0
11050000 00ADC753 00000070
78081000 70000000
21000000
11050000 00ADC753 00000080
78081000 80000000
20000000
30000000 00000004
98958000
51051000 00000000
A1500500 00ADC753
78080000 00000001
31000000
04000000 00ADC758 00000001

[4-IA Idle LOOP by ImanCol]
540C0000 00ADCA80
A4C00400 00ADC75C
9808F0C0
11050000 00ADC75F 00000070
78081000 70000000
21000000
11050000 00ADC75F 00000080
78081000 80000000
20000000
30000000 00000004
98958000
51051000 00000000
A1500500 00ADC75F
78080000 00000001
31000000
04000000 00ADC764 00000001

[5-IA Idle BREAK by ImanCol]
540C0000 00ADCAE0
A4C00400 00ADC768
9808F0C0
11050000 00ADC76B 00000070
78081000 70000000
21000000
11050000 00ADC76B 00000080
78081000 80000000
20000000
30000000 00000004
98958000
51051000 00000000
A1500500 00ADC76B
78080000 00000001
31000000
04000000 00ADC770 00000001

[1-Loop (Import BookMark Edizon SE or Zing)]
08000000 00ADC738 FF000102 FFFFFFFF

[2-GPR-RA (Import BookMark Edizon SE or Zing)]
08000000 00ADC744 00000000 00000000

[3-STATIC (Import BookMark Edizon SE or Zing)]
08000000 00ADC750 00000000 00000000

[4-LOOP (Import BookMark Edizon SE or Zing)]
08000000 00ADC75C 00000000 00000000

[5-BREAK (Import BookMark Edizon SE or Zing)]
08000000 00ADC768 00000000 00000000

[1-Idle (Import BookMark Edizon SE or Zing)]
08000000 00ADC5F4 80000810 981191E0

[2-Idle (Import BookMark Edizon SE or Zing)]
08000000 00ADC600 80000810 981191E0

[3-Idle (Import BookMark Edizon SE or Zing)]
08000000 00ADC60C 80000810 981191E0

[4-Idle (Import BookMark Edizon SE or Zing)]
08000000 00ADC618 80000810 981191E0

[5-Idle (Import BookMark Edizon SE or Zing)]
08000000 00ADC624 80000810 981191E0

[First-IsIdle-1]
04000000 00ADC5FC 00000001

[First-IsIdle-0]
04000000 00ADC5FC 00000000

[IsIdle? 2-3-4-5 enable]
04000000 00ADC608 00000001
04000000 00ADC614 00000001
04000000 00ADC620 00000001
04000000 00ADC62C 00000001

[IsIdle? 2-3-4-5 disable]
04000000 00ADC608 00000000
04000000 00ADC614 00000000
04000000 00ADC620 00000000
04000000 00ADC62C 00000000


I

How to get the Idles?

With Edizon and use this, just import it as markers and you will get the values.
Download the NSP (SM64 Deluxe)
Download this package and unzip it in the root of your MicroSD (Switch)

Rename your rom (z64):
20_rom.z64
Copy it to this path on your MicroSD (Switch)
"sdcard:\atmosphere\contents\010049900F546001\Romfs\rom\Stardust_JP"

Copy this in the following path:
"sdcard:\atmosphere\contents\010049900F546001\cheats\e96321640d686460.txt"

[Idle ]
04000000 20743A68 80000590
[Idle 1]
04000000 20743B70 80000590
[Idle 1-2]
04000000 20743B78 80000590
[Idle 1 Addr CFG]
04000000 00FF24A8 800005A7
[Idle 1 Inst CFG]
04000000 00FF24AC 00000000
[Idle 2 Addr CFG]
04000000 00FF24B4 8009BF00
[Idle 2 Inst CFG]
04000000 00FF24B8 1440FFFE
[Idle end]
04000000 20743BD8 8009BEFC
[GPR RA]
04000000 20743A68 8009BEF0


Launch SM64 Deluxe. Now if you try to press Minus it won't show the pause menu. Suspend the game and go to Edizon.


Cheats should appear. DO NOT ACTIVATE THEM !. Press L on Edizon and then import the cheats as bookmarks pressing +. Press R to display the values in Hexadecimal.

Ready, you already have the Idles :)

Just create a .cfg (with those values and use Pj64Debugger to get "JmpInst"):
10_config.cfg
Copy it to this path on your MicroSD (Switch)
"sdcard:\atmosphere\contents\010049900F546001\Romfs\rom\Stardust_JP"

Update
You can use Zing to keep track of Idles
Convert Decimal to Hex here



Test.

There are games that need "ScanlineCalculateMode": "Special". Also the Idle is close (below), it always jumps back.
Some games freeze during gameplay. You can go to Edizon and see the Idle that is pointing
 

Attachments

  • 04753fe0b3f5e4b7.txt
    2.8 KB · Views: 62
  • f53b28ee1b46aaf4.txt
    3.6 KB · Views: 79
Last edited by Imancol,

AlanLC

Well-Known Member
Member
Joined
Aug 18, 2014
Messages
413
Trophies
0
Age
45
XP
2,582
Country
Brazil
Any tutorial on how to insert Gameshark codes in ROM? There are some Widescreen codes that don't have ips file.
 

Imancol

Otak Productions
OP
Member
Joined
Jun 29, 2017
Messages
1,375
Trophies
0
XP
2,751
Country
Colombia
Any tutorial on how to insert Gameshark codes in ROM? There are some Widescreen codes that don't have ips file.
There are options that I have not tested. Among them the possibility of using cheats internally:
Cheat1 Cheat: Cheat1_Addr: Cheat1_Bytes: Cheat1_Value:

I'm not sure yet how to use them and in which part of the files to put it, if in .cfg or .lua

Of course this only affects the ROM, you can implement a Widescreen hack for the game. But for the emulator interface you need a patch.
 

AlanLC

Well-Known Member
Member
Joined
Aug 18, 2014
Messages
413
Trophies
0
Age
45
XP
2,582
Country
Brazil
There are options that I have not tested. Among them the possibility of using cheats internally:
Cheat1 Cheat: Cheat1_Addr: Cheat1_Bytes: Cheat1_Value:

I'm not sure yet how to use them and in which part of the files to put it, if in .cfg or .lua

Of course this only affects the ROM, you can implement a Widescreen hack for the game. But for the emulator interface you need a patch.
Did you find this in the Switch Online code or did you get it from the Wii U virtual console? I had tried using these Wii U cheat settings before the my previous post and not work.
 

Imancol

Otak Productions
OP
Member
Joined
Jun 29, 2017
Messages
1,375
Trophies
0
XP
2,751
Country
Colombia
Did you find this in the Switch Online code or did you get it from the Wii U virtual console? I had tried using these Wii U cheat settings before the my previous post and not work.
From the Nintendo 64 emulator on SM3DAS. The version that NSO uses has different functions. Some that seems to be removed or disabled is FBE.

I tried to decompile the N64 emulator from WII U (Wii VC) but failed. If anyone knows how it would be great.
 

Imancol

Otak Productions
OP
Member
Joined
Jun 29, 2017
Messages
1,375
Trophies
0
XP
2,751
Country
Colombia
I had also made an idle debugger. Allows you to detect patterns that match between the address and the command. It is for working with bigdata. Use Google Spreadsheet

Depurador de Idle N64

imageonline-co-merged-image (2).png


You work with directions and commands. All this you take from an ASM record. This can be effective as long as they follow the same pattern.

You take many values separated by commas (Address, Commands) with value 0x8XXXXXXX (there are cases where games host memory in 1, 7 like Conker and GoldenEye).

You can enter up to 1 million addresses (or more) and it will vote for the ones that match (between 5 or 30 the result). I recommend removing duplicates before separating them by commas.
1637880494333.png
 
Last edited by Imancol,
  • Like
Reactions: hippy dave

Imancol

Otak Productions
OP
Member
Joined
Jun 29, 2017
Messages
1,375
Trophies
0
XP
2,751
Country
Colombia
I will be trying all the games in alphabetical order. For now I am in "#" and I find a game with 6 idle threads lol


https://docs.google.com/spreadsheet...cEwwjlAbH0k/edit#gid=1387477243&range=A12:A17

They need to patch the game in PAL with the .bps found in the link.

Not patching it causes you to get stuck in a system hang message. Patching it with another method causes the sound to be heard badly. And patching it with the .bps or PAL causes that the Title Menu cannot be seen, but the rest is playable.

If you see it crashing somewhere, please let me know.


Another thing. The above method for searching for Idle is deprecated (even Pj64 in my spreadsheet). When I finish testing games I will share the new method, and anyone can use it.
 

Imancol

Otak Productions
OP
Member
Joined
Jun 29, 2017
Messages
1,375
Trophies
0
XP
2,751
Country
Colombia
Terminada la lista "#"

Juegos:
1080 TenEighty Snowboarding EUR JP
64 Hanafuda - Tenshi no Yakusoku JP
64 Oozumou JP
64 Oozumou 2 JP
64 Trump Collection - Alice no Wakuwaku Trump World JP
007 - The World Is Not Enough USA EUR
 

Imancol

Otak Productions
OP
Member
Joined
Jun 29, 2017
Messages
1,375
Trophies
0
XP
2,751
Country
Colombia
List "A" Ready:

AeroFighters Assault USA
AeroGauge 1.X JP EUR USA
AeroGauge Demo - Kiosk JP
Aidyn Chronicles - The First Mage 1.X USA EUR
Air Boarder 64 EUR JP
Akumajou Dracula Mokushiroku - Real Action Adventure JP
Akumajou Dracula Mokushiroku Gaiden - Legend of Cornell JP
All Star Tennis '99 EUR USA
Army Men - Air Combat USA
Army Men - Sarge's Heroes EUR USA
Army Men - Sarge's Heroes 2 USA
Asteroids Hyper 64 USA
Automobili Lamborghini EUR USA

 

Imancol

Otak Productions
OP
Member
Joined
Jun 29, 2017
Messages
1,375
Trophies
0
XP
2,751
Country
Colombia
Update the method to get Idles. Needs to:
Edizon
Cheatcode I shared
NSP Forwarder that I shared
N64 Hovercraft emulator package (SM3DAS) I shared

You don't need to know anything about hacking64.

Good luck!
 

Attachments

  • e96321640d686460.txt
    108 bytes · Views: 78
  • SM64Deluxe.7z
    3 MB · Views: 76
Last edited by Imancol,

Imancol

Otak Productions
OP
Member
Joined
Jun 29, 2017
Messages
1,375
Trophies
0
XP
2,751
Country
Colombia
Show and Insert Idle

[Get RDRAM] = Get N64 RAM Memory Address (Keep Alive)

IA Idle = Get Addrss and Inst from Idles, and automatically set them in the emu. You need "[Get RDRAM]" to get Inst.

The rest is just information, import them in the Edizon SE or Zing bookmark to see the inactive ones and insert them later in a .cfg

This doesn't work on Games that have multiple jumps. You will only get the last jump. You will have to resort to an emulator like Pj64 and get the idles there using the information provided by my CheatCode.

It is very simple to use and is the best I can provide. Just turn one of the 5 "AI Idle" on and off until the game stops stuttering. It won't work in any case.

This will not prevent NSO blocking if you don't have any Idle in CFG. In any case, the Emulator is causing a block to prevent an unofficial game from being functional.


NSO N64
ID 0100C9A00ECE6000
BID 04753fe0b3f5e4b7

JSON:
[Get RDRAM]
580F0000 005D90C0
04000000 00AD95F0 0000002D

[1-IA Idle LOOP by ImanCol]
540C0000 00AD9A80
A4C00400 00AD9738
9808F0C0
11050000 00AD973B 00000070
78081000 70000000
21000000
11050000 00AD973B 00000080
78081000 80000000
20000000
30000000 00000004
98958000
51051000 00000000
A1500500 00AD973B
78080000 00000001
31000000
04000000 00AD9740 00000001

[2-IA Idle GPR-RA by ImanCol]
540C0000 00AD9A78
A4C00400 00AD9744
9808F0C0
11050000 00AD9747 00000070
78081000 70000000
21000000
11050000 00AD9747 00000080
78081000 80000000
20000000
30000000 00000004
98958000
51051000 00000000
A1500500 00AD9747
78080000 00000001
31000000
04000000 00AD974C 00000001

[3-IA Idle STATIC by ImanCol]
540C0000 00AD9970
A4C00400 00AD9750
9808F0C0
11050000 00AD9753 00000070
78081000 70000000
21000000
11050000 00AD9753 00000080
78081000 80000000
20000000
30000000 00000004
98958000
51051000 00000000
A1500500 00AD9753
78080000 00000001
31000000
04000000 00AD9758 00000001

[4-IA Idle LOOP by ImanCol]
540C0000 00AD9A80
A4C00400 00AD975C
9808F0C0
11050000 00AD975F 00000070
78081000 70000000
21000000
11050000 00AD975F 00000080
78081000 80000000
20000000
30000000 00000004
98958000
51051000 00000000
A1500500 00AD975F
78080000 00000001
31000000
04000000 00AD9764 00000001

[5-IA Idle BREAK by ImanCol]
540C0000 00AD9AE0
A4C00400 00AD9768
9808F0C0
11050000 00AD976B 00000070
78081000 70000000
21000000
11050000 00AD976B 00000080
78081000 80000000
20000000
30000000 00000004
98958000
51051000 00000000
A1500500 00AD976B
78080000 00000001
31000000
04000000 00AD9770 00000001

[1-Loop (Import BookMark Edizon SE or Zing)]
08000000 00AD9738 FF000102 FFFFFFFF

[2-GPR-RA (Import BookMark Edizon SE or Zing)]
08000000 00AD9744 00000000 00000000

[3-STATIC (Import BookMark Edizon SE or Zing)]
08000000 00AD9750 00000000 00000000

[4-LOOP (Import BookMark Edizon SE or Zing)]
08000000 00AD975C 00000000 00000000

[5-BREAK (Import BookMark Edizon SE or Zing)]
08000000 00AD9768 00000000 00000000

[1-Idle (Import BookMark Edizon SE or Zing)]
08000000 00AD95F4 80000810 981191E0

[2-Idle (Import BookMark Edizon SE or Zing)]
08000000 00AD9600 80000810 981191E0

[3-Idle (Import BookMark Edizon SE or Zing)]
08000000 00AD960C 80000810 981191E0

[4-Idle (Import BookMark Edizon SE or Zing)]
08000000 00AD9618 80000810 981191E0

[5-Idle (Import BookMark Edizon SE or Zing)]
08000000 00AD9624 80000810 981191E0

[First-IsIdle-1]
04000000 00AD95FC 00000001

[First-IsIdle-0]
04000000 00AD95FC 00000000

[IsIdle? 2-3-4-5 enable]
04000000 00AD9608 00000001
04000000 00AD9614 00000001
04000000 00AD9620 00000001
04000000 00AD962C 00000001

[IsIdle? 2-3-4-5 disable]
04000000 00AD9608 00000000
04000000 00AD9614 00000000
04000000 00AD9620 00000000
04000000 00AD962C 00000000

I

How to get the Idles?

With Edizon and use this, just import it as markers and you will get the values.
Download the NSP (SM64 Deluxe)
Download this package and unzip it in the root of your MicroSD (Switch)

Rename your rom (z64):
20_rom.z64
Copy it to this path on your MicroSD (Switch)
"sdcard:\atmosphere\contents\010049900F546001\Romfs\rom\Stardust_JP"

Copy this in the following path:
"sdcard:\atmosphere\contents\010049900F546001\cheats\e96321640d686460.txt"

[Idle ]
04000000 20743A68 80000590
[Idle 1]
04000000 20743B70 80000590
[Idle 1-2]
04000000 20743B78 80000590
[Idle 1 Addr CFG]
04000000 00FF24A8 800005A7
[Idle 1 Inst CFG]
04000000 00FF24AC 00000000
[Idle 2 Addr CFG]
04000000 00FF24B4 8009BF00
[Idle 2 Inst CFG]
04000000 00FF24B8 1440FFFE
[Idle end]
04000000 20743BD8 8009BEFC
[GPR RA]
04000000 20743A68 8009BEF0


Launch SM64 Deluxe. Now if you try to press Minus it won't show the pause menu. Suspend the game and go to Edizon.


Cheats should appear. DO NOT ACTIVATE THEM !. Press L on Edizon and then import the cheats as bookmarks pressing +. Press R to display the values in Hexadecimal.

Ready, you already have the Idles :)

Just create a .cfg (with those values and use Pj64Debugger to get "JmpInst"):
10_config.cfg
Copy it to this path on your MicroSD (Switch)
"sdcard:\atmosphere\contents\010049900F546001\Romfs\rom\Stardust_JP"

Update
You can use Zing to keep track of Idles
Convert Decimal to Hex here



Test.

There are games that need "ScanlineCalculateMode": "Special". Also the Idle is close (below), it always jumps back.
Some games freeze during gameplay. You can go to Edizon and see the Idle that is pointing
OP updated with latest method.
 

Attachments

  • 04753fe0b3f5e4b7.txt
    2.8 KB · Views: 53

SNES-Fan

Active Member
Newcomer
Joined
Apr 16, 2022
Messages
44
Trophies
0
Age
48
Location
Dreamland
XP
1,034
Country
Germany
Hello :)
Not sure how to use the txt files.
Do I need to rename the last one to the latest BID shown in EdiZon cheat screen ?
And where to put this txt file ? Is EdiZon SE a must, doesn't it work with the normal EdiZon ?
Because while the normal EdiZon still works with the new overlay (link), SE & Zing seem to be outdated.
The thing is I really want to search for more idles to get more roms working.
 
Last edited by SNES-Fan,
  • Like
Reactions: AlanLC

Emilien

New Member
Newbie
Joined
Dec 12, 2020
Messages
1
Trophies
0
Age
24
XP
60
Country
France
Hi everyone ! I'm french people and my goal is to make as games to run as possible ! I'm here cause i don't understand how it really works.. Well i put the cheatcode on the N64 NSO folder on atmosphere/contents, after that i start NSO and i launch the game i want to work but when i turn on [GET RDRAM] I have same value on most of the IDLE addresses i'm confused can someone tell me the process on how to make it work ? :D Have a nice day !
Post automatically merged:

Hi everyone ! I'm french people and my goal is to make as games to run as possible ! I'm here cause i don't understand how it really works.. Well i put the cheatcode on the N64 NSO folder on atmosphere/contents, after that i start NSO and i launch the game i want to work but when i turn on [GET RDRAM] I have same value on most of the IDLE addresses i'm confused can someone tell me the process on how to make it work ? :D Have a nice day !
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    Xdqwerty @ Xdqwerty: Good night