rename expr.cpp.h to expr.c.h
[rofl0r-VisualBoyAdvance.git] / src / CheatSearch.h
blob10db35d2c13d44dc4f34475a49b97afb68147716
1 // -*- C++ -*-
2 // VisualBoyAdvance - Nintendo Gameboy/GameboyAdvance (TM) emulator.
3 // Copyright (C) 1999-2003 Forgotten
4 // Copyright (C) 2004 Forgotten and the VBA development team
6 // This program is free software; you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License as published by
8 // the Free Software Foundation; either version 2, or(at your option)
9 // any later version.
11 // This program is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License
17 // along with this program; if not, write to the Free Software Foundation,
18 // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 #ifndef VBA_CHEATSEARCH_H
21 #define VBA_CHEATSEARCH_H
23 #include "System.h"
25 struct CheatSearchBlock {
26 int size;
27 u32 offset;
28 u8 *bits;
29 u8 *data;
30 u8 *saved;
33 struct CheatSearchData {
34 int count;
35 CheatSearchBlock *blocks;
38 enum {
39 SEARCH_EQ,
40 SEARCH_NE,
41 SEARCH_LT,
42 SEARCH_LE,
43 SEARCH_GT,
44 SEARCH_GE
47 enum {
48 BITS_8,
49 BITS_16,
50 BITS_32
53 #define SET_BIT(bits,off) \
54 (bits)[(off) >> 3] |= (1 << ((off) & 7))
56 #define CLEAR_BIT(bits, off) \
57 (bits)[(off) >> 3] &= ~(1 << ((off) & 7))
59 #define IS_BIT_SET(bits, off) \
60 (bits)[(off) >> 3] & (1 << ((off) & 7))
62 extern CheatSearchData cheatSearchData;
63 extern void cheatSearchCleanup(CheatSearchData *cs);
64 extern void cheatSearchStart(const CheatSearchData *cs);
65 extern void cheatSearch(const CheatSearchData *cs, int compare, int size,
66 bool isSigned);
67 extern void cheatSearchValue(const CheatSearchData *cs, int compare, int size,
68 bool isSigned, u32 value);
69 extern int cheatSearchGetCount(const CheatSearchData *cs, int size);
70 extern void cheatSearchUpdateValues(const CheatSearchData *cs);
71 extern s32 cheatSearchSignedRead(u8 *data, int off, int size);
72 extern u32 cheatSearchRead(u8 *data, int off, int size);
73 #endif