| 100 | } |
| 101 | |
| 102 | void RebuildSubCheats(void) |
| 103 | { |
| 104 | uint32 x; |
| 105 | struct CHEATF *c = cheats; |
| 106 | for (x = 0; x < numsubcheats; x++) |
| 107 | { |
| 108 | SetReadHandler(SubCheats[x].addr, SubCheats[x].addr, SubCheats[x].PrevRead); |
| 109 | if (cheatMap) |
| 110 | FCEUI_SetCheatMapByte(SubCheats[x].addr, false); |
| 111 | } |
| 112 | |
| 113 | numsubcheats = 0; |
| 114 | |
| 115 | if (!globalCheatDisabled) |
| 116 | { |
| 117 | while(c) |
| 118 | { |
| 119 | if(c->type == 1 && c->status && GetReadHandler(c->addr) != SubCheatsRead) |
| 120 | { |
| 121 | SubCheats[numsubcheats].PrevRead = GetReadHandler(c->addr); |
| 122 | SubCheats[numsubcheats].addr = c->addr; |
| 123 | SubCheats[numsubcheats].val = c->val; |
| 124 | SubCheats[numsubcheats].compare = c->compare; |
| 125 | SetReadHandler(c->addr, c->addr, SubCheatsRead); |
| 126 | if (cheatMap) |
| 127 | FCEUI_SetCheatMapByte(SubCheats[numsubcheats].addr, true); |
| 128 | numsubcheats++; |
| 129 | } |
| 130 | c = c->next; |
| 131 | } |
| 132 | } |
| 133 | FrozenAddressCount = numsubcheats; //Update the frozen address list |
| 134 | |
| 135 | } |
| 136 | |
| 137 | void FCEU_PowerCheats() |
| 138 | { |
no test coverage detected