Pages: 1234 »
Posted on 09-07-15, 08:39 pm in The Introductions Thread
Administrator
Posts: 2/164
Since: 08-11-15

Last post: 41 days
Last view: 12 days

Quick-E-Links:
Hey everyone. I'm here.
And on RVLution.net.
And on Kuribo64 (though I'm inactive there).

Also, proper sentences ftw.
Posted on 10-24-15, 02:02 pm in Loadiine; the first backup loader for wiiu
Administrator
Posts: 3/164
Since: 08-11-15

Last post: 41 days
Last view: 12 days

Quick-E-Links:
Private means that it's private. This can be because the exploit is not finished (only works for one region) or it is just really buggy.

Before you start asking for these exploits here: I believe MN1 isn't releasing any exploits until he has found a bug that Nintendo cannot patch.
Posted on 10-27-15, 09:41 pm in Decaf: The first open-source Wii U emulator
Administrator
Posts: 4/164
Since: 08-11-15

Last post: 41 days
Last view: 12 days

Quick-E-Links:
Good to see a promising open-source emulator as well (that has GamePad emulation as well...). I can tell it's developed actively, as its bugs are discussed (and solved) on IRC daily.

I'm sure this will quickly catch up with cemu as for commercial games and the extra bonus of open source and clean code make it definitely worth the wait. Until that time, all I can do is expressing my gratitude to the devs. +1'ed the OP.
Posted on 10-29-15, 10:45 am in Happy Halloween..and more spooky to come!
Administrator
Posts: 6/164
Since: 08-11-15

Last post: 41 days
Last view: 12 days

Quick-E-Links:
maybe give it cursor:pointer; to make it more obvious that you can click it
Or give.it cursor:none;.....

Anyways, nice theme Roadrunner!
Posted on 10-29-15, 10:56 am in Something spooky...
Administrator
Posts: 7/164
Since: 08-11-15

Last post: 41 days
Last view: 12 days

Quick-E-Links:
The sideways picture scared me. Will this disc flip my tv?

Anyways, good luck with the work there's left.
Posted on 10-31-15, 03:37 pm in Decaf: The first open-source Wii U emulator
Administrator
Posts: 8/164
Since: 08-11-15

Last post: 41 days
Last view: 12 days

Quick-E-Links:
I spent the last few days figuring out how to build decaf-emu, and this is what I did to be able to build it:
1) Get windows 10.
2) Get Visual Studio (enable Windows 10 SDK!)
3) Clone the github repo. (git clone https://github.com/decaf-emu/decaf-emu)
4) Init and update submodule (git submodule init && git submodule update)
5) Open Visual Studio and load decaf.sln
6) Click "Build" (Build>Build Solution)
7) Once the build has successfully finished, open a command propt and cd to C:/Users/username/Documents/GitHub/decaf-emu/obj/Debug
8) Type "decaf.exe play <path to extracted game directory>" (without quotes)
9) Wait and see how it crashes
10) Report the error to the developers, fix it yourself or wait until the developers have fixed it
Posted on 01-31-16, 08:28 am in NSMBU Help & Ask Thread
Administrator
Posts: 11/164
Since: 08-11-15

Last post: 41 days
Last view: 12 days

Quick-E-Links:
I assume you're referring to importing these tilesets in NSMBW, a game that we don't discuss here. Please go to RVLution and ask in the help thread there.

Posted on 01-31-16, 08:49 am in Metamaker: A SMM Level Editor
Administrator
Posts: 12/164
Since: 08-11-15

Last post: 41 days
Last view: 12 days

Quick-E-Links:
Well, Cafiine is for simple file replacements, whereas Loadiine is for loading an entire game. I'm assuming it only takes .wud files, and it would be much harder to recompress after every edit, than to place it in the right folder for Cafiine to find it.

On topic: Really nice editor Roadrunner! I don't own SMM, so I won't be able to use it, but if I did, I would. You did a great job figuring out most of these values.
Posted on 02-01-16, 09:36 pm in Challenge Data Editor (rev. 1 by Grop on 02-02-16, 08:48 am)
Administrator
Posts: 14/164
Since: 08-11-15

Last post: 41 days
Last view: 12 days

Quick-E-Links:

Challenge Data Editor

Version 1.0 by Grop
This is a program that was developed in a few days to edit HIOSubjectData_CAFE.bin, which can be found in NSMBU and NSLU. This file controls all challenges. With this editor, you can edit the difficulty of the challenge (in stars), the timer, its ID and the ID of its prequel, the cutoff points for the medals, the type of the challenge, the start powerup and everything else that is documented at this wiki page. Currently, there are 10 unknown values. Feel free to add them to the wiki when you've found their purpose. The numbering of the unknowns is a little weird, because some values are missing; those values were found by me while working on the editor.

Prerequisites

  • Python 3.4 or up
  • PyQt 5

Currently unsupported

  • Adding/removing challenges

Screenshots


Special thanks

Kinnay, for figuring out what this file does;
RoadrunnerWMC, for finding a few unknown values and moral support;
Me, for making this thing.

If you have any suggestions or questions, please let me know.
Download

Q&A

Q: How can I run py files?
A: Please install Python and PyQt. Then try running the program again.

Q: How do I save my edits to a challenge?
A: First click the "Save this challenge" button, and then go to File > Save File (As).

Q: Where can I find HIOSubjectData_CAFE.exbin?
A: In "vol/content/CAFE/subject/".

Posted on 02-07-16, 07:50 am in NSMBUtility Released
Administrator
Posts: 15/164
Since: 08-11-15

Last post: 41 days
Last view: 12 days

Quick-E-Links:
I set up my environment a year ago, but once again, this is really helpful for newcomers. Well done!
Posted on 02-28-16, 02:22 pm in NSMBUtility Released
Administrator
Posts: 17/164
Since: 08-11-15

Last post: 41 days
Last view: 12 days

Quick-E-Links:
Well, he basically stole the Reggie version with NSMBU support, and then released it as his own work. Then, he also started to act superior to Roadrunner, who has figured out the entire format of the levels in NSMBU. Being one of the people who had worked on the editor for a few months when he released "his" editor, I'm not trusting him anytime soon.
Posted on 02-29-16, 07:53 am in NSMBU Help & Ask Thread
Administrator
Posts: 18/164
Since: 08-11-15

Last post: 41 days
Last view: 12 days

Quick-E-Links:
Yes and no.

It's mostly the same (replace files), but the file formats are different.
Posted on 03-12-16, 10:27 pm in Welcome to the NEW Red Hat Cafe!
Administrator
Posts: 20/164
Since: 08-11-15

Last post: 41 days
Last view: 12 days

Quick-E-Links:
I heard the following story:
Sony hired in multiple (2?) detectives to track Hykem down for his work in PS4 hacking. Said detectives recently came to his house, forced Hykem to wipe his harddisk, and they took his PC. Nintendo probably has nothing to do with this.
Posted on 04-05-16, 09:28 pm in Red Hat's Dining Cafe
Administrator
Posts: 21/164
Since: 08-11-15

Last post: 41 days
Last view: 12 days

Quick-E-Links:
"us.to hosting"

Coming up with search terms isn't that hard. Also, everything in life costs money. Get used to it.

(protip: if you want to make a website that can be accessed by others, go with a free domain first, and switch to a paid domain when your site is getting more viewers)
Posted on 04-26-16, 08:44 pm in Getting to a sprite's code asm (rev. 14 by Grop on 08-25-16, 08:13 pm)
Administrator
Posts: 22/164
Since: 08-11-15

Last post: 41 days
Last view: 12 days

Quick-E-Links:
NameUS 1.0.0US 1.0.3EU 1.0.3 (memdump)
linkActorsToSprites0x201727C0x20173880xEBD7388
registerProfile0x2018FB0Unknown0xEBD9554

Step 1: Get the sprite's actor number

  • Go to function linkActorsToSprites. This function assigns actors to the sprite ids.
  • If you scroll down, there are some stw instructions. These store the actor ID at r10+sprite_id*4. Search for the instruction that stores a register in your spriteid*4
  • Scroll up to see what is loaded into that register. That's your actor ID.
  • Doubleclick the offset that holds the actor ID

Step 2: Find the creator (ctor)

  • Press X to find the Xrefs to this offset
  • Find the entry in that list that that loads this actor ID into r5
  • Check what is put in r4 before the registerProfile is called
  • This should be a function. Doubleclick it.
If it's a very short function that immediately branches to another function, the function function it branches to is the creator. Otherwise, the function you're already in is the creator.

Step 3: Find the vtable

  • Scroll down a bit, until something is stored at r3 + 0x4C
  • Then scroll up to see what is stored into that register
This should be an offset. Doubleclick it to reach the vtable.

Inside the vtable are a bunch of references to functions related to this actor (sprite). Convert these bytes to longs by pressing "d" 3 times while the byte is selected.

Useful info

Actor struct

The size of an entry is in brackets.

Information about LinkList and ListNode can be found here.
  • 0x00: Heap (pointer) (4)
  • 0x04: Id (4)
  • 0x08: Actor type information (pointer) (4)
  • 0x0C: wasNotDefered (1)
  • 0x0D: isSprite (1)
  • 0x0E: created (1)
  • 0x0F: deleted (1)
  • 0x10: Nybbles 05-12 (4)
  • 0x14: Nybbles 13-20 (4)
  • 0x18: Nybbles 21-22 (1)
  • 0x19: Nybbles 23-24 (1)
  • 0x1A: initStateFlag (1)
  • 0x1C: Child list [LinkList] (0x10)
  • 0x2C: Child node [ListNode] (8)
  • 0x34: Parent (pointer) (4)
  • 0x40: Visible actors list node [ListNode] (8)
  • 0x4C: vtable

StageActor struct

(Nearly) all actors that appear in a level have this struct. Sizes of entries are in brackets.

The rotation field contains three values: x, y and z). Those values are not stored as a float, but as something similar to a fixed point value. A few example values are probably the best way to illustrate this: 00000000 = 0 degrees, 40000000 = 90 degrees, 80000000 = 180 degrees, C0000000 = 270 degrees.

If the "is active" flag is disabled, the actor doesn't move or update anymore. This flag and the flag that indicates wheter the actor is visible or not can be changed for Mario as well. Unlike the field that deletes actors, the effects of these changes can easily be reversed by flipping the byte again.

The total length of this struct is 0x27C (Bytes).
  • 0x000: Actor struct (0x50)
  • 0x050: Direction (0=Right, 1=Left) (4)
  • 0x054: Player ID (1)
  • 0x056: Layer (1)
  • 0x06C: Position, X (float) (4)
  • 0x070: Position, Y (float) (4)
  • 0x074: Position, Z (float) (4)
  • 0x078: Speed, X (float) (4)
  • 0x07C: Speed, Y (float) (4)
  • 0x080: Speed, Z (float) (4)
  • 0x090: Scale, X (float) (4)
  • 0x094: Scale, Y (float) (4)
  • 0x098: Scale, Z (float) (4)
  • 0x09C: Rotation, X [explained above] (4)
  • 0x0A0: Rotation, Y [explained above] (4)
  • 0x0A4: Rotation, Z [explained above] (4)
  • 0x0BC: Collider (0x128)
  • 0x20C: Zone (1)
  • 0x20E: isActive (1)
  • 0x20F: isVisible (1)

Vtable

The vtable holds the offsets to virtual functions. For every actor inheriting (a class that inherits) the Actor class, the start of the vtable contains offsets to the following functions. Note: each offset is a long (4 bytes), and between after every offset come 4 null bytes.
  • 0x000: null
  • 0x004: null
  • 0x00C: checkDerivedRuntimeTypeInfo
  • 0x014: __deleted_virtual_called
  • 0x01C: dtor
  • 0x024: beforeCreate
  • 0x02C: onCreate
  • 0x034: afterCreate
  • 0x03C: beforeExecute
  • 0x044: onExecute
  • 0x04C: afterExecute
  • 0x054: finalExecute
  • 0x05C: beforeDraw
  • 0x064: onDraw
  • 0x06C: afterDraw
  • 0x074: beforeDelete
  • 0x07C: onDelete
  • 0x084: afterDelete
The StageActor base class expands on this:
  • 0x08C: setPlayerId
  • 0x094: removeColliders
  • 0x09C: addColliders
  • 0x0A4: getPhysics
  • 0x0AC: vfAC
  • 0x0B4: vfB4
  • 0x0BC: vfBC
  • 0x0C4: vfC4
  • 0x0CC: vfCC
  • 0x0D4: killAtGoal
  • 0x0DC: splashWater
  • 0x0E4: splashLava
  • 0x0EC: splashLava2
  • 0x0F4: splashPoison
  • 0x0FC: isOffScreen
  • 0x104: damageFromUnder


Inheritance

Classes of actors (can) inherit other classes. A few of these classes are listed here. Unless overwritten, everything in the super class is copied to the actor class.

Annoying instructions in PPC

The rlwinm instruction is particularly hard to quickly understand. To help you with understanding this instruction (and simplified instuctions, like clrwi and extrwi), IDA 6.6 has a nice feaure; just press F10 when you encounter such an instruction, and it is converted to C syntax. For IDA 6.1, there is this plugin (more info can be found here), that does the same.

... to be expanded

Credits

All credits for this go to Kinnay, I merely put this here to make it more readable than an IRC log. Also thanks to MrRean for some more info. And whoever wrote the wiki article about memory addresses.
Posted on 04-27-16, 08:27 am in Extracting the game's files
Administrator
Posts: 23/164
Since: 08-11-15

Last post: 41 days
Last view: 12 days

Quick-E-Links:
Nice tutorial!

You should also post a tutorial on how to dump files with DDD, as we don't know the NUS key of every game/dlc (i.e. the MK8 DLC). That method is also a lot less illegal (no need for all those illegal keys).
Posted on 04-29-16, 09:59 pm in Mobile view? suggestion
Administrator
Posts: 24/164
Since: 08-11-15

Last post: 41 days
Last view: 12 days

Quick-E-Links:
I'm using it right now.

Thread closed.
Posted on 05-02-16, 08:28 am in Getting to a sprite's code asm
Administrator
Posts: 25/164
Since: 08-11-15

Last post: 41 days
Last view: 12 days

Quick-E-Links:
Disc. The dump this rpx came from was the first NSMBU dump. And I doubt there are differences between the disc and eshop versions of the game. Making changes to a released game only costs Nintendo extra money.
Posted on 05-17-16, 05:22 am in Cafiine Hangs on MK8 Title Screen
Administrator
Posts: 28/164
Since: 08-11-15

Last post: 41 days
Last view: 12 days

Quick-E-Links:
That means the WiiU can't connect to the PC.
- Did you use a code.bin with your PC's IPv4?
- Are you sure your firewall isn't blocking anything?
Posted on 05-26-16, 07:08 am in Something bugging me
Administrator
Posts: 29/164
Since: 08-11-15

Last post: 41 days
Last view: 12 days

Quick-E-Links:
Because sprite ids start at 0, because computers start counting at 0.

You do have a point about the sidebar width. I'll discuss it with staff.
Pages: 1234 »