Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 0 additions & 94 deletions REPORT_RIPTOPL_VCD_THEMES_IGR_AUDIT.md

This file was deleted.

Binary file removed delivered/eth.png
Binary file not shown.
Binary file removed delivered/fav.png
Binary file not shown.
Binary file removed delivered/hdd.png
Binary file not shown.
Binary file removed delivered/hdd_bd.png
Binary file not shown.
Binary file removed delivered/ilk_bd.png
Binary file not shown.
Binary file removed delivered/m4s_bd.png
Binary file not shown.
Binary file removed delivered/mmce.png
Binary file not shown.
Binary file removed delivered/udp_bd.png
Binary file not shown.
Binary file removed delivered/udp_fs.png
Binary file not shown.
Binary file removed delivered/usb.png
Binary file not shown.
Binary file removed delivered/usb_bd.png
Binary file not shown.
2 changes: 0 additions & 2 deletions include/bdmsupport.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,7 @@ typedef struct
} bdm_device_data_t;

void bdmLoadModules(void);
void bdmResetModuleState(void);
void bdmLaunchGame(item_list_t *itemList, int id, config_set_t *configSet);
int bdmSupportIsATA(item_list_t *support);

void bdmInitSemaphore();
void bdmEnumerateDevices();
Expand Down
3 changes: 1 addition & 2 deletions include/hddsupport.h
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,7 @@ void hddVcdInvalidateCache(void);
void hddInit(item_list_t *itemList);
item_list_t *hddGetObject(int initOnly);
int hddLoadModules(void);
int hddLoadSupportModules(void);
void hddResetModuleState(void);
void hddLoadSupportModules(void);
void hddLaunchGame(item_list_t *itemList, int id, config_set_t *configSet);
int hddIsPresent();

Expand Down
2 changes: 1 addition & 1 deletion include/opl.h
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,7 @@ extern int gOSDLanguageSource;

extern int showCfgPopup;
extern int showNetDhcpPopup; // boot toast: UDP transport selected while IP Type = DHCP (needs static IP)
extern int showHddReconcilePopup; // boot toast: APA + exFAT(BDM) HDD were both enabled -- one was auto-disabled (#154)

#ifdef IGS
#define IGS_VERSION "0.1"
Expand Down Expand Up @@ -257,7 +258,6 @@ extern int gNeutrinoElfArg; // opt-in (settings key only, no UI): auto-e
extern char gPopstarterPath[256]; // custom POPSTARTER.ELF path (used only when gPopstarterDevice == POPS_DEV_CUSTOM)
extern char gBootDir[256]; // boot directory (cwd) OPL launched from, e.g. "mass0:/APPS"; "" if undeterminable
extern int gDeinitTerminal; // 1 while deinit() runs for exit/poweroff, 0 for a game/app LAUNCH teardown.
extern int gDeinitAtaSelected; // 1 when the selected launch backend still needs the internal ATA drive.
// Launch teardown must NOT power shared buses down (dev9: the post-deinit
// POPSTARTER.ELF read comes off the ATA-backed massN: mount).
// POPSTARTER.ELF Device picker: where PS1 VCD launches load POPS/POPSTARTER.ELF from. Default tries the
Expand Down
31 changes: 1 addition & 30 deletions src/bdmsupport.c
Original file line number Diff line number Diff line change
Expand Up @@ -275,15 +275,6 @@ int bdmSupportIsUDPBD(item_list_t *support)
return ((bdm_device_data_t *)support->priv)->bdmDeviceType == BDM_TYPE_UDPBD;
}

int bdmSupportIsATA(item_list_t *support)
{
if (support == NULL || support->priv == NULL)
return 0;
if (support->mode < BDM_MODE || support->mode > BDM_MODE_LAST)
return 0;
return ((bdm_device_data_t *)support->priv)->bdmDeviceType == BDM_TYPE_ATA;
}

static void bdmEventHandler(void *packet, void *opt)
{
BdmGeneration++;
Expand Down Expand Up @@ -418,20 +409,6 @@ void bdmLoadModules(void)
LOG("BDMSUPPORT Modules loaded\n");
}

// The optional transport flags describe IOP residency. An in-process sysReset removes those IRXs
// while the EE process and these statics survive, so clear them only at that explicit reset boundary.
void bdmResetModuleState(void)
{
iUSBModLoaded = 0;
iLinkModLoaded = 0;
iLinkManModLoaded = 0;
ieee1394ModLoaded = 0;
mx4sioModLoaded = 0;
hddModLoaded = 0;
udpbdModLoaded = 0;
bdmDeviceModeStarted = 0;
}

static void bdmInit(item_list_t *itemList)
{
LOG("BDMSUPPORT Init\n");
Expand Down Expand Up @@ -1357,17 +1334,11 @@ static void bdmShutdown(item_list_t *itemList)

bdm_device_data_t *pDeviceData = (bdm_device_data_t *)itemList->priv;
snprintf(path, sizeof(path), "mass%d:", itemList->mode);
const char *devicePath = (pDeviceData != NULL && pDeviceData->bdmDeviceRoot[0] != '\0') ? pDeviceData->bdmDeviceRoot : path;
int deviceType = (pDeviceData != NULL) ? pDeviceData->bdmDeviceType : BDM_TYPE_UNKNOWN;

// As required by some (typically 2.5") HDDs, issue the SCSI STOP UNIT command to avoid causing an emergency park.
// pDeviceData may be NULL here (shutdown without init, or a second deinit pass after priv was freed below),
// so guard the dereference and fall back to the constructed mass%d: path.
// ATA_BD and APA share the internal drive. Suppress STOP only when the selected launch backend
// actually needs ATA; unrelated USB/MMCE/network launches retain the orderly park behavior.
// Use the identity already cached by enumeration -- never add blocking mount probes to teardown.
if (!gDeinitAtaSelected || deviceType != BDM_TYPE_ATA)
fileXioDevctl(devicePath, USBMASS_DEVCTL_STOP_ALL, NULL, 0, NULL, 0);
fileXioDevctl((pDeviceData != NULL && pDeviceData->bdmDeviceRoot[0] != '\0') ? pDeviceData->bdmDeviceRoot : path, USBMASS_DEVCTL_STOP_ALL, NULL, 0, NULL, 0);

if (itemList->enabled && pDeviceData != NULL) {
LOG("BDMSUPPORT Shutdown free data\n");
Expand Down
21 changes: 19 additions & 2 deletions src/gui.c
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ static void guiShowNotifications(void)
int y = 10;
int yadd = 35;

if (showPartPopup || showThmPopup || showLngPopup || showCfgPopup || showNetDhcpPopup) {
if (showPartPopup || showThmPopup || showLngPopup || showCfgPopup || showNetDhcpPopup || showHddReconcilePopup) {
if (!popupTimer) {
popupTimer = clock() + 5000 * (CLOCKS_PER_SEC / 1000);
sfxPlay(SFX_MESSAGE);
Expand Down Expand Up @@ -351,11 +351,18 @@ static void guiShowNotifications(void)
y += yadd;
}

// One-time notice set at config load (#154): APA + exFAT(BDM) internal HDD were both
// enabled and one was auto-disabled. Rendered here (not toasted from _loadConfig) so _l()
// resolves AFTER the language pack loads -- Gemini review of #167.
if (showHddReconcilePopup)
guiRenderNotifications(_l(_STR_HDD_BACKEND_RECONCILED), y);

if (clock() >= popupTimer) {
guiResetNotifications();
showPartPopup = 0;
showCfgPopup = 0;
showNetDhcpPopup = 0;
showHddReconcilePopup = 0;
}
}
}
Expand Down Expand Up @@ -1224,6 +1231,14 @@ void guiShowNetConfig(void)
static int guiDeviceUpdater(int modified)
{
if (modified) {
int hddMode, bdmHdd;
diaGetInt(diaDeviceConfig, CFG_HDDMODE, &hddMode);
diaGetInt(diaDeviceConfig, CFG_ENABLEBDMHDD, &bdmHdd);
// BDM HDD (GPT/MBR) and the APA HDD mode are mutually exclusive; keep the
// two interlocked live now that both live on the same page.
diaSetEnabled(diaDeviceConfig, CFG_HDDMODE, !bdmHdd);
diaSetEnabled(diaDeviceConfig, CFG_ENABLEBDMHDD, hddMode == 0);

// Network 3-row live logic. Row 1 Start (Off/Manual/Auto), Row 2 Protocol (SMB/UDPFS/UDPBD),
// Row 3 Access (Files/IMG). While Start=Off, grey Protocol + Access. Lock Access to Files for
// SMB and to IMG for UDPBD (only UDPFS offers the free toggle) -- snap the value so a stale IMG
Expand Down Expand Up @@ -1271,11 +1286,13 @@ void guiShowDeviceConfig(void)
diaSetInt(diaDeviceConfig, CFG_APPMODE, gAPPStartMode);
diaSetInt(diaDeviceConfig, CFG_FAVMODE, gFAVStartMode);

// Block devices. ATA-BDM and APA/PFS intentionally coexist on the shared ATA stack.
// Block devices (inlined; interlocked with the APA HDD mode)
diaSetInt(diaDeviceConfig, CFG_ENABLEUSB, gEnableUSB);
diaSetInt(diaDeviceConfig, CFG_ENABLEILK, gEnableILK);
diaSetInt(diaDeviceConfig, CFG_ENABLEMX4SIO, gEnableMX4SIO);
diaSetInt(diaDeviceConfig, CFG_ENABLEBDMHDD, gEnableBdmHDD);
diaSetEnabled(diaDeviceConfig, CFG_ENABLEBDMHDD, !gHDDStartMode);
diaSetEnabled(diaDeviceConfig, CFG_HDDMODE, !gEnableBdmHDD);
// Network: 3 orthogonal rows seeded from the authoritative gNetworkProtocol + gNetStartMode.
// Row 1 Start: Off/Manual/Auto == gNetStartMode (START_MODE_*)
// Row 2 Protocol: SMB(0)/UDPFS(1)/UDPBD(2) -- OFF and UDPFSBD both collapse to their protocol
Expand Down
Loading