All Projects → ijacquez → libyaul

ijacquez / libyaul

Licence: MIT license
An open source SEGA Saturn development kit

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects
shell
77523 projects

Projects that are alternatives of or similar to libyaul

Ghidra-SegaSaturn-Processor
A Ghidra processor module for the Sega Saturn (SuperH SH-2)
Stars: ✭ 43 (-63.25%)
Mutual labels:  sega, saturn, sega-saturn
BlueRetro
Multiplayer Bluetooth controllers adapter for retro video game consoles
Stars: ✭ 520 (+344.44%)
Mutual labels:  sega, saturn
Save-Game-Copier
Copy Sega Saturn save game files
Stars: ✭ 34 (-70.94%)
Mutual labels:  sega, sega-saturn
Kosmos
All-in-One CFW Package for the Nintendo Switch - previously SDFilesSwitch
Stars: ✭ 2,157 (+1743.59%)
Mutual labels:  homebrew
Ansible Role Homebrew
Ansible Role - Homebrew
Stars: ✭ 195 (+66.67%)
Mutual labels:  homebrew
Homebrew Bio
🍺🔬 Bioinformatics formulae for the Homebrew package manager (macOS and Linux)
Stars: ✭ 237 (+102.56%)
Mutual labels:  homebrew
Booma.Proxy
Collection of C#/.NET libraries for communication, understanding and emulating Phantasy Star Online Blue Burst. Both client and server.
Stars: ✭ 30 (-74.36%)
Mutual labels:  sega
Openssl Osx Ca
Simple periodic task to sync OSX Keychain certs to Homebrew installed OpenSSL & LibreSSL
Stars: ✭ 185 (+58.12%)
Mutual labels:  homebrew
Nesicide
Integrated Development Environment for the 8-bit Nintendo Entertainment System
Stars: ✭ 244 (+108.55%)
Mutual labels:  homebrew
3ds Examples
Examples for 3DS using devkitARM, libctru, citro3d and citro2d
Stars: ✭ 221 (+88.89%)
Mutual labels:  homebrew
Homebrew Emacs Head
GNU Emacs formula for the Homebrew package manager
Stars: ✭ 214 (+82.91%)
Mutual labels:  homebrew
Nxdk
The cross-platform, open-source SDK to develop for original Xbox: *new* xdk
Stars: ✭ 200 (+70.94%)
Mutual labels:  homebrew
Homebrew Command Not Found
🔍 Ubuntu’s command-not-found equivalent for Homebrew on macOS
Stars: ✭ 236 (+101.71%)
Mutual labels:  homebrew
Nx Activity Log
Homebrew application for the Nintendo Switch which displays play activity with more accuracy
Stars: ✭ 197 (+68.38%)
Mutual labels:  homebrew
Iterm Fish Fisher Osx
Complete guide and Bash script to install Command Line Tools + Homebrew + iTerm2 + Fish Shell + Fisher + Plugins for development purposes
Stars: ✭ 249 (+112.82%)
Mutual labels:  homebrew
Ngdevkit
Open source development for Neo-Geo
Stars: ✭ 190 (+62.39%)
Mutual labels:  homebrew
Tobutobugirl
An arcade platformer homebrew game for the Game Boy
Stars: ✭ 243 (+107.69%)
Mutual labels:  homebrew
Homebrew Kde
Moved
Stars: ✭ 212 (+81.2%)
Mutual labels:  homebrew
Dotfiles
🌷
Stars: ✭ 209 (+78.63%)
Mutual labels:  homebrew
Lost Nds Tv
The Lost Nintendo DS Television Output, brought back to life
Stars: ✭ 221 (+88.89%)
Mutual labels:  homebrew

Yet Another Useless [Saturn] Library

About

Yaul is an open source development kit for the SEGA Saturn. The SDK as a whole aims to minimize the painful experience that is developing for the Saturn by providing lightweight abstractions between your program and the hardware.

Documentation

Visit yaul.org.

Installation

Windows

MSYS2

If you already have MSYS2 installed, follow the directions below to setup access to the package repository. If not, download and install MSYS2 here first, then continue to follow the instructions below.

  1. From the Start menu, open MSYS MinGW 64-bit.

  2. Open /etc/pacman.conf and at the end of the file, add the following:

    [yaul-mingw-w64]
    SigLevel = Optional TrustAll
    Server = http://packages.yaul.org/mingw-w64/x86_64
    
  3. Go back to the shell and sync and refresh the databases.

    pacman -Syy
    
  4. Install everything.

    pacman -S \
      yaul-tool-chain-git \
      yaul \
      yaul-emulator-yabause \
      yaul-emulator-mednafen \
      yaul-examples-git
    
  5. Once all the packages have been installed, close the existing shell and start a new one.

  6. Test your environment by building an example.

Linux

Arch

Follow the directions below to setup access to the Arch Linux package repository, or build the packages yourself.

  1. As root, open /etc/pacman.conf and at the end of the file, add the following:

    [yaul-linux]
    SigLevel = Optional TrustAll
    Server = http://packages.yaul.org/linux/x86_64
    
  2. Sync and refresh the databases.

    pacman -Syy
    
  3. Install everything. Keep in mind that yaul-emulator-kronos is only available on Linux. For MinGW-w64, install yaul-emulator-yabause instead.

    pacman -S \
      yaul-tool-chain-git \
      yaul \
      yaul-emulator-mednafen \
      yaul-emulator-kronos \
      yaul-examples-git
    
  4. Once all the packages have been installed, close the existing shell and start a new one.

  5. Test your environment by building an example.

Debian based

There are currently no .deb packages available. You will need to build Yaul.

MacOS X

There are currently no packages available. You will need to build Yaul.

Docker

A Dockerfile file is available.

Building tool-chain from source

Follow the instructions found in the build-scripts/ directory. Please note that you still need to build Yaul.

Setting and building Yaul manually

Cloning the repository
  1. Clone the respository

    git clone "https://github.com/ijacquez/libyaul.git"
    
  2. Initialize the submodules

    git submodule init
    
  3. Update the registered submodules

    git submodule update
    

Setting up the environment file
  1. If the tool-chain package was installed, copy the template $TOOL_CHAIN_PREFIX/sh2eb-elf/yaul.env.in to your home directory as .yaul.env. This is your environment file.

    Otherwise, copy yaul.env.in from the root of this repository to your home directory as .yaul.env.

  2. Read the environment file .yaul.env into your current shell.

    source $HOME/.yaul.env
    
  3. Reading the environment file needs to be done every time a new shell is opened. To avoid having to do this every time, add the line below to your shell's startup file.

    echo 'source $HOME/.yaul.env' >> $HOME/.bash_profile
    

    If .bash_profile is not used, use .profile instead. This is dependent on your set up.

Configuring the environment file

Open $HOME/.yaul.env in a text editor and change the following to define your environment:

  1. Set the absolute path to the tool-chain in YAUL_INSTALL_ROOT.
  2. If necessary, set YAUL_PROG_SH_PREFIX and YAUL_ARCH_SH_PREFIX.
  3. Set the absolute path to where the libyaul source tree is located in YAUL_BUILD_ROOT.
  4. Enable RTags/Irony/ccls support by setting YAUL_CDB to 1. To disable, set to 0 (zero).

Setting the wrong values may result in compilation errors.

Building
  1. Build and install the supported libraries.

    SILENT=1 make install-debug
    

    If any given library in Yaul is being debugged, use the install-debug target instead. Either release or debug can currently be installed at one time. It's possible to switch between the two in the same installation.

    To find more about other targets, call make list-targets.

  2. Build and install the tools.

    SILENT=1 make install-tools
    
  3. Test your environment by building an example.

Building and running an example

  1. If you've built Yaul manually, check out any example in the examples submodule. Otherwise, go to /opt/yaul-examples/.

  2. Copy the vdp1-zoom-sprite directory to your home directory

    cp -r /opt/yaul-examples/vdp1-zoom-sprite $HOME/
    
  3. Build vdp1-sprite

    cd $HOME/vdp1-zoom-sprite
    SILENT=1 make clean
    SILENT=1 make
    
  4. Use Mednafen to test the example.

    mednafen vdp1-zoom-sprite.cue
    

    If Mednafen is unable to find the Sega Saturn BIOS image, please confirm that,

    1. The file is named mpr-17933.bin and that it exists relative to the firmware directory under the Mednafen base directory.

    2. The calculated MD5 hash of the file is 3240872c70984b6cbfda1586cab68dbe.

  5. Success! 🎉

Contact

You can find me (@mrkotfw) on Discord.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].