Code Monkey home page Code Monkey logo

sly1's Introduction

Hi, I'm Zac. ๐Ÿ‘‹๐Ÿป

I'm a Computer Science student at UMASS Boston. I make websites, games, tools, and more. If you have any questions, suggestions, or feedback, please reach out to me!


Banner image with the Zacbox logo and text "Zacbox; websites by Zac".

Check out my web dev portfolio at zacbox.app.


sly1's People

Contributors

felinis avatar modeco80 avatar theclub654 avatar theonlyzac avatar zzamizz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sly1's Issues

Rendering functions

One of the next major milestones will be rendering things on the screen. Any help or progress toward this would be greatly appreciated.

  • Rendering polygons
  • Rendering text
  • Playing MPEG videos

The names Cheats and Savegame are probably inaccurate

Since these functions aren't in the proto debug symbols I made up a name for their files, but I think cheat code stuff is mostly handled by joy.c, and it's probably possible to piece together the proper home for the savedata-related functions.

Add contributing.md

By the time function matching is set up we should have a file CONTRIBUTING.md to help people get involved with the project. It should include sections for:

  • Forking the repo
  • Finding functions to decompile
  • Using the function matching script
  • The style guide
  • Making a pull request

Controller I/O functions

The game will need to be able to process input/output from the controller to implement anything that requires player interaction.

  • Handle controller input
  • Implement controller rumble

File I/O functions

The data for the game levels are stored in BRX archives on the game disc. Loading the levels involves reading the archives into memory with the CBinaryInputStream class.

Simplify project structure

Regarding code structure, the additional directories seem pointless.

I would probably put everything under src/, no reason to do Cheats/cheats.cpp and Cheats/cheats.h etc if all dirs are just gonna have a same named source & header file.

Never thought I'd say this but flat is just better in this case.

Originally posted by @VelocityRa in #3 (review)

Pass function args by reference instead of ptr

&g_difficulty is a ptr. change function signature to void ... (Difficulty& difficulty)

An L-value reference is a ptr that the compiler has guaranteed is a valid object before it's passed into the function. therefore it's a ptr in binary but in the code it's a reference. Also, as mentioned in the discord, it's a possibility that all these functions are member functions of the difficulty structure if a reversed calling convention is assumed (i have no idea what calling convention this binary uses).

Originally posted by @detolly in #3 (comment)

Typo in README.md

The first mention of contributing to the project in the README.md file links to "/CONTRIBUTING.MD", which doesn't exist.
Line 38 should be modified from [CONTRIBUTING.md](/CONTRIBUTING.MD) to [CONTRIBUTING.md](/CONTRIBUTING.md) (the extension ".md" should be lowercase), like at line 139.

Switch compiler to ee-gcc

To eventually produce a matching decomp we need to switch the compiler to the ee-gcc (archived here). That means reformatting the code to follow to the older C++ standard.

Tasks

  • Refactor code as C++98
  • Add/update Makefiles
  • Write instructions for using the new compiler

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.