Yakumono - luigiblood.bsky.social Profile picture
(Zombie Account) aka LuigiBlood. Mage Robot Nerd. I deal with SNES/Satellaview/N64DD. Art by @MadelynHimegami See website for contact / social info.

Sep 19, 2020, 12 tweets

Here's a thread that I will constantly update about my findings about the N64 emulator in Super Mario 3D All-Stars.

It seems that for the RAM size, it supports 4 MB (regular), 8 MB (Expansion Pak) and 16 MB.
It has two ways even, you can set that for RAMSize but also RAMSizeInGame settings. I assume it's to lie about the amount to the game when useful.

I've said it before, but for the sake of the thread:
This N64 emulator has not working 64DD emulation code from the Wii U VC version. It's identical, even, left as is.

However, because of the new configuration file format, you can't really make use of it anymore.

I will also link to another thread where it is mentioned how game patching works and textures:

But here's some additional info about the Lua scripting system in place, there's a few predefined functions with their intended use easily understandable:
- HookFunc_AfterInst()
- HookFunc_BeforeInst()
- GameBegin()
- FrameBegin()
- RomPatch()

RomPatch() seems to be called very early on in the loading process. It patches the game.
In fact it is even made obvious: it removes the Stereo/Mono option from the File Select menu and moves the other buttons around.

FrameBegin() is there, but pretty much unused.
I assume this is called every frame to do whatever.

GameBegin() is called when the game is about to be emulated. In this case it initializes the game text hack and load the appropriate files according to selected language.

HookFunc_AfterInst() is called when a specified instruction in the config file is executed, and HookFunc_BeforeInst() is called before the specified instruction is executed.

The problem is that you have to type again and check which instruction is executed.

You may notice that another function is called within those instruction hacks, those are native functions included with the emulator. It's possible to find them all since all of them have to be binded somewhere.
So these game hacks are pretty much done with native code mostly.

Emulator seems to support Controller Pak, Rumble Pak (duh) and N64 Transfer Pak (seems to be not quite working?).

By the way, the reason why Super Mario 3D All-Stars didn't work properly when pirated: the custom firmware didn't support jit-sysmodule properly because literally nothing used it until now.

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling