Skip to content

Commit a16cbcf

Browse files
committed
Make Navy Moves work. However, with this change Profanation does not
1 parent 1dc24fc commit a16cbcf

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

lstate.c

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ unsigned int i, j;
7070

7171
unsigned char *ptr;
7272
unsigned char *ptr_origin;
73-
unsigned char *from;
73+
//unsigned char *from;
7474
unsigned char *to;
7575

7676
unsigned char rom_selected_p0, rom_selected_p1;
@@ -81,6 +81,7 @@ void init_files() {
8181
FCBs();
8282
}
8383

84+
#ifdef DEBUG
8485
void print_slot_config() {
8586
// Memory mapper regs
8687
// https://www.msx.org/wiki/Memory_Mapper
@@ -121,6 +122,7 @@ void print_slot_config() {
121122
printf("Page 3, C000-FFFF: subslot %d\r\n", (val_inv & 0b11000000) >> 6);
122123
printf("\r\n");
123124
}
125+
#endif
124126

125127

126128
void main(char *argv[], int argc) {
@@ -145,7 +147,9 @@ void main(char *argv[], int argc) {
145147
return;
146148
}
147149

150+
#ifdef DEBUG
148151
print_slot_config();
152+
#endif
149153

150154
// get current SP
151155
__asm
@@ -202,14 +206,14 @@ void main(char *argv[], int argc) {
202206
Read(fH, buffer, sizeof(buffer));
203207

204208
// Don't overwritte MSX-DOS variables area
205-
if (segment == 13 && i >= 12 && rom_selected_p0)
209+
/*if (segment == 13 && i >= 14 && rom_selected_p0) // OK PROFANATION, BAD NAVY
206210
from = (unsigned char *)(0xC000 + i*sizeof(buffer));
207211
else
208-
from = buffer;
212+
from = buffer;*/
209213

210-
//printf("Copy from "); PrintHex((unsigned int)from); printf(" to "); PrintHex((unsigned int)to); printf("\r\n");
211214
OutPort(0xFE, segment); // FE (write) Mapper segment for page 2 (#8000-#BFFF)
212-
MemCopy(to, from, sizeof(buffer));
215+
MemCopy(to, buffer, sizeof(buffer)); // OK NAVY, BAD PROFANATION
216+
//MemCopy(to, from, sizeof(buffer)); // BAD NAVY, OK PROFANATION
213217

214218
// If rom_selected_p0, we need to copy the
215219
// H.KEYI and H.TIMI hooks the game configured
@@ -224,21 +228,21 @@ void main(char *argv[], int argc) {
224228

225229

226230

227-
// Zero VRAM
228-
#ifndef DEBUG
229-
unsigned char VRAM_Kb = GetVramSize();
230-
FillVram(0, 0, VRAM_Kb*1024);
231-
SetBorderColor(1);
232-
233231
// Set the 8 VDP regs.
234232
Read(fH, VDP_regs, 8);
235233
for (i = 0; i < 8; i++)
236234
VDPwrite(i, VDP_regs[i]);
237235

236+
// Zero VRAM
237+
#ifndef DEBUG
238+
unsigned char VRAM_Kb = GetVramSize();
239+
FillVram(0, 0, VRAM_Kb*1024);
240+
//SetBorderColor(1);
241+
238242
// Dump 64 Kb of VRAM
239-
for (i = 0; i < 16*1024; i += 1024) {
240-
Read(fH, buffer, 1024);
241-
CopyRamToVram(buffer, i, 1024);
243+
for (i = 0; i < 16*1024; i += sizeof(buffer)) {
244+
Read(fH, buffer, sizeof(buffer));
245+
CopyRamToVram(buffer, i, sizeof(buffer));
242246
}
243247
#endif
244248

@@ -286,8 +290,6 @@ void main(char *argv[], int argc) {
286290
ptr_origin = (unsigned char *)0xF000; // In a different page: we can't access it. Choose a high position in our page 3 and pray :D
287291
}
288292

289-
//ptr_origin = (unsigned char *)0x3000; // DEBUG
290-
291293
#ifdef DEBUG
292294
printf("C) Using ptr_origin = "); PrintHex((unsigned int)ptr_origin); printf("\r\n");
293295
#endif

0 commit comments

Comments
 (0)