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

github.com/ClusterM/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-11 12:46:36 +0300
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2020-09-11 13:09:33 +0300
commit38b30163cbe313c46c2696ecfdb907ea44b92c52 (patch)
treeb54d3d370f9d72e7d428876403244b3ae0b073f3
parentb81e4acc9ff5bc4154f50afd86b78f65b89ed5c7 (diff)
Mappers reorganized, UNROM 512 moved to flags, BITSIZE settings added
-rw-r--r--CoolGirl.v20
-rw-r--r--mappers.vh21
2 files changed, 21 insertions, 20 deletions
diff --git a/CoolGirl.v b/CoolGirl.v
index 9e1ba18..f970442 100644
--- a/CoolGirl.v
+++ b/CoolGirl.v
@@ -10,13 +10,13 @@ module CoolGirl # (
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, // VRC4 interrupts
- parameter USE_MAPPER_030 = 0, // mapper #030 - UNROM512
+ parameter USE_MAPPER_030 = 1, // mapper #030 - add UNROM512 features to UxROM
parameter USE_MAPPER_032 = 1, // mapper #032 - IREM G101
parameter USE_MAPPER_033_048 = 1, // mappers #033 & #048 - Taito
parameter USE_MAPPER_048_INTERRUPTS = 0, // mapper #048 interrupts
- parameter USE_MAPPER_034_BxROM = 0, // mapper #034 - BxROM: Deadly Towers (Mashou), Darkseed
+ parameter USE_MAPPER_034_241_BxROM = 1, // 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 = 1, // mapper #042 - FDS conversions
parameter USE_MAPPER_042_INTERRUPTS = 0, // mapper #042 interrupts: for Mario Baby only
parameter USE_MAPPER_065 = 1, // mapper #065 - Irem's H3001
parameter USE_MAPPER_066 = 1, // mapper #066 - GxROM
@@ -27,18 +27,20 @@ module CoolGirl # (
parameter USE_MAPPER_078 = 1, // mapper #078: Holy Diver
parameter USE_MAPPER_087 = 1, // mapper #087
parameter USE_MAPPER_090 = 1, // mapper #090 - JY (partical support): Aladdin only
- parameter USE_MAPPER_093 = 1, // mapper #093
- parameter USE_MAPPER_097 = 1, // mapper #097 - IREM TAMS1
+ parameter USE_MAPPER_093 = 1, // mapper #093 - Sunsoft 2: Shanghai, Fantasy Zone
+ parameter USE_MAPPER_097 = 0, // mapper #097 - IREM TAMS1
parameter USE_MAPPER_112 = 0, // mapper #112
parameter USE_MAPPER_118 = 1, // mapper #118 - TxSROM
parameter USE_MAPPER_152 = 1, // mapper #152
parameter USE_MAPPER_163 = 1, // mapper #163
parameter USE_MAPPER_189 = 1, // mapper #189
- parameter USE_MAPPER_228 = 1, // mapper #228: Cheetahmen II only
- parameter USE_MAPPER_241 = 1, // mapper #241 - BNROM
+ parameter USE_MAPPER_228 = 0, // mapper #228: Cheetahmen II only
- parameter USE_FOUR_SCREEN = 1,
- parameter MMC3_BITSIZE = 8 // Maximum size for MMC3 PRG (6=512KB - standard size, 8=2MB - required for some hacks)
+ parameter USE_FOUR_SCREEN = 1, // Enable four-screen support, required by some games
+ parameter UxROM_BITSIZE = 4, // Maximum size for UxROM PRG (3=256KB - standard size, 4=512KB - required for some hacks/homebrew)
+ parameter AxROM_BITSIZE = 3, // Maximum size for AxROM PRG (3=256KB - standard size, 4=512KB - required for some hacks/homebrew)
+ parameter BxROM_BITSIZE = 3, // Maximum size for BxROM PRG (1=128KB - standard size, 3=512KB - required for some hacks/homebrew)
+ parameter MMC3_BITSIZE = 8 // Maximum size for MMC3 PRG (6=512KB - standard size, 8=2MB - required for some hacks/homebrew)
)
(
input m2,
diff --git a/mappers.vh b/mappers.vh
index 17c150b..b6a722b 100644
--- a/mappers.vh
+++ b/mappers.vh
@@ -461,7 +461,13 @@
begin
if (!USE_MAPPER_071 | ~flags[0] | (cpu_addr_in[14:12] != 3'b001))
begin
- prg_bank_a[5:1] = cpu_data_in[4:0];
+ prg_bank_a[UxROM_BITSIZE+1:1] = cpu_data_in[UxROM_BITSIZE:0];
+ // Mapper #30 - UNROM 512
+ if (USE_MAPPER_030 && flags[1])
+ begin
+ // One screen mirroring select, CHR RAM bank, PRG ROM bank
+ {mirroring, chr_bank_a[1:0]} = {1'b1, cpu_data_in[7:6]};
+ end
end else begin // CodeMasters, blah. Mirroring control used only by Fire Hawk
mirroring[1:0] = {1'b1, cpu_data_in[4]};
end
@@ -543,7 +549,7 @@
// Mapper #7 - AxROM
if (mapper == 5'b01000)
begin
- prg_bank_a[5:2] = cpu_data_in[3:0];
+ prg_bank_a[AxROM_BITSIZE+2:2] = cpu_data_in[AxROM_BITSIZE:0];
end
// Mapper #228 - Cheetahmen II
@@ -1006,17 +1012,10 @@
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)
+ if (USE_MAPPER_034_241_BxROM && mapper == 5'b11110)
begin
- prg_bank_a[5:2] = cpu_data_in[3:0];
+ prg_bank_a[BxROM_BITSIZE+2:2] = cpu_data_in[BxROM_BITSIZE:0];
end
// Mapper #36