Skip to content

Commit 5bb877d

Browse files
committed
Add support for SM64 iQue in sm64extend
1 parent efe9def commit 5bb877d

3 files changed

Lines changed: 13 additions & 7 deletions

File tree

f3d2obj.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,6 @@ static void read_vertex(unsigned char *data, vertex *v, unsigned translate[])
139139
static void load_vertices(unsigned char *data, unsigned int offset, unsigned int index, unsigned int count, unsigned translate[])
140140
{
141141
unsigned i;
142-
INFO("load: %X, %d\n", offset, count);
143142
for (i = 0; i < count; i++) {
144143
if (i + index < DIM(vertex_buffer)) {
145144
read_vertex(&data[offset + i*16], &vertex_buffer[i+index], translate);
@@ -321,6 +320,7 @@ static int print_f3d(FILE *fout, unsigned int *dl_addr, arg_config *config)
321320
sprintf(tmp, "%02X ", data[i]);
322321
strcat(description, tmp);
323322
}
323+
INFO("%02X%06X: ", dl_seg, seg_offset);
324324
switch (data[0]) {
325325
case F3D_MOVEMEM:
326326
switch (data[1]) {
@@ -494,7 +494,7 @@ static int print_f3d(FILE *fout, unsigned int *dl_addr, arg_config *config)
494494
unsigned ult = w0 & 0x3FF;
495495
unsigned lrs = (w1 >> 12) & 0x3FF;
496496
unsigned dxt = w1 & 0x3FF;
497-
INFO("%14s %03X %03X %03X %u", "G_LOADBLOCK", uls, ult, lrs, dxt);
497+
INFO("%14s %03X %03X %03X %u\n", "G_LOADBLOCK", uls, ult, lrs, dxt);
498498
break;
499499
}
500500
case G_SETTILE:
@@ -545,7 +545,7 @@ static int print_f3d(FILE *fout, unsigned int *dl_addr, arg_config *config)
545545
seg_address = read_u32_be(&data[4]);
546546
bank = data[4];
547547
seg_offset = seg_address & 0x00FFFFFF;
548-
INFO("%14s %02X %06X\n", "G_SETTIMG", bank, seg_offset);
548+
INFO("%14s %08X\n", "G_SETTIMG", seg_address);
549549
fprintf(fout, "\ng s%08X_%08X\n", *dl_addr, seg_address);
550550
fprintf(fout, "usemtl M%08X\n", seg_address);
551551
tile.address = seg_address;

libsm64.c

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -292,24 +292,29 @@ rom_type sm64_rom_type(unsigned char *buf, unsigned int length)
292292
return ROM_SM64_LE;
293293
}
294294
if (!memcmp(buf, be, sizeof(be))) {
295-
if (length == 8*MB) {
296-
return ROM_SM64_BE;
297-
} else if (length > 8*MB) {
295+
if (length > 8*MB) {
298296
return ROM_SM64_BE_EXT;
297+
} else if (length > 7*MB) {
298+
return ROM_SM64_BE;
299299
}
300300
}
301301
return ROM_INVALID;
302302
}
303303

304304
rom_version sm64_rom_version(unsigned char *buf)
305305
{
306-
typedef struct {const unsigned char cksum1[4]; const rom_version version;} version_entry;
306+
typedef struct
307+
{
308+
const unsigned char cksum1[4];
309+
const rom_version version;
310+
} version_entry;
307311
const version_entry version_table[] =
308312
{
309313
{ {0x63, 0x5a, 0x2b, 0xff}, VERSION_SM64_U},
310314
{ {0xa0, 0x3c, 0xf0, 0x36}, VERSION_SM64_E},
311315
{ {0x4e, 0xaa, 0x3d, 0x0e}, VERSION_SM64_J},
312316
{ {0xd6, 0xfb, 0xa4, 0xa8}, VERSION_SM64_SHINDOU},
317+
{ {0x00, 0x00, 0x00, 0x00}, VERSION_SM64_IQUE},
313318
};
314319
for (unsigned int i = 0; i < DIM(version_table); i++) {
315320
if (!memcmp(&buf[0x10], version_table[i].cksum1, 4)) {

libsm64.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ typedef enum
2020
VERSION_SM64_E,
2121
VERSION_SM64_J,
2222
VERSION_SM64_SHINDOU,
23+
VERSION_SM64_IQUE,
2324
} rom_version;
2425

2526
typedef struct

0 commit comments

Comments
 (0)