Skip to content

Latest commit

 

History

History
81 lines (60 loc) · 7.13 KB

GETTING_STARTED.md

File metadata and controls

81 lines (60 loc) · 7.13 KB

Getting Started

Introduction

This wiki is a fork of the Slippi-wiki meant to assist developers interested in learning about and contributing to the Brawlback codebase.

What this document is:

  • An overview of the various components that make up the Brawlback Project.
  • A collection of resources and tools.

What this document is not :

  • An in-depth programming tutorial.

Overview

The Project

The Brawlback project is comprised of a number of different applications, each with their own purpose. Below is an overview of each of these applications function, and their relevant technologies.

Dolphin - A modified version of the Dolphin emulator. This project is responsible for handling things like: communication with the matchmaking server, passing external data to the emulated game, and playing replays.
Languages: C++

Brawlback SSBB ASM - A series of ASM mods that are applied to Brawl in order make Brawlback work.
Languages: PPC Assembly, C++

The Workflow

The user launches Dolphin and selects an .iso of Brawl to emulate. Upon lauching the emulation of Brawl, Dolphin injects the modifications made by Brawlback ASM as placed on an SD card. As the user interacts with the game, information is exchanged between Dolphin and the Brawlback SSBB ASM code. As a user begins an online match, Dolphin starts a log of in-game state reported by Brawlback ASM.

Commonly Asked Questions

"Where is the rollback code located?"

Rollback is accomplished by work done between the Brawlback ASM code and the Dolphin code.

"How is data moved between the game (assembly) and the emulator?"

Via EXI communication. An example of such is demonstrated in this video by Fizzi.

When will BrawlBack be ready for a public release?

When it passes the quality control gates. AKA: when it's ready.

What will the UI look like? Are you going to reuse Brawl's matchmaking UI?

Unknown at the moment. The current plan is to reutilize as much of the UI as possible.

Guides & Resources

Brawl Modding and Assembly

Rollback

Slippi

Tools

Brawl Modding and Assembly

  • GCT RealMate Code Editor - A useful extension for syntax highlighting in VSCode related to Brawl modding
  • HxD - A free Hex editor. Hex editors in general are useful for looking through memory dumps.
  • SpeedCrunch - A calculator for programmers. It allows for quick conversions and operations between hex, binary, octal, and decimal.
  • Ghidra - A tool originally created by the NSA - it's used for reverse engineering programs. Particularly useful, is its ability to generate C code from assembly.
  • Dolphin Memory Engine - A RAM search program designed to search, track, and edit the emulated memory of the Dolphin emulator during runtime.
  • CodeWrite - Convert PPC ASM code to/from C2 codes.
  • VSDSync - A collection of utilities and scripts to automate updating your virtual SD card.
  • GCTRealMate - An application to generate cheats for Brawl based on provided ASM in txt files.