visualboyadvance-m/src/gtk/system.cpp

178 lines
3.1 KiB
C++

// VisualBoyAdvance - Nintendo Gameboy/GameboyAdvance (TM) emulator.
// Copyright (C) 1999-2003 Forgotten
// Copyright (C) 2004 Forgotten and the VBA development team
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2, or(at your option)
// any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software Foundation,
// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "../sdl/inputSDL.h"
#include "../gba/Sound.h"
#include "../common/SoundSDL.h"
#include "window.h"
#include "intl.h"
// Required vars, used by the emulator core
//
int systemRedShift;
int systemGreenShift;
int systemBlueShift;
int systemColorDepth;
int systemVerbose;
int systemSaveUpdateCounter;
int systemFrameSkip;
u32 systemColorMap32[0x10000];
u16 systemColorMap16[0x10000];
u16 systemGbPalette[24];
int emulating;
int RGB_LOW_BITS_MASK;
inline VBA::Window * GUI()
{
return VBA::Window::poGetInstance();
}
void systemMessage(int _iId, const char * _csFormat, ...)
{
va_list args;
va_start(args, _csFormat);
GUI()->vPopupErrorV(_(_csFormat), args);
va_end(args);
}
void systemDrawScreen()
{
GUI()->vDrawScreen();
}
bool systemReadJoypads()
{
return true;
}
u32 systemReadJoypad(int joy)
{
return inputReadJoypad(joy);
}
void systemShowSpeed(int _iSpeed)
{
GUI()->vShowSpeed(_iSpeed);
}
void system10Frames(int _iRate)
{
GUI()->vComputeFrameskip(_iRate);
}
void systemFrame()
{
}
void systemSetTitle(const char * _csTitle)
{
GUI()->set_title(_csTitle);
}
void systemScreenCapture(int _iNum)
{
GUI()->vCaptureScreen(_iNum);
}
u32 systemGetClock()
{
Glib::TimeVal time;
time.assign_current_time();
return time.as_double() * 1000;
}
void systemUpdateMotionSensor()
{
}
int systemGetSensorX()
{
return 0;
}
int systemGetSensorY()
{
return 0;
}
void systemGbPrint(u8 * _puiData,
int _iLen,
int _iPages,
int _iFeed,
int _iPalette,
int _iContrast)
{
}
void systemScreenMessage(const char * _csMsg)
{
}
bool systemCanChangeSoundQuality()
{
return true;
}
bool systemPauseOnFrame()
{
return false;
}
void systemGbBorderOn()
{
}
SoundDriver * systemSoundInit()
{
soundShutdown();
return new SoundSDL();
}
void systemOnSoundShutdown()
{
}
void systemOnWriteDataToSoundBuffer(const u16 * finalWave, int length)
{
}
void debuggerMain()
{
}
void debuggerSignal(int, int)
{
}
void debuggerOutput(const char *, u32)
{
}
void debuggerBreakOnWrite(u32 address, u32 oldvalue, u32 value, int size, int t)
{
}
void (*dbgMain)() = debuggerMain;
void (*dbgSignal)(int, int) = debuggerSignal;
void (*dbgOutput)(const char *, u32) = debuggerOutput;