Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #if defined(_WIN32)
- #define dllexport __declspec(dllexport)
- #else
- #define dllexport
- #endif
- #include <stdio.h>
- #include <stdlib.h>
- typedef char int8;
- typedef short int16;
- typedef int int32;
- typedef unsigned uint8;
- typedef unsigned short uint16;
- typedef unsigned int uint32;
- extern "C" {
- void link_power();
- void link_reset();
- unsigned link_run();
- uint8 link_read(unsigned addr);
- void link_write(unsigned addr, uint8 data);
- }
- struct BSX {
- struct Regs {
- uint8 sat_test[2];
- uint8 dl_size;
- uint8 dl_main;
- uint8 dl_sec;
- uint8 dl_check;
- //uint16 set_unknown;
- bool dl_main_enable;
- bool dl_sec_enable;
- } regs;
- unsigned run() {
- return 2u;
- }
- uint8 read(unsigned addr) {
- addr&=0xFFFF;
- switch (addr) {
- case 0x2188:
- return regs.sat_test[1];
- break;
- case 0x2189:
- return regs.sat_test[2];
- break;
- default:
- return 0x00;
- break;
- }
- }
- void write(unsigned addr, uint8 data) {
- addr&=0xFFFF;
- switch (addr) {
- case 0x2188:
- regs.sat_test[1]=data;
- break;
- case 0x2189:
- regs.sat_test[2]=data;
- break;
- }
- }
- void power() {
- printf("Initialized BS-X");
- reset();
- }
- void reset() {
- printf("(Re)set.");
- }
- };
- static BSX bsx;
- dllexport void link_power() {
- return bsx.power();
- }
- dllexport void link_reset() {
- return bsx.reset();
- }
- dllexport unsigned link_run() {
- return bsx.run();
- }
- dllexport uint8 link_read(unsigned addr) {
- return bsx.read(addr);
- }
- dllexport void link_write(unsigned addr, uint8 data) {
- return bsx.write(addr, data);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement