Skip to content

Commit 32a93c2

Browse files
committed
Fix high resolution MDEC processing
1 parent 4f5f051 commit 32a93c2

6 files changed

Lines changed: 10 additions & 7 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ SDL2-2.30.3/
88
sdl2-win32/
99
sdl2-win64/
1010
system573/
11+
psyq/
1112
test/
1213
bios/
1314
roms/

psx/bus.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ void psx_bus_write32(psx_bus_t* bus, uint32_t addr, uint32_t value) {
182182
}
183183

184184

185-
void psx_bus_write16(psx_bus_t* bus, uint32_t addr, uint16_t value) {
185+
void psx_bus_write16(psx_bus_t* bus, uint32_t addr, uint32_t value) {
186186
bus->access_cycles = 0;
187187

188188
uint32_t vaddr = addr;
@@ -217,7 +217,7 @@ void psx_bus_write16(psx_bus_t* bus, uint32_t addr, uint16_t value) {
217217
//exit(1);
218218
}
219219

220-
void psx_bus_write8(psx_bus_t* bus, uint32_t addr, uint8_t value) {
220+
void psx_bus_write8(psx_bus_t* bus, uint32_t addr, uint32_t value) {
221221
bus->access_cycles = 0;
222222

223223
uint32_t vaddr = addr;

psx/bus.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ uint32_t psx_bus_read32(psx_bus_t*, uint32_t);
1313
uint16_t psx_bus_read16(psx_bus_t*, uint32_t);
1414
uint8_t psx_bus_read8(psx_bus_t*, uint32_t);
1515
void psx_bus_write32(psx_bus_t*, uint32_t, uint32_t);
16-
void psx_bus_write16(psx_bus_t*, uint32_t, uint16_t);
17-
void psx_bus_write8(psx_bus_t*, uint32_t, uint8_t);
16+
void psx_bus_write16(psx_bus_t*, uint32_t, uint32_t);
17+
void psx_bus_write8(psx_bus_t*, uint32_t, uint32_t);
1818
uint32_t psx_bus_get_access_cycles(psx_bus_t*);
1919
void psx_bus_destroy(psx_bus_t*);
2020

psx/dev/gpu.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ void gpu_render_triangle(psx_gpu_t* gpu, vertex_t v0, vertex_t v1, vertex_t v2,
335335
if (!texel)
336336
continue;
337337

338-
if ((data.attrib & PA_TRANSP) != 0)
338+
if (data.attrib & PA_TRANSP)
339339
transp = (texel & 0x8000) != 0;
340340

341341
if (data.attrib & PA_RAW) {

psx/dev/mdec.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,8 @@ void mdec_decode_macroblock(psx_mdec_t* mdec) {
237237
mdec->output_empty = 0;
238238
mdec->output_index = 0;
239239

240+
// printf("output words remaining: %d (%x) count=%d block_size=%lld size=%lld\n", mdec->output_words_remaining, mdec->output_words_remaining, block_count, block_size, size);
241+
240242
// log_set_quiet(0);
241243
// log_fatal("Finished decoding %u-bit MDEC data input=(%04x -> %08x)",
242244
// (mdec->output_depth == 3) ? 15 : 24,

psx/dev/mdec.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@ typedef struct {
5757

5858
uint8_t* output;
5959
int output_index;
60-
uint16_t output_words_remaining;
60+
uint32_t output_words_remaining;
6161

62-
uint16_t words_remaining;
62+
uint32_t words_remaining;
6363
int current_block;
6464
int output_bit15;
6565
int output_signed;

0 commit comments

Comments
 (0)