OSCR
Open Source Cartridge Reader
Loading...
Searching...
No Matches
CPS3.h
1#pragma once
2#if !defined(OSCR_CORE_CPS3_H_)
3# define OSCR_CORE_CPS3_H_
4
5# include "config.h"
6
7# if HAS_CPS3
8# include "syslibinc.h"
9# include "common/Types.h"
10
15{
16 struct CartCD
17 {
18 uint32_t disc = 0;
19 uint32_t patch = 0;
20 uint32_t region = 0;
21 uint32_t regionOffset = 0;
22 uint32_t multiCart = 0;
23 uint32_t multiCartPatch1 = 0;
24 uint32_t multiCartPatch2 = 0;
25 uint32_t offsetNoCD = 0;
26 };
27
28 void menu();
29
30 void openCRDB();
31 void closeCRDB();
32
33 void cartOn();
34 void cartOff();
35
36 void printHeader();
37
38 void flashromCPS_Cartridge();
39 void flashromCPS_SIMM2x8();
40 void flashromCPS_SIMM4x8();
41 void enable64MSB();
42 void enable64LSB();
43
44 void writeByteCommand_Flash2x8(uint32_t bank, uint8_t command);
45 void readCartridge();
46 void writeCartridge(CartCD cartCD);
47 void verifyCartridge(CartCD cartCD);
48 CartCD setCartridgePatchData(crc32_t & crc32);
49 void id_SIMM2x8();
50 void resetSIMM2x8();
51 void blankcheckSIMM2x8();
52 void readSIMM2x8();
53 void readSIMM2x8B();
54 void eraseSIMM2x8();
55 void writeSIMM2x8();
56 void id_SIMM4x8();
57 void resetSIMM4x8();
58 void blankcheckSIMM4x8();
59 void eraseSIMM4x8();
60 void readSIMM4x8();
61 void writeSIMM4x8();
62 void printSIMM4x8(int numBytes);
63 void resetFlash2x8(uint32_t bank);
64 void idFlash2x8(uint32_t bank);
65 void eraseFlash2x8(uint32_t bank);
66 int busyCheck2x8(uint32_t addr, uint16_t c);
67} /* namespace OSCR::Cores::CPS3 */
68
69# endif /* HAS_CPS3 */
70#endif /* OSCR_CORE_CPS3_H_ */
System core for the CP System III.
Definition CPS3.h:15
Definition CPS3.h:17
Interface for handling CRC32 values.
Definition crc32_t.h:14