More actions
No edit summary |
No edit summary |
||
Line 5: | Line 5: | ||
| version=v0.0.1 | | version=v0.0.1 | ||
| lastupdated = 2018/09/17 | | lastupdated = 2018/09/17 | ||
| licence = | | licence = GNU GPLv3 | ||
| author = ry755 | | author = ry755 | ||
| website = https://github.com/ry755/cuzebox3DS | | website = https://github.com/ry755/cuzebox3DS | ||
Line 12: | Line 12: | ||
}} | }} | ||
=CUzebox emulator= | ==CUzebox emulator== | ||
:Author: Sandor Zsuga (Jubatian), ported by Ryan Stenz (ry755) | * :Author: Sandor Zsuga (Jubatian), ported by Ryan Stenz (ry755) | ||
:License: GNU GPLv3 (version 3 of the GNU General Public License) | * :License: GNU GPLv3 (version 3 of the GNU General Public License) | ||
==Overview== | |||
This is a currently experimental emulator for the Uzebox game console written | This is a currently experimental emulator for the Uzebox game console written | ||
Line 29: | Line 29: | ||
The SDL-3DS library can be found here: https://gbatemp.net/threads/release-sdl-3ds-1-2-15-simple-directmedia-layer-for-3ds.459291/ | The SDL-3DS library can be found here: https://gbatemp.net/threads/release-sdl-3ds-1-2-15-simple-directmedia-layer-for-3ds.459291/ | ||
==Controls== | |||
You can control Player 1's SNES controller as follows: | You can control Player 1's SNES controller as follows: | ||
Line 39: | Line 39: | ||
* ZR: Exit cuzebox3DS (returns to Homebrew Launcher) | * ZR: Exit cuzebox3DS (returns to Homebrew Launcher) | ||
==Emulated components== | |||
Currently the following features are implemented: | Currently the following features are implemented: | ||
Line 52: | Line 52: | ||
* SPI RAM. | * SPI RAM. | ||
Notes: | ==Notes:== | ||
The SD card emulation is fairly capable, it has several compile time | The SD card emulation is fairly capable, it has several compile time |
Revision as of 05:17, 8 September 2021
Template:Infobox-3DS-Homebrews
CUzebox emulator
- :Author: Sandor Zsuga (Jubatian), ported by Ryan Stenz (ry755)
- :License: GNU GPLv3 (version 3 of the GNU General Public License)
Overview
This is a currently experimental emulator for the Uzebox game console written entirely in C, using SDL 1.2.
For building, use the Make_config.mk file to specify target platform. Currently it should build for Linux, 3DS (CTR, requires devkitPro and the SDL-3DS lib), and Emscripten, and Windows as cross compile target using mingw32-gcc (I can not test native compiles for that platform since I don't have the OS).
The SDL-3DS library can be found here: https://gbatemp.net/threads/release-sdl-3ds-1-2-15-simple-directmedia-layer-for-3ds.459291/
Controls
You can control Player 1's SNES controller as follows:
- D-Pad: SNES D-Pad
- A/B/X/Y: SNES A/B/X/Y
- Start/Select: SNES Start/Select
- L/R: SNES L/R
- ZR: Exit cuzebox3DS (returns to Homebrew Launcher)
Emulated components
Currently the following features are implemented:
- AVR core with cycle perfect emulation.
- Core AVR peripherals as necessary to run Uzebox games.
- Sound and video output (frame rate synchronized to host if possible).
- SNES controllers.
- EEPROM including saving its contents alongside the emulated game.
- SPM instruction and related elements necessary for bootloader emulation.
- SD Card read and write (writing didn't see much testing yet).
- SPI RAM.
Notes:
The SD card emulation is fairly capable, it has several compile time constants in the cu_spisd.c file which you may adjust. You can set them to emulate a strict SD card breaking several existing games, but which can help you developing more robust SD code.
The SD write feature is sandboxed within the directory of the game. It doesn't emulate subdirectories. You may only override existing file contents, expand files or create new ones, it should be capable to track these operations if you write the FAT first.
A bootloader can be started simply by passing the bootloader's .hex file as parameter to the emulator. The virtual SD card is composed from the files existing in the same directory. Note that the emulator can not remember what the bootloader wrote last time into the flash. (So you can not start the last selected game with the 0.4.5 bootloader as it recognizes the game by a CRC written in EEPROM, not by flash content. The 5.x.yy bootloaders work fine)