Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/coolgirl-multicart/coolgirl-famicom-multicart.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2020-09-10 22:54:56 +0300
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2020-09-10 23:16:52 +0300
commitc5deeb5652dfadef61980430cfecdbf266d89ce5 (patch)
treed4b5105d3c144bbb050f63df2b628ae07f17f322
parent4a8de7e413095485a7fc8a8908236b0d65bfd786 (diff)
New mappers: 30, 34, 36, 70
-rw-r--r--CoolGirl.v6
-rw-r--r--mappers.vh44
2 files changed, 42 insertions, 8 deletions
diff --git a/CoolGirl.v b/CoolGirl.v
index f909f36..c2b585f 100644
--- a/CoolGirl.v
+++ b/CoolGirl.v
@@ -6,14 +6,18 @@ module CoolGirl2 # (
parameter USE_MAPPER_021_022_023_025 = 1, // mappers #021, #022, #023, #025 - VRC2, VRC4
parameter USE_MAPPER_022 = 1, // mapper #022 - VRC2a (shifted CHR lines)
parameter USE_VRC4_INTERRUPTS = 1, // for VRC4
+ parameter USE_MAPPER_030 = 0, // mapper #030 - UNROM512
parameter USE_MAPPER_032 = 1, // mapper #032 - IREM G101
- parameter USE_MAPPER_033_048 = 1, // mappers #033 & #048 - Taito
+ parameter USE_MAPPER_033_048 = 1, // mappers #033 & #048 - Taito
parameter USE_MAPPER_048_INTERRUPTS = 0, // mapper #048 - Taito
+ parameter USE_MAPPER_034_BxROM = 0, // mapper #034 - BxROM: Deadly Towers (Mashou), Darkseed
+ parameter USE_MAPPER_036 = 0, // mapper #036 - TXC's PCB 01-22000-400
parameter USE_MAPPER_042 = 0, // mapper #042
parameter USE_MAPPER_042_INTERRUPTS = 0, // mapper #042 (for Mario Baby only)
parameter USE_MAPPER_065 = 1, // mapper #065 - Irem's H3001
parameter USE_MAPPER_066 = 1, // mapper #066 - GxROM
parameter USE_MAPPER_069 = 1, // mapper #069 - Sunsoft
+ parameter USE_MAPPER_070 = 0, // mapper #070: Family Trainer, Kamen Rider Club, Space Shadow
parameter USE_MAPPER_071 = 1, // mapper #071 (for Fire Hawk only)
parameter USE_MAPPER_073 = 0, // mapper #073 - VRC3
parameter USE_MAPPER_078 = 1, // mapper #078 - Holy Diver
diff --git a/mappers.vh b/mappers.vh
index 4dd9943..17c150b 100644
--- a/mappers.vh
+++ b/mappers.vh
@@ -90,6 +90,8 @@
{1'b1, r5[0] ? r2 : r1} :
(USE_MAPPER_005 && (mapper == 5'b01111) && (cpu_addr_in[14:0] == 15'h5204)) ?
{1'b1, irq_scanline2_out, ~new_screen, 6'b000000} :
+ (USE_MAPPER_036 && mapper == 5'b11101 && {cpu_addr_in[14:13], cpu_addr_in[8]} == 3'b101) ? // Need by Strike Wolf, being simplified mapper, this cart still uses some TCX mapper features andrely on it
+ {1'b1, 2'b00, prg_bank_a[3:2], 4'b00} :
//(USE_MAPPER_090_MUL && (mapper == 5'b01101) && (cpu_addr_in[14:0] == 15'h5800)) ? {1'b1, mul[7:0]} :
//(USE_MAPPER_090_MUL && (mapper == 5'b01101) && (cpu_addr_in[14:0] == 15'h5801)) ? {1'b1, mul[15:8]} :
9'b000000000
@@ -430,7 +432,7 @@
irq_scanline2_enabled = cpu_data_in[7];
//irq_scanline2_clear = 1;
end
- end
+ end
// temp/test
/*
@@ -538,12 +540,10 @@
endcase
end
- // Mapper #7 - AxROM, mapper #241 - BNROM
+ // Mapper #7 - AxROM
if (mapper == 5'b01000)
begin
prg_bank_a[5:2] = cpu_data_in[3:0];
- if (!USE_MAPPER_241 || !flags[0]) // BNROM?
- mirroring = {1'b1, cpu_data_in[4]};
end
// Mapper #228 - Cheetahmen II
@@ -1005,6 +1005,36 @@
end
endcase
end
+
+ // Mapper #30 - UNROM 512
+ if (USE_MAPPER_030 && mapper == 5'b11011)
+ begin
+ // One screen Mirroring select, CHR RAM bank, PRG ROM bank
+ { mirroring, chr_bank_a[1:0], prg_bank_a[5:1]} = {1'b1, cpu_data_in[7:0]};
+ end
+
+ // Mapper #34 - BxROM
+ if (USE_MAPPER_034_BxROM && mapper == 5'b11110)
+ begin
+ prg_bank_a[5:2] = cpu_data_in[3:0];
+ end
+
+ // Mapper #36
+ if (USE_MAPPER_036 && mapper == 5'b11101)
+ begin
+ if (cpu_addr_in[14:1] != 14'b11111111111111)
+ begin
+ prg_bank_a[5:2] = cpu_data_in[7:4];
+ chr_bank_a[6:3] = cpu_data_in[3:0];
+ end
+ end
+
+ // Mapper #70
+ if (USE_MAPPER_070 && mapper == 5'b11110)
+ begin
+ prg_bank_a[4:1] = cpu_data_in[7:4];
+ chr_bank_a[6:3] = cpu_data_in[3:0];
+ end
end // romsel
end // write
@@ -1071,7 +1101,9 @@
end else if (ppu_rd_hi_time < 4'b1111)
begin
ppu_rd_hi_time = ppu_rd_hi_time + 1'b1;
- end else new_screen = 1;
+ end else begin
+ new_screen = 1;
+ end
end
// Scanline counter
@@ -1111,5 +1143,3 @@
if (ppu_addr_in[13:3] == 11'b01111111101) ppu_latch1 = 1;
end
end
-
- \ No newline at end of file