Fixed bug with PRG files not loading from USB drives.
This commit is contained in:
parent
fb22d24c6c
commit
e3e25b8b5a
5 changed files with 13 additions and 42 deletions
|
@ -157,7 +157,7 @@ DRESULT disk_read (
|
|||
}
|
||||
else
|
||||
{
|
||||
unsigned bytes = (unsigned)USPiMassStorageDeviceRead(sector << UMSD_BLOCK_SHIFT, buff, count << UMSD_BLOCK_SHIFT, pdrv - 1);
|
||||
unsigned bytes = (unsigned)USPiMassStorageDeviceRead((unsigned long long )(sector << UMSD_BLOCK_SHIFT), buff, count << UMSD_BLOCK_SHIFT, pdrv - 1);
|
||||
|
||||
if (bytes != (count << UMSD_BLOCK_SHIFT))
|
||||
return RES_ERROR;
|
||||
|
|
10
src/emmc.h
10
src/emmc.h
|
@ -5,16 +5,6 @@
|
|||
|
||||
#include "types.h"
|
||||
|
||||
/*
|
||||
#include <circle/device.h>
|
||||
//#include <circle/interrupt.h>
|
||||
#include <circle/timer.h>
|
||||
#include <circle/actled.h>
|
||||
#include <circle/fs/partitionmanager.h>
|
||||
#include <circle/logger.h>
|
||||
#include <circle/types.h>
|
||||
*/
|
||||
|
||||
#define BOOT_SIGNATURE 0xAA55
|
||||
|
||||
struct TSCR // SD configuration register
|
||||
|
|
|
@ -1541,14 +1541,18 @@ void IEC_Commands::LoadFile()
|
|||
|
||||
if (channel.filInfo.fname[0] != 0)
|
||||
{
|
||||
FSIZE_t size = f_size(&channel.file);
|
||||
FSIZE_t sizeRemaining = size;
|
||||
u32 bytesRead;
|
||||
do
|
||||
{
|
||||
f_read(&channel.file, channel.buffer, sizeof(channel.buffer), &bytesRead);
|
||||
if (bytesRead > 0)
|
||||
{
|
||||
//DEBUG_LOG("%d %d %d\r\n", (int)size, bytesRead, (int)sizeRemaining);
|
||||
sizeRemaining -= bytesRead;
|
||||
channel.cursor = bytesRead;
|
||||
if (SendBuffer(channel, true))
|
||||
if (SendBuffer(channel, sizeRemaining <= 0))
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -112,16 +112,16 @@ protected:
|
|||
|
||||
struct Channel
|
||||
{
|
||||
FILINFO filInfo;
|
||||
FIL file;
|
||||
bool writing;
|
||||
u32 cursor;
|
||||
u32 bytesSent;
|
||||
bool open;
|
||||
|
||||
u8 buffer[0x1000];
|
||||
u8 command[0x100];
|
||||
|
||||
FILINFO filInfo;
|
||||
FIL file;
|
||||
u32 cursor;
|
||||
u32 bytesSent;
|
||||
u32 open : 1;
|
||||
u32 writing : 1;
|
||||
|
||||
void Close();
|
||||
bool WriteFull() const { return cursor >= sizeof(buffer); }
|
||||
bool CanFit(u32 bytes) const { return bytes <= sizeof(buffer) - cursor; }
|
||||
|
|
23
src/kernel.h
23
src/kernel.h
|
@ -20,23 +20,7 @@
|
|||
#ifndef _kernel_h
|
||||
#define _kernel_h
|
||||
|
||||
//#include <circle/memory.h>
|
||||
//#include <circle/actled.h>
|
||||
//#include <circle/devicenameservice.h>
|
||||
//#include <circle/koptions.h>
|
||||
//#include <circle/screen.h>
|
||||
//#include <circle/serial.h>
|
||||
//#include <circle/exceptionhandler.h>
|
||||
//#include <circle/interrupt.h>
|
||||
//#include <circle/logger.h>
|
||||
//#include <circle/types.h>
|
||||
//#include <circle/gpiomanager.h>
|
||||
#include "emmc.h"
|
||||
//#include <SDCard/emmc.h>
|
||||
//#include <circle/fs/fat/fatfs.h>
|
||||
//#include <circle/multicore.h>
|
||||
|
||||
//#include <circle/usb/dwhcidevice.h>
|
||||
|
||||
#include "iec_bus.h"
|
||||
#include "iec_commands.h"
|
||||
|
@ -60,13 +44,6 @@ public:
|
|||
|
||||
TShutdownMode Run (void);
|
||||
|
||||
|
||||
//private:
|
||||
// static void KeyPressedHandler(const char *pString);
|
||||
// static void ShutdownHandler(void);
|
||||
//
|
||||
// static void KeyStatusHandlerRaw(unsigned char ucModifiers, const unsigned char RawKeys[6]);
|
||||
|
||||
private:
|
||||
|
||||
// do not change this order
|
||||
|
|
Loading…
Reference in a new issue