Commit 31c99dc
Add support for mapper 9 (MMC2)
MMC2 is used exclusively by Mike Tyson's Punch-Out!! and features
tile-triggered CHR bank switching with two independent 4KB latches.
The PPU rendering pipeline now calls latchAccess() during BG and sprite
tile fetches so the mapper can monitor pattern table addresses, matching
real hardware behavior. Unused sprite slot dummy fetches (tile $FF in
8x16 mode) are simulated to correctly reset latch 1 between scanlines.
Fixes #430
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>1 parent 5d51ece commit 31c99dc
3 files changed
+237
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
| |||
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
| 31 | + | |
30 | 32 | | |
31 | 33 | | |
32 | 34 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
880 | 880 | | |
881 | 881 | | |
882 | 882 | | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
883 | 887 | | |
884 | 888 | | |
885 | 889 | | |
| |||
893 | 897 | | |
894 | 898 | | |
895 | 899 | | |
| 900 | + | |
896 | 901 | | |
897 | 902 | | |
898 | 903 | | |
| |||
917 | 922 | | |
918 | 923 | | |
919 | 924 | | |
| 925 | + | |
920 | 926 | | |
921 | 927 | | |
922 | 928 | | |
923 | 929 | | |
924 | 930 | | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
| 934 | + | |
925 | 935 | | |
926 | 936 | | |
927 | 937 | | |
| |||
939 | 949 | | |
940 | 950 | | |
941 | 951 | | |
| 952 | + | |
942 | 953 | | |
943 | 954 | | |
944 | 955 | | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
945 | 971 | | |
946 | 972 | | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
947 | 980 | | |
948 | 981 | | |
949 | 982 | | |
| |||
955 | 988 | | |
956 | 989 | | |
957 | 990 | | |
958 | | - | |
959 | | - | |
960 | | - | |
961 | | - | |
962 | | - | |
| 991 | + | |
963 | 992 | | |
964 | 993 | | |
965 | 994 | | |
| |||
996 | 1025 | | |
997 | 1026 | | |
998 | 1027 | | |
| 1028 | + | |
| 1029 | + | |
| 1030 | + | |
| 1031 | + | |
| 1032 | + | |
| 1033 | + | |
| 1034 | + | |
| 1035 | + | |
| 1036 | + | |
| 1037 | + | |
999 | 1038 | | |
1000 | 1039 | | |
1001 | 1040 | | |
| |||
1006 | 1045 | | |
1007 | 1046 | | |
1008 | 1047 | | |
| 1048 | + | |
1009 | 1049 | | |
1010 | 1050 | | |
1011 | 1051 | | |
| |||
1033 | 1073 | | |
1034 | 1074 | | |
1035 | 1075 | | |
| 1076 | + | |
1036 | 1077 | | |
1037 | 1078 | | |
1038 | 1079 | | |
| |||
1044 | 1085 | | |
1045 | 1086 | | |
1046 | 1087 | | |
| 1088 | + | |
1047 | 1089 | | |
1048 | 1090 | | |
1049 | 1091 | | |
| |||
1089 | 1131 | | |
1090 | 1132 | | |
1091 | 1133 | | |
| 1134 | + | |
| 1135 | + | |
| 1136 | + | |
| 1137 | + | |
1092 | 1138 | | |
1093 | 1139 | | |
1094 | 1140 | | |
| 1141 | + | |
| 1142 | + | |
| 1143 | + | |
| 1144 | + | |
1095 | 1145 | | |
1096 | 1146 | | |
1097 | 1147 | | |
| |||
1149 | 1199 | | |
1150 | 1200 | | |
1151 | 1201 | | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
| 1205 | + | |
1152 | 1206 | | |
1153 | 1207 | | |
1154 | 1208 | | |
| |||
0 commit comments