More actions
(Created page with "{{Infobox 3DS homebrew | title = cuzebox3DS | image = https://dlhb.gamebrew.org/3dshomebrew/cuzebox3DS.jpeg|250px | type = Console | version = v0.0.1 | licence = Mixed | autho...") |
No edit summary |
||
Line 10: | Line 10: | ||
| source = https://dlhb.gamebrew.org/3dshomebrew/cuzebox3DS-3DS.rar | | source = https://dlhb.gamebrew.org/3dshomebrew/cuzebox3DS-3DS.rar | ||
}} | }} | ||
CUzebox emulator = | =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) |
Revision as of 03:40, 27 April 2020
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)