Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #if defined(_WIN32)
- #define dllexport __declspec(dllexport)
- #else
- #define dllexport
- #endif
- //BS-X Project Link DLL for bsnes by Seru-kun/LuigiBlood
- //link_read and link_write doesn't work.
- //Little update
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdint.h>
- #include <windows.h>
- /*
- typedef signed char int8;
- typedef signed short int16;
- typedef signed int int32;
- typedef unsigned char uint8;
- typedef unsigned short uint16;
- typedef unsigned int uint32;
- */
- extern "C" {
- void link_power();
- void link_reset();
- unsigned link_run();
- uint8_t link_read(unsigned addr);
- void link_write(unsigned addr, uint8_t data);
- }
- BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved)
- {
- return TRUE;
- }
- struct BSX {
- struct Regs {
- uint8_t sat_test[1];
- uint8_t dl_size;
- uint8_t dl_main;
- uint8_t dl_sec;
- uint8_t dl_check;
- //uint16 set_unknown;
- bool dl_main_enable;
- bool dl_sec_enable;
- } regs;
- unsigned run() {
- return 20000u;
- }
- uint8_t read(unsigned addr) {
- printf("Read! %X\n", addr);
- addr&=0xFFFF;
- switch (addr) {
- case 0x2188:
- return regs.sat_test[0];
- break;
- case 0x2189:
- return regs.sat_test[1];
- break;
- default:
- return 0x00;
- break;
- }
- }
- void write(unsigned addr, uint8_t data) {
- printf("Write! %X\n", addr);
- addr&=0xFFFF;
- switch (addr) {
- case 0x2188:
- regs.sat_test[0]=data;
- break;
- case 0x2189:
- regs.sat_test[1]=data;
- break;
- }
- }
- void power() {
- printf("Initialized BS-X\n");
- reset();
- }
- void reset() {
- printf("(Re)set.\n");
- }
- };
- static BSX bsx;
- //Exported functions
- dllexport void link_power() {
- bsx.power();
- }
- dllexport void link_reset() {
- bsx.reset();
- }
- dllexport unsigned link_run() {
- return bsx.run();
- }
- dllexport uint8_t link_read(unsigned addr) {
- return bsx.read(addr);
- }
- dllexport void link_write(unsigned addr, uint8_t data) {
- bsx.write(addr, data);
- }
Advertisement
Add Comment
Please, Sign In to add comment