Archie: option to fix 25MHz audio.
This commit is contained in:
21
menu.cpp
21
menu.cpp
@@ -933,7 +933,7 @@ void HandleUI(void)
|
||||
OsdSetTitle(user_io_get_core_name(), OSD_ARROW_RIGHT | OSD_ARROW_LEFT);
|
||||
|
||||
m = 0;
|
||||
menumask = 0x1ff;
|
||||
menumask = 0x3ff;
|
||||
OsdWrite(m++);
|
||||
|
||||
strcpy(s, " Floppy 0: ");
|
||||
@@ -965,16 +965,20 @@ void HandleUI(void)
|
||||
sprintf(s, " Stereo mix: %s", config_stereo_msg[archie_get_amix()]);
|
||||
OsdWrite(m++, s, menusub == 5);
|
||||
|
||||
strcpy(s, " 25MHz audio fix: ");
|
||||
strcat(s, archie_get_afix() ? "Enable" : "Disable");
|
||||
OsdWrite(m++, s, menusub == 6);
|
||||
|
||||
OsdWrite(m++);
|
||||
|
||||
sprintf(s, " Swap joysticks: %s", user_io_get_joyswap() ? "Yes" : "No");
|
||||
OsdWrite(m++, s, menusub == 6);
|
||||
sprintf(s, " Swap mouse btn 2/3: %s", archie_get_mswap() ? "Yes" : "No");
|
||||
OsdWrite(m++, s, menusub == 7);
|
||||
sprintf(s, " Swap mouse btn 2/3: %s", archie_get_mswap() ? "Yes" : "No");
|
||||
OsdWrite(m++, s, menusub == 8);
|
||||
|
||||
while(m<15) OsdWrite(m++);
|
||||
|
||||
OsdWrite(15, STD_EXIT, menusub == 8, 0);
|
||||
OsdWrite(15, STD_EXIT, menusub == 9, 0);
|
||||
menustate = MENU_ARCHIE_MAIN2;
|
||||
parentstate = MENU_ARCHIE_MAIN1;
|
||||
|
||||
@@ -1016,16 +1020,21 @@ void HandleUI(void)
|
||||
break;
|
||||
|
||||
case 6:
|
||||
user_io_set_joyswap(!user_io_get_joyswap());
|
||||
archie_set_afix(!archie_get_afix());
|
||||
menustate = MENU_ARCHIE_MAIN1;
|
||||
break;
|
||||
|
||||
case 7:
|
||||
user_io_set_joyswap(!user_io_get_joyswap());
|
||||
menustate = MENU_ARCHIE_MAIN1;
|
||||
break;
|
||||
|
||||
case 8:
|
||||
archie_set_mswap(!archie_get_mswap());
|
||||
menustate = MENU_ARCHIE_MAIN1;
|
||||
break;
|
||||
|
||||
case 8: // Exit
|
||||
case 9: // Exit
|
||||
menustate = MENU_NONE1;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -96,17 +96,29 @@ int archie_get_60()
|
||||
return config.system_ctrl & 0b1000;
|
||||
}
|
||||
|
||||
static int mswap = 0;
|
||||
void archie_set_mswap(char i)
|
||||
{
|
||||
mswap = i;
|
||||
}
|
||||
|
||||
int archie_get_mswap()
|
||||
{
|
||||
return mswap;
|
||||
}
|
||||
|
||||
void archie_set_afix(char i)
|
||||
{
|
||||
if (i) config.system_ctrl |= 0b10000;
|
||||
else config.system_ctrl &= ~0b10000;
|
||||
user_io_8bit_set_status((i ? -1 : 0), 0b100000);
|
||||
}
|
||||
|
||||
int archie_get_afix()
|
||||
{
|
||||
return config.system_ctrl & 0b10000;
|
||||
}
|
||||
|
||||
static int mswap = 0;
|
||||
void archie_set_mswap(char i)
|
||||
{
|
||||
mswap = i;
|
||||
}
|
||||
|
||||
int archie_get_mswap()
|
||||
{
|
||||
return mswap;
|
||||
}
|
||||
|
||||
void archie_set_amix(char i)
|
||||
{
|
||||
config.system_ctrl = (config.system_ctrl & ~0b110) | ((i & 3)<<1);
|
||||
@@ -203,6 +215,7 @@ void archie_init(void)
|
||||
archie_set_ar(archie_get_ar());
|
||||
archie_set_amix(archie_get_amix());
|
||||
archie_set_60(archie_get_60());
|
||||
archie_set_afix(archie_get_afix());
|
||||
|
||||
|
||||
// upload rom file
|
||||
@@ -395,27 +408,27 @@ void archie_poll(void)
|
||||
|
||||
// arm acks first byte
|
||||
case BACK:
|
||||
if (kbd_state != STATE_WAIT4ACK1) {
|
||||
archie_debugf("KBD unexpected BACK, resetting KBD");
|
||||
kbd_state = STATE_HRST;
|
||||
}
|
||||
else {
|
||||
#ifdef HOLD_OFF_TIME
|
||||
// wait some time before sending next byte
|
||||
archie_debugf("KBD starting hold off");
|
||||
kbd_state = STATE_HOLD_OFF;
|
||||
hold_off_timer = GetTimer(10);
|
||||
// wait some time before sending next byte
|
||||
archie_debugf("KBD starting hold off");
|
||||
kbd_state = STATE_HOLD_OFF;
|
||||
hold_off_timer = GetTimer(10);
|
||||
#else
|
||||
kbd_state = STATE_IDLE;
|
||||
archie_check_queue();
|
||||
kbd_state = STATE_IDLE;
|
||||
archie_check_queue();
|
||||
#endif
|
||||
}
|
||||
if (kbd_state != STATE_WAIT4ACK1) {
|
||||
archie_debugf("KBD unexpected BACK, resetting KBD");
|
||||
kbd_state = STATE_HRST;
|
||||
}
|
||||
else {
|
||||
#ifdef HOLD_OFF_TIME
|
||||
// wait some time before sending next byte
|
||||
archie_debugf("KBD starting hold off");
|
||||
kbd_state = STATE_HOLD_OFF;
|
||||
hold_off_timer = GetTimer(10);
|
||||
// wait some time before sending next byte
|
||||
archie_debugf("KBD starting hold off");
|
||||
kbd_state = STATE_HOLD_OFF;
|
||||
hold_off_timer = GetTimer(10);
|
||||
#else
|
||||
kbd_state = STATE_IDLE;
|
||||
archie_check_queue();
|
||||
kbd_state = STATE_IDLE;
|
||||
archie_check_queue();
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
||||
// arm acks second byte
|
||||
|
||||
@@ -19,5 +19,7 @@ void archie_set_mswap(char i);
|
||||
int archie_get_mswap();
|
||||
void archie_set_60(char i);
|
||||
int archie_get_60();
|
||||
void archie_set_afix(char i);
|
||||
int archie_get_afix();
|
||||
|
||||
#endif // ARCHIE_H
|
||||
|
||||
Reference in New Issue
Block a user