Skip to content

A functionally-matching, embeddable Super Monkey Ball 2 decompilation

Notifications You must be signed in to change notification settings

ComplexPlane/libmkb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

libmkb

A functionally-matching, embeddable Super Monkey Ball 2 decompilation.

Goals

  • Readability. Decompile Super Monkey Ball 2's physics, camera, and controls code to a clean, well-commented source that is enlightening to anyone seeking to understand exactly how this game works.
  • Accuracy. Be functionally-identical to the original game (aside from floating-point roundoff errors which are unfortunately unavoidable). Closely follow the original source code so that libmkb can serve as an accurate reference.
  • Embeddability. Work as a C++ library, allowing real gameplay with a graphical frontend. Compiling libmkb for the browser via WebAssembly with three.js for graphics is my goal for an initial frontend.

Non-Goals

  • Perfect Matching. An alternate approach is to decompile the code such that it may be recompiled by the original compiler to perfectly match the original game's binary. However, this takes orders of magnitude more time and effort than a "functionally-matching" decompilation, and may stifle readability and embeddability.
  • Completeness. At the moment I think the most salient parts of the game to focus on are physics, camera, and controls, meanwhile graphics, menus, and character animation for example are less important initially. If you're motivated to work on these however, feel free!

About

A functionally-matching, embeddable Super Monkey Ball 2 decompilation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published