Skip to content

Commit 9e7a466

Browse files
committed
Increased maximum ROM size to 252/256 MiB.
Improved framebuffer size heuristic.
1 parent 745a66a commit 9e7a466

5 files changed

Lines changed: 16 additions & 10 deletions

File tree

fileBrowser/fileBrowser-libfat.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,11 @@ int fileBrowser_libfatROM_deinit(fileBrowser_file* f){
394394
int fileBrowser_libfatROM_readFile(fileBrowser_file* file, void* buffer, unsigned int length){
395395
if(stop) //do this only in the menu
396396
pauseRemovalThread();
397-
if(!fd) fd = fopen( file->name, "rb");
397+
if(!fd) {
398+
fd = fopen(file->name, "rb");
399+
if(!fd) return FILE_BROWSER_ERROR;
400+
setvbuf(fd, NULL, _IOFBF, 32*1024);
401+
}
398402

399403
fseek(fd, file->offset, SEEK_SET);
400404
int bytes_read = fread(buffer, 1, length, fd);

gc_memory/dma.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ void dma_pi_read()
148148
}
149149

150150
longueur = (pi_register.pi_rd_len_reg & 0xFFFFFE)+2;
151-
i = (pi_register.pi_cart_addr_reg-0x10000000)&0x3FFFFFE;
151+
i = (pi_register.pi_cart_addr_reg-0x10000000)&0xFFFFFFE;
152152
longueur = (i + longueur) > rom_length ?
153153
(rom_length - i) : longueur;
154154
longueur = (pi_register.pi_dram_addr_reg + longueur) > MEMMASK ?
@@ -226,7 +226,7 @@ void dma_pi_write()
226226
}
227227

228228
longueur = (pi_register.pi_wr_len_reg & 0xFFFFFE)+2;
229-
i = (pi_register.pi_cart_addr_reg-0x10000000)&0x3FFFFFE;
229+
i = (pi_register.pi_cart_addr_reg-0x10000000)&0xFFFFFFE;
230230
longueur = (i + longueur) > rom_length ?
231231
(rom_length - i) : longueur;
232232
longueur = (pi_register.pi_dram_addr_reg + longueur) > MEMMASK ?

gc_memory/memory.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3076,22 +3076,22 @@ void read_rom()
30763076
rom_written = 0;
30773077
}
30783078
else
3079-
word = *(unsigned long *)ROMCache_pointer(address & 0x3FFFFFF);
3079+
word = *(unsigned long *)ROMCache_pointer(address & 0xFFFFFFF);
30803080
}
30813081

30823082
void read_romb()
30833083
{
3084-
byte = *(unsigned char *)ROMCache_pointer(address & 0x3FFFFFF);
3084+
byte = *(unsigned char *)ROMCache_pointer(address & 0xFFFFFFF);
30853085
}
30863086

30873087
void read_romh()
30883088
{
3089-
hword = *(unsigned short *)ROMCache_pointer(address & 0x3FFFFFF);
3089+
hword = *(unsigned short *)ROMCache_pointer(address & 0xFFFFFFF);
30903090
}
30913091

30923092
void read_romd()
30933093
{
3094-
dword = *(unsigned long long *)ROMCache_pointer(address & 0x3FFFFFF);
3094+
dword = *(unsigned long long *)ROMCache_pointer(address & 0xFFFFFFF);
30953095
}
30963096

30973097
void write_rom()

glN64_GX/VI.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,17 @@ void VI_UpdateSize()
7272

7373
u32 width = _SHIFTR( *REG.VI_WIDTH, 0, 12 );
7474

75-
VI.width = hEnd == hStart ? width : lrint(abs(hEnd - hStart) * xScale / 2) * 2;
75+
VI.width = hEnd == hStart ? width : lrint(abs(hEnd - hStart) * xScale / 4) * 4;
76+
77+
if (VI.width > width) VI.width = width;
7678

7779
yScale *= width / VI.width;
7880
vEnd += vStart % 2;
7981
vStart += vEnd % 2;
8082
vStart = vStart / 2 - 1;
8183
vEnd = vEnd / 2 + 1;
8284

83-
VI.height = lrint(abs(vEnd - vStart) * yScale / 2) * 2;
85+
VI.height = lrint(abs(vEnd - vStart) * yScale / 4) * 4;
8486

8587
if (VI.width == 0) VI.width = 320;
8688
if (VI.height == 0) VI.height = 240;

main/ROM-Cache.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ static char *ROMCACHE_LO = &GC_ROM_CACHE[0];
5353
#define BLOCK_MASK (BLOCK_SIZE-1)
5454
#define OFFSET_MASK (0xFFFFFFFF-BLOCK_MASK)
5555
#define BLOCK_SHIFT (16) //only change ME and BLOCK_SIZE
56-
#define MAX_ROMSIZE (64*1024*1024)
56+
#define MAX_ROMSIZE (256*1024*1024)
5757
#define NUM_BLOCKS (MAX_ROMSIZE/BLOCK_SIZE)
5858

5959
static u32 ROMSize;

0 commit comments

Comments
 (0)