diff options
author | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2020-09-11 12:46:36 +0300 |
---|---|---|
committer | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2020-09-11 13:09:33 +0300 |
commit | 38b30163cbe313c46c2696ecfdb907ea44b92c52 (patch) | |
tree | b54d3d370f9d72e7d428876403244b3ae0b073f3 | |
parent | b81e4acc9ff5bc4154f50afd86b78f65b89ed5c7 (diff) |
Mappers reorganized, UNROM 512 moved to flags, BITSIZE settings added
-rw-r--r-- | CoolGirl.v | 20 | ||||
-rw-r--r-- | mappers.vh | 21 |
2 files changed, 21 insertions, 20 deletions
@@ -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,
@@ -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
|