GithubHelp home page GithubHelp logo

sega-dreamcast / neoip Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mrneo240/neoip

0.0 0.0 0.0 245 KB

New customizable bootloader for embedding within an IP.BIN, used for the dreamcast.

License: GNU General Public License v3.0

C++ 3.11% C 73.50% Assembly 22.29% Makefile 1.10%

neoip's Introduction

neoIP - New modern, configurable, extensible IP.BIN replacement

NeoDC, 2018.

Features:

  • Open Source
  • Configurable, and extensible
  • Basic binary patching
  • Boots KATANA, WINCE, and Homebrew binaries, scrambled or not

Usage use the neoIP tool which is a self contained tool for creating a patched IP.BIN from an original.

./neoIP (IP.BIN Original) (1ST_READ.BIN) (Hacked IP.BIN)

Nitty Gritty - Devs only

If modifying the source, most changes will be in main.c, and menu.c. The rest of the source is mostly the framework that holds everything together, and shouldn't need to be modified. Feel free to explore and submit pull requests though!

If you recompile the project in your environment likely specific offsets will need to modified. The makefile provided should be compatible with a default KOS environment and will provide you all the info needed to make your own updates.

Notes

  • Currently you could add up to around 3kb of code to the binary, if you went over memory corruption and other issues would happen. Also note, around 4kb is currently being purposely wasted in order to give myself an out if the codebase starts to grow substantially.
  • Currently the source is set to boot Scrambled Binaries!
  • If you wish to change this, check main.c and modify the last patch, and change the 2nd field to one to enable it. Check patches.h for a quick description of how they work
  • Alternately, the patch data Struct Should be located at the end of a compiled boot1.bin, and can be hex edited easily.

How to do Major Changes (for testing locally)

  • make clean
  • change sources / do updates
  • make
  • run gcc maketmpl.c -o maketmpl in the tool directory
  • run ./maketmpl (IP.BIN Original) boot1.bin (Hacked IP.BIN)

How to do Major Changes (and create new tool)

  • make clean
  • change sources / do updates
  • make
  • check "MAP_bin1.map" for the line .data.data_size 0x000000008c00d454 0x4 scramble.o 0x000000008c00d454 _data_size
  • note the address of "_data_size" aka 0x8c00d454.
  • this address goes into neoIP.c on this line. //offset given in the MAPfile generated by gcc int data_size_OFFSET = 0x8c00d454;
  • run ./bin2c boot1.bin boot1 boot1.h
  • run gcc neoIP.c -o neoIP in the tool directory

neoip's People

Contributors

haydenkowalchuk-csc4370 avatar mrneo240 avatar

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.