Skip to content

Commit c593b73

Browse files
committed
fix (#33): Added reset option and ROM swapping
1 parent 3d7d3c0 commit c593b73

File tree

5 files changed

+45
-44
lines changed

5 files changed

+45
-44
lines changed

dist/Cores/agg23.SNES/core.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
"description": "Super Nintendo and Super Famicom. Nintendo's second major home console",
88
"author": "agg23",
99
"url": "https://github.com/agg23/openfpga-snes",
10-
"version": "0.2.0",
11-
"date_release": "2022-09-19"
10+
"version": "0.3.0",
11+
"date_release": "2022-09-28"
1212
},
1313
"framework": {
1414
"target_product": "Analogue Pocket",

dist/Cores/agg23.SNES/data.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"name": "SMC",
77
"id": 0,
88
"required": true,
9-
"parameters": "0x108",
9+
"parameters": "0x109",
1010
"extensions": ["smc", "sfc"],
1111
"address": "0x10000000"
1212
},

dist/Cores/agg23.SNES/interact.json

+24-32
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22
"interact": {
33
"magic": "APF_VER_1",
44
"variables": [
5+
{
6+
"name": "Reset core",
7+
"id": 10,
8+
"type": "action",
9+
"enabled": true,
10+
"address": "0x00000050",
11+
"value": 1
12+
},
513
{
614
"name": "Use Multitap",
715
"id": 20,
@@ -16,42 +24,26 @@
1624
{
1725
"name": "Lightgun Options",
1826
"id": 30,
19-
"type": "action",
20-
"enabled": false
21-
},
22-
{
23-
"name": "No Lightgun",
24-
"id": 31,
25-
"group": 3,
26-
"type": "radio",
27-
"enabled": true,
28-
"address": "0x00000104",
29-
"persist": true,
30-
"writeonly": true,
31-
"defaultval": 1,
32-
"value": 0
33-
},
34-
{
35-
"name": "Use Super Scope",
36-
"id": 32,
37-
"group": 3,
38-
"type": "radio",
27+
"type": "list",
3928
"enabled": true,
4029
"address": "0x00000104",
41-
"writeonly": true,
4230
"persist": true,
43-
"value": 1
44-
},
45-
{
46-
"name": "Use Justifier",
47-
"id": 33,
48-
"group": 3,
49-
"type": "radio",
50-
"enabled": true,
51-
"address": "0x00000104",
5231
"writeonly": true,
53-
"persist": true,
54-
"value": 3
32+
"defaultval": 0,
33+
"options": [
34+
{
35+
"name": "No Lightgun",
36+
"value": 0
37+
},
38+
{
39+
"name": "Use Super Scope",
40+
"value": 1
41+
},
42+
{
43+
"name": "Use Justifier",
44+
"value": 2
45+
}
46+
]
5547
},
5648
{
5749
"name": "D-Pad Aim Speed",

src/fpga/apf/build_id.mif

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ DATA_RADIX = HEX;
99
CONTENT
1010
BEGIN
1111

12-
0E0 : 20220924;
13-
0E1 : 00112758;
14-
0E2 : 2ef70c64;
12+
0E0 : 20220928;
13+
0E1 : 00083938;
14+
0E2 : 46a76eb8;
1515

1616
END;

src/fpga/core/core_top.v

+15-6
Original file line numberDiff line numberDiff line change
@@ -329,8 +329,15 @@ module core_top (
329329
end
330330

331331
always @(posedge clk_74a) begin
332+
if (reset_delay > 0) begin
333+
reset_delay <= reset_delay - 1;
334+
end
335+
332336
if (bridge_wr) begin
333337
casex (bridge_addr)
338+
32'h00000050: begin
339+
reset_delay <= 32'h100000;
340+
end
334341
32'h00000100: begin
335342
multitap_enabled <= bridge_wr_data[0];
336343
end
@@ -626,7 +633,7 @@ module core_top (
626633
cont4_key_s,
627634
clk_sys_21_48
628635
);
629-
636+
630637
synch_3 #(
631638
.WIDTH(32)
632639
) joy1_s (
@@ -638,17 +645,19 @@ module core_top (
638645
wire PAL;
639646

640647
// Settings
641-
reg multitap_enabled;
642-
reg lightgun_enabled;
643-
reg lightgun_type;
648+
reg multitap_enabled;
649+
reg lightgun_enabled;
650+
reg lightgun_type;
644651
reg [7:0] lightgun_dpad_aim_speed;
645-
reg use_4_3_video;
652+
reg use_4_3_video;
653+
654+
reg [31:0] reset_delay = 0;
646655

647656
MAIN_SNES snes (
648657
.clk_mem_85_9 (clk_mem_85_9),
649658
.clk_sys_21_48(clk_sys_21_48),
650659

651-
.core_reset(~pll_core_locked),
660+
.core_reset(~pll_core_locked || reset_delay > 0),
652661

653662
// Settings
654663
.multitap_enabled(multitap_enabled),

0 commit comments

Comments
 (0)