Add MPU to Tandy and CMS

This commit is contained in:
Ian Scott committed 2024-07-28 15:56:34 -06:00
1 parent 8d5e5d7d60
commit 6b270ba317
4 files changed
+38 -13

No files matched your search

+3 -1
View File
@@ -246,7 +246,7 @@ function(build_adlib TARGET_NAME MULTIFW)
endfunction()
################################################################################
# Build MPU firmware
# Build MPU-only firmware
function(build_mpu TARGET_NAME MULTIFW)
set(USB_JOYSTICK TRUE)
set(SOUND_MPU TRUE)
@@ -266,6 +266,7 @@ endfunction()
function(build_tandy TARGET_NAME MULTIFW)
set(USB_JOYSTICK TRUE)
set(USB_MOUSE TRUE)
set(SOUND_MPU TRUE)
config_target(${TARGET_NAME} ${MULTIFW})
pico_set_program_name(${TARGET_NAME} "picogus-tandy")
target_compile_definitions(${TARGET_NAME} PRIVATE
@@ -283,6 +284,7 @@ endfunction()
function(build_cms TARGET_NAME MULTIFW)
set(USB_JOYSTICK TRUE)
set(USB_MOUSE TRUE)
set(SOUND_MPU TRUE)
config_target(${TARGET_NAME} ${MULTIFW})
pico_set_program_name(${TARGET_NAME} "picogus-cms")
target_compile_definitions(${TARGET_NAME} PRIVATE
+16 -5
View File
@@ -22,10 +22,11 @@
#ifdef USB_STACK
#include "tusb.h"
#endif
#ifdef USB_MOUSE
#ifdef USE_ALARM
#if (defined(USB_MOUSE) || defined(SOUND_MPU)) && defined(USE_ALARM)
#include "pico_pic.h"
#endif
#ifdef USB_MOUSE
#include "mouse/8250uart.h"
#include "mouse/sermouse.h"
#endif
@@ -39,6 +40,12 @@ saa1099_device *saa0, *saa1;
#include "cmd_buffers.h"
extern cms_buffer_t cms_buffer;
#ifdef SOUND_MPU
#include "flash_settings.h"
extern Settings settings;
#include "mpu401/export.h"
#endif
extern uint LED_PIN;
#if PICO_ON_DEVICE
@@ -87,17 +94,18 @@ void play_cms() {
puts("starting core 1 CMS");
flash_safe_execute_core_init();
#ifdef USB_MOUSE
#ifdef USE_ALARM
#if (defined(USB_MOUSE) || defined(SOUND_MPU)) && defined(USE_ALARM)
// Init PIC on this core so it handles timers
PIC_Init();
puts("pic inited on core 1");
#endif
#endif
#ifdef USB_STACK
// Init TinyUSB for joystick support
tuh_init(BOARD_TUH_RHPORT);
#endif
#ifdef SOUND_MPU
MPU401_Init(settings.MPU.delaySysex, settings.MPU.fakeAllNotesOff);
#endif
#ifdef MAME_CMS
puts("Creating SAA1099 1");
saa0 = new saa1099_device(7159090);
@@ -196,6 +204,9 @@ void play_cms() {
// uart emulation task
uartemu_core1_task();
#endif
#ifdef SOUND_MPU
send_midi_bytes(4);
#endif
}
}
+2 -2
View File
@@ -776,8 +776,6 @@ int main()
loadSettings(&settings);
#if defined(SOUND_GUS)
settings.startupMode = GUS_MODE;
#elif defined(SOUND_MPU)
settings.startupMode = MPU_MODE;
#elif defined(SOUND_TANDY)
settings.startupMode = TANDY_MODE;
#elif defined(SOUND_CMS)
@@ -786,6 +784,8 @@ int main()
settings.startupMode = SB_MODE;
#elif defined(SOUND_OPL)
settings.startupMode = ADLIB_MODE;
#elif defined(MPU_ONLY)
settings.startupMode = MPU_MODE;
#elif defined(USB_ONLY)
settings.startupMode = USB_MODE;
#else
+17 -5
View File
@@ -28,10 +28,11 @@ extern uint LED_PIN;
#ifdef USB_STACK
#include "tusb.h"
#endif
#ifdef USB_MOUSE
#ifdef USE_ALARM
#if (defined(USB_MOUSE) || defined(SOUND_MPU)) && defined(USE_ALARM)
#include "pico_pic.h"
#endif
#ifdef USB_MOUSE
#include "mouse/8250uart.h"
#include "mouse/sermouse.h"
#endif
@@ -43,6 +44,12 @@ extern uint LED_PIN;
bi_decl(bi_3pins_with_names(PICO_AUDIO_I2S_DATA_PIN, "I2S DIN", PICO_AUDIO_I2S_CLOCK_PIN_BASE, "I2S BCK", PICO_AUDIO_I2S_CLOCK_PIN_BASE+1, "I2S LRCK"));
#endif
#ifdef SOUND_MPU
#include "flash_settings.h"
extern Settings settings;
#include "mpu401/export.h"
#endif
#define SAMPLES_PER_BUFFER 8
struct audio_buffer_pool *init_audio() {
@@ -84,18 +91,20 @@ void play_tandy() {
puts("starting core 1 tandy");
flash_safe_execute_core_init();
#ifdef USB_MOUSE
#ifdef USE_ALARM
#if (defined(USB_MOUSE) || defined(SOUND_MPU)) && defined(USE_ALARM)
// Init PIC on this core so it handles timers
PIC_Init();
puts("pic inited on core 1");
#endif
#endif
#ifdef USB_STACK
// Init TinyUSB for joystick support
tuh_init(BOARD_TUH_RHPORT);
#endif
#ifdef SOUND_MPU
MPU401_Init(settings.MPU.delaySysex, settings.MPU.fakeAllNotesOff);
#endif
tandysound_t tandysound;
struct audio_buffer_pool *ap = init_audio();
#ifdef SQUARE_FLOAT_OUTPUT
@@ -144,6 +153,9 @@ void play_tandy() {
// uart emulation task
uartemu_core1_task();
#endif
#ifdef SOUND_MPU
send_midi_bytes(8);
#endif
}
}