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-14 21:27:11 +0300
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2020-09-14 23:21:08 +0300
commitbff16db6bc97dd7ab2c2f576b92a2d50019c50a7 (patch)
treedfa9fcc74981b5299dde007c170d4f1316a7d160
parent6ea0713025aff758b7e866dc1f2d1a409de5705c (diff)
Added mapper #38
-rw-r--r--CoolGirl.v1
-rw-r--r--mappers.vh15
2 files changed, 13 insertions, 3 deletions
diff --git a/CoolGirl.v b/CoolGirl.v
index 9338c34..c070b00 100644
--- a/CoolGirl.v
+++ b/CoolGirl.v
@@ -16,6 +16,7 @@ module CoolGirl # (
parameter USE_MAPPER_048_INTERRUPTS = 0, // mapper #048 interrupts
parameter USE_MAPPER_034_241_BxROM = 1, // mappers #034 & #241 - BxROM: Deadly Towers (Mashou), Darkseed
parameter USE_MAPPER_036 = 0, // mapper #036 - TXC's PCB 01-22000-400
+ parameter USE_MAPPER_038 = 0, // mapper #038: Crime Busters
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
diff --git a/mappers.vh b/mappers.vh
index 1939f1d..3b0de73 100644
--- a/mappers.vh
+++ b/mappers.vh
@@ -240,7 +240,7 @@
begin
reg carry;
// Cycle mode without prescaler is not used by any games? It's missed in fceux source code.
- /*
+ /*
if (vrc4_irq_cpu_control[2]) // cycle mode
begin
{carry, vrc4_irq_cpu_value[7:0]} = vrc4_irq_cpu_value[7:0] + 1'b1; // just count IRQ value
@@ -250,8 +250,8 @@
vrc4_irq_cpu_value[7:0] = vrc4_irq_cpu_latch[7:0];
end
end else
- */
- begin // scanline mode
+ */
+ begin // scanline mode
vrc4_irq_prescaler = vrc4_irq_prescaler + 1'b1; // count prescaler
if ((vrc4_irq_prescaler_counter[1] == 0 && vrc4_irq_prescaler == 114) || (vrc4_irq_prescaler_counter[1] == 1 && vrc4_irq_prescaler == 113)) // 114, 114, 113
begin
@@ -524,6 +524,15 @@
chr_bank_e[4:2] = {1'b1, cpu_data_in[5:4]};
end
end
+
+ if (USE_MAPPER_038 && (mapper == 6'b100000))
+ begin
+ if (cpu_addr_in[14:12] == 3'b111)
+ begin
+ prg_bank_a[3:2] = cpu_data_in[1:0];
+ chr_bank_a[4:3] = cpu_data_in[3:2];
+ end
+ end
// temp/test
/*