diff options
author | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2020-09-14 21:27:11 +0300 |
---|---|---|
committer | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2020-09-14 23:21:08 +0300 |
commit | bff16db6bc97dd7ab2c2f576b92a2d50019c50a7 (patch) | |
tree | dfa9fcc74981b5299dde007c170d4f1316a7d160 | |
parent | 6ea0713025aff758b7e866dc1f2d1a409de5705c (diff) |
Added mapper #38
-rw-r--r-- | CoolGirl.v | 1 | ||||
-rw-r--r-- | mappers.vh | 15 |
2 files changed, 13 insertions, 3 deletions
@@ -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
@@ -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
/*
|