diff options
Diffstat (limited to 'backends/platform')
211 files changed, 3342 insertions, 3342 deletions
diff --git a/backends/platform/PalmOS/Src/base_event.cpp b/backends/platform/PalmOS/Src/base_event.cpp index fb136d92e5..81eeb4e79c 100644 --- a/backends/platform/PalmOS/Src/base_event.cpp +++ b/backends/platform/PalmOS/Src/base_event.cpp @@ -208,7 +208,7 @@ bool OSystem_PalmBase::pollEvent(Common::Event &event) { sy = -1; else if (keyCurrentState & _keyExtra.bitDown) sy = +1; - + if (keyCurrentState & _keyExtra.bitLeft) sx = -1; else if (keyCurrentState & _keyExtra.bitRight) @@ -222,7 +222,7 @@ bool OSystem_PalmBase::pollEvent(Common::Event &event) { warpMouse(x, y); return true; - } + } } } @@ -293,7 +293,7 @@ bool OSystem_PalmBase::pollEvent(Common::Event &event) { k = Common::KEYCODE_RIGHT; break; case chrLeftArrow: k = Common::KEYCODE_LEFT; break; - + // return case chrLineFeed: case chrCarriageReturn: @@ -314,10 +314,10 @@ bool OSystem_PalmBase::pollEvent(Common::Event &event) { return true; // prevent crash when alarm is raised - handled = ((ev.eType == keyDownEvent) && - (ev.data.keyDown.modifiers & commandKeyMask) && - ((ev.data.keyDown.chr == vchrAttnStateChanged) || - (ev.data.keyDown.chr == vchrAttnUnsnooze))); + handled = ((ev.eType == keyDownEvent) && + (ev.data.keyDown.modifiers & commandKeyMask) && + ((ev.data.keyDown.chr == vchrAttnStateChanged) || + (ev.data.keyDown.chr == vchrAttnUnsnooze))); // graffiti strokes, auto-off, etc... if (!handled) diff --git a/backends/platform/PalmOS/Src/base_gfx.cpp b/backends/platform/PalmOS/Src/base_gfx.cpp index cee1329308..c96a258d52 100644 --- a/backends/platform/PalmOS/Src/base_gfx.cpp +++ b/backends/platform/PalmOS/Src/base_gfx.cpp @@ -99,7 +99,7 @@ void OSystem_PalmBase::setPalette(const byte *colors, uint start, uint num) { base[i].r = colors[0]; base[i].g = colors[1]; base[i].b = colors[2]; - + extras_palette(i + start, colors[0], colors[1], colors[2]); colors += 4; } @@ -134,7 +134,7 @@ void OSystem_PalmBase::setShakePos(int shakeOffset) { void OSystem_PalmBase::updateScreen() { // Check whether the palette was changed in the meantime and update the - // screen surface accordingly. + // screen surface accordingly. if (_paletteDirtyEnd != 0 && _setPalette) { WinSetDrawWindow(WinGetDisplayWindow()); WinPalette(winPaletteSet, _paletteDirtyStart, _paletteDirtyEnd - _paletteDirtyStart, _currentPalette + _paletteDirtyStart); diff --git a/backends/platform/PalmOS/Src/base_mouse.cpp b/backends/platform/PalmOS/Src/base_mouse.cpp index 7af080e09d..93a1fd2209 100644 --- a/backends/platform/PalmOS/Src/base_mouse.cpp +++ b/backends/platform/PalmOS/Src/base_mouse.cpp @@ -54,10 +54,10 @@ void OSystem_PalmBase::setMouseCursor(const byte *buf, uint w, uint h, int hotsp if (_mouseCurState.w != w || _mouseCurState.h != h) { _mouseCurState.w = w; _mouseCurState.h = h; - + if (_mouseDataP) free(_mouseDataP); - + if (_mouseBackupP) free(_mouseBackupP); @@ -95,7 +95,7 @@ void OSystem_PalmBase::simulate_mouse(Common::Event &event, Int8 iHoriz, Int8 iV x = (x >= _screenWidth ) ? _screenWidth - 1 : x; y = (y < 0 ) ? 0 : y; y = (y >= _screenHeight ) ? _screenHeight - 1 : y; - + *xr = x; *yr = y; } diff --git a/backends/platform/PalmOS/Src/be_base.cpp b/backends/platform/PalmOS/Src/be_base.cpp index e85ba03ef1..3dadbe5286 100644 --- a/backends/platform/PalmOS/Src/be_base.cpp +++ b/backends/platform/PalmOS/Src/be_base.cpp @@ -45,13 +45,13 @@ OSystem_PalmBase::OSystem_PalmBase() { _mode = _setMode; _redawOSD = false; _setPalette = true; - + _offScreenH = NULL; _screenH = NULL; _offScreenP = NULL; _screenP = NULL; _screenPitch = gVars->screenPitch; - + _wasKey = false; _lastKeyModifier = kModifierNone; _lastKeyRepeat = 100; @@ -59,11 +59,11 @@ OSystem_PalmBase::OSystem_PalmBase() { _showBatLow = false; _batCheckTicks = SysTicksPerSecond() * 15; _batCheckLast = TimGetTicks(); - + _saveMgr = 0; _timerMgr = 0; _mixerMgr = 0; - + _mouseDataP = NULL; _mouseBackupP = NULL; _mouseVisible = false; @@ -73,7 +73,7 @@ OSystem_PalmBase::OSystem_PalmBase() { MemSet(&_mouseOldState, sizeof(_mouseOldState), 0); MemSet(&_timer, sizeof(TimerType), 0); MemSet(&_sound, sizeof(SoundType), 0); - + _keyExtraRepeat = 0; _keyExtraPressed = 0; _keyExtraDelay = (gVars->arrowKeys) ? computeMsecs(125) : computeMsecs(25); @@ -136,7 +136,7 @@ void OSystem_PalmBase::setTimerCallback(TimerProc callback, int timer) { _timer.duration = timer; _timer.nextExpiry = getMillis() + timer; _timer.callback = callback; - _timer.active = true; + _timer.active = true; } else { _timer.active = false; } @@ -155,7 +155,7 @@ void OSystem_PalmBase::quit() { delete _saveMgr; delete _timerMgr; delete _mixerMgr; - + exit(0); } diff --git a/backends/platform/PalmOS/Src/be_base.h b/backends/platform/PalmOS/Src/be_base.h index a4c27cf2da..38b76fcb05 100644 --- a/backends/platform/PalmOS/Src/be_base.h +++ b/backends/platform/PalmOS/Src/be_base.h @@ -90,7 +90,7 @@ typedef struct { class OSystem_PalmBase : public OSystem { private: virtual void int_initBackend() { } - + virtual const GraphicsMode *int_getSupportedGraphicsModes() const; virtual void int_updateScreen() = 0; virtual void int_initSize(uint w, uint h) = 0; @@ -104,9 +104,9 @@ private: virtual void draw_mouse() = 0; virtual void undraw_mouse() = 0; - + virtual bool check_event(Common::Event &event, EventPtr ev) = 0; - + virtual void timer_handler(); void battery_handler(); virtual void get_coordinates(EventPtr ev, Coord &x, Coord &y) = 0; @@ -134,12 +134,12 @@ protected: RGBColorType _currentPalette[256]; uint _paletteDirtyStart, _paletteDirtyEnd; - + int _mode, _setMode; int16 _screenWidth, _screenHeight; Boolean _modeChanged, _gfxLoaded; UInt32 _screenPitch; - + PointType _screenOffset; struct { Coord w, h; @@ -162,7 +162,7 @@ protected: UInt32 bitActionA; // left mouse button UInt32 bitActionB; // right mouse button } _keyExtra; - + bool _mouseVisible; bool _mouseDrawn; MousePos _mouseCurState; @@ -171,14 +171,14 @@ protected: int16 _mouseHotspotY; byte _mouseKeyColor; byte *_mouseDataP, *_mouseBackupP; - + bool _wasKey; UInt8 _lastKeyModifier; UInt32 _lastKeyRepeat; Boolean _useNumPad, _showBatLow; UInt32 _batCheckTicks, _batCheckLast; - + int _samplesPerSec; public: @@ -190,19 +190,19 @@ public: bool hasFeature(Feature f); bool getFeatureState(Feature f); - + virtual void beginGFXTransaction(); virtual void endGFXTransaction(); - + virtual int16 getOverlayHeight(); virtual int16 getOverlayWidth(); - + virtual OverlayColor ARGBToColor(uint8 a, uint8 r, uint8 g, uint8 b); virtual void colorToARGB(OverlayColor color, uint8 &a, uint8 &r, uint8 &g, uint8 &b); - + virtual void setCursorPalette(const byte *colors, uint start, uint num); virtual void disableCursorPalette(bool disable); - + virtual void displayMessageOnOSD(const char *msg); */ const GraphicsMode *getSupportedGraphicsModes() const; @@ -233,25 +233,25 @@ public: void grabPalette(byte *colors, uint start, uint num); virtual OverlayColor RGBToColor(uint8 r, uint8 g, uint8 b) = 0; virtual void colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b) = 0; - + bool pollEvent(Common::Event &event); - + virtual uint32 getMillis(); virtual void delayMillis(uint msecs); - + virtual void setTimerCallback(TimerProc callback, int interval); virtual MutexRef createMutex() { return NULL; } virtual void lockMutex(MutexRef mutex) {} virtual void unlockMutex(MutexRef mutex) {} virtual void deleteMutex(MutexRef mutex) {} - + int getOutputSampleRate() const { return _samplesPerSec; } virtual Audio::Mixer *getMixer(); void quit(); virtual void setWindowCaption(const char *caption) = 0; - + Common::SaveFileManager *getSavefileManager(); Common::TimerManager *getTimerManager(); }; diff --git a/backends/platform/PalmOS/Src/be_os5.cpp b/backends/platform/PalmOS/Src/be_os5.cpp index f5744d6d0e..1fc61cffbf 100644 --- a/backends/platform/PalmOS/Src/be_os5.cpp +++ b/backends/platform/PalmOS/Src/be_os5.cpp @@ -29,7 +29,7 @@ OSystem_PalmOS5::OSystem_PalmOS5() : OSystem_PalmBase() { _sound.active = false; _setPalette = false; - + _workScreenH = NULL; _overlayH = NULL; _isSwitchable = false; @@ -67,9 +67,9 @@ void OSystem_PalmOS5::calc_rect(Boolean fullscreen) { h = gVars->screenHeight * _screenHeight / _screenWidth; _screenOffset.x = 0; - _screenOffset.y = (gVars->screenHeight - h) / 2; + _screenOffset.y = (gVars->screenHeight - h) / 2; } - + _screenDest.w = w; _screenDest.h = h; } diff --git a/backends/platform/PalmOS/Src/be_os5.h b/backends/platform/PalmOS/Src/be_os5.h index c4d4560b19..99d1dd9dc1 100644 --- a/backends/platform/PalmOS/Src/be_os5.h +++ b/backends/platform/PalmOS/Src/be_os5.h @@ -115,7 +115,7 @@ private: OverlayColor *_overlayP; WinHandle _overlayH, _workScreenH; int16 *_workScreenP; - + Boolean _isSwitchable, _wasRotated; virtual void int_initBackend(); @@ -183,7 +183,7 @@ public: virtual void copyRectToOverlay(const OverlayColor *buf, int pitch, int x, int y, int w, int h); virtual OverlayColor RGBToColor(uint8 r, uint8 g, uint8 b); virtual void colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b); - + void setWindowCaption(const char *caption); }; diff --git a/backends/platform/PalmOS/Src/be_os5ex.cpp b/backends/platform/PalmOS/Src/be_os5ex.cpp index 1a5ea2bf78..05bf5e49ce 100644 --- a/backends/platform/PalmOS/Src/be_os5ex.cpp +++ b/backends/platform/PalmOS/Src/be_os5ex.cpp @@ -70,7 +70,7 @@ void OSystem_PalmOS5Ex::setTimerCallback(TimerProc callback, int timer) { } else { _timer.active = false; } - + if (!_timer.active) _timerEx.timerID = 0; } diff --git a/backends/platform/PalmOS/Src/be_zodiac.cpp b/backends/platform/PalmOS/Src/be_zodiac.cpp index 1990d3ddaa..bb78030290 100644 --- a/backends/platform/PalmOS/Src/be_zodiac.cpp +++ b/backends/platform/PalmOS/Src/be_zodiac.cpp @@ -38,7 +38,7 @@ void OSystem_PalmZodiac::int_initBackend() { _keyExtra.bitDown = keyBitRockerDown; _keyExtra.bitLeft = keyBitRockerLeft; _keyExtra.bitRight = keyBitRockerRight; - + // _keyExtra.bitActionA = keyBitActionD; // _keyExtra.bitActionB = keyBitActionB; } diff --git a/backends/platform/PalmOS/Src/be_zodiac.h b/backends/platform/PalmOS/Src/be_zodiac.h index 1adb06d049..58e2ca88ac 100644 --- a/backends/platform/PalmOS/Src/be_zodiac.h +++ b/backends/platform/PalmOS/Src/be_zodiac.h @@ -38,7 +38,7 @@ private: TwGfxSurfaceType *_palmScreenP, *_tmpScreenP; TwGfxSurfaceType *_overlayP; Boolean _fullscreen; - + TwGfxPointType _srcPos; TwGfxRectType _srcRect, _dstRect; TwGfxBitmapType _srcBmp; @@ -61,7 +61,7 @@ public: OSystem_PalmZodiac(); static OSystem *create(); - + void setFeatureState(Feature f, bool enable); int getDefaultGraphicsMode() const; diff --git a/backends/platform/PalmOS/Src/cd_aeroplayer.cpp b/backends/platform/PalmOS/Src/cd_aeroplayer.cpp index e1785c9239..c30fba595c 100644 --- a/backends/platform/PalmOS/Src/cd_aeroplayer.cpp +++ b/backends/platform/PalmOS/Src/cd_aeroplayer.cpp @@ -36,7 +36,7 @@ AeroCDPlayer::AeroCDPlayer(OSystem *sys) { bool AeroCDPlayer::init() { aeroplayer_Startup(); _isInitialized = aeroplayer_PlayerIsActive(); - + if (_isInitialized) _volumeLimit = aeroplayer_GetMaxVolumeIndex(); @@ -73,7 +73,7 @@ void AeroCDPlayer::setVolume(int volume) { bool AeroCDPlayer::poll() { return - ( _pckLoops != 0 && + ( _pckLoops != 0 && ( getPosition() < _pckTrackEndFrame && getStatus() == AEROPLAYER_STATUS_PLAY ) @@ -107,7 +107,7 @@ void AeroCDPlayer::update() { forceStop(); else { //_pckStopTime = 0; - + if (_pckTrackStartFrame == 0 && _pckTrackDuration == 0) { setPosition(0); } else { @@ -136,10 +136,10 @@ void AeroCDPlayer::play(int track, int num_loops, int start_frame, int duration) Char fileP[100]; static const Char *ext[] = { "mp3", "ogg" }; - + // if (duration > 0) // duration += 5; - + _pckTrack = track; _pckLoops = num_loops; _pckTrackStartFrame = TO_MSECS(start_frame); @@ -149,7 +149,7 @@ void AeroCDPlayer::play(int track, int num_loops, int start_frame, int duration) aeroplayer_Pause(); aeroplayer_PlayTrack(gVars->VFS.volRefNum, fileP); aeroplayer_Pause(); - + if (_pckTrackStartFrame == 0 && _pckTrackDuration == 0) { _pckTrackDuration = getDuration(); } else { @@ -157,7 +157,7 @@ void AeroCDPlayer::play(int track, int num_loops, int start_frame, int duration) if (_pckTrackDuration == 0) _pckTrackDuration = getDuration() - _pckTrackStartFrame; } - + aeroplayer_Play(); _pckStopTime = 0; diff --git a/backends/platform/PalmOS/Src/cd_aeroplayer.h b/backends/platform/PalmOS/Src/cd_aeroplayer.h index 2f39d45a6d..e54bc1d5ff 100644 --- a/backends/platform/PalmOS/Src/cd_aeroplayer.h +++ b/backends/platform/PalmOS/Src/cd_aeroplayer.h @@ -22,7 +22,7 @@ * $Id$ * */ - + #ifndef CD_AEROPLAYER_H #define CD_AEROPLAYER_H @@ -40,9 +40,9 @@ public: void update(); void play(int track, int num_loops, int start_frame, int duration); void stop(); - + void setVolume(int volume); - + private: OSystem *_sys; Char gameP[15]; diff --git a/backends/platform/PalmOS/Src/cd_msa.cpp b/backends/platform/PalmOS/Src/cd_msa.cpp index 1a9752852e..5812d49b6d 100644 --- a/backends/platform/PalmOS/Src/cd_msa.cpp +++ b/backends/platform/PalmOS/Src/cd_msa.cpp @@ -49,7 +49,7 @@ bool MsaCDPlayer::init() { if (!(error = FtrGet(sonySysFtrCreator, sonySysFtrNumSysInfoP, (UInt32*)&sonySysFtrSysInfoP))) { // not found with audio adapter ?! - //if (sonySysFtrSysInfoP->libr & sonySysFtrSysInfoLibrMsa) { + //if (sonySysFtrSysInfoP->libr & sonySysFtrSysInfoLibrMsa) { if ((error = SysLibFind(sonySysLibNameMsa, &_msaRefNum))) if (error == sysErrLibNotFound) error = SysLibLoad(sonySysFileTMsaLib, sonySysFileCMsaLib, &_msaRefNum); @@ -59,11 +59,11 @@ bool MsaCDPlayer::init() { // this doesn't work the same way on build-in MP3 device and external MP3 devices if (!error) { //MsaLibClose(_msaRefNum, msaLibOpenModeAlbum); // close the lib if we previously let it open (?) Need to add Notify for sonySysNotifyMsaEnforceOpenEvent just in case ... - error = MsaLibOpen(_msaRefNum, msaLibOpenModeAlbum); + error = MsaLibOpen(_msaRefNum, msaLibOpenModeAlbum); //if (error == msaErrAlreadyOpen) // error = MsaLibEnforceOpen(_msaRefNum, msaLibOpenModeAlbum, appFileCreator); - + //error = (error != msaErrStillOpen) ? error : errNone; } //} @@ -156,7 +156,7 @@ void MsaCDPlayer::update() { } MsaStop(_msaRefNum, true); - + if (_msaLoops == 0) return; @@ -194,13 +194,13 @@ void MsaCDPlayer::play(int track, int num_loops, int start_frame, int duration) if (!num_loops && !start_frame) return; - + _msaTrack = track + gVars->CD.firstTrack - 1; // first track >= 1 ?, not 0 (0=album) _msaLoops = num_loops; _msaStartFrame = TO_MSECS(start_frame); _msaDuration = TO_MSECS(duration); - Err e; + Err e; MemHandle trackH; // stop current play if any @@ -215,19 +215,19 @@ void MsaCDPlayer::play(int track, int num_loops, int start_frame, int duration) MsaTime msaTime; MsaTrackInfo *trackP; UInt32 SU, fullLength; - + // FIXME (?) : this enable MsaSuToTime to return the right value in some cases MsaPlay(_msaRefNum, _msaTrack, 0, msa_PBRATE_SP); MsaStop(_msaRefNum, true); - - // get the msa time - trackP = (MsaTrackInfo *)MemHandleLock(trackH); + + // get the msa time + trackP = (MsaTrackInfo *)MemHandleLock(trackH); MsaSuToTime(_msaRefNum, trackP->totalsu, &msaTime); SU = trackP->totalsu; MemPtrUnlock(trackP); MemHandleFree(trackH); - - // MSA frame in milli-seconds + + // MSA frame in milli-seconds fullLength = FROM_MIN(msaTime.minute); fullLength += FROM_SEC(msaTime.second); fullLength += msaTime.frame; @@ -240,7 +240,7 @@ void MsaCDPlayer::play(int track, int num_loops, int start_frame, int duration) } else { _msaTrackLength = fullLength; } - + // try to play the track if (start_frame == 0 && duration == 0) { MsaPlay(_msaRefNum, _msaTrack, 0, msa_PBRATE_SP); @@ -250,7 +250,7 @@ void MsaCDPlayer::play(int track, int num_loops, int start_frame, int duration) _msaTrackStartSu = (UInt32) ((float)(_msaStartFrame) / ((float)fullLength / (float)SU)); _msaTrackEndSu = (UInt32) ((float)(_msaTrackLength) / ((float)fullLength / (float)SU)); _msaTrackEndSu += _msaTrackStartSu; - + if (_msaTrackEndSu > SU) _msaTrackEndSu = SU; diff --git a/backends/platform/PalmOS/Src/cd_msa.h b/backends/platform/PalmOS/Src/cd_msa.h index 8844e5b8c6..93ab279c8c 100644 --- a/backends/platform/PalmOS/Src/cd_msa.h +++ b/backends/platform/PalmOS/Src/cd_msa.h @@ -64,5 +64,5 @@ public: UInt32 _msaTrackStartSu, _msaTrackEndSu; UInt32 _msaTrackLength; }; - + #endif diff --git a/backends/platform/PalmOS/Src/cd_pockettunes.cpp b/backends/platform/PalmOS/Src/cd_pockettunes.cpp index b647114fb8..5a9f3874eb 100644 --- a/backends/platform/PalmOS/Src/cd_pockettunes.cpp +++ b/backends/platform/PalmOS/Src/cd_pockettunes.cpp @@ -37,7 +37,7 @@ bool PckTunesCDPlayer::init() { _isInitialized = PocketTunesIsRunning(); _isPlaying = false; _pAction = NULL; - + if (_isInitialized) { _pAction = (PocketTunesAction*)MemPtrNew(sizeof(PocketTunesAction)); _volumeLimit = getVolumeLimit(); @@ -64,12 +64,12 @@ UInt32 PckTunesCDPlayer::getVolumeLimit() { _pAction->action = kPocketTunesActionGetValue; _pAction->data.getValueAction.which = kPtunesValueMaxVolume; - + EvtGetEvent(&_eAction, evtNoWait); if (PocketTunesCallSynch(_pAction) == errNone) value = _pAction->data.getValueAction.value; - return value; + return value; } UInt32 PckTunesCDPlayer::getStatus() { @@ -83,8 +83,8 @@ UInt32 PckTunesCDPlayer::getStatus() { EvtGetEvent(&_eAction, evtNoWait); if (PocketTunesCallSynch(_pAction) == errNone) status = _pAction->data.getStatusAction.status; - - return status; + + return status; } UInt32 PckTunesCDPlayer::getPosition(UInt32 deflt) { @@ -95,7 +95,7 @@ UInt32 PckTunesCDPlayer::getPosition(UInt32 deflt) { _pAction->action = kPocketTunesActionGetValue; _pAction->data.getValueAction.which = kPtunesValueSongPosition; - + EvtGetEvent(&_eAction, evtNoWait); if (PocketTunesCallSynch(_pAction) == errNone) value = _pAction->data.getValueAction.value; @@ -111,12 +111,12 @@ UInt32 PckTunesCDPlayer::getDuration() { _pAction->action = kPocketTunesActionGetValue; _pAction->data.getValueAction.which = kPtunesValueSongDuration; - + EvtGetEvent(&_eAction, evtNoWait); if (PocketTunesCallSynch(_pAction) == errNone) value = _pAction->data.getValueAction.value; - return value; + return value; } void PckTunesCDPlayer::setPosition(UInt32 value) { @@ -203,16 +203,16 @@ void PckTunesCDPlayer::play(int track, int num_loops, int start_frame, int durat EventType e; Char nameP[256], fileP[100]; static const Char *ext[] = { "mp3", "ogg" }; - + _pckTrack = track; _pckLoops = num_loops; _pckTrackStartFrame = TO_MSECS(start_frame); _pckTrackDuration = TO_MSECS(duration); VFSVolumeGetLabel(gVars->VFS.volRefNum, nameP, 256); - + StrPrintF(fileP, "/Palm/Programs/ScummVM/Audio/%s_%03ld.%s", gameP, (track + gVars->CD.firstTrack - 1), ext[gVars->CD.format]); - + if (PocketTunesOpenFile(nameP, fileP, 0) == errNone) { EvtGetEvent(&e, evtNoWait); PocketTunesPauseIfPlaying(); diff --git a/backends/platform/PalmOS/Src/cd_pockettunes.h b/backends/platform/PalmOS/Src/cd_pockettunes.h index 4decca44a8..4a8d797158 100644 --- a/backends/platform/PalmOS/Src/cd_pockettunes.h +++ b/backends/platform/PalmOS/Src/cd_pockettunes.h @@ -22,48 +22,48 @@ * $Id$ * */ - + #ifndef CD_POCKETTUNES_H #define CD_POCKETTUNES_H - + #include "cdaudio.h" #include "pockettunes.h" - + class PckTunesCDPlayer : public CDAudio { public: PckTunesCDPlayer(OSystem *sys); bool init(); void release(); - + bool poll(); void update(); void play(int track, int num_loops, int start_frame, int duration); void stop(); - + void setVolume(int volume); - + private: OSystem *_sys; Char gameP[15]; - + PocketTunesAction *_pAction; // prevent memory fragmentation EventType _eAction; - + UInt32 getStatus(); void setPosition(UInt32 value); UInt32 getDuration(); UInt32 getPosition(UInt32 deft); - - UInt32 _volumeLimit; + + UInt32 _volumeLimit; UInt32 getVolumeLimit(); - + Boolean _isPlaying; // cdrom UInt16 _pckLoops, _pckTrack; UInt32 _pckTrackStartFrame, _pckTrackEndFrame; UInt32 _pckStopTime, _pckTrackDuration; }; - + #endif - + diff --git a/backends/platform/PalmOS/Src/cdaudio.h b/backends/platform/PalmOS/Src/cdaudio.h index 2c32c669e6..7a3f5e56e4 100644 --- a/backends/platform/PalmOS/Src/cdaudio.h +++ b/backends/platform/PalmOS/Src/cdaudio.h @@ -22,7 +22,7 @@ * $Id$ * */ - + #ifndef CDAUDIO_H #define CDAUDIO_H @@ -37,7 +37,7 @@ #define FROM_SEC(secs) ((UInt32)((secs) * 1000)) class CDAudio { -public: +public: CDAudio() { _isInitialized = false; _volumeLevel = 100; @@ -45,7 +45,7 @@ public: virtual bool init() = 0; virtual void release() = 0; - + // OSystem functions virtual bool poll() = 0; virtual void play(int track, int num_loops, int start_frame, int duration) = 0; diff --git a/backends/platform/PalmOS/Src/extend.cpp b/backends/platform/PalmOS/Src/extend.cpp index 99352b8cdb..e2dbd8f093 100644 --- a/backends/platform/PalmOS/Src/extend.cpp +++ b/backends/platform/PalmOS/Src/extend.cpp @@ -43,7 +43,7 @@ void DrawStatus(Boolean show) { if (OPTIONS_TST(kOptDisableOnScrDisp)) return; - UInt8 x,y; + UInt8 x,y; UInt32 depth, d1; Boolean d2; WinScreenMode(winScreenModeGet, &d1, &d1, &depth, &d2); diff --git a/backends/platform/PalmOS/Src/init_golcd.cpp b/backends/platform/PalmOS/Src/init_golcd.cpp index 63cc98e0ab..b09d3b104e 100644 --- a/backends/platform/PalmOS/Src/init_golcd.cpp +++ b/backends/platform/PalmOS/Src/init_golcd.cpp @@ -14,7 +14,7 @@ Err GoLCDInit(MemHandle *goLcdH) { UInt16 refNum; Boolean loaded = false; *goLcdH = NULL; - + if (e = SysLibFind(goLcdLibName, &refNum)) loaded = !(e = SysLibLoad(goLcdLibType, goLcdLibCreator, &refNum)); @@ -41,7 +41,7 @@ Err GoLCDRelease(MemHandle goLcdH) { Err e; GoLCDType *lcdP = (GoLCDType *)MemHandleLock(goLcdH); - if (lcdP->refNum != sysInvalidRefNum) + if (lcdP->refNum != sysInvalidRefNum) if (!(e = GoLcdLibClose(lcdP->refNum))) e = SysLibRemove(lcdP->refNum); @@ -115,7 +115,7 @@ Boolean GoLCDToggle(MemHandle goLcdH) { GoLCDType *lcdP = (GoLCDType *)MemHandleLock(goLcdH); active = lcdP->active; MemPtrUnlock(lcdP); - + GoLCDActivate(goLcdH, !active); return (!active); } diff --git a/backends/platform/PalmOS/Src/init_palmos.cpp b/backends/platform/PalmOS/Src/init_palmos.cpp index 7cee8f2935..3a72382362 100644 --- a/backends/platform/PalmOS/Src/init_palmos.cpp +++ b/backends/platform/PalmOS/Src/init_palmos.cpp @@ -75,7 +75,7 @@ UInt8 PalmScreenSize(Coord *stdw, Coord *stdh, Coord *fullw, Coord *fullh) { UInt8 mode = 0; Coord sw = 160; - Coord sh = 160; + Coord sh = 160; // Hi-Density present ? if (!FtrGet(sysFtrCreator, sysFtrNumWinVersion, &ftr)) { @@ -136,7 +136,7 @@ void PalmGetMemory(UInt32* storageMemoryP, UInt32* dynamicMemoryP, UInt32 *stora UInt32 dynamicFree = 0; // Iterate through each card to support devices with multiple cards. - nCards = MemNumCards(); + nCards = MemNumCards(); for (cardNo = 0; cardNo < nCards; cardNo++) { // Iterate through the RAM heaps on a card (excludes ROM). diff --git a/backends/platform/PalmOS/Src/init_sony.cpp b/backends/platform/PalmOS/Src/init_sony.cpp index 915b3ec56f..ede7ae997a 100644 --- a/backends/platform/PalmOS/Src/init_sony.cpp +++ b/backends/platform/PalmOS/Src/init_sony.cpp @@ -121,7 +121,7 @@ UInt8 SonyScreenSize(UInt16 HRrefNum, Coord *stdw, Coord *stdh, Coord *fullw, Co UInt8 mode = 0; Coord sw = 160; - Coord sh = 160; + Coord sh = 160; Coord fw = sw; Coord fh = sh; @@ -158,6 +158,6 @@ UInt8 SonyScreenSize(UInt16 HRrefNum, Coord *stdw, Coord *stdh, Coord *fullw, Co *stdh = sh; *fullw = fw; *fullh = fh; - + return mode; } diff --git a/backends/platform/PalmOS/Src/init_stuffs.cpp b/backends/platform/PalmOS/Src/init_stuffs.cpp index 33f55ae5ce..753d2ae548 100644 --- a/backends/platform/PalmOS/Src/init_stuffs.cpp +++ b/backends/platform/PalmOS/Src/init_stuffs.cpp @@ -33,7 +33,7 @@ UInt32 StuffsGetPitch(Coord fullw) { if (OPTIONS_TST(kOptModeHiDensity)) { WinScreenGetAttribute(winScreenRowBytes, &pitch); - + // FIXME : hack for TT3 simulator (and real ?) return 28 on landscape mode if (pitch < fullw) pitch = fullw; diff --git a/backends/platform/PalmOS/Src/launcher/app.cpp b/backends/platform/PalmOS/Src/launcher/app.cpp index bcaff049ff..31c94da5b6 100644 --- a/backends/platform/PalmOS/Src/launcher/app.cpp +++ b/backends/platform/PalmOS/Src/launcher/app.cpp @@ -86,7 +86,7 @@ static Err AppStartCheckNotify() { UInt32 romVersion; Err err; - err = FtrGet(sysFtrCreator, sysFtrNumNotifyMgrVersion, &romVersion); + err = FtrGet(sysFtrCreator, sysFtrNumNotifyMgrVersion, &romVersion); if (!err) { UInt16 cardNo; LocalID dbID; @@ -128,7 +128,7 @@ static Err AppStartLoadSkin() { if (type != 'skin' || creator != appFileCreator) err = dmErrInvalidParam; } - + if (!found || err) MemSet(&(gPrefs->skin),sizeof(SkinInfoType),0); } @@ -141,13 +141,13 @@ static Err AppStartLoadSkin() { if (!err) err = DmDatabaseInfo (gPrefs->skin.cardNo, gPrefs->skin.dbID, gPrefs->skin.nameP, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); } - + return err; } static Err AppStartCheckMathLib() { Err e = MathlibInit(); - + switch (e) { case errNone: break; @@ -158,7 +158,7 @@ static Err AppStartCheckMathLib() { FrmCustomAlert(FrmErrorAlert,"Can't open MathLib !",0,0); break; } - + return e; } @@ -262,7 +262,7 @@ Err AppStart(void) { gPrefs->exitLauncher = true; gPrefs->stdPalette = OPTIONS_TST(kOptDeviceOS5); gPrefs->stylusClick = true; - + } else { PrefGetAppPreferences(appFileCreator, appPrefID, gPrefs, &dataSize, true); } @@ -274,7 +274,7 @@ Err AppStart(void) { error = AppStartCheckHRmode(); if (error) return (error); - + bDirectMode = (AppStartLoadSkin() != errNone); // if volref previously defined, check if it's a valid one @@ -318,8 +318,8 @@ static Err AppStopCheckNotify() { UInt32 romVersion; Err err; - - err = FtrGet(sysFtrCreator, sysFtrNumNotifyMgrVersion, &romVersion); + + err = FtrGet(sysFtrCreator, sysFtrNumNotifyMgrVersion, &romVersion); if (!err) { UInt16 cardNo; LocalID dbID; @@ -332,7 +332,7 @@ static Err AppStopCheckNotify() SysNotifyUnregister(cardNo, dbID, sysNotifyDisplayResizedEvent, sysNotifyNormalPriority); } } - + return err; } @@ -345,7 +345,7 @@ void AppStop(void) { // Close and move Game list database GamCloseDatabase(false); - // Write the saved preferences / saved-state information. This data + // Write the saved preferences / saved-state information. This data // will saved during a HotSync backup. SavePrefs(); diff --git a/backends/platform/PalmOS/Src/launcher/forms/formCards.cpp b/backends/platform/PalmOS/Src/launcher/forms/formCards.cpp index 7a6e35b1f9..eb4654ed10 100644 --- a/backends/platform/PalmOS/Src/launcher/forms/formCards.cpp +++ b/backends/platform/PalmOS/Src/launcher/forms/formCards.cpp @@ -50,7 +50,7 @@ static void CardSlotFreeList() { if (itemsText && itemsList) { cards = MemPtrRecoverHandle(itemsList); items = MemPtrRecoverHandle(itemsText); - + itemsText = NULL; itemsList = NULL; } @@ -88,13 +88,13 @@ static UInt16 CardSlotFillList(Boolean getRefNum = false) { if (err || StrLen(labelP) == 0) { // if no label try to retreive card type VolumeInfoType volInfo; err = VFSVolumeInfo(volRefNum, &volInfo); - + if (!err) { ExpCardInfoType info; err = ExpCardInfo(volInfo.slotRefNum, &info); StrCopy(labelP, info.deviceClassStr); } - + if (err) // if err default name StrPrintF(labelP,"Other Card %ld", other++); } @@ -103,7 +103,7 @@ static UInt16 CardSlotFillList(Boolean getRefNum = false) { cards = MemHandleNew(sizeof(CardInfoType)); else MemHandleResize(cards, MemHandleSize(cards) + sizeof(CardInfoType)); - + cardsInfo = (CardInfoType *)MemHandleLock(cards); cardsInfo[counter].volRefNum = volRefNum; StrCopy(cardsInfo[counter].nameP, labelP); @@ -146,7 +146,7 @@ static UInt16 CardSlotFillList(Boolean getRefNum = false) { // no card found ? free old list in any or return invalid volref } else { if (!getRefNum) - CardSlotFreeList(); + CardSlotFreeList(); else return vfsInvalidVolRef; } @@ -240,7 +240,7 @@ static UInt16 ConfigTabSave() { CardSlotCreateDirs(); CardSlotFreeList(); - + return updateCode; } @@ -341,7 +341,7 @@ Boolean CardSlotFormHandleEvent(EventPtr eventP) { case CardSlotCancelButton: CardSlotFormCancel(); break; - + case TabCardGameListMoveCheckbox: GameListTabDraw(); break; @@ -352,7 +352,7 @@ Boolean CardSlotFormHandleEvent(EventPtr eventP) { default: break; } - + return handled; } diff --git a/backends/platform/PalmOS/Src/launcher/forms/formEditGame.cpp b/backends/platform/PalmOS/Src/launcher/forms/formEditGame.cpp index ceb4886dcf..0540c12577 100644 --- a/backends/platform/PalmOS/Src/launcher/forms/formEditGame.cpp +++ b/backends/platform/PalmOS/Src/launcher/forms/formEditGame.cpp @@ -66,7 +66,7 @@ static void GameTabInit(GameInfoType *gameInfoP) { nameP = (Char *)MemHandleLock(nameH); pathP = (Char *)MemHandleLock(pathH); gameP = (Char *)MemHandleLock(gameH); - + if (gameInfoP) { LstSetSelection(list1P, gameInfoP->engine); LstSetTopItem(list1P, gameInfoP->engine); @@ -139,7 +139,7 @@ static Err GameTabSave(GameInfoType *gameInfoP) { MemPtrFree(itemsText); itemsText = NULL; } - + return errNone; } @@ -148,7 +148,7 @@ static void DisplayInit(GameInfoType *gameInfoP) { list1P = (ListType *)GetObjectPtr(TabGameDisplayGfxListList); list2P = (ListType *)GetObjectPtr(TabGameDisplayRenderList); - + if (gameInfoP) { LstSetSelection(list1P, gameInfoP->gfxMode); LstSetSelection(list2P, gameInfoP->renderMode); @@ -169,7 +169,7 @@ static void DisplayInit(GameInfoType *gameInfoP) { static Err DisplaySave(GameInfoType *gameInfoP) { ListType *list1P, *list2P; - ControlType *cck6P, *cck7P, *cck8P; + ControlType *cck6P, *cck7P, *cck8P; FormType *frmP = FrmGetActiveForm(); @@ -187,7 +187,7 @@ static Err DisplaySave(GameInfoType *gameInfoP) { gameInfoP->fullscreen = CtlGetValue(cck7P); gameInfoP->aspectRatio = CtlGetValue(cck8P); } - + return errNone; } @@ -257,7 +257,7 @@ static void OptionsInit(GameInfoType *gameInfoP) { static Err OptionsSave(GameInfoType *gameInfoP) { FieldType *fld4P, *fld5P, *fld6P; - ControlType *cck1P, *cck2P, *cck3P, *cck4P, *cck5P; + ControlType *cck1P, *cck2P, *cck3P, *cck4P, *cck5P; ListType *list2P, *list3P; FormType *frmP = FrmGetActiveForm(); @@ -291,7 +291,7 @@ static Err OptionsSave(GameInfoType *gameInfoP) { } else { gameInfoP->language = LstGetSelection(list2P); gameInfoP->platform = LstGetSelection(list3P); - + gameInfoP->autoLoad = CtlGetValue(cck1P); gameInfoP->bootParam = CtlGetValue(cck2P); gameInfoP->setPlatform = CtlGetValue(cck3P); @@ -302,7 +302,7 @@ static Err OptionsSave(GameInfoType *gameInfoP) { gameInfoP->bootValue = StrAToI(FldGetTextPtr(fld5P)); gameInfoP->talkValue = StrAToI(FldGetTextPtr(fld6P)); } - + return errNone; } @@ -371,7 +371,7 @@ static void GameManSave(UInt16 index) { newGameInfo.version = curItemVersion; newGameInfo.icnID = 0xFFFF; newGameInfo.selected = true; - + // default sound data newGameInfo.musicInfo.volume.palm = 50; newGameInfo.musicInfo.volume.music = 192; @@ -383,7 +383,7 @@ static void GameManSave(UInt16 index) { newGameInfo.musicInfo.sound.defaultTrackLength = 10; newGameInfo.musicInfo.sound.firstTrack = 1; } - + GameTabSave(&newGameInfo); DisplaySave(&newGameInfo); OptionsSave(&newGameInfo); @@ -397,14 +397,14 @@ static void GameManSave(UInt16 index) { { RectangleType rArea; UInt16 posIndex, maxView; - + // get the sorted index index = GamGetSelected(); // if new item is out of the list bounds, change current list pos SknGetListBounds(&rArea, NULL); maxView = rArea.extent.y / sknInfoListItemSize; posIndex = gPrefs->listPosition; - + // if out of the current list position if (!(index >= posIndex && index < (posIndex + maxView))) gPrefs->listPosition = index; // this value is corrected in SknUpdateList if needed @@ -421,7 +421,7 @@ static void GameManSave(UInt16 index) { * FUNCTION: EditGameFormInit * FUNCTION: EditGameFormHandleEvent * - * DESCRIPTION: + * DESCRIPTION: * * REVISION HISTORY: * @@ -468,14 +468,14 @@ static void EditGameBowser() { UInt16 volRefNum = gPrefs->card.volRefNum; Char *textP, *pathP = (Char *)MemPtrNew(kFileBrowserLibPathBufferSize); pathP[0] = chrNull; - + if (FileBrowserLibShowOpenDialog(refNum, &volRefNum, pathP, 0, 0, 0, "Game Data Path", kFileBrowserLibFlagNoFiles)) { FieldPtr fldP; MemHandle textH; Int16 offset, copySize, maxSize; - + fldP = (FieldType *)GetObjectPtr(TabGameInfoPathField); - maxSize = FldGetMaxChars(fldP); + maxSize = FldGetMaxChars(fldP); textH = FldGetTextHandle(fldP); FldSetTextHandle(fldP, NULL); @@ -518,7 +518,7 @@ Boolean EditGameFormHandleEvent(EventPtr eventP) { EditGameCancel(); handled = true; break; - + case frmOpenEvent: switch (gFormEditMode) { case edtModeAdd: @@ -567,11 +567,11 @@ Boolean EditGameFormHandleEvent(EventPtr eventP) { case GameEditCancelButton: EditGameCancel(); break; - + case GameEditDeleteButton: EditGameFormDelete(false); break; - + case TabGameInfoBrowsePushButton: EditGameBowser(); break; @@ -607,6 +607,6 @@ Boolean EditGameFormHandleEvent(EventPtr eventP) { default: break; } - + return handled; } diff --git a/backends/platform/PalmOS/Src/launcher/forms/formMisc.cpp b/backends/platform/PalmOS/Src/launcher/forms/formMisc.cpp index 509adfa735..35b44486e9 100644 --- a/backends/platform/PalmOS/Src/launcher/forms/formMisc.cpp +++ b/backends/platform/PalmOS/Src/launcher/forms/formMisc.cpp @@ -40,7 +40,7 @@ static Boolean ScummVMTabSave() { fld1P = (FieldType *)GetObjectPtr(TabMiscScummVMDebugLevelField); fld2P = (FieldType *)GetObjectPtr(TabMiscScummVMAutosaveField); - + cckP[0] = (ControlType *)GetObjectPtr(TabMiscScummVMAutosaveCheckbox); cckP[3] = (ControlType *)GetObjectPtr(TabMiscScummVMDebugCheckbox); cckP[6] = (ControlType *)GetObjectPtr(TabMiscScummVMDemoCheckbox); @@ -69,7 +69,7 @@ static Boolean ScummVMTabSave() { gPrefs->debugLevel = StrAToI(FldGetTextPtr(fld1P)); gPrefs->autoSavePeriod = StrAToI(FldGetTextPtr(fld2P)); - + return true; } @@ -111,7 +111,7 @@ static void ExtsTabSave() { gPrefs->lightspeed.enable = CtlGetValue(cckP[0]); gPrefs->lightspeed.mode = LstGetSelection(list1P); } - if (OPTIONS_TST(kOptGoLcdAPI)) { + if (OPTIONS_TST(kOptGoLcdAPI)) { cckP[1] = (ControlType *)GetObjectPtr(TabMiscExtsGolcdCheckbox); gPrefs->goLCD = CtlGetValue(cckP[1]); } @@ -176,7 +176,7 @@ static void MiscFormSave() { if (!ScummVMTabSave()) return; PalmOSTabSave(); ExtsTabSave(); - + TabDeleteTabs(myTabP); FrmReturnToMain(); } @@ -216,7 +216,7 @@ static void MiscFormInit() { TabMoveUpObject(frmP, TabMiscExtsNothingLabel, 12); extsCnt--; } - + if (extsCnt) FrmRemoveObject(&frmP, FrmGetObjectIndex(frmP, TabMiscExtsNothingLabel)); @@ -270,6 +270,6 @@ Boolean MiscFormHandleEvent(EventPtr eventP) { default: break; } - + return handled; } diff --git a/backends/platform/PalmOS/Src/launcher/forms/formSelect.cpp b/backends/platform/PalmOS/Src/launcher/forms/formSelect.cpp index 641d646bb2..bb0ac894c2 100644 --- a/backends/platform/PalmOS/Src/launcher/forms/formSelect.cpp +++ b/backends/platform/PalmOS/Src/launcher/forms/formSelect.cpp @@ -197,10 +197,10 @@ static void SelectorFormInit() { listP = (ListType *)FrmGetObjectPtr(frmP, FrmGetObjectIndex(frmP, EngineListList)); itemsText = (Char **)MemPtrNew(ENGINE_COUNT * sizeof(Char *)); - + for (int i = 0; i < ENGINE_COUNT; i++) itemsText[i] = (Char *)engines[i].nameP; - + LstSetListChoices (listP, itemsText, ENGINE_COUNT); LstSetSelection(listP, 0); @@ -251,7 +251,7 @@ Boolean SelectorFormHandleEvent(EventPtr eventP) { case lstSelectEvent: if (eventP->data.lstSelect.listID == EngineSupportedList) LstSetSelection(eventP->data.lstSelect.pList, -1); - else + else SelectorSetList(eventP->data.lstSelect.selection); handled = true; break; @@ -273,6 +273,6 @@ Boolean SelectorFormHandleEvent(EventPtr eventP) { default: break; } - + return handled; } diff --git a/backends/platform/PalmOS/Src/launcher/forms/forminfo.cpp b/backends/platform/PalmOS/Src/launcher/forms/forminfo.cpp index 74622d8f14..3f4ab1b28f 100644 --- a/backends/platform/PalmOS/Src/launcher/forms/forminfo.cpp +++ b/backends/platform/PalmOS/Src/launcher/forms/forminfo.cpp @@ -43,10 +43,10 @@ static void SystemTabDraw() { PalmGetMemory(&sm, &dm, &sf, 0); stack = GetStackSize(); df = gVars->startupMemory; - + WinSetTextColor(UIColorGetTableEntryIndex(UIObjectForeground)); FntSetFont(stdFont); - + StrIToA(num, dm); x = 147 - FntCharsWidth(num, StrLen(num)) + 5; WinDrawChars(num, StrLen(num), x, 12 + 30); @@ -115,7 +115,7 @@ Boolean InfoFormHandleEvent(EventPtr eventP) { InfoFormInit(); handled = true; break; - + case frmCloseEvent: InfoFormSave(); handled = true; @@ -141,6 +141,6 @@ Boolean InfoFormHandleEvent(EventPtr eventP) { default: break; } - + return handled; } diff --git a/backends/platform/PalmOS/Src/launcher/forms/formmain.cpp b/backends/platform/PalmOS/Src/launcher/forms/formmain.cpp index 6a5520eb55..9970e608c9 100644 --- a/backends/platform/PalmOS/Src/launcher/forms/formmain.cpp +++ b/backends/platform/PalmOS/Src/launcher/forms/formmain.cpp @@ -48,7 +48,7 @@ static Err BeamMe() { err = SendDatabase(0, dbID, "ScummVM.prc", "\nPlay your favorite LucasArts games"); else err = DmGetLastErr(); - + return err; } @@ -107,7 +107,7 @@ static Boolean MainFormDoCommand(UInt16 command) FrmPopupForm(GameEditForm); handled = true; break; - + case MainGamesDelete: EditGameFormDelete(true); handled = true; diff --git a/backends/platform/PalmOS/Src/launcher/forms/formmusic.cpp b/backends/platform/PalmOS/Src/launcher/forms/formmusic.cpp index 8413216bb1..58eaa5b5fc 100644 --- a/backends/platform/PalmOS/Src/launcher/forms/formmusic.cpp +++ b/backends/platform/PalmOS/Src/launcher/forms/formmusic.cpp @@ -256,7 +256,7 @@ static void MusicFormInit(UInt16 index) { recordH = DmQueryRecord(gameDB, index); ogameInfoP = (GameInfoType *)MemHandleLock(recordH); - + if (!ogameInfoP) { FrmCustomAlert(FrmErrorAlert, "An error occured.",0,0); return; diff --git a/backends/platform/PalmOS/Src/launcher/forms/formtabs.cpp b/backends/platform/PalmOS/Src/launcher/forms/formtabs.cpp index 0dd3427c1a..d3f18e39d7 100644 --- a/backends/platform/PalmOS/Src/launcher/forms/formtabs.cpp +++ b/backends/platform/PalmOS/Src/launcher/forms/formtabs.cpp @@ -26,7 +26,7 @@ void TabDeleteTabs(TabType *tabP) { UInt16 cnt, num; num = MemPtrSize(tabP->tabs) / sizeof(TabDataType); - for (cnt = 0; cnt < num; cnt++) + for (cnt = 0; cnt < num; cnt++) FrmDeleteForm(tabP->tabs[cnt].srcP); delete tabP->tabs; @@ -93,7 +93,7 @@ Err TabAddContent(FormType **frmP, TabType *tabP, const Char *nameP, UInt16 rscI UInt16 items = LstGetNumberOfItems((ListType *)objP); UInt16 trigger = id - 1; trigger = (FrmGetObjectIndex((FormType *)*dstP, trigger) != frmInvalidObjectId) ? trigger : 0; - + LstNewList(dstP, id, x, y, w, h, font, visible, trigger); newP = (ListType *)FrmGetObjectPtr((FormType *)*dstP, FrmGetObjectIndex((FormType *)*dstP, id)); LstSetListChoices(newP, itemsP, items); @@ -197,10 +197,10 @@ void TabSetActive(FormType *frmP, TabType *tabP, UInt16 num) { r.topLeft.y -= 1; WinSetForeColor(UIColorGetTableEntryIndex(UIObjectFrame)); - WinDrawRectangleFrame(simpleFrame, &r); + WinDrawRectangleFrame(simpleFrame, &r); WinSetForeColor(line); WinDrawLine(r.topLeft.x, r.topLeft.y, r.topLeft.x + r.extent.x - 1, r.topLeft.y); - FrmShowObject(frmP, idx); + FrmShowObject(frmP, idx); } else { UInt8 frame = UIColorGetTableEntryIndex(UIObjectFrame); @@ -211,7 +211,7 @@ void TabSetActive(FormType *frmP, TabType *tabP, UInt16 num) { light.b = (255 - light.b) > 72 ? light.b + 72 : 255; WinSetForeColor(WinRGBToIndex(&light)); - WinDrawRectangleFrame(simpleFrame, &r); + WinDrawRectangleFrame(simpleFrame, &r); WinSetForeColor(frame); WinDrawLine(r.topLeft.x - 1, r.topLeft.y + r.extent.y, r.topLeft.x + r.extent.x, r.topLeft.y + r.extent.y); } diff --git a/backends/platform/PalmOS/Src/launcher/games.cpp b/backends/platform/PalmOS/Src/launcher/games.cpp index 2300a36f09..b223897fd5 100644 --- a/backends/platform/PalmOS/Src/launcher/games.cpp +++ b/backends/platform/PalmOS/Src/launcher/games.cpp @@ -94,7 +94,7 @@ static Err GamUpdateList() { // new format gitCur.version = curItemVersion; - + if (version < itemVersion_300) { gitCur.musicInfo.volume.palm = 50; gitCur.musicInfo.volume.music = 192; @@ -109,7 +109,7 @@ static Err GamUpdateList() { if (version < itemVersion_310) gitCur.engine = 0; - + if (version < itemVersion_320) gitCur.renderMode = 0; @@ -159,34 +159,34 @@ static Err GamUpdateList() { if (version <= itemVersion_340) { gitCur.platform++; - + if (gitCur.language == 3) gitCur.language = 0; else if (gitCur.language >= 11) gitCur.language++; } - + if (version <= itemVersion_350) if (gitCur.platform >= 9) gitCur.platform++; - + if (version <= itemVersion_351) { if (gitCur.engine >= ENGINE_LURE) // newly added engine gitCur.engine++; - + if (gitCur.engine == ENGINE_SCUMM) // reorder gitCur.engine = ENGINE_AGOS; else if (gitCur.engine == ENGINE_AGOS) gitCur.engine = ENGINE_SCUMM; } - + if (version <= itemVersion_352) { if (gitCur.engine >= ENGINE_CINE) // newly added engine gitCur.engine++; - + gitCur.platform++; } - + if (version <= itemVersion_353) gitCur.musicInfo.sound.drvMusic++; @@ -288,16 +288,16 @@ static Err GamUpdateList() { // to V3.5 gitCur.platform++; - + if (gitCur.language == 3) gitCur.language = 0; else if (gitCur.language >= 11) gitCur.language++; - + // to V3.5.1 if (gitCur.platform >= 9) gitCur.platform++; - + //to V3.5.3 gitCur.musicInfo.sound.drvMusic++; @@ -366,7 +366,7 @@ static Err GamUpdateList() { FrmDeleteForm(frmP); if (ofmP) FrmSetActiveForm(ofmP); - } + } } } @@ -529,7 +529,7 @@ Boolean GamJumpTo(Char letter) { GamUnselect(); DmWrite(game, OffsetOf(GameInfoType,selected), &newValue, sizeof(Boolean)); - + if (index < gPrefs->listPosition || index >= (gPrefs->listPosition + maxView)) gPrefs->listPosition = index; } diff --git a/backends/platform/PalmOS/Src/launcher/launch.cpp b/backends/platform/PalmOS/Src/launcher/launch.cpp index 4dc1011a15..cb2d52b20e 100644 --- a/backends/platform/PalmOS/Src/launcher/launch.cpp +++ b/backends/platform/PalmOS/Src/launcher/launch.cpp @@ -95,7 +95,7 @@ UInt16 ModFind(const Char *f) { if (!e) e = VFSFileClose(r); if (!e) break; } - + return volRefNum; } @@ -105,7 +105,7 @@ static void ModSetStack(UInt32 newSize, UInt16 cardNo, LocalID dbID) { if (dbRef) { MemHandle pref = DmGetResource('pref',0); UInt32 size = 0; - + if (pref) { SysAppPrefsType *data = (SysAppPrefsType *)MemHandleLock(pref); size = data->stackSize; @@ -273,7 +273,7 @@ Boolean StartScummVM(Int16 engine) { case 5: ArgsAdd(&argvP[argc], "--render-mode=", "hercGreen", &argc); break; - } + } switch (gameInfoP->gfxMode) { case 1: @@ -311,7 +311,7 @@ Boolean StartScummVM(Int16 engine) { "segacd", "windows" }; - ArgsAdd(&argvP[argc], "--platform=", platform[gameInfoP->platform], &argc); + ArgsAdd(&argvP[argc], "--platform=", platform[gameInfoP->platform], &argc); } // subtitles @@ -354,7 +354,7 @@ Boolean StartScummVM(Int16 engine) { else ArgsAdd(&argvP[argc], "-e", "auto", &argc); // no driver, switch to auto } else { - ArgsAdd(&argvP[argc], "-e", drv[gameInfoP->musicInfo.sound.drvMusic], &argc); + ArgsAdd(&argvP[argc], "-e", drv[gameInfoP->musicInfo.sound.drvMusic], &argc); } // output rate @@ -398,7 +398,7 @@ Boolean StartScummVM(Int16 engine) { if (gPrefs->altIntro) ArgsAdd(&argvP[argc], "--alt-intro", NULL, &argc); } - + if (engine == ENGINE_SCUMM) { // demo mode ? if (gPrefs->demoMode) @@ -418,7 +418,7 @@ Boolean StartScummVM(Int16 engine) { lightspeed= (gPrefs->lightspeed.enable ? gPrefs->lightspeed.mode : 255); toLauncher= (gPrefs->exitLauncher); - // gVars values + // gVars values // (gVars->HRrefNum defined in checkHRmode on Clie) #ifndef _DEBUG_ENGINE gVars->VFS.volRefNum = (gPrefs->card.autoDetect ? vfsInvalidVolRef : gPrefs->card.volRefNum); @@ -436,12 +436,12 @@ Boolean StartScummVM(Int16 engine) { // user params HWR_RSTALL(); - + if (gPrefs->goLCD) HWR_SET(INIT_GOLCD); else OPTIONS_RST(kOptGoLcdAPI); - + if (!gPrefs->autoOff) HWR_SET(INIT_AUTOOFF); diff --git a/backends/platform/PalmOS/Src/launcher/skin.cpp b/backends/platform/PalmOS/Src/launcher/skin.cpp index ae042bcb39..3e8b0f0b96 100644 --- a/backends/platform/PalmOS/Src/launcher/skin.cpp +++ b/backends/platform/PalmOS/Src/launcher/skin.cpp @@ -232,7 +232,7 @@ void SknGetObjectBounds(DmOpenRef skinDBP, DmResID resID, RectangleType *rP) { rP->topLeft.x = strTemp[sknInfoPosX] * 2; rP->topLeft.y = strTemp[sknInfoPosY] * 2; - MemPtrUnlock(strTemp); + MemPtrUnlock(strTemp); DmReleaseResource(hStr); } @@ -274,8 +274,8 @@ UInt8 SknSetState(DmOpenRef skinDBP, DmResID resID, UInt8 newState) { DmWrite(strTemp, 0, &newState, 1); } - MemPtrUnlock(strTemp); - DmReleaseResource(hStr); + MemPtrUnlock(strTemp); + DmReleaseResource(hStr); } } } @@ -298,8 +298,8 @@ UInt8 SknGetDepth(DmOpenRef skinDBP) { if (hStr) { strTemp = (UInt8 *)MemHandleLock(hStr); depth = *strTemp; - MemPtrUnlock(strTemp); - DmReleaseResource(hStr); + MemPtrUnlock(strTemp); + DmReleaseResource(hStr); } } } @@ -321,9 +321,9 @@ UInt8 SknGetState(DmOpenRef skinDBP, DmResID resID) { if (hStr) { strTemp = (UInt8 *)MemHandleLock(hStr); - oldState = strTemp[sknInfoState]; - MemPtrUnlock(strTemp); - DmReleaseResource(hStr); + oldState = strTemp[sknInfoState]; + MemPtrUnlock(strTemp); + DmReleaseResource(hStr); } } } @@ -450,7 +450,7 @@ void SknUpdateList() { x = rCopy.topLeft.x; y = rCopy.topLeft.y; rCopy.topLeft.x -= rField.topLeft.x; - rCopy.topLeft.y -= rField.topLeft.y; + rCopy.topLeft.y -= rField.topLeft.y; SknCopyBits(skinDBP, skinBackgroundImageTop, &rCopy, x, y); // copy bottom bg SknGetObjectBounds(skinDBP, skinBackgroundImageBottom, &rField); @@ -458,7 +458,7 @@ void SknUpdateList() { x = rCopy.topLeft.x; y = rCopy.topLeft.y; rCopy.topLeft.x -= rField.topLeft.x; - rCopy.topLeft.y -= rField.topLeft.y; + rCopy.topLeft.y -= rField.topLeft.y; SknCopyBits(skinDBP, skinBackgroundImageBottom, &rCopy, x, y); FntSetFont(stdFont); diff --git a/backends/platform/PalmOS/Src/launcher/start.cpp b/backends/platform/PalmOS/Src/launcher/start.cpp index f492655cf8..b5e8f24884 100644 --- a/backends/platform/PalmOS/Src/launcher/start.cpp +++ b/backends/platform/PalmOS/Src/launcher/start.cpp @@ -97,9 +97,9 @@ Err SendDatabase (UInt16 cardNo, LocalID dbID, Char *nameP, Char *descriptionP) * minimum requirement. * * PARAMETERS: requiredVersion - minimum rom version required - * (see sysFtrNumROMVersion in SystemMgr.h + * (see sysFtrNumROMVersion in SystemMgr.h * for format) - * launchFlags - flags that indicate if the application + * launchFlags - flags that indicate if the application * UI is initialized. * * RETURNED: error code or zero if rom is compatible @@ -119,7 +119,7 @@ static Err RomVersionCompatible(UInt32 requiredVersion, UInt16 launchFlags) { FrmAlert (RomIncompatibleAlert); - // Palm OS 1.0 will continuously relaunch this app unless we switch to + // Palm OS 1.0 will continuously relaunch this app unless we switch to // another safe one. if (romVersion <= kPalmOS10Version) AppLaunchWithCommand(sysFileCDefaultApp, sysAppLaunchCmdNormalLaunch, NULL); @@ -210,7 +210,7 @@ static Boolean AppHandleEvent(EventPtr eventP) { } return true; } - + return false; } @@ -218,7 +218,7 @@ static Boolean AppHandleEvent(EventPtr eventP) { * * FUNCTION: AppEventLoop * - * DESCRIPTION: This routine is the event loop for the application. + * DESCRIPTION: This routine is the event loop for the application. * * PARAMETERS: nothing * @@ -249,8 +249,8 @@ static void AppEventLoop(void) { * * DESCRIPTION: This is the main entry point for the application. * - * PARAMETERS: cmd - word value specifying the launch code. - * cmdPB - pointer to a structure that is associated with the launch code. + * PARAMETERS: cmd - word value specifying the launch code. + * cmdPB - pointer to a structure that is associated with the launch code. * launchFlags - word value providing extra information about the launch. * * RETURNED: Result of launch @@ -324,7 +324,7 @@ static UInt32 ScummVMPalmMain(UInt16 cmd, MemPtr cmdPBP, UInt16 launchFlags) { case sysAppLaunchCmdNormalLaunch: error = AppStart(); - if (error) + if (error) goto end; if (!bDirectMode) { @@ -352,8 +352,8 @@ end: * * DESCRIPTION: This is the main entry point for the application. * - * PARAMETERS: cmd - word value specifying the launch code. - * cmdPB - pointer to a structure that is associated with the launch code. + * PARAMETERS: cmd - word value specifying the launch code. + * cmdPB - pointer to a structure that is associated with the launch code. * launchFlags - word value providing extra information about the launch. * RETURNED: Result of launch * diff --git a/backends/platform/PalmOS/Src/launcher/start.h b/backends/platform/PalmOS/Src/launcher/start.h index bccbc53f86..3ed52b465b 100644 --- a/backends/platform/PalmOS/Src/launcher/start.h +++ b/backends/platform/PalmOS/Src/launcher/start.h @@ -22,7 +22,7 @@ * $Id$ * */ - + #ifndef __START_H__ #define __START_H__ @@ -36,7 +36,7 @@ typedef struct { //skin params SkinInfoType skin; // card where is located the skin - Boolean soundClick; + Boolean soundClick; Boolean vibrator; Boolean autoOff; diff --git a/backends/platform/PalmOS/Src/modules.cpp b/backends/platform/PalmOS/Src/modules.cpp index bfe2595b07..f66d7d6ae6 100644 --- a/backends/platform/PalmOS/Src/modules.cpp +++ b/backends/platform/PalmOS/Src/modules.cpp @@ -105,7 +105,7 @@ static UInt32 ModulesPalmMain(UInt16 cmd, MemPtr cmdPBP, UInt16 launchFlags) LocalID dbID; LaunchParamType *lp = (LaunchParamType *)cmdPBP; - + gVars = lp->gVars; argvP = lp->args.argv; @@ -128,7 +128,7 @@ static UInt32 ModulesPalmMain(UInt16 cmd, MemPtr cmdPBP, UInt16 launchFlags) // MemPtrSetOwner(gVars, ownerID); // ArgsSetOwner(argvP, ownerID); // will be freed by main(...) // MemPtrFree(lp); // will be freed by the system on exit - + run(lp->args.argc, argvP); cardNo = 0; diff --git a/backends/platform/PalmOS/Src/native/pace.h b/backends/platform/PalmOS/Src/native/pace.h index dac855c3ba..b3e2d14593 100644 --- a/backends/platform/PalmOS/Src/native/pace.h +++ b/backends/platform/PalmOS/Src/native/pace.h @@ -52,9 +52,9 @@ extern GlobalsType global; #ifdef __cplusplus -# define PACE_CLASS_WRAPPER(rv) extern "C" rv +# define PACE_CLASS_WRAPPER(rv) extern "C" rv #else -# define PACE_CLASS_WRAPPER(rv) rv +# define PACE_CLASS_WRAPPER(rv) rv #endif #define PACE_CALLBACK_PTR g_call68KFuncP #define PACE_EMULSTATE g_emulStateP @@ -66,7 +66,7 @@ extern GlobalsType global; #define PACE_PARAMS_INIT() \ UInt8 params[] = { - + #define PACE_PARAMS_ADD8(param) \ (UInt8)(param), \ 0, @@ -91,7 +91,7 @@ extern GlobalsType global; static_cast<void *>(PACE_EMULSTATE), \ PceNativeTrapNo(sysTrapPinsDispatch), \ NULL, 0))); - + #define PACE_PIN_EXEC(pinTrap, returnType) \ PACE_EMULSTATE->regData[2] = pinTrap; \ return ((returnType)((PACE_CALLBACK_PTR)( \ @@ -100,4 +100,4 @@ extern GlobalsType global; ¶ms, \ sizeof(params)))); -#endif
\ No newline at end of file +#endif diff --git a/backends/platform/PalmOS/Src/native/zodiacARM.cpp b/backends/platform/PalmOS/Src/native/zodiacARM.cpp index 87de372943..7323bb6d69 100644 --- a/backends/platform/PalmOS/Src/native/zodiacARM.cpp +++ b/backends/platform/PalmOS/Src/native/zodiacARM.cpp @@ -74,11 +74,11 @@ static void Go() { int argc; #ifdef DEBUG_ARM -// Tell the debugger we want to enable full debugging - UInt32 flags = AdnDebugEnableGet(); - flags |= kAdnEnableMasterSwitch | kAdnEnableFullDebugging; - AdnDebugEnableSet(flags); -// Tell the debugger where our code lives in memory: +// Tell the debugger we want to enable full debugging + UInt32 flags = AdnDebugEnableGet(); + flags |= kAdnEnableMasterSwitch | kAdnEnableFullDebugging; + AdnDebugEnableSet(flags); +// Tell the debugger where our code lives in memory: AdnDebugNativeRegister(sysFileTApplication, appFileCreator, 'ARMC', 1); #endif @@ -102,9 +102,9 @@ static void Go() { if (HWR_INIT(INIT_VIBRATOR)) gVars->vibrator = RumbleInit(); // run ... - DO_EXIT ( palm_main(argc, argvP); ) + DO_EXIT ( palm_main(argc, argvP); ) - // release + // release if (HWR_INIT(INIT_VIBRATOR)) RumbleRelease(); stdio_release(); @@ -118,7 +118,7 @@ static void Go() { Int8 *g_newStack, *g_newStackPos; void *g_oldStack; -static asm void *StkSwap(void *newStack ,void *dummy) { +static asm void *StkSwap(void *newStack ,void *dummy) { mov r1, r13 mov r13, r0 mov r0, r1 @@ -134,7 +134,7 @@ extern UInt32 PilotMain(UInt16 cmd, MemPtr cmdPBP, UInt16 launchFlags) { g_newStack = (Int8 *)malloc(g_stackSize + 8); g_newStackPos = (g_newStack + g_stackSize); g_newStackPos -= ((UInt32)g_newStackPos & 7); - + g_oldStack = StkSwap(g_newStackPos, 0); Go(); diff --git a/backends/platform/PalmOS/Src/os5_gfx.cpp b/backends/platform/PalmOS/Src/os5_gfx.cpp index 16ca267389..2d26419dff 100644 --- a/backends/platform/PalmOS/Src/os5_gfx.cpp +++ b/backends/platform/PalmOS/Src/os5_gfx.cpp @@ -40,7 +40,7 @@ WinHandle OSystem_PalmOS5::alloc_screen(Coord w, Coord h) { UInt16 old = WinSetCoordinateSystem(kCoordinatesNative); winH = WinCreateOffscreenWindow(w, h, nativeFormat, &e); WinSetCoordinateSystem(old); - + return winH; } @@ -162,9 +162,9 @@ void OSystem_PalmOS5::hotswap_gfx_mode(int mode) { void OSystem_PalmOS5::unload_gfx_mode() { if (!_gfxLoaded) - return; + return; _gfxLoaded = false; - + // mouse data freed in quit() free(_offScreenP); @@ -172,7 +172,7 @@ void OSystem_PalmOS5::unload_gfx_mode() { WinDeleteWindow(_workScreenH, false); if (_overlayH) WinDeleteWindow(_overlayH, false); - + _workScreenH = NULL; _overlayH = NULL; diff --git a/backends/platform/PalmOS/Src/os5_mouse.cpp b/backends/platform/PalmOS/Src/os5_mouse.cpp index 3b2c7840e6..0be9d3da46 100644 --- a/backends/platform/PalmOS/Src/os5_mouse.cpp +++ b/backends/platform/PalmOS/Src/os5_mouse.cpp @@ -30,7 +30,7 @@ void OSystem_PalmOS5::setCursorPalette(const byte *colors, uint start, uint num) _mousePal[i + start] = gfxMakeDisplayRGB(colors[0], colors[1], colors[2]); colors += 4; } - + _cursorPaletteDisabled = false; } @@ -42,7 +42,7 @@ void OSystem_PalmOS5::disableCursorPalette(bool disable) { void OSystem_PalmOS5::draw_mouse() { if (!_mouseDataP || _mouseDrawn || !_mouseVisible) return; - + byte *src = _mouseDataP; int x = _mouseCurState.x - _mouseHotspotX; @@ -145,7 +145,7 @@ void OSystem_PalmOS5::undraw_mouse() { } else { byte *dst = _offScreenP + _mouseOldState.y * _screenWidth + _mouseOldState.x; byte *bak = _mouseBackupP; - + do { MemMove(dst, bak, _mouseOldState.w); dst += _screenWidth; @@ -154,4 +154,4 @@ void OSystem_PalmOS5::undraw_mouse() { } _mouseDrawn = false; -}
\ No newline at end of file +} diff --git a/backends/platform/PalmOS/Src/os5_sound.cpp b/backends/platform/PalmOS/Src/os5_sound.cpp index 92147ef2a0..608b8af543 100644 --- a/backends/platform/PalmOS/Src/os5_sound.cpp +++ b/backends/platform/PalmOS/Src/os5_sound.cpp @@ -42,7 +42,7 @@ SoundExType _soundEx; static Err sndCallback(void* UserDataP, SndStreamRef stream, void* bufferP, UInt32 *bufferSizeP) { SoundExType *_soundEx = (SoundExType *)UserDataP; SoundType *_sound = _soundEx->sound; - + if (_soundEx->set && _soundEx->size) { MemMove(bufferP, _soundEx->dataP, _soundEx->size); *bufferSizeP = _soundEx->size; @@ -53,7 +53,7 @@ static Err sndCallback(void* UserDataP, SndStreamRef stream, void* bufferP, UInt MemSet(bufferP, 128, 0); *bufferSizeP = 128; } - + return errNone; } diff --git a/backends/platform/PalmOS/Src/prefixes/compile.h b/backends/platform/PalmOS/Src/prefixes/compile.h index bb48761fcf..40485a5927 100644 --- a/backends/platform/PalmOS/Src/prefixes/compile.h +++ b/backends/platform/PalmOS/Src/prefixes/compile.h @@ -38,7 +38,7 @@ #define DISABLE_SAGA #define DISABLE_KYRA #define DISABLE_AWE -#define DISABLE_GOB +#define DISABLE_GOB #define DISABLE_LURE #define DISABLE_CINE #define DISABLE_AGI diff --git a/backends/platform/PalmOS/Src/zodiac_event.cpp b/backends/platform/PalmOS/Src/zodiac_event.cpp index 62abf8019d..f629c4cbd6 100644 --- a/backends/platform/PalmOS/Src/zodiac_event.cpp +++ b/backends/platform/PalmOS/Src/zodiac_event.cpp @@ -86,7 +86,7 @@ bool OSystem_PalmZodiac::check_event(Common::Event &event, EventPtr ev) { if (_sound.active) SndStreamPause(_soundEx.handle, true); break; - + case vchrLateWakeup: // resume the sound thread if any if (_sound.active) diff --git a/backends/platform/PalmOS/Src/zodiac_gfx.cpp b/backends/platform/PalmOS/Src/zodiac_gfx.cpp index 0c70aa9fe4..e7f7adb773 100644 --- a/backends/platform/PalmOS/Src/zodiac_gfx.cpp +++ b/backends/platform/PalmOS/Src/zodiac_gfx.cpp @@ -175,7 +175,7 @@ void OSystem_PalmZodiac::unload_gfx_mode() { Err e; if (!_gfxLoaded) - return; + return; _gfxLoaded = false; if (_tmpScreenP) { @@ -186,7 +186,7 @@ void OSystem_PalmZodiac::unload_gfx_mode() { e = TwGfxFreeSurface(_overlayP); e = TwGfxClose(_gfxH); - UInt32 depth = 8; + UInt32 depth = 8; WinScreenMode(winScreenModeSet, NULL, NULL, &depth, NULL); clearScreen(); @@ -246,11 +246,11 @@ void OSystem_PalmZodiac::updateScreen() { } e = TwGfxDrawBitmap(_tmpScreenP, &pos, &_srcBmp); e = TwGfxWaitForVBlank(_gfxH); - e = TwGfxStretchBlt2(_palmScreenP, &dst, _tmpScreenP, &_srcRect, twGfxStretchFast| (gVars->filter ? twGfxStretchSmooth : 0)); - + e = TwGfxStretchBlt2(_palmScreenP, &dst, _tmpScreenP, &_srcRect, twGfxStretchFast| (gVars->filter ? twGfxStretchSmooth : 0)); + } else { TwGfxPointType pos = {_srcPos.x, _srcPos.y}; - + if (_new_shake_pos != _current_shake_pos) { if (_new_shake_pos != 0) { TwGfxRectType r = { _screenOffset.x, _screenOffset.y, _screenWidth, _new_shake_pos }; @@ -263,7 +263,7 @@ void OSystem_PalmZodiac::updateScreen() { e = TwGfxDrawBitmap(_palmScreenP, &pos, &_srcBmp); } } - + // undraw the mouse undraw_mouse(); } diff --git a/backends/platform/PalmOS/Src/zodiac_mouse.cpp b/backends/platform/PalmOS/Src/zodiac_mouse.cpp index 80acdae5ea..6fa19d090b 100644 --- a/backends/platform/PalmOS/Src/zodiac_mouse.cpp +++ b/backends/platform/PalmOS/Src/zodiac_mouse.cpp @@ -28,7 +28,7 @@ void OSystem_PalmZodiac::draw_mouse() { if (!_mouseDataP || _mouseDrawn || !_mouseVisible) return; - + byte *src = _mouseDataP; int x = _mouseCurState.x - _mouseHotspotX; diff --git a/backends/platform/PalmOS/Src/zodiac_overlay.cpp b/backends/platform/PalmOS/Src/zodiac_overlay.cpp index 33e5da2ac4..34390853fc 100644 --- a/backends/platform/PalmOS/Src/zodiac_overlay.cpp +++ b/backends/platform/PalmOS/Src/zodiac_overlay.cpp @@ -43,7 +43,7 @@ void OSystem_PalmZodiac::clearOverlay() { void OSystem_PalmZodiac::grabOverlay(OverlayColor *buf, int pitch) { Err e; OverlayColor *src; - + e = TwGfxLockSurface(_overlayP, (void **)&src); int h = _screenHeight; do { diff --git a/backends/platform/dc/cache.S b/backends/platform/dc/cache.S index 1af1678ced..1a1595a9a1 100644 --- a/backends/platform/dc/cache.S +++ b/backends/platform/dc/cache.S @@ -1,6 +1,6 @@ .globl _flush_instruction_cache - + .align 2 ! Flush the SH instruction cache diff --git a/backends/platform/dc/display.cpp b/backends/platform/dc/display.cpp index 062df16a7e..f3bfc4b78f 100644 --- a/backends/platform/dc/display.cpp +++ b/backends/platform/dc/display.cpp @@ -161,7 +161,7 @@ void OSystem_Dreamcast::setCursorPalette(const byte *colors, uint start, uint nu void OSystem_Dreamcast::disableCursorPalette(bool disable) { - _enable_cursor_palette = !disable; + _enable_cursor_palette = !disable; } void OSystem_Dreamcast::grabPalette(byte *colors, uint start, uint num) diff --git a/backends/platform/dc/selector.cpp b/backends/platform/dc/selector.cpp index 334061f328..4bca47afb2 100644 --- a/backends/platform/dc/selector.cpp +++ b/backends/platform/dc/selector.cpp @@ -226,10 +226,10 @@ static int findGames(Game *games, int max) else files.push_back(*entry); } - + GameList candidates; detectGames(files, candidates); - + for (GameList::const_iterator ge = candidates.begin(); ge != candidates.end(); ++ge) if (curr_game < max) { @@ -237,7 +237,7 @@ static int findGames(Game *games, int max) strcpy(games[curr_game].dir, dirs[curr_dir-1].name); if (uniqueGame(games[curr_game].filename_base, games[curr_game].dir, games, curr_game)) { - + strcpy(games[curr_game].text, ge->description().c_str()); #if 0 printf("Registered game <%s> in <%s> <%s> because of <%s> <*>\n", diff --git a/backends/platform/ds/arm7/Makefile b/backends/platform/ds/arm7/Makefile index 41af6a2d71..9bb8e68b78 100644 --- a/backends/platform/ds/arm7/Makefile +++ b/backends/platform/ds/arm7/Makefile @@ -1,7 +1,7 @@ #--------------------------------------------------------------------------------- .SUFFIXES: #--------------------------------------------------------------------------------- - + #--------------------------------------------------------------------------------- # TARGET is the name of the output, if this ends with _mb generates a multiboot image # BUILD is the directory where object files & intermediate files will be placed @@ -16,7 +16,7 @@ INCLUDES := include build # Enable support for debugger (must be the same as in the arm9 makefile) #USE_DEBUGGER = 1 - + #--------------------------------------------------------------------------------- # options for code generation #--------------------------------------------------------------------------------- @@ -34,7 +34,7 @@ CFLAGS += $(INCLUDE) -DARM7 ifdef USE_DEBUGGER CFLAGS += -DUSE_DEBUGGER endif - + CXXFLAGS := $(CFLAGS) -fno-exceptions -fno-rtti ASFLAGS := -g $(ARCH) @@ -44,12 +44,12 @@ LDFLAGS := -g $(ARCH) -mno-fpu # path to tools - this can be deleted if you set the path in windows #--------------------------------------------------------------------------------- # export PATH := /d/dev/ds/devkitARM_r11/bin:/bin - + #--------------------------------------------------------------------------------- # PATH to ndslib - just make a system variable called NDSLIBPATH and be done with it #--------------------------------------------------------------------------------- # NDSLIBPATH := /d/dev/ds/ndslib/ - + #--------------------------------------------------------------------------------- # the prefix on the compiler executables #--------------------------------------------------------------------------------- @@ -62,26 +62,26 @@ LIBS := -lnds7 ifdef USE_DEBUGGER LIBS += -ldswifi7 endif - - + + #--------------------------------------------------------------------------------- # list of directories containing libraries, this must be the top level containing # include and lib #--------------------------------------------------------------------------------- LIBDIRS := /home/neil/devkitpror21/libnds home/neil/devkitpror21/libnds/nds - - + + #--------------------------------------------------------------------------------- # no real need to edit anything past this point unless you need to add additional # rules for different file extensions #--------------------------------------------------------------------------------- ifneq ($(BUILD),$(notdir $(CURDIR))) #--------------------------------------------------------------------------------- - + export OUTPUT := $(CURDIR)/$(TARGET) - + export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) - + export CC := $(PREFIX)gcc export CXX := $(PREFIX)g++ export AR := $(PREFIX)ar @@ -91,8 +91,8 @@ export OBJCOPY := $(PREFIX)objcopy #--------------------------------------------------------------------------------- export LD := $(CXX) #export LD := $(CC) - -CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c))) + +CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c))) CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp))) SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s))) PCXFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.pcx))) @@ -102,60 +102,60 @@ RAWFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.raw))) MAPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.map))) - + export OFILES := $(MAPFILES:.map=.o) $(RAWFILES:.raw=.o) $(PALFILES:.pal=.o) $(BINFILES:.bin=.o) $(PCXFILES:.pcx=.o)\ $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o) - + export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) -I- -I$(CURDIR)/../commoninclude\ $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ $(foreach dir,$(LIBDIRS),-I$(dir)/include/nds)\ -I$(CURDIR)/$(BUILD) -I$(CURDIR)/source/libcartreset - + export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) - + .PHONY: $(BUILD) clean - + #--------------------------------------------------------------------------------- $(BUILD): @[ -d $@ ] || mkdir -p $@ @echo $(OFILES) @echo $(CFILES) @make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile - + #--------------------------------------------------------------------------------- clean: @echo clean ...$(TARGET) @rm -fr $(BUILD) *.bin - - + + #--------------------------------------------------------------------------------- else - + DEPENDS := $(OFILES:.o=.d) - + #--------------------------------------------------------------------------------- # main targets #--------------------------------------------------------------------------------- $(OUTPUT).bin : $(OUTPUT).elf - + $(OUTPUT).elf : $(OFILES) - + #--------------------------------------------------------------------------------- %.bin: %.elf @echo built ... $(notdir $@) @$(OBJCOPY) -O binary $(TARGET).elf $@ - + #--------------------------------------------------------------------------------- %.elf: echo ELF @echo $(LD) $(LDFLAGS) -specs=ds_arm7.specs $(OFILES) $(LIBPATHS) $(LIBS) -o $(TARGET).elf @$(LD) $(LDFLAGS) -specs=ds_arm7.specs $(OFILES) $(LIBPATHS) $(LIBS) -o $(TARGET).elf - - - + + + #--------------------------------------------------------------------------------- # Compile Targets for C/C++ #--------------------------------------------------------------------------------- @@ -166,20 +166,20 @@ $(OUTPUT).elf : $(OFILES) @echo $(CXX) -MM $(CXXFLAGS) -o $*.d $< @$(CXX) -MM $(CXXFLAGS) -o $*.d $< @$(CXX) $(CXXFLAGS) -c $< -o$@ - + #--------------------------------------------------------------------------------- %.o : %.c @echo $(notdir $<) @echo $(CC) $(CFLAGS) -c $< -o$@ @$(CC) -MM $(CFLAGS) -o $*.d $< @$(CC) $(CFLAGS) -c $< -o$@ - + #--------------------------------------------------------------------------------- %.o : %.s @echo $(notdir $<) @$(CC) -MM $(CFLAGS) -o $*.d $< @$(CC) $(ASFLAGS) -c $< -o$@ - + define bin2o cp $(<) $(*).tmp $(OBJCOPY) -I binary -O elf32-littlearm -B arm \ @@ -192,31 +192,31 @@ define bin2o echo "extern const u32" $(*)_size[]";" >> $(*).h rm $(*).tmp endef - + #--------------------------------------------------------------------------------- %.o : %.pcx #--------------------------------------------------------------------------------- @echo $(notdir $<) @$(bin2o) - + #--------------------------------------------------------------------------------- %.o : %.bin #--------------------------------------------------------------------------------- @echo $(notdir $<) @$(bin2o) - + #--------------------------------------------------------------------------------- %.o : %.raw #--------------------------------------------------------------------------------- @echo $(notdir $<) @$(bin2o) - + #--------------------------------------------------------------------------------- %.o : %.pal #--------------------------------------------------------------------------------- @echo $(notdir $<) @$(bin2o) - + #--------------------------------------------------------------------------------- %.o : %.map #--------------------------------------------------------------------------------- @@ -229,9 +229,9 @@ endef @echo $(notdir $<) @$(bin2o) - + -include $(DEPENDS) - + #--------------------------------------------------------------------------------------- endif #--------------------------------------------------------------------------------------- diff --git a/backends/platform/ds/arm7/source/libcartreset/cartreset.c b/backends/platform/ds/arm7/source/libcartreset/cartreset.c index 2f27c1884e..db2f3cfddc 100644 --- a/backends/platform/ds/arm7/source/libcartreset/cartreset.c +++ b/backends/platform/ds/arm7/source/libcartreset/cartreset.c @@ -43,7 +43,7 @@ bool cartSetMenuMode(u32 _deviceType) tmp = *(vu16*)(0x08800612); tmp = *(vu16*)(0x08000000); tmp = *(vu16*)(0x08801B66); - tmp = *(vu16*)(0x08000000 + (mode << 1)); + tmp = *(vu16*)(0x08000000 + (mode << 1)); tmp = *(vu16*)(0x0800080E); tmp = *(vu16*)(0x08000000); diff --git a/backends/platform/ds/arm7/source/libcartreset/cartreset_nolibfat.h b/backends/platform/ds/arm7/source/libcartreset/cartreset_nolibfat.h index 79efa35e57..f1faebea37 100644 --- a/backends/platform/ds/arm7/source/libcartreset/cartreset_nolibfat.h +++ b/backends/platform/ds/arm7/source/libcartreset/cartreset_nolibfat.h @@ -53,5 +53,5 @@ void cartExecute(); } #endif -#endif +#endif diff --git a/backends/platform/ds/arm7/source/main.cpp b/backends/platform/ds/arm7/source/main.cpp index b7d9445e6e..dc2ff42fcb 100644 --- a/backends/platform/ds/arm7/source/main.cpp +++ b/backends/platform/ds/arm7/source/main.cpp @@ -28,9 +28,9 @@ ////////////////////////////////////////////////////////////////////// //#define USE_LIBCARTRESET - + #include <nds.h> - + #include <bios.h> #include <arm7/touch.h> #include <arm7/clock.h> @@ -113,12 +113,12 @@ void startSound(int sampleRate, const void* data, uint32 bytes, u8 channel=0, u8 } else { channel = 0; }*/ - + if (channel > 1) channel = 1; - + bytes &= ~7; // Multiple of 4 bytes! // bytes += 4; - + SCHANNEL_CR(channel) = 0; SCHANNEL_TIMER(channel) = SOUND_FREQ(sampleRate); SCHANNEL_SOURCE(channel) = ((uint32) (data)); @@ -130,7 +130,7 @@ void startSound(int sampleRate, const void* data, uint32 bytes, u8 channel=0, u8 SCHANNEL_SOURCE(channel + 2) = ((uint32) (data)); SCHANNEL_LENGTH(channel + 2) = ((bytes & 0x7FFFFFFF) >> 2); SCHANNEL_REPEAT_POINT(channel + 2) = 0; - + uint32 flags = SCHANNEL_ENABLE | SOUND_VOL(vol) | SOUND_PAN(pan); switch (format) { @@ -139,21 +139,21 @@ void startSound(int sampleRate, const void* data, uint32 bytes, u8 channel=0, u8 flags |= SOUND_REPEAT;// | (1 << 15); break; } - + case 0: { flags |= SOUND_16BIT; flags |= SOUND_REPEAT;// | (1 << 15); break; } - + case 2: { flags |= SOUND_FORMAT_ADPCM; flags |= SOUND_ONE_SHOT;// | (1 << 15); - + SCHANNEL_SOURCE(channel) = (unsigned int) IPC->adpcm.buffer[0]; //bytes += 32; SCHANNEL_LENGTH(channel) = (((bytes + 4) & 0x7FFFFFFF) >> 2); - + SCHANNEL_CR(channel + 1) = 0; SCHANNEL_SOURCE(channel + 1) = (unsigned int) IPC->adpcm.buffer[0]; SCHANNEL_LENGTH(channel + 1) = (((bytes + 4) & 0x7FFFFFFF) >> 2); @@ -165,16 +165,16 @@ void startSound(int sampleRate, const void* data, uint32 bytes, u8 channel=0, u8 break; } } - - + + // if (bytes & 0x80000000) { // flags |= SOUND_REPEAT; // } else { // } - - - + + + soundData = (vu8* ) data; SCHANNEL_CR(channel) = flags; @@ -186,11 +186,11 @@ void startSound(int sampleRate, const void* data, uint32 bytes, u8 channel=0, u8 for (volatile int i = 0; i < 16384 * 2; i++) { // Delay loop - this makes everything stay in sync! } - + TIMER0_CR = 0; TIMER0_DATA = SOUND_FREQ(sampleRate) * 2; TIMER0_CR = TIMER_ENABLE | TIMER_DIV_1; - + TIMER1_CR = 0; TIMER1_DATA = 65536 - ((bytes & 0x7FFFFFFF) >> 3); // Trigger four times during the length of the buffer TIMER1_CR = TIMER_ENABLE | TIMER_IRQ_REQ | TIMER_CASCADE; @@ -200,19 +200,19 @@ void startSound(int sampleRate, const void* data, uint32 bytes, u8 channel=0, u8 for (volatile int i = 0; i < 16384 * 2; i++) { // Delay loop - this makes everything stay in sync! } - + TIMER2_CR = 0; TIMER2_DATA = SOUND_FREQ(sampleRate) * 2; TIMER2_CR = TIMER_ENABLE | TIMER_DIV_1; - + TIMER3_CR = 0; TIMER3_DATA = 65536 - ((bytes & 0x7FFFFFFF) >> 3); // Trigger four times during the length of the buffer TIMER3_CR = TIMER_ENABLE | TIMER_IRQ_REQ | TIMER_CASCADE; - + for (int r = 0; r < 4; r++) { // IPC->streamFillNeeded[r] = true; } - + IPC->streamPlayingSection = 0; } @@ -221,7 +221,7 @@ void startSound(int sampleRate, const void* data, uint32 bytes, u8 channel=0, u8 // IPC->fillSoundFirstHalf = true; // IPC->fillSoundSecondHalf = true; // soundFirstHalf = true; - + // REG_IME = IME_ENABLE; } @@ -247,7 +247,7 @@ uint16 powerManagerWrite(uint32 command, u32 data, bool enable) { REG_SPICNT = SPI_ENABLE | SPI_BAUD_1MHz; REG_SPIDATA = 0; SerialWaitBusy(); - + result = REG_SPIDATA & 0xFF; @@ -277,15 +277,15 @@ void performSleep() { IRQ_HANDLER = DummyHandler; IF = ~0; IME = 1; - - + + // Now save which interrupts are enabled, then set only the screens unfolding // interrupt to be enabled, so that the first interrupt that happens is the // one I want. int saveInts = IE; - - - + + + IE = IRQ_TIMER0; // Screens unfolding interrupt // Now call the sleep function in the bios @@ -294,26 +294,26 @@ void performSleep() { TIMER0_CR = 0; TIMER0_DATA = TIMER_FREQ(20); TIMER0_CR = TIMER_ENABLE | TIMER_DIV_64; - + swiDelay(100); - + swiSleep(); swiDelay(100); - - powerManagerWrite(0, 0x30, b = !b); + + powerManagerWrite(0, 0x30, b = !b); } while (!(TIMER0_CR & TIMER_ENABLE)); - + TIMER0_CR = 0; - // We're back from sleep, now restore the interrupt state and IRQ handler + // We're back from sleep, now restore the interrupt state and IRQ handler IRQ_HANDLER = (void (*)()) irq; IE = saveInts; IF = ~0; IME = 1; - - + + powerManagerWrite(0, 0x30, false); } @@ -322,29 +322,29 @@ void performSleep() { powerManagerWrite(0, 0x30, true); IPC->performArm9SleepMode = true; // Tell ARM9 to sleep - + // u32 irq = (u32) IRQ_HANDLER; // IRQ_HANDLER = DummyHandler; // POWER_CR &= ~POWER_SOUND; - + // int saveInts = REG_IE; // REG_IE = (1 << 22) | IRQ_VBLANK; // Lid open // *((u32*) (0x0380FFF8)) = *((u32*) (0x0380FFF8)) | (REG_IE & REG_IF); // VBLANK_INTR_WAIT_FLAGS = IRQ_VBLANK; - + int r = 0; while ((REG_KEYXY & (1 << 7))) { // Wait for lid to open swiDelay(1000000); r++; } - + // IRQ_HANDLER = (void (*)()) irq; IPC->performArm9SleepMode = false; // Tell ARM9 to wake up // REG_IE = saveInts; - + // POWER_CR |= POWER_SOUND; - + powerManagerWrite(0, 0x30, false); } @@ -353,33 +353,33 @@ void powerOff() { } ////////////////////////////////////////////////////////////////////// - - + + void InterruptTimer1() { - + IPC->fillNeeded[playingSection] = true; soundFilled[playingSection] = false; - + if (playingSection == 3) { // IME = IME_DISABLED; - + // while (SCHANNEL_CR(0) & SCHANNEL_ENABLE) { // } -// SCHANNEL_CR(0) &= ~SCHANNEL_ENABLE; - +// SCHANNEL_CR(0) &= ~SCHANNEL_ENABLE; + // SCHANNEL_CR(0) |= SCHANNEL_ENABLE; // TIMER1_CR = 0; // TIMER1_CR = TIMER_ENABLE | TIMER_IRQ_REQ | TIMER_CASCADE; - + playingSection = 0; - + // IME = IME_ENABLED; } else { playingSection++; } - + IPC->playingSection = playingSection; - + /* for (int r = 0; r < 4; r++) { //if ((!soundFilled[r]) && (!IPC->fillNeeded[playingSection])) { memcpy((void *) (soundBuffer + (r * 1024)), (void *) (arm9Buffer + (r * 1024)), 1024); @@ -391,21 +391,21 @@ void InterruptTimer1() { soundFilled[r] = true; //} }*/ -} - +} + void InterruptTimer3() { while (IPC->adpcm.semaphore); // Wait for buffer to become free if needed IPC->adpcm.semaphore = true; // Lock the buffer structure to prevent clashing with the ARM7 - + IPC->streamFillNeeded[IPC->streamPlayingSection] = true; - + if (IPC->streamPlayingSection == 3) { IPC->streamPlayingSection = 0; } else { IPC->streamPlayingSection++; } - - + + IPC->adpcm.semaphore = false; } @@ -416,10 +416,10 @@ void InterruptTimer3() { // static int16 TOUCH_HEIGHT = TOUCH_CAL_Y2 - TOUCH_CAL_Y1; // static int16 CNTRL_WIDTH = TOUCH_CNTRL_X2 - (TOUCH_CNTRL_X1 - 8); // static int16 CNTRL_HEIGHT = TOUCH_CNTRL_Y2 - (TOUCH_CNTRL_Y1 - 8); - - - - + + + + void InterruptVBlank() { uint16 but=0, x=0, y=0, xpx=0, ypx=0, z1=0, z2=0, batt=0, aux=0; int t1=0, t2=0; @@ -428,7 +428,7 @@ void InterruptTimer3() { static int heartbeat = 0; // Update the heartbeat heartbeat++; - + // Read the X/Y buttons and the /PENIRQ line but = REG_KEYXY; if (!(but & 0x40)) { @@ -437,28 +437,28 @@ void InterruptTimer3() { // x = touchRead(TSC_MEASURE_X); // y = touchRead(TSC_MEASURE_Y); - + x = p.x; y = p.y; - + xpx = p.px; ypx = p.py; - + // xpx = ( ((SCREEN_WIDTH -60) * x) / TOUCH_WIDTH ) - TOUCH_OFFSET_X; // ypx = ( ((SCREEN_HEIGHT-60) * y) / TOUCH_HEIGHT ) - TOUCH_OFFSET_Y; - + // xpx = (IPC->touchX - (int16) TOUCH_CAL_X1) * CNTRL_WIDTH / TOUCH_WIDTH + (int16) (TOUCH_CNTRL_X1 - 8); - // ypx = (IPC->touchY - (int16) TOUCH_CAL_Y1) * CNTRL_HEIGHT / TOUCH_HEIGHT + (int16) (TOUCH_CNTRL_Y1 - 8); + // ypx = (IPC->touchY - (int16) TOUCH_CAL_Y1) * CNTRL_HEIGHT / TOUCH_HEIGHT + (int16) (TOUCH_CNTRL_Y1 - 8); + - z1 = touchRead(TSC_MEASURE_Z1); z2 = touchRead(TSC_MEASURE_Z2); } - + if (but & (1 << 7)) { // Check if screen is folded needSleep = true; } - + batt = touchRead(TSC_MEASURE_BATTERY); aux = touchRead(TSC_MEASURE_AUX); @@ -466,11 +466,11 @@ void InterruptTimer3() { // Read the time rtcGetTime((uint8 *)ct); BCDToInteger((uint8 *)&(ct[1]), 7); - + // Read the temperature temp = touchReadTemperature(&t1, &t2); - - + + // Update the IPC struct IPC->heartbeat = heartbeat; IPC->buttons = but; @@ -491,7 +491,7 @@ void InterruptTimer3() { IPC->tdiode1 = t1; IPC->tdiode2 = t2; - + //sound code :) TransferSound *snd = IPC->soundData; @@ -508,12 +508,12 @@ void InterruptTimer3() { } } } - - + + #ifdef USE_DEBUGGER Wifi_Update(); // update wireless in vblank #endif -} +} ////////////////////////////////////////////////////////////////////// @@ -530,10 +530,10 @@ void arm7_fifo() { // check incoming fifo messages if (msg==0x87654321) Wifi_Sync(); } - + void initDebugger() { - + // set up the wifi irq irqSet(IRQ_WIFI, Wifi_Interrupt); // set up wifi interrupt irqEnable(IRQ_WIFI); @@ -558,7 +558,7 @@ void initDebugger() { REG_IPC_FIFO_CR = IPC_FIFO_ENABLE | IPC_FIFO_RECV_IRQ; Wifi_SetSyncHandler(arm7_synctoarm9); // allow wifi lib to notify arm9 - // arm7 wifi init complete + // arm7 wifi init complete } #endif @@ -572,11 +572,11 @@ void reboot() { int main(int argc, char ** argv) { - + #ifdef USE_DEBUGGER REG_IPC_FIFO_CR = IPC_FIFO_ENABLE | IPC_FIFO_SEND_CLEAR; #endif - + // Reset the clock if needed rtcReset(); @@ -587,19 +587,19 @@ int main(int argc, char ** argv) { IPC->reset = false; - - + + for (int r = 0; r < 8; r++) { IPC->adpcm.arm7Buffer[r] = (u8 *) malloc(512); } - + for (int r = 0; r < 4; r++) { soundFilled[r] = false; } - + // Set up the interrupt handler - + irqInit(); irqSet(IRQ_VBLANK, InterruptVBlank); @@ -610,7 +610,7 @@ int main(int argc, char ** argv) { irqSet(IRQ_TIMER3, InterruptTimer3); irqEnable(IRQ_TIMER3); - + /* REG_IME = 0; IRQ_HANDLER = &InterruptHandler; REG_IE = IRQ_VBLANK | IRQ_TIMER1 | IRQ_TIMER3; @@ -619,10 +619,10 @@ int main(int argc, char ** argv) { REG_IME = 1; */ - -#ifdef USE_DEBUGGER + +#ifdef USE_DEBUGGER initDebugger(); -#endif +#endif // Keep the ARM7 out of main RAM while ((1)) { @@ -646,6 +646,6 @@ int main(int argc, char ** argv) { return 0; } - + ////////////////////////////////////////////////////////////////////// diff --git a/backends/platform/ds/arm9/makefile b/backends/platform/ds/arm9/makefile index a64de889ad..bc3d532e8d 100644 --- a/backends/platform/ds/arm9/makefile +++ b/backends/platform/ds/arm9/makefile @@ -54,10 +54,10 @@ ifdef DS_BUILD_F # TODO: Fix this. When libmad is compiled in, the Kyrandia resource loading # searches through it's entire index to find an mp3 each time a voice sample is requested # this causes a nasty pause. -else +else ifdef DS_BUILD_E # TODO: Inherit the earth uses so much RAM that I have removed libmad in order to - # claw some back. + # claw some back. else @@ -135,7 +135,7 @@ ifdef DS_BUILD_B BUILD=scummvm-B endif -ifdef DS_BUILD_C +ifdef DS_BUILD_C DEFINES = -DDS_NON_SCUMM_BUILD -DDS_BUILD_C LOGO = logoc.bmp DISABLE_HE = 1 @@ -287,7 +287,7 @@ ifdef USE_PROFILER CFLAGS += -mpoke-function-name -finstrument-functions -g DEFINES += -DUSE_PROFILER endif - + CXXFLAGS= $(CFLAGS) -Wno-non-virtual-dtor -Wno-non-virtual-dtor \ -fno-exceptions -fno-rtti -mthumb-interwork @@ -315,7 +315,7 @@ INCLUDES= -I./ -I$(portdir)/$(BUILD) -I$(srcdir) -I$(srcdir)/common -I$(portdir) -I$(srcdir)/backends/fs -I$(srcdir)/backends/fs/ds -I$(portdir)/data -I$(libndsdir)/include -I$(portdir)/../commoninclude\ -I$(srcdir)/scumm -I$(libndsdir)/include -I$(libndsdir)/include/nds -I$(srcdir)/engines -I$(portdir)/source/mad\ -I$(portdir)/source/libcartreset -include $(srcdir)/common/scummsys.h - + LIBS = -lm -L$(libndsdir)/lib -L$(portdir)/lib -lnds9 ifdef USE_MAD @@ -352,15 +352,15 @@ PORT_OBJS := $(portdir)/source/blitters_arm.o $(portdir)/source/cdaudio.o $(port $(portdir)/source/osystem_ds.o $(portdir)/source/portdefs.o $(portdir)/source/ramsave.o\ $(portdir)/source/scummconsole.o $(portdir)/source/touchkeyboard.o $(portdir)/source/zipreader.o\ $(portdir)/source/dsoptions.o $(portdir)/source/keys.o $(portdir)/source/wordcompletion.o - + ifdef USE_PROFILER PORT_OBJS += $(portdir)/source/profiler/cyg-profile.o endif DATA_OBJS := $(portdir)/data/icons.o $(portdir)/data/keyboard.o $(portdir)/data/keyboard_pal.o $(portdir)/data/default_font.o $(portdir)/data/8x8font_tga.o - - + + COMPRESSOR_OBJS := $(portdir)/source/compressor/lz.o FAT_OBJS := $(portdir)/source/fat/disc_io.o $(portdir)/source/fat/gba_nds_fat.o\ @@ -379,13 +379,13 @@ FAT_OBJS := $(portdir)/source/fat/disc_io.o $(portdir)/source/fat/gba_nds_fat.o # $(portdir)/source/fat/io_cf_common.o $(portdir)/source/fat/io_m3_common.o\ # $(portdir)/source/fat/io_sd_common.o $(portdir)/source/fat/io_scsd_s.o \ -# $(portdir)/source/fat/io_sc_common.o $(portdir)/source/fat/io_sd_common.o +# $(portdir)/source/fat/io_sc_common.o $(portdir)/source/fat/io_sd_common.o LIBCARTRESET_OBJS := $(portdir)/source/libcartreset/cartreset.o - + # Files in this list will be optimisied for speed, otherwise they will be optimised for space OPTLIST := actor.cpp ds_main.cpp osystem_ds.cpp blitters.cpp fmopl.cpp rate.cpp mixer.cpp isomap.cpp image.cpp gfx.cpp sprite.cpp actor_path.cpp actor_walk.cpp -#OPTLIST := +#OPTLIST := # Compiler options for files which should be optimised for speed OPT_SPEED := -O3 @@ -394,11 +394,11 @@ OPT_SPEED := -O3 OPT_SIZE := -Os -mthumb -fno-gcse -fno-schedule-insns2 - -OBJS := $(DATA_OBJS) $(LIBCARTRESET_OBJS) $(PORT_OBJS) $(COMPRESSOR_OBJS) $(FAT_OBJS) - - +OBJS := $(DATA_OBJS) $(LIBCARTRESET_OBJS) $(PORT_OBJS) $(COMPRESSOR_OBJS) $(FAT_OBJS) + + + MODULE_DIRS += . ndsall: @@ -448,7 +448,7 @@ endef # $(*).tmp $(@) # echo "extern const u8" $(notdir $*)"[] __attribute__ ((aligned (4)));" > $(*).h # echo "extern const u32" $(notdir $(*))_size[]";" >> $(*).h -# +# # echo $(*).h # rm $(*).tmp #endef @@ -459,7 +459,7 @@ endef ############## ifndef HAVE_GCC3 # If you use GCC, disable the above and enable this for intelligent -# dependency tracking. +# dependency tracking. .cpp.o: $(MKDIR) $(*D)/$(DEPDIR) @@ -485,36 +485,36 @@ else $(MKDIR) $(*D)/$(DEPDIR) $(CXX) -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d",-MQ,"$@",-MP $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o - $(CXX) -MMD -MF "$(*D)/$(DEPDIR)/$(*F).d" $(if $(findstring $(notdir $<), $(OPTLIST)), $(OPT_SPEED), $(OPT_SIZE)) $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o + $(CXX) -MMD -MF "$(*D)/$(DEPDIR)/$(*F).d" $(if $(findstring $(notdir $<), $(OPTLIST)), $(OPT_SPEED), $(OPT_SIZE)) $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o endif #--------------------------------------------------------------------------------- - + #--------------------------------------------------------------------------------- %.o : %.pcx #--------------------------------------------------------------------------------- @echo $(notdir $<) @$(bin2o) - + #--------------------------------------------------------------------------------- %.o : %.bin #--------------------------------------------------------------------------------- @echo $(notdir $<) @$(bin2o) - + #--------------------------------------------------------------------------------- %.o : %.raw #--------------------------------------------------------------------------------- @echo $(notdir $<) @$(bin2o) - + #--------------------------------------------------------------------------------- %.o : %.pal #--------------------------------------------------------------------------------- @echo $(notdir $<) @$(bin2o) - + #--------------------------------------------------------------------------------- %.o : %.map #--------------------------------------------------------------------------------- @@ -543,4 +543,4 @@ endif #%.o: %.s # $(MKDIR) $(*D)/$(DEPDIR) # $(CXX) -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d",-MQ,"$@",-MP $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o - + diff --git a/backends/platform/ds/arm9/source/blitters.cpp b/backends/platform/ds/arm9/source/blitters.cpp index 582e15eb13..07c6b3fee1 100644 --- a/backends/platform/ds/arm9/source/blitters.cpp +++ b/backends/platform/ds/arm9/source/blitters.cpp @@ -27,25 +27,25 @@ namespace DS { -void asmDrawStripToScreen(int height, int width, byte const* text, byte const* src, byte* dst, +void asmDrawStripToScreen(int height, int width, byte const* text, byte const* src, byte* dst, int vsPitch, int vmScreenWidth, int textSurfacePitch) { if (height <= 0) height = 1; if (width < 4) return; - - + + width &= ~4; // src = (const byte *) (((int) (src)) & (~4)); // dst = (byte *) (((int) (dst)) & (~4)); // text = (const byte *) (((int) (text)) & (~4)); - + asm ( "mov r5, %0\n" // Height - "yLoop:\n" + "yLoop:\n" "mov r3, #0\n" // X pos - + "xLoop:\n" - + "ldr r4, [%2, r3]\n" // Load text layer word "cmp r4, %5\n" "bne singleByteCompare\n" @@ -54,7 +54,7 @@ void asmDrawStripToScreen(int height, int width, byte const* text, byte const* s "add r3, r3, #4\n" "cmp r3, %1\n" // x == width? "blt xLoop\n" - + "add %2, %2, %8\n" // src += vs->pitch "add %3, %3, %6\n" // dst += _vm->_screenWidth "add %4, %4, %7\n" // text += _textSurface.pitch @@ -62,8 +62,8 @@ void asmDrawStripToScreen(int height, int width, byte const* text, byte const* s "cmp r5, #0\n" // y == 0? "bne yLoop\n" "b end\n" - - + + "singleByteCompare:\n" "ldrb r4, [%2, r3]\n" // Load text byte "cmps r4, %5, lsr #24\n" // Compare with mask @@ -78,7 +78,7 @@ void asmDrawStripToScreen(int height, int width, byte const* text, byte const* s "ldreqb r4, [%3, r3]\n" // Otherwise Load src byte "streqb r4, [%4, r3]\n" // Store it "add r3, r3, #1\n" - + "ldrb r4, [%2, r3]\n" // Load text byte "cmps r4, %5, lsr #24\n" // Compare with mask "strneb r4, [%4, r3]\n" // Store if not equal @@ -91,7 +91,7 @@ void asmDrawStripToScreen(int height, int width, byte const* text, byte const* s "strneb r4, [%4, r3]\n" // Store if not equal "ldreqb r4, [%3, r3]\n" // Otherwise Load src byte "streqb r4, [%4, r3]\n" // Store it - "add r3, r3, #1\n" + "add r3, r3, #1\n" "cmps r3, %1\n" // x == width? "blt xLoop\n" // Repeat @@ -101,10 +101,10 @@ void asmDrawStripToScreen(int height, int width, byte const* text, byte const* s "sub r5, r5, #1\n" // y -= 1 "cmp r5, #0\n" // y == 0? "bne yLoop\n" - + "end:\n" : /* no output registers */ - : "r" (height), "r" (width), "r" (text), "r" (src), "r" (dst), "r" (CHARSET_MASK_TRANSPARENCY | (CHARSET_MASK_TRANSPARENCY << 8) | (CHARSET_MASK_TRANSPARENCY << 16) | (CHARSET_MASK_TRANSPARENCY << 24)), + : "r" (height), "r" (width), "r" (text), "r" (src), "r" (dst), "r" (CHARSET_MASK_TRANSPARENCY | (CHARSET_MASK_TRANSPARENCY << 8) | (CHARSET_MASK_TRANSPARENCY << 16) | (CHARSET_MASK_TRANSPARENCY << 24)), "r" (vsPitch), "r" (vmScreenWidth), "r" (textSurfacePitch) : "r5", "r3", "r4", "%2", "%3", "%4", "memory"); } @@ -115,7 +115,7 @@ void asmCopy8Col(byte* dst, int dstPitch, const byte* src, int height) { asm("ands r0, %3, #1\n" "addne %3, %3, #1\n" "bne roll2\n" - + "yLoop2:\n" "ldr r0, [%2, #0]\n" "str r0, [%0, #0]\n" @@ -131,7 +131,7 @@ void asmCopy8Col(byte* dst, int dstPitch, const byte* src, int height) { "add %0, %0, %1\n" "add %2, %2, %1\n" "subs %3, %3, #2\n" - "bne yLoop2\n" + "bne yLoop2\n" : /* no output registers */ : "r" (dst), "r" (dstPitch), "r" (src), "r" (height) @@ -150,7 +150,7 @@ void ComputeDivBy5TableIFN() for (int i=0; i<160; ++i) { DIV_BY_5[i] = (2*i+5)/10; - } + } } #ifdef PERFECT_5_TO_4_RESCALING @@ -163,13 +163,13 @@ static inline void RescaleBlock_5x1555_To_4x1555( u16 s0, u16 s1, u16 s2, u16 s3 u32 bs3 = s3 & 0x1F; u32 bs4 = s4 & 0x1F; -#if 0 +#if 0 u32 gs0 = (s0 >> 5) & 0x1F; u32 gs1 = (s1 >> 5) & 0x1F; u32 gs2 = (s2 >> 5) & 0x1F; u32 gs3 = (s3 >> 5) & 0x1F; u32 gs4 = (s4 >> 5) & 0x1F; - + u32 rs0 = (s0 >> 10) & 0x1F; u32 rs1 = (s1 >> 10) & 0x1F; u32 rs2 = (s2 >> 10) & 0x1F; @@ -191,22 +191,22 @@ static inline void RescaleBlock_5x1555_To_4x1555( u16 s0, u16 s1, u16 s2, u16 s3 asm("and %0, %2, %1, lsr #10" : "=r"(rs3) : "r"(s3), "r"(mask) : ); asm("and %0, %2, %1, lsr #10" : "=r"(rs4) : "r"(s4), "r"(mask) : ); #endif - + u32 rd0 = 4*rs0 + rs1; u32 rd1 = 2*rs1 + rs1 + 2*rs2; u32 rd2 = 2*rs2 + 2*rs3 + rs3; u32 rd3 = rs3 + 4*rs4; - + u32 gd0 = 4*gs0 + gs1; u32 gd1 = 2*gs1 + gs1 + 2*gs2; u32 gd2 = 2*gs2 + 2*gs3 + gs3; u32 gd3 = gs3 + 4*gs4; - + u32 bd0 = 4*bs0 + bs1; u32 bd1 = 2*bs1 + bs1 + 2*bs2; u32 bd2 = 2*bs2 + 2*bs3 + bs3; u32 bd3 = bs3 + 4*bs4; - + #if 0 // Offsetting for correct rounding rd0 = rd0*2+5; rd1 = rd1*2+5; rd2 = rd2*2+5; rd3 = rd3*2+5; @@ -217,14 +217,14 @@ static inline void RescaleBlock_5x1555_To_4x1555( u16 s0, u16 s1, u16 s2, u16 s3 gd0 = (gd0 * 51) >> 9; gd1 = (gd1 * 51) >> 9; gd2 = (gd2 * 51) >> 9; gd3 = (gd3 * 51) >> 9; bd0 = (bd0 * 51) >> 9; bd1 = (bd1 * 51) >> 9; bd2 = (bd2 * 51) >> 9; bd3 = (bd3 * 51) >> 9; #else - rd0 = DIV_BY_5[rd0]; rd1 = DIV_BY_5[rd1]; rd2 = DIV_BY_5[rd2]; rd3 = DIV_BY_5[rd3]; - gd0 = DIV_BY_5[gd0]; gd1 = DIV_BY_5[gd1]; gd2 = DIV_BY_5[gd2]; gd3 = DIV_BY_5[gd3]; - bd0 = DIV_BY_5[bd0]; bd1 = DIV_BY_5[bd1]; bd2 = DIV_BY_5[bd2]; bd3 = DIV_BY_5[bd3]; + rd0 = DIV_BY_5[rd0]; rd1 = DIV_BY_5[rd1]; rd2 = DIV_BY_5[rd2]; rd3 = DIV_BY_5[rd3]; + gd0 = DIV_BY_5[gd0]; gd1 = DIV_BY_5[gd1]; gd2 = DIV_BY_5[gd2]; gd3 = DIV_BY_5[gd3]; + bd0 = DIV_BY_5[bd0]; bd1 = DIV_BY_5[bd1]; bd2 = DIV_BY_5[bd2]; bd3 = DIV_BY_5[bd3]; #endif - + u32 d10 = 0x80008000 | (rd1 << 26) | (gd1 << 21) | (bd1 << 16) | (rd0 << 10) | (gd0 << 5) | bd0; u32 d32 = 0x80008000 | (rd3 << 26) | (gd3 << 21) | (bd3 << 16) | (rd2 << 10) | (gd2 << 5) | bd2; - + ((u32*)dest)[0] = d10; ((u32*)dest)[1] = d32; } @@ -233,7 +233,7 @@ static inline void RescaleBlock_5x1555_To_4x1555( u16 s0, u16 s1, u16 s2, u16 s3 u16* dest) { static const u32 MASK = 0x03E07C1F; - + u32 argbargbs0 = u32(s0) | (u32(s0) << 16); u32 argbargbs1 = u32(s1) | (u32(s1) << 16); u32 argbargbs2 = u32(s2) | (u32(s2) << 16); @@ -245,32 +245,32 @@ static inline void RescaleBlock_5x1555_To_4x1555( u16 s0, u16 s1, u16 s2, u16 s3 u32 grbs2 = argbargbs2 & MASK; u32 grbs3 = argbargbs3 & MASK; u32 grbs4 = argbargbs4 & MASK; - + u32 grbd0 = (3*grbs0 + grbs1) >> 2; u32 grbd1 = ( grbs1 + grbs2) >> 1; u32 grbd2 = ( grbs2 + grbs3) >> 1; u32 grbd3 = ( grbs3 + 3*grbs4) >> 2; - + grbd0 &= MASK; grbd1 &= MASK; grbd2 &= MASK; grbd3 &= MASK; - + u32 d0 = grbd0 | (grbd0 >> 16); u32 d1 = grbd1 | (grbd1 >> 16); u32 d2 = grbd2 | (grbd2 >> 16); u32 d3 = grbd3 | (grbd3 >> 16); - - d0 &= 0xFFFF; - d1 &= 0xFFFF; - d2 &= 0xFFFF; - d3 &= 0xFFFF; - - d0 |= 0x8000; - d1 |= 0x8000; - d2 |= 0x8000; - d3 |= 0x8000; - + + d0 &= 0xFFFF; + d1 &= 0xFFFF; + d2 &= 0xFFFF; + d3 &= 0xFFFF; + + d0 |= 0x8000; + d1 |= 0x8000; + d2 |= 0x8000; + d3 |= 0x8000; + dest[0] = d0; dest[1] = d1; dest[2] = d2; @@ -287,13 +287,13 @@ static inline void RescaleBlock_5x8888_To_4x1555( u32 s0, u32 s1, u32 s2, u32 s3 u32 bd0 = (d0 << 24) >> 24; u32 bd1 = (d1 << 24) >> 24; u32 gd0 = (d0 << 16) >> 24; - u32 gd1 = (d1 << 16) >> 24; + u32 gd1 = (d1 << 16) >> 24; u32 rd0 = (d0 >> 16); u32 rd1 = (d1 >> 16); - + rd0 = DIV_BY_5[rd0]; rd1 = DIV_BY_5[rd1]; gd0 = DIV_BY_5[gd0]; gd1 = DIV_BY_5[gd1]; - bd0 = DIV_BY_5[bd0]; bd1 = DIV_BY_5[bd1]; + bd0 = DIV_BY_5[bd0]; bd1 = DIV_BY_5[bd1]; u32 d10 = 0x80008000 | (rd1 << 26) | (gd1 << 21) | (bd1 << 16) | (rd0 << 10) | (gd0 << 5) | bd0; ((u32*)dest)[0] = d10; @@ -307,11 +307,11 @@ static inline void RescaleBlock_5x8888_To_4x1555( u32 s0, u32 s1, u32 s2, u32 s3 u32 rd2 = (d2 >> 16); u32 rd3 = (d3 >> 16); - rd2 = DIV_BY_5[rd2]; rd3 = DIV_BY_5[rd3]; - gd2 = DIV_BY_5[gd2]; gd3 = DIV_BY_5[gd3]; - bd2 = DIV_BY_5[bd2]; bd3 = DIV_BY_5[bd3]; + rd2 = DIV_BY_5[rd2]; rd3 = DIV_BY_5[rd3]; + gd2 = DIV_BY_5[gd2]; gd3 = DIV_BY_5[gd3]; + bd2 = DIV_BY_5[bd2]; bd3 = DIV_BY_5[bd3]; u32 d32 = 0x80008000 | (rd3 << 26) | (gd3 << 21) | (bd3 << 16) | (rd2 << 10) | (gd2 << 5) | bd2; - + ((u32*)dest)[1] = d32; } @@ -320,7 +320,7 @@ static inline void RescaleBlock_5x8888_To_4x1555( u32 s0, u32 s1, u32 s2, u32 s3 static inline void Rescale_320xPAL8Scanline_To_256x1555Scanline(u16* dest, const u8* src, const u32* palette) { ComputeDivBy5TableIFN(); - + for (size_t i=0; i<64; ++i) { u32 s0 = palette[src[5*i+0]]; @@ -353,7 +353,7 @@ static inline void Rescale_320xPAL8Scanline_To_256x1555Scanline(u16* dest, const static inline void Rescale_320x1555Scanline_To_256x1555Scanline(u16* dest, const u16* src) { ComputeDivBy5TableIFN(); - + for (size_t i=0; i<64; ++i) { u16 s0 = src[5*i+0]; @@ -384,7 +384,7 @@ void Rescale_320x256xPAL8_To_256x256x1555(u16* dest, const u8* src, int destStri for (size_t i=0; i<200; ++i) { - Rescale_320xPAL8Scanline_To_256x1555Scanline(dest + i*destStride, src + i *srcStride, fastRam); + Rescale_320xPAL8Scanline_To_256x1555Scanline(dest + i*destStride, src + i *srcStride, fastRam); } } #else @@ -396,7 +396,7 @@ void Rescale_320x256xPAL8_To_256x256x1555(u16* dest, const u8* src, int destStri for (size_t i=0; i<200; ++i) { - Rescale_320xPAL8Scanline_To_256x1555Scanline(dest + i*destStride, src + i *srcStride, fastRam); + Rescale_320xPAL8Scanline_To_256x1555Scanline(dest + i*destStride, src + i *srcStride, fastRam); } } #endif diff --git a/backends/platform/ds/arm9/source/blitters.h b/backends/platform/ds/arm9/source/blitters.h index f8c65ed167..7434a58efd 100644 --- a/backends/platform/ds/arm9/source/blitters.h +++ b/backends/platform/ds/arm9/source/blitters.h @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ - + #ifndef _BLITTERS_H_ #define _BLITTERS_H_ @@ -29,19 +29,19 @@ namespace DS { -void asmDrawStripToScreen(int height, int width, byte const* text, byte const* src, byte* dst, +void asmDrawStripToScreen(int height, int width, byte const* text, byte const* src, byte* dst, int vsPitch, int vmScreenWidth, int textSurfacePitch); void asmCopy8Col(byte* dst, int dstPitch, const byte* src, int height); void Rescale_320x256xPAL8_To_256x256x1555(u16* dest, const u8* src, int destStride, int srcStride, const u16* palette); void Rescale_320x256x1555_To_256x256x1555(u16* dest, const u16* src, int destStride, int srcStride); } - + #else extern "C" { -void asmDrawStripToScreen(int height, int width, byte const* text, byte const* src, byte* dst, +void asmDrawStripToScreen(int height, int width, byte const* text, byte const* src, byte* dst, int vsPitch, int vmScreenWidth, int textSurfacePitch); void asmCopy8Col(byte* dst, int dstPitch, const byte* src, int height); void Rescale_320x256xPAL8_To_256x256x1555(u16* dest, const u8* src, int destStride, int srcStride, const u16* palette); diff --git a/backends/platform/ds/arm9/source/blitters.s b/backends/platform/ds/arm9/source/blitters.s index 2f14c5a140..40b8782eec 100644 --- a/backends/platform/ds/arm9/source/blitters.s +++ b/backends/platform/ds/arm9/source/blitters.s @@ -21,7 +21,7 @@ @ @author Robin Watts (robin@wss.co.uk) .text - + .global asmDrawStripToScreen .global asmCopy8Col .global Rescale_320x256xPAL8_To_256x256x1555 @@ -142,7 +142,7 @@ asmCopy8Col: @ r3 = height STMFD r13!,{r14} SUB r1,r1,#4 - + TST r3,#1 ADDNE r3,r3,#1 BNE roll2 @@ -177,7 +177,7 @@ Rescale_320x256x1555_To_256x256x1555: @ r2 = dstStride @ r3 = srcStride STMFD r13!,{r4-r5,r8-r11,r14} - + SUB r2,r2,#64*5 @ srcStride -= line length SUB r3,r3,#64*4 @ dstStride -= line length @@ -187,7 +187,7 @@ Rescale_320x256x1555_To_256x256x1555: MOV r5, #200 @ r5 = y yLoop3: MOV r4, #64 @ r4 = x -xLoop3: +xLoop3: LDRH r9, [r0],#2 @ r9 = src0 LDRH r10,[r0],#2 @ r10= src1 LDRH r11,[r0],#2 @ r11= src2 @@ -212,7 +212,7 @@ xLoop3: ADD r11,r11,r12 @ r11= dst2 ADD r12,r12,r14 @ r12= src3 + src4 ADD r12,r12,r14,LSL #1 @ r12= src3 + src4*3 = dst3<<2 - + AND r9, r8, r9, LSR #2 @ r9 = dst0 (split) AND r10,r8, r10,LSR #1 @ r10= dst1 (split) AND r11,r8, r11,LSR #1 @ r11= dst2 (split) @@ -227,7 +227,7 @@ xLoop3: ORR r10,r10,#0x8000 ORR r11,r11,#0x8000 ORR r12,r12,#0x8000 - + STRH r9, [r1],#2 STRH r10,[r1],#2 STRH r11,[r1],#2 @@ -235,7 +235,7 @@ xLoop3: SUBS r4,r4,#1 BGT xLoop3 - + ADD r0,r0,r2,LSL #1 ADD r1,r2,r3,LSL #1 SUBS r5,r5,#1 @@ -266,7 +266,7 @@ Rescale_320x256xPAL8_To_256x256x1555: ORR r8, r8,#0x00007C00 ORR r8, r8,#0x03E00000 @ r8 = mask LDR r9, [r13,#7*4] @ r9 = palette - + SUB r13,r13,#256*4 @ r13 = 1K of space on the stack. MOV r5, r13 @ r5 points to this space MOV r14,#256 @@ -277,14 +277,14 @@ palLoop: AND r10,r10,r8 @ r10 = separated palette entry STR r10,[r5], #4 BGT palLoop - + SUB r2,r2,#64*5 @ srcStride -= line length SUB r3,r3,#64*4 @ dstStride -= line length MOV r5,#200 @ r5 = y yLoop4: MOV r4,#64 @ r4 = x -xLoop4: +xLoop4: LDRB r9, [r0],#1 @ r9 = src0 LDRB r10,[r0],#1 @ r10= src1 LDRB r11,[r0],#1 @ r11= src2 @@ -303,7 +303,7 @@ xLoop4: ADD r11,r11,r12 @ r11= dst2 ADD r12,r12,r14 @ r12= src3 + src4 ADD r12,r12,r14,LSL #1 @ r12= src3 + src4*3 = dst3<<2 - + AND r9, r8, r9, LSR #2 @ r9 = dst0 (split) AND r10,r8, r10,LSR #1 @ r10= dst1 (split) AND r11,r8, r11,LSR #1 @ r11= dst2 (split) @@ -318,7 +318,7 @@ xLoop4: ORR r10,r10,#0x8000 ORR r11,r11,#0x8000 ORR r12,r12,#0x8000 - + STRH r9, [r1],#2 STRH r10,[r1],#2 STRH r11,[r1],#2 @@ -326,7 +326,7 @@ xLoop4: SUBS r4,r4,#1 BGT xLoop4 - + ADD r0,r0,r2 ADD r1,r2,r3,LSL #1 SUBS r5,r5,#1 @@ -336,4 +336,4 @@ xLoop4: LDMFD r13!,{r4-r5,r8-r11,PC} - + diff --git a/backends/platform/ds/arm9/source/cdaudio.cpp b/backends/platform/ds/arm9/source/cdaudio.cpp index 9569a820f2..2897a9364b 100644 --- a/backends/platform/ds/arm9/source/cdaudio.cpp +++ b/backends/platform/ds/arm9/source/cdaudio.cpp @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ - + #include "cdaudio.h" #include "ds-fs.h" #include "config-manager.h" @@ -53,9 +53,9 @@ struct WaveHeader { u16 fmtExtraData; // Number of extra fmt bytes u16 fmtExtra; // Samples per block (only for IMA-ADPCM files) } __attribute__ ((packed)); - + struct chunkHeader { - char name[4]; + char name[4]; u32 size; } __attribute__ ((packed)); @@ -112,7 +112,7 @@ void decompressBlock(); void allocBuffers() { - + } void setActive(bool active) { @@ -125,17 +125,17 @@ bool getActive() { void playTrack(int track, int numLoops, int startFrame, int duration) { Common::String path = ConfMan.get("path"); - + if (isPlayingFlag) { stopTrack(); } - + if (trackStartsAt2) { track++; } - - - + + + char str[100]; if (path[strlen(path.c_str()) - 1] == '/') { @@ -145,50 +145,50 @@ void playTrack(int track, int numLoops, int startFrame, int duration) { sprintf(str, "/track%d.wav", track); path = path + str; } - - + + //1820160 - + file = DS::std_fopen(path.c_str(), "rb"); - + if (!file) { consolePrintf("Failed to open %s!\n", path.c_str()); return; } - - + + DS::std_fread((const void *) &waveHeader, sizeof(waveHeader), 1, file); - + consolePrintf("Playing track %d\n", track); consolePrintf("Format: %d\n", waveHeader.fmtFormatTag); consolePrintf("Rate : %d\n", waveHeader.fmtSamPerSec); consolePrintf("Bits : %d\n", waveHeader.fmtBitsPerSam); consolePrintf("BlkSz : %d\n", waveHeader.fmtExtra); - + if ((waveHeader.fmtFormatTag != 17) && (waveHeader.fmtFormatTag != 20)) { consolePrintf("Wave file is in the wrong format! You must use IMA-ADPCM 4-bit mono.\n"); DS::std_fclose(file); return; } - + for (int r = 0; r < 8; r++) { IPC->adpcm.buffer[r] = (u8 * volatile) (decoderFormat *) malloc(waveHeader.fmtBlockAlign); IPC->adpcm.filled[r] = false; IPC->adpcm.arm7Dirty[r] = false; } - + // Skip chunks until we reach the data chunk chunkHeader chunk; DS::std_fread((const void *) &chunk, sizeof(chunkHeader), 1, file); - + while (!((chunk.name[0] == 'd') && (chunk.name[1] == 'a') && (chunk.name[2] == 't') && (chunk.name[3] == 'a'))) { DS::std_fseek(file, chunk.size, SEEK_CUR); DS::std_fread((const void *) &chunk, sizeof(chunkHeader), 1, file); } - + dataChunkStart = DS::std_ftell(file); - - + + static bool started = false; sampleNum = 0; blockCount = 0; @@ -206,35 +206,35 @@ void playTrack(int track, int numLoops, int startFrame, int duration) { memset(audioBuffer, 0, BUFFER_SIZE * 2); memset(decompressionBuffer, 0, waveHeader.fmtExtra * 2); DS::playSound(audioBuffer, BUFFER_SIZE * 2, false, false, waveHeader.fmtSamPerSec); - - } + + } fillPos = (IPC->streamPlayingSection + 1) & 3; isPlayingFlag = true; - - + + // Startframe is a 75Hz timer. Dunno why, since nothing else // seems to run at that rate. int tenths = (startFrame * 10) / 75; - + // Seek to the nearest block start to the start time int samples = (tenths * waveHeader.fmtSamPerSec) / 10; int block = samples / waveHeader.fmtExtra; - - + + if (duration == 0) { blocksLeft = 0; } else { blocksLeft = ((((duration * 100) / 75) * (waveHeader.fmtSamPerSec)) / (waveHeader.fmtExtra) / 100) + 10; } // consolePrintf("Playing %d blocks (%d)\n\n", blocksLeft, duration); - + // No need to seek if we're starting from the beginning if (block != 0) { DS::std_fseek(file, dataChunkStart + block * waveHeader.fmtBlockAlign, SEEK_SET); // consolePrintf("Startframe: %d msec: %d (%d,%d)\n", startFrame, tenthssec, samples, block); } - - + + //decompressBlock(); playNextBlock(); DS::CD::numLoops = numLoops; @@ -252,21 +252,21 @@ extern "C" void ARM_adcpm(int *block, int len, int stepTableIndex, void decompressBlock() { int block[2048]; bool loop = false; - + blockCount++; - + if (blockCount < 10) return; - - + + do { DS::std_fread((const void *) &blockHeader, sizeof(blockHeader), 1, file); - + DS::std_fread(&block[0], waveHeader.fmtBlockAlign - sizeof(blockHeader), 1, file); if (DS::std_feof(file) ) { // Reached end of file, so loop - - + + if ((numLoops == -1) || (numLoops > 1)) { // Seek file to first packet if (numLoops != -1) { @@ -283,14 +283,14 @@ void decompressBlock() { stopTrack(); return; } - + } else { loop = false; } - + } while (loop); - - + + if (blocksLeft > 0) { blocksLeft--; // consolePrintf("%d ", blocksLeft); @@ -305,37 +305,37 @@ void decompressBlock() { blockHeader.stepTableIndex, blockHeader.firstSample, decompressionBuffer); -#else +#else // First sample is in header decompressionBuffer[0] = blockHeader.firstSample; - + // Set up initial table indeces int stepTableIndex = blockHeader.stepTableIndex; int prevSample = blockHeader.firstSample; - + // consolePrintf("Decompressing block step=%d fs=%d\n", stepTableIndex, prevSample); for (int r = 0; r < waveHeader.fmtExtra - 1; r++) { - + int word = block[r >> 3]; int offset = 0; - + switch (7 - (r & 0x0007)) { case 0: { offset = (word & 0xF0000000) >> 28; break; } - + case 1: { offset = (word & 0x0F000000) >> 24; break; } - + case 2: { offset = (word & 0x00F00000) >> 20; break; } - + case 3: { offset = (word & 0x000F0000) >> 16; break; @@ -361,41 +361,41 @@ void decompressBlock() { break; } } - + int diff = 0; - + if (offset & 4) { diff = diff + stepTab[stepTableIndex]; } - + if (offset & 2) { diff = diff + (stepTab[stepTableIndex] >> 1); } - + if (offset & 1) { diff = diff + (stepTab[stepTableIndex] >> 2); } - + diff = diff + (stepTab[stepTableIndex] >> 3); - + if (offset & 8) { - diff = -diff; + diff = -diff; } - + int newSample = prevSample + diff; - + if (newSample > 32767) newSample = 32767; if (newSample < -32768) newSample = -32768; - + decompressionBuffer[r + 1] = newSample; - + prevSample = newSample; - + stepTableIndex += indexTab[offset]; - + if (stepTableIndex > 88) stepTableIndex = 88; if (stepTableIndex < 0) stepTableIndex = 0; - + } #endif @@ -404,21 +404,21 @@ void decompressBlock() { void playNextBlock() { if (!isPlayingFlag) return; int lastBlockId = -1; - + while (IPC->adpcm.semaphore); // Wait for buffer to become free if needed IPC->adpcm.semaphore = true; // Lock the buffer structure to prevent clashing with the ARM7 // DC_FlushAll(); - + //-8644, 25088 for (int block = fillPos + 1; block < fillPos + 4; block++) { int blockId = block & 3; - + if (IPC->streamFillNeeded[blockId]) { - + IPC->streamFillNeeded[blockId] = false; // DC_FlushAll(); - + /* if (!(REG_KEYINPUT & KEY_R)) { //consolePrintf("Align: %d First: %d Step:%d Res:%d\n", waveHeader.fmtBlockAlign, blockHeader.firstSample, blockHeader.stepTableIndex, blockHeader.reserved); consolePrintf("Filling buffer %d\n", blockId); @@ -432,19 +432,19 @@ void playNextBlock() { } } } - + lastBlockId = blockId; IPC->streamFillNeeded[blockId] = false; // DC_FlushAll(); } - - - + + + } - - - + + + if (lastBlockId != -1) { fillPos = lastBlockId; /* if (!(REG_KEYINPUT & KEY_R)) { @@ -459,18 +459,18 @@ void stopTrack() { if (!isPlayingFlag) return; DS::std_fclose(file); - + isPlayingFlag = false; - + for (int r = 0; r < BUFFER_SIZE; r++) { audioBuffer[r] = 0; } - + for (int r= 0; r < waveHeader.fmtExtra; r++) { decompressionBuffer[r] = 0; } // DS::stopSound(1); - + // free(audioBuffer); // free(decompressionBuffer); @@ -507,7 +507,7 @@ bool trackExists(int num) { bool checkCD() { // Need to check whethe CD audio files are present - do this by trying to open Track1.wav. consolePrintf("Attempted to open cd drive\n"); - + if (trackExists(1)) { trackStartsAt2 = false; return true; diff --git a/backends/platform/ds/arm9/source/cdaudio.h b/backends/platform/ds/arm9/source/cdaudio.h index d237569bb7..a4a1a0bce9 100644 --- a/backends/platform/ds/arm9/source/cdaudio.h +++ b/backends/platform/ds/arm9/source/cdaudio.h @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ - + #ifndef _CDAUDIO_H_ #define _CDAUDIO_H_ diff --git a/backends/platform/ds/arm9/source/console2.h b/backends/platform/ds/arm9/source/console2.h index 6b9a677cc7..86434dcb93 100644 --- a/backends/platform/ds/arm9/source/console2.h +++ b/backends/platform/ds/arm9/source/console2.h @@ -25,7 +25,7 @@ // // Changelog: // 0.1: First version -// 0.2: Fixed sprite mapping bug. 1D mapping should work now. +// 0.2: Fixed sprite mapping bug. 1D mapping should work now. // Changed some register defines for consistency. // ////////////////////////////////////////////////////////////////////// @@ -87,7 +87,7 @@ void consoleClear(void); // // Changelog: // 0.1: First version -// 0.2: Fixed sprite mapping bug. 1D mapping should work now. +// 0.2: Fixed sprite mapping bug. 1D mapping should work now. // Changed some register defines for consistency. // ////////////////////////////////////////////////////////////////////// diff --git a/backends/platform/ds/arm9/source/dsmain.cpp b/backends/platform/ds/arm9/source/dsmain.cpp index 07eb222dfb..45b76fe0f1 100644 --- a/backends/platform/ds/arm9/source/dsmain.cpp +++ b/backends/platform/ds/arm9/source/dsmain.cpp @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ - + // - Remove scummconsole.c // - Delete files @@ -221,7 +221,7 @@ int hBlankCount = 0; gameListType gameList[NUM_SUPPORTED_GAMES] = { // Unknown game - use normal SCUMM controls {"unknown", CONT_SCUMM_ORIGINAL}, - + // SCUMM games {"maniac", CONT_SCUMM_ORIGINAL}, {"zak", CONT_SCUMM_ORIGINAL}, @@ -232,7 +232,7 @@ gameListType gameList[NUM_SUPPORTED_GAMES] = { {"monkey2", CONT_SCUMM_ORIGINAL}, {"tentacle", CONT_SCUMM_ORIGINAL}, {"samnmax", CONT_SCUMM_SAMNMAX}, - + // Non-SCUMM games {"sky", CONT_SKY}, {"simon1", CONT_SIMON}, @@ -298,11 +298,11 @@ void setCpuScalerEnable(bool enable) { //plays an 8 bit mono sample at 11025Hz void playSound(const void* data, u32 length, bool loop, bool adpcm, int rate) { - + if (!IPC->soundData) { soundControl.count = 0; } - + soundControl.data[soundControl.count].data = data; soundControl.data[soundControl.count].len = length | (loop? 0x80000000: 0x00000000); soundControl.data[soundControl.count].rate = rate; // 367 samples per frame @@ -346,14 +346,14 @@ void initSprites() { sprites[i].attribute[2] = 0; sprites[i].attribute[3] = 0; } - + for (int i = 0; i < 128; i++) { spritesMain[i].attribute[0] = ATTR0_DISABLED; spritesMain[i].attribute[1] = 0; spritesMain[i].attribute[2] = 0; spritesMain[i].attribute[3] = 0; } - + updateOAM(); } @@ -388,7 +388,7 @@ void restoreGameBackBuffer() { *dst++ = *src; *dst2++ = *src++; } - + } delete savedBuffer; @@ -414,22 +414,22 @@ void startSound(int freq, int buffer) { bufferFirstHalf = false; bufferSecondHalf = true; - + int bytes = (2 * (bufferSamples)) + 100; - + soundBuffer = (s16 *) malloc(bytes * 2); if (!soundBuffer) consolePrintf("Sound buffer alloc failed\n"); soundHiPart = true; - + for (int r = 0; r < bytes; r++) { soundBuffer[r] = 0; } soundFrequency = freq; - + swiWaitForVBlank(); swiWaitForVBlank(); @@ -461,14 +461,14 @@ void initGame() { consolePrintf("\n\n\n\nCurrent game: '%s' %d\n", gameName, gameName[0]); currentGame = &gameList[0]; // Default game - + for (int r = 0; r < NUM_SUPPORTED_GAMES; r++) { if (!stricmp(gameName, gameList[r].gameId)) { currentGame = &gameList[r]; // consolePrintf("Game list num: %d\n", currentGame); } } - + if (firstTime) { firstTime = false; @@ -515,7 +515,7 @@ void displayMode8Bit() { consolePrintf("displayMode8Bit..."); #endif u16 buffer[32 * 32]; - + setKeyboardEnable(false); if (!displayModeIs8Bit) { @@ -523,20 +523,20 @@ void displayMode8Bit() { buffer[r] = ((u16 *) SCREEN_BASE_BLOCK_SUB(4))[r]; } } - + if (isCpuScalerEnabled()) { - videoSetMode(MODE_5_2D | (consoleEnable? DISPLAY_BG0_ACTIVE: 0) | DISPLAY_BG3_ACTIVE | DISPLAY_SPR_ACTIVE | DISPLAY_SPR_1D | DISPLAY_SPR_1D_BMP); + videoSetMode(MODE_5_2D | (consoleEnable? DISPLAY_BG0_ACTIVE: 0) | DISPLAY_BG3_ACTIVE | DISPLAY_SPR_ACTIVE | DISPLAY_SPR_1D | DISPLAY_SPR_1D_BMP); videoSetModeSub(MODE_3_2D /*| DISPLAY_BG0_ACTIVE*/ | DISPLAY_BG3_ACTIVE | DISPLAY_SPR_ACTIVE | DISPLAY_SPR_1D | DISPLAY_SPR_1D_BMP); //sub bg 0 will be used to print text - + vramSetBankA(VRAM_A_MAIN_BG_0x06000000); vramSetBankB(VRAM_B_MAIN_BG_0x06020000); - + vramSetBankC(VRAM_C_SUB_BG_0x06200000); vramSetBankD(VRAM_D_MAIN_BG_0x06040000); - + vramSetBankH(VRAM_H_LCD); - + BG3_CR = BG_BMP16_256x256 | BG_BMP_BASE(8); BG3_XDX = 256; @@ -546,27 +546,27 @@ void displayMode8Bit() { } else { - videoSetMode(MODE_5_2D | (consoleEnable? DISPLAY_BG0_ACTIVE: 0) | DISPLAY_BG3_ACTIVE | DISPLAY_SPR_ACTIVE | DISPLAY_SPR_1D | DISPLAY_SPR_1D_BMP); + videoSetMode(MODE_5_2D | (consoleEnable? DISPLAY_BG0_ACTIVE: 0) | DISPLAY_BG3_ACTIVE | DISPLAY_SPR_ACTIVE | DISPLAY_SPR_1D | DISPLAY_SPR_1D_BMP); videoSetModeSub(MODE_3_2D /*| DISPLAY_BG0_ACTIVE*/ | DISPLAY_BG3_ACTIVE | DISPLAY_SPR_ACTIVE | DISPLAY_SPR_1D | DISPLAY_SPR_1D_BMP); //sub bg 0 will be used to print text - + vramSetBankA(VRAM_A_MAIN_BG_0x06000000); vramSetBankB(VRAM_B_MAIN_BG_0x06020000); - + vramSetBankC(VRAM_C_SUB_BG_0x06200000); vramSetBankD(VRAM_D_MAIN_BG_0x06040000); - + vramSetBankH(VRAM_H_LCD); - + BG3_CR = BG_BMP8_512x256 | BG_BMP_BASE(8); - + BG3_XDX = (int) (((float) (gameWidth) / 256.0f) * 256); BG3_XDY = 0; BG3_YDX = 0; BG3_YDY = (int) ((200.0f / 192.0f) * 256); - } - + } + SUB_BG3_CR = BG_BMP8_512x256; - + SUB_BG3_XDX = (int) (subScreenWidth / 256.0f * 256); SUB_BG3_XDY = 0; SUB_BG3_YDX = 0; @@ -578,24 +578,24 @@ void displayMode8Bit() { BG0_CR = BG_MAP_BASE(2) | BG_TILE_BASE(0); BG0_Y0 = 0; - - // Restore palette entry used by text in the front-end + + // Restore palette entry used by text in the front-end // PALETTE_SUB[255] = savedPalEntry255; - + consoleInitDefault((u16*)SCREEN_BASE_BLOCK(2), (u16*)CHAR_BASE_BLOCK(0), 16); consolePrintSet(0, 23); - + if (!displayModeIs8Bit) { for (int r = 0; r < 32 * 32; r++) { ((u16 *) SCREEN_BASE_BLOCK(2))[r] = buffer[r]; } // dmaCopyHalfWords(3, (u16 *) SCREEN_BASE_BLOCK(0), buffer, 32 * 32 * 2); } - + initGame(); - + if (!displayModeIs8Bit) restoreGameBackBuffer(); displayModeIs8Bit = true; #ifdef HEAVY_LOGGING @@ -604,9 +604,9 @@ void displayMode8Bit() { POWER_CR &= ~POWER_SWAP_LCDS; - + keyboardEnable = false; - + } void setGameID(int id) { @@ -619,22 +619,22 @@ void dummyHandler() { void checkSleepMode() { if (IPC->performArm9SleepMode) { - + consolePrintf("ARM9 Entering sleep mode\n"); - + int intSave = REG_IE; irqSet(IRQ_VBLANK, dummyHandler); // int irqHandlerSave = (int) IRQ_HANDLER; REG_IE = IRQ_VBLANK; //IRQ_HANDLER = dummyHandler; - + int powerSave = POWER_CR; POWER_CR &= ~POWER_ALL; - + while (IPC->performArm9SleepMode) { swiWaitForVBlank(); } - + POWER_CR = powerSave; // IRQ_HANDLER = (void (*)()) irqHandlerSave; irqSet(IRQ_VBLANK, VBlankHandler); @@ -671,14 +671,14 @@ void setCursorIcon(const u8* icon, uint w, uint h, byte keycolor, int hotspotX, { int off = 128*64; - - + + memset(SPRITE_GFX + off, 0, 32 * 32 * 2); - + for (uint y=0; y<h; y++) { for (uint x=0; x<w; x++) { int color = icon[y*w+x]; - + if (color == keycolor) { SPRITE_GFX[off+(y)*32+x] = 0x0000; // black background } else { @@ -686,22 +686,22 @@ void setCursorIcon(const u8* icon, uint w, uint h, byte keycolor, int hotspotX, } } } - + } if (currentGame->control != CONT_SCUMM_SAMNMAX) return; uint16 border = RGB15(24,24,24) | 0x8000; - - + + int off = 48*64; memset(SPRITE_GFX_SUB+off, 0, 64*64*2); - + int pos = 190 - (w+2); - - + + // make border for (uint i=0; i<w+2; i++) { SPRITE_GFX_SUB[off+i] = border; @@ -711,7 +711,7 @@ void setCursorIcon(const u8* icon, uint w, uint h, byte keycolor, int hotspotX, SPRITE_GFX_SUB[off+(i*64)] = border; SPRITE_GFX_SUB[off+(i*64)+(w+1)] = border; } - + int offset = (32 - h) >> 1; for (uint y=0; y<h; y++) { @@ -725,8 +725,8 @@ void setCursorIcon(const u8* icon, uint w, uint h, byte keycolor, int hotspotX, } } } - - + + if ((cursorEnable)) { sprites[1].attribute[0] = ATTR0_BMP | 150; @@ -758,7 +758,7 @@ void displayMode16Bit() { } - videoSetMode(MODE_5_2D | /*DISPLAY_BG0_ACTIVE |*/ DISPLAY_BG3_ACTIVE | DISPLAY_SPR_ACTIVE | DISPLAY_SPR_1D | DISPLAY_SPR_1D_BMP); + videoSetMode(MODE_5_2D | /*DISPLAY_BG0_ACTIVE |*/ DISPLAY_BG3_ACTIVE | DISPLAY_SPR_ACTIVE | DISPLAY_SPR_1D | DISPLAY_SPR_1D_BMP); videoSetModeSub(MODE_0_2D | DISPLAY_BG0_ACTIVE |/* DISPLAY_BG1_ACTIVE |*/ DISPLAY_SPR_ACTIVE | DISPLAY_SPR_1D | DISPLAY_SPR_1D_BMP); //sub bg 0 will be used to print text vramSetBankA(VRAM_A_MAIN_BG); @@ -769,14 +769,14 @@ void displayMode16Bit() { BG3_CR = BG_BMP16_512x256; highBuffer = false; - + BG3_XDX = isCpuScalerEnabled() ? 256 : (int) (1.25f * 256); BG3_XDY = 0; BG3_YDX = 0; BG3_YDY = (int) ((200.0f / 192.0f) * 256); memset(BG_GFX, 0, 512 * 256 * 2); - + savedPalEntry255 = PALETTE_SUB[255]; PALETTE_SUB[255] = RGB15(31,31,31);//by default font will be rendered with color 255 @@ -795,11 +795,11 @@ void displayMode16Bit() { consolePrintSet(0, 23); consolePrintf("\n"); - + // Show keyboard SUB_BG1_CR = BG_TILE_BASE(1) | BG_MAP_BASE(12); //drawKeyboard(1, 12); - + POWER_CR &= ~POWER_SWAP_LCDS; displayModeIs8Bit = false; @@ -816,10 +816,10 @@ void displayMode16BitFlipBuffer() { #endif if (!displayModeIs8Bit) { u16* back = get16BitBackBuffer(); - + // highBuffer = !highBuffer; // BG3_CR = BG_BMP16_512x256 | BG_BMP_RAM(highBuffer? 1: 0); - + if (isCpuScalerEnabled()) { Rescale_320x256x1555_To_256x256x1555(BG_GFX, back, 512, 512); @@ -842,11 +842,11 @@ void displayMode16BitFlipBuffer() { const u8* back = (const u8*)get8BitBackBuffer(); u16* base = BG_GFX + 0x10000; Rescale_320x256xPAL8_To_256x256x1555( base, - back, + back, 256, 512, BG_PALETTE ); - + #ifdef SCALER_PROFILE // 10 pixels : 1ms u16 t1 = TIMER1_DATA; @@ -899,10 +899,10 @@ void doSoundCallback() { if (soundCallback) { lastCallbackFrame = frameCount; - + for (int r = IPC->playingSection; r < IPC->playingSection + 4; r++) { int chunk = r & 3; - + if (IPC->fillNeeded[chunk]) { IPC->fillNeeded[chunk] = false; DC_FlushAll(); @@ -910,9 +910,9 @@ void doSoundCallback() { IPC->fillNeeded[chunk] = false; DC_FlushAll(); } - + } - + } #ifdef HEAVY_LOGGING consolePrintf("done\n"); @@ -924,7 +924,7 @@ void doTimerCallback() { if (callbackTimer <= 0) { callbackTimer += callbackInterval; callback(callbackInterval); - } + } } } @@ -933,15 +933,15 @@ void soundUpdate() { // playSound(soundBuffer, (bufferSamples * 2), true); } // consolePrintf("%x\n", IPC->test); - - + + if (bufferFrame == 0) { // bufferFirstHalf = true; - } + } if (bufferFrame == bufferSize >> 1) { //bufferSecondHalf = true; - } - + } + bufferFrame++; if (bufferFrame == bufferSize) { bufferFrame = 0; @@ -954,20 +954,20 @@ void memoryReport() { do { p = (int *) malloc(r * 8192); free(p); - r++; + r++; } while ((p) && (r < 512)); - + int t = -1; void* block[1024]; do { t++; block[t] = (int *) malloc(4096); - } while ((t < 1024) && (block[t])); - + } while ((t < 1024) && (block[t])); + for (int q = 0; q < t; q++) { free(block[q]); } - + consolePrintf("Free: %dK, Largest: %dK\n", t * 4, r * 8); } @@ -978,7 +978,7 @@ void addIndyFightingKeys() { event.type = Common::EVENT_KEYDOWN; event.kbd.flags = 0; - + // consolePrintf("Fight keys\n"); if ((getKeysDown() & KEY_L)) { @@ -1008,16 +1008,16 @@ void addIndyFightingKeys() { event.kbd.keycode = Common::KEYCODE_6; event.kbd.ascii = '6'; system->addEvent(event); - } + } if ((getKeysChanged() & KEY_DOWN)) { event.type = getKeyEvent(KEY_DOWN); event.kbd.keycode = Common::KEYCODE_2; event.kbd.ascii = '2'; system->addEvent(event); } - + if (indyFightRight) { - + if ((getKeysChanged() & KEY_X)) { event.type = getKeyEvent(KEY_X); event.kbd.keycode = Common::KEYCODE_9; @@ -1035,7 +1035,7 @@ void addIndyFightingKeys() { event.kbd.keycode = Common::KEYCODE_3; event.kbd.ascii = '3'; system->addEvent(event); - } + } } else { @@ -1056,18 +1056,18 @@ void addIndyFightingKeys() { event.kbd.keycode = Common::KEYCODE_1; event.kbd.ascii = '1'; system->addEvent(event); - } - + } + } - - + + if ((getKeysChanged() & KEY_Y)) { event.type = getKeyEvent(KEY_Y); event.kbd.keycode = Common::KEYCODE_5; event.kbd.ascii = '5'; system->addEvent(event); } -} +} void setKeyboardEnable(bool en) { @@ -1079,8 +1079,8 @@ void setKeyboardEnable(bool en) { DS::drawKeyboard(1, 15, backupBank); - - + + SUB_BG1_CR = BG_TILE_BASE(1) | BG_MAP_BASE(15); if (displayModeIs8Bit) { @@ -1098,25 +1098,25 @@ void setKeyboardEnable(bool en) { for (int r = 0; r < 256; r++) { BG_PALETTE_SUB[r] = BG_PALETTE[r]; } - - + + //restoreVRAM(1, 12, backupBank); - + if (displayModeIs8Bit) { // Copy the sub screen VRAM from the top screen - they should always be // the same. u16* buffer = get8BitBackBuffer(); - + for (int r = 0; r < (512 * 256) >> 1; r++) BG_GFX_SUB[r] = buffer[r]; - + SUB_DISPLAY_CR &= ~DISPLAY_BG1_ACTIVE; // Turn off keyboard layer SUB_DISPLAY_CR |= DISPLAY_BG3_ACTIVE; // Turn on game layer } else { SUB_DISPLAY_CR &= ~DISPLAY_BG1_ACTIVE; // Turn off keyboard layer SUB_DISPLAY_CR |= DISPLAY_BG0_ACTIVE; // Turn on console layer } - + lcdSwap(); } } @@ -1136,7 +1136,7 @@ void addEventsToQueue() { OSystem_DS* system = OSystem_DS::instance(); Common::Event event; - + #ifdef USE_PROFILER if (keysDown() & KEY_R) { cygprofile_begin(); @@ -1148,7 +1148,7 @@ void addEventsToQueue() { } #endif - + if (system->isEventQueueEmpty()) { /* @@ -1157,7 +1157,7 @@ void addEventsToQueue() { consolePrintf("Tweak: %d\n", tweak); IPC->tweakChanged = true; } - + if (getKeysDown() & KEY_R) { tweak++; @@ -1173,14 +1173,14 @@ void addEventsToQueue() { if (!indyFightState) { - if ((!(getKeysHeld() & KEY_L)) && (!(getKeysHeld() & KEY_R)) && (getKeysDown() & KEY_B)) { + if ((!(getKeysHeld() & KEY_L)) && (!(getKeysHeld() & KEY_R)) && (getKeysDown() & KEY_B)) { if (currentGame->control == CONT_AGI) { event.kbd.keycode = Common::KEYCODE_RETURN; event.kbd.ascii = 13; event.kbd.flags = 0; } else { - event.kbd.keycode = Common::KEYCODE_ESCAPE; - event.kbd.ascii = 27; + event.kbd.keycode = Common::KEYCODE_ESCAPE; + event.kbd.ascii = 27; event.kbd.flags = 0; } @@ -1190,11 +1190,11 @@ void addEventsToQueue() { event.type = Common::EVENT_KEYUP; system->addEvent(event); } - + } - - - + + + if ((!getIndyFightState()) && (getKeysDown() & KEY_Y)) { consoleEnable = !consoleEnable; if (displayModeIs8Bit) { @@ -1203,7 +1203,7 @@ void addEventsToQueue() { displayMode16Bit(); } } - + if ((getKeyboardEnable())) { event.kbd.flags = 0; @@ -1211,30 +1211,30 @@ void addEventsToQueue() { bool release = getKeysReleased() & (KEY_LEFT | KEY_RIGHT | KEY_UP | KEY_DOWN); bool shoulders = getKeysHeld() & (KEY_L | KEY_R); - if ( (down && (!shoulders)) || release) + if ( (down && (!shoulders)) || release) { - + if (getKeysChanged() & KEY_LEFT) { event.kbd.keycode = Common::KEYCODE_LEFT; event.kbd.ascii = 0; event.type = getKeyEvent(KEY_LEFT); system->addEvent(event); } - + if (getKeysChanged() & KEY_RIGHT) { event.kbd.keycode = Common::KEYCODE_RIGHT; event.kbd.ascii = 0; event.type = getKeyEvent(KEY_RIGHT); system->addEvent(event); } - + if (getKeysChanged() & KEY_UP) { event.kbd.keycode = Common::KEYCODE_UP; event.kbd.ascii = 0; event.type = getKeyEvent(KEY_UP); system->addEvent(event); } - + if (getKeysChanged() & KEY_DOWN) { event.kbd.keycode = Common::KEYCODE_DOWN; event.kbd.ascii = 0; @@ -1242,15 +1242,15 @@ void addEventsToQueue() { system->addEvent(event); } } - + } - + if (!((getKeysHeld() & KEY_L) || (getKeysHeld() & KEY_R)) && (!getIndyFightState()) && (!getKeyboardEnable())) { if ((getKeysDown() & KEY_A) && (!indyFightState)) { gameScreenSwap = !gameScreenSwap; } - + if (!getPenHeld() || (mouseMode != MOUSE_HOVER)) { if (getKeysDown() & KEY_LEFT) { mouseMode = MOUSE_LEFT; @@ -1264,7 +1264,7 @@ void addEventsToQueue() { system->addEvent(event); rightButtonDown = false; } - + if (getKeysDown() & KEY_RIGHT) { if ((currentGame->control != CONT_SCUMM_SAMNMAX) && (currentGame->control != CONT_FUTURE_WARS) && (currentGame->control != CONT_GOBLINS)) { @@ -1281,13 +1281,13 @@ void addEventsToQueue() { } else { event.mouse = Common::Point(getPenX(), getPenY()); } - + rightButtonDown = true; - + event.type = Common::EVENT_RBUTTONDOWN; system->addEvent(event); - + //event.type = Common::EVENT_RBUTTONUP; //system->addEvent(event); } @@ -1299,9 +1299,9 @@ void addEventsToQueue() { mouseMode = MOUSE_HOVER; } } - - - + + + } if ((getKeysDown() & KEY_SELECT)) { @@ -1310,18 +1310,18 @@ void addEventsToQueue() { showOptionsDialog(); } - + } - + if (!getIndyFightState() && !((getKeysHeld() & KEY_L) || (getKeysHeld() & KEY_R)) && (getKeysDown() & KEY_X)) { setKeyboardEnable(!keyboardEnable); } - - updateStatus(); - + + updateStatus(); + Common::Event event; - + if (!keyboardEnable) { if ((!(getKeysHeld() & KEY_L)) && (!(getKeysHeld() & KEY_R))) { @@ -1332,12 +1332,12 @@ void addEventsToQueue() { } if ((mouseMode != MOUSE_HOVER) || (!displayModeIs8Bit)) { - if (getPenDown() && (!(getKeysHeld() & KEY_L)) && (!(getKeysHeld() & KEY_R))) { + if (getPenDown() && (!(getKeysHeld() & KEY_L)) && (!(getKeysHeld() & KEY_R))) { event.type = ((mouseMode == MOUSE_LEFT) || (!displayModeIs8Bit))? Common::EVENT_LBUTTONDOWN: Common::EVENT_RBUTTONDOWN; event.mouse = Common::Point(getPenX(), getPenY()); system->addEvent(event); } - + if (getPenReleased()) { event.type = mouseMode == MOUSE_LEFT? Common::EVENT_LBUTTONUP: Common::EVENT_RBUTTONUP; event.mouse = Common::Point(getPenX(), getPenY()); @@ -1345,7 +1345,7 @@ void addEventsToQueue() { } } else { // In hover mode, D-pad left and right click the mouse when the pen is on the screen - + if (getPenHeld()) { if (getKeysDown() & KEY_LEFT) { event.type = Common::EVENT_LBUTTONDOWN; @@ -1357,7 +1357,7 @@ void addEventsToQueue() { event.mouse = Common::Point(getPenX(), getPenY()); system->addEvent(event); }*/ - + if (getKeysDown() & KEY_RIGHT) { event.type = Common::EVENT_RBUTTONDOWN; event.mouse = Common::Point(getPenX(), getPenY()); @@ -1370,11 +1370,11 @@ void addEventsToQueue() { }*/ } } - + if (((!(getKeysHeld() & KEY_L)) && (!(getKeysHeld() & KEY_R)) || (indyFightState)) && (displayModeIs8Bit)) { // Controls specific to the control method - - + + if (currentGame->control == CONT_SKY) { // Extra controls for Beneath a Steel Sky if ((getKeysDown() & KEY_DOWN)) { @@ -1387,7 +1387,7 @@ void addEventsToQueue() { // Extra controls for Simon the Sorcerer if ((getKeysDown() & KEY_DOWN)) { Common::Event event; - + event.type = Common::EVENT_KEYDOWN; event.kbd.keycode = Common::KEYCODE_F10; // F10 or # - show hotspots event.kbd.ascii = Common::ASCII_F10; @@ -1400,13 +1400,13 @@ void addEventsToQueue() { } } - - + + if (currentGame->control == CONT_SCUMM_ORIGINAL) { // Extra controls for Scumm v1-5 games if ((getKeysDown() & KEY_DOWN)) { Common::Event event; - + event.type = Common::EVENT_KEYDOWN; event.kbd.keycode = Common::KEYCODE_PERIOD; // Full stop - skips current dialogue line event.kbd.ascii = '.'; @@ -1416,19 +1416,19 @@ void addEventsToQueue() { event.type = Common::EVENT_KEYUP; system->addEvent(event); } - + if (indyFightState) { addIndyFightingKeys(); } - + } - + } } - + if (!displayModeIs8Bit) { // Front end controls - + if (leftHandedSwap(getKeysChanged()) & KEY_UP) { event.type = getKeyEvent(leftHandedSwap(KEY_UP)); event.kbd.keycode = Common::KEYCODE_UP; @@ -1455,10 +1455,10 @@ void addEventsToQueue() { event.type = Common::EVENT_KEYUP; system->addEvent(event); } - + } - + if ((getKeysChanged() & KEY_START)) { event.type = getKeyEvent(KEY_START); if (currentGame->control == CONT_FUTURE_WARS) { @@ -1481,34 +1481,34 @@ void addEventsToQueue() { system->addEvent(event); } - + if (keyboardEnable) { DS::addKeyboardEvents(); } - + consumeKeys(); - + consumePenEvents(); } } - + void triggerIcon(int imageNum) { triggeredIcon = imageNum; - triggeredIconTimeout = 120; + triggeredIconTimeout = 120; } - + void setIcon(int num, int x, int y, int imageNum, int flags, bool enable) { - sprites[num].attribute[0] = ATTR0_BMP | (enable? y: 192) | (!enable? ATTR0_DISABLED: 0); + sprites[num].attribute[0] = ATTR0_BMP | (enable? y: 192) | (!enable? ATTR0_DISABLED: 0); sprites[num].attribute[1] = ATTR1_SIZE_32 | x | flags; sprites[num].attribute[2] = ATTR2_ALPHA(1)| (imageNum * 16); } void setIconMain(int num, int x, int y, int imageNum, int flags, bool enable) { - spritesMain[num].attribute[0] = ATTR0_BMP | (y & 0xFF) | (!enable? ATTR0_DISABLED: 0); + spritesMain[num].attribute[0] = ATTR0_BMP | (y & 0xFF) | (!enable? ATTR0_DISABLED: 0); spritesMain[num].attribute[1] = ATTR1_SIZE_32 | (x & 0x1FF) | flags; spritesMain[num].attribute[2] = ATTR2_ALPHA(1)| (imageNum * 16); } @@ -1536,16 +1536,16 @@ void updateStatus() { break; } } - + setIcon(0, 208, 150, offs, 0, true); - + if (indyFightState) { setIcon(1, (190 - 32), 150, 3, (indyFightRight? 0: ATTR1_FLIP_X), true); // consolePrintf("%d\n", indyFightRight); } else { // setIcon(1, 0, 0, 0, 0, false); } - + if (triggeredIconTimeout > 0) { triggeredIconTimeout--; setIcon(4, 16, 150, triggeredIcon, 0, true); @@ -1584,7 +1584,7 @@ void soundBufferEmptyHandler() { } else { // bufferFirstHalf = true; } - + soundHiPart = !soundHiPart; } @@ -1595,7 +1595,7 @@ void setMainScreenScroll(int x, int y) { } else { BG3_CX = x + (((frameCount & 1) == 0)? 64: 0); BG3_CY = y; - + touchX = x >> 8; touchY = y >> 8; } @@ -1616,13 +1616,13 @@ void setMainScreenScale(int x, int y) { BG3_YDY = y; } else - { + { BG3_XDX = x; BG3_XDY = 0; BG3_YDX = 0; BG3_YDY = y; } - + touchScX = x; touchScY = y; } @@ -1632,7 +1632,7 @@ void setZoomedScreenScroll(int x, int y, bool shake) { if (gameScreenSwap) { BG3_CX = x + ((shake && ((frameCount & 1) == 0))? 64: 0); BG3_CY = y; - + touchX = x >> 8; touchY = y >> 8; } else { @@ -1684,7 +1684,7 @@ void VBlankHandler(void) { soundUpdate(); - + if ((!gameScreenSwap) && (!(getKeysHeld() & KEY_L) && !(getKeysHeld() & KEY_R))) { if (currentGame) { @@ -1699,14 +1699,14 @@ void VBlankHandler(void) { } } } - + penUpdate(); keysUpdate(); frameCount++; - + if ((cursorEnable) && (mouseCursorVisible)) { if (!keyboardEnable) { @@ -1725,31 +1725,31 @@ void VBlankHandler(void) { if (callback) { callbackTimer -= FRAME_TIME; } - + if ((getKeysHeld() & KEY_L) || (getKeysHeld() & KEY_R)) { - + if ((!dragging) && (getPenHeld()) && (penDownFrames > 5)) { dragging = true; dragStartX = penX; dragStartY = penY; - + if (gameScreenSwap) { dragScX = subScTargetX; dragScY = subScTargetY; } else { dragScX = scX; - dragScY = scY; - } - - + dragScY = scY; + } + + } - + if ((dragging) && (!getPenHeld())) { dragging = false; } - + if (dragging) { - + if (gameScreenSwap) { subScTargetX = dragScX + ((dragStartX - penX) << 8); subScTargetY = dragScY + ((dragStartY - penY) << 8); @@ -1757,18 +1757,18 @@ void VBlankHandler(void) { scX = dragScX + ((dragStartX - penX)); scY = dragScY + ((dragStartY - penY)); } - + // consolePrintf("X:%d Y:%d\n", dragStartX - penX, dragStartY - penY); } - } - - + } + + /* if ((frameCount & 1) == 0) { SUB_BG3_CX = subScX; } else { SUB_BG3_CX = subScX + 64; } - + SUB_BG3_CY = subScY + (shakePos << 8);*/ /*SUB_BG3_XDX = (int) (subScreenWidth / 256.0f * 256); @@ -1777,33 +1777,33 @@ void VBlankHandler(void) { SUB_BG3_YDY = (int) (subScreenHeight / 192.0f * 256);*/ static int ratio = ( 320 << 8) / SCUMM_GAME_WIDTH; - + bool zooming = false; - + if ((getKeysHeld() & KEY_L) || (getKeysHeld() & KEY_R)) { if ((getKeysHeld() & KEY_A) && (subScreenScale < ratio)) { subScreenScale += 1; zooming = true; } - + if ((getKeysHeld() & KEY_B) && (subScreenScale > 128)) { subScreenScale -=1; zooming = true; } } - + int xCenter = subScTargetX + ((subScreenWidth >> 1) << 8); int yCenter = subScTargetY + ((subScreenHeight >> 1) << 8); - + if (twoHundredPercentFixedScale) { subScreenWidth = 256 >> 1; subScreenHeight = 192 >> 1; } else { subScreenWidth = (((SCUMM_GAME_HEIGHT * 256) / 192) * subScreenScale) >> 8; subScreenHeight = SCUMM_GAME_HEIGHT * subScreenScale >> 8; - + if ( ((subScreenWidth) > 256 - 8) && ((subScreenWidth) < 256 + 8) ) { subScreenWidth = 256; subScreenHeight = 192; @@ -1832,13 +1832,13 @@ void VBlankHandler(void) { //triggerIcon(-1); } } - + subScTargetX = xCenter - ((subScreenWidth >> 1) << 8); subScTargetY = yCenter - ((subScreenHeight >> 1) << 8); - - + + if (subScTargetX < 0) subScTargetX = 0; if (subScTargetX > (gameWidth - subScreenWidth) << 8) subScTargetX = (gameWidth - subScreenWidth) << 8; @@ -1850,30 +1850,30 @@ void VBlankHandler(void) { subScX += (subScTargetX - subScX) >> 2; subScY += (subScTargetY - subScY) >> 2; - + if (displayModeIs8Bit) { - + if ((getKeysHeld() & KEY_L) || (getKeysHeld() & KEY_R)) { - + int offsX = 0, offsY = 0; if (getKeysHeld() & KEY_LEFT) { offsX -= 1; } - + if (getKeysHeld() & KEY_RIGHT) { offsX += 1; } - + if (getKeysHeld() & KEY_UP) { offsY -= 1; } - + if (getKeysHeld() & KEY_DOWN) { offsY += 1; } - + if (((gameScreenSwap) && (getKeysHeld() & KEY_L)) || ((!gameScreenSwap) && (getKeysHeld() & KEY_R))) { subScTargetX += offsX << 8; subScTargetY += offsY << 8; @@ -1884,32 +1884,32 @@ void VBlankHandler(void) { } if (!scaledMode) { - + if (scX + 256 > gameWidth - 1) { scX = gameWidth - 1 - 256; } - + if (scX < 0) { scX = 0; } - + if (scY + 192 > gameHeight - 1) { scY = gameHeight - 1 - 192; } - + if (scY < 0) { scY = 0; } - + setZoomedScreenScroll(subScX, subScY, (subScreenWidth != 256) && (subScreenWidth != 128)); setZoomedScreenScale(subScreenWidth, ((subScreenHeight * (256 << 8)) / 192) >> 8); - - + + setMainScreenScroll(scX << 8, (scY << 8) + (shakePos << 8)); setMainScreenScale(256, 256); // 1:1 scale - + } else { - + if (scY > gameHeight - 192 - 1) { scY = gameHeight - 192 - 1; } @@ -1917,13 +1917,13 @@ void VBlankHandler(void) { if (scY < 0) { scY = 0; } - + setZoomedScreenScroll(subScX, subScY, (subScreenWidth != 256) && (subScreenWidth != 128)); setZoomedScreenScale(subScreenWidth, ((subScreenHeight * (256 << 8)) / 192) >> 8); - + setMainScreenScroll(64, (scY << 8) + (shakePos << 8)); setMainScreenScale(320, 256); // 1:1 scale - + } } else { setZoomedScreenScroll(0, 0, true); @@ -1932,12 +1932,12 @@ void VBlankHandler(void) { setMainScreenScroll(0, 0); setMainScreenScale(320, 256); // 1:1 scale } - + // Enable on screen keyboard when pen taps icon if ((keyboardIcon) && (penX < 32) && (penY > 160) && (penHeld)) { setKeyboardEnable(true); } - + if (keyboardEnable) { if (DS::getKeyboardClosed()) { setKeyboardEnable(false); @@ -1987,7 +1987,7 @@ void setTopScreenTarget(int x, int y) { if (subScTargetY < 0) subScTargetY = 0; if (subScTargetY > gameHeight - subScreenHeight) subScTargetY = gameHeight - subScreenHeight; - + subScTargetX <<=8; subScTargetY <<=8; } @@ -2008,12 +2008,12 @@ void initHardware() { penInit(); powerON(POWER_ALL); -/* vramSetBankA(VRAM_A_MAIN_BG); - vramSetBankB(VRAM_B_MAIN_BG); +/* vramSetBankA(VRAM_A_MAIN_BG); + vramSetBankB(VRAM_B_MAIN_BG); vramSetBankC(VRAM_C_SUB_BG); */ - vramSetBankI(VRAM_I_SUB_SPRITE); - vramSetBankE(VRAM_E_MAIN_SPRITE); - + vramSetBankI(VRAM_I_SUB_SPRITE); + vramSetBankE(VRAM_E_MAIN_SPRITE); + currentTimeMillis = 0; @@ -2041,8 +2041,8 @@ void initHardware() { // Allocate save buffer for game screen // savedBuffer = new u8[320 * 200]; displayMode16Bit(); - - memset(BG_GFX, 0, 512 * 256 * 2); + + memset(BG_GFX, 0, 512 * 256 * 2); scaledMode = true; scX = 0; scY = 0; @@ -2050,33 +2050,33 @@ void initHardware() { subScY = 0; subScTargetX = 0; subScTargetY = 0; - + //lcdSwap(); POWER_CR &= ~POWER_SWAP_LCDS; - + frameCount = 0; callback = NULL; - -// vramSetBankH(VRAM_H_SUB_BG); - + +// vramSetBankH(VRAM_H_SUB_BG); + // // Do text stuff //BG0_CR = BG_MAP_BASE(0) | BG_TILE_BASE(1); // BG0_Y0 = 48; - + PALETTE[255] = RGB15(31,31,31);//by default font will be rendered with color 255 - + //consoleInit() is a lot more flexible but this gets you up and running quick // consoleInitDefault((u16*)SCREEN_BASE_BLOCK(0), (u16*)CHAR_BASE_BLOCK(1), 16); //consolePrintSet(0, 6); - + //irqs are nice irqInit(); // irqInitHandler(); irqSet(IRQ_VBLANK, VBlankHandler); irqSet(IRQ_TIMER0, timerTickHandler); irqSet(IRQ_TIMER2, soundBufferEmptyHandler); - + irqEnable(IRQ_VBLANK); irqEnable(IRQ_TIMER0); irqEnable(IRQ_TIMER2); @@ -2085,15 +2085,15 @@ void initHardware() { irqSet(IRQ_HBLANK, hBlankHandler); irqEnable(IRQ_HBLANK); #endif - - + + // Set up a millisecond timer #ifdef HEAVY_LOGGING consolePrintf("Setting up timer..."); #endif TIMER0_CR = 0; TIMER0_DATA = (u32) TIMER_FREQ(1000); - TIMER0_CR = TIMER_ENABLE | TIMER_DIV_1 | TIMER_IRQ_REQ; + TIMER0_CR = TIMER_ENABLE | TIMER_DIV_1 | TIMER_IRQ_REQ; REG_IME = 1; #ifdef HEAVY_LOGGING consolePrintf("done\n"); @@ -2102,9 +2102,9 @@ void initHardware() { PALETTE[255] = RGB15(0,0,31); initSprites(); - + // videoSetModeSub(MODE_3_2D | DISPLAY_BG0_ACTIVE | DISPLAY_BG3_ACTIVE | DISPLAY_SPR_ACTIVE | DISPLAY_SPR_1D | DISPLAY_SPR_1D_BMP); //sub bg 0 will be used to print text - + // Convert texture from 24bit 888 to 16bit 1555, remembering to set top bit! u8* srcTex = (u8 *) icons_raw; for (int r = 32 * 256 ; r >= 0; r--) { @@ -2112,7 +2112,7 @@ void initHardware() { SPRITE_GFX[r] = 0x8000 | (srcTex[r * 3] >> 3) | ((srcTex[r * 3 + 1] >> 3) << 5) | ((srcTex[r * 3 + 2] >> 3) << 10); } - + @@ -2199,27 +2199,27 @@ void penUpdate() { penDownLastFrame = false; penDownFrames = 0; } - + } int leftHandedSwap(int keys) { // Start and select are unchanged if (leftHandedMode) { int result = keys & (~(KEY_R | KEY_L | KEY_Y | KEY_A | KEY_B | KEY_X | KEY_LEFT | KEY_RIGHT | KEY_UP | KEY_DOWN)); - + if (keys & KEY_L) result |= KEY_R; if (keys & KEY_R) result |= KEY_L; - + if (keys & KEY_LEFT) result |= KEY_Y; if (keys & KEY_RIGHT) result |= KEY_A; if (keys & KEY_DOWN) result |= KEY_B; if (keys & KEY_UP) result |= KEY_X; - + if (keys & KEY_Y) result |= KEY_LEFT; if (keys & KEY_A) result |= KEY_RIGHT; if (keys & KEY_B) result |= KEY_DOWN; if (keys & KEY_X) result |= KEY_UP; - + return result; } else { return keys; @@ -2310,28 +2310,28 @@ int getPenY() { GLvector getPenPos() { GLvector v; - + v.x = (penX * inttof32(1)) / SCREEN_WIDTH; v.y = (penY * inttof32(1)) / SCREEN_HEIGHT; - + return v; } void formatSramOption() { consolePrintf("The following files are present in save RAM:\n"); DSSaveFileManager::instance()->listFiles(); - + consolePrintf("\nAre you sure you want to\n"); consolePrintf("DELETE all files?\n"); consolePrintf("A = Yes, X = No\n"); - + while (true) { if (keysHeld() & KEY_A) { DSSaveFileManager::instance()->formatSram(); consolePrintf("SRAM cleared!\n"); return; } - + if (keysHeld() & KEY_X) { consolePrintf("Whew, that was close!\n"); return; @@ -2380,7 +2380,7 @@ void fastRamReset() { bool GBAMPAvail = false; -bool initGBAMP(int mode) { +bool initGBAMP(int mode) { if (FAT_InitFiles()) { if (mode == 2) { disc_IsInserted(); @@ -2405,14 +2405,14 @@ void initDebugger() { set_verbosity(VERBOSE_INFO | VERBOSE_ERROR); wireless_init(0); wireless_connect(); - + // This is where the address of the computer running the Java // stub goes. debugger_connect_tcp(192, 168, 0, 1); - debugger_init(); - + debugger_init(); + // Update function - should really call every frame - user_debugger_update(); + user_debugger_update(); } @@ -2447,7 +2447,7 @@ cardTranslate cardReaderTable[] = { void reboot() { int deviceType = -1; - + if (disc_getDeviceId() == DEVICE_DLDI) { char id[6]; @@ -2525,13 +2525,13 @@ int main(void) initDebugger(); } #endif - + // Let arm9 read cartridge *((u16 *) (0x04000204)) &= ~0x0080; - + lastCallbackFrame = 0; tweak = 0; - + indyFightState = false; indyFightRight = true; @@ -2544,25 +2544,25 @@ int main(void) // bufferSize = 10; - + /*bufferRate = 44100; bufferFrame = 0; bufferSamples = 8192; bufferFirstHalf = false; bufferSecondHalf = true; - + int bytes = (2 * (bufferSamples)) + 100; - + soundBuffer = (s16 *) malloc(bytes * 2); soundHiPart = true; - + for (int r = 0; r < bytes; r++) { soundBuffer[r] = 0; } - + swiWaitForVBlank(); swiWaitForVBlank(); @@ -2571,29 +2571,29 @@ int main(void) swiWaitForVBlank(); swiWaitForVBlank(); */ - + lastEventFrame = 0; mouseMode = MOUSE_LEFT; - + /* TIMER1_CR = 0; TIMER1_DATA = TIMER_FREQ(bufferRate); TIMER1_CR = TIMER_ENABLE | TIMER_DIV_1; - + TIMER2_CR = 0; TIMER2_DATA = 0xFFFF - (bufferSamples / 2); TIMER2_CR = TIMER_ENABLE | TIMER_IRQ_REQ | TIMER_CASCADE; */ // 2945 - 2947 - - + + // for (int r = 2946; r < 3000; r++) { // soundBuffer[r] = 30000; // } - + //2372 consolePrintf("-------------------------------\n"); @@ -2649,7 +2649,7 @@ int main(void) consolePrintf("\n"); #endif - + #ifdef USE_BUILT_IN_DRIVER_SELECTION // Do M3 detection selectioon int extraData = DSSaveFileManager::getExtraData(); @@ -2688,7 +2688,7 @@ int main(void) disc_setEnable(mode); DSSaveFileManager::setExtraData(mode); #else - + int mode = 0; #endif @@ -2734,11 +2734,11 @@ int main(void) } delete node; - + updateStatus(); - - + + // OSystem_DS::instance(); g_system = new OSystem_DS(); @@ -2769,7 +2769,7 @@ int main(void) char* argv[3] = {"/scummvmds", "--config=scummvmg.ini"}; #endif -#ifdef DS_NON_SCUMM_BUILD +#ifdef DS_NON_SCUMM_BUILD while (1) { scummvm_main(2, (char **) &argv); diff --git a/backends/platform/ds/arm9/source/dsmain.h b/backends/platform/ds/arm9/source/dsmain.h index 314ec97a44..04be57f2eb 100644 --- a/backends/platform/ds/arm9/source/dsmain.h +++ b/backends/platform/ds/arm9/source/dsmain.h @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ - + #ifndef _DSMAIN_H #define _DSMAIN_H diff --git a/backends/platform/ds/arm9/source/dsoptions.cpp b/backends/platform/ds/arm9/source/dsoptions.cpp index 07fd121f05..d23201f745 100644 --- a/backends/platform/ds/arm9/source/dsoptions.cpp +++ b/backends/platform/ds/arm9/source/dsoptions.cpp @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ - + #include "dsoptions.h" #include "dsmain.h" #include "gui/dialog.h" @@ -42,7 +42,7 @@ namespace DS { DSOptionsDialog::DSOptionsDialog() : GUI::Dialog(20, 0, 320 - 40, 230 - 20) { addButton(this, 10, 175, "Close", GUI::kCloseCmd, 'C'); - + #ifdef DS_SCUMM_BUILD if (!DS::isGBAMPAvailable()) { // addButton(this, 100, 140, "Delete Save", 'dels', 'D'); @@ -152,7 +152,7 @@ DSOptionsDialog::DSOptionsDialog() : GUI::Dialog(20, 0, 320 - 40, 230 - 20) { } else { _touchY->setValue(0); } - + } DSOptionsDialog::~DSOptionsDialog() { @@ -186,7 +186,7 @@ void DSOptionsDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd, uint /* if (cmd == 'dels') { _delDialog->setList(Scumm::generateSavegameList(Scumm::g_scumm, false)); _delDialog->handleCommand(NULL, GUI::kListSelectionChangedCmd, 0); - + Common::Event event; event.type = Common::EVENT_KEYDOWN; event.kbd.ascii = 0; @@ -195,9 +195,9 @@ void DSOptionsDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd, uint event.type = Common::EVENT_KEYUP; OSystem_DS::instance()->addEvent(event); - + int idx = _delDialog->runModal(); - + if (idx >= 0) { char name[256]; Scumm::g_scumm->makeSavegameName(name, idx, false); @@ -205,10 +205,10 @@ void DSOptionsDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd, uint ((DSSaveFileManager *) (OSystem_DS::instance()->getSavefileManager()))->deleteFile(name); } } - + }*/ #endif - + } @@ -220,11 +220,11 @@ void togglePause() { OSystem_DS* system = OSystem_DS::instance(); event.type = Common::EVENT_KEYDOWN; - event.kbd.keycode = Common::KEYCODE_p; + event.kbd.keycode = Common::KEYCODE_p; event.kbd.ascii = 'p'; event.kbd.flags = 0; system->addEvent(event); - + event.type = Common::EVENT_KEYUP; system->addEvent(event); } @@ -235,13 +235,13 @@ void showOptionsDialog() { togglePause(); DS::displayMode16Bit(); - + DSOptionsDialog* d = new DSOptionsDialog(); d->runModal(); consolePrintf("deleting dialog\n"); delete d; - + consolePrintf("going to 8 bit\n"); DS::displayMode8Bit(); @@ -303,7 +303,7 @@ void setOptions() { } else { DS::setCpuScalerEnable(false); } -#endif +#endif } } diff --git a/backends/platform/ds/arm9/source/dsoptions.h b/backends/platform/ds/arm9/source/dsoptions.h index 9a345feb3b..3c9da82a83 100644 --- a/backends/platform/ds/arm9/source/dsoptions.h +++ b/backends/platform/ds/arm9/source/dsoptions.h @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ - + #ifndef _DSOPTIONS_H_ #define _DSOPTIONS_H_ @@ -39,7 +39,7 @@ class DSOptionsDialog : public GUI::Dialog { public: DSOptionsDialog(); ~DSOptionsDialog(); - + protected: virtual void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data); void togglePause(); @@ -56,7 +56,7 @@ protected: GUI::CheckboxWidget* _cpuScaler; GUI::CheckboxWidget* _showCursorCheckbox; GUI::CheckboxWidget* _snapToBorderCheckbox; - + #ifdef DS_SCUMM_BUILD Scumm::SaveLoadChooser* _delDialog; #endif diff --git a/backends/platform/ds/arm9/source/fat/disc_io.c b/backends/platform/ds/arm9/source/fat/disc_io.c index 4128c769e1..f456343a2c 100644 --- a/backends/platform/ds/arm9/source/fat/disc_io.c +++ b/backends/platform/ds/arm9/source/fat/disc_io.c @@ -5,7 +5,7 @@ uniformed io-interface to work with Chishm's FAT library Written by MightyMax - + Modified by Chishm: 2005-11-06 * Added WAIT_CR modifications for NDS @@ -87,7 +87,7 @@ LPIO_INTERFACE active_interface = 0; Disc Cache functions 2006-02-03: - Added by www.neoflash.com + Added by www.neoflash.com */ int discDetect = 0; @@ -99,7 +99,7 @@ int dldiFound = FALSE; #include <string.h> #define CACHE_FREE 0xFFFFFFFF - + static u8 cacheBuffer[ DISC_CACHE_COUNT * 512 ]; static struct { @@ -112,20 +112,20 @@ FATDevice currentDevice; static u32 disc_CacheFind(u32 sector) { u32 i; - + for( i = 0; i < DISC_CACHE_COUNT; i++ ) { if( cache[ i ].sector == sector ) return i; } - + return CACHE_FREE; } static u32 disc_CacheFindFree(void) { - + u32 i = 0, j; u32 count = -1; - + for( j = 0; j < DISC_CACHE_COUNT; j++ ) { if( cache[ j ].sector == CACHE_FREE ) { @@ -142,7 +142,7 @@ static u32 disc_CacheFindFree(void) { if( cache[ i ].sector != CACHE_FREE && cache[i].dirty != 0 ) { active_interface->fn_WriteSectors( cache[ i ].sector, 1, &cacheBuffer[ i * 512 ] ); - /* todo: handle write error here + /* todo: handle write error here cache[ i ].sector = CACHE_FREE; cache[ i ].dirty = 0; @@ -431,7 +431,7 @@ bool disc_setDsSlotInterface (void) #endif -bool disc_Init(void) +bool disc_Init(void) { #ifdef DISC_CACHE disc_CacheInit(); @@ -455,15 +455,15 @@ bool disc_Init(void) // could not find a working IO Interface active_interface = 0 ; return false ; -} +} -bool disc_IsInserted(void) +bool disc_IsInserted(void) { if (active_interface) return active_interface->fn_IsInserted() ; return false ; -} +} -bool disc_ReadSectors(u32 sector, u8 numSecs, void* buffer) +bool disc_ReadSectors(u32 sector, u8 numSecs, void* buffer) { #ifdef DISC_CACHE u8 *p=(u8*)buffer; @@ -480,9 +480,9 @@ bool disc_ReadSectors(u32 sector, u8 numSecs, void* buffer) if (active_interface) return active_interface->fn_ReadSectors(sector,numSecs,buffer) ; return false ; #endif -} +} -bool disc_WriteSectors(u32 sector, u8 numSecs, void* buffer) +bool disc_WriteSectors(u32 sector, u8 numSecs, void* buffer) { /*#ifdef DISC_CACHE u8 *p=(u8*)buffer; @@ -502,15 +502,15 @@ bool disc_WriteSectors(u32 sector, u8 numSecs, void* buffer) if (active_interface) return active_interface->fn_WriteSectors(sector,numSecs,buffer) ; return false ; //#endif -} +} -bool disc_ClearStatus(void) +bool disc_ClearStatus(void) { if (active_interface) return active_interface->fn_ClearStatus() ; return false ; -} +} -bool disc_Shutdown(void) +bool disc_Shutdown(void) { #ifdef DISC_CACHE disc_CacheFlush(); @@ -518,7 +518,7 @@ bool disc_Shutdown(void) if (active_interface) active_interface->fn_Shutdown() ; active_interface = 0 ; return true ; -} +} u32 disc_HostType (void) { diff --git a/backends/platform/ds/arm9/source/fat/disc_io.h b/backends/platform/ds/arm9/source/fat/disc_io.h index 05d4c020bd..b2317ca110 100644 --- a/backends/platform/ds/arm9/source/fat/disc_io.h +++ b/backends/platform/ds/arm9/source/fat/disc_io.h @@ -7,7 +7,7 @@ // Use DMA to read the card, remove this line to use normal reads/writes // #define _CF_USE_DMA -// Allow buffers not aligned to 16 bits when reading files. +// Allow buffers not aligned to 16 bits when reading files. // Note that this will slow down access speed, so only use if you have to. // It is also incompatible with DMA #define _CF_ALLOW_UNALIGNED @@ -43,7 +43,7 @@ // This allows the code to build on an earlier version of libnds, before the register was renamed #ifndef REG_EXMEMCNT -#define REG_EXMEMCNT REG_EXEMEMCNT +#define REG_EXMEMCNT REG_EXEMEMCNT #endif #ifndef REG_EXEMEMCNT @@ -70,7 +70,7 @@ #endif // Disable NDS specific hardware and features if running on a GBA -#ifndef NDS +#ifndef NDS #undef SUPPORT_NMMC #undef DISC_CACHE #endif diff --git a/backends/platform/ds/arm9/source/fat/gba_nds_fat.c b/backends/platform/ds/arm9/source/fat/gba_nds_fat.c index b5fdd665df..9594066f03 100644 --- a/backends/platform/ds/arm9/source/fat/gba_nds_fat.c +++ b/backends/platform/ds/arm9/source/fat/gba_nds_fat.c @@ -42,7 +42,7 @@ //--------------------------------------------------------------- // Appropriate placement of CF functions and data #ifdef NDS - #define _VARS_IN_RAM + #define _VARS_IN_RAM #else #define _VARS_IN_RAM __attribute__ ((section (".sbss"))) #endif @@ -74,7 +74,7 @@ #ifdef __GNUC__ #define __PACKED __attribute__ ((__packed__)) #else - #define __PACKED + #define __PACKED #pragma pack(1) #endif @@ -98,7 +98,7 @@ typedef struct u32 numSectors; union // Different types of extended BIOS Parameter Block for FAT16 and FAT32 { - struct + struct { // Ext BIOS Parameter Block for FAT16 u8 driveNumber; @@ -110,7 +110,7 @@ typedef struct // Bootcode u8 bootCode[448]; } __PACKED fat16; - struct + struct { // FAT32 extended block u32 sectorsPerFAT32; @@ -158,7 +158,7 @@ typedef struct typedef struct { u8 ordinal; // Position within LFN - u16 char0; + u16 char0; u16 char1; u16 char2; u16 char3; @@ -177,7 +177,7 @@ typedef struct u16 char12; } __PACKED DIR_ENT_LFN; -const char lfn_offset_table[13]={0x01,0x03,0x05,0x07,0x09,0x0E,0x10,0x12,0x14,0x16,0x18,0x1C,0x1E}; +const char lfn_offset_table[13]={0x01,0x03,0x05,0x07,0x09,0x0E,0x10,0x12,0x14,0x16,0x18,0x1C,0x1E}; // End of packed structs #ifdef __PACKED @@ -190,7 +190,7 @@ const char lfn_offset_table[13]={0x01,0x03,0x05,0x07,0x09,0x0E,0x10,0x12,0x14,0x //----------------------------------------------------------------- // Global Variables -// _VARS_IN_RAM variables are stored in the largest section of WRAM +// _VARS_IN_RAM variables are stored in the largest section of WRAM // available: IWRAM on NDS ARM7, EWRAM on NDS ARM9 and GBA // Files @@ -305,7 +305,7 @@ u16 getRTCtoFileTime (void) u16 getRTCtoFileDate (void) { #ifdef NDS - return ( + return ( ( ((IPC->rtc_year + 20) & 0x7F) <<9) | ( (IPC->rtc_month & 0xF) << 5) | (IPC->rtc_day & 0x1F) ); @@ -330,13 +330,13 @@ u32 FAT_NextCluster(u32 cluster) u32 nextCluster = CLUSTER_FREE; u32 sector; int offset; - - switch (filesysType) + + switch (filesysType) { case FS_UNKNOWN: nextCluster = CLUSTER_FREE; break; - + case FS_FAT12: sector = filesysFAT + (((cluster * 3) / 2) / BYTE_PER_READ); offset = ((cluster * 3) / 2) % BYTE_PER_READ; @@ -351,32 +351,32 @@ u32 FAT_NextCluster(u32 cluster) nextCluster = ((u8*)fatBuffer)[offset]; offset++; - + if (offset >= BYTE_PER_READ) { offset = 0; fatBufferCurSector++; disc_ReadSector(fatBufferCurSector, fatBuffer); } - + nextCluster |= (((u8*)fatBuffer)[offset]) << 8; - + if (cluster & 0x01) { nextCluster = nextCluster >> 4; } else { nextCluster &= 0x0FFF; } - + if (nextCluster >= 0x0FF7) { nextCluster = CLUSTER_EOF; } break; - + case FS_FAT16: sector = filesysFAT + ((cluster << 1) / BYTE_PER_READ); offset = cluster % (BYTE_PER_READ >> 1); - + // If FAT buffer contains wrong sector if (sector != fatBufferCurSector) { @@ -387,17 +387,17 @@ u32 FAT_NextCluster(u32 cluster) // read the nextCluster value nextCluster = ((u16*)fatBuffer)[offset]; - + if (nextCluster >= 0xFFF7) { nextCluster = CLUSTER_EOF; } break; - + case FS_FAT32: sector = filesysFAT + ((cluster << 2) / BYTE_PER_READ); offset = cluster % (BYTE_PER_READ >> 2); - + // If FAT buffer contains wrong sector if (sector != fatBufferCurSector) { @@ -408,18 +408,18 @@ u32 FAT_NextCluster(u32 cluster) // read the nextCluster value nextCluster = (((u32*)fatBuffer)[offset]) & 0x0FFFFFFF; - + if (nextCluster >= 0x0FFFFFF7) { nextCluster = CLUSTER_EOF; } break; - + default: nextCluster = CLUSTER_FREE; break; } - + return nextCluster; } @@ -437,13 +437,13 @@ bool FAT_WriteFatEntry (u32 cluster, u32 value) { return false; } - - switch (filesysType) + + switch (filesysType) { case FS_UNKNOWN: return false; break; - + case FS_FAT12: sector = filesysFAT + (((cluster * 3) / 2) / BYTE_PER_READ); offset = ((cluster * 3) / 2) % BYTE_PER_READ; @@ -465,32 +465,32 @@ bool FAT_WriteFatEntry (u32 cluster, u32 value) offset = 0; // write the buffer back to disc disc_WriteSector(fatBufferCurSector, fatBuffer); - // read the next sector + // read the next sector fatBufferCurSector++; disc_ReadSector(fatBufferCurSector, fatBuffer); } - + ((u8*)fatBuffer)[offset] = (value & 0x0FF0) >> 4; } else { - + ((u8*)fatBuffer)[offset] = value & 0xFF; - + offset++; if (offset >= BYTE_PER_READ) { offset = 0; // write the buffer back to disc disc_WriteSector(fatBufferCurSector, fatBuffer); - // read the next sector + // read the next sector fatBufferCurSector++; disc_ReadSector(fatBufferCurSector, fatBuffer); } - + ((u8*)fatBuffer)[offset] = (((u8*)fatBuffer)[offset] & 0xF0) | ((value >> 8) & 0x0F); } break; - + case FS_FAT16: sector = filesysFAT + ((cluster << 1) / BYTE_PER_READ); offset = cluster % (BYTE_PER_READ >> 1); @@ -507,11 +507,11 @@ bool FAT_WriteFatEntry (u32 cluster, u32 value) ((u16*)fatBuffer)[offset] = (value & 0xFFFF); break; - + case FS_FAT32: sector = filesysFAT + ((cluster << 2) / BYTE_PER_READ); offset = cluster % (BYTE_PER_READ >> 2); - + // If FAT buffer contains wrong sector if (sector != fatBufferCurSector) { @@ -524,15 +524,15 @@ bool FAT_WriteFatEntry (u32 cluster, u32 value) (((u32*)fatBuffer)[offset]) = value; break; - + default: return false; break; } - + // write the buffer back to disc disc_WriteSector(fatBufferCurSector, fatBuffer); - + return true; } #endif @@ -540,8 +540,8 @@ bool FAT_WriteFatEntry (u32 cluster, u32 value) #ifdef CAN_WRITE_TO_DISC /*----------------------------------------------------------------- FAT_ReadWriteFatEntryBuffered -Internal function - writes FAT information about a cluster to a - buffer that should then be flushed to disc using +Internal function - writes FAT information about a cluster to a + buffer that should then be flushed to disc using FAT_WriteFatEntryFlushBuffer() Call FAT_WriteFatEntry first so as not to ruin the disc. Also returns the entry being replaced @@ -555,13 +555,13 @@ u32 FAT_ReadWriteFatEntryBuffered (u32 cluster, u32 value) if ((cluster < 0x0002) || (cluster > fatLastCluster)) return CLUSTER_FREE; - - switch (filesysType) + + switch (filesysType) { case FS_UNKNOWN: oldValue = CLUSTER_FREE; break; - + case FS_FAT12: sector = filesysFAT + (((cluster * 3) / 2) / BYTE_PER_READ); offset = ((cluster * 3) / 2) % BYTE_PER_READ; @@ -587,40 +587,40 @@ u32 FAT_ReadWriteFatEntryBuffered (u32 cluster, u32 value) offset = 0; // write the buffer back to disc disc_WriteSector(fatBufferCurSector, fatBuffer); - // read the next sector + // read the next sector fatBufferCurSector++; disc_ReadSector(fatBufferCurSector, fatBuffer); } - + oldValue |= ((((u8*)fatBuffer)[offset]) << 4) & 0x0FF0; ((u8*)fatBuffer)[offset] = (value & 0x0FF0) >> 4; } else { - + oldValue = ((u8*)fatBuffer)[offset] & 0xFF; ((u8*)fatBuffer)[offset] = value & 0xFF; - + offset++; if (offset >= BYTE_PER_READ) { offset = 0; // write the buffer back to disc disc_WriteSector(fatBufferCurSector, fatBuffer); - // read the next sector + // read the next sector fatBufferCurSector++; disc_ReadSector(fatBufferCurSector, fatBuffer); } - + oldValue |= (((u8*)fatBuffer)[offset] & 0x0F) << 8; ((u8*)fatBuffer)[offset] = (((u8*)fatBuffer)[offset] & 0xF0) | ((value >> 8) & 0x0F); } - if (oldValue >= 0x0FF7) + if (oldValue >= 0x0FF7) { oldValue = CLUSTER_EOF; } break; - + case FS_FAT16: sector = filesysFAT + ((cluster << 1) / BYTE_PER_READ); offset = cluster % (BYTE_PER_READ >> 1); @@ -634,23 +634,23 @@ u32 FAT_ReadWriteFatEntryBuffered (u32 cluster, u32 value) // Load correct sector to buffer fatBufferCurSector = sector; disc_ReadSector(fatBufferCurSector, fatBuffer); - } + } // write the value to the FAT buffer oldValue = ((u16*)fatBuffer)[offset]; ((u16*)fatBuffer)[offset] = value; - if (oldValue >= 0xFFF7) + if (oldValue >= 0xFFF7) { oldValue = CLUSTER_EOF; } break; - + case FS_FAT32: sector = filesysFAT + ((cluster << 2) / BYTE_PER_READ); offset = cluster % (BYTE_PER_READ >> 2); - + // If FAT buffer contains wrong sector if (sector != fatBufferCurSector) { @@ -666,18 +666,18 @@ u32 FAT_ReadWriteFatEntryBuffered (u32 cluster, u32 value) oldValue = ((u32*)fatBuffer)[offset]; ((u32*)fatBuffer)[offset] = value; - if (oldValue >= 0x0FFFFFF7) + if (oldValue >= 0x0FFFFFF7) { oldValue = CLUSTER_EOF; } break; - + default: oldValue = CLUSTER_FREE; break; } - + return oldValue; } #endif @@ -727,7 +727,7 @@ u32 FAT_FirstFreeCluster(void) /*----------------------------------------------------------------- FAT_LinkFreeCluster Internal function - gets the first available free cluster, sets it -to end of file, links the input cluster to it then returns the +to end of file, links the input cluster to it then returns the cluster number -----------------------------------------------------------------*/ u32 FAT_LinkFreeCluster(u32 cluster) @@ -746,7 +746,7 @@ u32 FAT_LinkFreeCluster(u32 cluster) { return curLink; // Return the current link - don't allocate a new one } - + // Get a free cluster firstFree = FAT_FirstFreeCluster(); @@ -777,7 +777,7 @@ Internal function - frees any cluster used by a file bool FAT_ClearLinks (u32 cluster) { u32 nextCluster; - + if ((cluster < 0x0002) || (cluster > fatLastCluster)) return false; @@ -793,7 +793,7 @@ bool FAT_ClearLinks (u32 cluster) while ((cluster != CLUSTER_EOF) && (cluster != CLUSTER_FREE)) { cluster = FAT_ReadWriteFatEntryBuffered (cluster, CLUSTER_FREE); - } + } // Flush fat write buffer FAT_WriteFatEntryFlushBuffer (); @@ -814,7 +814,7 @@ bool FAT_InitFiles (void) int i; int bootSector; BOOT_SEC* bootSec; - + if (!disc_Init()) { return (false); @@ -830,7 +830,7 @@ bool FAT_InitFiles (void) return false; }*/ - + // Check if there is a FAT string, which indicates this is a boot sector if ((globalBuffer[0x36] == 'F') && (globalBuffer[0x37] == 'A') && (globalBuffer[0x38] == 'T')) @@ -848,9 +848,9 @@ bool FAT_InitFiles (void) // First check for an active partition for (i=0x1BE; (i < 0x1FE) && (globalBuffer[i] != 0x80); i+= 0x10); // If it didn't find an active partition, search for any valid partition - if (i == 0x1FE) + if (i == 0x1FE) for (i=0x1BE; (i < 0x1FE) && (globalBuffer[i+0x04] == 0x00); i+= 0x10); - + // Go to first valid partition if ( i != 0x1FE) // Make sure it found a partition { @@ -865,7 +865,7 @@ bool FAT_InitFiles (void) if (!disc_ReadSector (bootSector, bootSec)) { return false; } - + // Store required information about the file system if (bootSec->sectorsPerFAT != 0) { @@ -875,7 +875,7 @@ bool FAT_InitFiles (void) { filesysSecPerFAT = bootSec->extBlock.fat32.sectorsPerFAT32; } - + if (bootSec->numSectorsSmall != 0) { filesysNumSec = bootSec->numSectorsSmall; @@ -987,7 +987,7 @@ Return the file info structure of the next valid file entry u32 dirCluster: IN cluster of subdirectory table int entry: IN the desired file entry int origin IN: relative position of the entry -DIR_ENT return OUT: desired dirEntry. First char will be FILE_FREE if +DIR_ENT return OUT: desired dirEntry. First char will be FILE_FREE if the entry does not exist. -----------------------------------------------------------------*/ DIR_ENT FAT_GetDirEntry ( u32 dirCluster, int entry, int origin) @@ -1011,8 +1011,8 @@ DIR_ENT FAT_GetDirEntry ( u32 dirCluster, int entry, int origin) { return (dir); } - - switch (origin) + + switch (origin) { case SEEK_SET: wrkDirCluster = dirCluster; @@ -1022,7 +1022,7 @@ DIR_ENT FAT_GetDirEntry ( u32 dirCluster, int entry, int origin) case SEEK_CUR: // Don't change anything break; case SEEK_END: // Find entry signifying end of directory - // Subtraction will never reach 0, so it keeps going + // Subtraction will never reach 0, so it keeps going // until reaches end of directory wrkDirCluster = dirCluster; wrkDirSector = 0; @@ -1055,7 +1055,7 @@ DIR_ENT FAT_GetDirEntry ( u32 dirCluster, int entry, int origin) { notFound = true; } - firstSector = FAT_ClustToSect(wrkDirCluster); + firstSector = FAT_ClustToSect(wrkDirCluster); } else if ((wrkDirCluster == FAT16_ROOT_DIR_CLUSTER) && (wrkDirSector == (filesysData - filesysRootDir))) { @@ -1082,7 +1082,7 @@ DIR_ENT FAT_GetDirEntry ( u32 dirCluster, int entry, int origin) lfnName[0] = '\0'; } } - if (entry == 0) + if (entry == 0) { if (!lfnExists) { @@ -1128,7 +1128,7 @@ DIR_ENT FAT_GetDirEntry ( u32 dirCluster, int entry, int origin) } } } while (!found && !notFound); - + // If no file is found, return FILE_FREE if (notFound) { @@ -1141,7 +1141,7 @@ DIR_ENT FAT_GetDirEntry ( u32 dirCluster, int entry, int origin) /*----------------------------------------------------------------- FAT_GetLongFilename -Get the long name of the last file or directory retrived with +Get the long name of the last file or directory retrived with GetDirEntry. Also works for FindFirstFile and FindNextFile. If a long name doesn't exist, it returns the short name instead. @@ -1156,14 +1156,14 @@ bool FAT_GetLongFilename (char* filename) strncpy (filename, lfnName, MAX_FILENAME_LENGTH - 1); filename[MAX_FILENAME_LENGTH - 1] = '\0'; - + return true; } /*----------------------------------------------------------------- FAT_GetFilename -Get the alias (short name) of the file or directory stored in +Get the alias (short name) of the file or directory stored in dirEntry DIR_ENT dirEntry: IN a valid directory table entry char* alias OUT: will be filled with the alias (short filename), @@ -1192,7 +1192,7 @@ bool FAT_GetFilename (DIR_ENT dirEntry, char* alias) } } else - { + { // Copy the filename from the dirEntry to the string for (i = 0; (i < 8) && (dirEntry.name[i] != ' '); i++) { @@ -1230,7 +1230,7 @@ bool FAT_GetAlias (char* alias) } // Read in the last accessed directory entry disc_ReadSector ((wrkDirCluster == FAT16_ROOT_DIR_CLUSTER ? filesysRootDir : FAT_ClustToSect(wrkDirCluster)) + wrkDirSector, globalBuffer); - + return FAT_GetFilename (((DIR_ENT*)globalBuffer)[wrkDirOffset], alias); } @@ -1244,7 +1244,7 @@ u32 FAT_GetFileSize (void) { // Read in the last accessed directory entry disc_ReadSector ((wrkDirCluster == FAT16_ROOT_DIR_CLUSTER ? filesysRootDir : FAT_ClustToSect(wrkDirCluster)) + wrkDirSector, globalBuffer); - + return ((DIR_ENT*)globalBuffer)[wrkDirOffset].fileSize; } @@ -1257,7 +1257,7 @@ u32 FAT_GetFileCluster (void) { // Read in the last accessed directory entry disc_ReadSector ((wrkDirCluster == FAT16_ROOT_DIR_CLUSTER ? filesysRootDir : FAT_ClustToSect(wrkDirCluster)) + wrkDirSector, globalBuffer); - + return (((DIR_ENT*)globalBuffer)[wrkDirOffset].startCluster) | (((DIR_ENT*)globalBuffer)[wrkDirOffset].startClusterHigh << 16); } @@ -1270,7 +1270,7 @@ u8 FAT_GetFileAttributes (void) { // Read in the last accessed directory entry disc_ReadSector ((wrkDirCluster == FAT16_ROOT_DIR_CLUSTER ? filesysRootDir : FAT_ClustToSect(wrkDirCluster)) + wrkDirSector, globalBuffer); - + return ((DIR_ENT*)globalBuffer)[wrkDirOffset].attrib; } @@ -1294,7 +1294,7 @@ u8 FAT_SetFileAttributes (const char* filename, u8 attributes, u8 mask) disc_ReadSector ((wrkDirCluster == FAT16_ROOT_DIR_CLUSTER ? filesysRootDir : FAT_ClustToSect(wrkDirCluster)) + wrkDirSector, globalBuffer); ((DIR_ENT*)globalBuffer)[wrkDirOffset].attrib = (((DIR_ENT*)globalBuffer)[wrkDirOffset].attrib & ~(mask & 0x27)) | (attributes & 0x27); // 0x27 is he settable attributes - + disc_WriteSector ((wrkDirCluster == FAT16_ROOT_DIR_CLUSTER ? filesysRootDir : FAT_ClustToSect(wrkDirCluster)) + wrkDirSector, globalBuffer); return ((DIR_ENT*)globalBuffer)[wrkDirOffset].attrib; @@ -1305,7 +1305,7 @@ u8 FAT_SetFileAttributes (const char* filename, u8 attributes, u8 mask) time_t FAT_FileTimeToCTime (u16 fileTime, u16 fileDate) { struct tm timeInfo; - + timeInfo.tm_year = (fileDate >> 9) + 80; // years since midnight January 1970 timeInfo.tm_mon = ((fileDate >> 5) & 0xf) - 1; // Months since january timeInfo.tm_mday = fileDate & 0x1f; // Day of the month @@ -1326,7 +1326,7 @@ time_t FAT_GetFileCreationTime (void) { // Read in the last accessed directory entry disc_ReadSector ((wrkDirCluster == FAT16_ROOT_DIR_CLUSTER ? filesysRootDir : FAT_ClustToSect(wrkDirCluster)) + wrkDirSector, globalBuffer); - + return FAT_FileTimeToCTime(((DIR_ENT*)globalBuffer)[wrkDirOffset].cTime, ((DIR_ENT*)globalBuffer)[wrkDirOffset].cDate); } @@ -1339,7 +1339,7 @@ time_t FAT_GetFileLastWriteTime (void) { // Read in the last accessed directory entry disc_ReadSector ((wrkDirCluster == FAT16_ROOT_DIR_CLUSTER ? filesysRootDir : FAT_ClustToSect(wrkDirCluster)) + wrkDirSector, globalBuffer); - + return FAT_FileTimeToCTime(((DIR_ENT*)globalBuffer)[wrkDirOffset].mTime, ((DIR_ENT*)globalBuffer)[wrkDirOffset].mDate); } #endif @@ -1374,8 +1374,8 @@ DIR_ENT FAT_DirEntFromPath (const char* path) return; } #endif - - if (path[pathPos] == '/') + + if (path[pathPos] == '/') { dirCluster = filesysRootDirClus; // Start at root directory } @@ -1383,13 +1383,13 @@ DIR_ENT FAT_DirEntFromPath (const char* path) { dirCluster = curWorkDirCluster; // Start at current working dir } - + // Eat any slash / while ((path[pathPos] == '/') && (path[pathPos] != '\0')) { pathPos++; } - + // Search until can't continue found = false; notFound = false; @@ -1437,7 +1437,7 @@ DIR_ENT FAT_DirEntFromPath (const char* path) flagLFN = true; } } - + // Add end of string char name[namePos] = '\0'; @@ -1497,7 +1497,7 @@ DIR_ENT FAT_DirEntFromPath (const char* path) dirEntry = FAT_GetDirEntry (dirCluster, 1, SEEK_CUR); } } - + if (found && ((dirEntry.attrib & ATTRIB_DIR) == ATTRIB_DIR) && (path[pathPos] != '\0')) // It has found a directory from within the path that needs to be followed { @@ -1505,7 +1505,7 @@ DIR_ENT FAT_DirEntFromPath (const char* path) dirCluster = dirEntry.startCluster | (dirEntry.startClusterHigh << 16); } } - + if (notFound) { dirEntry.name[0] = FILE_FREE; @@ -1534,11 +1534,11 @@ bool FAT_AddDirEntry (const char* path, DIR_ENT newDirEntry) bool flagLFN, dotSeen; char fileAlias[13] = {0}; int tailNum; - + unsigned char chkSum = 0; - + u32 oldWorkDirCluster; - + DIR_ENT* dirEntries = (DIR_ENT*)globalBuffer; u32 dirCluster; int secOffset; @@ -1566,7 +1566,7 @@ bool FAT_AddDirEntry (const char* path, DIR_ENT newDirEntry) { curWorkDirCluster = filesysRootDirClus; } - + pathPos = 0; filePos = 0; flagLFN = false; @@ -1576,7 +1576,7 @@ bool FAT_AddDirEntry (const char* path, DIR_ENT newDirEntry) if (path[pathPos + filePos] == '/') { filename[filePos] = '\0'; - if (FAT_chdir(filename) == false) + if (FAT_chdir(filename) == false) { curWorkDirCluster = oldWorkDirCluster; return false; // Couldn't change directory @@ -1587,17 +1587,17 @@ bool FAT_AddDirEntry (const char* path, DIR_ENT newDirEntry) filename[filePos] = path[pathPos + filePos]; filePos++; } - + // Skip over last slashes while (path[pathPos] == '/') pathPos++; - + // Check if the filename has a leading "." // If so, it is an LFN if (path[pathPos] == '.') { flagLFN = true; } - + // Copy name from path filePos = 0; dotSeen = false; @@ -1622,12 +1622,12 @@ bool FAT_AddDirEntry (const char* path, DIR_ENT newDirEntry) flagLFN = true; } } - + if (filePos == 0) // No filename { return false; } - + // Check if a long filename was specified if (filePos > 12) { @@ -1638,7 +1638,7 @@ bool FAT_AddDirEntry (const char* path, DIR_ENT newDirEntry) if (!flagLFN && (strrchr (filename, '.') != NULL) && (strlen(strrchr(filename, '.')) > 4)) { flagLFN = true; } - + lfnPos = (filePos - 1) / 13; // Add end of string char @@ -1646,8 +1646,8 @@ bool FAT_AddDirEntry (const char* path, DIR_ENT newDirEntry) // Clear remaining chars while (filePos < MAX_FILENAME_LENGTH) filename[filePos++] = 0x01; // Set for LFN compatibility - - + + if (flagLFN) { // Generate short filename - always a 2 digit number for tail @@ -1666,7 +1666,7 @@ bool FAT_AddDirEntry (const char* path, DIR_ENT newDirEntry) // Pad Alias with underscores while (aliasPos < 5) fileAlias[aliasPos++] = '_'; - + fileAlias[5] = '~'; fileAlias[8] = '.'; fileAlias[9] = ' '; @@ -1692,14 +1692,14 @@ bool FAT_AddDirEntry (const char* path, DIR_ENT newDirEntry) } else { aliasPos = 9; } - + // Pad Alias extension with spaces while (aliasPos < 12) fileAlias[aliasPos++] = ' '; - + fileAlias[12] = '\0'; - - + + // Get a valid tail number tailNum = 0; do { @@ -1707,7 +1707,7 @@ bool FAT_AddDirEntry (const char* path, DIR_ENT newDirEntry) fileAlias[6] = 0x30 + ((tailNum / 10) % 10); // 10's digit fileAlias[7] = 0x30 + (tailNum % 10); // 1's digit } while ((FAT_DirEntFromPath(fileAlias).name[0] != FILE_FREE) && (tailNum < 100)); - + if (tailNum < 100) // Found an alias not being used { // Calculate file checksum @@ -1725,7 +1725,7 @@ bool FAT_AddDirEntry (const char* path, DIR_ENT newDirEntry) { return false; } - + dirEntryLength = lfnPos + 2; } else // Its not a long file name @@ -1743,7 +1743,7 @@ bool FAT_AddDirEntry (const char* path, DIR_ENT newDirEntry) dirEntryLength = 1; } - + // Change dirEntry name to match alias for (aliasPos = 0; ((fileAlias[aliasPos] != '.') && (fileAlias[aliasPos] != '\0') && (aliasPos < 8)); aliasPos++) { @@ -1775,12 +1775,12 @@ bool FAT_AddDirEntry (const char* path, DIR_ENT newDirEntry) maxSectors = (dirCluster == FAT16_ROOT_DIR_CLUSTER ? (filesysData - filesysRootDir) : filesysSecPerClus); firstSector = (dirCluster == FAT16_ROOT_DIR_CLUSTER ? filesysRootDir : FAT_ClustToSect(dirCluster)); disc_ReadSector (firstSector + secOffset, dirEntries); - + dirEntryRemain = dirEntryLength; tempDirCluster = dirCluster; tempSecOffset = secOffset; tempEntryOffset = entryOffset; - + // Search for a large enough space to fit in new directory entry while ((dirEntries[entryOffset].name[0] != FILE_LAST) && (dirEntryRemain > 0)) { @@ -1803,7 +1803,7 @@ bool FAT_AddDirEntry (const char* path, DIR_ENT newDirEntry) { dirCluster = FAT_NextCluster(dirCluster); } - firstSector = FAT_ClustToSect(dirCluster); + firstSector = FAT_ClustToSect(dirCluster); } else if ((dirCluster == FAT16_ROOT_DIR_CLUSTER) && (secOffset == (filesysData - filesysRootDir))) { @@ -1824,7 +1824,7 @@ bool FAT_AddDirEntry (const char* path, DIR_ENT newDirEntry) } // Modifying the last directory is a special case - have to erase following entries - if (dirEntries[entryOffset].name[0] == FILE_LAST) + if (dirEntries[entryOffset].name[0] == FILE_LAST) { dirEndFlag = true; } @@ -1843,7 +1843,7 @@ bool FAT_AddDirEntry (const char* path, DIR_ENT newDirEntry) } // Add new directory entry - while (dirEntryRemain > 0) + while (dirEntryRemain > 0) { // Move to next entry, first pass advances from last used entry entryOffset++; @@ -1868,7 +1868,7 @@ bool FAT_AddDirEntry (const char* path, DIR_ENT newDirEntry) { dirCluster = FAT_NextCluster(dirCluster); } - firstSector = FAT_ClustToSect(dirCluster); + firstSector = FAT_ClustToSect(dirCluster); } else if ((dirCluster == FAT16_ROOT_DIR_CLUSTER) && (secOffset == (filesysData - filesysRootDir))) { @@ -1900,7 +1900,7 @@ bool FAT_AddDirEntry (const char* path, DIR_ENT newDirEntry) lfnEntry.flag = ATTRIB_LFN; lfnEntry.reserved1 = 0; lfnEntry.reserved2 = 0; - + *((DIR_ENT_LFN*)&dirEntries[entryOffset]) = lfnEntry; lfnPos --; lfnEntry.ordinal = 0; @@ -1914,7 +1914,7 @@ bool FAT_AddDirEntry (const char* path, DIR_ENT newDirEntry) dirEntryRemain--; } - + // Write directory back to disk disc_WriteSector (firstSector + secOffset, dirEntries); @@ -1930,7 +1930,7 @@ FAT_FindNextFile Gets the name of the next directory entry (can be a file or subdirectory) char* filename: OUT filename, must be at least 13 chars long -FILE_TYPE return: OUT returns FT_NONE if failed, +FILE_TYPE return: OUT returns FT_NONE if failed, FT_FILE if it found a file and FT_DIR if it found a directory -----------------------------------------------------------------*/ FILE_TYPE FAT_FindNextFile(char* filename) @@ -1963,7 +1963,7 @@ FAT_FindFirstFile Gets the name of the first directory entry and resets the count (can be a file or subdirectory) char* filename: OUT filename, must be at least 13 chars long -FILE_TYPE return: OUT returns FT_NONE if failed, +FILE_TYPE return: OUT returns FT_NONE if failed, FT_FILE if it found a file and FT_DIR if it found a directory -----------------------------------------------------------------*/ FILE_TYPE FAT_FindFirstFile(char* filename) @@ -1971,7 +1971,7 @@ FILE_TYPE FAT_FindFirstFile(char* filename) // Get the first directory entry DIR_ENT file; file = FAT_GetDirEntry (curWorkDirCluster, 1, SEEK_SET); - + if (file.name[0] == FILE_FREE) { return FT_NONE; // Did not find a file @@ -1996,7 +1996,7 @@ FAT_FindFirstFileLFN Gets the long file name of the first directory entry and resets the count (can be a file or subdirectory) char* lfn: OUT long file name, must be at least 256 chars long -FILE_TYPE return: OUT returns FT_NONE if failed, +FILE_TYPE return: OUT returns FT_NONE if failed, FT_FILE if it found a file and FT_DIR if it found a directory -----------------------------------------------------------------*/ FILE_TYPE FAT_FindFirstFileLFN(char* lfn) @@ -2012,7 +2012,7 @@ FAT_FindNextFileLFN Gets the long file name of the next directory entry (can be a file or subdirectory) char* lfn: OUT long file name, must be at least 256 chars long -FILE_TYPE return: OUT returns FT_NONE if failed, +FILE_TYPE return: OUT returns FT_NONE if failed, FT_FILE if it found a file and FT_DIR if it found a directory -----------------------------------------------------------------*/ FILE_TYPE FAT_FindNextFileLFN(char* lfn) @@ -2026,29 +2026,29 @@ FILE_TYPE FAT_FindNextFileLFN(char* lfn) /*----------------------------------------------------------------- FAT_FileExists -Returns the type of file +Returns the type of file char* filename: IN filename of the file to look for -FILE_TYPE return: OUT returns FT_NONE if there is now file with +FILE_TYPE return: OUT returns FT_NONE if there is now file with that name, FT_FILE if it is a file and FT_DIR if it is a directory -----------------------------------------------------------------*/ FILE_TYPE FAT_FileExists(const char* filename) { - DIR_ENT dirEntry; - // Get the dirEntry for the path specified - dirEntry = FAT_DirEntFromPath (filename); - - if (dirEntry.name[0] == FILE_FREE) - { - return FT_NONE; - } - else if (dirEntry.attrib & ATTRIB_DIR) - { - return FT_DIR; - } - else - { - return FT_FILE; - } + DIR_ENT dirEntry; + // Get the dirEntry for the path specified + dirEntry = FAT_DirEntFromPath (filename); + + if (dirEntry.name[0] == FILE_FREE) + { + return FT_NONE; + } + else if (dirEntry.attrib & ATTRIB_DIR) + { + return FT_DIR; + } + else + { + return FT_FILE; + } } /*----------------------------------------------------------------- @@ -2074,7 +2074,7 @@ u32 FAT_GetFileSystemTotalSize (void) /*----------------------------------------------------------------- FAT_chdir Changes the current working directory -const char* path: IN null terminated string of directory separated by +const char* path: IN null terminated string of directory separated by forward slashes, / is root bool return: OUT returns true if successful -----------------------------------------------------------------*/ @@ -2090,7 +2090,7 @@ bool FAT_chdir (const char* path) { return true; } - + dir = FAT_DirEntFromPath (path); if (((dir.attrib & ATTRIB_DIR) == ATTRIB_DIR) && (dir.name[0] != FILE_FREE)) @@ -2111,7 +2111,7 @@ bool FAT_chdir (const char* path) return true; } else - { + { // Couldn't change directory - wrong path specified return false; } @@ -2120,12 +2120,12 @@ bool FAT_chdir (const char* path) /*----------------------------------------------------------------- FAT_fopen(filename, mode) Opens a file -const char* path: IN null terminated string of filename and path +const char* path: IN null terminated string of filename and path separated by forward slashes, / is root const char* mode: IN mode to open file in Supported modes: "r", "r+", "w", "w+", "a", "a+", don't use "b" or "t" in any mode, as all files are openned in binary mode -FAT_FILE* return: OUT handle to open file, returns NULL if the file +FAT_FILE* return: OUT handle to open file, returns NULL if the file couldn't be openned -----------------------------------------------------------------*/ FAT_FILE* FAT_fopen(const char* path, const char* mode) @@ -2149,10 +2149,10 @@ FAT_FILE* FAT_fopen(const char* path, const char* mode) { return NULL; } - + // Get the dirEntry for the path specified dirEntry = FAT_DirEntFromPath (path); - + // Check that it is not a directory if (dirEntry.attrib & ATTRIB_DIR) { @@ -2174,7 +2174,7 @@ FAT_FILE* FAT_fopen(const char* path, const char* mode) // Find a free file buffer for (fileNum = 0; (fileNum < MAX_FILES_OPEN) && (openFiles[fileNum].inUse == true); fileNum++); - + if (fileNum == MAX_FILES_OPEN) // No free files { return NULL; @@ -2191,7 +2191,7 @@ FAT_FILE* FAT_fopen(const char* path, const char* mode) { return NULL; } - + file->read = true; #ifdef CAN_WRITE_TO_DISC file->write = ( strchr(mode, '+') != NULL ); //(mode[1] == '+'); @@ -2199,13 +2199,13 @@ FAT_FILE* FAT_fopen(const char* path, const char* mode) file->write = false; #endif file->append = false; - + // Store information about position within the file, for use // by FAT_fread, FAT_fseek, etc. file->firstCluster = dirEntry.startCluster | (dirEntry.startClusterHigh << 16); - + #ifdef CAN_WRITE_TO_DISC - // Check if file is openned for random. If it is, and currently has no cluster, one must be + // Check if file is openned for random. If it is, and currently has no cluster, one must be // assigned to it. if (file->write && file->firstCluster == CLUSTER_FREE) { @@ -2223,7 +2223,7 @@ FAT_FILE* FAT_fopen(const char* path, const char* mode) disc_WriteSector (file->dirEntSector, globalBuffer); } #endif - + file->length = dirEntry.fileSize; file->curPos = 0; file->curClus = dirEntry.startCluster | (dirEntry.startClusterHigh << 16); @@ -2234,7 +2234,7 @@ FAT_FILE* FAT_fopen(const char* path, const char* mode) file->appByte = 0; file->appClus = 0; file->appSect = 0; - + disc_ReadSector( FAT_ClustToSect( file->curClus), file->readBuffer); file->inUse = true; // We're using this file now @@ -2248,7 +2248,7 @@ FAT_FILE* FAT_fopen(const char* path, const char* mode) { dirEntry.attrib = ATTRIB_ARCH; dirEntry.reserved = 0; - + // Time and date set to system time and date dirEntry.cTime_ms = 0; dirEntry.cTime = getRTCtoFileTime(); @@ -2257,12 +2257,12 @@ FAT_FILE* FAT_fopen(const char* path, const char* mode) dirEntry.mTime = getRTCtoFileTime(); dirEntry.mDate = getRTCtoFileDate(); } - else // Already a file entry + else // Already a file entry { // Free any clusters used FAT_ClearLinks (dirEntry.startCluster | (dirEntry.startClusterHigh << 16)); } - + // Get a cluster to use startCluster = FAT_LinkFreeCluster (CLUSTER_FREE); if (startCluster == CLUSTER_FREE) // Couldn't get a free cluster @@ -2298,13 +2298,13 @@ FAT_FILE* FAT_fopen(const char* path, const char* mode) ((DIR_ENT*) globalBuffer)[file->dirEntOffset] = dirEntry; disc_WriteSector (file->dirEntSector, globalBuffer); } - + // Now that file is created, open it file->read = ( strchr(mode, '+') != NULL ); //(mode[1] == '+'); file->write = true; file->append = false; - + // Store information about position within the file, for use // by FAT_fread, FAT_fseek, etc. file->firstCluster = startCluster; @@ -2318,7 +2318,7 @@ FAT_FILE* FAT_fopen(const char* path, const char* mode) file->appByte = 0; file->appClus = 0; file->appSect = 0; - + // Empty file, so empty read buffer memset (file->readBuffer, 0, BYTE_PER_READ); file->inUse = true; // We're using this file now @@ -2332,7 +2332,7 @@ FAT_FILE* FAT_fopen(const char* path, const char* mode) { dirEntry.attrib = ATTRIB_ARCH; dirEntry.reserved = 0; - + // Time and date set to system time and date dirEntry.cTime_ms = 0; dirEntry.cTime = getRTCtoFileTime(); @@ -2352,13 +2352,13 @@ FAT_FILE* FAT_fopen(const char* path, const char* mode) } dirEntry.startCluster = (startCluster & 0xFFFF); dirEntry.startClusterHigh = ((startCluster >> 16) & 0xFFFF); - + if(!FAT_AddDirEntry (path, dirEntry)) return NULL; - + // Get the newly created dirEntry dirEntry = FAT_DirEntFromPath (path); - + // Store append cluster file->appClus = startCluster; @@ -2377,7 +2377,7 @@ FAT_FILE* FAT_fopen(const char* path, const char* mode) { return NULL; } - + // Store cluster position into the directory entry dirEntry.startCluster = (file->firstCluster & 0xFFFF); dirEntry.startClusterHigh = ((file->firstCluster >> 16) & 0xFFFF); @@ -2387,7 +2387,7 @@ FAT_FILE* FAT_fopen(const char* path, const char* mode) // Store append cluster file->appClus = startCluster; - + } else { // Follow cluster list until last one is found @@ -2410,7 +2410,7 @@ FAT_FILE* FAT_fopen(const char* path, const char* mode) file->read = ( strchr(mode, '+') != NULL ); file->write = false; file->append = true; - + // Calculate the sector and byte of the current position, // and store them file->appSect = (dirEntry.fileSize % filesysBytePerClus) / BYTE_PER_READ; @@ -2424,7 +2424,7 @@ FAT_FILE* FAT_fopen(const char* path, const char* mode) file->curClus = file->appClus; file->curSect = file->appSect; file->curByte = file->appByte; - + // Read into buffer disc_ReadSector( FAT_ClustToSect(file->curClus) + file->curSect, file->readBuffer); file->inUse = true; // We're using this file now @@ -2464,7 +2464,7 @@ bool FAT_fclose (FAT_FILE* file) disc_CacheFlush(); } #endif - file->inUse = false; + file->inUse = false; return true; } else @@ -2515,14 +2515,14 @@ int FAT_fseek(FAT_FILE* file, s32 offset, int origin) } // Can't seek in append only mode - if (!file->read && !file->write) + if (!file->read && !file->write) { return -1; } curPos = file->curPos; - switch (origin) + switch (origin) { case SEEK_SET: if (offset >= 0) @@ -2537,13 +2537,13 @@ int FAT_fseek(FAT_FILE* file, s32 offset, int origin) if (offset >= 0) { position = curPos + offset; - } + } else if ( (u32)(offset * -1) >= curPos ) { // Tried to seek before start of file position = 0; } - else + else { // Using u32 to maintain 32 bits of accuracy position = curPos - (u32)(offset * -1); @@ -2560,7 +2560,7 @@ int FAT_fseek(FAT_FILE* file, s32 offset, int origin) // Tried to seek before start of file position = 0; } - else + else { // Using u32 to maintain 32 bits of accuracy position = file->length - (u32)(offset * -1); @@ -2575,7 +2575,7 @@ int FAT_fseek(FAT_FILE* file, s32 offset, int origin) // Tried to go past end of file position = file->length; } - + // Save position file->curPos = position; @@ -2608,14 +2608,14 @@ int FAT_fseek(FAT_FILE* file, s32 offset, int origin) nextCluster = FAT_NextCluster (cluster); } // Check if ran out of clusters, and the file is being written to - if ((clusCount >= 0) && (file->write || file->append)) + if ((clusCount >= 0) && (file->write || file->append)) { // Set flag to allocate a new cluster file->curSect = filesysSecPerClus; file->curByte = 0; } file->curClus = cluster; - + // Reload sector buffer for new position in file, if it is a different sector if ((curPos ^ position) >= BYTE_PER_READ) { @@ -2645,7 +2645,7 @@ u32 FAT_fread (void* buffer, u32 size, u32 count, FAT_FILE* file) int curSect; u32 curClus; u32 tempNextCluster; - + int tempVar; char* data = (char*)buffer; @@ -2678,14 +2678,14 @@ u32 FAT_fread (void* buffer, u32 size, u32 count, FAT_FILE* file) if (tempVar > remain) tempVar = remain; - if ((tempVar < BYTE_PER_READ) && flagNoError) + if ((tempVar < BYTE_PER_READ) && flagNoError) { memcpy(data, &(file->readBuffer[curByte]), tempVar); remain -= tempVar; data += tempVar; curByte += tempVar; - if (curByte >= BYTE_PER_READ) + if (curByte >= BYTE_PER_READ) { curByte = 0; curSect++; @@ -2694,7 +2694,7 @@ u32 FAT_fread (void* buffer, u32 size, u32 count, FAT_FILE* file) // align to cluster // tempVar is number of sectors to read - if (remain > (filesysSecPerClus - curSect) * BYTE_PER_READ) + if (remain > (filesysSecPerClus - curSect) * BYTE_PER_READ) { tempVar = filesysSecPerClus - curSect; } else { @@ -2789,7 +2789,7 @@ u32 FAT_fread (void* buffer, u32 size, u32 count, FAT_FILE* file) FAT_fwrite(buffer, size, count, file) Writes size * count bytes into file from buffer, starting from current position. It then sets the current position to the - byte after the last byte written. If the file was openned in + byte after the last byte written. If the file was openned in append mode it always writes to the end of the file. const void* buffer IN: Pointer to buffer containing data. Should be at least as big as the number of bytes to be written. @@ -2870,7 +2870,7 @@ u32 FAT_fwrite (const void* buffer, u32 size, u32 count, FAT_FILE* file) disc_ReadSector( FAT_ClustToSect( curClus), writeBuffer); } } - + // Align to sector tempVar = BYTE_PER_READ - curByte; if (tempVar > remain) @@ -2885,9 +2885,9 @@ u32 FAT_fwrite (const void* buffer, u32 size, u32 count, FAT_FILE* file) // Write buffer back to disk disc_WriteSector (curSect + FAT_ClustToSect(curClus), writeBuffer); - + // Move onto next sector - if (curByte >= BYTE_PER_READ) + if (curByte >= BYTE_PER_READ) { curByte = 0; curSect++; @@ -2896,7 +2896,7 @@ u32 FAT_fwrite (const void* buffer, u32 size, u32 count, FAT_FILE* file) // Align to cluster // tempVar is number of sectors to write - if (remain > (filesysSecPerClus - curSect) * BYTE_PER_READ) + if (remain > (filesysSecPerClus - curSect) * BYTE_PER_READ) { tempVar = filesysSecPerClus - curSect; } else { @@ -2964,7 +2964,7 @@ u32 FAT_fwrite (const void* buffer, u32 size, u32 count, FAT_FILE* file) remain -= tempVar * BYTE_PER_READ; curSect += tempVar; } - + // Last remaining sector // Check if sector wanted is different to the one started with if ( (( (file->append ? file->appByte : file->curByte) + length) >= BYTE_PER_READ) && flagNoError) @@ -2984,7 +2984,7 @@ u32 FAT_fwrite (const void* buffer, u32 size, u32 count, FAT_FILE* file) disc_WriteSector( curSect + FAT_ClustToSect( curClus), writeBuffer); } } - + // Amount read is the originally requested amount minus stuff remaining length = length - remain; @@ -3041,14 +3041,14 @@ int FAT_remove (const char* path) u32 oldWorkDirCluster; char checkFilename[13]; FILE_TYPE checkFiletype; - + dirEntry = FAT_DirEntFromPath (path); if (dirEntry.name[0] == FILE_FREE) { return -1; } - + // Only delete directories if the directory is entry if (dirEntry.attrib & ATTRIB_DIR) { @@ -3062,10 +3062,10 @@ int FAT_remove (const char* path) { checkFiletype = FAT_FindNextFile (checkFilename); } - + // Change back to working directory curWorkDirCluster = oldWorkDirCluster; - + // Check that the directory is empty if (checkFiletype != FT_NONE) { @@ -3084,7 +3084,7 @@ int FAT_remove (const char* path) disc_ReadSector ( (wrkDirCluster == FAT16_ROOT_DIR_CLUSTER ? filesysRootDir : FAT_ClustToSect(wrkDirCluster)) + wrkDirSector , globalBuffer); ((DIR_ENT*)globalBuffer)[wrkDirOffset].name[0] = FILE_FREE; disc_WriteSector ( (wrkDirCluster == FAT16_ROOT_DIR_CLUSTER ? filesysRootDir : FAT_ClustToSect(wrkDirCluster)) + wrkDirSector , globalBuffer); - + // Flush any sectors in disc cache disc_CacheFlush(); @@ -3095,7 +3095,7 @@ int FAT_remove (const char* path) #ifdef CAN_WRITE_TO_DISC /*----------------------------------------------------------------- FAT_mkdir (path) -Makes a new directory, so long as no other directory or file has +Makes a new directory, so long as no other directory or file has the same name. const char* path IN: Path and filename of directory to make int return OUT: zero if successful, non-zero if not @@ -3123,7 +3123,7 @@ int FAT_mkdir (const char* path) { curWorkDirCluster = filesysRootDirClus; } - + pathPos = 0; filePos = 0; @@ -3132,7 +3132,7 @@ int FAT_mkdir (const char* path) if (path[pathPos + filePos] == '/') { pathname[filePos] = '\0'; - if (FAT_chdir(pathname) == false) + if (FAT_chdir(pathname) == false) { curWorkDirCluster = oldDirCluster; return -1; // Couldn't change directory @@ -3236,9 +3236,9 @@ FAT_fgets (char *tgtBuffer, int num, FAT_FILE* file) Gets a up to num bytes from file, stopping at the first newline. -CAUTION: does not do strictly streaming. I.e. it's +CAUTION: does not do strictly streaming. I.e. it's reading more then needed bytes and seeking back. - shouldn't matter for random access + shouldn't matter for random access char *tgtBuffer OUT: buffer to write to int num IN: size of target buffer @@ -3250,62 +3250,62 @@ bool return OUT: character if successful, EOF if not * Added check for unix style text files * Removed seek when no newline is found, since it isn't necessary -------------------------------------------------------------------*/ -char *FAT_fgets(char *tgtBuffer, int num, FAT_FILE* file) -{ +char *FAT_fgets(char *tgtBuffer, int num, FAT_FILE* file) +{ u32 curPos; u32 readLength; char *returnChar; - - // invalid filehandle + + // invalid filehandle if (file == NULL) { - return NULL ; + return NULL ; } - - // end of file + + // end of file if (FAT_feof(file)==true) { - return NULL ; - } - - // save current position - curPos = FAT_ftell(file); - - // read the full buffer (max string chars is num-1 and one end of string \0 - readLength = FAT_fread(tgtBuffer,1,num-1,file) ; - - // mark least possible end of string - tgtBuffer[readLength] = '\0' ; - - if (readLength==0) { - // return error - return NULL ; - } - - // get position of first return '\r' - returnChar = strchr(tgtBuffer,'\r'); - + return NULL ; + } + + // save current position + curPos = FAT_ftell(file); + + // read the full buffer (max string chars is num-1 and one end of string \0 + readLength = FAT_fread(tgtBuffer,1,num-1,file) ; + + // mark least possible end of string + tgtBuffer[readLength] = '\0' ; + + if (readLength==0) { + // return error + return NULL ; + } + + // get position of first return '\r' + returnChar = strchr(tgtBuffer,'\r'); + // if no return is found, search for a newline if (returnChar == NULL) { returnChar = strchr(tgtBuffer,'\n'); } - - // Mark the return, if existant, as end of line/string - if (returnChar!=NULL) { - *returnChar++ = 0 ; - if (*returnChar=='\n') { // catch newline too when jumping over the end - // return to location after \r\n (strlen+2) - FAT_fseek(file,curPos+strlen(tgtBuffer)+2,SEEK_SET) ; - return tgtBuffer ; - } else { - // return to location after \r (strlen+1) - FAT_fseek(file,curPos+strlen(tgtBuffer)+1,SEEK_SET) ; - return tgtBuffer ; + + // Mark the return, if existant, as end of line/string + if (returnChar!=NULL) { + *returnChar++ = 0 ; + if (*returnChar=='\n') { // catch newline too when jumping over the end + // return to location after \r\n (strlen+2) + FAT_fseek(file,curPos+strlen(tgtBuffer)+2,SEEK_SET) ; + return tgtBuffer ; + } else { + // return to location after \r (strlen+1) + FAT_fseek(file,curPos+strlen(tgtBuffer)+1,SEEK_SET) ; + return tgtBuffer ; } } - - return tgtBuffer ; + + return tgtBuffer ; } #ifdef CAN_WRITE_TO_DISC @@ -3322,20 +3322,20 @@ bool return OUT: number of characters written if successful, * Uses FAT_FILE instead of int * writtenBytes is now u32 instead of int -------------------------------------------------------------------*/ -int FAT_fputs (const char *string, FAT_FILE* file) -{ +int FAT_fputs (const char *string, FAT_FILE* file) +{ u32 writtenBytes; - // save string except end of string '\0' - writtenBytes = FAT_fwrite((void *)string, 1, strlen(string), file); + // save string except end of string '\0' + writtenBytes = FAT_fwrite((void *)string, 1, strlen(string), file); - // check if we had an error - if (writtenBytes != strlen(string)) - { - // return EOF error + // check if we had an error + if (writtenBytes != strlen(string)) + { + // return EOF error return EOF; } - // return the charcount written - return writtenBytes ; + // return the charcount written + return writtenBytes ; } #endif diff --git a/backends/platform/ds/arm9/source/fat/gba_nds_fat.h b/backends/platform/ds/arm9/source/fat/gba_nds_fat.h index b238182e14..c554cc80f6 100644 --- a/backends/platform/ds/arm9/source/fat/gba_nds_fat.h +++ b/backends/platform/ds/arm9/source/fat/gba_nds_fat.h @@ -147,7 +147,7 @@ bool FAT_GetAlias (char* alias); /*----------------------------------------------------------------- FAT_GetLongFilename -Get the long name of the last file or directory retrived with +Get the long name of the last file or directory retrived with GetDirEntry. Also works for FindFirstFile and FindNextFile char* filename: OUT will be filled with the filename, should be at least 256 bytes long @@ -210,7 +210,7 @@ FAT_FindNextFile Gets the name of the next directory entry (can be a file or subdirectory) char* filename: OUT filename, must be at least 13 chars long -FILE_TYPE return: OUT returns FT_NONE if failed, +FILE_TYPE return: OUT returns FT_NONE if failed, FT_FILE if it found a file and FT_DIR if it found a directory -----------------------------------------------------------------*/ FILE_TYPE FAT_FindNextFile (char* filename); @@ -220,7 +220,7 @@ FAT_FindFirstFile Gets the name of the first directory entry and resets the count (can be a file or subdirectory) char* filename: OUT filename, must be at least 13 chars long -FILE_TYPE return: OUT returns FT_NONE if failed, +FILE_TYPE return: OUT returns FT_NONE if failed, FT_FILE if it found a file and FT_DIR if it found a directory -----------------------------------------------------------------*/ FILE_TYPE FAT_FindFirstFile (char* filename); @@ -230,7 +230,7 @@ FAT_FindFirstFileLFN Gets the long file name of the first directory entry and resets the count (can be a file or subdirectory) char* lfn: OUT long file name, must be at least 256 chars long -FILE_TYPE return: OUT returns FT_NONE if failed, +FILE_TYPE return: OUT returns FT_NONE if failed, FT_FILE if it found a file and FT_DIR if it found a directory -----------------------------------------------------------------*/ FILE_TYPE FAT_FindFirstFileLFN(char* lfn); @@ -240,16 +240,16 @@ FAT_FindNextFileLFN Gets the long file name of the next directory entry (can be a file or subdirectory) char* lfn: OUT long file name, must be at least 256 chars long -FILE_TYPE return: OUT returns FT_NONE if failed, +FILE_TYPE return: OUT returns FT_NONE if failed, FT_FILE if it found a file and FT_DIR if it found a directory -----------------------------------------------------------------*/ FILE_TYPE FAT_FindNextFileLFN(char* lfn); /*----------------------------------------------------------------- FAT_FileExists -Returns the type of file +Returns the type of file char* filename: IN filename of the file to look for -FILE_TYPE return: OUT returns FT_NONE if there is now file with +FILE_TYPE return: OUT returns FT_NONE if there is now file with that name, FT_FILE if it is a file and FT_DIR if it is a directory -----------------------------------------------------------------*/ FILE_TYPE FAT_FileExists (const char* filename); @@ -269,7 +269,7 @@ u32 FAT_GetFileSystemTotalSize (void); /*----------------------------------------------------------------- FAT_chdir Changes the current working directory -const char* path: IN null terminated string of directory separated by +const char* path: IN null terminated string of directory separated by forward slashes, / is root bool return: OUT returns true if successful -----------------------------------------------------------------*/ @@ -282,12 +282,12 @@ bool FAT_chdir (const char* path); /*----------------------------------------------------------------- FAT_fopen(filename, mode) Opens a file -const char* path: IN null terminated string of filename and path +const char* path: IN null terminated string of filename and path separated by forward slashes, / is root const char* mode: IN mode to open file in Supported modes: "r", "r+", "w", "w+", "a", "a+", don't use "b" or "t" in any mode, as all files are openned in binary mode -FAT_FILE* return: OUT handle to open file, returns -1 if the file +FAT_FILE* return: OUT handle to open file, returns -1 if the file couldn't be openned -----------------------------------------------------------------*/ FAT_FILE* FAT_fopen(const char* path, const char* mode); @@ -338,7 +338,7 @@ u32 FAT_fread (void* buffer, u32 size, u32 count, FAT_FILE* file); FAT_fwrite(buffer, size, count, file) Writes size * count bytes into file from buffer, starting from current position. It then sets the current position to the - byte after the last byte written. If the file was openned in + byte after the last byte written. If the file was openned in append mode it always writes to the end of the file. const void* buffer IN: Pointer to buffer containing data. Should be at least as big as the number of bytes to be written. @@ -371,7 +371,7 @@ int FAT_remove (const char* path); #ifdef CAN_WRITE_TO_DISC /*----------------------------------------------------------------- FAT_mkdir (path) -Makes a new directory, so long as no other directory or file has +Makes a new directory, so long as no other directory or file has the same name. const char* path IN: Path and filename of directory to make int return OUT: zero if successful, non-zero if not @@ -403,9 +403,9 @@ FAT_fgets (char *tgtBuffer, int num, FAT_FILE* file) Gets a up to num bytes from file, stopping at the first newline. -CAUTION: does not do strictly streaming. I.e. it's +CAUTION: does not do strictly streaming. I.e. it's reading more then needed bytes and seeking back. - shouldn't matter for random access + shouldn't matter for random access char *tgtBuffer OUT: buffer to write to int num IN: size of target buffer diff --git a/backends/platform/ds/arm9/source/fat/io_dldi.h b/backends/platform/ds/arm9/source/fat/io_dldi.h index 053de3a94c..034c6aace3 100644 --- a/backends/platform/ds/arm9/source/fat/io_dldi.h +++ b/backends/platform/ds/arm9/source/fat/io_dldi.h @@ -1,8 +1,8 @@ /* - io_dldi.h + io_dldi.h Reserved space for new drivers - + This software is completely free. No warranty is provided. If you use it, please give me credit and email me about your project at chishm@hotmail.com diff --git a/backends/platform/ds/arm9/source/fat/io_dldi.s b/backends/platform/ds/arm9/source/fat/io_dldi.s index c2314e772d..311d43f3ff 100644 --- a/backends/platform/ds/arm9/source/fat/io_dldi.s +++ b/backends/platform/ds/arm9/source/fat/io_dldi.s @@ -18,7 +18,7 @@ .byte 0x0F @32KiB @ Log [base-2] of the size of this driver in bytes. .byte 0x00 @ Sections to fix .byte 0x0F @32KiB @ Log [base-2] of the allocated space in bytes. - + @--------------------------------------------------------------------------------- @ Text identifier - can be anything up to 47 chars + terminating null -- 16 bytes .align 4 @@ -42,13 +42,13 @@ _dldi_driver_name: _io_dldi: .ascii "DLDI" @ ioType .word 0x00000000 @ Features - .word _DLDI_startup @ - .word _DLDI_isInserted @ + .word _DLDI_startup @ + .word _DLDI_isInserted @ .word _DLDI_readSectors @ Function pointers to standard device driver functions - .word _DLDI_writeSectors @ - .word _DLDI_clearStatus @ - .word _DLDI_shutdown @ - + .word _DLDI_writeSectors @ + .word _DLDI_clearStatus @ + .word _DLDI_shutdown @ + @--------------------------------------------------------------------------------- _DLDI_startup: diff --git a/backends/platform/ds/arm9/source/fat/io_efa2.c b/backends/platform/ds/arm9/source/fat/io_efa2.c index f3aa65cfcb..468361969e 100644 --- a/backends/platform/ds/arm9/source/fat/io_efa2.c +++ b/backends/platform/ds/arm9/source/fat/io_efa2.c @@ -47,7 +47,7 @@ See gba_nds_fat.txt for help and license details. // ID of Samsung K9K1G NAND flash chip #define EFA2_NAND_ID 0xEC79A5C0 -// first sector of udisk +// first sector of udisk #define EFA2_UDSK_START 0x40 // @@ -101,7 +101,7 @@ void efa2_nand_lock(void) { // // Set NAND Flash chip enable and write protection bits ? -// +// // val | ~CE | ~WP | // -----+-----+-----+ // 0 | 0 | 0 | @@ -125,7 +125,7 @@ inline void efa2_nand_reset(void) { // // Read out NAND ID information, could be used for card detection -// +// // | EFA2 1GBit | // ------------------+------------+ // maker code | 0xEC | @@ -166,7 +166,7 @@ EFA2_ClearStatus Reads and checks NAND status information bool return OUT: true if NAND is idle -----------------------------------------------------------------*/ -bool EFA2_ClearStatus (void) +bool EFA2_ClearStatus (void) { // tbd: currently there is no write support, so always return // true, there is no possibility for pending operations @@ -178,7 +178,7 @@ EFA2_IsInserted Checks to see if the NAND chip used by the EFA2 is present bool return OUT: true if the correct NAND chip is found -----------------------------------------------------------------*/ -bool EFA2_IsInserted (void) +bool EFA2_IsInserted (void) { EFA2_ClearStatus(); return (efa2_nand_id() == EFA2_NAND_ID); @@ -223,7 +223,7 @@ bool EFA2_ReadSectors (u32 sector, u8 numSecs, void* buffer) efa2_nand_reset(); // set NAND to READ1 operation mode and transfer page address - REG_EFA2_NAND_CMD = 0x00; // write READ1 command + REG_EFA2_NAND_CMD = 0x00; // write READ1 command REG_EFA2_NAND_WR = 0x00; // write address [7:0] REG_EFA2_NAND_WR = (page ) & 0xff; // write address [15:8] REG_EFA2_NAND_WR = (page >> 8 ) & 0xff; // write address[23:16] @@ -280,7 +280,7 @@ bool EFA2_WriteSectors (u32 sector, u8 numSecs, void* buffer) EFA2_Shutdown unload the EFA2 interface -----------------------------------------------------------------*/ -bool EFA2_Shutdown(void) +bool EFA2_Shutdown(void) { return EFA2_ClearStatus(); } @@ -368,7 +368,7 @@ See gba_nds_fat.txt for help and license details. // ID of Samsung K9K1G NAND flash chip #define EFA2_NAND_ID 0xEC79A5C0 -// first sector of udisk +// first sector of udisk #define EFA2_UDSK_START 0x40 // @@ -422,7 +422,7 @@ void efa2_nand_lock(void) { // // Set NAND Flash chip enable and write protection bits ? -// +// // val | ~CE | ~WP | // -----+-----+-----+ // 0 | 0 | 0 | @@ -446,7 +446,7 @@ inline void efa2_nand_reset(void) { // // Read out NAND ID information, could be used for card detection -// +// // | EFA2 1GBit | // ------------------+------------+ // maker code | 0xEC | @@ -487,7 +487,7 @@ EFA2_ClearStatus Reads and checks NAND status information bool return OUT: true if NAND is idle -----------------------------------------------------------------*/ -bool EFA2_ClearStatus (void) +bool EFA2_ClearStatus (void) { // tbd: currently there is no write support, so always return // true, there is no possibility for pending operations @@ -499,7 +499,7 @@ EFA2_IsInserted Checks to see if the NAND chip used by the EFA2 is present bool return OUT: true if the correct NAND chip is found -----------------------------------------------------------------*/ -bool EFA2_IsInserted (void) +bool EFA2_IsInserted (void) { EFA2_ClearStatus(); return (efa2_nand_id() == EFA2_NAND_ID); @@ -544,7 +544,7 @@ bool EFA2_ReadSectors (u32 sector, u8 numSecs, void* buffer) efa2_nand_reset(); // set NAND to READ1 operation mode and transfer page address - REG_EFA2_NAND_CMD = 0x00; // write READ1 command + REG_EFA2_NAND_CMD = 0x00; // write READ1 command REG_EFA2_NAND_WR = 0x00; // write address [7:0] REG_EFA2_NAND_WR = (page ) & 0xff; // write address [15:8] REG_EFA2_NAND_WR = (page >> 8 ) & 0xff; // write address[23:16] @@ -601,7 +601,7 @@ bool EFA2_WriteSectors (u32 sector, u8 numSecs, void* buffer) EFA2_Shutdown unload the EFA2 interface -----------------------------------------------------------------*/ -bool EFA2_Shutdown(void) +bool EFA2_Shutdown(void) { return EFA2_ClearStatus(); } diff --git a/backends/platform/ds/arm9/source/fat/io_fcsr.c b/backends/platform/ds/arm9/source/fat/io_fcsr.c index d576dfbb0f..7a67a6b1b0 100644 --- a/backends/platform/ds/arm9/source/fat/io_fcsr.c +++ b/backends/platform/ds/arm9/source/fat/io_fcsr.c @@ -4,7 +4,7 @@ compact_flash.c By chishm (Michael Chisholm) - Hardware Routines for using a GBA Flash Cart and SRAM as a + Hardware Routines for using a GBA Flash Cart and SRAM as a block device. This software is completely free. No warranty is provided. @@ -57,7 +57,7 @@ FCSR_IsInserted Is a GBA Flash Cart with a valid file system inserted? bool return OUT: true if a GBA FC card is inserted -----------------------------------------------------------------*/ -bool FCSR_IsInserted (void) +bool FCSR_IsInserted (void) { bool flagFoundFileSys = false; @@ -85,7 +85,7 @@ FCSR_ClearStatus Finish any pending operations bool return OUT: always true for GBA FC -----------------------------------------------------------------*/ -bool FCSR_ClearStatus (void) +bool FCSR_ClearStatus (void) { return true; } @@ -101,7 +101,7 @@ void* buffer OUT: pointer to 512 byte buffer to store data in bool return OUT: true if successful -----------------------------------------------------------------*/ bool FCSR_ReadSectors (u32 sector, u8 numSecs, void* buffer) -{ +{ int i; bool flagSramSector = false; int numSectors = (numSecs > 0 ? numSecs : 256); @@ -208,14 +208,14 @@ bool FCSR_WriteSectors (u32 sector, u8 numSecs, void* buffer) FCSR_Shutdown unload the Flash Cart interface -----------------------------------------------------------------*/ -bool FCSR_Shutdown(void) +bool FCSR_Shutdown(void) { int i; if (FCSR_ClearStatus() == false) return false; FCSR_FileSysPointer = 0; - + for (i=0; i < 4; i++) { FCSR_SramSectorPointer[i] = 0; @@ -262,11 +262,11 @@ bool FCSR_StartUp(void) // Get SRAM sector regions from header block for (i = 0; i < 4; i++) { - FCSR_SramSectorStart[i] = fileSysPointer[i+4]; + FCSR_SramSectorStart[i] = fileSysPointer[i+4]; SramRegionSize[i] = fileSysPointer[i+8]; FCSR_SramSectorEnd[i] = FCSR_SramSectorStart[i] + SramRegionSize[i]; } - + // Calculate SRAM region pointers FCSR_SramSectorPointer[0] = (u8*)(SRAM_START + 4); for (i = 1; i < 4; i++) diff --git a/backends/platform/ds/arm9/source/fat/io_fcsr.h b/backends/platform/ds/arm9/source/fat/io_fcsr.h index 2f87c1c8aa..ef390a8ad6 100644 --- a/backends/platform/ds/arm9/source/fat/io_fcsr.h +++ b/backends/platform/ds/arm9/source/fat/io_fcsr.h @@ -1,5 +1,5 @@ /* - io_fcsr.h + io_fcsr.h Hardware Routines for using a GBA Flash Cart with SRAM @@ -23,7 +23,7 @@ extern LPIO_INTERFACE FCSR_GetInterface(void) ; #endif // define IO_FCSR_H /* - io_fcsr.h + io_fcsr.h Hardware Routines for using a GBA Flash Cart with SRAM diff --git a/backends/platform/ds/arm9/source/fat/io_m3_common.c b/backends/platform/ds/arm9/source/fat/io_m3_common.c index ab2c143327..9c8280c808 100644 --- a/backends/platform/ds/arm9/source/fat/io_m3_common.c +++ b/backends/platform/ds/arm9/source/fat/io_m3_common.c @@ -1,13 +1,13 @@ /* - io_m3_common.c + io_m3_common.c Routines common to all version of the M3 - + Some code based on M3 SD drivers supplied by M3Adapter. Some code written by SaTa may have been unknowingly used. Copyright (c) 2006 Michael "Chishm" Chisholm - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -47,7 +47,7 @@ void _M3_changeMode (u32 mode) { _M3_readHalfword (0x08000000 + (mode << 1)); _M3_readHalfword (0x0800080e); _M3_readHalfword (0x08000000); - + if ((mode & 0x0f) != 4) { _M3_readHalfword (0x09000000); } else { @@ -56,5 +56,5 @@ void _M3_changeMode (u32 mode) { _M3_readHalfword (0x08000188); _M3_readHalfword (0x08000188); } -} +} diff --git a/backends/platform/ds/arm9/source/fat/io_m3_common.h b/backends/platform/ds/arm9/source/fat/io_m3_common.h index 92e6bed980..6d0c669783 100644 --- a/backends/platform/ds/arm9/source/fat/io_m3_common.h +++ b/backends/platform/ds/arm9/source/fat/io_m3_common.h @@ -1,5 +1,5 @@ /* - io_m3_common.h + io_m3_common.h Routines common to all version of the M3 @@ -7,7 +7,7 @@ Some code written by SaTa may have been unknowingly used. Copyright (c) 2006 Michael "Chishm" Chisholm - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -40,7 +40,7 @@ // Values for changing mode #define M3_MODE_ROM 0x00400004 -#define M3_MODE_MEDIA 0x00400003 +#define M3_MODE_MEDIA 0x00400003 extern void _M3_changeMode (u32 mode); diff --git a/backends/platform/ds/arm9/source/fat/io_m3cf.c b/backends/platform/ds/arm9/source/fat/io_m3cf.c index 910f01097e..968d83ae33 100644 --- a/backends/platform/ds/arm9/source/fat/io_m3cf.c +++ b/backends/platform/ds/arm9/source/fat/io_m3cf.c @@ -73,7 +73,7 @@ M3CF_IsInserted Is a compact flash card inserted? bool return OUT: true if a CF card is inserted -----------------------------------------------------------------*/ -bool M3CF_IsInserted (void) +bool M3CF_IsInserted (void) { // Change register, then check if value did change M3_REG_STS = CF_STS_INSERTED; @@ -86,17 +86,17 @@ M3CF_ClearStatus Tries to make the CF card go back to idle mode bool return OUT: true if a CF card is idle -----------------------------------------------------------------*/ -bool M3CF_ClearStatus (void) +bool M3CF_ClearStatus (void) { int i; - + // Wait until CF card is finished previous commands i=0; while ((M3_REG_CMD & CF_STS_BUSY) && (i < CARD_TIMEOUT)) { i++; } - + // Wait until card is ready for commands i = 0; while ((!(M3_REG_STS & CF_STS_INSERTED)) && (i < CARD_TIMEOUT)) @@ -128,7 +128,7 @@ bool M3CF_ReadSectors (u32 sector, u8 numSecs, void* buffer) u8 *buff_u8 = (u8*)buffer; int temp; #endif - + #if defined _CF_USE_DMA && defined NDS && defined ARM9 DC_FlushRange( buffer, j * BYTE_PER_READ); #endif @@ -139,7 +139,7 @@ bool M3CF_ReadSectors (u32 sector, u8 numSecs, void* buffer) { i++; } - + // Wait until card is ready for commands i = 0; while ((!(M3_REG_STS & CF_STS_INSERTED)) && (i < CARD_TIMEOUT)) @@ -148,20 +148,20 @@ bool M3CF_ReadSectors (u32 sector, u8 numSecs, void* buffer) } if (i >= CARD_TIMEOUT) return false; - + // Set number of sectors to read - M3_REG_SEC = numSecs; - + M3_REG_SEC = numSecs; + // Set read sector M3_REG_LBA1 = sector & 0xFF; // 1st byte of sector number M3_REG_LBA2 = (sector >> 8) & 0xFF; // 2nd byte of sector number M3_REG_LBA3 = (sector >> 16) & 0xFF; // 3rd byte of sector number M3_REG_LBA4 = ((sector >> 24) & 0x0F )| CF_CMD_LBA; // last nibble of sector number - + // Set command to read M3_REG_CMD = CF_CMD_READ; - - + + while (j--) { // Wait until card is ready for reading @@ -172,7 +172,7 @@ bool M3CF_ReadSectors (u32 sector, u8 numSecs, void* buffer) } if (i >= CARD_TIMEOUT) return false; - + // Read data #ifdef _CF_USE_DMA #ifdef NDS @@ -194,12 +194,12 @@ bool M3CF_ReadSectors (u32 sector, u8 numSecs, void* buffer) } } else { while(i--) - *buff++ = *M3_DATA; + *buff++ = *M3_DATA; } #else i=256; while(i--) - *buff++ = *M3_DATA; + *buff++ = *M3_DATA; #endif } #if defined _CF_USE_DMA && defined NDS @@ -230,7 +230,7 @@ bool M3CF_WriteSectors (u32 sector, u8 numSecs, void* buffer) u8 *buff_u8 = (u8*)buffer; int temp; #endif - + #if defined _CF_USE_DMA && defined NDS && defined ARM9 DC_FlushRange( buffer, j * BYTE_PER_READ); #endif @@ -241,7 +241,7 @@ bool M3CF_WriteSectors (u32 sector, u8 numSecs, void* buffer) { i++; } - + // Wait until card is ready for commands i = 0; while ((!(M3_REG_STS & CF_STS_INSERTED)) && (i < CARD_TIMEOUT)) @@ -250,19 +250,19 @@ bool M3CF_WriteSectors (u32 sector, u8 numSecs, void* buffer) } if (i >= CARD_TIMEOUT) return false; - + // Set number of sectors to write - M3_REG_SEC = numSecs; - + M3_REG_SEC = numSecs; + // Set write sector M3_REG_LBA1 = sector & 0xFF; // 1st byte of sector number M3_REG_LBA2 = (sector >> 8) & 0xFF; // 2nd byte of sector number M3_REG_LBA3 = (sector >> 16) & 0xFF; // 3rd byte of sector number M3_REG_LBA4 = ((sector >> 24) & 0x0F )| CF_CMD_LBA; // last nibble of sector number - + // Set command to write M3_REG_CMD = CF_CMD_WRITE; - + while (j--) { // Wait until card is ready for writing @@ -273,7 +273,7 @@ bool M3CF_WriteSectors (u32 sector, u8 numSecs, void* buffer) } if (i >= CARD_TIMEOUT) return false; - + // Write data #ifdef _CF_USE_DMA #ifdef NDS @@ -295,19 +295,19 @@ bool M3CF_WriteSectors (u32 sector, u8 numSecs, void* buffer) } } else { while(i--) - *M3_DATA = *buff++; + *M3_DATA = *buff++; } #else i=256; while(i--) - *M3_DATA = *buff++; + *M3_DATA = *buff++; #endif } #if defined _CF_USE_DMA && defined NDS // Wait for end of transfer before returning while(DMA3_CR & DMA_BUSY); #endif - + return true; } @@ -317,7 +317,7 @@ M3_Unlock Returns true if M3 was unlocked, false if failed Added by MightyMax -----------------------------------------------------------------*/ -bool M3_Unlock(void) +bool M3_Unlock(void) { // run unlock sequence volatile unsigned short tmp ; diff --git a/backends/platform/ds/arm9/source/fat/io_m3cf.h b/backends/platform/ds/arm9/source/fat/io_m3cf.h index bade53f511..006c283adc 100644 --- a/backends/platform/ds/arm9/source/fat/io_m3cf.h +++ b/backends/platform/ds/arm9/source/fat/io_m3cf.h @@ -1,5 +1,5 @@ /* - io_m3cf.h + io_m3cf.h Hardware Routines for reading a compact flash card using the M3 CF @@ -24,7 +24,7 @@ extern LPIO_INTERFACE M3CF_GetInterface(void) ; #endif // define IO_M3CF_H /* - io_m3cf.h + io_m3cf.h Hardware Routines for reading a compact flash card using the M3 CF diff --git a/backends/platform/ds/arm9/source/fat/io_m3sd.c b/backends/platform/ds/arm9/source/fat/io_m3sd.c index 914b83e06e..2bbda37a5a 100644 --- a/backends/platform/ds/arm9/source/fat/io_m3sd.c +++ b/backends/platform/ds/arm9/source/fat/io_m3sd.c @@ -218,7 +218,7 @@ void M3SD_writesector(u16 * p,u32 sectorn) } } while ((verify > 0) && (tries < 16)); - + free(data); free(check); } // */ @@ -356,7 +356,7 @@ bool M3SD_Shutdown(void) bool M3SD_StartUp(void) { vu16* waitCr = (vu16*)0x4000204; - + *waitCr |= 0x6000; // *(vu16*)0x4000204=0x6000; // Try unlocking 3 times, because occationally it fails to detect the reader. diff --git a/backends/platform/ds/arm9/source/fat/io_m3sd_asm.s b/backends/platform/ds/arm9/source/fat/io_m3sd_asm.s index ffaa971aca..a6bb8dc187 100644 --- a/backends/platform/ds/arm9/source/fat/io_m3sd_asm.s +++ b/backends/platform/ds/arm9/source/fat/io_m3sd_asm.s @@ -54,7 +54,7 @@ sd_write_loop2: sd_write_busy: bl clkin - ldrh r0,[r1] + ldrh r0,[r1] tst r0,#0x100 beq sd_write_busy ldmfd r13!,{r0-r1} @@ -68,10 +68,10 @@ SD_crc16: stmfd r13!,{r4-r9} mov r9,r2 - mov r3,#0 - mov r4,#0 - mov r5,#0 - mov r6,#0 + mov r3,#0 + mov r4,#0 + mov r5,#0 + mov r6,#0 ldr r7,=0x80808080 ldr r8,=0x1021 @@ -86,19 +86,19 @@ sd_crc16_loop: eorne r3,r3,r8 tst r2,r7,lsr #24 eorne r3,r3,r8 - + mov r4,r4,lsl #1 tst r4,#0x10000 eorne r4,r4,r8 tst r2,r7,lsr #25 eorne r4,r4,r8 - + mov r5,r5,lsl #1 tst r5,#0x10000 eorne r5,r5,r8 tst r2,r7,lsr #26 eorne r5,r5,r8 - + mov r6,r6,lsl #1 tst r6,#0x10000 eorne r6,r6,r8 @@ -107,7 +107,7 @@ sd_crc16_loop: mov r7,r7,ror #4 subs r1,r1,#4 - bne sd_crc16_loop + bne sd_crc16_loop mov r2,r9 mov r8,#16 @@ -145,7 +145,7 @@ SD_data_write: mov r2,#SDODA sd_data_write_busy: bl clkin - ldrh r3,[r2] + ldrh r3,[r2] tst r3,#0x100 beq sd_data_write_busy @@ -169,7 +169,7 @@ sd_data_write_loop: bl clkout subs r5, r5, #2 - bne sd_data_write_loop + bne sd_data_write_loop cmp r1,#0 movne r0,r1 @@ -184,10 +184,10 @@ sd_data_write_loop2: bl clkout subs r5, r5, #1 bne sd_data_write_loop2 - + sd_data_write_busy2: bl clkin - ldrh r3,[r2] + ldrh r3,[r2] tst r3,#0x100 beq sd_data_write_busy2 diff --git a/backends/platform/ds/arm9/source/fat/io_mmcf.c b/backends/platform/ds/arm9/source/fat/io_mmcf.c index 3034afe311..5ccb3122e4 100644 --- a/backends/platform/ds/arm9/source/fat/io_mmcf.c +++ b/backends/platform/ds/arm9/source/fat/io_mmcf.c @@ -74,14 +74,14 @@ static bool cf_block_ready(void) do { while (!(CF_RD_STATUS & 0x40)); - } while (CF_RD_STATUS & 0x80); + } while (CF_RD_STATUS & 0x80); */ do { i++; - while ( (!(CF_RD_STATUS & 0x40)) && (i < CARD_TIMEOUT) ) i++; - } while ( (CF_RD_STATUS & 0x80) && (i < CARD_TIMEOUT) ); + while ( (!(CF_RD_STATUS & 0x40)) && (i < CARD_TIMEOUT) ) i++; + } while ( (CF_RD_STATUS & 0x80) && (i < CARD_TIMEOUT) ); if (i >= CARD_TIMEOUT) { return false; @@ -110,7 +110,7 @@ MMCF_IsInserted Is a compact flash card inserted? bool return OUT: true if a CF card is inserted -----------------------------------------------------------------*/ -bool MMCF_IsInserted (void) +bool MMCF_IsInserted (void) { if ( !cf_set_features(0xAA) ) return false; @@ -123,7 +123,7 @@ MMCF_ClearStatus Tries to make the CF card go back to idle mode bool return OUT: true if a CF card is idle -----------------------------------------------------------------*/ -bool MMCF_ClearStatus (void) +bool MMCF_ClearStatus (void) { return true; } @@ -185,7 +185,7 @@ bool MMCF_ReadSectors (u32 sector, u8 numSecs, void* buffer) } } else { while(i--) - *buff++ = *MP_DATA; + *buff++ = *MP_DATA; } #else i=256; @@ -222,15 +222,15 @@ bool MMCF_WriteSectors (u32 sector, u8 numSecs, void* buffer) u8 *buff_u8 = (u8*)buffer; int temp; #endif - + #if defined _CF_USE_DMA && defined NDS && defined ARM9 DC_FlushRange( buffer, j * BYTE_PER_READ); #endif - if (numSecs > 1) + if (numSecs > 1) { int r = 0; - + for (r = 0; r < numSecs; r++) { MMCF_WriteSectors(sector + r, 1, ((unsigned char *) (buffer)) + 512); @@ -270,12 +270,12 @@ bool MMCF_WriteSectors (u32 sector, u8 numSecs, void* buffer) } } else { while(i--) - *MP_DATA = *buff++; + *MP_DATA = *buff++; } #else i=256; while(i--) - *MP_DATA = *buff++; + *MP_DATA = *buff++; #endif } @@ -283,7 +283,7 @@ bool MMCF_WriteSectors (u32 sector, u8 numSecs, void* buffer) #if defined _CF_USE_DMA && defined NDS // Wait for end of transfer before returning while(DMA3_CR & DMA_BUSY); -#endif +#endif //#define _CF_VERIFY @@ -312,7 +312,7 @@ bool MMCF_WriteSectors (u32 sector, u8 numSecs, void* buffer) MMCF_Shutdown unload the GBAMP CF interface -----------------------------------------------------------------*/ -bool MMCF_Shutdown(void) +bool MMCF_Shutdown(void) { return MMCF_ClearStatus() ; } diff --git a/backends/platform/ds/arm9/source/fat/io_mmcf.h b/backends/platform/ds/arm9/source/fat/io_mmcf.h index baa43ac59f..fa9e6536ee 100644 --- a/backends/platform/ds/arm9/source/fat/io_mmcf.h +++ b/backends/platform/ds/arm9/source/fat/io_mmcf.h @@ -1,5 +1,5 @@ /* - io_mmcf.h + io_mmcf.h Hardware Routines for reading a compact flash card using the GBA Movie Player diff --git a/backends/platform/ds/arm9/source/fat/io_mpcf.c b/backends/platform/ds/arm9/source/fat/io_mpcf.c index a12b6e8e1e..6b56e29291 100644 --- a/backends/platform/ds/arm9/source/fat/io_mpcf.c +++ b/backends/platform/ds/arm9/source/fat/io_mpcf.c @@ -73,7 +73,7 @@ MPCF_IsInserted Is a compact flash card inserted? bool return OUT: true if a CF card is inserted -----------------------------------------------------------------*/ -bool MPCF_IsInserted (void) +bool MPCF_IsInserted (void) { // Change register, then check if value did change MP_REG_STS = CF_STS_INSERTED; @@ -86,17 +86,17 @@ MPCF_ClearStatus Tries to make the CF card go back to idle mode bool return OUT: true if a CF card is idle -----------------------------------------------------------------*/ -bool MPCF_ClearStatus (void) +bool MPCF_ClearStatus (void) { int i; - + // Wait until CF card is finished previous commands i=0; while ((MP_REG_CMD & CF_STS_BUSY) && (i < CARD_TIMEOUT)) { i++; } - + // Wait until card is ready for commands i = 0; while ((!(MP_REG_STS & CF_STS_INSERTED)) && (i < CARD_TIMEOUT)) @@ -139,7 +139,7 @@ bool MPCF_ReadSectors (u32 sector, u8 numSecs, void* buffer) { i++; } - + // Wait until card is ready for commands i = 0; while ((!(MP_REG_STS & CF_STS_INSERTED)) && (i < CARD_TIMEOUT)) @@ -148,20 +148,20 @@ bool MPCF_ReadSectors (u32 sector, u8 numSecs, void* buffer) } if (i >= CARD_TIMEOUT) return false; - + // Set number of sectors to read - MP_REG_SEC = numSecs; - + MP_REG_SEC = numSecs; + // Set read sector MP_REG_LBA1 = sector & 0xFF; // 1st byte of sector number MP_REG_LBA2 = (sector >> 8) & 0xFF; // 2nd byte of sector number MP_REG_LBA3 = (sector >> 16) & 0xFF; // 3rd byte of sector number MP_REG_LBA4 = ((sector >> 24) & 0x0F )| CF_CMD_LBA; // last nibble of sector number - + // Set command to read MP_REG_CMD = CF_CMD_READ; - - + + while (j--) { // Wait until card is ready for reading @@ -172,7 +172,7 @@ bool MPCF_ReadSectors (u32 sector, u8 numSecs, void* buffer) } if (i >= CARD_TIMEOUT) return false; - + // Read data #ifdef _CF_USE_DMA #ifdef NDS @@ -194,12 +194,12 @@ bool MPCF_ReadSectors (u32 sector, u8 numSecs, void* buffer) } } else { while(i--) - *buff++ = *MP_DATA; + *buff++ = *MP_DATA; } #else i=256; while(i--) - *buff++ = *MP_DATA; + *buff++ = *MP_DATA; #endif } #if (defined _CF_USE_DMA) && (defined NDS) @@ -229,7 +229,7 @@ bool MPCF_WriteSectors (u32 sector, u8 numSecs, void* buffer) u8 *buff_u8 = (u8*)buffer; int temp; #endif - + #if defined _CF_USE_DMA && defined NDS && defined ARM9 DC_FlushRange( buffer, j * BYTE_PER_READ); #endif @@ -240,7 +240,7 @@ bool MPCF_WriteSectors (u32 sector, u8 numSecs, void* buffer) { i++; } - + // Wait until card is ready for commands i = 0; while ((!(MP_REG_STS & CF_STS_INSERTED)) && (i < CARD_TIMEOUT)) @@ -249,19 +249,19 @@ bool MPCF_WriteSectors (u32 sector, u8 numSecs, void* buffer) } if (i >= CARD_TIMEOUT) return false; - + // Set number of sectors to write - MP_REG_SEC = numSecs; - + MP_REG_SEC = numSecs; + // Set write sector MP_REG_LBA1 = sector & 0xFF; // 1st byte of sector number MP_REG_LBA2 = (sector >> 8) & 0xFF; // 2nd byte of sector number MP_REG_LBA3 = (sector >> 16) & 0xFF; // 3rd byte of sector number MP_REG_LBA4 = ((sector >> 24) & 0x0F )| CF_CMD_LBA; // last nibble of sector number - + // Set command to write MP_REG_CMD = CF_CMD_WRITE; - + while (j--) { // Wait until card is ready for writing @@ -272,7 +272,7 @@ bool MPCF_WriteSectors (u32 sector, u8 numSecs, void* buffer) } if (i >= CARD_TIMEOUT) return false; - + // Write data #ifdef _CF_USE_DMA #ifdef NDS @@ -294,19 +294,19 @@ bool MPCF_WriteSectors (u32 sector, u8 numSecs, void* buffer) } } else { while(i--) - *MP_DATA = *buff++; + *MP_DATA = *buff++; } #else i=256; while(i--) - *MP_DATA = *buff++; + *MP_DATA = *buff++; #endif } #if defined _CF_USE_DMA && defined NDS // Wait for end of transfer before returning while(DMA3_CR & DMA_BUSY); #endif - + return true; } @@ -314,7 +314,7 @@ bool MPCF_WriteSectors (u32 sector, u8 numSecs, void* buffer) MPCF_Shutdown unload the GBAMP CF interface -----------------------------------------------------------------*/ -bool MPCF_Shutdown(void) +bool MPCF_Shutdown(void) { return MPCF_ClearStatus() ; } diff --git a/backends/platform/ds/arm9/source/fat/io_mpcf.h b/backends/platform/ds/arm9/source/fat/io_mpcf.h index 58cab41b4c..8ec8859097 100644 --- a/backends/platform/ds/arm9/source/fat/io_mpcf.h +++ b/backends/platform/ds/arm9/source/fat/io_mpcf.h @@ -1,5 +1,5 @@ /* - io_mpcf.h + io_mpcf.h Hardware Routines for reading a compact flash card using the GBA Movie Player @@ -24,7 +24,7 @@ extern LPIO_INTERFACE MPCF_GetInterface(void) ; #endif // define IO_MPCF_H /* - io_mpcf.h + io_mpcf.h Hardware Routines for reading a compact flash card using the GBA Movie Player diff --git a/backends/platform/ds/arm9/source/fat/io_njsd.c b/backends/platform/ds/arm9/source/fat/io_njsd.c index fbb223d560..12388da8e9 100644 --- a/backends/platform/ds/arm9/source/fat/io_njsd.c +++ b/backends/platform/ds/arm9/source/fat/io_njsd.c @@ -3,11 +3,11 @@ Hardware Routines for reading an SD card using a NinjaDS SD adapter. - + Original code supplied by NinjaMod - + Copyright (c) 2006 Michael "Chishm" Chisholm - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -28,7 +28,7 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - + 2006-08-05 - Chishm * First release */ @@ -84,7 +84,7 @@ static u32 _NJSD_relativeCardAddress = 0; static inline bool _NJSD_waitIRQ(void) { /*#ifdef _NJSD_SYNC int i = IRQ_TIMEOUT; - while (!(REG_IF & 0x100000) && --i); + while (!(REG_IF & 0x100000) && --i); REG_IF = 0x100000; if (i <= 0) { return false; @@ -96,7 +96,7 @@ static inline bool _NJSD_waitIRQ(void) { //if (!(REG_IME & 1)) //{ // irq's disabled... - while (!(REG_IF & 0x100000) && (!(_NJSD_irqFlag)) && --i); + while (!(REG_IF & 0x100000) && (!(_NJSD_irqFlag)) && --i); _NJSD_irqFlag = 0; REG_IF = 0x100000; if (i <= 0) { @@ -106,7 +106,7 @@ static inline bool _NJSD_waitIRQ(void) { } //} else { // irq's enabled - // while (!(_NJSD_irqFlag) && --i); + // while (!(_NJSD_irqFlag) && --i); // _NJSD_irqFlag = 0; // REG_IF = 0x100000; // if (i <= 0) { @@ -118,8 +118,8 @@ static inline bool _NJSD_waitIRQ(void) { //#endif } -static inline void _NJSD_writeCardCommand - (u8 cmd0, u8 cmd1, u8 cmd2, u8 cmd3, u8 cmd4, u8 cmd5, u8 cmd6, u8 cmd7) +static inline void _NJSD_writeCardCommand + (u8 cmd0, u8 cmd1, u8 cmd2, u8 cmd3, u8 cmd4, u8 cmd5, u8 cmd6, u8 cmd7) { CARD_COMMAND[0] = cmd0; CARD_COMMAND[1] = cmd1; @@ -142,7 +142,7 @@ static bool _NJSD_reset (void) { if (i <= 0) { return false; } - + return true; } @@ -179,7 +179,7 @@ static bool _NJSD_sendCMDR (int speed, u8 *rsp_buf, int type, u8 cmd, u32 param) REG_IME = 0; #endif - REG_IE &= ~0x100000; + REG_IE &= ~0x100000; REG_IF = 0x100000; CARD_CR1H = CARD_CR1_ENABLE; @@ -191,7 +191,7 @@ static bool _NJSD_sendCMDR (int speed, u8 *rsp_buf, int type, u8 cmd, u32 param) } else { CARD_COMMAND[0] = 0xF0 | (speed << 2) | 0 | (1 << 1); } - + CARD_COMMAND[1] = (type & 0x40) | ((( type >> 2) & 7) << 3); CARD_COMMAND[2] = 0x40 | cmd; CARD_COMMAND[3] = (param>>24) & 0xFF; @@ -301,7 +301,7 @@ static bool _NJSD_writeSector (u8 *buffer, u8 *crc_buf, u32 offset) { } - REG_IE &= ~0x100000; + REG_IE &= ~0x100000; REG_IF = 0x100000; CARD_CR1H = CARD_CR1_ENABLE; @@ -334,7 +334,7 @@ static bool _NJSD_writeSector (u8 *buffer, u8 *crc_buf, u32 offset) { i++; } } while (CARD_CR2 & CARD_BUSY); - + i = WRITE_TIMEOUT; responseBuffer[3] = 0; do { @@ -352,7 +352,7 @@ static bool _NJSD_writeSector (u8 *buffer, u8 *crc_buf, u32 offset) { #ifdef _NJSD_SYNC REG_IME = old_REG_IME; #endif - + return true; } @@ -365,12 +365,12 @@ static bool _NJSD_sendCLK (int speed, int count) { REG_IME = 0; #endif - REG_IE &= ~0x100000; + REG_IE &= ~0x100000; REG_IF = 0x100000; //CARD_CR1H = CARD_CR1_ENABLE; // | CARD_CR1_IRQ; _NJSD_writeCardCommand (0xE0 | ((speed & 3) << 2), 0, (count - 1), 0, 0, 0, 0, 0); - + CARD_CR2 = _NJSD_cardFlags; i = COMMAND_TIMEOUT; while ((CARD_CR2 & CARD_BUSY) && --i); @@ -404,7 +404,7 @@ static bool _NJSD_sendCMDN (int speed, u8 cmd, u32 param) { REG_IME = 0; #endif - REG_IE &= ~0x100000; + REG_IE &= ~0x100000; REG_IF = 0x100000; CARD_CR1H = CARD_CR1_ENABLE; // | CARD_CR1_IRQ; @@ -438,22 +438,22 @@ static bool _NJSD_sendCMDN (int speed, u8 cmd, u32 param) { static bool _NJSD_cardInit (void) { u8 responseBuffer[17]; int i; - + // If the commands succeed the first time, assume they'll always succeed if (! _NJSD_sendCLK (SD_CLK_200KHz, 256) ) return false; if (! _NJSD_sendCMDN (SD_CLK_200KHz, GO_IDLE_STATE, 0) ) return false; _NJSD_sendCLK (SD_CLK_200KHz, 8); - + _NJSD_sendCLK (SD_CLK_200KHz, 256); _NJSD_sendCMDN (SD_CLK_200KHz, GO_IDLE_STATE, 0); _NJSD_sendCLK (SD_CLK_200KHz, 8); - + for (i = 0; i < MAX_STARTUP_TRIES ; i++) { _NJSD_sendCMDR (SD_CLK_200KHz, responseBuffer, SD_RSP_48, APP_CMD, 0); - if ( + if ( _NJSD_sendCMDR (SD_CLK_200KHz, responseBuffer, SD_RSP_48, SD_APP_OP_COND, SD_OCR_VALUE) && ((responseBuffer[1] & 0x80) != 0)) - { + { // Card is ready to receive commands now break; } @@ -461,10 +461,10 @@ static bool _NJSD_cardInit (void) { if (i >= MAX_STARTUP_TRIES) { return false; } - + // The card's name, as assigned by the manufacturer _NJSD_sendCMDR (SD_CLK_200KHz, responseBuffer, SD_RSP_136, ALL_SEND_CID, 0); - + // Get a new address for (i = 0; i < MAX_STARTUP_TRIES ; i++) { _NJSD_sendCMDR (SD_CLK_200KHz, responseBuffer, SD_RSP_48, SEND_RELATIVE_ADDR, 0); @@ -479,17 +479,17 @@ static bool _NJSD_cardInit (void) { // Some cards won't go to higher speeds unless they think you checked their capabilities _NJSD_sendCMDR (SD_CLK_200KHz, responseBuffer, SD_RSP_136, SEND_CSD, _NJSD_relativeCardAddress); - + // Only this card should respond to all future commands _NJSD_sendCMDR (SD_CLK_200KHz, responseBuffer, SD_RSP_48, SELECT_CARD, _NJSD_relativeCardAddress); - + // Set a 4 bit data bus _NJSD_sendCMDR (SD_CLK_200KHz, responseBuffer, SD_RSP_48, APP_CMD, _NJSD_relativeCardAddress); _NJSD_sendCMDR (SD_CLK_200KHz, responseBuffer, SD_RSP_48, SET_BUS_WIDTH, 2); // 4-bit mode. // Use 512 byte blocks _NJSD_sendCMDR (SD_CLK_200KHz, responseBuffer, SD_RSP_48, SET_BLOCKLEN, 512); // 512 byte blocks - + return true; } @@ -521,7 +521,7 @@ bool _NJSD_startup(void) { return false; } return true; -} +} bool _NJSD_writeSectors (u32 sector, u32 numSectors, const void* buffer) { @@ -531,7 +531,7 @@ bool _NJSD_writeSectors (u32 sector, u32 numSectors, const void* buffer) { while (numSectors--) { _SD_CRC16 ( data, BYTES_PER_READ, crc); - + if (! _NJSD_writeSector (data, crc, offset)) { return false; } @@ -549,7 +549,7 @@ bool _NJSD_readSectors (u32 sector, u32 numSectors, void* buffer) { #ifdef _NJSD_SYNC u32 old_REG_IME; #endif - + u8* tbuf = (u8*)buffer; if (numSectors == 0) { @@ -573,7 +573,7 @@ bool _NJSD_readSectors (u32 sector, u32 numSectors, void* buffer) { if (!_NJSD_waitIRQ ()) { #ifdef _NJSD_SYNC REG_IME = old_REG_IME; -#endif +#endif return false; } } @@ -586,10 +586,10 @@ bool _NJSD_readSectors (u32 sector, u32 numSectors, void* buffer) { if (!_NJSD_waitIRQ ()) { #ifdef _NJSD_SYNC REG_IME = old_REG_IME; -#endif +#endif return false; } - + if (((int)buffer & 0x03) != 0){ cardPolledTransfer (0xA1406000, tmp, BYTES_PER_READ, (u8*)_NJSD_read_cmd); memcpy (tbuf + (numSectors - 1) * BYTES_PER_READ, tmp, BYTES_PER_READ); @@ -618,7 +618,7 @@ bool _NJSD_readSectors (u32 sector, u32 numSectors, void* buffer) { #ifdef _NJSD_SYNC u32 old_REG_IME; #endif - + u8* tbuf = (u8*)buffer; if (numSectors == 0) { @@ -637,7 +637,7 @@ bool _NJSD_readSectors (u32 sector, u32 numSectors, void* buffer) { if (!_NJSD_waitIRQ ()) { #ifdef _NJSD_SYNC REG_IME = old_REG_IME; -#endif +#endif return false; } } @@ -645,10 +645,10 @@ bool _NJSD_readSectors (u32 sector, u32 numSectors, void* buffer) { if (!_NJSD_waitIRQ ()) { #ifdef _NJSD_SYNC REG_IME = old_REG_IME; -#endif +#endif return false; } - + cardPolledTransfer (0xA1406000, (u32*)(tbuf + (numSectors - 1) * BYTES_PER_READ), BYTES_PER_READ, (u8*)_NJSD_read_cmd); } else { _NJSD_sendCMDR (_NJSD_speed, NULL, SD_RSP_STREAM, READ_SINGLE_BLOCK, sector * BYTES_PER_READ); @@ -678,4 +678,4 @@ LPIO_INTERFACE NJSD_GetInterface(void) { } ; #endif // defined NDS -#endif
\ No newline at end of file +#endif diff --git a/backends/platform/ds/arm9/source/fat/io_njsd.h b/backends/platform/ds/arm9/source/fat/io_njsd.h index a297cda112..dce469cad6 100644 --- a/backends/platform/ds/arm9/source/fat/io_njsd.h +++ b/backends/platform/ds/arm9/source/fat/io_njsd.h @@ -1,11 +1,11 @@ /* - io_njsd.h + io_njsd.h Hardware Routines for reading an SD card using a NinjaDS SD adapter. Copyright (c) 2006 Michael "Chishm" Chisholm - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/backends/platform/ds/arm9/source/fat/io_nmmc.c b/backends/platform/ds/arm9/source/fat/io_nmmc.c index a29c26e43a..261096a27b 100644 --- a/backends/platform/ds/arm9/source/fat/io_nmmc.c +++ b/backends/platform/ds/arm9/source/fat/io_nmmc.c @@ -13,10 +13,10 @@ project at chishm@hotmail.com See gba_nds_fat.txt for help and license details. - + 2006-02-09 - www.neoflash.com: * First stable release - + 2006-02-13 - Chishm * Added ReadMK2Config function * Added read config test to init function so no unnecessary card commands are sent @@ -87,7 +87,7 @@ void Neo_WriteMK2Config(u8 config) { Neo_EnableEEPROM(false); } -u8 Neo_ReadMK2Config(void) +u8 Neo_ReadMK2Config(void) { u8 config; Neo_EnableEEPROM(true); @@ -104,7 +104,7 @@ u8 Neo_ReadMK2Config(void) u8 selectMMC_command [8] = {0xFF, 0x00, 0x6A, 0xDF, 0x37, 0x59, 0x33, 0xA3}; -void Neo_SelectMMC (u8 dataByte) +void Neo_SelectMMC (u8 dataByte) { selectMMC_command[1] = dataByte; // Set enable / disable byte cardWriteCommand (selectMMC_command); // Send "5. Use the EEPROM CS to access the MK2 MMC/SD card" @@ -154,12 +154,12 @@ bool Neo_CheckMMCResponse( u8 response, u8 mask ) { bool Neo_InitMMC() { Neo_MK2GameMode(); Neo_WriteMK2Config( MK2_CONFIG_ZIP_RAM_CLOSE | MK2_CONFIG_GAME_FLASH_CLOSE); - + // Make sure the configuration was accepted if (Neo_ReadMK2Config() != (MK2_CONFIG_ZIP_RAM_CLOSE | MK2_CONFIG_GAME_FLASH_CLOSE)) { return false; // If not, then it wasn't initialised properly } - + return true; } @@ -167,7 +167,7 @@ bool Neo_InitMMC() { bool NMMC_IsInserted(void) { int i; - + Neo_EnableMMC( true ); // Open SPI port to MMC card Neo_SendMMCCommand(MMC_SEND_CSD, 0); if( Neo_CheckMMCResponse( 0x00, 0xFF ) == false ) { // Make sure no errors occured @@ -183,13 +183,13 @@ bool NMMC_IsInserted(void) { for (i = 0; i < 28; i++) { Neo_SPI(0xff); } - + return true; } bool NMMC_ClearStatus (void) { u32 i; - + Neo_EnableMMC( true ); // Open SPI port to MMC card for (i = 0; i < 10; i++) { Neo_SPI(0xFF); // Send 10 0xFF bytes to MMC card @@ -224,14 +224,14 @@ bool NMMC_StartUp(void) { return false; } Neo_EnableMMC( true ); // Open SPI port to MMC card - + // Set block length Neo_SendMMCCommand(MMC_SET_BLOCKLEN, BYTE_PER_READ ); if( Neo_CheckMMCResponse( 0x00, 0xFF ) == false ) { // Make sure no errors occured Neo_EnableMMC( false ); return false; } - + // Check if we can use a higher SPI frequency Neo_SendMMCCommand(MMC_SEND_CSD, 0); if( Neo_CheckMMCResponse( 0x00, 0xFF ) == false ) { // Make sure no errors occured @@ -252,77 +252,77 @@ bool NMMC_StartUp(void) { if ((transSpeed & 0xf0) >= 0x30) { spi_freq = 0; } - + Neo_EnableMMC( false ); return true; -} +} -bool NMMC_WriteSectors (u32 sector, u8 numSecs, void* buffer) +bool NMMC_WriteSectors (u32 sector, u8 numSecs, void* buffer) { u32 i; u8 *p=buffer; - + int totalSecs = (numSecs == 0) ? 256 : numSecs; sector *= BYTE_PER_READ; - + Neo_EnableMMC( true ); // Open SPI port to MMC card Neo_SendMMCCommand( 25, sector ); if( Neo_CheckMMCResponse( 0x00, 0xFF ) == false ) { // Make sure no errors occured Neo_EnableMMC( false ); return false; } - + while (totalSecs--) { Neo_SPI( 0xFC ); // Send Start Block token for( i = 0; i < BYTE_PER_READ; i++ ) // Send a block of data Neo_SPI( *p++ ); Neo_SPI( 0xFF ); // Send fake CRC16 Neo_SPI( 0xFF ); // Send fake CRC16 - + if( ( Neo_SPI( 0xFF ) & 0x0F ) != 0x05 ) { // Make sure the block was accepted Neo_EnableMMC( false ); return false; } while( Neo_SPI( 0xFF ) == 0x00 ); // Wait for the block to be written } - + // Stop transmission block Neo_SPI( 0xFD ); // Send Stop Transmission Block token for( i = 0; i < BYTE_PER_READ; i++ ) // Send a block of fake data Neo_SPI( 0xFF ); Neo_SPI( 0xFF ); // Send fake CRC16 Neo_SPI( 0xFF ); // Send fake CRC16 - + Neo_SPI (0xFF); // Send 8 clocks while( Neo_SPI( 0xFF ) == 0x00 ); // Wait for the busy signal to clear - - for ( i = 0; i < 0x10; i++) { + + for ( i = 0; i < 0x10; i++) { Neo_SPI (0xFF); // Send clocks for the MMC card to finish what it's doing } - + Neo_EnableMMC( false ); // Close SPI port to MMC card return true; } -bool NMMC_ReadSectors (u32 sector, u8 numSecs, void* buffer) +bool NMMC_ReadSectors (u32 sector, u8 numSecs, void* buffer) { u32 i; u8 *p=buffer; - + int totalSecs = (numSecs == 0) ? 256 : numSecs; sector *= BYTE_PER_READ; - + Neo_EnableMMC( true ); // Open SPI port to MMC card - + while (totalSecs--) { Neo_SendMMCCommand(MMC_READ_BLOCK, sector ); if( Neo_CheckMMCResponse( 0x00, 0xFF ) == false ) { // Make sure no errors occured Neo_EnableMMC( false ); return false; } - + if( Neo_CheckMMCResponse( 0xFE, 0xFF ) == false ) { // Check for Start Block token Neo_EnableMMC( false ); return false; @@ -333,7 +333,7 @@ bool NMMC_ReadSectors (u32 sector, u8 numSecs, void* buffer) Neo_SPI( 0xFF ); // Ignore CRC16 sector += BYTE_PER_READ; } - + Neo_EnableMMC( false ); // Close SPI port to MMC card return true; } diff --git a/backends/platform/ds/arm9/source/fat/io_nmmc.h b/backends/platform/ds/arm9/source/fat/io_nmmc.h index 5244d21868..0249e3a864 100644 --- a/backends/platform/ds/arm9/source/fat/io_nmmc.h +++ b/backends/platform/ds/arm9/source/fat/io_nmmc.h @@ -1,5 +1,5 @@ /* - io_NMMC.h + io_NMMC.h Hardware Routines for reading an SD or MMC card using a Neoflash MK2 or MK3. @@ -26,7 +26,7 @@ extern LPIO_INTERFACE NMMC_GetInterface(void) ; #endif // define IO_NMMC_H /* - io_NMMC.h + io_NMMC.h Hardware Routines for reading an SD or MMC card using a Neoflash MK2 or MK3. diff --git a/backends/platform/ds/arm9/source/fat/io_sccf.c b/backends/platform/ds/arm9/source/fat/io_sccf.c index 0c77f4673c..bda628fdaa 100644 --- a/backends/platform/ds/arm9/source/fat/io_sccf.c +++ b/backends/platform/ds/arm9/source/fat/io_sccf.c @@ -57,7 +57,7 @@ bool SCCF_Unlock(void) temp = (~temp & 0xFF); return (CF_REG_LBA1 == temp); #undef CF_REG_LBA1 -} +} bool SCCF_Shutdown(void) { return MPCF_ClearStatus() ; diff --git a/backends/platform/ds/arm9/source/fat/io_sccf.h b/backends/platform/ds/arm9/source/fat/io_sccf.h index 961909fbce..2270c4eab1 100644 --- a/backends/platform/ds/arm9/source/fat/io_sccf.h +++ b/backends/platform/ds/arm9/source/fat/io_sccf.h @@ -1,5 +1,5 @@ /* - io_sccf.h + io_sccf.h Hardware Routines for reading a compact flash card using the Supercard CF @@ -24,7 +24,7 @@ extern LPIO_INTERFACE SCCF_GetInterface(void) ; #endif // define IO_SCCF_H /* - io_sccf.h + io_sccf.h Hardware Routines for reading a compact flash card using the Supercard CF diff --git a/backends/platform/ds/arm9/source/fat/io_scsd.c b/backends/platform/ds/arm9/source/fat/io_scsd.c index 9359fefb6d..270691436d 100644 --- a/backends/platform/ds/arm9/source/fat/io_scsd.c +++ b/backends/platform/ds/arm9/source/fat/io_scsd.c @@ -1,8 +1,8 @@ /* io_scsd.c by SaTa. based on io_sccf.c - - + + */ /* @@ -43,7 +43,7 @@ extern void InitSCMode(void); // CF‚Æ“¯‚¶ extern void ReadSector(u16 *buff,u32 sector,u8 ReadNumber); extern void WriteSector(u16 *buff,u32 sector,u8 writeNumber); extern bool MemoryCard_IsInserted(void); // CF‚ƈႤ -// +// /*----------------------------------------------------------------- SCSD_Unlock @@ -55,7 +55,7 @@ bool SCSD_Unlock(void) { InitSCMode(); return MemoryCard_IsInserted(); -} +} bool SCSD_Shutdown(void) { return MPCF_ClearStatus() ; @@ -103,4 +103,4 @@ LPIO_INTERFACE SCSD_GetInterface(void) { return &io_scsd ; } ; -#endif
\ No newline at end of file +#endif diff --git a/backends/platform/ds/arm9/source/fat/io_scsd.h b/backends/platform/ds/arm9/source/fat/io_scsd.h index 75115b8d62..492492f619 100644 --- a/backends/platform/ds/arm9/source/fat/io_scsd.h +++ b/backends/platform/ds/arm9/source/fat/io_scsd.h @@ -1,12 +1,12 @@ /* io_scsd.h by SaTa. based on io_sccf.h - - + + */ /* - io_sccf.h + io_sccf.h Hardware Routines for reading a compact flash card using the GBA Movie Player @@ -26,4 +26,4 @@ // export interface extern LPIO_INTERFACE SCSD_GetInterface(void) ; -#endif // define IO_SCSD_H
\ No newline at end of file +#endif // define IO_SCSD_H diff --git a/backends/platform/ds/arm9/source/fat/io_scsd_asm.s b/backends/platform/ds/arm9/source/fat/io_scsd_asm.s index 498cbb96c2..390d36afeb 100644 --- a/backends/platform/ds/arm9/source/fat/io_scsd_asm.s +++ b/backends/platform/ds/arm9/source/fat/io_scsd_asm.s @@ -1,22 +1,22 @@ .TEXT @--------------------------------sd data-------------------------------- .equ sd_comadd,0x9800000 -.equ sd_dataadd,0x9000000 +.equ sd_dataadd,0x9000000 .equ sd_dataradd,0x9100000 @-----------------viod sd_data_write_s(u16 *buff,u16* crc16buff)------------------- .ALIGN - .GLOBAL sd_data_write_s + .GLOBAL sd_data_write_s .CODE 32 sd_data_write_s: stmfd r13!,{r4-r5} mov r5,#512 mov r2,#sd_dataadd sd_data_write_busy: - ldrh r3,[r2] + ldrh r3,[r2] tst r3,#0x100 beq sd_data_write_busy - ldrh r3,[r2] + ldrh r3,[r2] mov r3,#0 @star bit strh r3,[r2] @@ -24,10 +24,10 @@ sd_data_write_loop: ldrh r3,[r0],#2 add r3,r3,r3,lsl #20 mov r4,r3,lsl #8 - stmia r2,{r3-r4} - - subs r5, r5, #2 - bne sd_data_write_loop + stmia r2,{r3-r4} + + subs r5, r5, #2 + bne sd_data_write_loop cmp r1,#0 movne r0,r1 @@ -38,11 +38,11 @@ sd_data_write_loop: mov r3,#0xff @end bit strh r3,[r2] sd_data_write_loop2: - ldrh r3,[r2] + ldrh r3,[r2] tst r3,#0x100 bne sd_data_write_loop2 - ldmia r2,{r3-r4} + ldmia r2,{r3-r4} ldmfd r13!,{r4-r5} bx r14 @@ -50,7 +50,7 @@ sd_data_write_loop2: @----------void sd_data_read_s(u16 *buff)------------- .ALIGN - .GLOBAL sd_data_read_s + .GLOBAL sd_data_read_s .CODE 32 sd_data_read_s: stmfd r13!,{r4} @@ -61,62 +61,62 @@ sd_data_read_loop1: bne sd_data_read_loop1 mov r2,#512 sd_data_read_loop: - ldmia r1,{r3-r4} + ldmia r1,{r3-r4} mov r3,r4,lsr #16 strh r3 ,[r0],#2 - ldmia r1,{r3-r4} + ldmia r1,{r3-r4} mov r3,r4,lsr #16 strh r3 ,[r0],#2 - ldmia r1,{r3-r4} + ldmia r1,{r3-r4} mov r3,r4,lsr #16 strh r3 ,[r0],#2 - ldmia r1,{r3-r4} + ldmia r1,{r3-r4} mov r3,r4,lsr #16 strh r3 ,[r0],#2 - ldmia r1,{r3-r4} + ldmia r1,{r3-r4} mov r3,r4,lsr #16 strh r3 ,[r0],#2 - ldmia r1,{r3-r4} + ldmia r1,{r3-r4} mov r3,r4,lsr #16 strh r3 ,[r0],#2 - ldmia r1,{r3-r4} + ldmia r1,{r3-r4} mov r3,r4,lsr #16 strh r3 ,[r0],#2 - ldmia r1,{r3-r4} + ldmia r1,{r3-r4} mov r3,r4,lsr #16 strh r3 ,[r0],#2 - subs r2, r2, #16 - bne sd_data_read_loop + subs r2, r2, #16 + bne sd_data_read_loop ldmia r1,{r3-r4} @crc 16 - ldmia r1,{r3-r4} - ldmia r1,{r3-r4} - ldmia r1,{r3-r4} + ldmia r1,{r3-r4} + ldmia r1,{r3-r4} + ldmia r1,{r3-r4} ldrh r3,[r1] @end bit - ldmfd r13!,{r4} + ldmfd r13!,{r4} bx r14 @----------end sd_data_read_s------------- @------void sd_com_crc16_s(u16* buff,u16 num,u16* crc16buff) .ALIGN - .GLOBAL sd_crc16_s + .GLOBAL sd_crc16_s .CODE 32 sd_crc16_s: stmfd r13!,{r4-r9} mov r9,r2 - mov r3,#0 - mov r4,#0 - mov r5,#0 - mov r6,#0 + mov r3,#0 + mov r4,#0 + mov r5,#0 + mov r6,#0 ldr r7,=0x80808080 ldr r8,=0x1021 @@ -131,19 +131,19 @@ sd_crc16_loop: eorne r3,r3,r8 tst r2,r7,lsr #24 eorne r3,r3,r8 - + mov r4,r4,lsl #1 tst r4,#0x10000 eorne r4,r4,r8 tst r2,r7,lsr #25 eorne r4,r4,r8 - + mov r5,r5,lsl #1 tst r5,#0x10000 eorne r5,r5,r8 tst r2,r7,lsr #26 eorne r5,r5,r8 - + mov r6,r6,lsl #1 tst r6,#0x10000 eorne r6,r6,r8 @@ -152,7 +152,7 @@ sd_crc16_loop: mov r7,r7,ror #4 subs r1,r1,#4 - bne sd_crc16_loop + bne sd_crc16_loop mov r2,r9 mov r8,#16 @@ -184,7 +184,7 @@ sd_crc16_write_data: @--------------u8 sd_crc7_s(u16* buff,u16 num)---------------------------- .ALIGN - .GLOBAL sd_crc7_s + .GLOBAL sd_crc7_s .CODE 32 sd_crc7_s: stmfd r13!,{r4} @@ -206,7 +206,7 @@ sd_crc7_loop: mov r4,r4,ror #1 subs r1,r1,#1 - bne sd_crc7_loop + bne sd_crc7_loop mov r3,r3,lsl #1 add r0,r3,#1 @@ -216,7 +216,7 @@ sd_crc7_loop: @--------------sd_com_read_s(u16* buff,u32 num)------------------ .ALIGN - .GLOBAL sd_com_read_s + .GLOBAL sd_com_read_s .CODE 32 sd_com_read_s: @@ -229,8 +229,8 @@ sd_com_read_loop1: sd_com_read_loop: ldmia r2,{r3-r6} - subs r1, r1, #1 - bne sd_com_read_loop + subs r1, r1, #1 + bne sd_com_read_loop ldmfd r13!,{r4-r6} bx r14 @--------------end sd_com_read_s------------------ @@ -242,14 +242,14 @@ sd_com_read_loop: .CODE 32 sd_com_write_s: stmfd r13!,{r4-r6} - + mov r2,#sd_comadd sd_com_write_busy: - ldrh r3,[r2] + ldrh r3,[r2] tst r3,#0x1 beq sd_com_write_busy - ldrh r3,[r2] + ldrh r3,[r2] sd_com_write_loop: ldrb r3,[r0],#1 @@ -257,9 +257,9 @@ sd_com_write_loop: mov r4,r3,lsl #2 mov r5,r4,lsl #2 mov r6,r5,lsl #2 - stmia r2,{r3-r6} - subs r1, r1, #1 - bne sd_com_write_loop + stmia r2,{r3-r6} + subs r1, r1, #1 + bne sd_com_write_loop ldmfd r13!,{r4-r6} bx r14 @@ -267,7 +267,7 @@ sd_com_write_loop: @-----------------void send_clk(u32 num)--------- .ALIGN - .GLOBAL send_clk + .GLOBAL send_clk .CODE 32 send_clk: @@ -281,7 +281,7 @@ send_clk_loop1: @---------------------------void SDCommand(u8 command,u8 num,u32 sector)-------------------- .ALIGN - .GLOBAL SDCommand + .GLOBAL SDCommand .CODE 32 @void SDCommand(u8 command,u8 num,u32 sector ) @{ @@ -338,12 +338,12 @@ SDCommand: @ register u16 i,j; @ i=readnum; @ sectno<<=9; -@ SDCommand(18,0,sector); +@ SDCommand(18,0,sector); @ for (j=0;j<i ; j++) @ { @ sd_data_read_s((u32)buff+j*512); @ } -@ SDCommand(12,0,0); +@ SDCommand(12,0,0); @ get_resp(); @ send_clk(0x10); @ @@ -363,7 +363,7 @@ beginforj_ReadSector: cmp r6,r5 bge endforj_ReadSector mov r0,r4 - add r0,r0,r6,lsl #9 + add r0,r0,r6,lsl #9 bl sd_data_read_s add r6,r6,#1 b beginforj_ReadSector @@ -408,17 +408,17 @@ get_resp: @ @ sectno<<=9; @ -@ SDCommand(25,0,sector); +@ SDCommand(25,0,sector); @ get_resp(); -@ send_clk(0x10); +@ send_clk(0x10); @ @ for (j=0;j<i ; j++) @ { @ sd_crc16_s((u32)(u32)buff+j*512,512,(u32)crc16); @ sd_data_write_s((u32)buff+j*512,(u32)crc16); -@ send_clk(0x10); +@ send_clk(0x10); @ } -@ SDCommand(12,0,0); +@ SDCommand(12,0,0); @ get_resp(); @ send_clk(0x10); @ while((*(u16*)sd_dataadd &0x0100)==0); @@ -451,7 +451,7 @@ beginforj_WriteSector: add r2,r13,#4 bl sd_crc16_s mov r0,r4 - add r0,r0,r6,lsl #9 + add r0,r0,r6,lsl #9 add r1,r13,#4 bl sd_data_write_s mov r0,#0x10 @@ -481,7 +481,7 @@ beginwhile_WriteSector: .GLOBAL InitSCMode .CODE 32 InitSCMode: - mvn r0,#0x0F6000000 + mvn r0,#0x0F6000000 sub r0,r0,#0x01 mov r1,#0x0A500 add r1,r1,#0x5A diff --git a/backends/platform/ds/arm9/source/fat/io_sd_common.c b/backends/platform/ds/arm9/source/fat/io_sd_common.c index 0a38e6277c..ade9df0d80 100644 --- a/backends/platform/ds/arm9/source/fat/io_sd_common.c +++ b/backends/platform/ds/arm9/source/fat/io_sd_common.c @@ -5,10 +5,10 @@ Common SD card routines - SD routines partially based on sd.s by Romman + SD routines partially based on sd.s by Romman Copyright (c) 2006 Michael "Chishm" Chisholm - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -29,7 +29,7 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - + 2006-08-07 - Chishm * Moved the SD initialization to a common function * Increased timeouts for slower cards @@ -61,10 +61,10 @@ u8 _SD_CRC7(u8* data, int cnt) { } crc = (crc << 1) | 1; return(crc); -} +} /* -Calculates the CRC16 for a sector of data. Calculates it +Calculates the CRC16 for a sector of data. Calculates it as 4 separate lots, merged into one buffer. This is used for 4 SD data lines, not for 1 data line alone. */ @@ -79,53 +79,53 @@ void _SD_CRC16 (u8* buff, int buffLength, u8* crc16buff) { b = 0; // r4 c = 0; // r5 d = 0; // r6 - + buffLength = buffLength * 8; - - + + do { if (bitPattern & 0x80) dataByte = *buff++; - + a = a << 1; if ( a & 0x10000) a ^= crcConst; if (dataByte & (bitPattern >> 24)) a ^= crcConst; - + b = b << 1; if (b & 0x10000) b ^= crcConst; if (dataByte & (bitPattern >> 25)) b ^= crcConst; - + c = c << 1; if (c & 0x10000) c ^= crcConst; if (dataByte & (bitPattern >> 26)) c ^= crcConst; - + d = d << 1; if (d & 0x10000) d ^= crcConst; if (dataByte & (bitPattern >> 27)) d ^= crcConst; - + bitPattern = (bitPattern >> 4) | (bitPattern << 28); } while (buffLength-=4); - + count = 16; // r8 - + do { bitPattern = bitPattern << 4; if (a & 0x8000) bitPattern |= 8; if (b & 0x8000) bitPattern |= 4; if (c & 0x8000) bitPattern |= 2; if (d & 0x8000) bitPattern |= 1; - + a = a << 1; b = b << 1; c = c << 1; d = d << 1; - + count--; - + if (!(count & 0x01)) { *crc16buff++ = (u8)(bitPattern & 0xff); } } while (count != 0); - + return; } @@ -136,20 +136,20 @@ cmd_17byte_response: a pointer to a function that sends the SD card a command an use4bitBus: initialise card to use a 4 bit data bus when communicating with the card RCA: a pointer to the location to store the card's Relative Card Address, preshifted up by 16 bits. */ -bool _SD_InitCard (_SD_FN_CMD_6BYTE_RESPONSE cmd_6byte_response, +bool _SD_InitCard (_SD_FN_CMD_6BYTE_RESPONSE cmd_6byte_response, _SD_FN_CMD_17BYTE_RESPONSE cmd_17byte_response, bool use4bitBus, u32 *RCA) { u8 responseBuffer[17] = {0}; int i; - + for (i = 0; i < MAX_STARTUP_TRIES ; i++) { cmd_6byte_response (responseBuffer, APP_CMD, 0); - if ( + if ( cmd_6byte_response (responseBuffer, SD_APP_OP_COND, SD_OCR_VALUE) && ((responseBuffer[1] & 0x80) != 0)) - { + { // Card is ready to receive commands now break; } @@ -157,10 +157,10 @@ bool _SD_InitCard (_SD_FN_CMD_6BYTE_RESPONSE cmd_6byte_response, if (i >= MAX_STARTUP_TRIES) { return false; } - + // The card's name, as assigned by the manufacturer cmd_17byte_response (responseBuffer, ALL_SEND_CID, 0); - + // Get a new address for (i = 0; i < MAX_STARTUP_TRIES ; i++) { cmd_6byte_response (responseBuffer, SEND_RELATIVE_ADDR, 0); @@ -175,10 +175,10 @@ bool _SD_InitCard (_SD_FN_CMD_6BYTE_RESPONSE cmd_6byte_response, // Some cards won't go to higher speeds unless they think you checked their capabilities cmd_17byte_response (responseBuffer, SEND_CSD, *RCA); - + // Only this card should respond to all future commands cmd_6byte_response (responseBuffer, SELECT_CARD, *RCA); - + if (use4bitBus) { // Set a 4 bit data bus cmd_6byte_response (responseBuffer, APP_CMD, *RCA); @@ -187,7 +187,7 @@ bool _SD_InitCard (_SD_FN_CMD_6BYTE_RESPONSE cmd_6byte_response, // Use 512 byte blocks cmd_6byte_response (responseBuffer, SET_BLOCKLEN, 512); // 512 byte blocks - + // Wait until card is ready for data i = 0; do { @@ -196,7 +196,7 @@ bool _SD_InitCard (_SD_FN_CMD_6BYTE_RESPONSE cmd_6byte_response, } i++; } while (!cmd_6byte_response (responseBuffer, SEND_STATUS, *RCA) && ((responseBuffer[3] & 0x1f) != ((SD_STATE_TRAN << 1) | READY_FOR_DATA))); - + return true; } diff --git a/backends/platform/ds/arm9/source/fat/io_sd_common.h b/backends/platform/ds/arm9/source/fat/io_sd_common.h index 09abffab39..8962d88890 100644 --- a/backends/platform/ds/arm9/source/fat/io_sd_common.h +++ b/backends/platform/ds/arm9/source/fat/io_sd_common.h @@ -8,7 +8,7 @@ SD routines partially based on sd.s by Romman Copyright (c) 2006 Michael "Chishm" Chisholm - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -32,7 +32,7 @@ 2006-07-11 - Chishm * Original release - + 2006-07-28 - Chishm * Changed voltage range that the SD card can use */ @@ -76,7 +76,7 @@ #define SD_STATE_IDENT 2 // Identification state, after ALL_SEND_CID #define SD_STATE_STBY 3 // Standby state, when card is deselected #define SD_STATE_TRAN 4 // Transfer state, after card is selected and ready for data transfer -#define SD_STATE_DATA 5 // +#define SD_STATE_DATA 5 // #define SD_STATE_RCV 6 // Receive data state #define SD_STATE_PRG 7 // Programming state #define SD_STATE_DIS 8 // Disconnect state @@ -85,7 +85,7 @@ #define READY_FOR_DATA 1 // bit 8 in card status /* -Calculate the CRC7 of a command and return it preshifted with +Calculate the CRC7 of a command and return it preshifted with an end bit added */ extern u8 _SD_CRC7(u8* data, int size); @@ -106,7 +106,7 @@ cmd_17byte_response: a pointer to a function that sends the SD card a command an use4bitBus: initialise card to use a 4 bit data bus when communicating with the card RCA: a pointer to the location to store the card's Relative Card Address, preshifted up by 16 bits. */ -extern bool _SD_InitCard (_SD_FN_CMD_6BYTE_RESPONSE cmd_6byte_response, +extern bool _SD_InitCard (_SD_FN_CMD_6BYTE_RESPONSE cmd_6byte_response, _SD_FN_CMD_17BYTE_RESPONSE cmd_17byte_response, bool use4bitBus, u32 *RCA); diff --git a/backends/platform/ds/arm9/source/gbampsave.cpp b/backends/platform/ds/arm9/source/gbampsave.cpp index b03a1334f7..fbe0c69944 100644 --- a/backends/platform/ds/arm9/source/gbampsave.cpp +++ b/backends/platform/ds/arm9/source/gbampsave.cpp @@ -92,40 +92,40 @@ uint32 GBAMPSaveFile::write(const void *buf, uint32 size) { memcpy(buffer + bufferPos, buf, size); bufferPos += size; - + saveSize += size; /* int pos = 0; - + int rest = SAVE_BUFFER_SIZE - bufferPos; memcpy(buffer + bufferPos, buf, rest); bufferPos = 512; pos += rest; - flushSaveBuffer(); + flushSaveBuffer(); size -= rest; // consolePrintf("First section: %d\n", rest); - + while (size >= 512) { DS::std_fwrite(((char *) (buf)) + pos, 1, 512, handle); size -= 512; pos += 512; // consolePrintf("Full chunk, %d left ", size); } - + bufferPos = 0; memcpy(buffer + bufferPos, ((char *) (buf)) + pos, size); bufferPos += size; // consolePrintf("%d left in buffer ", bufferPos);*/ - + } else { - + memcpy(buffer + bufferPos, buf, size); bufferPos += size; - + saveSize += size; } - + // if ((size > 100) || (size <= 0)) consolePrintf("Write %d bytes\n", size); return size; } @@ -145,41 +145,41 @@ GBAMPSaveFileManager::~GBAMPSaveFileManager() { GBAMPSaveFile* GBAMPSaveFileManager::openSavefile(char const* name, bool saveOrLoad) { char fileSpec[128]; - + strcpy(fileSpec, getSavePath()); - + if (fileSpec[strlen(fileSpec) - 1] == '/') { sprintf(fileSpec, "%s%s", getSavePath(), name); } else { sprintf(fileSpec, "%s/%s", getSavePath(), name); } - + // consolePrintf(fileSpec); GBAMPSaveFile* sf = new GBAMPSaveFile(fileSpec, saveOrLoad); if (sf->isOpen()) { - return sf; + return sf; } else { delete sf; - return NULL; + return NULL; } } -Common::StringList GBAMPSaveFileManager::listSavefiles(const char *pattern) { +Common::StringList GBAMPSaveFileManager::listSavefiles(const char *pattern) { enum { TYPE_NO_MORE = 0, TYPE_FILE = 1, TYPE_DIR = 2 }; char name[256]; - + DS::std_cwd((char *) getSavePath()); // consolePrintf("Save path: '%s', pattern: '%s'\n", getSavePath(),pattern); - + int fileType = FAT_FindFirstFileLFN(name); Common::StringList list; - - + + do { - + if (fileType == TYPE_FILE) { FAT_GetLongFilename(name); @@ -187,18 +187,18 @@ Common::StringList GBAMPSaveFileManager::listSavefiles(const char *pattern) { for (int r = 0; r < strlen(name); r++) { name[r] = tolower(name[r]); } - - + + if (Common::matchString(name, pattern)) { list.push_back(name); } } } while ((fileType = FAT_FindNextFileLFN(name))); - + FAT_chdir("/"); return list; -} +} diff --git a/backends/platform/ds/arm9/source/gbampsave.h b/backends/platform/ds/arm9/source/gbampsave.h index b46c9bd53b..40dcde0b26 100644 --- a/backends/platform/ds/arm9/source/gbampsave.h +++ b/backends/platform/ds/arm9/source/gbampsave.h @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ - + #ifndef _GBAMPSAVE_H_ #define _GBAMPSAVE_H_ @@ -39,19 +39,19 @@ class GBAMPSaveFile : public Common::InSaveFile, public Common::OutSaveFile { public: GBAMPSaveFile(char* name, bool saveOrLoad); virtual ~GBAMPSaveFile(); - + virtual uint32 read(void *buf, uint32 size); virtual uint32 write(const void *buf, uint32 size); - + virtual bool eos() const; virtual void skip(uint32 bytes); virtual uint32 pos() const; virtual uint32 size() const; virtual void seek(int32 pos, int whence); - + void flushSaveBuffer(); - + virtual bool isOpen() const { return handle != 0; } @@ -62,17 +62,17 @@ class GBAMPSaveFileManager : public DefaultSaveFileManager { public: GBAMPSaveFileManager(); ~GBAMPSaveFileManager(); - + // static GBAMPSaveFileManager* instance() { return instancePtr; } GBAMPSaveFile *openSavefile(const char *filename, bool saveOrLoad); - + virtual Common::OutSaveFile* openForSaving(const char* filename) { return openSavefile(filename, true); } virtual Common::InSaveFile* openForLoading(const char* filename) { return openSavefile(filename, false); } - + virtual bool removeSavefile(const char *filename) { return false; } // TODO: Implement this virtual Common::StringList listSavefiles(const char *pattern); - + void deleteFile(char* name); void listFiles(); }; diff --git a/backends/platform/ds/arm9/source/keys.cpp b/backends/platform/ds/arm9/source/keys.cpp index dcec2287b9..8bfc983565 100644 --- a/backends/platform/ds/arm9/source/keys.cpp +++ b/backends/platform/ds/arm9/source/keys.cpp @@ -27,26 +27,26 @@ $Log: keys.c,v $ Revision 1.13 2006/01/12 09:10:47 wntrmute Added key repeat as suggested by pepsiman - + Revision 1.12 2005/11/27 12:30:25 wntrmute reverted to correct hardware REGisters - + Revision 1.11 2005/11/27 07:48:45 joatski Renamed REG_KEYINPUT and REG_KEYCNT back to KEYS and KEYS_CR, as the alternatives are defined in registers_alt.h. Changed function returns to uint32 - + Revision 1.10 2005/11/03 23:38:49 wntrmute don't use enum for key function returns - + Revision 1.9 2005/10/13 16:30:11 dovoto Changed KEYPAD_BITS to a typedef enum, this resolved some issues with multiple redefinition of KEYPAD_BITS (although this error did not allways occur). - + Revision 1.8 2005/10/03 21:21:59 wntrmute use enum types - + Revision 1.7 2005/09/07 18:06:27 wntrmute use new register names - + Revision 1.6 2005/08/23 17:06:10 wntrmute converted all endings to unix @@ -148,4 +148,4 @@ uint32 keysUp(void) { } -} // namespace ds
\ No newline at end of file +} // namespace ds diff --git a/backends/platform/ds/arm9/source/libcartreset/cartreset.c b/backends/platform/ds/arm9/source/libcartreset/cartreset.c index 01ba33736a..6fb906b86d 100644 --- a/backends/platform/ds/arm9/source/libcartreset/cartreset.c +++ b/backends/platform/ds/arm9/source/libcartreset/cartreset.c @@ -43,7 +43,7 @@ bool cartSetMenuMode(u32 _deviceType) tmp = *(vu16*)(0x08800612); tmp = *(vu16*)(0x08000000); tmp = *(vu16*)(0x08801B66); - tmp = *(vu16*)(0x08000000 + (mode << 1)); + tmp = *(vu16*)(0x08000000 + (mode << 1)); tmp = *(vu16*)(0x0800080E); tmp = *(vu16*)(0x08000000); diff --git a/backends/platform/ds/arm9/source/libcartreset/cartreset_nolibfat.h b/backends/platform/ds/arm9/source/libcartreset/cartreset_nolibfat.h index 6a3f045840..ddc4b1d4c2 100644 --- a/backends/platform/ds/arm9/source/libcartreset/cartreset_nolibfat.h +++ b/backends/platform/ds/arm9/source/libcartreset/cartreset_nolibfat.h @@ -53,5 +53,5 @@ void cartExecute(); } #endif -#endif +#endif diff --git a/backends/platform/ds/arm9/source/osystem_ds.cpp b/backends/platform/ds/arm9/source/osystem_ds.cpp index 455327f530..2044448923 100644 --- a/backends/platform/ds/arm9/source/osystem_ds.cpp +++ b/backends/platform/ds/arm9/source/osystem_ds.cpp @@ -63,7 +63,7 @@ int OSystem_DS::timerHandler(int t) tm->handler(); return t; } - + void OSystem_DS::initBackend() { ConfMan.setInt("autosave_period", 0); ConfMan.setBool("FM_medium_quality", true); @@ -72,7 +72,7 @@ void OSystem_DS::initBackend() { _timer = new DSTimerManager; DS::setSoundProc(Audio::Mixer::mixCallback, _mixer); DS::setTimerCallback(&OSystem_DS::timerHandler, 10); - + OSystem::initBackend(); } @@ -135,20 +135,20 @@ void OSystem_DS::setPalette(const byte *colors, uint start, uint num) { int red = *colors; int green = *(colors + 1); int blue = *(colors + 2); - + red >>= 3; green >>= 3; blue >>= 3; - + // if (r != 255) - { + { BG_PALETTE[r] = red | (green << 5) | (blue << 10); if (!DS::getKeyboardEnable()) { BG_PALETTE_SUB[r] = red | (green << 5) | (blue << 10); } } // if (num == 16) consolePrintf("pal:%d r:%d g:%d b:%d\n", r, red, green, blue); - + colors += 4; } } @@ -157,7 +157,7 @@ bool OSystem_DS::grabRawScreen(Graphics::Surface* surf) { surf->create(DS::getGameWidth(), DS::getGameHeight(), 1); // Ensure we copy using 16 bit quantities due to limitation of VRAM addressing - + u16* image = (u16 *) DS::get8BitBackBuffer(); for (int y = 0; y < DS::getGameHeight(); y++) @@ -174,7 +174,7 @@ bool OSystem_DS::grabRawScreen(Graphics::Surface* surf) { void OSystem_DS::grabPalette(unsigned char *colors, uint start, uint num) { // consolePrintf("Grabpalette"); - + for (unsigned int r = start; r < start + num; r++) { *colors++ = (BG_PALETTE[r] & 0x001F) << 3; *colors++ = (BG_PALETTE[r] & 0x03E0) >> 5 << 3; @@ -186,47 +186,47 @@ void OSystem_DS::grabPalette(unsigned char *colors, uint start, uint num) { void OSystem_DS::copyRectToScreen(const byte *buf, int pitch, int x, int y, int w, int h) { // consolePrintf("Copy rect %d, %d %d, %d ", x, y, w, h); - + if (w <= 1) return; if (h < 0) return; if (!DS::getIsDisplayMode8Bit()) return; - + u16* bgSub = (u16 *) BG_GFX_SUB; u16* bg = (u16 *) DS::get8BitBackBuffer(); u16* src = (u16 *) buf; - + if (DS::getKeyboardEnable()) { - + for (int dy = y; dy < y + h; dy++) { u16* dest = bg + (dy << 8) + (x >> 1); - + DC_FlushRange(src, w << 1); DC_FlushRange(dest, w << 1); dmaCopyHalfWords(3, src, dest, w); - + src += pitch >> 1; } - + } else { for (int dy = y; dy < y + h; dy++) { u16* dest1 = bg + (dy << 8) + (x >> 1); u16* dest2 = bgSub + (dy << 8) + (x >> 1); - + DC_FlushRange(src, w << 1); DC_FlushRange(dest1, w << 1); DC_FlushRange(dest2, w << 1); - + dmaCopyHalfWords(3, src, dest1, w); dmaCopyHalfWords(3, src, dest2, w); - + src += pitch >> 1; } } - + // consolePrintf("Done\n"); - - - + + + } void OSystem_DS::updateScreen() @@ -236,7 +236,7 @@ void OSystem_DS::updateScreen() { // Copy temp framebuffer back to screen copyRectToScreen((byte *)_framebuffer.pixels, _framebuffer.pitch, 0, 0, _framebuffer.w, _framebuffer.h); - + // Free memory _framebuffer.free(); @@ -279,36 +279,36 @@ void OSystem_DS::copyRectToOverlay (const OverlayColor *buf, int pitch, int x, i { u16* bg = (u16 *) DS::get16BitBackBuffer(); u16* src = (u16 *) buf; - + // if (x + w > 256) w = 256 - x; //if (x + h > 256) h = 256 - y; // consolePrintf("Copy rect ovl %d, %d %d, %d %d\n", x, y, w, h, pitch); - - + + for (int dy = y; dy < y + h; dy++) { - - + + // Slow but save copy: for (int dx = x; dx < x + w; dx++) { - + *(bg + (dy * 512) + dx) = *src; //if ((*src) != 0) consolePrintf("%d,%d: %d ", dx, dy, *src); //consolePrintf("%d,", *src); src++; } src += (pitch - w); - + // Fast but broken copy: (why?) /* REG_IME = 0; dmaCopy(src, bg + (dy << 9) + x, w * 2); REG_IME = 1; - + src += pitch;*/ } - + // consolePrintf("Copy rect ovl done"); } @@ -325,7 +325,7 @@ int16 OSystem_DS::getOverlayWidth() return getWidth(); } - + bool OSystem_DS::showMouse(bool visible) { DS::setShowCursor(visible); @@ -366,7 +366,7 @@ bool OSystem_DS::pollEvent(Common::Event &event) return true; } } - + return false; /* if (lastPenFrame != DS::getMillis()) { @@ -379,7 +379,7 @@ bool OSystem_DS::pollEvent(Common::Event &event) if (eventNum == 1) { eventNum = 0; lastPenFrame = DS::getMillis(); - if (DS::getPenDown()) { + if (DS::getPenDown()) { event.type = Common::EVENT_LBUTTONDOWN; event.mouse = Common::Point(DS::getPenX(), DS::getPenY()); consolePrintf("Down %d, %d ", event.mouse.x, event.mouse.y); @@ -408,12 +408,12 @@ void OSystem_DS::delayMillis(uint msecs) int st = getMillis(); DS::addEventsToQueue(); DS::CD::update(); - + DS::doSoundCallback(); while (st + msecs >= getMillis()) { DS::doSoundCallback(); } - + DS::doTimerCallback(); DS::checkSleepMode(); DS::addEventsToQueue(); @@ -476,7 +476,7 @@ void OSystem_DS::quit() /* consolePrintf("Soft resetting..."); IPC->reset = 1; REG_IE = 0; - + asm("swi 0x26\n"); swiSoftReset();*/ } @@ -498,10 +498,10 @@ Common::SaveFileManager* OSystem_DS::getSavefileManager() } else { forceSram = false; } - if (forceSram) { + if (forceSram) { consolePrintf("Using SRAM save method!\n"); } - + if (DS::isGBAMPAvailable() && (!forceSram)) { return &mpSaveManager; } else { @@ -519,7 +519,7 @@ Graphics::Surface* OSystem_DS::createTempFrameBuffer() { _framebuffer.create(DS::getGameWidth(), DS::getGameHeight(), 1); // Ensure we copy using 16 bit quantities due to limitation of VRAM addressing - + size_t imageStrideInBytes = DS::isCpuScalerEnabled()? DS::getGameWidth() : 512; size_t imageStrideInWords = imageStrideInBytes / 2; diff --git a/backends/platform/ds/arm9/source/osystem_ds.h b/backends/platform/ds/arm9/source/osystem_ds.h index cae40be634..9d6454d02d 100644 --- a/backends/platform/ds/arm9/source/osystem_ds.h +++ b/backends/platform/ds/arm9/source/osystem_ds.h @@ -19,8 +19,8 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ - - + + #ifndef _OSYSTEM_DS_H_ #define _OSYSTEM_DS_H_ #include "common/system.h" @@ -33,10 +33,10 @@ #include "sound/mixer.h" #include "graphics/surface.h" -class DSAudioMixer : public Audio::Mixer { +class DSAudioMixer : public Audio::Mixer { }; -class DSTimerManager : public DefaultTimerManager { +class DSTimerManager : public DefaultTimerManager { }; @@ -45,10 +45,10 @@ protected: int eventNum; int lastPenFrame; - + Common::Event eventQueue[96]; int queuePos; - + DSSaveFileManager saveManager; GBAMPSaveFileManager mpSaveManager; DSAudioMixer* _mixer; @@ -58,7 +58,7 @@ protected: static OSystem_DS* _instance; - + Graphics::Surface* createTempFrameBuffer(); public: @@ -98,7 +98,7 @@ public: inline virtual OverlayColor RGBToColor(uint8 r, uint8 g, uint8 b); inline virtual void colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b); - + virtual bool showMouse(bool visible); virtual void warpMouse(int x, int y); @@ -130,21 +130,21 @@ public: virtual void displayMessageOnOSD(const char *msg); virtual Common::SaveFileManager *getSavefileManager(); - + void addEvent(Common::Event& e); bool isEventQueueEmpty() { return queuePos == 0; } - + virtual bool grabRawScreen(Graphics::Surface* surf); - + virtual void setFocusRectangle(const Common::Rect& rect); - + virtual void clearFocusRectangle(); - + virtual void initBackend(); - + virtual Graphics::Surface *lockScreen(); virtual void unlockScreen(); - + virtual Audio::Mixer* getMixer() { return _mixer; } virtual Common::TimerManager* getTimerManager() { return _timer; } static int timerHandler(int t); diff --git a/backends/platform/ds/arm9/source/portdefs.h b/backends/platform/ds/arm9/source/portdefs.h index b4bd15252a..12d53a332f 100644 --- a/backends/platform/ds/arm9/source/portdefs.h +++ b/backends/platform/ds/arm9/source/portdefs.h @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ - + #ifndef _PORTDEFS_H_ #define _PORTDEFS_H_ diff --git a/backends/platform/ds/arm9/source/ramsave.cpp b/backends/platform/ds/arm9/source/ramsave.cpp index 24eea80c5c..8bcc34f9af 100644 --- a/backends/platform/ds/arm9/source/ramsave.cpp +++ b/backends/platform/ds/arm9/source/ramsave.cpp @@ -17,7 +17,7 @@ * 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. - * + * */ // Save in order 1,2,3,4,larger 2,5 #include "system.h" @@ -52,18 +52,18 @@ DSSaveFile::DSSaveFile(SCUMMSave* s, bool compressed, u8* data) { ownsData = true; saveCompressed = false; // consolePrintf("Decompressed. name=%s size=%d (%d)", save.name, save.size, save.compressedSize); - + } else { ownsData = false; origHeader = s; } - + if (save.magic == (int) 0xBEEFCAFE) { save.isValid = true; } else { save.isValid = false; } - + isTempFile = false; } @@ -78,7 +78,7 @@ DSSaveFile::~DSSaveFile() { } bool DSSaveFile::loadFromSaveRAM(vu8* address) { - + SCUMMSave newSave; for (int t = 0; t < (int) sizeof(newSave); t++) { @@ -89,13 +89,13 @@ bool DSSaveFile::loadFromSaveRAM(vu8* address) { newSave.isValid = true; *((u16 *) (0x4000204)) |= 0x3; - + saveData = new unsigned char[newSave.compressedSize]; - + for (int t = 0; t < (int) newSave.compressedSize; t++) { ((char *) (saveData))[t] = *(address + t + sizeof(newSave)); } - + if (ownsData) delete this->saveData; save = newSave; saveCompressed = true; @@ -105,7 +105,7 @@ bool DSSaveFile::loadFromSaveRAM(vu8* address) { return true; } - + return false; } @@ -114,11 +114,11 @@ void DSSaveFile::compress() { unsigned char* compBuffer = new unsigned char[(save.size * 110) / 100]; int compSize = LZ_Compress((u8 *) saveData, compBuffer, save.size); save.compressedSize = compSize; - - - + + + delete saveData; - + // Make the save smaller saveData = (u8 *) realloc(compBuffer, save.compressedSize); saveCompressed = true; @@ -129,39 +129,39 @@ int DSSaveFile::saveToSaveRAM(vu8* address) { unsigned char* compBuffer; bool failed; - + int compSize; - + compress(); - + compSize = save.compressedSize; compBuffer = saveData; - + if (DSSaveFileManager::instance()->getBytesFree() >= getRamUsage()) { DSSaveFileManager::instance()->addBytesFree(-getRamUsage()); - + // Write header for (int t = 0; t < sizeof(save); t++) { while (*(address + t) != ((char *) (&save))[t]) { *(address + t) = ((char *) (&save))[t]; } } - + // Write compressed buffer for (int t = sizeof(save); t < (int) sizeof(save) + compSize; t++) { while (*(address + t) != compBuffer[t - sizeof(save)]) { *(address + t) = compBuffer[t - sizeof(save)]; } } - + failed = false; } else { failed = true; } - + return failed? 0: compSize + sizeof(save); } @@ -177,7 +177,7 @@ uint32 DSSaveFile::read(void *buf, uint32 size) { } memcpy(buf, saveData + ptr, size); // consolePrintf("byte: %d ", ((u8 *) (buf))[0]); - + ptr += size; return size; } @@ -249,7 +249,7 @@ bool DSSaveFile::matches(char* filename) { return false; } } - + void DSSaveFile::setName(char *name) { save.isValid = true; save.magic = 0xBEEFCAFE; @@ -258,7 +258,7 @@ void DSSaveFile::setName(char *name) { save.compressedSize = 0; saveData = new unsigned char[DS_MAX_SAVE_SIZE]; strcpy(save.name, name); - + if ((strstr(name, ".s99")) || (strstr(name, ".c"))) { isTempFile = true; } else { @@ -298,10 +298,10 @@ void DSSaveFile::deleteFile() { DSSaveFileManager::DSSaveFileManager() { instancePtr = this; - + *((u16 *) (0x4000204)) |= 0x3; swiWaitForVBlank(); - + loadAllFromSRAM(); } @@ -311,7 +311,7 @@ DSSaveFileManager::~DSSaveFileManager() { void DSSaveFileManager::loadAllFromSRAM() { int addr = 1; - + for (int r = 0; r < 8; r++) { gbaSave[r].deleteFile(); } @@ -332,7 +332,7 @@ void DSSaveFileManager::formatSram() { for (int r = 0; r < SRAM_SAVE_MAX; r++) { *(CART_RAM + r) = 0; } - + loadAllFromSRAM(); } @@ -358,7 +358,7 @@ DSSaveFile *DSSaveFileManager::openSavefile(const char* filename, bool saveOrLoa return gbaSave[r].clone(); } } - + if (saveOrLoad) { return makeSaveFile(filename, saveOrLoad); } else { @@ -408,21 +408,21 @@ void DSSaveFileManager::listSavefiles(const char *prefix, bool *marks, int num) } } } - + } */ } DSSaveFile *DSSaveFileManager::makeSaveFile(const char *filename, bool saveOrLoad) { - + // Find a free save slot int r = 0; - + while ((r < 8) && (gbaSave[r].isValid())) { r++; } - + if ((r == 8) && (gbaSave[r].isValid())) { // No more saves return NULL; @@ -439,9 +439,9 @@ void DSSaveFileManager::flushToSaveRAM() { int cartAddr = 1; int s; int extraData = DSSaveFileManager::getExtraData(); - + *((u16 *) (0x4000204)) |= 0x3; - + swiWaitForVBlank(); int size = 0; @@ -451,20 +451,20 @@ void DSSaveFileManager::flushToSaveRAM() { if (!gbaSave[r].isTemp()) size += gbaSave[r].getRamUsage(); } } - + if (size <= SRAM_SAVE_MAX) { for (int r = 0; r < SRAM_SAVE_MAX; r++) { *(CART_RAM + r) = 0; } - + sramBytesFree = SRAM_SAVE_MAX; - + for (int r = 0; (r < 8); r++) { if (gbaSave[r].isValid() && (!gbaSave[r].isTemp())) { - + cartAddr += s = gbaSave[r].saveToSaveRAM(CART_RAM + cartAddr); - + /* if (s == 0) { consolePrintf("WARNING: Save didn't fit in cart RAM and has been lost!! Delete files and save again.", gbaSave[r].getName()); failed = true; @@ -475,7 +475,7 @@ void DSSaveFileManager::flushToSaveRAM() { consolePrintf("WARNING: Save didn't fit in cart RAM and has been lost!! Delete files and save again."); loadAllFromSRAM(); - + } DSSaveFileManager::setExtraData(extraData); diff --git a/backends/platform/ds/arm9/source/ramsave.h b/backends/platform/ds/arm9/source/ramsave.h index d7ba6b5d68..abf225e598 100644 --- a/backends/platform/ds/arm9/source/ramsave.h +++ b/backends/platform/ds/arm9/source/ramsave.h @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ - + #ifndef _RAMSAVE_H_ #define _RAMSAVE_H_ @@ -46,56 +46,56 @@ class DSSaveFile : public Common::InSaveFile, public Common::OutSaveFile { u16 extraMagic; // 32 u32 reserved; // 36 } __attribute__ ((packed)); - + SCUMMSave save; u8* saveData; SCUMMSave* origHeader; bool isOpenFlag; bool isTempFile; - + public: DSSaveFile(); DSSaveFile(SCUMMSave* s, bool saveCompressed, u8* data); ~DSSaveFile(); - + void reset(); - + bool isOpen() const { return isOpenFlag; } virtual bool eos() const; virtual void skip(uint32 size); - + virtual uint32 pos() const; virtual uint32 size() const; virtual void seek(int32 pos, int whence); uint32 read(void *buf, uint32 size); uint32 write(const void *buf, uint32 size); - + void setName(char *name); char* getName() { return save.name; } - + bool isValid() { return save.isValid; } bool isTemp() { return isTempFile; } bool matches(char* prefix, int num); bool matches(char* filename); - + void clearData(); void compress(); - + int getRamUsage() { return sizeof(save) + save.compressedSize; } char* getRamImage() { return (char *) &save; } - + int getSize() { return save.size; } - + DSSaveFile* clone(); - + bool loadFromSaveRAM(vu8* address); int saveToSaveRAM(vu8* address); - - + + void deleteFile(); - + void operator delete(void *p) { // consolePrintf("Finished! size=%d\n", ((DSSaveFile *) (p))->save->size); } @@ -107,34 +107,34 @@ public: class DSSaveFileManager : public Common::SaveFileManager { - + DSSaveFile gbaSave[8]; static DSSaveFileManager* instancePtr; int sramBytesFree; - + public: DSSaveFileManager(); ~DSSaveFileManager(); - + static DSSaveFileManager* instance() { return instancePtr; } DSSaveFile *openSavefile(const char *filename, bool saveOrLoad); - + virtual Common::OutSaveFile* openForSaving(const char* filename) { return openSavefile(filename, true); } virtual Common::InSaveFile* openForLoading(const char* filename) { return openSavefile(filename, false); } virtual bool removeSavefile(const char *filename); virtual Common::StringList listSavefiles(const char *pattern); - + void flushToSaveRAM(); - + void addBytesFree(int size) { sramBytesFree += size; } int getBytesFree() { return sramBytesFree; } void deleteFile(char* name); void listFiles(); void formatSram(); - + void loadAllFromSRAM(); static bool isExtraDataPresent(); diff --git a/backends/platform/ds/arm9/source/scummconsole.c b/backends/platform/ds/arm9/source/scummconsole.c index 2145b47353..980dea7bc4 100644 --- a/backends/platform/ds/arm9/source/scummconsole.c +++ b/backends/platform/ds/arm9/source/scummconsole.c @@ -25,7 +25,7 @@ // // Changelog: // 0.1: First version -// 0.2: Fixed sprite mapping bug. 1D mapping should work now. +// 0.2: Fixed sprite mapping bug. 1D mapping should work now. // Changed some register defines for consistency. // ////////////////////////////////////////////////////////////////////// @@ -52,7 +52,7 @@ u16* fontMap; u8 row, col; //font may not start on a character base boundry -u16 fontOffset; +u16 fontOffset; //the first character in the set (0 if you have a full set) u16 fontStart; @@ -65,7 +65,7 @@ u16 fontPal; /////////////////////////////////////////////////////////// //consoleInit -// param: +// param: // font: 16 color font // charBase: the location the font data will be loaded to // numCharacters: count of characters in the font @@ -79,7 +79,7 @@ void consoleInit(u16* font, u16* charBase, u16 numCharacters, u8 charStart, u16* int i; row = col = 0; - + fontStart = charStart; fontOffset = 0; @@ -111,9 +111,9 @@ void consoleInit(u16* font, u16* charBase, u16 numCharacters, u8 charStart, u16* temp |= 0xF00; if(font[i] & 0xF000) temp |= 0xF000; - + charBase[i] = temp; - } + } } }//end if bitdepth else @@ -140,7 +140,7 @@ void consoleInit(u16* font, u16* charBase, u16 numCharacters, u8 charStart, u16* void consoleInitDefault(u16* map, u16* charBase, u8 bitDepth) { - consoleInit((u16 *) default_font_bin, charBase, 128, 0, map, CONSOLE_USE_COLOR255, bitDepth); + consoleInit((u16 *) default_font_bin, charBase, 128, 0, map, CONSOLE_USE_COLOR255, bitDepth); } void consolePrintSet(int x, int y) @@ -164,9 +164,9 @@ void consolePrintChar(char c) { col = 0; - row++; + row++; } - + if(row >= CONSOLE_HEIGHT) { row--; @@ -178,7 +178,7 @@ void consolePrintChar(char c) } - + switch(c) { @@ -199,7 +199,7 @@ void consolePrintChar(char c) } - + } @@ -207,16 +207,16 @@ void printX(int w, unsigned d) { int loop = 0; int i = 0; - + char buf[20] = {0}; while(d > 0) { buf[loop++] = d & 0xF; - d = d>>4; + d = d>>4; } - + for (i = 7; i >= 0; i--) { if(buf[i] || i < loop) @@ -235,15 +235,15 @@ void printx(int w, unsigned int d) { int loop = 0; int i = 0; - + char buf[20] = {0}; while(d > 0) { buf[loop++] = d & 0xF; - d = d>>4; + d = d>>4; } - + for (i = 7; i >= 0; i--) { if(buf[i] || i < loop) @@ -262,8 +262,8 @@ void printInt(int w, int d) { int loop = 0; int i = 0; - - char buf[20] = {0}; + + char buf[20] = {0}; if(d < 0) { @@ -276,9 +276,9 @@ void printInt(int w, int d) else while (d > 0) { buf[loop++] = d % 10; - d /= 10; + d /= 10; } - + for (i = 7; i >= 0; i--) { if(buf[i] || i < loop) @@ -310,16 +310,16 @@ void print0X(int w, unsigned d) { int loop = 0; int i = 0; - + char buf[] = {0,0,0,0,0,0,0,0}; //set to zero cause I may add formatted output someday - + while(d > 0) { buf[loop++] = d & 0xF; - d = d>>4; + d = d>>4; } - + for (i = 7; i >= 0; i--) { if(buf[i] || i < w || i < loop) @@ -336,16 +336,16 @@ void print0x(int w, unsigned int d) { int loop = 0; int i = 0; - + char buf[] = {0,0,0,0,0,0,0,0}; //set to zero cause I may add formatted output someday - + while(d > 0) { buf[loop++] = d & 0xF; - d = d>>4; + d = d>>4; } - + for (i = 7; i >= 0; i--) { if(buf[i] || i < w || i < loop) @@ -362,9 +362,9 @@ void print0Int(int w, int d) { int loop = 0; int i = 0; - + char buf[] = {0,0,0,0,0,0,0,0,0,0,0,0,0}; //set to zero cause I may add formatted output someday - + if(d < 0) { consolePrintChar('-'); @@ -374,9 +374,9 @@ void print0Int(int w, int d) while(d > 0) { buf[loop++] = d % 10; - d /= 10; + d /= 10; } - + for (i = 15; i >= 0; i--) if(buf[i] || i < w || i < loop) consolePrintChar(buf[i] + '0'); @@ -414,14 +414,14 @@ void printF(int w, float f) if(*t & BIT(31)) consolePrintChar('-'); - + print0Bin(32, fraction); - + printInt(1, fraction); consolePrintChar('e'); printInt(1, exp - 127); - + /* if(exp == 0 && fraction == 0) { @@ -447,7 +447,7 @@ void consolePrintf(const char* s, ...) va_list argp; va_start(argp, s); - + while(*s) { @@ -474,7 +474,7 @@ void consolePrintf(const char* s, ...) case 'I': case 'd': case 'D': - if(z)print0Int(w, va_arg(argp, int)); + if(z)print0Int(w, va_arg(argp, int)); else printInt(w, va_arg(argp, int)); s++; break; diff --git a/backends/platform/ds/arm9/source/scummconsole.h b/backends/platform/ds/arm9/source/scummconsole.h index 01fdfc2f04..d8ccf34c62 100644 --- a/backends/platform/ds/arm9/source/scummconsole.h +++ b/backends/platform/ds/arm9/source/scummconsole.h @@ -25,7 +25,7 @@ // // Changelog: // 0.1: First version -// 0.2: Fixed sprite mapping bug. 1D mapping should work now. +// 0.2: Fixed sprite mapping bug. 1D mapping should work now. // Changed some register defines for consistency. // ////////////////////////////////////////////////////////////////////// diff --git a/backends/platform/ds/arm9/source/scummhelp.cpp b/backends/platform/ds/arm9/source/scummhelp.cpp index 452f782dc5..f9efd58276 100644 --- a/backends/platform/ds/arm9/source/scummhelp.cpp +++ b/backends/platform/ds/arm9/source/scummhelp.cpp @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ - + #include "scummhelp.h" #define ADD_BIND(k,d) do { key[i] = k; dsc[i] = d; i++; } while (0) diff --git a/backends/platform/ds/arm9/source/scummhelp.h b/backends/platform/ds/arm9/source/scummhelp.h index e79c863cbd..602cb5f788 100644 --- a/backends/platform/ds/arm9/source/scummhelp.h +++ b/backends/platform/ds/arm9/source/scummhelp.h @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ - + #ifndef _SCUMMHELP_H_ #define _SCUMMHELP_H_ @@ -30,7 +30,7 @@ namespace DS { void updateStrings(byte gameId, byte version, Common::Platform platform, int page, Common::String &title, Common::String *&key, Common::String *&dsc); - + } #endif diff --git a/backends/platform/ds/arm9/source/touchkeyboard.cpp b/backends/platform/ds/arm9/source/touchkeyboard.cpp index 9ac8361985..5927f204da 100644 --- a/backends/platform/ds/arm9/source/touchkeyboard.cpp +++ b/backends/platform/ds/arm9/source/touchkeyboard.cpp @@ -45,7 +45,7 @@ struct key_data { key_data keys[DS_NUM_KEYS] = { // Key number x y character - + // Numbers {28, 3, 0, '1'}, {29, 5, 0, '2'}, @@ -116,7 +116,7 @@ key_data keys[DS_NUM_KEYS] = { {54, 29, 8, Common::KEYCODE_DOWN}, {53, 31, 8, Common::KEYCODE_RIGHT}, {51, 29, 6, Common::KEYCODE_UP}, - + // Close button {56, 30, 0, Common::KEYCODE_INVALID}, @@ -133,7 +133,7 @@ key_data keys[DS_NUM_KEYS] = { {66, 26, -2, Common::KEYCODE_F10}, {67, 28, -2, Common::KEYCODE_F11}, {68, 30, -2, Common::KEYCODE_F12}, - + }; int keyboardX; @@ -162,7 +162,7 @@ void restoreVRAM(int tileBase, int mapBase, u16* saveSpace) { /* for (int r = 0; r < 32 * 32; r++) { ((u16 *) SCREEN_BASE_BLOCK_SUB(mapBase))[r] = *saveSpace++; } - + for (int r = 0; r < 4096; r++) { ((u16 *) CHAR_BASE_BLOCK_SUB(tileBase))[r] = *saveSpace++; }*/ @@ -175,19 +175,19 @@ void drawKeyboard(int tileBase, int mapBase, u16* saveSpace) { // *saveSpace++ = ((u16 *) SCREEN_BASE_BLOCK_SUB(mapBase))[r]; ((u16 *) SCREEN_BASE_BLOCK_SUB(mapBase))[r] = 0; } - + for (int r = 0; r < KEYBOARD_DATA_SIZE / 2; r++) { // *saveSpace++ = ((u16 *) CHAR_BASE_BLOCK_SUB(tileBase))[r]; ((u16 *) CHAR_BASE_BLOCK_SUB(tileBase))[r] = ((u16 *) (keyboard_raw))[r]; } - + for (int r = 0; r < 16; r++) { BG_PALETTE_SUB[r] = ((u16 *) (keyboard_pal_raw))[r]; } // this is the font for (int tile = 0; tile < 94; tile++) { - + u16* tileAddr = (u16 *) (CHAR_BASE_BLOCK_SUB(tileBase) + ((KEYBOARD_DATA_SIZE) + (tile * 32))); u8* src = ((u8 *) (_8x8font_tga_raw)) + 18 + tile * 8; @@ -197,55 +197,55 @@ void drawKeyboard(int tileBase, int mapBase, u16* saveSpace) { | ((*(src + (y * 752) + (x * 4) + 1) & 0x0F) << 4) | ((*(src + (y * 752) + (x * 4) + 2) & 0x0F) << 8) | ((*(src + (y * 752) + (x * 4) + 3) & 0x0F) << 12); - + } } } - + for (int r = 0; r < 16; r++) { int col = ((u16 *) (keyboard_pal_raw))[r]; - + int red = col & 0x001F; int green = (col & 0x03E0) >> 5; int blue = (col & 0x7C00) >> 10; - + red = (red * 8) / 16; green = (green * 24) / 16; blue = (blue * 8) / 16; if (green > 31) green = 31; - + BG_PALETTE_SUB[16 + r] = red | (green << 5) | (blue << 10); } - + keyboardX = -2; keyboardY = 2; - + DS::mapBase = mapBase; DS::tileBase = tileBase; - + shiftState = false; capsLockState = false; - + int x = keyboardX; int y = keyboardY; - + u16* base = ((u16 *) SCREEN_BASE_BLOCK_SUB(mapBase)); baseAddress = base; - + for (int r = 0; r < DS_NUM_KEYS; r++) { base[(y + keys[r].y) * 32 + x + keys[r].x] = 10 + keys[r].keyNum * 2; base[(y + keys[r].y) * 32 + x + keys[r].x + 1] = 10 + keys[r].keyNum * 2 + 1; - + base[(y + keys[r].y + 1) * 32 + x + keys[r].x] = 10 + 148 + keys[r].keyNum * 2; base[(y + keys[r].y + 1) * 32 + x + keys[r].x + 1] = 10 + 148 + keys[r].keyNum * 2 + 1; - + keys[r].pressed = false; } - + closed = false; clearAutoComplete(); } @@ -257,7 +257,7 @@ void drawAutoComplete() { baseAddress[y * 32 + x] = 0; } } - + for (int r = 0; r < autoCompleteCount; r++) { int y = 12 + (r % 6) * 2; @@ -265,15 +265,15 @@ void drawAutoComplete() { for (int p = 0; p < strlen(autoCompleteWord[r]); p++) { char c = autoCompleteWord[r][p]; - + int tile = c - 33 + (KEYBOARD_DATA_SIZE / 32); if (selectedCompletion == r) { tile |= 0x1000; } - baseAddress[y * 32 + x + p] = tile; - + baseAddress[y * 32 + x + p] = tile; + } } @@ -330,7 +330,7 @@ void typeCompletion(int current) { event.type = Common::EVENT_KEYDOWN; event.kbd.flags = 0; system->addEvent(event); - + event.type = Common::EVENT_KEYUP; system->addEvent(event); } @@ -351,13 +351,13 @@ void updateTypeEvents() { Common::Event event; OSystem_DS* system = OSystem_DS::instance(); - + event.kbd.keycode = (Common::KeyCode) autoCompleteBuffer[0]; event.kbd.ascii = autoCompleteBuffer[0]; event.type = Common::EVENT_KEYDOWN; event.kbd.flags = 0; system->addEvent(event); - + event.type = Common::EVENT_KEYUP; system->addEvent(event); @@ -380,21 +380,21 @@ void createKeyEvent(int keyNum, Common::Event& event) } else { event.kbd.keycode = (Common::KeyCode) (Common::KEYCODE_F1 - (keys[keyNum].character - '1')); event.kbd.ascii = 0; - } - + } + } else if ((keys[keyNum].character >= 'A') && (keys[keyNum].character <= 'Z')) { - + if ((!DS::shiftState) && (!DS::capsLockState)) { event.kbd.ascii = keys[keyNum].character + 32; // Make key lowercase. } else { event.kbd.ascii = keys[keyNum].character; } - + event.kbd.keycode = (Common::KeyCode) event.kbd.ascii; } else { event.kbd.ascii = keys[keyNum].character; event.kbd.keycode = (Common::KeyCode) keys[keyNum].character; - } + } } void addKeyboardEvents() { @@ -403,7 +403,7 @@ void addKeyboardEvents() { if (DS::getPenDown()) { int x = IPC->touchXpx; int y = IPC->touchYpx; - + int tx = (x >> 3); int ty = (y >> 3); @@ -427,48 +427,48 @@ void addKeyboardEvents() { tx -= keyboardX; ty -= keyboardY; - + // consolePrintf("x=%d y=%d\n", tx, ty); - + for (int r = 0; r < DS_NUM_KEYS; r++) { - if (( (tx >= keys[r].x) && (tx <= keys[r].x + 1)) && + if (( (tx >= keys[r].x) && (tx <= keys[r].x + 1)) && (ty >= keys[r].y) && (ty <= keys[r].y + 1)) { OSystem_DS* system = OSystem_DS::instance(); Common::Event event; - + // consolePrintf("Key: %d\n", r); if ((keys[r].character == Common::KEYCODE_INVALID)) { // Close button DS::closed = true; } else { createKeyEvent(r, event); - } - - //event.kbd.keycode = keys[r].character; - //event.kbd.ascii = keys[r].character; + } + + //event.kbd.keycode = keys[r].character; + //event.kbd.ascii = keys[r].character; event.type = Common::EVENT_KEYDOWN; system->addEvent(event); // event.type = Common::EVENT_KEYUP; // system->addEvent(event); - + switch (keys[r].character) { case DS_SHIFT: { DS::shiftState = !DS::shiftState; DS::setKeyHighlight(r, DS::shiftState); break; } - + case DS_CAPSLOCK: { DS::capsLockState = !DS::capsLockState; DS::setKeyHighlight(r, DS::capsLockState); break; } - + default: { DS::setKeyHighlight(r, true); keys[r].pressed = true; - + if (DS::shiftState) { DS::shiftState = false; for (int t = 0; t < DS_NUM_KEYS; t++) { @@ -480,19 +480,19 @@ void addKeyboardEvents() { break; } } - + } } } - + if (DS::getPenReleased()) { - + for (int r = 0; r < DS_NUM_KEYS; r++) { if (keys[r].pressed) { DS::setKeyHighlight(r, false); OSystem_DS* system = OSystem_DS::instance(); - + Common::Event event; createKeyEvent(r, event); event.type = Common::EVENT_KEYUP; @@ -500,7 +500,7 @@ void addKeyboardEvents() { keys[r].pressed = false; } - } + } } } diff --git a/backends/platform/ds/arm9/source/touchkeyboard.h b/backends/platform/ds/arm9/source/touchkeyboard.h index 8a5fc728ce..e4aa102ab4 100644 --- a/backends/platform/ds/arm9/source/touchkeyboard.h +++ b/backends/platform/ds/arm9/source/touchkeyboard.h @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ - + #ifndef _TOUCHKEYBOARD_H_ #define _TOUCHKEYBOARD_H_ diff --git a/backends/platform/ds/arm9/source/wordcompletion.cpp b/backends/platform/ds/arm9/source/wordcompletion.cpp index b8fbf6c5cd..b5bebddb54 100644 --- a/backends/platform/ds/arm9/source/wordcompletion.cpp +++ b/backends/platform/ds/arm9/source/wordcompletion.cpp @@ -23,7 +23,7 @@ void addAutoCompleteLine(char* line) { { char word[32]; int length; - + // Skip the T9-style numbers while (*line != ' ') { @@ -37,7 +37,7 @@ void addAutoCompleteLine(char* line) { if (*line == ' ') line++; - // Copy the new word + // Copy the new word do { word[length++] = *line++; } while ((*line != '\0') && (*line != ' ') && (*line != '\n')); @@ -47,7 +47,7 @@ void addAutoCompleteLine(char* line) { // Store a pointer to the start of the word wordBufferPtr[wordBufferPtrPos++] = &wordBuffer[wordBufferPos]; - + // copy the new word into the buffer strcpy(&wordBuffer[wordBufferPos], word); wordBufferPos += strlen(word) + 1; @@ -104,11 +104,11 @@ bool findWordCompletions(char* input) // Get the word from the dictonary line word = wordBufferPtr[position]; - + // Now check to see if the word is before or after the stub we're after int result = scumm_stricmp((const char *) partialWord, (const char *) word); - + if (result == 0) { // We've found the whole word. Aren't we good. break; @@ -128,10 +128,10 @@ bool findWordCompletions(char* input) word = wordBufferPtr[position]; //consolePrintf("Final word: %s\n", word); - + system->setCharactersEntered(strlen(partialWord)); - + bool match = true; @@ -161,7 +161,7 @@ bool findWordCompletions(char* input) break; } } - + if (match) { system->addAutoComplete(word); } diff --git a/backends/platform/ds/arm9/source/zipreader.cpp b/backends/platform/ds/arm9/source/zipreader.cpp index 01321f44f5..7af0718a44 100644 --- a/backends/platform/ds/arm9/source/zipreader.cpp +++ b/backends/platform/ds/arm9/source/zipreader.cpp @@ -17,7 +17,7 @@ * 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. - * + * */ @@ -29,25 +29,25 @@ ZipFile::ZipFile() { // Locate a zip file in cartridge memory space - + // consolePrintf("ZIP file check..."); - + char* p = (char *) ZF_SEARCH_START; bool found = false; - + _zipFile = NULL; - + while ((p != (char *) ZF_SEARCH_END) && (!found)) { // Zip file header is: 0x504B0304 - + if ( (*p == 0x50) && (*(p + 1) == 0x4B) && (*(p + 2) == 0x03) && (*(p + 3) == 0x04) ) { // Found header! found = true; _zipFile = p; } - + if (!found) p += ZF_SEARCH_STRIDE; - + } if (_zipFile) { @@ -56,14 +56,14 @@ ZipFile::ZipFile() { // consolePrintf("Not in use!\n"); return; } - + changeToRoot(); restartFile(); - + if (_currentFile->compSize != (u32) getFileSize()) { consolePrintf("Error: ZIP file contains compression!\n"); } - + _allFilesVisible = false; } @@ -83,19 +83,19 @@ bool ZipFile::restartFile() { getFileName(name); more = skipFile(); } - + return more; } bool ZipFile::currentFileInFolder() { char name[128]; - + if (_allFilesVisible) return true; - + getFileName(name); // consolePrintf("N:'%s'D:'%s'\n", name, _directory); - + if (_directory[0] == 0) { // Root directory name[strlen(name) - 1] = 0; return !strchr(name, '\\'); // Not in root if contains a / character before the last character @@ -104,52 +104,52 @@ bool ZipFile::currentFileInFolder() { && (no slashes after the directory || it's the last character) && (slash follows directory) */ - if ((strstr(name, _directory) == name) && (strlen(name) != strlen(_directory)) + if ((strstr(name, _directory) == name) && (strlen(name) != strlen(_directory)) && ((strchr(name + strlen(_directory) + 1, '\\') == NULL) || (strchr(name + strlen(_directory) + 1, '\\') == name + strlen(name) - 1)) && (*(name + strlen(_directory)) == '\\')) { return true; } } - + return false; } void ZipFile::getFileName(char* name) { strncpy(name, (char *) (_currentFile + 1), _currentFile->nameLength); - + for (int r = 0; r < (int) strlen(name); r++) { if (name[r] == '/') name[r] = '\\'; } name[_currentFile->nameLength] = 0; - + if (name[strlen(name) - 1] == '\\') { name[strlen(name) - 1] = 0; - } + } } bool ZipFile::skipFile() { bool valid; do { - + // Move on to the next file _currentFile = (FileHeader *) ( ((char *) (_currentFile)) + sizeof(*_currentFile) + _currentFile->nameLength + _currentFile->fileSize + _currentFile->extraLength ); - + // Return true if there are more files. Check this by looking for the magic number valid = (_currentFile->magic[0] == 0x50) && (_currentFile->magic[1] == 0x4B) && (_currentFile->magic[2] == 0x03) && (_currentFile->magic[3] == 0x04); - - + + } while (valid && !currentFileInFolder()); - + return valid; - + // Currently doesn't handle data descriptors! } @@ -180,7 +180,7 @@ char* ZipFile::getFile() { bool ZipFile::findFile(char* search) { changeToRoot(); restartFile(); - + char searchName[128]; strcpy(searchName, search); for (int r = 0; r < (int) strlen(searchName); r++) { @@ -191,15 +191,15 @@ bool ZipFile::findFile(char* search) { *(searchName + strlen(searchName) - 1) = '\0'; // which we need to dispose of. } - + do { char name[128]; getFileName(name); if (*(name + strlen(name) - 1) == '\\') { // Directories have a terminating slash *(name + strlen(name) - 1) = '\0'; // which we need to dispose of. } - - + + if (!stricmp(name, searchName)) { // consolePrintf("'%s'=='%s'\n", name, searchName); return true; // Got it! @@ -222,7 +222,7 @@ void ZipFile::changeDirectory(char* dir) { for (int r = 0; r < (int) strlen(_directory); r++) { if (_directory[r] == '/') _directory[r] = '\\'; } - + if (_directory[strlen(_directory) - 1] == '\\') { _directory[strlen(_directory) - 1] = '\0'; } diff --git a/backends/platform/ds/arm9/source/zipreader.h b/backends/platform/ds/arm9/source/zipreader.h index 19aa3d9f31..cd7244dba5 100644 --- a/backends/platform/ds/arm9/source/zipreader.h +++ b/backends/platform/ds/arm9/source/zipreader.h @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ - + #ifndef _ZIPREADER_H_ #define _ZIPREADER_H_ #include "portdefs.h" @@ -45,9 +45,9 @@ class ZipFile { char* _zipFile; char _directory[128]; - + bool _allFilesVisible; - + FileHeader* _currentFile; public: @@ -55,25 +55,25 @@ public: ~ZipFile(); bool isReady(); - + // These operations set the current file bool restartFile(); bool skipFile(); - bool findFile(char* search); + bool findFile(char* search); // These return the file's data and information char* getFile(); int getFileSize(); void getFileName(char* name); bool isDirectory(); - + // These set the current directory void changeDirectory(char* name); void changeToRoot(); void setAllFilesVisible(bool state) { _allFilesVisible = state; } - + bool currentFileInFolder(); - + u16 misaligned16(u16* v); u32 misaligned32(u32* v); diff --git a/backends/platform/ds/commoninclude/NDS/scummvm_ipc.h b/backends/platform/ds/commoninclude/NDS/scummvm_ipc.h index d14e62af83..6a20f775c6 100644 --- a/backends/platform/ds/commoninclude/NDS/scummvm_ipc.h +++ b/backends/platform/ds/commoninclude/NDS/scummvm_ipc.h @@ -32,7 +32,7 @@ ////////////////////////////////////////////////////////////////////// - + typedef struct _adpcmBuffer { u8* buffer[8]; bool filled[8]; @@ -40,66 +40,66 @@ typedef struct _adpcmBuffer { bool arm7Dirty[8]; bool semaphore; } adpcmBuffer; - + ////////////////////////////////////////////////////////////////////// typedef struct scummvmTransferRegion { uint32 heartbeat; // counts frames - + int16 touchX, touchY; // TSC X, Y int16 touchXpx, touchYpx; // TSC X, Y pixel values int16 touchZ1, touchZ2; // TSC x-panel measurements uint16 tdiode1, tdiode2; // TSC temperature diodes uint32 temperature; // TSC computed temperature - + uint16 buttons; // X, Y, /PENIRQ buttons - + union { uint8 curtime[8]; // current time response from RTC - + struct { u8 rtc_command; u8 rtc_year; //add 2000 to get 4 digit year u8 rtc_month; //1 to 12 u8 rtc_day; //1 to (days in month) - + u8 rtc_incr; u8 rtc_hours; //0 to 11 for AM, 52 to 63 for PM u8 rtc_minutes; //0 to 59 u8 rtc_seconds; //0 to 59 }; }; - + uint16 battery; // battery life ?? hopefully. :) uint16 aux; // i have no idea... - + pTransferSound soundData; - + adpcmBuffer adpcm; - - + + // Don't rely on these below, will change or be removed in the future vuint32 mailAddr; vuint32 mailData; vuint8 mailRead; vuint8 mailBusy; vuint32 mailSize; - + bool performArm9SleepMode; - + u32 test; int tweak; bool tweakChanged; - + // bool fillSoundFirstHalf; // bool fillSoundSecondHalf; // These are used for ScummVMs sound output bool fillNeeded[4]; int playingSection; - + bool reset; - + // Streaming sound bool streamFillNeeded[4]; int streamPlayingSection; diff --git a/backends/platform/gp2x/build/bundle.sh b/backends/platform/gp2x/build/bundle.sh index 526742e2e7..8ac1c0ccc5 100644 --- a/backends/platform/gp2x/build/bundle.sh +++ b/backends/platform/gp2x/build/bundle.sh @@ -7,7 +7,7 @@ PATH=/opt/open2x/gcc-4.1.1-glibc-2.3.6/bin:$PATH export CXX=arm-open2x-linux-g++ export CXXFLAGS=-march=armv4t export CPPFLAGS=-I/opt/open2x/gcc-4.1.1-glibc-2.3.6/include -export LDFLAGS=-L/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib +export LDFLAGS=-L/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib echo Collecting files. mkdir "scummvm-gp2x-`date '+%Y-%m-%d'`" @@ -42,7 +42,7 @@ if [ -f /usr/bin/zip ] echo You should have a "scummvm-gp2x-`date '+%Y-%m-%d'`.zip" for the GP2X port ready to go. cd .. rm -R ./"scummvm-gp2x-`date '+%Y-%m-%d'`" - else + else echo - /usr/bin/zip not found, ZIP bundle not created. echo All included files can also be found in ./"scummvm-gp2x-`date '+%Y-%m-%d'`" echo - Please use you preferred archive tool to bundle these files. diff --git a/backends/platform/gp2x/build/config.sh b/backends/platform/gp2x/build/config.sh index 8c01ded06b..4a30ed4a31 100644 --- a/backends/platform/gp2x/build/config.sh +++ b/backends/platform/gp2x/build/config.sh @@ -1,6 +1,6 @@ #!/bin/bash -echo Quick script to make running configure all the time less painful +echo Quick script to make running configure all the time less painful echo and let all the build work be done from the backend/build folder. # Set the paths up here to generate the config. @@ -12,12 +12,12 @@ PATH=/opt/open2x/gcc-4.1.1-glibc-2.3.6/bin:$PATH export CXX=arm-open2x-linux-g++ export CXXFLAGS=-march=armv4t export CPPFLAGS=-I/opt/open2x/gcc-4.1.1-glibc-2.3.6/include -export LDFLAGS=-L/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib -export DEFINES=-DNDEBUG +export LDFLAGS=-L/opt/open2x/gcc-4.1.1-glibc-2.3.6/lib +export DEFINES=-DNDEBUG # Edit the configure line to suit. cd ../../../.. -./configure --backend=gp2x --disable-mt32emu --host=gp2x --disable-flac --disable-nasm --disable-hq-scalers --with-sdl-prefix=/opt/open2x/gcc-4.1.1-glibc-2.3.6/bin --with-mpeg2-prefix=/opt/open2x/gcc-4.1.1-glibc-2.3.6 --enable-tremor --with-tremor-prefix=/opt/open2x/gcc-4.1.1-glibc-2.3.6 --enable-zlib --with-zlib-prefix=/opt/open2x/gcc-4.1.1-glibc-2.3.6 --enable-mad --with-mad-prefix=/opt/open2x/gcc-4.1.1-glibc-2.3.6 -#--enable-plugins +./configure --backend=gp2x --disable-mt32emu --host=gp2x --disable-flac --disable-nasm --disable-hq-scalers --with-sdl-prefix=/opt/open2x/gcc-4.1.1-glibc-2.3.6/bin --with-mpeg2-prefix=/opt/open2x/gcc-4.1.1-glibc-2.3.6 --enable-tremor --with-tremor-prefix=/opt/open2x/gcc-4.1.1-glibc-2.3.6 --enable-zlib --with-zlib-prefix=/opt/open2x/gcc-4.1.1-glibc-2.3.6 --enable-mad --with-mad-prefix=/opt/open2x/gcc-4.1.1-glibc-2.3.6 +#--enable-plugins echo Generating config for GP2X complete. Check for errors. diff --git a/backends/platform/gp2x/module.mk b/backends/platform/gp2x/module.mk index e04816bce3..0d771e2579 100644 --- a/backends/platform/gp2x/module.mk +++ b/backends/platform/gp2x/module.mk @@ -7,7 +7,7 @@ MODULE_OBJS := \ graphics.o \ gp2x.o # gp2x-options.o - # overload_help.o + # overload_help.o MODULE_DIRS += \ backends/platform/gp2x/ diff --git a/backends/platform/gp32/gp32_main.cpp b/backends/platform/gp32/gp32_main.cpp index e985993e5f..3db3dfe553 100644 --- a/backends/platform/gp32/gp32_main.cpp +++ b/backends/platform/gp32/gp32_main.cpp @@ -88,6 +88,6 @@ void GpMain(void *arg) { memBlockDeinit(); g_system->quit(); // TODO: Consider removing / replacing this! - + //return res; } diff --git a/backends/platform/gp32/gp32_osys.cpp b/backends/platform/gp32/gp32_osys.cpp index 56a9f103ed..866d97e966 100644 --- a/backends/platform/gp32/gp32_osys.cpp +++ b/backends/platform/gp32/gp32_osys.cpp @@ -194,7 +194,7 @@ void OSystem_GP32::copyRectToScreen(const byte *src, int pitch, int x, int y, in if (w <= 0 || h <= 0) return; - + byte *dst = _gameScreen + y * _screenWidth + x; if (_screenWidth == pitch && pitch == w) { @@ -346,7 +346,7 @@ void OSystem_GP32::copyRectToOverlay(const OverlayColor *buf, int pitch, int x, if (w <= 0 || h <= 0) return; - + OverlayColor *dst = _overlayBuffer + y * _overlayWidth + x; if (_overlayWidth == pitch && pitch == w) { memcpy(dst, buf, h * w * sizeof(OverlayColor)); @@ -504,7 +504,7 @@ bool OSystem_GP32::pollEvent(Common::Event &event) { if (!gp_pollButtonEvent(&ev)) return false; - + switch(ev.type) { case BUTTON_DOWN: if (ev.button == GPC_VK_LEFT) { @@ -715,9 +715,9 @@ bool OSystem_GP32::setSoundCallback(SoundProc proc, void *param) { if (ConfMan.hasKey("output_rate")) _samplesPerSec = ConfMan.getInt("output_rate"); - + _samplesPerSec = (int)g_vars.sampleRate; //hack - + if (_samplesPerSec == 0) { return false; } diff --git a/backends/platform/gp32/gp32_osys.h b/backends/platform/gp32/gp32_osys.h index 44a313265f..9938671962 100644 --- a/backends/platform/gp32/gp32_osys.h +++ b/backends/platform/gp32/gp32_osys.h @@ -54,7 +54,7 @@ protected: uint32 _shakePos; // Keyboard mouse emulation - struct KbdMouse { + struct KbdMouse { int16 x, y, x_vel, y_vel, x_max, y_max, x_down_count, y_down_count; uint32 last_time, delay_time, x_down_time, y_down_time; }; @@ -73,7 +73,7 @@ protected: byte *_mouseBuf; bool _adjustAspectRatio; - + /** Force full redraw on next updateScreen */ bool _forceFull; diff --git a/backends/platform/gp32/gp32std.cpp b/backends/platform/gp32/gp32std.cpp index 13ec3a1a2a..13c055ebfa 100644 --- a/backends/platform/gp32/gp32std.cpp +++ b/backends/platform/gp32/gp32std.cpp @@ -51,7 +51,7 @@ void _dprintf(const char *s, ...) { if (debnext == DEBUG_MAX) debnext = 0; gp_fillRect(frameBuffer1, 0, 243 - (DEBUG_MAX * 8) - 4, 320, (DEBUG_MAX * 8), 0); - + for (deb = debnext, deba = 0; deb < DEBUG_MAX; deb++, deba++) { //gp_fillRect(frameBuffer1, 0, (243 - (DEBUG_MAX * 8) - 4) + 8 * deba, 320, 8, 0); gp_textOut(frameBuffer1, 0, (240 - (DEBUG_MAX * 8) - 4) + 8 * deba, debline[deb], 0xFFFF); diff --git a/backends/platform/gp32/gp32std_input.cpp b/backends/platform/gp32/gp32std_input.cpp index a3ad7a00c8..41689d9472 100644 --- a/backends/platform/gp32/gp32std_input.cpp +++ b/backends/platform/gp32/gp32std_input.cpp @@ -148,7 +148,7 @@ public: return (numElement == MAX_EVENTS); } - bool get(GP32BtnEvent *ev) { + bool get(GP32BtnEvent *ev) { if (front == rear) { return false; } diff --git a/backends/platform/gp32/gp32std_sound.cpp b/backends/platform/gp32/gp32std_sound.cpp index 71c09c900c..68b33b95f2 100644 --- a/backends/platform/gp32/gp32std_sound.cpp +++ b/backends/platform/gp32/gp32std_sound.cpp @@ -151,7 +151,7 @@ int gp_soundBufStart(GPSOUNDBUF *sb) { } soundBuf.samplesize = 1 << shiftVal; - + // Allocate memory for the playing buffer bufferSize = soundBuf.samplesize * soundBuf.samples * 2; buffer = malloc(bufferSize); diff --git a/backends/platform/gp32/gp_asmlib.s b/backends/platform/gp32/gp_asmlib.s index 3d0bfd9a2e..e1f1d8cb39 100644 --- a/backends/platform/gp32/gp_asmlib.s +++ b/backends/platform/gp32/gp_asmlib.s @@ -322,7 +322,7 @@ _fincol6: gp_clearFramebuffer: @ r0 = framebuffer @ r1 = color - orr r1,r1,r1,lsl #16 @hi halfword = lo halfword + orr r1,r1,r1,lsl #16 @hi halfword = lo halfword mov r2,#38400 clear: str r1,[r0],#4 subs r2,r2,#1 diff --git a/backends/platform/gp32/memcpy.S b/backends/platform/gp32/memcpy.S index 1572831179..12853dbfc4 100644 --- a/backends/platform/gp32/memcpy.S +++ b/backends/platform/gp32/memcpy.S @@ -119,7 +119,7 @@ Lmemcpy_ft8: /* We have aligned source and destination */ subs r2, r2, #8 blt Lmemcpy_fl12 /* less than 12 bytes (4 from above) */ -subs r2, r2, #0x14 +subs r2, r2, #0x14 blt Lmemcpy_fl32 /* less than 32 bytes (12 from above) */ stmdb sp!, {r4} /* borrow r4 */ @@ -130,23 +130,23 @@ ldmia r1!, {r3, r4, r12, lr} stmia r0!, {r3, r4, r12, lr} ldmia r1!, {r3, r4, r12, lr} stmia r0!, {r3, r4, r12, lr} -subs r2, r2, #0x20 +subs r2, r2, #0x20 bge Lmemcpy_floop32 cmn r2, #0x10 ldmgeia r1!, {r3, r4, r12, lr} /* blat a remaining 16 bytes */ stmgeia r0!, {r3, r4, r12, lr} -subge r2, r2, #0x10 +subge r2, r2, #0x10 ldmia sp!, {r4} /* return r4 */ Lmemcpy_fl32: -adds r2, r2, #0x14 +adds r2, r2, #0x14 /* blat 12 bytes at a time */ Lmemcpy_floop12: ldmgeia r1!, {r3, r12, lr} stmgeia r0!, {r3, r12, lr} -subges r2, r2, #0x0c +subges r2, r2, #0x0c bge Lmemcpy_floop12 Lmemcpy_fl12: @@ -201,9 +201,9 @@ ldr lr, [r1], #4 cmp r12, #2 bgt Lmemcpy_fsrcul3 beq Lmemcpy_fsrcul2 -cmp r2, #0x0c +cmp r2, #0x0c blt Lmemcpy_fsrcul1loop4 -sub r2, r2, #0x0c +sub r2, r2, #0x0c stmdb sp!, {r4, r5} Lmemcpy_fsrcul1loop16: @@ -217,10 +217,10 @@ orr r5, r5, r12, lsl #24 mov r12, r12, lsr #8 orr r12, r12, lr, lsl #24 stmia r0!, {r3-r5, r12} -subs r2, r2, #0x10 +subs r2, r2, #0x10 bge Lmemcpy_fsrcul1loop16 ldmia sp!, {r4, r5} -adds r2, r2, #0x0c +adds r2, r2, #0x0c blt Lmemcpy_fsrcul1l4 Lmemcpy_fsrcul1loop4: @@ -236,9 +236,9 @@ sub r1, r1, #3 b Lmemcpy_fl4 Lmemcpy_fsrcul2: -cmp r2, #0x0c +cmp r2, #0x0c blt Lmemcpy_fsrcul2loop4 -sub r2, r2, #0x0c +sub r2, r2, #0x0c stmdb sp!, {r4, r5} Lmemcpy_fsrcul2loop16: @@ -252,10 +252,10 @@ orr r5, r5, r12, lsl #16 mov r12, r12, lsr #16 orr r12, r12, lr, lsl #16 stmia r0!, {r3-r5, r12} -subs r2, r2, #0x10 +subs r2, r2, #0x10 bge Lmemcpy_fsrcul2loop16 ldmia sp!, {r4, r5} -adds r2, r2, #0x0c +adds r2, r2, #0x0c blt Lmemcpy_fsrcul2l4 Lmemcpy_fsrcul2loop4: @@ -271,9 +271,9 @@ sub r1, r1, #2 b Lmemcpy_fl4 Lmemcpy_fsrcul3: -cmp r2, #0x0c +cmp r2, #0x0c blt Lmemcpy_fsrcul3loop4 -sub r2, r2, #0x0c +sub r2, r2, #0x0c stmdb sp!, {r4, r5} Lmemcpy_fsrcul3loop16: @@ -287,10 +287,10 @@ orr r5, r5, r12, lsl #8 mov r12, r12, lsr #24 orr r12, r12, lr, lsl #8 stmia r0!, {r3-r5, r12} -subs r2, r2, #0x10 +subs r2, r2, #0x10 bge Lmemcpy_fsrcul3loop16 ldmia sp!, {r4, r5} -adds r2, r2, #0x0c +adds r2, r2, #0x0c blt Lmemcpy_fsrcul3l4 Lmemcpy_fsrcul3loop4: @@ -330,18 +330,18 @@ ldmdb r1!, {r3, r4, r12, lr} stmdb r0!, {r3, r4, r12, lr} ldmdb r1!, {r3, r4, r12, lr} stmdb r0!, {r3, r4, r12, lr} -subs r2, r2, #0x20 +subs r2, r2, #0x20 bge Lmemcpy_bloop32 Lmemcpy_bl32: -cmn r2, #0x10 +cmn r2, #0x10 ldmgedb r1!, {r3, r4, r12, lr} /* blat a remaining 16 bytes */ stmgedb r0!, {r3, r4, r12, lr} -subge r2, r2, #0x10 -adds r2, r2, #0x14 +subge r2, r2, #0x10 +adds r2, r2, #0x14 ldmgedb r1!, {r3, r12, lr} /* blat a remaining 12 bytes */ stmgedb r0!, {r3, r12, lr} -subge r2, r2, #0x0c +subge r2, r2, #0x0c ldmia sp!, {r4, lr} Lmemcpy_bl12: @@ -393,9 +393,9 @@ ldr r3, [r1, #0] cmp r12, #2 blt Lmemcpy_bsrcul1 beq Lmemcpy_bsrcul2 -cmp r2, #0x0c +cmp r2, #0x0c blt Lmemcpy_bsrcul3loop4 -sub r2, r2, #0x0c +sub r2, r2, #0x0c stmdb sp!, {r4, r5, lr} Lmemcpy_bsrcul3loop16: @@ -409,10 +409,10 @@ orr r5, r5, r4, lsr #24 mov r4, r4, lsl #8 orr r4, r4, r3, lsr #24 stmdb r0!, {r4, r5, r12, lr} -subs r2, r2, #0x10 +subs r2, r2, #0x10 bge Lmemcpy_bsrcul3loop16 ldmia sp!, {r4, r5, lr} -adds r2, r2, #0x0c +adds r2, r2, #0x0c blt Lmemcpy_bsrcul3l4 Lmemcpy_bsrcul3loop4: @@ -428,9 +428,9 @@ add r1, r1, #3 b Lmemcpy_bl4 Lmemcpy_bsrcul2: -cmp r2, #0x0c +cmp r2, #0x0c blt Lmemcpy_bsrcul2loop4 -sub r2, r2, #0x0c +sub r2, r2, #0x0c stmdb sp!, {r4, r5, lr} Lmemcpy_bsrcul2loop16: @@ -444,10 +444,10 @@ orr r5, r5, r4, lsr #16 mov r4, r4, lsl #16 orr r4, r4, r3, lsr #16 stmdb r0!, {r4, r5, r12, lr} -subs r2, r2, #0x10 +subs r2, r2, #0x10 bge Lmemcpy_bsrcul2loop16 ldmia sp!, {r4, r5, lr} -adds r2, r2, #0x0c +adds r2, r2, #0x0c blt Lmemcpy_bsrcul2l4 Lmemcpy_bsrcul2loop4: @@ -463,9 +463,9 @@ add r1, r1, #2 b Lmemcpy_bl4 Lmemcpy_bsrcul1: -cmp r2, #0x0c +cmp r2, #0x0c blt Lmemcpy_bsrcul1loop4 -sub r2, r2, #0x0c +sub r2, r2, #0x0c stmdb sp!, {r4, r5, lr} Lmemcpy_bsrcul1loop32: @@ -479,10 +479,10 @@ orr r5, r5, r4, lsr #8 mov r4, r4, lsl #24 orr r4, r4, r3, lsr #8 stmdb r0!, {r4, r5, r12, lr} -subs r2, r2, #0x10 +subs r2, r2, #0x10 bge Lmemcpy_bsrcul1loop32 ldmia sp!, {r4, r5, lr} -adds r2, r2, #0x0c +adds r2, r2, #0x0c blt Lmemcpy_bsrcul1l4 Lmemcpy_bsrcul1loop4: diff --git a/backends/platform/gp32/portdefs.h b/backends/platform/gp32/portdefs.h index e58c634e16..dd0d70a25a 100644 --- a/backends/platform/gp32/portdefs.h +++ b/backends/platform/gp32/portdefs.h @@ -57,9 +57,9 @@ #undef fseek #undef ferror -#undef clearerr +#undef clearerr -#undef feof +#undef feof #undef getc #define FILE GPFILE diff --git a/backends/platform/iphone/iphone_common.h b/backends/platform/iphone/iphone_common.h index 6a5250a018..3c0d57aeb4 100644 --- a/backends/platform/iphone/iphone_common.h +++ b/backends/platform/iphone/iphone_common.h @@ -57,7 +57,7 @@ extern "C" { // On the C++ side void iphone_main(int argc, char *argv[]); - + // On the ObjC side void iPhone_updateScreen(); void iPhone_updateScreenRect(int x1, int y1, int x2, int y2); diff --git a/backends/platform/iphone/iphone_main.m b/backends/platform/iphone/iphone_main.m index b338bd719a..f7f5667bb5 100644 --- a/backends/platform/iphone/iphone_main.m +++ b/backends/platform/iphone/iphone_main.m @@ -47,9 +47,9 @@ int main(int argc, char** argv) { gArgv = argv; [[NSAutoreleasePool alloc] init]; - + return UIApplicationMain(argc, argv, [iPhoneMain class]); -} +} @implementation iPhoneMain @@ -62,7 +62,7 @@ int main(int argc, char** argv) { - (void) mainLoop: (id)param { [[NSAutoreleasePool alloc] init]; - + iphone_main(gArgc, gArgv); [UIApp terminate]; } @@ -78,13 +78,13 @@ int main(int argc, char** argv) { _window = [[UIWindow alloc] initWithContentRect: [UIHardware fullScreenApplicationContentRect]]; [_window retain]; - + _view = [[iPhoneView alloc] initWithFrame: [UIHardware fullScreenApplicationContentRect]]; [_window setContentView: _view]; - + [_window orderFront: self]; - [_window makeKey: self]; - + [_window makeKey: self]; + [NSThread detachNewThreadSelector:@selector(mainLoop:) toTarget:self withObject:nil]; } diff --git a/backends/platform/iphone/iphone_video.m b/backends/platform/iphone/iphone_video.m index 0bc07c10ac..d3a0b00bbe 100644 --- a/backends/platform/iphone/iphone_video.m +++ b/backends/platform/iphone/iphone_video.m @@ -69,7 +69,7 @@ void iPhone_initSurface(int width, int height, bool landscape) { _width = width; _height = height; _landscape = landscape; - + [sharedInstance performSelectorOnMainThread:@selector(initSurface) withObject:nil waitUntilDone: YES]; } @@ -78,14 +78,14 @@ bool iPhone_fetchEvent(int *outEvent, float *outX, float *outY) { if (event == nil) { return false; } - + id type = [event objectForKey:@"type"]; - + if (type == nil) { printf("fetchEvent says: No type!\n"); - return false; + return false; } - + *outEvent = [type intValue]; *outX = [[event objectForKey:@"x"] floatValue]; *outY = [[event objectForKey:@"y"] floatValue]; @@ -97,10 +97,10 @@ bool getLocalMouseCoords(CGPoint *point) { point->y < _screenRect.origin.y || point->y >= _screenRect.origin.y + _screenRect.size.height) { return false; } - + point->x = (point->x - _screenRect.origin.x) / _screenRect.size.width; point->y = (point->y - _screenRect.origin.y) / _screenRect.size.height; - + return true; } @@ -122,9 +122,9 @@ bool getLocalMouseCoords(CGPoint *point) { -(void) dealloc { [super dealloc]; - + if (_keyboardView != nil) { - [_keyboardView dealloc]; + [_keyboardView dealloc]; } } @@ -136,7 +136,7 @@ bool getLocalMouseCoords(CGPoint *point) { // if (lastTick == 0) { // lastTick = time(0); // } - // + // // frames++; // if (time(0) > lastTick) { // lastTick = time(0); @@ -148,7 +148,7 @@ bool getLocalMouseCoords(CGPoint *point) { - (void)updateScreenRect:(id)rect { NSRect nsRect = [rect rectValue]; CGRect cgRect = CGRectMake(nsRect.origin.x, nsRect.origin.y, nsRect.size.width, nsRect.size.height); - [sharedInstance setNeedsDisplayInRect: cgRect]; + [sharedInstance setNeedsDisplayInRect: cgRect]; } - (void)initSurface { @@ -157,7 +157,7 @@ bool getLocalMouseCoords(CGPoint *point) { int pitch = _width * 2; int allocSize = 2 * _width * _height; char *pixelFormat = "565L"; - + NSDictionary* dict = [[NSDictionary alloc] initWithObjectsAndKeys: kCFBooleanTrue, kCoreSurfaceBufferGlobal, @"PurpleGFXMem", kCoreSurfaceBufferMemoryRegion, @@ -179,7 +179,7 @@ bool getLocalMouseCoords(CGPoint *point) { CoreSurfaceBufferLock(_screenSurface, 3); LKLayer* screenLayer = [[LKLayer layer] retain]; - + if (_keyboardView != nil) { [_keyboardView removeFromSuperview]; [[_keyboardView inputView] removeFromSuperview]; @@ -202,8 +202,8 @@ bool getLocalMouseCoords(CGPoint *point) { //printf("Rect: %i, %i, %i, %i\n", _widthOffset, _heightOffset, rectWidth, rectHeight); _screenRect = CGRectMake(_widthOffset, _heightOffset, rectWidth, rectHeight); - [screenLayer setFrame: _screenRect]; - } else { + [screenLayer setFrame: _screenRect]; + } else { float ratio = (float)_height / (float)_width; _screenRect = CGRectMake(0, 0, _fullWidth, _fullWidth * ratio); [screenLayer setFrame: _screenRect]; @@ -211,9 +211,9 @@ bool getLocalMouseCoords(CGPoint *point) { CGRect keyFrame = CGRectMake(0.0f, _screenRect.size.height, _fullWidth, _fullHeight - _screenRect.size.height); if (_keyboardView == nil) { _keyboardView = [[SoftKeyboard alloc] initWithFrame:keyFrame]; - [_keyboardView setInputDelegate:self]; + [_keyboardView setInputDelegate:self]; } - + [self addSubview:[_keyboardView inputView]]; [self addSubview: _keyboardView]; [[_keyboardView inputView] becomeFirstResponder]; @@ -221,14 +221,14 @@ bool getLocalMouseCoords(CGPoint *point) { [screenLayer setContents: _screenSurface]; [screenLayer setOpaque: YES]; - + if (_screenLayer != nil) { [[sharedInstance _layer] replaceSublayer: _screenLayer with: screenLayer]; } else { [[sharedInstance _layer] addSublayer: screenLayer]; } _screenLayer = screenLayer; - + CoreSurfaceBufferUnlock(_screenSurface); [dict release]; } @@ -253,21 +253,21 @@ bool getLocalMouseCoords(CGPoint *point) { if (event == nil) { return nil; } - + [_events removeObjectAtIndex: 0]; [self unlock]; - + return event; } - (void)addEvent:(NSDictionary*)event { [self lock]; - + if(_events == nil) _events = [[NSMutableArray alloc] init]; - + [_events addObject: event]; - + [self unlock]; } @@ -284,7 +284,7 @@ bool getLocalMouseCoords(CGPoint *point) { - (void)mouseDown:(GSEvent*)event { struct CGPoint point = GSEventGetLocationInWindow(event); - + if (!getLocalMouseCoords(&point)) return; @@ -300,10 +300,10 @@ bool getLocalMouseCoords(CGPoint *point) { - (void)mouseUp:(GSEvent*)event { struct CGPoint point = GSEventGetLocationInWindow(event); - + if (!getLocalMouseCoords(&point)) return; - + [self addEvent: [[NSDictionary alloc] initWithObjectsAndKeys: [NSNumber numberWithInt:kInputMouseUp], @"type", @@ -317,10 +317,10 @@ bool getLocalMouseCoords(CGPoint *point) { - (void)mouseDragged:(GSEvent*)event { //printf("mouseDragged()\n"); struct CGPoint point = GSEventGetLocationInWindow(event); - + if (!getLocalMouseCoords(&point)) return; - + [self addEvent: [[NSDictionary alloc] initWithObjectsAndKeys: [NSNumber numberWithInt:kInputMouseDragged], @"type", @@ -334,10 +334,10 @@ bool getLocalMouseCoords(CGPoint *point) { - (void)mouseEntered:(GSEvent*)event { //printf("mouseEntered()\n"); // struct CGPoint point = GSEventGetLocationInWindow(event); - // + // // if (!getLocalMouseCoords(&point)) // return; - // + // // [self addEvent: // [[NSDictionary alloc] initWithObjectsAndKeys: // [NSNumber numberWithInt:kInputMouseSecondToggled], @"type", @@ -362,10 +362,10 @@ bool getLocalMouseCoords(CGPoint *point) { { //printf("mouseMoved()\n"); struct CGPoint point = GSEventGetLocationInWindow(event); - + if (!getLocalMouseCoords(&point)) return; - + [self addEvent: [[NSDictionary alloc] initWithObjectsAndKeys: [NSNumber numberWithInt:kInputMouseSecondToggled], @"type", @@ -393,7 +393,7 @@ bool getLocalMouseCoords(CGPoint *point) { - (int)swipe:(UIViewSwipeDirection)num withEvent:(GSEvent*)event { //printf("swipe: %i\n", num); - + [self addEvent: [[NSDictionary alloc] initWithObjectsAndKeys: [NSNumber numberWithInt:kInputSwipe], @"type", @@ -416,7 +416,7 @@ bool getLocalMouseCoords(CGPoint *point) { [NSNumber numberWithFloat:0], @"y", nil ] - ]; + ]; } - (void)applicationResume { @@ -427,7 +427,7 @@ bool getLocalMouseCoords(CGPoint *point) { [NSNumber numberWithFloat:0], @"y", nil ] - ]; + ]; } @end diff --git a/backends/platform/iphone/module.mk b/backends/platform/iphone/module.mk index 311a0490c5..a3c9a012fe 100644 --- a/backends/platform/iphone/module.mk +++ b/backends/platform/iphone/module.mk @@ -9,6 +9,6 @@ MODULE_OBJS := \ MODULE_DIRS += \ backends/platform/iphone/ - + # We don't use the rules.mk here on purpose OBJS := $(addprefix $(MODULE)/, $(MODULE_OBJS)) $(OBJS) diff --git a/backends/platform/iphone/osys_iphone.cpp b/backends/platform/iphone/osys_iphone.cpp index 4dc5948aaf..2ca629d0e2 100644 --- a/backends/platform/iphone/osys_iphone.cpp +++ b/backends/platform/iphone/osys_iphone.cpp @@ -63,7 +63,7 @@ OSystem_IPHONE::OSystem_IPHONE() : _needEventRestPeriod(false), _mouseClickAndDragEnabled(false), _gestureStartX(-1), _gestureStartY(-1), _fullScreenIsDirty(false), _mouseDirty(false), _timeSuspended(0) -{ +{ _queuedInputEvent.type = (Common::EventType)0; _lastDrawnMouseRect = Common::Rect(0, 0, 0, 0); } @@ -95,7 +95,7 @@ void OSystem_IPHONE::initBackend() { setTimerCallback(&OSystem_IPHONE::timerHandler, 10); OSystem::initBackend(); -} +} bool OSystem_IPHONE::hasFeature(Feature f) { return false; @@ -136,7 +136,7 @@ void OSystem_IPHONE::initSize(uint width, uint height) { _screenHeight = height; free(_offscreen); - + _offscreen = (byte *)malloc(width * height); bzero(_offscreen, width * height); @@ -145,12 +145,12 @@ void OSystem_IPHONE::initSize(uint width, uint height) { int fullSize = _screenWidth * _screenHeight * sizeof(OverlayColor); _overlayBuffer = (OverlayColor *)malloc(fullSize); clearOverlay(); - + free(_fullscreen); _fullscreen = (uint16 *)malloc(fullSize); bzero(_fullscreen, fullSize); - + if (_screenOrientation != kScreenOrientationPortrait) iPhone_initSurface(height, width, true); else @@ -177,7 +177,7 @@ void OSystem_IPHONE::setPalette(const byte *colors, uint start, uint num) { _palette[i] = RGBToColor(b[0], b[1], b[2]); b += 4; } - + dirtyFullScreen(); } @@ -210,12 +210,12 @@ void OSystem_IPHONE::copyRectToScreen(const byte *buf, int pitch, int x, int y, if (w <= 0 || h <= 0) return; - + if (!_fullScreenIsDirty) { _dirtyRects.push_back(Common::Rect(x, y, x + w, y + h)); } - - + + byte *dst = _offscreen + y * _screenWidth + x; if (_screenWidth == pitch && pitch == w) memcpy(dst, buf, h * w); @@ -233,7 +233,7 @@ void OSystem_IPHONE::addDirtyRect(int16 x, int16 y, int16 w, int16 h) { return; } - clipRectToScreen(x, y, w, h); + clipRectToScreen(x, y, w, h); _dirtyRects.push_back(Common::Rect(x, y, x + w, y + h)); } @@ -257,7 +257,7 @@ void OSystem_IPHONE::clipRectToScreen(int16 &x, int16 &y, int16 &w, int16 &h) { if (w < 0) { w = 0; } - + if (h < 0) { h = 0; } @@ -268,7 +268,7 @@ void OSystem_IPHONE::updateScreen() { if (_dirtyRects.size() == 0 && !_mouseDirty) return; - + internUpdateScreen(); _fullScreenIsDirty = false; @@ -320,7 +320,7 @@ void OSystem_IPHONE::internUpdateScreen() { uint16 *dst = &_fullscreen[dirtyRect.left * _screenHeight + (_screenHeight - dirtyRect.bottom)]; blitLandscapeScreenRect16bpp(dst, src, w, h, -_screenWidth, -_screenHeight); break; - } + } case kScreenOrientationFlippedLandscape: { uint16 *src = (uint16 *)&_overlayBuffer[dirtyRect.top * _screenWidth + dirtyRect.left]; uint16 *dst = &_fullscreen[(_screenWidth - dirtyRect.left - 1) * _screenHeight + dirtyRect.top]; @@ -354,9 +354,9 @@ void OSystem_IPHONE::internUpdateScreen() { blitLandscapeScreenRect8bpp(dst, src, w, h, _palette, _screenWidth, _screenHeight); break; } - } + } } - + //draw mouse on top if (_mouseVisible && (dirtyRect.intersects(mouseRect))) { int srcX = 0; @@ -364,12 +364,12 @@ void OSystem_IPHONE::internUpdateScreen() { int left = _mouseX - _mouseHotspotX; if (left < 0) { srcX -= left; - left = 0; + left = 0; } int top = _mouseY - _mouseHotspotY; if (top < 0) { srcY -= top; - top = 0; + top = 0; } //int right = left + _mouseWidth; @@ -380,7 +380,7 @@ void OSystem_IPHONE::internUpdateScreen() { int displayWidth = _mouseWidth; if (_mouseWidth + left > _screenWidth) displayWidth = _screenWidth - left; - + int displayHeight = _mouseHeight; if (_mouseHeight + top > _screenHeight) displayHeight = _screenHeight - top; @@ -463,7 +463,7 @@ void OSystem_IPHONE::internUpdateScreen() { fs += _screenHeight; } break; - } + } case kScreenOrientationFlippedLandscape: { int height = h * 2; int offset = ((_screenWidth - dirtyRect.left - 1) * _screenHeight + dirtyRect.top); @@ -475,17 +475,17 @@ void OSystem_IPHONE::internUpdateScreen() { fs -= _screenHeight; } break; - } + } } } - + //iPhone_updateScreenRect(dirtyRect.left, dirtyRect.top, dirtyRect.right, dirtyRect.bottom ); } } Graphics::Surface *OSystem_IPHONE::lockScreen() { //printf("lockScreen()\n"); - + _framebuffer.pixels = _offscreen; _framebuffer.w = _screenWidth; _framebuffer.h = _screenHeight; @@ -560,9 +560,9 @@ void OSystem_IPHONE::copyRectToOverlay(const OverlayColor *buf, int pitch, int x return; if (!_fullScreenIsDirty) { - _dirtyRects.push_back(Common::Rect(x, y, x + w, y + h)); + _dirtyRects.push_back(Common::Rect(x, y, x + w, y + h)); } - + OverlayColor *dst = _overlayBuffer + (y * _screenWidth + x); if (_screenWidth == pitch && pitch == w) memcpy(dst, buf, h * w * sizeof(OverlayColor)); @@ -593,14 +593,14 @@ bool OSystem_IPHONE::showMouse(bool visible) { void OSystem_IPHONE::warpMouse(int x, int y) { //printf("warpMouse()\n"); - + _mouseX = x; _mouseY = y; _mouseDirty = true; } void OSystem_IPHONE::dirtyMouseCursor() { - addDirtyRect(_mouseX - _mouseHotspotX, _mouseY - _mouseHotspotY, _mouseX + _mouseWidth - _mouseHotspotX, _mouseY + _mouseHeight - _mouseHotspotY); + addDirtyRect(_mouseX - _mouseHotspotX, _mouseY - _mouseHotspotY, _mouseX + _mouseWidth - _mouseHotspotX, _mouseY + _mouseHeight - _mouseHotspotY); } void OSystem_IPHONE::dirtyFullScreen() { @@ -618,7 +618,7 @@ void OSystem_IPHONE::setMouseCursor(const byte *buf, uint w, uint h, int hotspot free(_mouseBuf); _mouseBuf = NULL; } - + if (_mouseBuf == NULL) _mouseBuf = (byte *)malloc(w * h); @@ -629,7 +629,7 @@ void OSystem_IPHONE::setMouseCursor(const byte *buf, uint w, uint h, int hotspot _mouseHotspotY = hotspotY; _mouseKeyColour = keycolor; - + memcpy(_mouseBuf, buf, w * h); _mouseDirty = true; @@ -639,12 +639,12 @@ bool OSystem_IPHONE::pollEvent(Common::Event &event) { //printf("pollEvent()\n"); long curTime = getMillis(); - + if (_timerCallback && (curTime >= _timerCallbackNext)) { _timerCallback(_timerCallbackTimer); _timerCallbackNext = curTime + _timerCallbackTimer; } - + if (_needEventRestPeriod) { // Workaround: Some engines can't handle mouse-down and mouse-up events // appearing right after each other, without a call returning no input in between. @@ -667,7 +667,7 @@ bool OSystem_IPHONE::pollEvent(Common::Event &event) { switch (_screenOrientation) { case kScreenOrientationPortrait: x = (int)(xUnit * _screenWidth); - y = (int)(yUnit * _screenHeight); + y = (int)(yUnit * _screenHeight); break; case kScreenOrientationLandscape: x = (int)(yUnit * _screenWidth); @@ -676,13 +676,13 @@ bool OSystem_IPHONE::pollEvent(Common::Event &event) { case kScreenOrientationFlippedLandscape: x = (int)((1.0 - yUnit) * _screenWidth); y = (int)(xUnit * _screenHeight); - break; + break; } switch ((InputEvent)eventType) { case kInputMouseDown: //printf("Mouse down at (%u, %u)\n", x, y); - + // Workaround: kInputMouseSecondToggled isn't always sent when the // secondary finger is lifted. Need to make sure we get out of that mode. _secondaryTapped = false; @@ -697,7 +697,7 @@ bool OSystem_IPHONE::pollEvent(Common::Event &event) { event.mouse.x = _mouseX; event.mouse.y = _mouseY; return true; - } else { + } else { _lastMouseDown = curTime; } return false; @@ -739,7 +739,7 @@ bool OSystem_IPHONE::pollEvent(Common::Event &event) { if (lengthSq > 15000) { // Long enough gesture to react upon. _gestureStartX = -1; _gestureStartY = -1; - + float vecLength = sqrt(lengthSq); float vecXNorm = vecX / vecLength; float vecYNorm = vecY / vecLength; @@ -770,8 +770,8 @@ bool OSystem_IPHONE::pollEvent(Common::Event &event) { // Swipe right // _secondaryTapped = !_secondaryTapped; // _gestureStartX = x; - // _gestureStartY = y; - // + // _gestureStartY = y; + // // GUI::TimedMessageDialog dialog("Forcing toggle of pressed state.", 1500); // dialog.runModal(); return false; @@ -800,7 +800,7 @@ bool OSystem_IPHONE::pollEvent(Common::Event &event) { event.type = Common::EVENT_LBUTTONUP; event.mouse.x = _mouseX; event.mouse.y = _mouseY; - + _queuedInputEvent.type = Common::EVENT_RBUTTONDOWN; _queuedInputEvent.mouse.x = _mouseX; _queuedInputEvent.mouse.y = _mouseY; @@ -812,11 +812,11 @@ bool OSystem_IPHONE::pollEvent(Common::Event &event) { if (curTime - _lastSecondaryTap < 250 && !_overlayVisible) { event.type = Common::EVENT_KEYDOWN; _queuedInputEvent.type = Common::EVENT_KEYUP; - + event.kbd.flags = _queuedInputEvent.kbd.flags = 0; event.kbd.keycode = _queuedInputEvent.kbd.keycode = Common::KEYCODE_ESCAPE; - event.kbd.ascii = _queuedInputEvent.kbd.ascii = Common::ASCII_ESCAPE; - _needEventRestPeriod = true; + event.kbd.ascii = _queuedInputEvent.kbd.ascii = Common::ASCII_ESCAPE; + _needEventRestPeriod = true; _lastSecondaryTap = 0; } else if (!_mouseClickAndDragEnabled) { event.type = Common::EVENT_RBUTTONDOWN; @@ -833,8 +833,8 @@ bool OSystem_IPHONE::pollEvent(Common::Event &event) { event.type = Common::EVENT_RBUTTONUP; event.mouse.x = _mouseX; event.mouse.y = _mouseY; - } - } + } + } break; case kInputOrientationChanged: //printf("Orientation: %i", (int)xUnit); @@ -864,7 +864,7 @@ bool OSystem_IPHONE::pollEvent(Common::Event &event) { dirtyFullScreen(); updateScreen(); - } + } break; case kInputApplicationSuspended: @@ -930,9 +930,9 @@ bool OSystem_IPHONE::pollEvent(Common::Event &event) { event.kbd.flags = _queuedInputEvent.kbd.flags = 0; event.kbd.keycode = _queuedInputEvent.kbd.keycode = (Common::KeyCode)keyPressed; event.kbd.ascii = _queuedInputEvent.kbd.ascii = ascii; - _needEventRestPeriod = true; + _needEventRestPeriod = true; break; - + case kInputSwipe: { Common::KeyCode keycode = Common::KEYCODE_INVALID; switch (_screenOrientation) { @@ -989,7 +989,7 @@ bool OSystem_IPHONE::pollEvent(Common::Event &event) { default: return false; } - break; + break; } event.kbd.keycode = _queuedInputEvent.kbd.keycode = keycode; @@ -997,10 +997,10 @@ bool OSystem_IPHONE::pollEvent(Common::Event &event) { event.type = Common::EVENT_KEYDOWN; _queuedInputEvent.type = Common::EVENT_KEYUP; event.kbd.flags = _queuedInputEvent.kbd.flags = 0; - _needEventRestPeriod = true; + _needEventRestPeriod = true; break; } - + default: break; } @@ -1022,7 +1022,7 @@ void OSystem_IPHONE::suspendLoop() { if (iPhone_fetchEvent(&eventType, &xUnit, &yUnit)) if ((InputEvent)eventType == kInputApplicationResumed) done = true; - usleep(100000); + usleep(100000); } AudioQueueStart(s_AudioQueue.queue, NULL); @@ -1047,14 +1047,14 @@ OSystem::MutexRef OSystem_IPHONE::createMutex(void) { pthread_mutexattr_t attr; pthread_mutexattr_init(&attr); pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); - + pthread_mutex_t *mutex = (pthread_mutex_t *) malloc(sizeof(pthread_mutex_t)); if (pthread_mutex_init(mutex, &attr) != 0) { printf("pthread_mutex_init() failed!\n"); free(mutex); return NULL; } - + return (MutexRef)mutex; } @@ -1074,7 +1074,7 @@ void OSystem_IPHONE::deleteMutex(MutexRef mutex) { if (pthread_mutex_destroy((pthread_mutex_t *) mutex) != 0) { printf("pthread_mutex_destroy() failed!\n"); } else { - free(mutex); + free(mutex); } } @@ -1117,7 +1117,7 @@ bool OSystem_IPHONE::setSoundCallback(SoundProc proc, void *param) { } AQBufferCallback(&s_AudioQueue, s_AudioQueue.queue, s_AudioQueue.buffers[i]); - } + } AudioQueueSetParameter(s_AudioQueue.queue, kAudioQueueParam_Volume, 1.0); if (AudioQueueStart(s_AudioQueue.queue, NULL)) { @@ -1137,8 +1137,8 @@ int OSystem_IPHONE::getOutputSampleRate() const { } void OSystem_IPHONE::setTimerCallback(TimerProc callback, int interval) { - //printf("setTimerCallback()\n"); - + //printf("setTimerCallback()\n"); + if (callback != NULL) { _timerCallbackTimer = interval; _timerCallbackNext = getMillis() + interval; @@ -1173,7 +1173,7 @@ OSystem *OSystem_IPHONE_create() { } void iphone_main(int argc, char *argv[]) { - + // Redirect stdout and stderr if we're launching from the Springboard. if (argc == 2 && strcmp(argv[1], "--launchedFromSB") == 0) { FILE *newfp = fopen("/tmp/scummvm.log", "a"); @@ -1183,11 +1183,11 @@ void iphone_main(int argc, char *argv[]) { *stdout = *newfp; *stderr = *newfp; setbuf(stdout, NULL); - setbuf(stderr, NULL); + setbuf(stderr, NULL); //extern int gDebugLevel; //gDebugLevel = 10; - } + } } g_system = OSystem_IPHONE_create(); diff --git a/backends/platform/iphone/osys_iphone.h b/backends/platform/iphone/osys_iphone.h index 2d0bea310d..eeb8504680 100644 --- a/backends/platform/iphone/osys_iphone.h +++ b/backends/platform/iphone/osys_iphone.h @@ -34,7 +34,7 @@ typedef void (*SoundProc)(void *param, byte *buf, int len); typedef int (*TimerProc)(int interval); - + typedef struct AQCallbackStruct { AudioQueueRef queue; uint32 frameCount; @@ -49,7 +49,7 @@ protected: static AQCallbackStruct s_AudioQueue; static SoundProc s_soundCallback; static void *s_soundParam; - + Common::SaveFileManager *_savefile; Audio::Mixer *_mixer; Common::TimerManager *_timer; @@ -153,7 +153,7 @@ public: virtual Common::SaveFileManager *getSavefileManager(); virtual Audio::Mixer *getMixer(); virtual Common::TimerManager *getTimerManager(); - + protected: inline void addDirtyRect(int16 x1, int16 y1, int16 w, int16 h); void internUpdateScreen(); diff --git a/backends/platform/maemo/hildon.cpp b/backends/platform/maemo/hildon.cpp index d4f2aa122d..697e4d8b70 100644 --- a/backends/platform/maemo/hildon.cpp +++ b/backends/platform/maemo/hildon.cpp @@ -16,13 +16,13 @@ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * $URL$ * $Id$ * */ - + #include <hildon-widgets/hildon-app.h> #include <gtk/gtk.h> #include <libosso.h> @@ -108,9 +108,9 @@ int main(int argc, char *argv[]) { gtk_box_pack_start(GTK_BOX(main_vbox), label, FALSE, TRUE, 0); // Add handler for hello D-BUS messages - result = osso_rpc_set_cb_f(appdata->osso_context, - OSSO_APP_SERVICE, - OSSO_APP_OBJECT, + result = osso_rpc_set_cb_f(appdata->osso_context, + OSSO_APP_SERVICE, + OSSO_APP_OBJECT, OSSO_APP_IFACE, dbus_req_handler, appdata); if (result != OSSO_OK) { diff --git a/backends/platform/maemo/main.cpp b/backends/platform/maemo/main.cpp index af5c6b4c10..cbf271b970 100644 --- a/backends/platform/maemo/main.cpp +++ b/backends/platform/maemo/main.cpp @@ -16,15 +16,15 @@ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * $URL$ * $Id$ * */ - + #include <common/scummsys.h> -#include <X11/Xlib.h> +#include <X11/Xlib.h> #include <X11/extensions/Xsp.h> #include <SDL/SDL.h> @@ -63,7 +63,7 @@ int main(int argc, char *argv[]) { // return OSSO_ERROR; //} - // Maemo task navigator priority inheritance fix + // Maemo task navigator priority inheritance fix setpriority(PRIO_PROCESS, 0, 0); set_doubling(0); @@ -79,6 +79,6 @@ int main(int argc, char *argv[]) { //osso_deinitialize(osso_context); set_doubling(0); - + return res; } diff --git a/backends/platform/maemo/portdefs.h b/backends/platform/maemo/portdefs.h index eec82858c5..52d16fd820 100644 --- a/backends/platform/maemo/portdefs.h +++ b/backends/platform/maemo/portdefs.h @@ -16,7 +16,7 @@ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * $URL$ * $Id$ diff --git a/backends/platform/maemo/scummvm-0.11.0-maemo.patch b/backends/platform/maemo/scummvm-0.11.0-maemo.patch index 35cb162a2b..9014a326cb 100644 --- a/backends/platform/maemo/scummvm-0.11.0-maemo.patch +++ b/backends/platform/maemo/scummvm-0.11.0-maemo.patch @@ -197,7 +197,7 @@ diff -Naur scummvm-0.11.orig/debian/rules scummvm-0.11/debian/rules + install -m0644 -d debian/scummvm/usr/share/scummvm + install -m0644 dists/pred.dic debian/scummvm/usr/share/scummvm +# install -m0644 gui/themes/modern.ini gui/themes/modern.zip gui/themes/classic080.ini debian/scummvm/usr/share/scummvm -+ ++ +binary: binary-arch + +binary-arch: build install @@ -275,7 +275,7 @@ diff -Naur scummvm-0.11.orig/debian/scummvm.substvars scummvm-0.11/debian/scummv _keyboardEvent.pending = true; _keyboardEvent.kbd = event.kbd; } -+ ++ + break; +#ifdef MAEMO_SDL + case Common::EVENT_KEYUP: @@ -297,7 +297,7 @@ diff -Naur scummvm-0.11.orig/debian/scummvm.substvars scummvm-0.11/debian/scummv +#ifdef MAEMO_SDL + switch (_keyPressed.keycode) { -+ case Common::KEYCODE_F8: _fastMode ^= 1; break ;// Map F8 (zoom out) to toggle fast mode ++ case Common::KEYCODE_F8: _fastMode ^= 1; break ;// Map F8 (zoom out) to toggle fast mode + case Common::KEYCODE_F4: _keyPressed.keycode = Common::KEYCODE_F5; _keyPressed.ascii=Common::ASCII_F5 ; break; // map F4 to F5 (menu key) + case Common::KEYCODE_RETURN: _keyPressed.keycode = Common::KEYCODE_TAB; _keyPressed.ascii=Common::ASCII_TAB ; break; // map Select (return) to Tab (right mouse button) + case Common::KEYCODE_F7: if(_game.id == GID_MONKEY2){ _keyPressed.ascii = '1';_keyPressed.keycode=Common::KEYCODE_1;} break; // map F7 (zoom in) to 1 (to bypass Monkey2 copy protection) @@ -552,7 +552,7 @@ diff -Naur scummvm-0.11.orig/debian/scummvm.substvars scummvm-0.11/debian/scummv + case Common::KEYCODE_F7: + if (inMenu) + lastKeyStroke = '2'; -+ else ++ else + if (allowPlayerInput) { + playerCommand = 3; // USE + makeCommandLine(); @@ -656,13 +656,13 @@ diff -Naur scummvm-0.11.orig/debian/scummvm.substvars scummvm-0.11/debian/scummv +#define ENG_OTHER -1 +//#define ENG_SCUMM 1 + static int game=0; -+#define GAME_OTHER -1 ++#define GAME_OTHER -1 +#define GAME_LURE 1 +//#define GAME_SWORD1 2 +//#define GAME_SWORD2 3 + if (!engine){ + // one time initialization -+ Common::String gameid(ConfMan.get("gameid")); ++ Common::String gameid(ConfMan.get("gameid")); + if (gameid == "lure") { + game=GAME_LURE; + engine=ENG_OTHER; @@ -673,7 +673,7 @@ diff -Naur scummvm-0.11.orig/debian/scummvm.substvars scummvm-0.11/debian/scummv + } + // engine specific mappings + switch (engine){ -+ ++ + } + // game specific mapping + switch (game) { @@ -687,13 +687,13 @@ diff -Naur scummvm-0.11.orig/debian/scummvm.substvars scummvm-0.11/debian/scummv + break; + case SDLK_F4: // map menu to right click + event.type = ((ev.type==SDL_KEYUP) ? Common::EVENT_RBUTTONUP : Common::EVENT_RBUTTONDOWN ); -+ event.mouse.x = _mouseCurState.x; -+ event.mouse.y = _mouseCurState.y; -+ return true; ++ event.mouse.x = _mouseCurState.x; ++ event.mouse.y = _mouseCurState.y; ++ return true; + default: + ; + } -+ break; ++ break; + } +#endif //SDL_MAEMO + diff --git a/backends/platform/ps2/Gs2dScreen.cpp b/backends/platform/ps2/Gs2dScreen.cpp index 1de3c5e8c8..e42def535c 100644 --- a/backends/platform/ps2/Gs2dScreen.cpp +++ b/backends/platform/ps2/Gs2dScreen.cpp @@ -149,7 +149,7 @@ Gs2dScreen::Gs2dScreen(uint16 width, uint16 height, TVMode tvMode) { _videoMode = tvMode; printf("Setting up %s mode\n", (_videoMode == TV_PAL) ? "PAL" : "NTSC"); - + // set screen size, 640x544 for pal, 640x448 for ntsc _tvWidth = 640; _tvHeight = ((_videoMode == TV_PAL) ? 544 : 448); @@ -175,7 +175,7 @@ Gs2dScreen::Gs2dScreen(uint16 width, uint16 height, TVMode tvMode) { _clutPtrs[TEXT] = _clutPtrs[SCREEN] + 0x2000; _texPtrs[SCREEN] = _clutPtrs[SCREEN] + 0x3000; _texPtrs[TEXT] = 0; // these buffers are stored in the alpha gaps of the frame buffers - _texPtrs[MOUSE] = 128 * 256 * 4; + _texPtrs[MOUSE] = 128 * 256 * 4; _texPtrs[PRINTF] = _texPtrs[MOUSE] + M_SIZE * M_SIZE * 4; _showOverlay = false; @@ -224,7 +224,7 @@ Gs2dScreen::Gs2dScreen(uint16 width, uint16 height, TVMode tvMode) { updateScreen(); createAnimTextures(); - + // create anim thread ee_thread_t animThread, thisThread; ReferThreadStatus(GetThreadId(), &thisThread); @@ -621,7 +621,7 @@ void Gs2dScreen::animThread(void) { do { WaitSema(g_AnimSema); } while ((!_systemQuit) && (!g_RunAnim)); - + if (_systemQuit) break; @@ -746,7 +746,7 @@ const uint32 Gs2dScreen::_binaryClut[16] __attribute__((aligned(64))) = { GS_RGBA( 0, 0, 0, 0x20), // scrPrintf: semitransparent GS_RGBA(0xC0, 0xC0, 0xC0, 0), // scrPrintf: red GS_RGBA(0x16, 0x16, 0xF0, 0), // scrPrintf: blue - + GS_RGBA(0xFF, 0xFF, 0xFF, 0x80), GS_RGBA(0xFF, 0xFF, 0xFF, 0x80), // unused GS_RGBA(0xFF, 0xFF, 0xFF, 0x80), GS_RGBA(0xFF, 0xFF, 0xFF, 0x80), GS_RGBA(0xFF, 0xFF, 0xFF, 0x80), GS_RGBA(0xFF, 0xFF, 0xFF, 0x80), diff --git a/backends/platform/ps2/cd.c b/backends/platform/ps2/cd.c index 5694d9a960..cd44b3d034 100644 --- a/backends/platform/ps2/cd.c +++ b/backends/platform/ps2/cd.c @@ -29,7 +29,7 @@ int cdvdInit(int mode) u8 *pkt; cdvdCd.server = NULL; - + do { if ((ret = SifBindRpc(&cdvdCd, CDVD_INIT_BIND_RPC, 0)) < 0) { return -1; @@ -40,14 +40,14 @@ int cdvdInit(int mode) } while(!cdvdCd.server); - pkt = sendBuffer; + pkt = sendBuffer; PUSHDATA( int, pkt, mode, i); pkt += i; len += i; if ((ret = SifCallRpc(&cdvdCd, 0, 0, sendBuffer, len, NULL, 0, 0, 0)) < 0) return -1; - + cdvdInitialised = 1; - + return 0; } diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.c b/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.c index e5eb76fdc8..b423b44a1d 100644 --- a/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.c +++ b/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.c @@ -76,7 +76,7 @@ int cacheEnterDir(ISODirectoryRecord *dir) { cacheName = cachedDir + strlen(cachedDir); memcpy(cacheName, dir->name, dir->len_fi); cacheName[dir->len_fi] = '/'; - cacheName[dir->len_fi + 1] = '\0'; + cacheName[dir->len_fi + 1] = '\0'; return cdReadSectors(cachedDirLba, 1, cacheBuf, &rmode); } @@ -144,7 +144,7 @@ ISODirectoryRecord *findPath(const char *path) { initRootCache(); return (ISODirectoryRecord *)cacheBuf; } - + do { tok = strchr(path, '/'); if (tok) diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.c b/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.c index 75d4adf128..592f9ca61f 100644 --- a/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.c +++ b/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.c @@ -159,7 +159,7 @@ int cd_read(iop_file_t *handle, void *dest, int length) { doCopy = 0x800 - readPos; if (doCopy > bytesLeft) doCopy = bytesLeft; - + memcpy(destPos, fd->buf + readPos, doCopy); readPos += doCopy; readLba += readPos >> 11; @@ -177,7 +177,7 @@ int cd_read(iop_file_t *handle, void *dest, int length) { bytesLeft &= 0x7FF; } } - return destPos - (uint8*)dest; + return destPos - (uint8*)dest; } int cd_close(iop_file_t *handle) { @@ -201,7 +201,7 @@ int cd_dopen(iop_file_t *handle, const char *path) { return -ENOENT; fdSlot = allocDioHandle(); - + if (fdSlot < 0) return -ENFILE; diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/imports.lst b/backends/platform/ps2/iop/CoDyVDfs/iop/imports.lst index d3ed3b0442..eb85e04462 100644 --- a/backends/platform/ps2/iop/CoDyVDfs/iop/imports.lst +++ b/backends/platform/ps2/iop/CoDyVDfs/iop/imports.lst @@ -24,10 +24,10 @@ I_DelDrv iomanX_IMPORTS_end sifcmd_IMPORTS_start -I_sceSifInitRpc -I_sceSifSetRpcQueue -I_sceSifRegisterRpc -I_sceSifRpcLoop +I_sceSifInitRpc +I_sceSifSetRpcQueue +I_sceSifRegisterRpc +I_sceSifRpcLoop sifcmd_IMPORTS_end stdio_IMPORTS_start @@ -59,7 +59,7 @@ thbase_IMPORTS_start I_CreateThread I_StartThread I_GetThreadId -I_DelayThread +I_DelayThread thbase_IMPORTS_end diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/rpcfs.c b/backends/platform/ps2/iop/CoDyVDfs/iop/rpcfs.c index c46d452d2c..a9bfd636c7 100644 --- a/backends/platform/ps2/iop/CoDyVDfs/iop/rpcfs.c +++ b/backends/platform/ps2/iop/CoDyVDfs/iop/rpcfs.c @@ -48,7 +48,7 @@ int initRpc(void) { thread.attr = 0; tid = CreateThread(&thread); - if (tid >= 0) + if (tid >= 0) StartThread(tid, 0); else { printf("Unable to start RPC Thread!\n"); diff --git a/backends/platform/ps2/irxboot.cpp b/backends/platform/ps2/irxboot.cpp index 5c2cc8fa4c..01dc544f24 100644 --- a/backends/platform/ps2/irxboot.cpp +++ b/backends/platform/ps2/irxboot.cpp @@ -75,7 +75,7 @@ BootDevice detectBootPath(const char *elfPath, char *bootPath) { device = OTHER; sioprintf("elf path: %s, device %d", elfPath, device); - + strcpy(bootPath, elfPath); char *pathPos = bootPath; @@ -117,7 +117,7 @@ BootDevice detectBootPath(const char *elfPath, char *bootPath) { return device; } -int loadIrxModules(int device, const char *irxPath, IrxReference **modules) { +int loadIrxModules(int device, const char *irxPath, IrxReference **modules) { IrxReference *resModules = (IrxReference *)malloc(numIrxFiles * sizeof(IrxReference)); IrxReference *curModule = resModules; diff --git a/backends/platform/ps2/savefile.cpp b/backends/platform/ps2/savefile.cpp index 3865278788..425a4ae09f 100644 --- a/backends/platform/ps2/savefile.cpp +++ b/backends/platform/ps2/savefile.cpp @@ -56,7 +56,7 @@ public: int read(int fd, void *buf, int size); int write(int fd, const void *buf, int size); int mkDir(const char *name); - int getDir(const char *name, unsigned int mode, int max, void *dest); + int getDir(const char *name, unsigned int mode, int max, void *dest); int getInfo(int *type, int *free, int *format); int remove(const char *name); private: @@ -290,7 +290,7 @@ Ps2SaveFileManager::Ps2SaveFileManager(OSystem_PS2 *system, Gs2dScreen *screen) saveThread.initial_priority = thisThread.current_priority + 1; saveThread.stack_size = 8 * 1024; - _autoSaveStack = malloc(saveThread.stack_size); + _autoSaveStack = malloc(saveThread.stack_size); saveThread.stack = _autoSaveStack; saveThread.func = (void *)runSaveThread; saveThread.gp_reg = &_gp; diff --git a/backends/platform/ps2/savefile.h b/backends/platform/ps2/savefile.h index f72177e7ca..b6019192ae 100644 --- a/backends/platform/ps2/savefile.h +++ b/backends/platform/ps2/savefile.h @@ -45,7 +45,7 @@ public: void writeSaveNonblocking(char *name, void *buf, uint32 size); void saveThread(void); void quit(void); - + private: bool setupIcon(const char *dest, const char *ico, const char *descr1, const char *descr2); diff --git a/backends/platform/ps2/systemps2.cpp b/backends/platform/ps2/systemps2.cpp index f842874850..59b05c8e0b 100644 --- a/backends/platform/ps2/systemps2.cpp +++ b/backends/platform/ps2/systemps2.cpp @@ -204,7 +204,7 @@ void OSystem_PS2::startIrxModules(int numModules, IrxReference *modules) { } } else sioprintf("Module \"%s\" wasn't found: %d", modules[i].path, modules[i].errorCode); - + if ((modules[i].errorCode < 0) || (res < 0) || (rv < 0)) { if (!(modules[i].fileRef->flags & OPTIONAL)) { if (modules[i].errorCode < 0) @@ -215,7 +215,7 @@ void OSystem_PS2::startIrxModules(int numModules, IrxReference *modules) { quit(); } } - + if (modules[i].buffer); free(modules[i].buffer); } else { @@ -475,7 +475,7 @@ void OSystem_PS2::soundThread(void) { SjPCM_Enqueue((short int*)soundBufL, (short int*)soundBufR, SMP_PER_BLOCK, 0); bufferedSamples += SMP_PER_BLOCK; } - } + } SignalSema(_soundSema); } free(soundBufL); @@ -710,7 +710,7 @@ void OSystem_PS2::msgPrintf(int millis, char *format, ...) { while ((*lnEnd) && (*lnEnd != '\n')) lnEnd++; *lnEnd = '\0'; - + Common::String str(lnSta); int width = Graphics::g_sysfont.getStringWidth(str); if (width > maxWidth) diff --git a/backends/platform/psp/Makefile b/backends/platform/psp/Makefile index 1406e560a6..2ff47e057b 100644 --- a/backends/platform/psp/Makefile +++ b/backends/platform/psp/Makefile @@ -35,14 +35,14 @@ endif INCDIR := $(srcdir) . $(srcdir)/engines/ . $(PSPSDK)/include LIBDIR := $(LIBDIR) . $(PSPSDK)/lib -CXXFLAGS = -O2 -Wall -D__PSP__ -DNONSTANDARD_PORT -DUSE_ZLIB -Wno-multichar `$(PSPBIN)/sdl-config --cflags` +CXXFLAGS = -O2 -Wall -D__PSP__ -DNONSTANDARD_PORT -DUSE_ZLIB -Wno-multichar `$(PSPBIN)/sdl-config --cflags` CXXFLAGS:= $(addprefix -I,$(INCDIR)) $(CXXFLAGS) LDFLAGS := $(addprefix -L,$(LIBDIR)) $(LDFLAGS) -LIBS = +LIBS = #comment this out if you don't want to use libmad CXXFLAGS+= -DUSE_MAD -LIBS += -lmad +LIBS += -lmad #comment this out if you don't want to use libtremor CXXFLAGS+= -DUSE_VORBIS -DUSE_TREMOR diff --git a/backends/platform/psp/README.PSP b/backends/platform/psp/README.PSP index 12d26f5ac4..9fff9178bd 100644 --- a/backends/platform/psp/README.PSP +++ b/backends/platform/psp/README.PSP @@ -1,4 +1,4 @@ -ScummVM-PSP 0.10.0SVN README +ScummVM-PSP 0.10.0SVN README =========================== Installation @@ -13,7 +13,7 @@ Controls ======== Left trigger - ESC -Right trigger - Enter +Right trigger - Enter Analog - Mouse movement Directionals - Mouse movement Analog + triangle - Fine control mouse @@ -58,7 +58,7 @@ A: If your version of Monkey Island came on a CD then it has the music to the same directory as the game datafiles for music to work. Q: Game X crashes, or feature Y doesn't work. Can you fix this? -A: Possibly. +A: Possibly. Because of the large amount of games ScummVM supports we obviously haven't played them all start-to-finish on the PSP, so it's possible there are bugs or issues that we're not aware of. diff --git a/backends/platform/psp/kbd_l_c.cpp b/backends/platform/psp/kbd_l_c.cpp index 5f10da0611..7ea51461b8 100644 --- a/backends/platform/psp/kbd_l_c.cpp +++ b/backends/platform/psp/kbd_l_c.cpp @@ -3,211 +3,211 @@ unsigned int size_keyboard_letters_compressed = 3271; unsigned char keyboard_letters_compressed[] __attribute__((aligned(16))) = { - 0x78, 0x9c, 0xed, 0x9d, 0x69, 0x97, 0xb4, 0x36, 0x0e, 0x46, 0x99, 0xec, 0x99, 0xc9, 0x32, 0x93, - 0x3d, 0xb3, 0xfd, 0xff, 0x5f, 0x48, 0xbe, 0xe6, 0xa4, 0xbb, 0x0b, 0x4b, 0xb2, 0x24, 0xdb, 0xd8, - 0x66, 0x11, 0xcf, 0x3d, 0x27, 0xd5, 0x14, 0x16, 0xc6, 0x70, 0xb1, 0x31, 0xa6, 0x9c, 0xf7, 0x8f, - 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x11, 0x2b, 0xb8, - 0x31, 0xb0, 0x1b, 0x1d, 0xd8, 0x8d, 0x0e, 0xf4, 0x06, 0x07, 0x7e, 0x63, 0x03, 0xbd, 0xc1, 0x81, - 0xdf, 0xd8, 0x40, 0x6f, 0x70, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x9b, 0x92, 0xdf, 0xbf, 0x99, 0xf0, - 0x7c, 0x3e, 0x31, 0xe1, 0x71, 0x9f, 0x9a, 0xf0, 0xb8, 0xcf, 0x4c, 0x78, 0xdc, 0xe7, 0x26, 0x3c, - 0xee, 0x0b, 0x13, 0x1e, 0xf7, 0xa5, 0x09, 0x8f, 0xfb, 0xca, 0x84, 0xc7, 0x7d, 0x6d, 0xc2, 0xe3, - 0xfe, 0x6e, 0xc2, 0xe3, 0xfe, 0x61, 0xb2, 0xaa, 0x14, 0xfc, 0xda, 0x7a, 0xb9, 0x60, 0x5b, 0x2f, - 0x17, 0x6c, 0xeb, 0xe5, 0x82, 0x6d, 0xbd, 0x5c, 0xb0, 0xad, 0x97, 0x0b, 0xb6, 0xf5, 0x72, 0xc1, - 0xb6, 0x5e, 0x2e, 0xd8, 0xd6, 0xcb, 0x05, 0xdb, 0x7a, 0xb9, 0x60, 0x5b, 0x2f, 0x17, 0x6c, 0xeb, - 0x35, 0x04, 0xfb, 0x7e, 0x3d, 0xbd, 0x54, 0xb0, 0xa7, 0x97, 0x0a, 0xf6, 0xf4, 0x52, 0xc1, 0x9e, - 0x5e, 0x2a, 0xd8, 0xd3, 0x4b, 0x05, 0x7b, 0x7a, 0xa9, 0x60, 0x4f, 0x2f, 0x15, 0xec, 0xe9, 0xa5, - 0x82, 0x3d, 0xbd, 0x54, 0xb0, 0xa7, 0x97, 0x0a, 0xf6, 0xf4, 0xea, 0x82, 0xe1, 0x17, 0x7e, 0xe1, - 0x37, 0xb4, 0x5f, 0x6d, 0x33, 0xcd, 0xaf, 0x16, 0xa7, 0xf9, 0xd5, 0xe2, 0x34, 0xbf, 0x5a, 0x9c, - 0xe6, 0x57, 0x8b, 0xd3, 0xfc, 0x6a, 0x71, 0x9a, 0x5f, 0x2d, 0x4e, 0xf3, 0xab, 0xc5, 0x69, 0x7e, - 0xb5, 0x38, 0xcd, 0xaf, 0x16, 0xa7, 0xf9, 0xd5, 0xe2, 0xe0, 0xf7, 0x46, 0x7e, 0x97, 0x65, 0xd1, - 0x13, 0xae, 0xe0, 0x97, 0x14, 0x6e, 0x1d, 0xe7, 0xf7, 0x95, 0xeb, 0xf5, 0xfc, 0xf2, 0xe3, 0xf5, - 0xfc, 0xd2, 0x48, 0xf8, 0x9d, 0xe8, 0x77, 0x49, 0x65, 0xbc, 0xa4, 0xdf, 0xd5, 0x4c, 0x20, 0x1a, - 0xf9, 0x7e, 0xe1, 0x37, 0x69, 0xa4, 0x25, 0x3c, 0xd2, 0x2f, 0x05, 0x7e, 0xcf, 0xf7, 0xbb, 0xbc, - 0x93, 0x27, 0x84, 0xf4, 0x4b, 0x8f, 0xf6, 0x09, 0x7e, 0xdf, 0xa3, 0x4e, 0xf1, 0x5b, 0x75, 0xff, - 0x1d, 0xec, 0x97, 0x1f, 0xae, 0xef, 0x97, 0x5c, 0x07, 0x9e, 0x5f, 0x12, 0xe6, 0xfa, 0xa5, 0x39, - 0x3a, 0x7e, 0x69, 0x76, 0xfd, 0x7e, 0x3f, 0x82, 0xaa, 0xfc, 0x92, 0x03, 0x3e, 0xae, 0x7f, 0x75, - 0xa2, 0x5f, 0x12, 0x68, 0xfb, 0x7d, 0x8b, 0xd8, 0xf2, 0xb3, 0xfd, 0xf2, 0xfc, 0x4c, 0xbf, 0x3c, - 0x3b, 0xc7, 0x2f, 0xbf, 0xfe, 0x86, 0xf8, 0x25, 0x71, 0x47, 0xfb, 0x7d, 0x85, 0x8e, 0xb8, 0xff, - 0xd2, 0x13, 0x53, 0x6c, 0x9f, 0x3f, 0xfe, 0x98, 0x7e, 0xb7, 0x30, 0x99, 0xf0, 0x46, 0xd2, 0x28, - 0xce, 0xb3, 0xe5, 0x57, 0x84, 0x1d, 0x5b, 0x7f, 0xd7, 0xd3, 0xfc, 0x6e, 0x91, 0x43, 0xee, 0xbf, - 0x0d, 0xf5, 0xb7, 0xd6, 0x6f, 0x9e, 0xf0, 0x06, 0xfc, 0xaa, 0x09, 0xd2, 0x6f, 0x0a, 0x3c, 0xba, - 0x7d, 0x3e, 0xc1, 0x2f, 0x6b, 0x78, 0x1f, 0xe1, 0x97, 0xc4, 0x3d, 0xc0, 0x2f, 0x3b, 0xac, 0xa3, - 0xfb, 0xcf, 0xf0, 0xfb, 0xc6, 0xec, 0xfb, 0xef, 0x96, 0xdf, 0xd1, 0xcf, 0xbf, 0x67, 0xf9, 0x1d, - 0xd6, 0x3e, 0x8b, 0xe7, 0x80, 0x6b, 0xf6, 0x9f, 0x07, 0xde, 0x7f, 0x45, 0xec, 0x25, 0xfd, 0x92, - 0x47, 0xc2, 0x43, 0xc7, 0xaf, 0xc8, 0x75, 0x75, 0xf0, 0xf3, 0xef, 0xa2, 0x25, 0xac, 0x51, 0xef, - 0xbf, 0xe4, 0x14, 0xe2, 0xfd, 0xe0, 0x2e, 0xbf, 0x5b, 0xe8, 0xf5, 0xde, 0x0f, 0x6e, 0x05, 0x5c, - 0x44, 0x02, 0xe7, 0x81, 0x7e, 0x29, 0x6e, 0xff, 0x8a, 0x9c, 0xe7, 0xeb, 0xf9, 0xe5, 0xc0, 0xef, - 0x6d, 0xde, 0xef, 0xd3, 0xcb, 0x0a, 0x7e, 0xe3, 0xf9, 0x65, 0x1c, 0xe1, 0xd7, 0x24, 0xc5, 0x7d, - 0xe2, 0x92, 0xe2, 0x3e, 0x75, 0x49, 0x71, 0x9f, 0xb9, 0xa4, 0xb8, 0xcf, 0x5d, 0x52, 0xdc, 0x17, - 0x2e, 0x29, 0xee, 0x4b, 0x97, 0x14, 0xf7, 0x95, 0x4b, 0x8a, 0xfb, 0xda, 0x45, 0x68, 0x34, 0x11, - 0x1a, 0x4d, 0xe0, 0x17, 0x7e, 0xe1, 0xf7, 0x49, 0x7e, 0x31, 0x3f, 0x45, 0xd5, 0x1b, 0x66, 0x7e, - 0x0a, 0xe6, 0x97, 0xe9, 0x7a, 0xc3, 0xcc, 0x2f, 0x03, 0x37, 0x07, 0x7e, 0x63, 0x03, 0xbf, 0xb1, - 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, - 0xc6, 0x06, 0x7e, 0x63, 0x53, 0xf2, 0xfb, 0xff, 0x4e, 0xce, 0x3a, 0xae, 0xa8, 0x7c, 0x63, 0xa2, - 0xc7, 0x17, 0xfc, 0xf6, 0xea, 0x85, 0xe0, 0xb1, 0xd8, 0x7a, 0x0d, 0xc1, 0xbe, 0xdf, 0x7e, 0xbd, - 0x10, 0x3c, 0x12, 0x4f, 0xaf, 0x2e, 0x18, 0x7e, 0xef, 0x04, 0xfc, 0xc6, 0x66, 0x8a, 0xdf, 0xfd, - 0xc5, 0x81, 0xdf, 0xc1, 0x98, 0x1a, 0xe1, 0x37, 0x04, 0xf0, 0x1b, 0x1b, 0xa6, 0x91, 0xfe, 0x4e, - 0x1a, 0x7e, 0x43, 0x30, 0xd5, 0x2f, 0x9f, 0x41, 0x98, 0xd6, 0xda, 0xc5, 0x81, 0xdf, 0xc1, 0x4c, - 0xf6, 0xab, 0x65, 0x00, 0xbf, 0x07, 0x02, 0xbf, 0xb1, 0x39, 0xca, 0x6f, 0x6a, 0xa8, 0xe9, 0xdf, - 0x85, 0xfc, 0xcd, 0x37, 0x07, 0xfd, 0x1c, 0x71, 0xff, 0x7d, 0x5f, 0x7c, 0x7d, 0xac, 0x62, 0x05, - 0xbb, 0x3f, 0xc3, 0xef, 0x60, 0x8e, 0xab, 0xbf, 0xab, 0xe9, 0x77, 0x35, 0x36, 0x07, 0xfd, 0x9c, - 0xe8, 0xf7, 0xa3, 0x6e, 0xc3, 0xef, 0x4c, 0xce, 0xad, 0xbf, 0x22, 0x08, 0x7e, 0x87, 0x83, 0xf6, - 0x39, 0x36, 0x47, 0x8d, 0x6f, 0x10, 0xbf, 0x2b, 0xef, 0x37, 0xc3, 0xef, 0x4c, 0x30, 0x3e, 0x19, - 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, 0xc6, 0x06, 0xef, 0x07, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, - 0x4c, 0xf1, 0xdb, 0xc9, 0x9c, 0x23, 0x7d, 0x26, 0xdf, 0xb8, 0x68, 0x5b, 0xc0, 0xef, 0x9d, 0x80, - 0xdf, 0xd8, 0x8c, 0xf6, 0x8b, 0xf9, 0x29, 0x17, 0xa3, 0x55, 0x2f, 0xe6, 0x97, 0xdd, 0x8c, 0x46, - 0xbd, 0x98, 0x1f, 0x1a, 0x1c, 0xf8, 0x8d, 0x0d, 0xfc, 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, - 0xb9, 0x80, 0x5f, 0xef, 0x17, 0xd4, 0xfc, 0xf7, 0x98, 0x7e, 0x4c, 0x1e, 0x59, 0xb1, 0xed, 0x96, - 0x83, 0x32, 0x31, 0xc3, 0xda, 0x9a, 0x27, 0x68, 0xdb, 0x16, 0x36, 0x29, 0xee, 0x61, 0x1c, 0x57, - 0xf7, 0x5b, 0xe3, 0xa8, 0xdb, 0xaf, 0xbe, 0x7d, 0x9d, 0x5f, 0x6b, 0xdf, 0x35, 0x79, 0x3d, 0xc2, - 0x6f, 0xe1, 0xea, 0xaf, 0xf3, 0x9b, 0xfd, 0x34, 0xa8, 0x76, 0x5b, 0x12, 0x07, 0xbf, 0x53, 0x48, - 0x7e, 0x49, 0x4b, 0x47, 0x97, 0xc4, 0x8a, 0xbc, 0x41, 0x5c, 0x16, 0xfa, 0xd3, 0x3e, 0xf6, 0xdb, - 0xbf, 0x8a, 0xa6, 0x73, 0xcd, 0x84, 0xf1, 0xf6, 0x80, 0x4d, 0xd5, 0xa0, 0xff, 0xa6, 0x54, 0xb6, - 0xad, 0xf2, 0x83, 0x61, 0xad, 0xcc, 0xd9, 0xb1, 0xcd, 0xe4, 0x74, 0xbf, 0xaa, 0x19, 0xfb, 0xf7, - 0x99, 0xfc, 0xb7, 0x7d, 0x5b, 0x16, 0x96, 0x5f, 0x19, 0x2a, 0xcf, 0x3b, 0x59, 0x4b, 0xca, 0xa3, - 0xe6, 0x91, 0xfd, 0xb0, 0x30, 0xdb, 0x56, 0x16, 0xb8, 0x58, 0xa8, 0x0b, 0xf8, 0xfd, 0x5f, 0x27, - 0xc5, 0x02, 0xe8, 0x27, 0x61, 0xfb, 0x5a, 0xe9, 0xf7, 0xe5, 0xb8, 0x14, 0xea, 0x95, 0x43, 0xbd, - 0xc8, 0x84, 0x5f, 0x52, 0x30, 0x63, 0x5b, 0xb1, 0x38, 0xda, 0xef, 0xb7, 0x26, 0x7a, 0x7c, 0xc1, - 0x6f, 0xaf, 0xde, 0xb2, 0xe0, 0x45, 0x34, 0x57, 0xb2, 0x65, 0xad, 0xf4, 0xbb, 0xea, 0xb9, 0xc8, - 0x50, 0xa3, 0xfe, 0xa6, 0x0d, 0xd7, 0x94, 0x2c, 0xbe, 0x3b, 0x7e, 0x65, 0xa5, 0x25, 0x8b, 0x83, - 0xfd, 0xda, 0x7a, 0x0d, 0xc1, 0xbe, 0xdf, 0x7e, 0xbd, 0x25, 0xc1, 0xba, 0xc4, 0xe6, 0xf6, 0xb9, - 0xda, 0x6f, 0x5d, 0x21, 0xb2, 0xb5, 0x4a, 0x82, 0x16, 0xc5, 0xdb, 0xea, 0xf1, 0x7e, 0x3d, 0xbd, - 0xba, 0xe0, 0x30, 0x7e, 0x95, 0x06, 0x76, 0xbf, 0x5f, 0xb3, 0x7d, 0xb6, 0x77, 0xfe, 0xf1, 0x05, - 0x7e, 0x39, 0xa6, 0x44, 0xab, 0x17, 0xcb, 0x5a, 0x74, 0x9e, 0x47, 0x96, 0x5e, 0xdb, 0x7f, 0x66, - 0x81, 0xc5, 0xfe, 0x33, 0xd9, 0x55, 0xb6, 0x13, 0xb6, 0xc0, 0xfc, 0x0e, 0xe9, 0x3f, 0x4f, 0xf1, - 0xdb, 0x58, 0x06, 0x42, 0xe7, 0xe6, 0x0e, 0xed, 0x77, 0xae, 0x63, 0x98, 0x5c, 0x2e, 0x53, 0x63, - 0x20, 0xbf, 0xb5, 0x8d, 0xee, 0x19, 0xcc, 0x2e, 0xd6, 0x13, 0xfc, 0xae, 0xb5, 0x8d, 0xee, 0xe1, - 0xcc, 0x2f, 0xd6, 0x23, 0xfc, 0x3e, 0x98, 0xc9, 0x7e, 0xcd, 0x47, 0xc7, 0x8f, 0x54, 0xb9, 0x06, - 0x7e, 0x07, 0x33, 0xdd, 0x6f, 0xfa, 0xcc, 0x99, 0xe8, 0xb7, 0xdc, 0x11, 0xb6, 0x2f, 0xbd, 0xaa, - 0xe7, 0xa3, 0x45, 0x2c, 0x0c, 0x2a, 0xd5, 0x68, 0x3e, 0x34, 0xbe, 0x0e, 0x36, 0x15, 0xe0, 0xf6, - 0x7e, 0x9d, 0xfd, 0x16, 0x8a, 0x36, 0xcd, 0xef, 0xce, 0x67, 0xd8, 0x1e, 0x92, 0xdf, 0x95, 0x7f, - 0x8e, 0xf7, 0xcb, 0x9e, 0x06, 0xf9, 0x20, 0x80, 0xb5, 0xf9, 0x7e, 0xca, 0xa7, 0xb2, 0xd7, 0xef, - 0x42, 0xff, 0x8e, 0x2a, 0xd4, 0x70, 0xa6, 0xfb, 0xe5, 0x0f, 0xff, 0xfc, 0x63, 0x59, 0xe4, 0xc1, - 0x9e, 0xe3, 0xd7, 0x1b, 0x0a, 0xb1, 0x36, 0x16, 0x7e, 0xf9, 0x10, 0x44, 0x3e, 0xc4, 0x42, 0x76, - 0x49, 0x96, 0xd9, 0xde, 0xf3, 0xeb, 0x7f, 0x40, 0xc7, 0xff, 0xc0, 0xfa, 0xcb, 0x8f, 0xea, 0x55, - 0x7c, 0x9e, 0xf9, 0x29, 0x7e, 0xf5, 0xa1, 0xc0, 0x14, 0xa7, 0xdc, 0xa9, 0x97, 0xed, 0x05, 0xa3, - 0x32, 0x90, 0x66, 0x66, 0x66, 0xfa, 0x95, 0x2b, 0x44, 0x52, 0x07, 0x47, 0xb7, 0xcf, 0xd2, 0xaf, - 0xc8, 0x7c, 0xa2, 0x5f, 0x29, 0x49, 0x58, 0x33, 0xfd, 0x5a, 0xd9, 0x5b, 0x7e, 0x69, 0x9d, 0xce, - 0x8a, 0x20, 0x96, 0xf9, 0x66, 0x66, 0x52, 0x07, 0xc7, 0xf9, 0x55, 0x4a, 0x7d, 0x81, 0xfa, 0xbb, - 0x95, 0xa3, 0xb9, 0xfe, 0x7e, 0x94, 0xde, 0xf5, 0x9b, 0x5d, 0x52, 0x62, 0x99, 0xed, 0xce, 0xba, - 0x93, 0x75, 0x71, 0x9a, 0x5f, 0x76, 0xf9, 0x5b, 0x9b, 0xef, 0xa7, 0xc5, 0xaf, 0xdf, 0x3e, 0x9b, - 0x1b, 0x5b, 0x7e, 0xb3, 0xbf, 0x6a, 0xa1, 0x74, 0x89, 0x56, 0x4d, 0xd8, 0xcd, 0x71, 0xfd, 0x2b, - 0x56, 0x4b, 0x8e, 0xe9, 0x3f, 0xbb, 0xa7, 0xa7, 0xdb, 0xaf, 0xb9, 0x1d, 0xfb, 0x9b, 0xd7, 0x5f, - 0xc3, 0xaf, 0x55, 0x09, 0xfa, 0x98, 0xec, 0xb7, 0x95, 0x43, 0xc7, 0x37, 0xb4, 0xe0, 0xea, 0xfe, - 0xf3, 0x2a, 0xed, 0xa4, 0xcd, 0xd8, 0xfd, 0x47, 0x69, 0xeb, 0xc5, 0x72, 0xd6, 0x3e, 0x8b, 0x96, - 0xba, 0x0b, 0x8c, 0x3f, 0xc7, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, - 0x6c, 0xa6, 0xf8, 0xed, 0x64, 0xce, 0x91, 0x96, 0x31, 0x9f, 0x5b, 0xb5, 0x50, 0xad, 0xa3, 0x5d, - 0xd8, 0xb0, 0xaa, 0x6f, 0xae, 0x06, 0xec, 0x1f, 0xa7, 0xfc, 0xd6, 0x45, 0xdb, 0x22, 0xae, 0xdf, - 0x8a, 0x41, 0x11, 0x1e, 0x59, 0xb7, 0xb6, 0x2d, 0xf7, 0x3d, 0x39, 0x3b, 0xc0, 0x2f, 0x25, 0x1f, - 0x70, 0x71, 0x02, 0x6b, 0xd7, 0xf2, 0xd4, 0x9b, 0xfb, 0x3d, 0x60, 0x7e, 0xca, 0x4c, 0xaa, 0x06, - 0x37, 0x56, 0x63, 0x70, 0x24, 0x1f, 0x9e, 0xb3, 0x46, 0x9f, 0xf9, 0x40, 0x16, 0x6b, 0xeb, 0xb3, - 0x65, 0xb9, 0x6d, 0x23, 0xad, 0x7a, 0xcf, 0x9f, 0x5f, 0x36, 0x95, 0xfc, 0x44, 0x1a, 0xef, 0x17, - 0xb4, 0x57, 0x12, 0x62, 0x85, 0xbc, 0x56, 0xa8, 0x38, 0xfe, 0x49, 0xda, 0x0d, 0x7d, 0xd0, 0xb3, - 0x63, 0x20, 0xab, 0x51, 0xef, 0xf9, 0xf3, 0x43, 0xa7, 0x52, 0x79, 0x22, 0x65, 0x5d, 0x34, 0xfc, - 0x2a, 0xdb, 0x25, 0x8b, 0x62, 0x71, 0x96, 0xdf, 0x56, 0x42, 0xfb, 0x55, 0xda, 0x67, 0xa3, 0xfe, - 0xf2, 0x45, 0xa5, 0xc1, 0x35, 0xbb, 0xc2, 0xaf, 0x4f, 0xf8, 0x3d, 0x9c, 0x3d, 0xfd, 0x2b, 0xbd, - 0xfe, 0x8a, 0xa0, 0x2c, 0x95, 0xb7, 0xd5, 0xf0, 0x7b, 0x08, 0xbb, 0x9e, 0x8f, 0xaa, 0xdb, 0x67, - 0xf8, 0x3d, 0x19, 0xde, 0xfb, 0x29, 0x84, 0xf2, 0xd7, 0x7b, 0xc9, 0xda, 0x2b, 0x51, 0xc9, 0x87, - 0x35, 0xf3, 0x6c, 0x81, 0xf9, 0x1d, 0xdb, 0x7f, 0x6e, 0x26, 0xae, 0xdf, 0x43, 0x39, 0xd0, 0x58, - 0x1b, 0xf0, 0x3b, 0x82, 0xcb, 0xea, 0x85, 0xdf, 0x01, 0xec, 0x1f, 0x4f, 0x9e, 0x0f, 0xfc, 0xc6, - 0x06, 0x7e, 0x63, 0x53, 0xf2, 0xfb, 0xdf, 0x4e, 0x76, 0x15, 0xca, 0x1e, 0x42, 0xa4, 0x6b, 0x07, - 0xb6, 0x8a, 0x55, 0xef, 0xfa, 0x68, 0xf8, 0xfe, 0xd4, 0x4e, 0xbe, 0x33, 0xd1, 0xe3, 0x0b, 0x7e, - 0x7b, 0xf5, 0xee, 0x13, 0x6c, 0x3c, 0x25, 0xaa, 0x4f, 0xa0, 0x23, 0x68, 0x7d, 0x2a, 0x3d, 0xcf, - 0xaf, 0xad, 0xd7, 0x10, 0xec, 0xfb, 0xed, 0xd7, 0xbb, 0x4b, 0x70, 0x9d, 0xdf, 0x71, 0xdc, 0xc6, - 0xaf, 0xa7, 0x57, 0x17, 0x7c, 0x43, 0xbf, 0x62, 0xc0, 0x61, 0xa1, 0xe3, 0x06, 0xd9, 0x8f, 0x8e, - 0xab, 0x1a, 0x5e, 0x1a, 0xe1, 0xe6, 0x56, 0x8e, 0x5f, 0x1b, 0x86, 0x45, 0xdb, 0x79, 0x8a, 0x5f, - 0x19, 0x65, 0x2f, 0x6a, 0x6f, 0xf5, 0x5a, 0xde, 0x2f, 0x64, 0x83, 0x5a, 0x66, 0x3c, 0x75, 0x3b, - 0xab, 0x0a, 0x4f, 0xf1, 0xbb, 0xbf, 0x38, 0xfb, 0xfd, 0x92, 0xf7, 0xb1, 0xf2, 0x3d, 0xab, 0x18, - 0x78, 0x2c, 0xfa, 0xad, 0xda, 0x9f, 0xf6, 0x5d, 0x55, 0x2b, 0xe3, 0x95, 0xa0, 0xa6, 0xae, 0x5a, - 0x1b, 0xa6, 0xc6, 0xbb, 0xf9, 0x4d, 0x9f, 0xd9, 0xea, 0x4a, 0xbf, 0xc6, 0x5b, 0xbd, 0x52, 0xfd, - 0x5d, 0xe9, 0xa5, 0xc5, 0xb3, 0x53, 0xe3, 0x75, 0xbf, 0x0d, 0xc7, 0xda, 0x04, 0xfc, 0xca, 0x6d, - 0x1b, 0xea, 0xaf, 0x54, 0x25, 0xaa, 0x6e, 0x55, 0xfb, 0xfc, 0xbe, 0x0a, 0xf5, 0xd7, 0x67, 0x90, - 0xdf, 0xc6, 0xf6, 0xd9, 0xf6, 0x7b, 0xad, 0xfb, 0x6f, 0x53, 0x42, 0x9d, 0x5f, 0xf5, 0xf9, 0x3f, - 0x5b, 0x93, 0x45, 0x1c, 0xe1, 0x97, 0x96, 0x4d, 0xed, 0x3f, 0xd7, 0xed, 0x50, 0xc9, 0xc3, 0xeb, - 0x3f, 0x8b, 0xa8, 0x6c, 0x97, 0x93, 0x04, 0xcf, 0xf3, 0xbb, 0xda, 0xe7, 0xdb, 0xfc, 0xde, 0x5b, - 0xfd, 0xeb, 0xd1, 0xeb, 0xd6, 0xb8, 0x4c, 0xaf, 0x42, 0xd2, 0x28, 0xba, 0x11, 0x23, 0xfc, 0x16, - 0x7d, 0x9e, 0xe2, 0xd7, 0xbe, 0x61, 0x0e, 0xc9, 0xf9, 0x5a, 0x30, 0xbf, 0xdb, 0xe7, 0x3a, 0xd6, - 0x2f, 0xef, 0x60, 0xd2, 0x76, 0x49, 0xb6, 0x58, 0x87, 0xd4, 0x5f, 0xf6, 0x00, 0x35, 0xb2, 0x6b, - 0xf3, 0x50, 0xbf, 0x85, 0x6e, 0x08, 0x5d, 0x3c, 0xac, 0x7d, 0x7e, 0x0a, 0xf0, 0x7b, 0x06, 0xc7, - 0x55, 0xf4, 0x63, 0xfc, 0xf2, 0xbe, 0xa9, 0xfd, 0x7d, 0xbf, 0xdf, 0xfc, 0x8c, 0x6d, 0xe3, 0x12, - 0x13, 0x7a, 0x52, 0x6a, 0x46, 0x46, 0x1f, 0xde, 0xde, 0x5e, 0x7d, 0xc6, 0xa8, 0xdc, 0x55, 0xed, - 0x91, 0x1c, 0x56, 0x7f, 0xd7, 0x9a, 0xef, 0x23, 0xfd, 0x2a, 0x6b, 0xaf, 0xe2, 0x57, 0x3f, 0x39, - 0x0d, 0xbb, 0xaa, 0x3f, 0x92, 0xa9, 0x7e, 0xe9, 0xe3, 0xe7, 0xe4, 0xf6, 0xb9, 0xf3, 0x34, 0x8c, - 0xd8, 0xdb, 0xc3, 0xfc, 0x92, 0xb6, 0xc7, 0xea, 0x3f, 0x93, 0x9d, 0xf6, 0xf6, 0x9f, 0xdd, 0xd3, - 0x20, 0x86, 0x2e, 0x4a, 0xe3, 0x1b, 0x6d, 0x8d, 0x26, 0x7f, 0x18, 0x90, 0x8f, 0x04, 0x5a, 0xae, - 0xf4, 0xb2, 0xa7, 0x6b, 0xd8, 0xdd, 0x8a, 0xf5, 0xf0, 0xb3, 0xde, 0xbe, 0x7c, 0xee, 0x30, 0x99, - 0xe5, 0x77, 0x27, 0xd3, 0xfc, 0x92, 0xaf, 0x7a, 0xcb, 0xb1, 0x2d, 0xca, 0x53, 0x96, 0xdf, 0xc6, - 0x73, 0x35, 0x32, 0x9f, 0x2c, 0x37, 0x7a, 0x79, 0xad, 0x54, 0x17, 0x5d, 0x93, 0x3e, 0x5f, 0xff, - 0x95, 0x4b, 0x5b, 0xaa, 0xc9, 0x41, 0xc6, 0x9f, 0xd9, 0x3d, 0x5d, 0x9e, 0xb7, 0x55, 0x39, 0x8d, - 0x9e, 0xdf, 0x96, 0xbd, 0x95, 0xfd, 0xca, 0x0d, 0x64, 0xe5, 0xdf, 0xd6, 0x89, 0xc5, 0x4a, 0xbf, - 0x05, 0xe2, 0xf9, 0x55, 0xd6, 0xd6, 0xf9, 0x5d, 0x5e, 0x2d, 0xac, 0xcc, 0xa3, 0x50, 0x7f, 0xe5, - 0xc3, 0x80, 0x9a, 0x5b, 0x7e, 0xd1, 0xb1, 0xac, 0x76, 0xf9, 0x6d, 0x6b, 0x9f, 0x6b, 0x13, 0xc2, - 0xfa, 0x75, 0x73, 0x32, 0xf7, 0x46, 0x1b, 0x0e, 0xf9, 0x29, 0x72, 0x53, 0x93, 0xd2, 0x2d, 0x84, - 0x14, 0xb2, 0xd2, 0x6f, 0x45, 0x71, 0xe1, 0xf7, 0xb8, 0xf6, 0x79, 0xb4, 0xdf, 0x9a, 0x46, 0x3a, - 0x8e, 0x5f, 0x6d, 0xb4, 0x40, 0xf5, 0xbb, 0x96, 0xfa, 0xcf, 0x6d, 0x7b, 0x63, 0x39, 0xd0, 0x4f, - 0x96, 0x1b, 0x09, 0x17, 0xb9, 0xf0, 0xa2, 0x2a, 0x7e, 0x07, 0xf5, 0x9f, 0x6b, 0x13, 0x2a, 0xfc, - 0x76, 0xe2, 0x97, 0x78, 0x0c, 0x6a, 0x0b, 0x7b, 0xf0, 0x8e, 0xab, 0xd6, 0x77, 0xf2, 0x9d, 0x8b, - 0xb6, 0xc5, 0xed, 0xfd, 0xea, 0x2d, 0xde, 0xc9, 0xcc, 0x2a, 0xc4, 0x03, 0xfd, 0xae, 0x6a, 0x8b, - 0x77, 0x2a, 0xf3, 0x0a, 0x31, 0xda, 0xef, 0x49, 0xf3, 0x53, 0x80, 0x45, 0xab, 0xde, 0x6b, 0xce, - 0x2f, 0x03, 0x26, 0x8d, 0x7a, 0x31, 0x3f, 0x34, 0x38, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, - 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0xe0, 0x37, 0x36, - 0xf0, 0x1b, 0x9b, 0x92, 0xdf, 0xff, 0x74, 0x72, 0xd6, 0x71, 0x45, 0xe5, 0x7b, 0x13, 0x3d, 0xbe, - 0xe0, 0xb7, 0x57, 0x2f, 0x04, 0x8f, 0xc5, 0xd6, 0x6b, 0x08, 0xf6, 0xfd, 0xf6, 0xeb, 0x85, 0xe0, - 0x91, 0x78, 0x7a, 0x75, 0xc1, 0xf0, 0x7b, 0x27, 0xe0, 0x37, 0x36, 0x53, 0xfc, 0xee, 0x2f, 0x0e, - 0xfc, 0x0e, 0xc6, 0xd4, 0x08, 0xbf, 0x21, 0x80, 0xdf, 0xd8, 0xcc, 0xf3, 0xab, 0xfd, 0x1e, 0xb9, - 0x08, 0xfc, 0x0e, 0x66, 0x9a, 0xdf, 0xec, 0xd7, 0xdc, 0x55, 0xc0, 0xef, 0x60, 0xe0, 0x37, 0x36, - 0x54, 0x23, 0x6b, 0x50, 0xc7, 0xf8, 0x25, 0x19, 0xf3, 0x59, 0x20, 0xfa, 0x12, 0xfc, 0x8e, 0x26, - 0x69, 0x14, 0xf3, 0xbb, 0x87, 0xdc, 0x7f, 0x3f, 0x56, 0x8a, 0xd9, 0x50, 0xe6, 0x07, 0xfc, 0x0e, - 0x67, 0xd3, 0xc8, 0x27, 0x49, 0x8d, 0xe9, 0x3f, 0xb3, 0xd9, 0x50, 0x62, 0x4a, 0xa3, 0xfe, 0x15, - 0x7e, 0x07, 0x33, 0xd5, 0xaf, 0x3a, 0xb1, 0x31, 0x9b, 0xa6, 0x47, 0x67, 0xfe, 0xc1, 0xef, 0x60, - 0xa6, 0xf9, 0x55, 0x67, 0xc3, 0xaa, 0xf3, 0x56, 0xe9, 0x9d, 0x1a, 0x7e, 0x07, 0x73, 0xae, 0x5f, - 0xdc, 0x7f, 0x67, 0x33, 0xaf, 0x7d, 0x76, 0x66, 0x51, 0xe7, 0xf3, 0xa2, 0xd1, 0x7f, 0x9e, 0xc4, - 0xbc, 0xfe, 0x33, 0xa1, 0xfe, 0x29, 0x18, 0x7e, 0x07, 0x33, 0xed, 0xf9, 0x97, 0x02, 0xbf, 0xa7, - 0x71, 0xc8, 0xfb, 0x05, 0xf8, 0x3d, 0x0d, 0xbc, 0x3f, 0x8a, 0x0d, 0xfc, 0xc6, 0x06, 0x7e, 0x63, - 0x03, 0xbf, 0xb1, 0x99, 0xe2, 0xb7, 0x93, 0x39, 0x47, 0xfa, 0x4c, 0xbe, 0x77, 0xd1, 0xb6, 0x80, - 0xdf, 0x3b, 0x01, 0xbf, 0xb1, 0x19, 0xed, 0x17, 0xf3, 0x53, 0x2e, 0x46, 0xab, 0x5e, 0xcc, 0x2f, - 0xbb, 0x19, 0x8d, 0x7a, 0x31, 0x3f, 0x34, 0x38, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, 0xc6, - 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0xe0, 0x37, 0x36, 0xf0, - 0x1b, 0x9b, 0x92, 0xdf, 0x7f, 0x9b, 0xf0, 0x7c, 0x7e, 0x37, 0xe1, 0x71, 0xbf, 0x99, 0xf0, 0xb8, - 0x5f, 0x4d, 0x78, 0xdc, 0x2f, 0x26, 0x3c, 0xee, 0x67, 0x13, 0x1e, 0xf7, 0x93, 0x09, 0x8f, 0xfb, - 0xd1, 0x84, 0xc7, 0xfd, 0x60, 0xc2, 0xe3, 0xfe, 0x65, 0xc2, 0xe3, 0xfe, 0x69, 0xb2, 0xaa, 0x14, - 0xfc, 0xda, 0x7a, 0xb9, 0x60, 0x5b, 0x2f, 0x17, 0x6c, 0xeb, 0xe5, 0x82, 0x6d, 0xbd, 0x5c, 0xb0, - 0xad, 0x97, 0x0b, 0xb6, 0xf5, 0x72, 0xc1, 0xb6, 0x5e, 0x2e, 0xd8, 0xd6, 0xcb, 0x05, 0xdb, 0x7a, - 0xb9, 0x60, 0x5b, 0x2f, 0x17, 0x6c, 0xeb, 0x35, 0x04, 0xfb, 0x7e, 0x3d, 0xbd, 0x54, 0xb0, 0xa7, - 0x97, 0x0a, 0xf6, 0xf4, 0x52, 0xc1, 0x9e, 0x5e, 0x2a, 0xd8, 0xd3, 0x4b, 0x05, 0x7b, 0x7a, 0xa9, - 0x60, 0x4f, 0x2f, 0x15, 0xec, 0xe9, 0xa5, 0x82, 0x3d, 0xbd, 0x54, 0xb0, 0xa7, 0x97, 0x0a, 0xf6, - 0xf4, 0xea, 0x82, 0xe1, 0x17, 0x7e, 0xe1, 0x37, 0xb4, 0x5f, 0x6d, 0x33, 0xcd, 0xaf, 0x16, 0xa7, - 0xf9, 0xd5, 0xe2, 0x34, 0xbf, 0x5a, 0x9c, 0xe6, 0x57, 0x8b, 0xd3, 0xfc, 0x6a, 0x71, 0x9a, 0x5f, - 0x2d, 0x4e, 0xf3, 0xab, 0xc5, 0x69, 0x7e, 0xb5, 0x38, 0xcd, 0xaf, 0x16, 0xa7, 0xf9, 0xd5, 0xe2, - 0xe0, 0xb7, 0xdd, 0x2f, 0xfd, 0xff, 0x05, 0xc1, 0x2f, 0xfc, 0x2a, 0x09, 0x2d, 0x7e, 0xb5, 0xb0, - 0xeb, 0xf9, 0x4d, 0xd3, 0x45, 0x45, 0xc2, 0x1b, 0xf0, 0xab, 0x27, 0x5c, 0xc0, 0x2f, 0xff, 0x27, - 0x97, 0x7b, 0xfd, 0xd2, 0x69, 0xc3, 0x2c, 0xe1, 0x9d, 0x97, 0x46, 0xf1, 0x6f, 0x2c, 0x7b, 0x7e, - 0xf9, 0x84, 0x58, 0xd3, 0xaf, 0x98, 0x37, 0x7b, 0x41, 0xbf, 0xec, 0x3c, 0x9b, 0x7e, 0x59, 0xd4, - 0xb0, 0xfa, 0x3b, 0xcc, 0xef, 0x87, 0xd8, 0xad, 0x88, 0x37, 0xf6, 0xcb, 0xce, 0xb4, 0xe3, 0x97, - 0xc5, 0x99, 0x7e, 0x45, 0xf9, 0x3c, 0xbf, 0x34, 0x6e, 0x8c, 0xdf, 0x74, 0xc4, 0xf6, 0xfd, 0xf7, - 0xe5, 0x2d, 0x4b, 0xf8, 0x0b, 0xa2, 0x91, 0xb7, 0x07, 0xfd, 0x7e, 0xdf, 0xd2, 0xb7, 0xfc, 0xfa, - 0xfd, 0xf2, 0x0a, 0x62, 0xfb, 0xe5, 0x19, 0x16, 0xfc, 0xaa, 0x09, 0x2b, 0xf1, 0x2b, 0xaa, 0x47, - 0xc9, 0xef, 0x16, 0x38, 0xc4, 0x2f, 0x29, 0x60, 0xbf, 0xdf, 0x95, 0x9d, 0x3f, 0xeb, 0xfe, 0xfb, - 0x21, 0x6d, 0x53, 0x77, 0x9c, 0xdf, 0xda, 0xfa, 0xdb, 0xe2, 0x57, 0x4f, 0x58, 0x6f, 0xe5, 0x97, - 0x7b, 0xf3, 0xfa, 0x57, 0xf4, 0x82, 0xbe, 0xbb, 0x5f, 0x25, 0xe1, 0x2f, 0x6e, 0xe5, 0x97, 0x16, - 0x70, 0x80, 0xdf, 0xaa, 0xfa, 0x9b, 0xe4, 0xbe, 0x87, 0x7a, 0xfd, 0x67, 0x9a, 0xdf, 0x35, 0xef, - 0xbf, 0x7a, 0xc2, 0x7a, 0x0d, 0xbf, 0xac, 0x7c, 0x25, 0xbf, 0x5a, 0xc2, 0xda, 0x7e, 0xff, 0xbd, - 0x83, 0x5f, 0x16, 0x7b, 0x5f, 0xbf, 0xbc, 0x1d, 0xf2, 0xc6, 0x37, 0xaa, 0xfc, 0x2e, 0xaf, 0xfb, - 0xb4, 0xdb, 0x7f, 0x5e, 0xa5, 0x10, 0xf7, 0xf9, 0x97, 0xec, 0xf7, 0xae, 0xf7, 0xdf, 0xf3, 0xfa, - 0xcf, 0xbc, 0xbe, 0x15, 0xfc, 0xea, 0x09, 0xed, 0xcf, 0xbf, 0xd9, 0x81, 0x74, 0xfb, 0x15, 0xc7, - 0x71, 0x39, 0xbf, 0xe7, 0x3e, 0xff, 0x5a, 0x09, 0xa2, 0x7d, 0xd6, 0x13, 0xd6, 0x98, 0xe3, 0x57, - 0x43, 0xef, 0xbf, 0x32, 0xb6, 0xd4, 0x3e, 0xe7, 0x09, 0x82, 0xe1, 0x7e, 0xf9, 0x8e, 0xef, 0xec, - 0x97, 0xde, 0x68, 0x0e, 0x1e, 0x9f, 0xbc, 0xae, 0x5f, 0xb1, 0xdf, 0x5b, 0xfb, 0x5d, 0xcd, 0x84, - 0xe7, 0xfa, 0x15, 0xc0, 0x2f, 0xfc, 0x2a, 0x09, 0x4f, 0xf7, 0xcb, 0x12, 0x2e, 0xf5, 0x7e, 0x50, - 0x00, 0xbf, 0xf0, 0xab, 0x24, 0x3c, 0xd1, 0xef, 0x69, 0xbf, 0xdf, 0x30, 0x49, 0x71, 0xbf, 0xbb, - 0xa4, 0xb8, 0xdf, 0x5c, 0x52, 0xdc, 0xaf, 0x2e, 0x29, 0xee, 0x17, 0x97, 0x14, 0xf7, 0xb3, 0x4b, - 0x8a, 0xfb, 0xc9, 0x25, 0xc5, 0xfd, 0xe8, 0x92, 0xe2, 0x7e, 0x70, 0x11, 0x1a, 0x4d, 0x84, 0x46, - 0x13, 0xf8, 0x85, 0x5f, 0xf8, 0x7d, 0x92, 0x5f, 0xcc, 0x4f, 0x51, 0xf5, 0x86, 0x99, 0x9f, 0x82, - 0xf9, 0x65, 0xba, 0xde, 0x30, 0xf3, 0xcb, 0xc0, 0xcd, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0x34, - 0xbf, 0x10, 0x1c, 0x06, 0x55, 0x2f, 0xfc, 0x86, 0x41, 0xf7, 0x0b, 0xc1, 0x41, 0x30, 0xf4, 0xc2, - 0x6f, 0x10, 0x2c, 0xbf, 0x10, 0x1c, 0x02, 0x53, 0x2f, 0x0c, 0x07, 0xc0, 0xb3, 0x0b, 0xc3, 0x77, - 0xa7, 0x64, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x18, 0xc2, 0x9f, 0xfe, 0xbb, 0x89, 0xf5 + 0x78, 0x9c, 0xed, 0x9d, 0x69, 0x97, 0xb4, 0x36, 0x0e, 0x46, 0x99, 0xec, 0x99, 0xc9, 0x32, 0x93, + 0x3d, 0xb3, 0xfd, 0xff, 0x5f, 0x48, 0xbe, 0xe6, 0xa4, 0xbb, 0x0b, 0x4b, 0xb2, 0x24, 0xdb, 0xd8, + 0x66, 0x11, 0xcf, 0x3d, 0x27, 0xd5, 0x14, 0x16, 0xc6, 0x70, 0xb1, 0x31, 0xa6, 0x9c, 0xf7, 0x8f, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x11, 0x2b, 0xb8, + 0x31, 0xb0, 0x1b, 0x1d, 0xd8, 0x8d, 0x0e, 0xf4, 0x06, 0x07, 0x7e, 0x63, 0x03, 0xbd, 0xc1, 0x81, + 0xdf, 0xd8, 0x40, 0x6f, 0x70, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x9b, 0x92, 0xdf, 0xbf, 0x99, 0xf0, + 0x7c, 0x3e, 0x31, 0xe1, 0x71, 0x9f, 0x9a, 0xf0, 0xb8, 0xcf, 0x4c, 0x78, 0xdc, 0xe7, 0x26, 0x3c, + 0xee, 0x0b, 0x13, 0x1e, 0xf7, 0xa5, 0x09, 0x8f, 0xfb, 0xca, 0x84, 0xc7, 0x7d, 0x6d, 0xc2, 0xe3, + 0xfe, 0x6e, 0xc2, 0xe3, 0xfe, 0x61, 0xb2, 0xaa, 0x14, 0xfc, 0xda, 0x7a, 0xb9, 0x60, 0x5b, 0x2f, + 0x17, 0x6c, 0xeb, 0xe5, 0x82, 0x6d, 0xbd, 0x5c, 0xb0, 0xad, 0x97, 0x0b, 0xb6, 0xf5, 0x72, 0xc1, + 0xb6, 0x5e, 0x2e, 0xd8, 0xd6, 0xcb, 0x05, 0xdb, 0x7a, 0xb9, 0x60, 0x5b, 0x2f, 0x17, 0x6c, 0xeb, + 0x35, 0x04, 0xfb, 0x7e, 0x3d, 0xbd, 0x54, 0xb0, 0xa7, 0x97, 0x0a, 0xf6, 0xf4, 0x52, 0xc1, 0x9e, + 0x5e, 0x2a, 0xd8, 0xd3, 0x4b, 0x05, 0x7b, 0x7a, 0xa9, 0x60, 0x4f, 0x2f, 0x15, 0xec, 0xe9, 0xa5, + 0x82, 0x3d, 0xbd, 0x54, 0xb0, 0xa7, 0x97, 0x0a, 0xf6, 0xf4, 0xea, 0x82, 0xe1, 0x17, 0x7e, 0xe1, + 0x37, 0xb4, 0x5f, 0x6d, 0x33, 0xcd, 0xaf, 0x16, 0xa7, 0xf9, 0xd5, 0xe2, 0x34, 0xbf, 0x5a, 0x9c, + 0xe6, 0x57, 0x8b, 0xd3, 0xfc, 0x6a, 0x71, 0x9a, 0x5f, 0x2d, 0x4e, 0xf3, 0xab, 0xc5, 0x69, 0x7e, + 0xb5, 0x38, 0xcd, 0xaf, 0x16, 0xa7, 0xf9, 0xd5, 0xe2, 0xe0, 0xf7, 0x46, 0x7e, 0x97, 0x65, 0xd1, + 0x13, 0xae, 0xe0, 0x97, 0x14, 0x6e, 0x1d, 0xe7, 0xf7, 0x95, 0xeb, 0xf5, 0xfc, 0xf2, 0xe3, 0xf5, + 0xfc, 0xd2, 0x48, 0xf8, 0x9d, 0xe8, 0x77, 0x49, 0x65, 0xbc, 0xa4, 0xdf, 0xd5, 0x4c, 0x20, 0x1a, + 0xf9, 0x7e, 0xe1, 0x37, 0x69, 0xa4, 0x25, 0x3c, 0xd2, 0x2f, 0x05, 0x7e, 0xcf, 0xf7, 0xbb, 0xbc, + 0x93, 0x27, 0x84, 0xf4, 0x4b, 0x8f, 0xf6, 0x09, 0x7e, 0xdf, 0xa3, 0x4e, 0xf1, 0x5b, 0x75, 0xff, + 0x1d, 0xec, 0x97, 0x1f, 0xae, 0xef, 0x97, 0x5c, 0x07, 0x9e, 0x5f, 0x12, 0xe6, 0xfa, 0xa5, 0x39, + 0x3a, 0x7e, 0x69, 0x76, 0xfd, 0x7e, 0x3f, 0x82, 0xaa, 0xfc, 0x92, 0x03, 0x3e, 0xae, 0x7f, 0x75, + 0xa2, 0x5f, 0x12, 0x68, 0xfb, 0x7d, 0x8b, 0xd8, 0xf2, 0xb3, 0xfd, 0xf2, 0xfc, 0x4c, 0xbf, 0x3c, + 0x3b, 0xc7, 0x2f, 0xbf, 0xfe, 0x86, 0xf8, 0x25, 0x71, 0x47, 0xfb, 0x7d, 0x85, 0x8e, 0xb8, 0xff, + 0xd2, 0x13, 0x53, 0x6c, 0x9f, 0x3f, 0xfe, 0x98, 0x7e, 0xb7, 0x30, 0x99, 0xf0, 0x46, 0xd2, 0x28, + 0xce, 0xb3, 0xe5, 0x57, 0x84, 0x1d, 0x5b, 0x7f, 0xd7, 0xd3, 0xfc, 0x6e, 0x91, 0x43, 0xee, 0xbf, + 0x0d, 0xf5, 0xb7, 0xd6, 0x6f, 0x9e, 0xf0, 0x06, 0xfc, 0xaa, 0x09, 0xd2, 0x6f, 0x0a, 0x3c, 0xba, + 0x7d, 0x3e, 0xc1, 0x2f, 0x6b, 0x78, 0x1f, 0xe1, 0x97, 0xc4, 0x3d, 0xc0, 0x2f, 0x3b, 0xac, 0xa3, + 0xfb, 0xcf, 0xf0, 0xfb, 0xc6, 0xec, 0xfb, 0xef, 0x96, 0xdf, 0xd1, 0xcf, 0xbf, 0x67, 0xf9, 0x1d, + 0xd6, 0x3e, 0x8b, 0xe7, 0x80, 0x6b, 0xf6, 0x9f, 0x07, 0xde, 0x7f, 0x45, 0xec, 0x25, 0xfd, 0x92, + 0x47, 0xc2, 0x43, 0xc7, 0xaf, 0xc8, 0x75, 0x75, 0xf0, 0xf3, 0xef, 0xa2, 0x25, 0xac, 0x51, 0xef, + 0xbf, 0xe4, 0x14, 0xe2, 0xfd, 0xe0, 0x2e, 0xbf, 0x5b, 0xe8, 0xf5, 0xde, 0x0f, 0x6e, 0x05, 0x5c, + 0x44, 0x02, 0xe7, 0x81, 0x7e, 0x29, 0x6e, 0xff, 0x8a, 0x9c, 0xe7, 0xeb, 0xf9, 0xe5, 0xc0, 0xef, + 0x6d, 0xde, 0xef, 0xd3, 0xcb, 0x0a, 0x7e, 0xe3, 0xf9, 0x65, 0x1c, 0xe1, 0xd7, 0x24, 0xc5, 0x7d, + 0xe2, 0x92, 0xe2, 0x3e, 0x75, 0x49, 0x71, 0x9f, 0xb9, 0xa4, 0xb8, 0xcf, 0x5d, 0x52, 0xdc, 0x17, + 0x2e, 0x29, 0xee, 0x4b, 0x97, 0x14, 0xf7, 0x95, 0x4b, 0x8a, 0xfb, 0xda, 0x45, 0x68, 0x34, 0x11, + 0x1a, 0x4d, 0xe0, 0x17, 0x7e, 0xe1, 0xf7, 0x49, 0x7e, 0x31, 0x3f, 0x45, 0xd5, 0x1b, 0x66, 0x7e, + 0x0a, 0xe6, 0x97, 0xe9, 0x7a, 0xc3, 0xcc, 0x2f, 0x03, 0x37, 0x07, 0x7e, 0x63, 0x03, 0xbf, 0xb1, + 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, + 0xc6, 0x06, 0x7e, 0x63, 0x53, 0xf2, 0xfb, 0xff, 0x4e, 0xce, 0x3a, 0xae, 0xa8, 0x7c, 0x63, 0xa2, + 0xc7, 0x17, 0xfc, 0xf6, 0xea, 0x85, 0xe0, 0xb1, 0xd8, 0x7a, 0x0d, 0xc1, 0xbe, 0xdf, 0x7e, 0xbd, + 0x10, 0x3c, 0x12, 0x4f, 0xaf, 0x2e, 0x18, 0x7e, 0xef, 0x04, 0xfc, 0xc6, 0x66, 0x8a, 0xdf, 0xfd, + 0xc5, 0x81, 0xdf, 0xc1, 0x98, 0x1a, 0xe1, 0x37, 0x04, 0xf0, 0x1b, 0x1b, 0xa6, 0x91, 0xfe, 0x4e, + 0x1a, 0x7e, 0x43, 0x30, 0xd5, 0x2f, 0x9f, 0x41, 0x98, 0xd6, 0xda, 0xc5, 0x81, 0xdf, 0xc1, 0x4c, + 0xf6, 0xab, 0x65, 0x00, 0xbf, 0x07, 0x02, 0xbf, 0xb1, 0x39, 0xca, 0x6f, 0x6a, 0xa8, 0xe9, 0xdf, + 0x85, 0xfc, 0xcd, 0x37, 0x07, 0xfd, 0x1c, 0x71, 0xff, 0x7d, 0x5f, 0x7c, 0x7d, 0xac, 0x62, 0x05, + 0xbb, 0x3f, 0xc3, 0xef, 0x60, 0x8e, 0xab, 0xbf, 0xab, 0xe9, 0x77, 0x35, 0x36, 0x07, 0xfd, 0x9c, + 0xe8, 0xf7, 0xa3, 0x6e, 0xc3, 0xef, 0x4c, 0xce, 0xad, 0xbf, 0x22, 0x08, 0x7e, 0x87, 0x83, 0xf6, + 0x39, 0x36, 0x47, 0x8d, 0x6f, 0x10, 0xbf, 0x2b, 0xef, 0x37, 0xc3, 0xef, 0x4c, 0x30, 0x3e, 0x19, + 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, 0xc6, 0x06, 0xef, 0x07, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, + 0x4c, 0xf1, 0xdb, 0xc9, 0x9c, 0x23, 0x7d, 0x26, 0xdf, 0xb8, 0x68, 0x5b, 0xc0, 0xef, 0x9d, 0x80, + 0xdf, 0xd8, 0x8c, 0xf6, 0x8b, 0xf9, 0x29, 0x17, 0xa3, 0x55, 0x2f, 0xe6, 0x97, 0xdd, 0x8c, 0x46, + 0xbd, 0x98, 0x1f, 0x1a, 0x1c, 0xf8, 0x8d, 0x0d, 0xfc, 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, + 0xb9, 0x80, 0x5f, 0xef, 0x17, 0xd4, 0xfc, 0xf7, 0x98, 0x7e, 0x4c, 0x1e, 0x59, 0xb1, 0xed, 0x96, + 0x83, 0x32, 0x31, 0xc3, 0xda, 0x9a, 0x27, 0x68, 0xdb, 0x16, 0x36, 0x29, 0xee, 0x61, 0x1c, 0x57, + 0xf7, 0x5b, 0xe3, 0xa8, 0xdb, 0xaf, 0xbe, 0x7d, 0x9d, 0x5f, 0x6b, 0xdf, 0x35, 0x79, 0x3d, 0xc2, + 0x6f, 0xe1, 0xea, 0xaf, 0xf3, 0x9b, 0xfd, 0x34, 0xa8, 0x76, 0x5b, 0x12, 0x07, 0xbf, 0x53, 0x48, + 0x7e, 0x49, 0x4b, 0x47, 0x97, 0xc4, 0x8a, 0xbc, 0x41, 0x5c, 0x16, 0xfa, 0xd3, 0x3e, 0xf6, 0xdb, + 0xbf, 0x8a, 0xa6, 0x73, 0xcd, 0x84, 0xf1, 0xf6, 0x80, 0x4d, 0xd5, 0xa0, 0xff, 0xa6, 0x54, 0xb6, + 0xad, 0xf2, 0x83, 0x61, 0xad, 0xcc, 0xd9, 0xb1, 0xcd, 0xe4, 0x74, 0xbf, 0xaa, 0x19, 0xfb, 0xf7, + 0x99, 0xfc, 0xb7, 0x7d, 0x5b, 0x16, 0x96, 0x5f, 0x19, 0x2a, 0xcf, 0x3b, 0x59, 0x4b, 0xca, 0xa3, + 0xe6, 0x91, 0xfd, 0xb0, 0x30, 0xdb, 0x56, 0x16, 0xb8, 0x58, 0xa8, 0x0b, 0xf8, 0xfd, 0x5f, 0x27, + 0xc5, 0x02, 0xe8, 0x27, 0x61, 0xfb, 0x5a, 0xe9, 0xf7, 0xe5, 0xb8, 0x14, 0xea, 0x95, 0x43, 0xbd, + 0xc8, 0x84, 0x5f, 0x52, 0x30, 0x63, 0x5b, 0xb1, 0x38, 0xda, 0xef, 0xb7, 0x26, 0x7a, 0x7c, 0xc1, + 0x6f, 0xaf, 0xde, 0xb2, 0xe0, 0x45, 0x34, 0x57, 0xb2, 0x65, 0xad, 0xf4, 0xbb, 0xea, 0xb9, 0xc8, + 0x50, 0xa3, 0xfe, 0xa6, 0x0d, 0xd7, 0x94, 0x2c, 0xbe, 0x3b, 0x7e, 0x65, 0xa5, 0x25, 0x8b, 0x83, + 0xfd, 0xda, 0x7a, 0x0d, 0xc1, 0xbe, 0xdf, 0x7e, 0xbd, 0x25, 0xc1, 0xba, 0xc4, 0xe6, 0xf6, 0xb9, + 0xda, 0x6f, 0x5d, 0x21, 0xb2, 0xb5, 0x4a, 0x82, 0x16, 0xc5, 0xdb, 0xea, 0xf1, 0x7e, 0x3d, 0xbd, + 0xba, 0xe0, 0x30, 0x7e, 0x95, 0x06, 0x76, 0xbf, 0x5f, 0xb3, 0x7d, 0xb6, 0x77, 0xfe, 0xf1, 0x05, + 0x7e, 0x39, 0xa6, 0x44, 0xab, 0x17, 0xcb, 0x5a, 0x74, 0x9e, 0x47, 0x96, 0x5e, 0xdb, 0x7f, 0x66, + 0x81, 0xc5, 0xfe, 0x33, 0xd9, 0x55, 0xb6, 0x13, 0xb6, 0xc0, 0xfc, 0x0e, 0xe9, 0x3f, 0x4f, 0xf1, + 0xdb, 0x58, 0x06, 0x42, 0xe7, 0xe6, 0x0e, 0xed, 0x77, 0xae, 0x63, 0x98, 0x5c, 0x2e, 0x53, 0x63, + 0x20, 0xbf, 0xb5, 0x8d, 0xee, 0x19, 0xcc, 0x2e, 0xd6, 0x13, 0xfc, 0xae, 0xb5, 0x8d, 0xee, 0xe1, + 0xcc, 0x2f, 0xd6, 0x23, 0xfc, 0x3e, 0x98, 0xc9, 0x7e, 0xcd, 0x47, 0xc7, 0x8f, 0x54, 0xb9, 0x06, + 0x7e, 0x07, 0x33, 0xdd, 0x6f, 0xfa, 0xcc, 0x99, 0xe8, 0xb7, 0xdc, 0x11, 0xb6, 0x2f, 0xbd, 0xaa, + 0xe7, 0xa3, 0x45, 0x2c, 0x0c, 0x2a, 0xd5, 0x68, 0x3e, 0x34, 0xbe, 0x0e, 0x36, 0x15, 0xe0, 0xf6, + 0x7e, 0x9d, 0xfd, 0x16, 0x8a, 0x36, 0xcd, 0xef, 0xce, 0x67, 0xd8, 0x1e, 0x92, 0xdf, 0x95, 0x7f, + 0x8e, 0xf7, 0xcb, 0x9e, 0x06, 0xf9, 0x20, 0x80, 0xb5, 0xf9, 0x7e, 0xca, 0xa7, 0xb2, 0xd7, 0xef, + 0x42, 0xff, 0x8e, 0x2a, 0xd4, 0x70, 0xa6, 0xfb, 0xe5, 0x0f, 0xff, 0xfc, 0x63, 0x59, 0xe4, 0xc1, + 0x9e, 0xe3, 0xd7, 0x1b, 0x0a, 0xb1, 0x36, 0x16, 0x7e, 0xf9, 0x10, 0x44, 0x3e, 0xc4, 0x42, 0x76, + 0x49, 0x96, 0xd9, 0xde, 0xf3, 0xeb, 0x7f, 0x40, 0xc7, 0xff, 0xc0, 0xfa, 0xcb, 0x8f, 0xea, 0x55, + 0x7c, 0x9e, 0xf9, 0x29, 0x7e, 0xf5, 0xa1, 0xc0, 0x14, 0xa7, 0xdc, 0xa9, 0x97, 0xed, 0x05, 0xa3, + 0x32, 0x90, 0x66, 0x66, 0x66, 0xfa, 0x95, 0x2b, 0x44, 0x52, 0x07, 0x47, 0xb7, 0xcf, 0xd2, 0xaf, + 0xc8, 0x7c, 0xa2, 0x5f, 0x29, 0x49, 0x58, 0x33, 0xfd, 0x5a, 0xd9, 0x5b, 0x7e, 0x69, 0x9d, 0xce, + 0x8a, 0x20, 0x96, 0xf9, 0x66, 0x66, 0x52, 0x07, 0xc7, 0xf9, 0x55, 0x4a, 0x7d, 0x81, 0xfa, 0xbb, + 0x95, 0xa3, 0xb9, 0xfe, 0x7e, 0x94, 0xde, 0xf5, 0x9b, 0x5d, 0x52, 0x62, 0x99, 0xed, 0xce, 0xba, + 0x93, 0x75, 0x71, 0x9a, 0x5f, 0x76, 0xf9, 0x5b, 0x9b, 0xef, 0xa7, 0xc5, 0xaf, 0xdf, 0x3e, 0x9b, + 0x1b, 0x5b, 0x7e, 0xb3, 0xbf, 0x6a, 0xa1, 0x74, 0x89, 0x56, 0x4d, 0xd8, 0xcd, 0x71, 0xfd, 0x2b, + 0x56, 0x4b, 0x8e, 0xe9, 0x3f, 0xbb, 0xa7, 0xa7, 0xdb, 0xaf, 0xb9, 0x1d, 0xfb, 0x9b, 0xd7, 0x5f, + 0xc3, 0xaf, 0x55, 0x09, 0xfa, 0x98, 0xec, 0xb7, 0x95, 0x43, 0xc7, 0x37, 0xb4, 0xe0, 0xea, 0xfe, + 0xf3, 0x2a, 0xed, 0xa4, 0xcd, 0xd8, 0xfd, 0x47, 0x69, 0xeb, 0xc5, 0x72, 0xd6, 0x3e, 0x8b, 0x96, + 0xba, 0x0b, 0x8c, 0x3f, 0xc7, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, + 0x6c, 0xa6, 0xf8, 0xed, 0x64, 0xce, 0x91, 0x96, 0x31, 0x9f, 0x5b, 0xb5, 0x50, 0xad, 0xa3, 0x5d, + 0xd8, 0xb0, 0xaa, 0x6f, 0xae, 0x06, 0xec, 0x1f, 0xa7, 0xfc, 0xd6, 0x45, 0xdb, 0x22, 0xae, 0xdf, + 0x8a, 0x41, 0x11, 0x1e, 0x59, 0xb7, 0xb6, 0x2d, 0xf7, 0x3d, 0x39, 0x3b, 0xc0, 0x2f, 0x25, 0x1f, + 0x70, 0x71, 0x02, 0x6b, 0xd7, 0xf2, 0xd4, 0x9b, 0xfb, 0x3d, 0x60, 0x7e, 0xca, 0x4c, 0xaa, 0x06, + 0x37, 0x56, 0x63, 0x70, 0x24, 0x1f, 0x9e, 0xb3, 0x46, 0x9f, 0xf9, 0x40, 0x16, 0x6b, 0xeb, 0xb3, + 0x65, 0xb9, 0x6d, 0x23, 0xad, 0x7a, 0xcf, 0x9f, 0x5f, 0x36, 0x95, 0xfc, 0x44, 0x1a, 0xef, 0x17, + 0xb4, 0x57, 0x12, 0x62, 0x85, 0xbc, 0x56, 0xa8, 0x38, 0xfe, 0x49, 0xda, 0x0d, 0x7d, 0xd0, 0xb3, + 0x63, 0x20, 0xab, 0x51, 0xef, 0xf9, 0xf3, 0x43, 0xa7, 0x52, 0x79, 0x22, 0x65, 0x5d, 0x34, 0xfc, + 0x2a, 0xdb, 0x25, 0x8b, 0x62, 0x71, 0x96, 0xdf, 0x56, 0x42, 0xfb, 0x55, 0xda, 0x67, 0xa3, 0xfe, + 0xf2, 0x45, 0xa5, 0xc1, 0x35, 0xbb, 0xc2, 0xaf, 0x4f, 0xf8, 0x3d, 0x9c, 0x3d, 0xfd, 0x2b, 0xbd, + 0xfe, 0x8a, 0xa0, 0x2c, 0x95, 0xb7, 0xd5, 0xf0, 0x7b, 0x08, 0xbb, 0x9e, 0x8f, 0xaa, 0xdb, 0x67, + 0xf8, 0x3d, 0x19, 0xde, 0xfb, 0x29, 0x84, 0xf2, 0xd7, 0x7b, 0xc9, 0xda, 0x2b, 0x51, 0xc9, 0x87, + 0x35, 0xf3, 0x6c, 0x81, 0xf9, 0x1d, 0xdb, 0x7f, 0x6e, 0x26, 0xae, 0xdf, 0x43, 0x39, 0xd0, 0x58, + 0x1b, 0xf0, 0x3b, 0x82, 0xcb, 0xea, 0x85, 0xdf, 0x01, 0xec, 0x1f, 0x4f, 0x9e, 0x0f, 0xfc, 0xc6, + 0x06, 0x7e, 0x63, 0x53, 0xf2, 0xfb, 0xdf, 0x4e, 0x76, 0x15, 0xca, 0x1e, 0x42, 0xa4, 0x6b, 0x07, + 0xb6, 0x8a, 0x55, 0xef, 0xfa, 0x68, 0xf8, 0xfe, 0xd4, 0x4e, 0xbe, 0x33, 0xd1, 0xe3, 0x0b, 0x7e, + 0x7b, 0xf5, 0xee, 0x13, 0x6c, 0x3c, 0x25, 0xaa, 0x4f, 0xa0, 0x23, 0x68, 0x7d, 0x2a, 0x3d, 0xcf, + 0xaf, 0xad, 0xd7, 0x10, 0xec, 0xfb, 0xed, 0xd7, 0xbb, 0x4b, 0x70, 0x9d, 0xdf, 0x71, 0xdc, 0xc6, + 0xaf, 0xa7, 0x57, 0x17, 0x7c, 0x43, 0xbf, 0x62, 0xc0, 0x61, 0xa1, 0xe3, 0x06, 0xd9, 0x8f, 0x8e, + 0xab, 0x1a, 0x5e, 0x1a, 0xe1, 0xe6, 0x56, 0x8e, 0x5f, 0x1b, 0x86, 0x45, 0xdb, 0x79, 0x8a, 0x5f, + 0x19, 0x65, 0x2f, 0x6a, 0x6f, 0xf5, 0x5a, 0xde, 0x2f, 0x64, 0x83, 0x5a, 0x66, 0x3c, 0x75, 0x3b, + 0xab, 0x0a, 0x4f, 0xf1, 0xbb, 0xbf, 0x38, 0xfb, 0xfd, 0x92, 0xf7, 0xb1, 0xf2, 0x3d, 0xab, 0x18, + 0x78, 0x2c, 0xfa, 0xad, 0xda, 0x9f, 0xf6, 0x5d, 0x55, 0x2b, 0xe3, 0x95, 0xa0, 0xa6, 0xae, 0x5a, + 0x1b, 0xa6, 0xc6, 0xbb, 0xf9, 0x4d, 0x9f, 0xd9, 0xea, 0x4a, 0xbf, 0xc6, 0x5b, 0xbd, 0x52, 0xfd, + 0x5d, 0xe9, 0xa5, 0xc5, 0xb3, 0x53, 0xe3, 0x75, 0xbf, 0x0d, 0xc7, 0xda, 0x04, 0xfc, 0xca, 0x6d, + 0x1b, 0xea, 0xaf, 0x54, 0x25, 0xaa, 0x6e, 0x55, 0xfb, 0xfc, 0xbe, 0x0a, 0xf5, 0xd7, 0x67, 0x90, + 0xdf, 0xc6, 0xf6, 0xd9, 0xf6, 0x7b, 0xad, 0xfb, 0x6f, 0x53, 0x42, 0x9d, 0x5f, 0xf5, 0xf9, 0x3f, + 0x5b, 0x93, 0x45, 0x1c, 0xe1, 0x97, 0x96, 0x4d, 0xed, 0x3f, 0xd7, 0xed, 0x50, 0xc9, 0xc3, 0xeb, + 0x3f, 0x8b, 0xa8, 0x6c, 0x97, 0x93, 0x04, 0xcf, 0xf3, 0xbb, 0xda, 0xe7, 0xdb, 0xfc, 0xde, 0x5b, + 0xfd, 0xeb, 0xd1, 0xeb, 0xd6, 0xb8, 0x4c, 0xaf, 0x42, 0xd2, 0x28, 0xba, 0x11, 0x23, 0xfc, 0x16, + 0x7d, 0x9e, 0xe2, 0xd7, 0xbe, 0x61, 0x0e, 0xc9, 0xf9, 0x5a, 0x30, 0xbf, 0xdb, 0xe7, 0x3a, 0xd6, + 0x2f, 0xef, 0x60, 0xd2, 0x76, 0x49, 0xb6, 0x58, 0x87, 0xd4, 0x5f, 0xf6, 0x00, 0x35, 0xb2, 0x6b, + 0xf3, 0x50, 0xbf, 0x85, 0x6e, 0x08, 0x5d, 0x3c, 0xac, 0x7d, 0x7e, 0x0a, 0xf0, 0x7b, 0x06, 0xc7, + 0x55, 0xf4, 0x63, 0xfc, 0xf2, 0xbe, 0xa9, 0xfd, 0x7d, 0xbf, 0xdf, 0xfc, 0x8c, 0x6d, 0xe3, 0x12, + 0x13, 0x7a, 0x52, 0x6a, 0x46, 0x46, 0x1f, 0xde, 0xde, 0x5e, 0x7d, 0xc6, 0xa8, 0xdc, 0x55, 0xed, + 0x91, 0x1c, 0x56, 0x7f, 0xd7, 0x9a, 0xef, 0x23, 0xfd, 0x2a, 0x6b, 0xaf, 0xe2, 0x57, 0x3f, 0x39, + 0x0d, 0xbb, 0xaa, 0x3f, 0x92, 0xa9, 0x7e, 0xe9, 0xe3, 0xe7, 0xe4, 0xf6, 0xb9, 0xf3, 0x34, 0x8c, + 0xd8, 0xdb, 0xc3, 0xfc, 0x92, 0xb6, 0xc7, 0xea, 0x3f, 0x93, 0x9d, 0xf6, 0xf6, 0x9f, 0xdd, 0xd3, + 0x20, 0x86, 0x2e, 0x4a, 0xe3, 0x1b, 0x6d, 0x8d, 0x26, 0x7f, 0x18, 0x90, 0x8f, 0x04, 0x5a, 0xae, + 0xf4, 0xb2, 0xa7, 0x6b, 0xd8, 0xdd, 0x8a, 0xf5, 0xf0, 0xb3, 0xde, 0xbe, 0x7c, 0xee, 0x30, 0x99, + 0xe5, 0x77, 0x27, 0xd3, 0xfc, 0x92, 0xaf, 0x7a, 0xcb, 0xb1, 0x2d, 0xca, 0x53, 0x96, 0xdf, 0xc6, + 0x73, 0x35, 0x32, 0x9f, 0x2c, 0x37, 0x7a, 0x79, 0xad, 0x54, 0x17, 0x5d, 0x93, 0x3e, 0x5f, 0xff, + 0x95, 0x4b, 0x5b, 0xaa, 0xc9, 0x41, 0xc6, 0x9f, 0xd9, 0x3d, 0x5d, 0x9e, 0xb7, 0x55, 0x39, 0x8d, + 0x9e, 0xdf, 0x96, 0xbd, 0x95, 0xfd, 0xca, 0x0d, 0x64, 0xe5, 0xdf, 0xd6, 0x89, 0xc5, 0x4a, 0xbf, + 0x05, 0xe2, 0xf9, 0x55, 0xd6, 0xd6, 0xf9, 0x5d, 0x5e, 0x2d, 0xac, 0xcc, 0xa3, 0x50, 0x7f, 0xe5, + 0xc3, 0x80, 0x9a, 0x5b, 0x7e, 0xd1, 0xb1, 0xac, 0x76, 0xf9, 0x6d, 0x6b, 0x9f, 0x6b, 0x13, 0xc2, + 0xfa, 0x75, 0x73, 0x32, 0xf7, 0x46, 0x1b, 0x0e, 0xf9, 0x29, 0x72, 0x53, 0x93, 0xd2, 0x2d, 0x84, + 0x14, 0xb2, 0xd2, 0x6f, 0x45, 0x71, 0xe1, 0xf7, 0xb8, 0xf6, 0x79, 0xb4, 0xdf, 0x9a, 0x46, 0x3a, + 0x8e, 0x5f, 0x6d, 0xb4, 0x40, 0xf5, 0xbb, 0x96, 0xfa, 0xcf, 0x6d, 0x7b, 0x63, 0x39, 0xd0, 0x4f, + 0x96, 0x1b, 0x09, 0x17, 0xb9, 0xf0, 0xa2, 0x2a, 0x7e, 0x07, 0xf5, 0x9f, 0x6b, 0x13, 0x2a, 0xfc, + 0x76, 0xe2, 0x97, 0x78, 0x0c, 0x6a, 0x0b, 0x7b, 0xf0, 0x8e, 0xab, 0xd6, 0x77, 0xf2, 0x9d, 0x8b, + 0xb6, 0xc5, 0xed, 0xfd, 0xea, 0x2d, 0xde, 0xc9, 0xcc, 0x2a, 0xc4, 0x03, 0xfd, 0xae, 0x6a, 0x8b, + 0x77, 0x2a, 0xf3, 0x0a, 0x31, 0xda, 0xef, 0x49, 0xf3, 0x53, 0x80, 0x45, 0xab, 0xde, 0x6b, 0xce, + 0x2f, 0x03, 0x26, 0x8d, 0x7a, 0x31, 0x3f, 0x34, 0x38, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, + 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0xe0, 0x37, 0x36, + 0xf0, 0x1b, 0x9b, 0x92, 0xdf, 0xff, 0x74, 0x72, 0xd6, 0x71, 0x45, 0xe5, 0x7b, 0x13, 0x3d, 0xbe, + 0xe0, 0xb7, 0x57, 0x2f, 0x04, 0x8f, 0xc5, 0xd6, 0x6b, 0x08, 0xf6, 0xfd, 0xf6, 0xeb, 0x85, 0xe0, + 0x91, 0x78, 0x7a, 0x75, 0xc1, 0xf0, 0x7b, 0x27, 0xe0, 0x37, 0x36, 0x53, 0xfc, 0xee, 0x2f, 0x0e, + 0xfc, 0x0e, 0xc6, 0xd4, 0x08, 0xbf, 0x21, 0x80, 0xdf, 0xd8, 0xcc, 0xf3, 0xab, 0xfd, 0x1e, 0xb9, + 0x08, 0xfc, 0x0e, 0x66, 0x9a, 0xdf, 0xec, 0xd7, 0xdc, 0x55, 0xc0, 0xef, 0x60, 0xe0, 0x37, 0x36, + 0x54, 0x23, 0x6b, 0x50, 0xc7, 0xf8, 0x25, 0x19, 0xf3, 0x59, 0x20, 0xfa, 0x12, 0xfc, 0x8e, 0x26, + 0x69, 0x14, 0xf3, 0xbb, 0x87, 0xdc, 0x7f, 0x3f, 0x56, 0x8a, 0xd9, 0x50, 0xe6, 0x07, 0xfc, 0x0e, + 0x67, 0xd3, 0xc8, 0x27, 0x49, 0x8d, 0xe9, 0x3f, 0xb3, 0xd9, 0x50, 0x62, 0x4a, 0xa3, 0xfe, 0x15, + 0x7e, 0x07, 0x33, 0xd5, 0xaf, 0x3a, 0xb1, 0x31, 0x9b, 0xa6, 0x47, 0x67, 0xfe, 0xc1, 0xef, 0x60, + 0xa6, 0xf9, 0x55, 0x67, 0xc3, 0xaa, 0xf3, 0x56, 0xe9, 0x9d, 0x1a, 0x7e, 0x07, 0x73, 0xae, 0x5f, + 0xdc, 0x7f, 0x67, 0x33, 0xaf, 0x7d, 0x76, 0x66, 0x51, 0xe7, 0xf3, 0xa2, 0xd1, 0x7f, 0x9e, 0xc4, + 0xbc, 0xfe, 0x33, 0xa1, 0xfe, 0x29, 0x18, 0x7e, 0x07, 0x33, 0xed, 0xf9, 0x97, 0x02, 0xbf, 0xa7, + 0x71, 0xc8, 0xfb, 0x05, 0xf8, 0x3d, 0x0d, 0xbc, 0x3f, 0x8a, 0x0d, 0xfc, 0xc6, 0x06, 0x7e, 0x63, + 0x03, 0xbf, 0xb1, 0x99, 0xe2, 0xb7, 0x93, 0x39, 0x47, 0xfa, 0x4c, 0xbe, 0x77, 0xd1, 0xb6, 0x80, + 0xdf, 0x3b, 0x01, 0xbf, 0xb1, 0x19, 0xed, 0x17, 0xf3, 0x53, 0x2e, 0x46, 0xab, 0x5e, 0xcc, 0x2f, + 0xbb, 0x19, 0x8d, 0x7a, 0x31, 0x3f, 0x34, 0x38, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, 0xc6, + 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0xe0, 0x37, 0x36, 0xf0, + 0x1b, 0x9b, 0x92, 0xdf, 0x7f, 0x9b, 0xf0, 0x7c, 0x7e, 0x37, 0xe1, 0x71, 0xbf, 0x99, 0xf0, 0xb8, + 0x5f, 0x4d, 0x78, 0xdc, 0x2f, 0x26, 0x3c, 0xee, 0x67, 0x13, 0x1e, 0xf7, 0x93, 0x09, 0x8f, 0xfb, + 0xd1, 0x84, 0xc7, 0xfd, 0x60, 0xc2, 0xe3, 0xfe, 0x65, 0xc2, 0xe3, 0xfe, 0x69, 0xb2, 0xaa, 0x14, + 0xfc, 0xda, 0x7a, 0xb9, 0x60, 0x5b, 0x2f, 0x17, 0x6c, 0xeb, 0xe5, 0x82, 0x6d, 0xbd, 0x5c, 0xb0, + 0xad, 0x97, 0x0b, 0xb6, 0xf5, 0x72, 0xc1, 0xb6, 0x5e, 0x2e, 0xd8, 0xd6, 0xcb, 0x05, 0xdb, 0x7a, + 0xb9, 0x60, 0x5b, 0x2f, 0x17, 0x6c, 0xeb, 0x35, 0x04, 0xfb, 0x7e, 0x3d, 0xbd, 0x54, 0xb0, 0xa7, + 0x97, 0x0a, 0xf6, 0xf4, 0x52, 0xc1, 0x9e, 0x5e, 0x2a, 0xd8, 0xd3, 0x4b, 0x05, 0x7b, 0x7a, 0xa9, + 0x60, 0x4f, 0x2f, 0x15, 0xec, 0xe9, 0xa5, 0x82, 0x3d, 0xbd, 0x54, 0xb0, 0xa7, 0x97, 0x0a, 0xf6, + 0xf4, 0xea, 0x82, 0xe1, 0x17, 0x7e, 0xe1, 0x37, 0xb4, 0x5f, 0x6d, 0x33, 0xcd, 0xaf, 0x16, 0xa7, + 0xf9, 0xd5, 0xe2, 0x34, 0xbf, 0x5a, 0x9c, 0xe6, 0x57, 0x8b, 0xd3, 0xfc, 0x6a, 0x71, 0x9a, 0x5f, + 0x2d, 0x4e, 0xf3, 0xab, 0xc5, 0x69, 0x7e, 0xb5, 0x38, 0xcd, 0xaf, 0x16, 0xa7, 0xf9, 0xd5, 0xe2, + 0xe0, 0xb7, 0xdd, 0x2f, 0xfd, 0xff, 0x05, 0xc1, 0x2f, 0xfc, 0x2a, 0x09, 0x2d, 0x7e, 0xb5, 0xb0, + 0xeb, 0xf9, 0x4d, 0xd3, 0x45, 0x45, 0xc2, 0x1b, 0xf0, 0xab, 0x27, 0x5c, 0xc0, 0x2f, 0xff, 0x27, + 0x97, 0x7b, 0xfd, 0xd2, 0x69, 0xc3, 0x2c, 0xe1, 0x9d, 0x97, 0x46, 0xf1, 0x6f, 0x2c, 0x7b, 0x7e, + 0xf9, 0x84, 0x58, 0xd3, 0xaf, 0x98, 0x37, 0x7b, 0x41, 0xbf, 0xec, 0x3c, 0x9b, 0x7e, 0x59, 0xd4, + 0xb0, 0xfa, 0x3b, 0xcc, 0xef, 0x87, 0xd8, 0xad, 0x88, 0x37, 0xf6, 0xcb, 0xce, 0xb4, 0xe3, 0x97, + 0xc5, 0x99, 0x7e, 0x45, 0xf9, 0x3c, 0xbf, 0x34, 0x6e, 0x8c, 0xdf, 0x74, 0xc4, 0xf6, 0xfd, 0xf7, + 0xe5, 0x2d, 0x4b, 0xf8, 0x0b, 0xa2, 0x91, 0xb7, 0x07, 0xfd, 0x7e, 0xdf, 0xd2, 0xb7, 0xfc, 0xfa, + 0xfd, 0xf2, 0x0a, 0x62, 0xfb, 0xe5, 0x19, 0x16, 0xfc, 0xaa, 0x09, 0x2b, 0xf1, 0x2b, 0xaa, 0x47, + 0xc9, 0xef, 0x16, 0x38, 0xc4, 0x2f, 0x29, 0x60, 0xbf, 0xdf, 0x95, 0x9d, 0x3f, 0xeb, 0xfe, 0xfb, + 0x21, 0x6d, 0x53, 0x77, 0x9c, 0xdf, 0xda, 0xfa, 0xdb, 0xe2, 0x57, 0x4f, 0x58, 0x6f, 0xe5, 0x97, + 0x7b, 0xf3, 0xfa, 0x57, 0xf4, 0x82, 0xbe, 0xbb, 0x5f, 0x25, 0xe1, 0x2f, 0x6e, 0xe5, 0x97, 0x16, + 0x70, 0x80, 0xdf, 0xaa, 0xfa, 0x9b, 0xe4, 0xbe, 0x87, 0x7a, 0xfd, 0x67, 0x9a, 0xdf, 0x35, 0xef, + 0xbf, 0x7a, 0xc2, 0x7a, 0x0d, 0xbf, 0xac, 0x7c, 0x25, 0xbf, 0x5a, 0xc2, 0xda, 0x7e, 0xff, 0xbd, + 0x83, 0x5f, 0x16, 0x7b, 0x5f, 0xbf, 0xbc, 0x1d, 0xf2, 0xc6, 0x37, 0xaa, 0xfc, 0x2e, 0xaf, 0xfb, + 0xb4, 0xdb, 0x7f, 0x5e, 0xa5, 0x10, 0xf7, 0xf9, 0x97, 0xec, 0xf7, 0xae, 0xf7, 0xdf, 0xf3, 0xfa, + 0xcf, 0xbc, 0xbe, 0x15, 0xfc, 0xea, 0x09, 0xed, 0xcf, 0xbf, 0xd9, 0x81, 0x74, 0xfb, 0x15, 0xc7, + 0x71, 0x39, 0xbf, 0xe7, 0x3e, 0xff, 0x5a, 0x09, 0xa2, 0x7d, 0xd6, 0x13, 0xd6, 0x98, 0xe3, 0x57, + 0x43, 0xef, 0xbf, 0x32, 0xb6, 0xd4, 0x3e, 0xe7, 0x09, 0x82, 0xe1, 0x7e, 0xf9, 0x8e, 0xef, 0xec, + 0x97, 0xde, 0x68, 0x0e, 0x1e, 0x9f, 0xbc, 0xae, 0x5f, 0xb1, 0xdf, 0x5b, 0xfb, 0x5d, 0xcd, 0x84, + 0xe7, 0xfa, 0x15, 0xc0, 0x2f, 0xfc, 0x2a, 0x09, 0x4f, 0xf7, 0xcb, 0x12, 0x2e, 0xf5, 0x7e, 0x50, + 0x00, 0xbf, 0xf0, 0xab, 0x24, 0x3c, 0xd1, 0xef, 0x69, 0xbf, 0xdf, 0x30, 0x49, 0x71, 0xbf, 0xbb, + 0xa4, 0xb8, 0xdf, 0x5c, 0x52, 0xdc, 0xaf, 0x2e, 0x29, 0xee, 0x17, 0x97, 0x14, 0xf7, 0xb3, 0x4b, + 0x8a, 0xfb, 0xc9, 0x25, 0xc5, 0xfd, 0xe8, 0x92, 0xe2, 0x7e, 0x70, 0x11, 0x1a, 0x4d, 0x84, 0x46, + 0x13, 0xf8, 0x85, 0x5f, 0xf8, 0x7d, 0x92, 0x5f, 0xcc, 0x4f, 0x51, 0xf5, 0x86, 0x99, 0x9f, 0x82, + 0xf9, 0x65, 0xba, 0xde, 0x30, 0xf3, 0xcb, 0xc0, 0xcd, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0x34, + 0xbf, 0x10, 0x1c, 0x06, 0x55, 0x2f, 0xfc, 0x86, 0x41, 0xf7, 0x0b, 0xc1, 0x41, 0x30, 0xf4, 0xc2, + 0x6f, 0x10, 0x2c, 0xbf, 0x10, 0x1c, 0x02, 0x53, 0x2f, 0x0c, 0x07, 0xc0, 0xb3, 0x0b, 0xc3, 0x77, + 0xa7, 0x64, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0xc2, 0x9f, 0xfe, 0xbb, 0x89, 0xf5 }; #endif diff --git a/backends/platform/psp/kbd_ls_c.cpp b/backends/platform/psp/kbd_ls_c.cpp index 6f199377c0..ede308173e 100644 --- a/backends/platform/psp/kbd_ls_c.cpp +++ b/backends/platform/psp/kbd_ls_c.cpp @@ -3,222 +3,222 @@ unsigned int size_keyboard_letters_shift_compressed = 3450; unsigned char keyboard_letters_shift_compressed[] __attribute__((aligned(16))) = { - 0x78, 0x9c, 0xed, 0x9d, 0xe9, 0xb6, 0xab, 0x38, 0x0e, 0x46, 0xe9, 0xae, 0xb9, 0xbb, 0x86, 0xee, - 0x9a, 0xab, 0xa7, 0xf7, 0x7f, 0x42, 0xea, 0x6f, 0xaf, 0x73, 0x13, 0xb0, 0x24, 0x4b, 0xb2, 0xc1, - 0x03, 0x41, 0xf9, 0xf6, 0x5a, 0x27, 0x21, 0x58, 0x36, 0x0e, 0x1b, 0x8c, 0x31, 0xf1, 0xbd, 0x7f, - 0xfe, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x8d, 0x58, 0xc1, - 0x8d, 0x81, 0xdd, 0xe8, 0xc0, 0x6e, 0x74, 0xa0, 0x37, 0x38, 0xf0, 0x1b, 0x1b, 0xe8, 0x0d, 0x0e, - 0xfc, 0xc6, 0x06, 0x7a, 0x83, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0x94, 0xfc, 0xfe, 0xc5, 0x84, - 0x97, 0xf3, 0x57, 0x13, 0x1e, 0xf7, 0x99, 0x09, 0x8f, 0xfb, 0xdc, 0x84, 0xc7, 0x7d, 0x61, 0xc2, - 0xe3, 0xbe, 0x34, 0xe1, 0x71, 0x5f, 0x99, 0xf0, 0xb8, 0xaf, 0x4d, 0x78, 0xdc, 0x37, 0x26, 0x3c, - 0xee, 0x6f, 0x26, 0x3c, 0xee, 0xef, 0x26, 0xab, 0x4a, 0xc1, 0xaf, 0xad, 0x97, 0x0b, 0xb6, 0xf5, - 0x72, 0xc1, 0xb6, 0x5e, 0x2e, 0xd8, 0xd6, 0xcb, 0x05, 0xdb, 0x7a, 0xb9, 0x60, 0x5b, 0x2f, 0x17, - 0x6c, 0xeb, 0xe5, 0x82, 0x6d, 0xbd, 0x5c, 0xb0, 0xad, 0x97, 0x0b, 0xb6, 0xf5, 0x72, 0xc1, 0xb6, - 0x5e, 0x43, 0xb0, 0xef, 0xd7, 0xd3, 0x4b, 0x05, 0x7b, 0x7a, 0xa9, 0x60, 0x4f, 0x2f, 0x15, 0xec, - 0xe9, 0xa5, 0x82, 0x3d, 0xbd, 0x54, 0xb0, 0xa7, 0x97, 0x0a, 0xf6, 0xf4, 0x52, 0xc1, 0x9e, 0x5e, - 0x2a, 0xd8, 0xd3, 0x4b, 0x05, 0x7b, 0x7a, 0xa9, 0x60, 0x4f, 0xaf, 0x2e, 0x18, 0x7e, 0xe1, 0x17, - 0x7e, 0x43, 0xfb, 0xd5, 0xb2, 0x69, 0x7e, 0xb5, 0x38, 0xcd, 0xaf, 0x16, 0xa7, 0xf9, 0xd5, 0xe2, - 0x34, 0xbf, 0x5a, 0x9c, 0xe6, 0x57, 0x8b, 0xd3, 0xfc, 0x6a, 0x71, 0x9a, 0x5f, 0x2d, 0x4e, 0xf3, - 0xab, 0xc5, 0x69, 0x7e, 0xb5, 0x38, 0xcd, 0xaf, 0x16, 0x07, 0xbf, 0xf0, 0x5b, 0xf2, 0xbb, 0x2c, - 0x8b, 0x9e, 0x00, 0xbf, 0x56, 0x42, 0x38, 0xbf, 0xcb, 0x93, 0x2c, 0xe1, 0x01, 0xd5, 0xc8, 0x02, - 0x2d, 0xbf, 0xb2, 0x3c, 0xd3, 0xef, 0xb2, 0xb0, 0x50, 0xdb, 0x2f, 0x0f, 0x74, 0xfc, 0xb2, 0x0d, - 0x5b, 0x7e, 0xf7, 0x88, 0xe7, 0x82, 0xe7, 0x97, 0xee, 0xbf, 0x82, 0xdf, 0x3d, 0xd4, 0xf2, 0xbb, - 0x05, 0x6c, 0xef, 0x1d, 0xfc, 0xb2, 0xfd, 0xec, 0xf8, 0x65, 0xf5, 0x33, 0xfd, 0x8a, 0x40, 0xc7, - 0x2f, 0x2b, 0xcf, 0xf3, 0x4b, 0xbf, 0x96, 0xeb, 0x77, 0x55, 0x13, 0x3e, 0x48, 0x1a, 0xc5, 0x86, - 0x5f, 0xd4, 0xef, 0x1e, 0x37, 0xd9, 0xef, 0xfe, 0x6e, 0xf9, 0x95, 0xfb, 0xa5, 0xe0, 0x77, 0x7f, - 0x9f, 0xe5, 0x57, 0xd6, 0xef, 0x35, 0xfd, 0xa6, 0x12, 0xe1, 0x37, 0xa0, 0x5f, 0x52, 0x60, 0xbb, - 0xdf, 0x8f, 0xc2, 0x52, 0x81, 0x8d, 0x7e, 0x85, 0x8d, 0xb2, 0xdf, 0x6d, 0x61, 0x92, 0xdf, 0xac, - 0x7e, 0xaf, 0xe8, 0x97, 0x96, 0x37, 0xd9, 0x6f, 0xe9, 0xfa, 0x0b, 0xbf, 0xed, 0x7e, 0x59, 0x1d, - 0x27, 0xfa, 0x65, 0x9b, 0x9e, 0xe9, 0x97, 0x6e, 0xb8, 0xa2, 0xff, 0x2c, 0x13, 0x3e, 0x38, 0xe3, - 0x97, 0x15, 0x38, 0xd5, 0xef, 0xaa, 0x24, 0x48, 0x6a, 0xfd, 0x8a, 0x0b, 0xfa, 0x7b, 0x9c, 0xbf, - 0xc9, 0x5b, 0xf8, 0xf3, 0xf7, 0x98, 0xdf, 0x38, 0xd7, 0xdf, 0x97, 0xf6, 0xdb, 0xf1, 0xfa, 0x2b, - 0xda, 0x3f, 0xf8, 0xbd, 0xdc, 0xef, 0x4a, 0x05, 0xb7, 0xfa, 0x95, 0xde, 0x70, 0x7f, 0x34, 0xc8, - 0xaf, 0x68, 0x27, 0x4b, 0xf7, 0x47, 0xbd, 0xee, 0x7f, 0xe1, 0xf7, 0x05, 0xfd, 0x12, 0xc1, 0x93, - 0xfd, 0x96, 0xfa, 0x57, 0x59, 0xe0, 0xab, 0x8e, 0x4f, 0xce, 0x6f, 0x9f, 0x17, 0x76, 0x9f, 0x52, - 0x1e, 0x9f, 0x5c, 0x78, 0x82, 0xa4, 0xfa, 0xfe, 0x88, 0x73, 0xeb, 0xe7, 0x0b, 0xab, 0x9a, 0xf0, - 0x41, 0xfe, 0x7c, 0xe1, 0x19, 0x3d, 0xf1, 0xfa, 0xcb, 0xbe, 0x6f, 0xc5, 0xf3, 0x85, 0x85, 0x25, - 0x48, 0x3a, 0xfb, 0x95, 0xe0, 0xf9, 0xe0, 0x7d, 0x9e, 0x0f, 0x52, 0xe0, 0x17, 0x7e, 0x95, 0x04, - 0xf8, 0xd5, 0x13, 0x2e, 0xf5, 0x6b, 0x92, 0xe2, 0xfe, 0xea, 0x92, 0xe2, 0x3e, 0x73, 0x49, 0x71, - 0x9f, 0xbb, 0xa4, 0xb8, 0x2f, 0x5c, 0x52, 0xdc, 0x97, 0x2e, 0x29, 0xee, 0x2b, 0x97, 0x14, 0xf7, - 0xb5, 0x4b, 0x8a, 0xfb, 0xc6, 0x45, 0x68, 0x34, 0x11, 0x1a, 0x4d, 0xe0, 0x17, 0x7e, 0xe1, 0xf7, - 0x9d, 0xfc, 0x62, 0x7e, 0x8a, 0xaa, 0x37, 0xcc, 0xfc, 0x14, 0xcc, 0x2f, 0xd3, 0xf5, 0x86, 0x99, - 0x5f, 0x06, 0x6e, 0x0e, 0xfc, 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, - 0x6f, 0x6c, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, 0xc6, 0xa6, 0xe4, 0xf7, - 0x7f, 0x8d, 0x5c, 0xf5, 0xbd, 0xa2, 0xf2, 0xad, 0x89, 0x1e, 0x5f, 0xf0, 0xdb, 0xaa, 0x17, 0x82, - 0xfb, 0x62, 0xeb, 0x35, 0x04, 0xfb, 0x7e, 0xdb, 0xf5, 0x42, 0x70, 0x4f, 0x3c, 0xbd, 0xba, 0x60, - 0xf8, 0xbd, 0x13, 0xf0, 0x1b, 0x9b, 0x21, 0x7e, 0xcf, 0x57, 0x07, 0x7e, 0x3b, 0x63, 0x6a, 0x84, - 0xdf, 0x10, 0xc0, 0x6f, 0x6c, 0x88, 0x46, 0x3e, 0x0f, 0x03, 0x7e, 0x43, 0x30, 0xd4, 0xaf, 0x9c, - 0x0b, 0xb4, 0xad, 0xb5, 0xab, 0x03, 0xbf, 0x9d, 0x19, 0xec, 0x57, 0x2b, 0x00, 0x7e, 0x27, 0x02, - 0xbf, 0xb1, 0x99, 0xe5, 0x37, 0x35, 0xd4, 0xf4, 0x7d, 0x59, 0xc5, 0xec, 0x46, 0xf8, 0xed, 0xcc, - 0x8c, 0xeb, 0xef, 0x63, 0x71, 0x7b, 0x59, 0xc5, 0x0a, 0xb6, 0x59, 0xf8, 0xed, 0xcc, 0xbc, 0xf3, - 0x77, 0x35, 0xfd, 0xae, 0x46, 0x76, 0xd0, 0xce, 0x85, 0x7e, 0x9f, 0xe7, 0x36, 0xfc, 0x8e, 0xe4, - 0xda, 0xf3, 0x57, 0x04, 0xc1, 0x6f, 0x77, 0xd0, 0x3e, 0xc7, 0x66, 0xd6, 0xf8, 0x06, 0xf1, 0xbb, - 0xf2, 0x7e, 0x33, 0xfc, 0x8e, 0x04, 0xe3, 0x93, 0xb1, 0x81, 0xdf, 0xd8, 0x70, 0xbf, 0xe4, 0x86, - 0x15, 0x7e, 0x43, 0x80, 0xe7, 0x83, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0x86, 0xf8, 0x6d, - 0x64, 0xcc, 0x37, 0x7d, 0x4f, 0xbe, 0x75, 0xd1, 0x72, 0xc0, 0xef, 0x9d, 0x80, 0xdf, 0xd8, 0xf4, - 0xf6, 0x8b, 0xf9, 0x29, 0x2f, 0xc6, 0x51, 0xbd, 0x98, 0x5f, 0x76, 0x33, 0x0e, 0xea, 0xc5, 0xfc, - 0xd0, 0xe0, 0xc0, 0x6f, 0x6c, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0xcd, 0x0b, 0xf8, - 0xf5, 0x7e, 0x41, 0x2d, 0xff, 0xdf, 0x1b, 0x2f, 0x26, 0x8f, 0xac, 0xc8, 0xbb, 0x97, 0xa0, 0x4c, - 0xcc, 0xb0, 0x72, 0xf3, 0x04, 0x2d, 0x6f, 0x21, 0x4b, 0x71, 0x0b, 0xfd, 0x78, 0x75, 0xbf, 0x35, - 0x8e, 0x9a, 0xfd, 0xea, 0xf9, 0xeb, 0xfc, 0x5a, 0xdb, 0xae, 0x29, 0xeb, 0x2d, 0xfc, 0x16, 0x8e, - 0xfe, 0x3a, 0xbf, 0xd9, 0x4f, 0x83, 0x6a, 0xf3, 0x92, 0x38, 0xf8, 0x1d, 0x42, 0xf2, 0x4b, 0x5a, - 0x3a, 0xba, 0x24, 0x56, 0xe4, 0x0d, 0xe2, 0xa7, 0xff, 0xf1, 0x8b, 0x44, 0xae, 0x69, 0xaf, 0x57, - 0x34, 0x9d, 0x6b, 0x26, 0x8c, 0xb7, 0x07, 0x6c, 0xaa, 0xc6, 0xf6, 0x53, 0x33, 0x35, 0xaf, 0xf2, - 0x83, 0x61, 0xad, 0xce, 0xd9, 0x77, 0x1b, 0xc9, 0xe5, 0x7e, 0x55, 0x33, 0xf6, 0xef, 0x33, 0xf9, - 0x6f, 0xfb, 0xf6, 0x22, 0x2c, 0xbf, 0x32, 0x54, 0xee, 0x77, 0xb2, 0x96, 0xd4, 0x47, 0x2d, 0x23, - 0xfb, 0x61, 0x61, 0x96, 0x57, 0x56, 0xb8, 0x58, 0xa9, 0x17, 0xf0, 0xfb, 0xdf, 0x46, 0x8a, 0x15, - 0xd0, 0x77, 0xc2, 0xfe, 0xb1, 0xd2, 0xef, 0xe6, 0xb8, 0x14, 0xea, 0xd5, 0x43, 0x3d, 0xc8, 0x84, - 0x5f, 0x52, 0x31, 0x23, 0xaf, 0x58, 0xec, 0xed, 0xf7, 0x3b, 0x13, 0x3d, 0xbe, 0xe0, 0xb7, 0x55, - 0x6f, 0x59, 0xf0, 0x22, 0x9a, 0x2b, 0xd9, 0xb2, 0x56, 0xfa, 0x5d, 0xf5, 0x52, 0x64, 0xa8, 0x71, - 0xfe, 0xa6, 0x8c, 0x6b, 0x4a, 0x16, 0x9f, 0x1d, 0xbf, 0xf2, 0xa4, 0x25, 0x8b, 0x9d, 0xfd, 0xda, - 0x7a, 0x0d, 0xc1, 0xbe, 0xdf, 0x76, 0xbd, 0x25, 0xc1, 0xba, 0xc4, 0xc3, 0xed, 0x73, 0xb5, 0xdf, - 0xba, 0x4a, 0x64, 0x6b, 0x95, 0x04, 0x2d, 0x8a, 0xb7, 0xd5, 0xfd, 0xfd, 0x7a, 0x7a, 0x75, 0xc1, - 0x61, 0xfc, 0x2a, 0x0d, 0xec, 0x79, 0xbf, 0x66, 0xfb, 0x6c, 0x6f, 0xfc, 0xf9, 0x01, 0x7e, 0x39, - 0xa6, 0x44, 0xab, 0x17, 0xcb, 0x5a, 0x74, 0x5e, 0x46, 0x96, 0x5e, 0xdb, 0x7f, 0x66, 0x81, 0xc5, - 0xfe, 0x33, 0xd9, 0x54, 0xb6, 0x11, 0xb6, 0xc0, 0xfc, 0x76, 0xe9, 0x3f, 0x0f, 0xf1, 0x7b, 0xb0, - 0x0e, 0x84, 0xc6, 0xec, 0x0e, 0xc7, 0xaf, 0x5c, 0x73, 0x18, 0x5c, 0x2f, 0x53, 0x63, 0x20, 0xbf, - 0xb5, 0x8d, 0xee, 0x15, 0x8c, 0xae, 0xd6, 0x3b, 0xf8, 0x5d, 0x6b, 0x1b, 0xdd, 0xe9, 0x8c, 0xaf, - 0xd6, 0x53, 0x23, 0xdd, 0xd0, 0x63, 0x39, 0x92, 0xdf, 0x37, 0x66, 0xb0, 0x5f, 0xf3, 0xd6, 0xf1, - 0x99, 0x2a, 0xd7, 0xc0, 0x6f, 0x67, 0x92, 0xdf, 0xd4, 0x8f, 0xeb, 0xea, 0x37, 0xbd, 0xe6, 0x0c, - 0xf4, 0x5b, 0xee, 0x08, 0xdb, 0x87, 0x5e, 0xd5, 0xfd, 0xd1, 0x22, 0x16, 0x3a, 0xd5, 0xaa, 0x37, - 0x71, 0xfd, 0x3a, 0xdb, 0x2d, 0x54, 0x6d, 0x98, 0xdf, 0x93, 0xf7, 0xb0, 0x2d, 0x10, 0xbf, 0xfc, - 0xe6, 0xad, 0xbf, 0xdf, 0x7c, 0x1b, 0xe4, 0x76, 0x4f, 0xcf, 0x7e, 0x9e, 0xf2, 0xae, 0x6c, 0xf5, - 0xbb, 0xd0, 0xf7, 0x5e, 0x95, 0xea, 0xce, 0x70, 0xbf, 0xfc, 0xe6, 0x9f, 0xbf, 0x2c, 0x8b, 0xfc, - 0xb2, 0xd7, 0xf8, 0xf5, 0x86, 0x42, 0xac, 0xcc, 0xc2, 0x2f, 0x1f, 0x82, 0xc8, 0x87, 0x58, 0xc8, - 0x26, 0xc9, 0x32, 0xdb, 0x7a, 0xee, 0xa0, 0x43, 0xc7, 0x9f, 0xfa, 0xdd, 0x37, 0x32, 0xae, 0x7d, - 0xe6, 0xcd, 0x66, 0x5e, 0xfb, 0x4b, 0xfc, 0xea, 0x43, 0x81, 0x29, 0x4e, 0xb9, 0x52, 0x2f, 0xfb, - 0x03, 0x46, 0x65, 0x20, 0xcd, 0x2c, 0xcc, 0xf4, 0x2b, 0x57, 0x88, 0xa4, 0x06, 0x26, 0xfa, 0x25, - 0xdb, 0xd8, 0x53, 0x65, 0xf5, 0x07, 0xfa, 0x95, 0x92, 0x84, 0x35, 0xd3, 0xaf, 0x55, 0xbc, 0xe5, - 0x97, 0x9e, 0xd3, 0x59, 0x15, 0xc4, 0x32, 0xcf, 0x66, 0x26, 0x35, 0x40, 0xee, 0x8f, 0xe8, 0xdf, - 0x00, 0xbf, 0x4a, 0xad, 0x5f, 0xe0, 0xfc, 0xdd, 0xeb, 0x71, 0xf8, 0xfc, 0x7d, 0xd6, 0xde, 0xf5, - 0x9b, 0x1d, 0x52, 0x62, 0x99, 0x6d, 0xce, 0xba, 0x92, 0x35, 0x71, 0x99, 0x5f, 0x76, 0xf8, 0x5b, - 0xd9, 0xcf, 0x73, 0xc4, 0xaf, 0xdf, 0x3e, 0x9b, 0x99, 0x2d, 0xbf, 0xd9, 0xbb, 0x5a, 0x29, 0x5d, - 0xa2, 0x75, 0x26, 0x9c, 0x86, 0x8e, 0x6f, 0x2c, 0x5b, 0x8d, 0x7b, 0xfa, 0x15, 0xbd, 0x06, 0xd6, - 0x6d, 0x48, 0xfb, 0xc7, 0xc8, 0x7e, 0x9e, 0xf2, 0xee, 0x69, 0xf6, 0x6b, 0xe6, 0x63, 0xef, 0xf9, - 0xf9, 0x6b, 0xf8, 0xb5, 0x4e, 0x82, 0x36, 0x06, 0xfb, 0x3d, 0xca, 0xd4, 0xf1, 0x0d, 0x2d, 0xb8, - 0x9c, 0x2f, 0x65, 0x96, 0x8d, 0xf2, 0x42, 0x13, 0xe5, 0xca, 0xac, 0xf4, 0xac, 0x3b, 0x22, 0x2a, - 0x21, 0xea, 0x78, 0x12, 0x36, 0x3e, 0x49, 0x5f, 0x6f, 0xee, 0x17, 0x3c, 0x80, 0xdf, 0xd8, 0xbc, - 0xc5, 0xf3, 0xc1, 0x37, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x19, 0xe2, 0xb7, 0x91, 0x31, 0xdf, - 0xb4, 0x8c, 0x79, 0xdf, 0xaa, 0x85, 0x6a, 0x1d, 0xed, 0x42, 0xc6, 0xaa, 0xbe, 0xb9, 0x1a, 0x50, - 0xd3, 0xa5, 0xd7, 0xf9, 0xce, 0x45, 0xcb, 0x11, 0xd7, 0x6f, 0xc5, 0xa0, 0x08, 0x8f, 0xac, 0x5b, - 0x7b, 0xac, 0xf4, 0x33, 0x25, 0x3b, 0xc0, 0x2f, 0x25, 0x1f, 0x70, 0x71, 0x02, 0x6b, 0xd7, 0xf2, - 0xd4, 0x9b, 0xfb, 0x9d, 0x30, 0x3f, 0x65, 0x24, 0x55, 0x83, 0x1b, 0xab, 0x31, 0x38, 0x92, 0x0f, - 0xcf, 0x59, 0xa3, 0xcf, 0x7c, 0x20, 0x8b, 0xb5, 0xf5, 0xd9, 0xb2, 0xcc, 0x7b, 0x90, 0xa3, 0x7a, - 0xaf, 0x9f, 0x5f, 0x36, 0x94, 0x7c, 0x47, 0x1a, 0xcf, 0x17, 0x94, 0xa7, 0x01, 0x72, 0xe4, 0x51, - 0x1e, 0x2b, 0x54, 0x1c, 0x7f, 0x25, 0xed, 0x86, 0x3e, 0xe8, 0xd9, 0x30, 0x90, 0x75, 0x50, 0xef, - 0xf5, 0xf3, 0x43, 0x87, 0x52, 0xb9, 0x23, 0xe5, 0xb9, 0x68, 0xf8, 0x55, 0xf2, 0x25, 0x8b, 0x62, - 0x71, 0x94, 0xdf, 0xa3, 0x84, 0xf6, 0xab, 0xb4, 0xcf, 0xc6, 0xf9, 0xcb, 0x17, 0x95, 0x06, 0xd7, - 0xec, 0x0a, 0x6f, 0xaf, 0xf0, 0x3b, 0x9d, 0x33, 0xfd, 0x2b, 0xfd, 0xfc, 0x15, 0x41, 0x59, 0x2a, - 0x6f, 0xab, 0xe1, 0x77, 0x0a, 0xa7, 0xee, 0x8f, 0xaa, 0xdb, 0x67, 0xf8, 0xbd, 0x18, 0xde, 0xfb, - 0x29, 0x84, 0xf2, 0xc7, 0x7b, 0xc9, 0xda, 0x96, 0xa8, 0x94, 0xc3, 0x9a, 0x79, 0xb6, 0xc0, 0xfc, - 0xf6, 0xed, 0x3f, 0x1f, 0x26, 0xae, 0xdf, 0xa9, 0x4c, 0x34, 0x76, 0x0c, 0xf8, 0xed, 0xc1, 0xcb, - 0xea, 0x85, 0xdf, 0x0e, 0x9c, 0x1f, 0x4f, 0x1e, 0x0f, 0xfc, 0xc6, 0x06, 0x7e, 0x63, 0x53, 0xf2, - 0xfb, 0x9f, 0x46, 0x4e, 0x55, 0xca, 0x1e, 0x42, 0xa4, 0x6b, 0x3b, 0xb6, 0x8a, 0x55, 0xcf, 0xfa, - 0x68, 0xf8, 0xf9, 0xd4, 0x46, 0xbe, 0x37, 0xd1, 0xe3, 0x0b, 0x7e, 0x5b, 0xf5, 0x9e, 0x13, 0x6c, - 0xdc, 0x25, 0xaa, 0x77, 0xa0, 0x3d, 0x38, 0x7a, 0x57, 0x7a, 0x9d, 0x5f, 0x5b, 0xaf, 0x21, 0xd8, - 0xf7, 0xdb, 0xae, 0xf7, 0x94, 0xe0, 0x3a, 0xbf, 0xfd, 0xb8, 0x8d, 0x5f, 0x4f, 0xaf, 0x2e, 0xf8, - 0x86, 0x7e, 0xc5, 0x80, 0xc3, 0x42, 0xc7, 0x0d, 0xf8, 0x22, 0x79, 0xaf, 0xd8, 0xde, 0xb6, 0xec, - 0x94, 0x56, 0x8e, 0x5f, 0x0f, 0x0c, 0x8b, 0x1e, 0xe7, 0x5d, 0xfc, 0xca, 0x28, 0x7b, 0x51, 0x7b, - 0xaa, 0x77, 0xe4, 0xf9, 0x42, 0x36, 0xa8, 0x65, 0xc6, 0x53, 0xb7, 0xa3, 0x4e, 0xe1, 0x21, 0x7e, - 0xcf, 0x57, 0xe7, 0xbc, 0x5f, 0xf2, 0x3c, 0x56, 0x3e, 0x67, 0x15, 0x03, 0x8f, 0x45, 0xbf, 0x55, - 0xdb, 0xd3, 0x3e, 0xab, 0x6a, 0x65, 0xbc, 0x12, 0x74, 0xa8, 0xab, 0x76, 0x0c, 0x53, 0xe3, 0xdd, - 0xfc, 0xa6, 0xd7, 0x6c, 0x75, 0xa5, 0x5f, 0xe3, 0xa9, 0x5e, 0xe9, 0xfc, 0x5d, 0xe9, 0xa1, 0xc5, - 0x8b, 0x53, 0xe3, 0x75, 0xbf, 0x07, 0xbe, 0xeb, 0x21, 0xe0, 0x57, 0xe6, 0x3d, 0x70, 0xfe, 0x4a, - 0x55, 0xe2, 0xd4, 0xad, 0x6a, 0x9f, 0x1f, 0xab, 0x70, 0xfe, 0xfa, 0x74, 0xf2, 0x7b, 0xb0, 0x7d, - 0xb6, 0xfd, 0xbe, 0xd6, 0xf5, 0xf7, 0xb1, 0xd9, 0xbd, 0x61, 0xe1, 0x09, 0x92, 0x3a, 0xbf, 0xea, - 0xfd, 0x7f, 0xb6, 0x26, 0x8b, 0x98, 0xe1, 0x97, 0xd6, 0x4d, 0xed, 0x3f, 0xd7, 0x6d, 0x50, 0x29, - 0xc3, 0xeb, 0x3f, 0x8b, 0xa8, 0x6c, 0x93, 0x83, 0x04, 0x8f, 0xf3, 0xbb, 0xda, 0xfb, 0xdb, 0xfc, - 0xdc, 0x7a, 0xfa, 0xd7, 0xa3, 0x9f, 0x5b, 0xfd, 0x0a, 0x7d, 0x15, 0x98, 0xdf, 0x87, 0x93, 0x7e, - 0x7e, 0x8b, 0x3e, 0x2f, 0xf1, 0x6b, 0x5f, 0x30, 0xbb, 0x94, 0xfc, 0x5a, 0x4c, 0xf1, 0xcb, 0x3b, - 0x98, 0x6c, 0x5b, 0xa2, 0xc5, 0x9a, 0x72, 0xfe, 0xb2, 0x1b, 0xa8, 0x9e, 0x5d, 0x9b, 0x97, 0xf7, - 0xbb, 0x0c, 0xf1, 0x5b, 0xe8, 0x86, 0xd0, 0xc5, 0x69, 0xed, 0xf3, 0xbb, 0x00, 0xbf, 0x57, 0x30, - 0xef, 0x44, 0xa7, 0x7e, 0xf7, 0x3f, 0x96, 0x20, 0x39, 0xe3, 0x97, 0xf7, 0x4d, 0xed, 0xcf, 0xe7, - 0xfd, 0xe6, 0x7b, 0x6c, 0x1f, 0x97, 0x18, 0xd0, 0x93, 0x52, 0x0b, 0x32, 0xfa, 0xf0, 0x76, 0x7e, - 0xf5, 0x1e, 0xa3, 0x72, 0x53, 0xb5, 0xdf, 0x64, 0x8e, 0x5f, 0xf9, 0xbd, 0xac, 0xcf, 0x3d, 0xfd, - 0x2a, 0x6b, 0x5f, 0xc5, 0xaf, 0xbe, 0x73, 0x0e, 0x6c, 0xaa, 0xfe, 0x9b, 0x30, 0xbf, 0xf4, 0x88, - 0xea, 0x78, 0x7f, 0x34, 0xa3, 0x7d, 0x6e, 0xdc, 0x0d, 0x3d, 0xb6, 0xf6, 0x66, 0x7e, 0x49, 0xdb, - 0x63, 0xf5, 0x9f, 0xb7, 0x86, 0xa6, 0x43, 0xff, 0xd9, 0xdd, 0x0d, 0x62, 0xe8, 0x42, 0x1d, 0x9b, - 0x60, 0x9d, 0xfa, 0x23, 0x8d, 0x26, 0xbf, 0x19, 0x90, 0xb7, 0x04, 0x5a, 0xa9, 0xf4, 0xb0, 0xa7, - 0x6b, 0xd8, 0xd5, 0x8a, 0xf5, 0xf0, 0xb3, 0xde, 0xbe, 0xbc, 0xef, 0x30, 0xe1, 0x7e, 0x49, 0x8e, - 0x7b, 0x8d, 0x4f, 0x16, 0xfd, 0x92, 0x8f, 0x7a, 0xcb, 0xb1, 0x2f, 0xca, 0x5d, 0x96, 0x5f, 0xc6, - 0x73, 0x35, 0xb2, 0x9c, 0xac, 0x34, 0x7a, 0x78, 0xad, 0x54, 0x17, 0x5d, 0x93, 0x5e, 0xb7, 0xbf, - 0x72, 0x6d, 0x4b, 0x67, 0x72, 0x3c, 0xbf, 0xfc, 0x80, 0x67, 0x89, 0x95, 0x7e, 0x8f, 0x6c, 0xad, - 0xec, 0x57, 0x66, 0x90, 0x27, 0xff, 0xbe, 0x4e, 0x2c, 0x56, 0xfa, 0x2d, 0x20, 0xfc, 0xae, 0xf7, - 0xf7, 0xab, 0xac, 0xad, 0xf3, 0xbb, 0x6c, 0x2d, 0xac, 0x2c, 0xa3, 0x70, 0xfe, 0xf2, 0xd6, 0xdf, - 0x28, 0x2d, 0x3f, 0xe8, 0x58, 0x51, 0xa7, 0xfc, 0x9e, 0x68, 0x9f, 0xdf, 0xd9, 0xaf, 0x5b, 0x92, - 0xb9, 0x35, 0xda, 0x70, 0xc8, 0x57, 0x51, 0x9a, 0x9a, 0x94, 0x2e, 0x21, 0xa4, 0x92, 0x95, 0x7e, - 0x2b, 0xaa, 0x1b, 0xe4, 0xf9, 0x60, 0x27, 0xbf, 0x63, 0xdb, 0xe7, 0xde, 0x7e, 0x6b, 0x1a, 0xe9, - 0x38, 0x7e, 0xb3, 0x46, 0x74, 0x35, 0xfc, 0xae, 0xa5, 0xfe, 0xf3, 0xb1, 0xad, 0xb1, 0x12, 0xe8, - 0x2b, 0x2b, 0x8d, 0x84, 0x8b, 0x52, 0x78, 0x55, 0x15, 0xbf, 0x7d, 0xfa, 0xcf, 0xd5, 0x09, 0x15, - 0x7e, 0x1b, 0xf1, 0x6b, 0xdc, 0x07, 0xb5, 0x85, 0x9d, 0xbc, 0xe1, 0xaa, 0xf5, 0x8d, 0x7c, 0xef, - 0xa2, 0xe5, 0xb8, 0xbd, 0x5f, 0xbd, 0xc5, 0xbb, 0x98, 0x51, 0x95, 0x78, 0x43, 0xbf, 0xab, 0xda, - 0xe2, 0x5d, 0xca, 0xb8, 0x4a, 0xf4, 0xf6, 0x7b, 0xd1, 0xfc, 0x14, 0x60, 0x71, 0x54, 0xef, 0x6b, - 0xce, 0x2f, 0x03, 0x26, 0x07, 0xf5, 0x62, 0x7e, 0x68, 0x70, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, - 0xf8, 0x8d, 0x0d, 0xfc, 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, - 0x6c, 0xe0, 0x37, 0x36, 0x25, 0xbf, 0xff, 0x6e, 0xe4, 0xaa, 0xef, 0x15, 0x95, 0x1f, 0x4c, 0xf4, - 0xf8, 0x82, 0xdf, 0x56, 0xbd, 0x10, 0xdc, 0x17, 0x5b, 0xaf, 0x21, 0xd8, 0xf7, 0xdb, 0xae, 0x17, - 0x82, 0x7b, 0xe2, 0xe9, 0xd5, 0x05, 0xc3, 0xef, 0x9d, 0x80, 0xdf, 0xd8, 0x0c, 0xf1, 0x7b, 0xbe, - 0x3a, 0xf0, 0xdb, 0x19, 0x53, 0x23, 0xfc, 0x86, 0x00, 0x7e, 0x63, 0x43, 0x35, 0xb2, 0xdf, 0xe3, - 0x36, 0xfb, 0xd5, 0x7e, 0x8f, 0x5c, 0x04, 0x7e, 0x3b, 0x93, 0x34, 0xa6, 0x9f, 0x6b, 0x8b, 0x04, - 0x41, 0xa5, 0xdf, 0xec, 0xd7, 0xdc, 0x55, 0xc0, 0x6f, 0x67, 0x76, 0x8d, 0xf4, 0x27, 0xa3, 0x2c, - 0x41, 0x02, 0xbf, 0x77, 0x62, 0xb0, 0xdf, 0xbd, 0x48, 0x39, 0x0b, 0x44, 0x5f, 0x82, 0xdf, 0xde, - 0x6c, 0x1a, 0xc9, 0xa5, 0xf2, 0xb1, 0xd8, 0xe5, 0xfa, 0xbb, 0x97, 0x58, 0xf7, 0x02, 0xbf, 0xdd, - 0x19, 0xe7, 0x97, 0x14, 0x2a, 0xa6, 0x81, 0x38, 0x1f, 0xe1, 0xb7, 0x33, 0x43, 0xfd, 0xaa, 0x13, - 0x1b, 0xb3, 0x69, 0x7a, 0x74, 0xe6, 0x1f, 0xfc, 0x76, 0x66, 0x98, 0x5f, 0x75, 0x36, 0xac, 0x3a, - 0x6f, 0x95, 0x5e, 0xa9, 0xe1, 0xb7, 0x33, 0xd7, 0xfa, 0xc5, 0xf5, 0x77, 0x34, 0x63, 0xfb, 0x57, - 0xde, 0x84, 0x6a, 0xf4, 0x9f, 0x67, 0x30, 0xec, 0xfe, 0x88, 0x52, 0x7f, 0x17, 0x0c, 0xbf, 0x9d, - 0x81, 0xdf, 0xd8, 0x0c, 0x1b, 0x9f, 0xa4, 0xc0, 0xef, 0x65, 0x8c, 0x7b, 0xbe, 0x70, 0x0a, 0xf8, - 0xed, 0x0c, 0x9e, 0x0f, 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x19, 0xe2, 0xb7, 0x91, 0x31, - 0xdf, 0xf4, 0x3d, 0xf9, 0xc1, 0x45, 0xcb, 0x01, 0xbf, 0x77, 0x02, 0x7e, 0x63, 0xd3, 0xdb, 0x2f, - 0xe6, 0xa7, 0xbc, 0x18, 0x47, 0xf5, 0x62, 0x7e, 0xd9, 0xcd, 0x38, 0xa8, 0x17, 0xf3, 0x43, 0x83, - 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, 0xf8, - 0x8d, 0x0d, 0xfc, 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x29, 0xf9, 0xfd, 0x97, 0x09, 0x2f, - 0xe7, 0x0f, 0x13, 0x1e, 0xf7, 0xbb, 0x09, 0x8f, 0xfb, 0xcd, 0x84, 0xc7, 0xfd, 0x6a, 0xc2, 0xe3, - 0x7e, 0x31, 0xe1, 0x71, 0x3f, 0x9b, 0xf0, 0xb8, 0x9f, 0x4c, 0x78, 0xdc, 0x8f, 0x26, 0x3c, 0xee, - 0x9f, 0x26, 0x3c, 0xee, 0x1f, 0x26, 0xab, 0x4a, 0xc1, 0xaf, 0xad, 0x97, 0x0b, 0xb6, 0xf5, 0x72, - 0xc1, 0xb6, 0x5e, 0x2e, 0xd8, 0xd6, 0xcb, 0x05, 0xdb, 0x7a, 0xb9, 0x60, 0x5b, 0x2f, 0x17, 0x6c, - 0xeb, 0xe5, 0x82, 0x6d, 0xbd, 0x5c, 0xb0, 0xad, 0x97, 0x0b, 0xb6, 0xf5, 0x72, 0xc1, 0xb6, 0x5e, - 0x43, 0xb0, 0xef, 0xd7, 0xd3, 0x4b, 0x05, 0x7b, 0x7a, 0xa9, 0x60, 0x4f, 0x2f, 0x15, 0xec, 0xe9, - 0xa5, 0x82, 0x3d, 0xbd, 0x54, 0xb0, 0xa7, 0x97, 0x0a, 0xf6, 0xf4, 0x52, 0xc1, 0x9e, 0x5e, 0x2a, - 0xd8, 0xd3, 0x4b, 0x05, 0x7b, 0x7a, 0xa9, 0x60, 0x4f, 0xaf, 0x2e, 0x18, 0x7e, 0xe1, 0x17, 0x7e, - 0x43, 0xfb, 0xd5, 0xb2, 0x69, 0x7e, 0xb5, 0x38, 0xcd, 0xaf, 0x16, 0xa7, 0xf9, 0xd5, 0xe2, 0x34, - 0xbf, 0x5a, 0x9c, 0xe6, 0x57, 0x8b, 0xd3, 0xfc, 0x6a, 0x71, 0x9a, 0x5f, 0x2d, 0x4e, 0xf3, 0xab, - 0xc5, 0x69, 0x7e, 0xb5, 0x38, 0xcd, 0xaf, 0x16, 0x07, 0xbf, 0xf0, 0xeb, 0xf9, 0x5d, 0x08, 0x2c, - 0xe1, 0xc1, 0xa6, 0x91, 0xfe, 0x23, 0x0e, 0x0b, 0x4d, 0x78, 0xf2, 0xd4, 0x48, 0xff, 0xa5, 0xa5, - 0x47, 0x89, 0xaa, 0x5f, 0xfe, 0x3f, 0xb5, 0x7e, 0x7a, 0xb7, 0xfc, 0xca, 0x50, 0xcb, 0xaf, 0x9c, - 0x97, 0x65, 0xf8, 0x5d, 0xe4, 0xf7, 0x75, 0xfc, 0xb2, 0x79, 0x22, 0x96, 0x5f, 0x5a, 0x16, 0x4b, - 0x78, 0x40, 0x35, 0xb2, 0x40, 0xd3, 0xaf, 0x28, 0xb0, 0xd7, 0xf9, 0x5b, 0xf0, 0x9b, 0xed, 0x67, - 0xe3, 0xfc, 0x65, 0xc7, 0xc1, 0xb2, 0xbe, 0x9c, 0x5f, 0x56, 0x56, 0x96, 0x40, 0x35, 0x8a, 0x79, - 0x5e, 0x8e, 0x5f, 0x56, 0xa4, 0xe9, 0x57, 0x04, 0x7a, 0x7e, 0x69, 0x5c, 0x27, 0xbf, 0xfb, 0x11, - 0x63, 0xb6, 0xcf, 0xdb, 0x3f, 0xd7, 0xb0, 0xc8, 0x84, 0x4f, 0xec, 0x1a, 0xe9, 0x64, 0x61, 0x96, - 0xf0, 0xe0, 0x36, 0x7e, 0x65, 0x79, 0x05, 0xbf, 0xfb, 0xbb, 0xe5, 0x57, 0x96, 0x57, 0xf2, 0xbb, - 0xbd, 0xf7, 0xf1, 0x9b, 0x1a, 0x04, 0xfb, 0xfa, 0xfb, 0x11, 0x92, 0xf6, 0x8c, 0x79, 0xfd, 0xdd, - 0x8f, 0x83, 0x45, 0x24, 0x7c, 0xe2, 0xa9, 0x31, 0x05, 0x6d, 0x07, 0x8d, 0x79, 0xfd, 0x15, 0xc7, - 0x15, 0xfc, 0x3e, 0x39, 0xea, 0x57, 0x4f, 0xa0, 0x1a, 0xd9, 0x75, 0xc6, 0xee, 0x5f, 0x3d, 0x8f, - 0x83, 0x25, 0x4b, 0xf8, 0xe0, 0x4e, 0x7e, 0xd9, 0x6c, 0xd9, 0x46, 0xbf, 0xa4, 0xb4, 0xc7, 0xe2, - 0x54, 0xbf, 0x4b, 0x95, 0x5f, 0xb6, 0x5f, 0x9c, 0xfe, 0x33, 0xeb, 0x1f, 0xdc, 0xd5, 0x2f, 0x3f, - 0x9a, 0xef, 0xed, 0x97, 0x7e, 0x93, 0x0e, 0x7e, 0x59, 0x79, 0xc6, 0xfd, 0xd1, 0xd6, 0xd8, 0xef, - 0x8d, 0xbe, 0x7d, 0x7f, 0xc4, 0xaf, 0x0b, 0xd3, 0xfc, 0xd6, 0xf7, 0x9f, 0x59, 0x91, 0x2f, 0xea, - 0x57, 0x4f, 0x78, 0x6f, 0xbf, 0x2b, 0x3d, 0x89, 0x4b, 0xf7, 0x47, 0x8b, 0x4c, 0x78, 0x70, 0xda, - 0xef, 0x96, 0xa1, 0x83, 0x5f, 0xd6, 0x0e, 0xcd, 0x69, 0x9f, 0xef, 0xe2, 0x37, 0x1d, 0xab, 0x33, - 0xcf, 0x5f, 0xba, 0xff, 0xda, 0xfd, 0x2e, 0x9d, 0xfd, 0x2e, 0x4c, 0x88, 0x35, 0x7e, 0x45, 0xae, - 0xbd, 0x9f, 0xde, 0x9d, 0xf1, 0x2b, 0x76, 0x25, 0x9c, 0xed, 0xb7, 0x53, 0xff, 0x99, 0xf4, 0x22, - 0x2a, 0xdb, 0xe7, 0x2c, 0x41, 0x50, 0xeb, 0x97, 0xeb, 0x6d, 0xf7, 0x4b, 0xfa, 0x4c, 0x3c, 0xe1, - 0x13, 0xb7, 0xf1, 0x2b, 0xcb, 0xeb, 0x73, 0x7f, 0x94, 0x4e, 0xcd, 0x59, 0x7e, 0x85, 0xde, 0x66, - 0xbf, 0x8b, 0xf8, 0xc2, 0xf0, 0xcb, 0xee, 0x7f, 0xaf, 0xf0, 0xcb, 0xb2, 0x35, 0xfa, 0x25, 0x2a, - 0x1e, 0x4b, 0xe6, 0xf3, 0x05, 0xb1, 0x63, 0xbc, 0xe7, 0x0b, 0x74, 0xbb, 0xe6, 0xf3, 0x05, 0x71, - 0x21, 0x9c, 0x3c, 0x3e, 0x59, 0xf4, 0x2b, 0xcb, 0x9b, 0x79, 0xfe, 0xd2, 0x4b, 0x7a, 0x9b, 0x5f, - 0xd6, 0x1a, 0x7c, 0x5a, 0x9e, 0xe6, 0x57, 0xf4, 0xeb, 0x26, 0xdf, 0x1f, 0x95, 0xfd, 0x8a, 0xae, - 0xf6, 0xb4, 0xeb, 0xaf, 0x00, 0xcf, 0x07, 0x47, 0x3f, 0x1f, 0x2c, 0xf4, 0xaf, 0x04, 0xf0, 0x7b, - 0x37, 0xbf, 0x6a, 0x02, 0xfc, 0xea, 0x09, 0xf0, 0x0b, 0xbf, 0x1f, 0xbc, 0xa5, 0x5f, 0x93, 0x14, - 0xf7, 0x87, 0x4b, 0x8a, 0xfb, 0xdd, 0x25, 0xc5, 0xfd, 0xe6, 0x92, 0xe2, 0x7e, 0x75, 0x49, 0x71, - 0xbf, 0xb8, 0xa4, 0xb8, 0x9f, 0x5d, 0x52, 0xdc, 0x4f, 0x2e, 0x29, 0xee, 0x47, 0x17, 0xa1, 0xd1, - 0x44, 0x68, 0x34, 0x81, 0x5f, 0xf8, 0x85, 0xdf, 0x77, 0xf2, 0x8b, 0xf9, 0x29, 0xaa, 0xde, 0x30, - 0xf3, 0x53, 0x30, 0xbf, 0x4c, 0xd7, 0x1b, 0x66, 0x7e, 0x19, 0xb8, 0x39, 0xf0, 0x1b, 0x1b, 0xf8, - 0x8d, 0x8d, 0xe6, 0x17, 0x82, 0xc3, 0xa0, 0xea, 0x85, 0xdf, 0x30, 0xe8, 0x7e, 0x21, 0x38, 0x08, - 0x86, 0x5e, 0xf8, 0x0d, 0x82, 0xe5, 0x17, 0x82, 0x43, 0x60, 0xea, 0x85, 0xe1, 0x00, 0x78, 0x76, - 0x61, 0xf8, 0xee, 0x94, 0xec, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x5d, 0xf8, 0x3f, 0x67, 0xcc, 0x42, 0xb8 + 0x78, 0x9c, 0xed, 0x9d, 0xe9, 0xb6, 0xab, 0x38, 0x0e, 0x46, 0xe9, 0xae, 0xb9, 0xbb, 0x86, 0xee, + 0x9a, 0xab, 0xa7, 0xf7, 0x7f, 0x42, 0xea, 0x6f, 0xaf, 0x73, 0x13, 0xb0, 0x24, 0x4b, 0xb2, 0xc1, + 0x03, 0x41, 0xf9, 0xf6, 0x5a, 0x27, 0x21, 0x58, 0x36, 0x0e, 0x1b, 0x8c, 0x31, 0xf1, 0xbd, 0x7f, + 0xfe, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x8d, 0x58, 0xc1, + 0x8d, 0x81, 0xdd, 0xe8, 0xc0, 0x6e, 0x74, 0xa0, 0x37, 0x38, 0xf0, 0x1b, 0x1b, 0xe8, 0x0d, 0x0e, + 0xfc, 0xc6, 0x06, 0x7a, 0x83, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0x94, 0xfc, 0xfe, 0xc5, 0x84, + 0x97, 0xf3, 0x57, 0x13, 0x1e, 0xf7, 0x99, 0x09, 0x8f, 0xfb, 0xdc, 0x84, 0xc7, 0x7d, 0x61, 0xc2, + 0xe3, 0xbe, 0x34, 0xe1, 0x71, 0x5f, 0x99, 0xf0, 0xb8, 0xaf, 0x4d, 0x78, 0xdc, 0x37, 0x26, 0x3c, + 0xee, 0x6f, 0x26, 0x3c, 0xee, 0xef, 0x26, 0xab, 0x4a, 0xc1, 0xaf, 0xad, 0x97, 0x0b, 0xb6, 0xf5, + 0x72, 0xc1, 0xb6, 0x5e, 0x2e, 0xd8, 0xd6, 0xcb, 0x05, 0xdb, 0x7a, 0xb9, 0x60, 0x5b, 0x2f, 0x17, + 0x6c, 0xeb, 0xe5, 0x82, 0x6d, 0xbd, 0x5c, 0xb0, 0xad, 0x97, 0x0b, 0xb6, 0xf5, 0x72, 0xc1, 0xb6, + 0x5e, 0x43, 0xb0, 0xef, 0xd7, 0xd3, 0x4b, 0x05, 0x7b, 0x7a, 0xa9, 0x60, 0x4f, 0x2f, 0x15, 0xec, + 0xe9, 0xa5, 0x82, 0x3d, 0xbd, 0x54, 0xb0, 0xa7, 0x97, 0x0a, 0xf6, 0xf4, 0x52, 0xc1, 0x9e, 0x5e, + 0x2a, 0xd8, 0xd3, 0x4b, 0x05, 0x7b, 0x7a, 0xa9, 0x60, 0x4f, 0xaf, 0x2e, 0x18, 0x7e, 0xe1, 0x17, + 0x7e, 0x43, 0xfb, 0xd5, 0xb2, 0x69, 0x7e, 0xb5, 0x38, 0xcd, 0xaf, 0x16, 0xa7, 0xf9, 0xd5, 0xe2, + 0x34, 0xbf, 0x5a, 0x9c, 0xe6, 0x57, 0x8b, 0xd3, 0xfc, 0x6a, 0x71, 0x9a, 0x5f, 0x2d, 0x4e, 0xf3, + 0xab, 0xc5, 0x69, 0x7e, 0xb5, 0x38, 0xcd, 0xaf, 0x16, 0x07, 0xbf, 0xf0, 0x5b, 0xf2, 0xbb, 0x2c, + 0x8b, 0x9e, 0x00, 0xbf, 0x56, 0x42, 0x38, 0xbf, 0xcb, 0x93, 0x2c, 0xe1, 0x01, 0xd5, 0xc8, 0x02, + 0x2d, 0xbf, 0xb2, 0x3c, 0xd3, 0xef, 0xb2, 0xb0, 0x50, 0xdb, 0x2f, 0x0f, 0x74, 0xfc, 0xb2, 0x0d, + 0x5b, 0x7e, 0xf7, 0x88, 0xe7, 0x82, 0xe7, 0x97, 0xee, 0xbf, 0x82, 0xdf, 0x3d, 0xd4, 0xf2, 0xbb, + 0x05, 0x6c, 0xef, 0x1d, 0xfc, 0xb2, 0xfd, 0xec, 0xf8, 0x65, 0xf5, 0x33, 0xfd, 0x8a, 0x40, 0xc7, + 0x2f, 0x2b, 0xcf, 0xf3, 0x4b, 0xbf, 0x96, 0xeb, 0x77, 0x55, 0x13, 0x3e, 0x48, 0x1a, 0xc5, 0x86, + 0x5f, 0xd4, 0xef, 0x1e, 0x37, 0xd9, 0xef, 0xfe, 0x6e, 0xf9, 0x95, 0xfb, 0xa5, 0xe0, 0x77, 0x7f, + 0x9f, 0xe5, 0x57, 0xd6, 0xef, 0x35, 0xfd, 0xa6, 0x12, 0xe1, 0x37, 0xa0, 0x5f, 0x52, 0x60, 0xbb, + 0xdf, 0x8f, 0xc2, 0x52, 0x81, 0x8d, 0x7e, 0x85, 0x8d, 0xb2, 0xdf, 0x6d, 0x61, 0x92, 0xdf, 0xac, + 0x7e, 0xaf, 0xe8, 0x97, 0x96, 0x37, 0xd9, 0x6f, 0xe9, 0xfa, 0x0b, 0xbf, 0xed, 0x7e, 0x59, 0x1d, + 0x27, 0xfa, 0x65, 0x9b, 0x9e, 0xe9, 0x97, 0x6e, 0xb8, 0xa2, 0xff, 0x2c, 0x13, 0x3e, 0x38, 0xe3, + 0x97, 0x15, 0x38, 0xd5, 0xef, 0xaa, 0x24, 0x48, 0x6a, 0xfd, 0x8a, 0x0b, 0xfa, 0x7b, 0x9c, 0xbf, + 0xc9, 0x5b, 0xf8, 0xf3, 0xf7, 0x98, 0xdf, 0x38, 0xd7, 0xdf, 0x97, 0xf6, 0xdb, 0xf1, 0xfa, 0x2b, + 0xda, 0x3f, 0xf8, 0xbd, 0xdc, 0xef, 0x4a, 0x05, 0xb7, 0xfa, 0x95, 0xde, 0x70, 0x7f, 0x34, 0xc8, + 0xaf, 0x68, 0x27, 0x4b, 0xf7, 0x47, 0xbd, 0xee, 0x7f, 0xe1, 0xf7, 0x05, 0xfd, 0x12, 0xc1, 0x93, + 0xfd, 0x96, 0xfa, 0x57, 0x59, 0xe0, 0xab, 0x8e, 0x4f, 0xce, 0x6f, 0x9f, 0x17, 0x76, 0x9f, 0x52, + 0x1e, 0x9f, 0x5c, 0x78, 0x82, 0xa4, 0xfa, 0xfe, 0x88, 0x73, 0xeb, 0xe7, 0x0b, 0xab, 0x9a, 0xf0, + 0x41, 0xfe, 0x7c, 0xe1, 0x19, 0x3d, 0xf1, 0xfa, 0xcb, 0xbe, 0x6f, 0xc5, 0xf3, 0x85, 0x85, 0x25, + 0x48, 0x3a, 0xfb, 0x95, 0xe0, 0xf9, 0xe0, 0x7d, 0x9e, 0x0f, 0x52, 0xe0, 0x17, 0x7e, 0x95, 0x04, + 0xf8, 0xd5, 0x13, 0x2e, 0xf5, 0x6b, 0x92, 0xe2, 0xfe, 0xea, 0x92, 0xe2, 0x3e, 0x73, 0x49, 0x71, + 0x9f, 0xbb, 0xa4, 0xb8, 0x2f, 0x5c, 0x52, 0xdc, 0x97, 0x2e, 0x29, 0xee, 0x2b, 0x97, 0x14, 0xf7, + 0xb5, 0x4b, 0x8a, 0xfb, 0xc6, 0x45, 0x68, 0x34, 0x11, 0x1a, 0x4d, 0xe0, 0x17, 0x7e, 0xe1, 0xf7, + 0x9d, 0xfc, 0x62, 0x7e, 0x8a, 0xaa, 0x37, 0xcc, 0xfc, 0x14, 0xcc, 0x2f, 0xd3, 0xf5, 0x86, 0x99, + 0x5f, 0x06, 0x6e, 0x0e, 0xfc, 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, + 0x6f, 0x6c, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, 0xc6, 0xa6, 0xe4, 0xf7, + 0x7f, 0x8d, 0x5c, 0xf5, 0xbd, 0xa2, 0xf2, 0xad, 0x89, 0x1e, 0x5f, 0xf0, 0xdb, 0xaa, 0x17, 0x82, + 0xfb, 0x62, 0xeb, 0x35, 0x04, 0xfb, 0x7e, 0xdb, 0xf5, 0x42, 0x70, 0x4f, 0x3c, 0xbd, 0xba, 0x60, + 0xf8, 0xbd, 0x13, 0xf0, 0x1b, 0x9b, 0x21, 0x7e, 0xcf, 0x57, 0x07, 0x7e, 0x3b, 0x63, 0x6a, 0x84, + 0xdf, 0x10, 0xc0, 0x6f, 0x6c, 0x88, 0x46, 0x3e, 0x0f, 0x03, 0x7e, 0x43, 0x30, 0xd4, 0xaf, 0x9c, + 0x0b, 0xb4, 0xad, 0xb5, 0xab, 0x03, 0xbf, 0x9d, 0x19, 0xec, 0x57, 0x2b, 0x00, 0x7e, 0x27, 0x02, + 0xbf, 0xb1, 0x99, 0xe5, 0x37, 0x35, 0xd4, 0xf4, 0x7d, 0x59, 0xc5, 0xec, 0x46, 0xf8, 0xed, 0xcc, + 0x8c, 0xeb, 0xef, 0x63, 0x71, 0x7b, 0x59, 0xc5, 0x0a, 0xb6, 0x59, 0xf8, 0xed, 0xcc, 0xbc, 0xf3, + 0x77, 0x35, 0xfd, 0xae, 0x46, 0x76, 0xd0, 0xce, 0x85, 0x7e, 0x9f, 0xe7, 0x36, 0xfc, 0x8e, 0xe4, + 0xda, 0xf3, 0x57, 0x04, 0xc1, 0x6f, 0x77, 0xd0, 0x3e, 0xc7, 0x66, 0xd6, 0xf8, 0x06, 0xf1, 0xbb, + 0xf2, 0x7e, 0x33, 0xfc, 0x8e, 0x04, 0xe3, 0x93, 0xb1, 0x81, 0xdf, 0xd8, 0x70, 0xbf, 0xe4, 0x86, + 0x15, 0x7e, 0x43, 0x80, 0xe7, 0x83, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0x86, 0xf8, 0x6d, + 0x64, 0xcc, 0x37, 0x7d, 0x4f, 0xbe, 0x75, 0xd1, 0x72, 0xc0, 0xef, 0x9d, 0x80, 0xdf, 0xd8, 0xf4, + 0xf6, 0x8b, 0xf9, 0x29, 0x2f, 0xc6, 0x51, 0xbd, 0x98, 0x5f, 0x76, 0x33, 0x0e, 0xea, 0xc5, 0xfc, + 0xd0, 0xe0, 0xc0, 0x6f, 0x6c, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0xcd, 0x0b, 0xf8, + 0xf5, 0x7e, 0x41, 0x2d, 0xff, 0xdf, 0x1b, 0x2f, 0x26, 0x8f, 0xac, 0xc8, 0xbb, 0x97, 0xa0, 0x4c, + 0xcc, 0xb0, 0x72, 0xf3, 0x04, 0x2d, 0x6f, 0x21, 0x4b, 0x71, 0x0b, 0xfd, 0x78, 0x75, 0xbf, 0x35, + 0x8e, 0x9a, 0xfd, 0xea, 0xf9, 0xeb, 0xfc, 0x5a, 0xdb, 0xae, 0x29, 0xeb, 0x2d, 0xfc, 0x16, 0x8e, + 0xfe, 0x3a, 0xbf, 0xd9, 0x4f, 0x83, 0x6a, 0xf3, 0x92, 0x38, 0xf8, 0x1d, 0x42, 0xf2, 0x4b, 0x5a, + 0x3a, 0xba, 0x24, 0x56, 0xe4, 0x0d, 0xe2, 0xa7, 0xff, 0xf1, 0x8b, 0x44, 0xae, 0x69, 0xaf, 0x57, + 0x34, 0x9d, 0x6b, 0x26, 0x8c, 0xb7, 0x07, 0x6c, 0xaa, 0xc6, 0xf6, 0x53, 0x33, 0x35, 0xaf, 0xf2, + 0x83, 0x61, 0xad, 0xce, 0xd9, 0x77, 0x1b, 0xc9, 0xe5, 0x7e, 0x55, 0x33, 0xf6, 0xef, 0x33, 0xf9, + 0x6f, 0xfb, 0xf6, 0x22, 0x2c, 0xbf, 0x32, 0x54, 0xee, 0x77, 0xb2, 0x96, 0xd4, 0x47, 0x2d, 0x23, + 0xfb, 0x61, 0x61, 0x96, 0x57, 0x56, 0xb8, 0x58, 0xa9, 0x17, 0xf0, 0xfb, 0xdf, 0x46, 0x8a, 0x15, + 0xd0, 0x77, 0xc2, 0xfe, 0xb1, 0xd2, 0xef, 0xe6, 0xb8, 0x14, 0xea, 0xd5, 0x43, 0x3d, 0xc8, 0x84, + 0x5f, 0x52, 0x31, 0x23, 0xaf, 0x58, 0xec, 0xed, 0xf7, 0x3b, 0x13, 0x3d, 0xbe, 0xe0, 0xb7, 0x55, + 0x6f, 0x59, 0xf0, 0x22, 0x9a, 0x2b, 0xd9, 0xb2, 0x56, 0xfa, 0x5d, 0xf5, 0x52, 0x64, 0xa8, 0x71, + 0xfe, 0xa6, 0x8c, 0x6b, 0x4a, 0x16, 0x9f, 0x1d, 0xbf, 0xf2, 0xa4, 0x25, 0x8b, 0x9d, 0xfd, 0xda, + 0x7a, 0x0d, 0xc1, 0xbe, 0xdf, 0x76, 0xbd, 0x25, 0xc1, 0xba, 0xc4, 0xc3, 0xed, 0x73, 0xb5, 0xdf, + 0xba, 0x4a, 0x64, 0x6b, 0x95, 0x04, 0x2d, 0x8a, 0xb7, 0xd5, 0xfd, 0xfd, 0x7a, 0x7a, 0x75, 0xc1, + 0x61, 0xfc, 0x2a, 0x0d, 0xec, 0x79, 0xbf, 0x66, 0xfb, 0x6c, 0x6f, 0xfc, 0xf9, 0x01, 0x7e, 0x39, + 0xa6, 0x44, 0xab, 0x17, 0xcb, 0x5a, 0x74, 0x5e, 0x46, 0x96, 0x5e, 0xdb, 0x7f, 0x66, 0x81, 0xc5, + 0xfe, 0x33, 0xd9, 0x54, 0xb6, 0x11, 0xb6, 0xc0, 0xfc, 0x76, 0xe9, 0x3f, 0x0f, 0xf1, 0x7b, 0xb0, + 0x0e, 0x84, 0xc6, 0xec, 0x0e, 0xc7, 0xaf, 0x5c, 0x73, 0x18, 0x5c, 0x2f, 0x53, 0x63, 0x20, 0xbf, + 0xb5, 0x8d, 0xee, 0x15, 0x8c, 0xae, 0xd6, 0x3b, 0xf8, 0x5d, 0x6b, 0x1b, 0xdd, 0xe9, 0x8c, 0xaf, + 0xd6, 0x53, 0x23, 0xdd, 0xd0, 0x63, 0x39, 0x92, 0xdf, 0x37, 0x66, 0xb0, 0x5f, 0xf3, 0xd6, 0xf1, + 0x99, 0x2a, 0xd7, 0xc0, 0x6f, 0x67, 0x92, 0xdf, 0xd4, 0x8f, 0xeb, 0xea, 0x37, 0xbd, 0xe6, 0x0c, + 0xf4, 0x5b, 0xee, 0x08, 0xdb, 0x87, 0x5e, 0xd5, 0xfd, 0xd1, 0x22, 0x16, 0x3a, 0xd5, 0xaa, 0x37, + 0x71, 0xfd, 0x3a, 0xdb, 0x2d, 0x54, 0x6d, 0x98, 0xdf, 0x93, 0xf7, 0xb0, 0x2d, 0x10, 0xbf, 0xfc, + 0xe6, 0xad, 0xbf, 0xdf, 0x7c, 0x1b, 0xe4, 0x76, 0x4f, 0xcf, 0x7e, 0x9e, 0xf2, 0xae, 0x6c, 0xf5, + 0xbb, 0xd0, 0xf7, 0x5e, 0x95, 0xea, 0xce, 0x70, 0xbf, 0xfc, 0xe6, 0x9f, 0xbf, 0x2c, 0x8b, 0xfc, + 0xb2, 0xd7, 0xf8, 0xf5, 0x86, 0x42, 0xac, 0xcc, 0xc2, 0x2f, 0x1f, 0x82, 0xc8, 0x87, 0x58, 0xc8, + 0x26, 0xc9, 0x32, 0xdb, 0x7a, 0xee, 0xa0, 0x43, 0xc7, 0x9f, 0xfa, 0xdd, 0x37, 0x32, 0xae, 0x7d, + 0xe6, 0xcd, 0x66, 0x5e, 0xfb, 0x4b, 0xfc, 0xea, 0x43, 0x81, 0x29, 0x4e, 0xb9, 0x52, 0x2f, 0xfb, + 0x03, 0x46, 0x65, 0x20, 0xcd, 0x2c, 0xcc, 0xf4, 0x2b, 0x57, 0x88, 0xa4, 0x06, 0x26, 0xfa, 0x25, + 0xdb, 0xd8, 0x53, 0x65, 0xf5, 0x07, 0xfa, 0x95, 0x92, 0x84, 0x35, 0xd3, 0xaf, 0x55, 0xbc, 0xe5, + 0x97, 0x9e, 0xd3, 0x59, 0x15, 0xc4, 0x32, 0xcf, 0x66, 0x26, 0x35, 0x40, 0xee, 0x8f, 0xe8, 0xdf, + 0x00, 0xbf, 0x4a, 0xad, 0x5f, 0xe0, 0xfc, 0xdd, 0xeb, 0x71, 0xf8, 0xfc, 0x7d, 0xd6, 0xde, 0xf5, + 0x9b, 0x1d, 0x52, 0x62, 0x99, 0x6d, 0xce, 0xba, 0x92, 0x35, 0x71, 0x99, 0x5f, 0x76, 0xf8, 0x5b, + 0xd9, 0xcf, 0x73, 0xc4, 0xaf, 0xdf, 0x3e, 0x9b, 0x99, 0x2d, 0xbf, 0xd9, 0xbb, 0x5a, 0x29, 0x5d, + 0xa2, 0x75, 0x26, 0x9c, 0x86, 0x8e, 0x6f, 0x2c, 0x5b, 0x8d, 0x7b, 0xfa, 0x15, 0xbd, 0x06, 0xd6, + 0x6d, 0x48, 0xfb, 0xc7, 0xc8, 0x7e, 0x9e, 0xf2, 0xee, 0x69, 0xf6, 0x6b, 0xe6, 0x63, 0xef, 0xf9, + 0xf9, 0x6b, 0xf8, 0xb5, 0x4e, 0x82, 0x36, 0x06, 0xfb, 0x3d, 0xca, 0xd4, 0xf1, 0x0d, 0x2d, 0xb8, + 0x9c, 0x2f, 0x65, 0x96, 0x8d, 0xf2, 0x42, 0x13, 0xe5, 0xca, 0xac, 0xf4, 0xac, 0x3b, 0x22, 0x2a, + 0x21, 0xea, 0x78, 0x12, 0x36, 0x3e, 0x49, 0x5f, 0x6f, 0xee, 0x17, 0x3c, 0x80, 0xdf, 0xd8, 0xbc, + 0xc5, 0xf3, 0xc1, 0x37, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x19, 0xe2, 0xb7, 0x91, 0x31, 0xdf, + 0xb4, 0x8c, 0x79, 0xdf, 0xaa, 0x85, 0x6a, 0x1d, 0xed, 0x42, 0xc6, 0xaa, 0xbe, 0xb9, 0x1a, 0x50, + 0xd3, 0xa5, 0xd7, 0xf9, 0xce, 0x45, 0xcb, 0x11, 0xd7, 0x6f, 0xc5, 0xa0, 0x08, 0x8f, 0xac, 0x5b, + 0x7b, 0xac, 0xf4, 0x33, 0x25, 0x3b, 0xc0, 0x2f, 0x25, 0x1f, 0x70, 0x71, 0x02, 0x6b, 0xd7, 0xf2, + 0xd4, 0x9b, 0xfb, 0x9d, 0x30, 0x3f, 0x65, 0x24, 0x55, 0x83, 0x1b, 0xab, 0x31, 0x38, 0x92, 0x0f, + 0xcf, 0x59, 0xa3, 0xcf, 0x7c, 0x20, 0x8b, 0xb5, 0xf5, 0xd9, 0xb2, 0xcc, 0x7b, 0x90, 0xa3, 0x7a, + 0xaf, 0x9f, 0x5f, 0x36, 0x94, 0x7c, 0x47, 0x1a, 0xcf, 0x17, 0x94, 0xa7, 0x01, 0x72, 0xe4, 0x51, + 0x1e, 0x2b, 0x54, 0x1c, 0x7f, 0x25, 0xed, 0x86, 0x3e, 0xe8, 0xd9, 0x30, 0x90, 0x75, 0x50, 0xef, + 0xf5, 0xf3, 0x43, 0x87, 0x52, 0xb9, 0x23, 0xe5, 0xb9, 0x68, 0xf8, 0x55, 0xf2, 0x25, 0x8b, 0x62, + 0x71, 0x94, 0xdf, 0xa3, 0x84, 0xf6, 0xab, 0xb4, 0xcf, 0xc6, 0xf9, 0xcb, 0x17, 0x95, 0x06, 0xd7, + 0xec, 0x0a, 0x6f, 0xaf, 0xf0, 0x3b, 0x9d, 0x33, 0xfd, 0x2b, 0xfd, 0xfc, 0x15, 0x41, 0x59, 0x2a, + 0x6f, 0xab, 0xe1, 0x77, 0x0a, 0xa7, 0xee, 0x8f, 0xaa, 0xdb, 0x67, 0xf8, 0xbd, 0x18, 0xde, 0xfb, + 0x29, 0x84, 0xf2, 0xc7, 0x7b, 0xc9, 0xda, 0x96, 0xa8, 0x94, 0xc3, 0x9a, 0x79, 0xb6, 0xc0, 0xfc, + 0xf6, 0xed, 0x3f, 0x1f, 0x26, 0xae, 0xdf, 0xa9, 0x4c, 0x34, 0x76, 0x0c, 0xf8, 0xed, 0xc1, 0xcb, + 0xea, 0x85, 0xdf, 0x0e, 0x9c, 0x1f, 0x4f, 0x1e, 0x0f, 0xfc, 0xc6, 0x06, 0x7e, 0x63, 0x53, 0xf2, + 0xfb, 0x9f, 0x46, 0x4e, 0x55, 0xca, 0x1e, 0x42, 0xa4, 0x6b, 0x3b, 0xb6, 0x8a, 0x55, 0xcf, 0xfa, + 0x68, 0xf8, 0xf9, 0xd4, 0x46, 0xbe, 0x37, 0xd1, 0xe3, 0x0b, 0x7e, 0x5b, 0xf5, 0x9e, 0x13, 0x6c, + 0xdc, 0x25, 0xaa, 0x77, 0xa0, 0x3d, 0x38, 0x7a, 0x57, 0x7a, 0x9d, 0x5f, 0x5b, 0xaf, 0x21, 0xd8, + 0xf7, 0xdb, 0xae, 0xf7, 0x94, 0xe0, 0x3a, 0xbf, 0xfd, 0xb8, 0x8d, 0x5f, 0x4f, 0xaf, 0x2e, 0xf8, + 0x86, 0x7e, 0xc5, 0x80, 0xc3, 0x42, 0xc7, 0x0d, 0xf8, 0x22, 0x79, 0xaf, 0xd8, 0xde, 0xb6, 0xec, + 0x94, 0x56, 0x8e, 0x5f, 0x0f, 0x0c, 0x8b, 0x1e, 0xe7, 0x5d, 0xfc, 0xca, 0x28, 0x7b, 0x51, 0x7b, + 0xaa, 0x77, 0xe4, 0xf9, 0x42, 0x36, 0xa8, 0x65, 0xc6, 0x53, 0xb7, 0xa3, 0x4e, 0xe1, 0x21, 0x7e, + 0xcf, 0x57, 0xe7, 0xbc, 0x5f, 0xf2, 0x3c, 0x56, 0x3e, 0x67, 0x15, 0x03, 0x8f, 0x45, 0xbf, 0x55, + 0xdb, 0xd3, 0x3e, 0xab, 0x6a, 0x65, 0xbc, 0x12, 0x74, 0xa8, 0xab, 0x76, 0x0c, 0x53, 0xe3, 0xdd, + 0xfc, 0xa6, 0xd7, 0x6c, 0x75, 0xa5, 0x5f, 0xe3, 0xa9, 0x5e, 0xe9, 0xfc, 0x5d, 0xe9, 0xa1, 0xc5, + 0x8b, 0x53, 0xe3, 0x75, 0xbf, 0x07, 0xbe, 0xeb, 0x21, 0xe0, 0x57, 0xe6, 0x3d, 0x70, 0xfe, 0x4a, + 0x55, 0xe2, 0xd4, 0xad, 0x6a, 0x9f, 0x1f, 0xab, 0x70, 0xfe, 0xfa, 0x74, 0xf2, 0x7b, 0xb0, 0x7d, + 0xb6, 0xfd, 0xbe, 0xd6, 0xf5, 0xf7, 0xb1, 0xd9, 0xbd, 0x61, 0xe1, 0x09, 0x92, 0x3a, 0xbf, 0xea, + 0xfd, 0x7f, 0xb6, 0x26, 0x8b, 0x98, 0xe1, 0x97, 0xd6, 0x4d, 0xed, 0x3f, 0xd7, 0x6d, 0x50, 0x29, + 0xc3, 0xeb, 0x3f, 0x8b, 0xa8, 0x6c, 0x93, 0x83, 0x04, 0x8f, 0xf3, 0xbb, 0xda, 0xfb, 0xdb, 0xfc, + 0xdc, 0x7a, 0xfa, 0xd7, 0xa3, 0x9f, 0x5b, 0xfd, 0x0a, 0x7d, 0x15, 0x98, 0xdf, 0x87, 0x93, 0x7e, + 0x7e, 0x8b, 0x3e, 0x2f, 0xf1, 0x6b, 0x5f, 0x30, 0xbb, 0x94, 0xfc, 0x5a, 0x4c, 0xf1, 0xcb, 0x3b, + 0x98, 0x6c, 0x5b, 0xa2, 0xc5, 0x9a, 0x72, 0xfe, 0xb2, 0x1b, 0xa8, 0x9e, 0x5d, 0x9b, 0x97, 0xf7, + 0xbb, 0x0c, 0xf1, 0x5b, 0xe8, 0x86, 0xd0, 0xc5, 0x69, 0xed, 0xf3, 0xbb, 0x00, 0xbf, 0x57, 0x30, + 0xef, 0x44, 0xa7, 0x7e, 0xf7, 0x3f, 0x96, 0x20, 0x39, 0xe3, 0x97, 0xf7, 0x4d, 0xed, 0xcf, 0xe7, + 0xfd, 0xe6, 0x7b, 0x6c, 0x1f, 0x97, 0x18, 0xd0, 0x93, 0x52, 0x0b, 0x32, 0xfa, 0xf0, 0x76, 0x7e, + 0xf5, 0x1e, 0xa3, 0x72, 0x53, 0xb5, 0xdf, 0x64, 0x8e, 0x5f, 0xf9, 0xbd, 0xac, 0xcf, 0x3d, 0xfd, + 0x2a, 0x6b, 0x5f, 0xc5, 0xaf, 0xbe, 0x73, 0x0e, 0x6c, 0xaa, 0xfe, 0x9b, 0x30, 0xbf, 0xf4, 0x88, + 0xea, 0x78, 0x7f, 0x34, 0xa3, 0x7d, 0x6e, 0xdc, 0x0d, 0x3d, 0xb6, 0xf6, 0x66, 0x7e, 0x49, 0xdb, + 0x63, 0xf5, 0x9f, 0xb7, 0x86, 0xa6, 0x43, 0xff, 0xd9, 0xdd, 0x0d, 0x62, 0xe8, 0x42, 0x1d, 0x9b, + 0x60, 0x9d, 0xfa, 0x23, 0x8d, 0x26, 0xbf, 0x19, 0x90, 0xb7, 0x04, 0x5a, 0xa9, 0xf4, 0xb0, 0xa7, + 0x6b, 0xd8, 0xd5, 0x8a, 0xf5, 0xf0, 0xb3, 0xde, 0xbe, 0xbc, 0xef, 0x30, 0xe1, 0x7e, 0x49, 0x8e, + 0x7b, 0x8d, 0x4f, 0x16, 0xfd, 0x92, 0x8f, 0x7a, 0xcb, 0xb1, 0x2f, 0xca, 0x5d, 0x96, 0x5f, 0xc6, + 0x73, 0x35, 0xb2, 0x9c, 0xac, 0x34, 0x7a, 0x78, 0xad, 0x54, 0x17, 0x5d, 0x93, 0x5e, 0xb7, 0xbf, + 0x72, 0x6d, 0x4b, 0x67, 0x72, 0x3c, 0xbf, 0xfc, 0x80, 0x67, 0x89, 0x95, 0x7e, 0x8f, 0x6c, 0xad, + 0xec, 0x57, 0x66, 0x90, 0x27, 0xff, 0xbe, 0x4e, 0x2c, 0x56, 0xfa, 0x2d, 0x20, 0xfc, 0xae, 0xf7, + 0xf7, 0xab, 0xac, 0xad, 0xf3, 0xbb, 0x6c, 0x2d, 0xac, 0x2c, 0xa3, 0x70, 0xfe, 0xf2, 0xd6, 0xdf, + 0x28, 0x2d, 0x3f, 0xe8, 0x58, 0x51, 0xa7, 0xfc, 0x9e, 0x68, 0x9f, 0xdf, 0xd9, 0xaf, 0x5b, 0x92, + 0xb9, 0x35, 0xda, 0x70, 0xc8, 0x57, 0x51, 0x9a, 0x9a, 0x94, 0x2e, 0x21, 0xa4, 0x92, 0x95, 0x7e, + 0x2b, 0xaa, 0x1b, 0xe4, 0xf9, 0x60, 0x27, 0xbf, 0x63, 0xdb, 0xe7, 0xde, 0x7e, 0x6b, 0x1a, 0xe9, + 0x38, 0x7e, 0xb3, 0x46, 0x74, 0x35, 0xfc, 0xae, 0xa5, 0xfe, 0xf3, 0xb1, 0xad, 0xb1, 0x12, 0xe8, + 0x2b, 0x2b, 0x8d, 0x84, 0x8b, 0x52, 0x78, 0x55, 0x15, 0xbf, 0x7d, 0xfa, 0xcf, 0xd5, 0x09, 0x15, + 0x7e, 0x1b, 0xf1, 0x6b, 0xdc, 0x07, 0xb5, 0x85, 0x9d, 0xbc, 0xe1, 0xaa, 0xf5, 0x8d, 0x7c, 0xef, + 0xa2, 0xe5, 0xb8, 0xbd, 0x5f, 0xbd, 0xc5, 0xbb, 0x98, 0x51, 0x95, 0x78, 0x43, 0xbf, 0xab, 0xda, + 0xe2, 0x5d, 0xca, 0xb8, 0x4a, 0xf4, 0xf6, 0x7b, 0xd1, 0xfc, 0x14, 0x60, 0x71, 0x54, 0xef, 0x6b, + 0xce, 0x2f, 0x03, 0x26, 0x07, 0xf5, 0x62, 0x7e, 0x68, 0x70, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, + 0xf8, 0x8d, 0x0d, 0xfc, 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, + 0x6c, 0xe0, 0x37, 0x36, 0x25, 0xbf, 0xff, 0x6e, 0xe4, 0xaa, 0xef, 0x15, 0x95, 0x1f, 0x4c, 0xf4, + 0xf8, 0x82, 0xdf, 0x56, 0xbd, 0x10, 0xdc, 0x17, 0x5b, 0xaf, 0x21, 0xd8, 0xf7, 0xdb, 0xae, 0x17, + 0x82, 0x7b, 0xe2, 0xe9, 0xd5, 0x05, 0xc3, 0xef, 0x9d, 0x80, 0xdf, 0xd8, 0x0c, 0xf1, 0x7b, 0xbe, + 0x3a, 0xf0, 0xdb, 0x19, 0x53, 0x23, 0xfc, 0x86, 0x00, 0x7e, 0x63, 0x43, 0x35, 0xb2, 0xdf, 0xe3, + 0x36, 0xfb, 0xd5, 0x7e, 0x8f, 0x5c, 0x04, 0x7e, 0x3b, 0x93, 0x34, 0xa6, 0x9f, 0x6b, 0x8b, 0x04, + 0x41, 0xa5, 0xdf, 0xec, 0xd7, 0xdc, 0x55, 0xc0, 0x6f, 0x67, 0x76, 0x8d, 0xf4, 0x27, 0xa3, 0x2c, + 0x41, 0x02, 0xbf, 0x77, 0x62, 0xb0, 0xdf, 0xbd, 0x48, 0x39, 0x0b, 0x44, 0x5f, 0x82, 0xdf, 0xde, + 0x6c, 0x1a, 0xc9, 0xa5, 0xf2, 0xb1, 0xd8, 0xe5, 0xfa, 0xbb, 0x97, 0x58, 0xf7, 0x02, 0xbf, 0xdd, + 0x19, 0xe7, 0x97, 0x14, 0x2a, 0xa6, 0x81, 0x38, 0x1f, 0xe1, 0xb7, 0x33, 0x43, 0xfd, 0xaa, 0x13, + 0x1b, 0xb3, 0x69, 0x7a, 0x74, 0xe6, 0x1f, 0xfc, 0x76, 0x66, 0x98, 0x5f, 0x75, 0x36, 0xac, 0x3a, + 0x6f, 0x95, 0x5e, 0xa9, 0xe1, 0xb7, 0x33, 0xd7, 0xfa, 0xc5, 0xf5, 0x77, 0x34, 0x63, 0xfb, 0x57, + 0xde, 0x84, 0x6a, 0xf4, 0x9f, 0x67, 0x30, 0xec, 0xfe, 0x88, 0x52, 0x7f, 0x17, 0x0c, 0xbf, 0x9d, + 0x81, 0xdf, 0xd8, 0x0c, 0x1b, 0x9f, 0xa4, 0xc0, 0xef, 0x65, 0x8c, 0x7b, 0xbe, 0x70, 0x0a, 0xf8, + 0xed, 0x0c, 0x9e, 0x0f, 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x19, 0xe2, 0xb7, 0x91, 0x31, + 0xdf, 0xf4, 0x3d, 0xf9, 0xc1, 0x45, 0xcb, 0x01, 0xbf, 0x77, 0x02, 0x7e, 0x63, 0xd3, 0xdb, 0x2f, + 0xe6, 0xa7, 0xbc, 0x18, 0x47, 0xf5, 0x62, 0x7e, 0xd9, 0xcd, 0x38, 0xa8, 0x17, 0xf3, 0x43, 0x83, + 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, 0xf8, + 0x8d, 0x0d, 0xfc, 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x29, 0xf9, 0xfd, 0x97, 0x09, 0x2f, + 0xe7, 0x0f, 0x13, 0x1e, 0xf7, 0xbb, 0x09, 0x8f, 0xfb, 0xcd, 0x84, 0xc7, 0xfd, 0x6a, 0xc2, 0xe3, + 0x7e, 0x31, 0xe1, 0x71, 0x3f, 0x9b, 0xf0, 0xb8, 0x9f, 0x4c, 0x78, 0xdc, 0x8f, 0x26, 0x3c, 0xee, + 0x9f, 0x26, 0x3c, 0xee, 0x1f, 0x26, 0xab, 0x4a, 0xc1, 0xaf, 0xad, 0x97, 0x0b, 0xb6, 0xf5, 0x72, + 0xc1, 0xb6, 0x5e, 0x2e, 0xd8, 0xd6, 0xcb, 0x05, 0xdb, 0x7a, 0xb9, 0x60, 0x5b, 0x2f, 0x17, 0x6c, + 0xeb, 0xe5, 0x82, 0x6d, 0xbd, 0x5c, 0xb0, 0xad, 0x97, 0x0b, 0xb6, 0xf5, 0x72, 0xc1, 0xb6, 0x5e, + 0x43, 0xb0, 0xef, 0xd7, 0xd3, 0x4b, 0x05, 0x7b, 0x7a, 0xa9, 0x60, 0x4f, 0x2f, 0x15, 0xec, 0xe9, + 0xa5, 0x82, 0x3d, 0xbd, 0x54, 0xb0, 0xa7, 0x97, 0x0a, 0xf6, 0xf4, 0x52, 0xc1, 0x9e, 0x5e, 0x2a, + 0xd8, 0xd3, 0x4b, 0x05, 0x7b, 0x7a, 0xa9, 0x60, 0x4f, 0xaf, 0x2e, 0x18, 0x7e, 0xe1, 0x17, 0x7e, + 0x43, 0xfb, 0xd5, 0xb2, 0x69, 0x7e, 0xb5, 0x38, 0xcd, 0xaf, 0x16, 0xa7, 0xf9, 0xd5, 0xe2, 0x34, + 0xbf, 0x5a, 0x9c, 0xe6, 0x57, 0x8b, 0xd3, 0xfc, 0x6a, 0x71, 0x9a, 0x5f, 0x2d, 0x4e, 0xf3, 0xab, + 0xc5, 0x69, 0x7e, 0xb5, 0x38, 0xcd, 0xaf, 0x16, 0x07, 0xbf, 0xf0, 0xeb, 0xf9, 0x5d, 0x08, 0x2c, + 0xe1, 0xc1, 0xa6, 0x91, 0xfe, 0x23, 0x0e, 0x0b, 0x4d, 0x78, 0xf2, 0xd4, 0x48, 0xff, 0xa5, 0xa5, + 0x47, 0x89, 0xaa, 0x5f, 0xfe, 0x3f, 0xb5, 0x7e, 0x7a, 0xb7, 0xfc, 0xca, 0x50, 0xcb, 0xaf, 0x9c, + 0x97, 0x65, 0xf8, 0x5d, 0xe4, 0xf7, 0x75, 0xfc, 0xb2, 0x79, 0x22, 0x96, 0x5f, 0x5a, 0x16, 0x4b, + 0x78, 0x40, 0x35, 0xb2, 0x40, 0xd3, 0xaf, 0x28, 0xb0, 0xd7, 0xf9, 0x5b, 0xf0, 0x9b, 0xed, 0x67, + 0xe3, 0xfc, 0x65, 0xc7, 0xc1, 0xb2, 0xbe, 0x9c, 0x5f, 0x56, 0x56, 0x96, 0x40, 0x35, 0x8a, 0x79, + 0x5e, 0x8e, 0x5f, 0x56, 0xa4, 0xe9, 0x57, 0x04, 0x7a, 0x7e, 0x69, 0x5c, 0x27, 0xbf, 0xfb, 0x11, + 0x63, 0xb6, 0xcf, 0xdb, 0x3f, 0xd7, 0xb0, 0xc8, 0x84, 0x4f, 0xec, 0x1a, 0xe9, 0x64, 0x61, 0x96, + 0xf0, 0xe0, 0x36, 0x7e, 0x65, 0x79, 0x05, 0xbf, 0xfb, 0xbb, 0xe5, 0x57, 0x96, 0x57, 0xf2, 0xbb, + 0xbd, 0xf7, 0xf1, 0x9b, 0x1a, 0x04, 0xfb, 0xfa, 0xfb, 0x11, 0x92, 0xf6, 0x8c, 0x79, 0xfd, 0xdd, + 0x8f, 0x83, 0x45, 0x24, 0x7c, 0xe2, 0xa9, 0x31, 0x05, 0x6d, 0x07, 0x8d, 0x79, 0xfd, 0x15, 0xc7, + 0x15, 0xfc, 0x3e, 0x39, 0xea, 0x57, 0x4f, 0xa0, 0x1a, 0xd9, 0x75, 0xc6, 0xee, 0x5f, 0x3d, 0x8f, + 0x83, 0x25, 0x4b, 0xf8, 0xe0, 0x4e, 0x7e, 0xd9, 0x6c, 0xd9, 0x46, 0xbf, 0xa4, 0xb4, 0xc7, 0xe2, + 0x54, 0xbf, 0x4b, 0x95, 0x5f, 0xb6, 0x5f, 0x9c, 0xfe, 0x33, 0xeb, 0x1f, 0xdc, 0xd5, 0x2f, 0x3f, + 0x9a, 0xef, 0xed, 0x97, 0x7e, 0x93, 0x0e, 0x7e, 0x59, 0x79, 0xc6, 0xfd, 0xd1, 0xd6, 0xd8, 0xef, + 0x8d, 0xbe, 0x7d, 0x7f, 0xc4, 0xaf, 0x0b, 0xd3, 0xfc, 0xd6, 0xf7, 0x9f, 0x59, 0x91, 0x2f, 0xea, + 0x57, 0x4f, 0x78, 0x6f, 0xbf, 0x2b, 0x3d, 0x89, 0x4b, 0xf7, 0x47, 0x8b, 0x4c, 0x78, 0x70, 0xda, + 0xef, 0x96, 0xa1, 0x83, 0x5f, 0xd6, 0x0e, 0xcd, 0x69, 0x9f, 0xef, 0xe2, 0x37, 0x1d, 0xab, 0x33, + 0xcf, 0x5f, 0xba, 0xff, 0xda, 0xfd, 0x2e, 0x9d, 0xfd, 0x2e, 0x4c, 0x88, 0x35, 0x7e, 0x45, 0xae, + 0xbd, 0x9f, 0xde, 0x9d, 0xf1, 0x2b, 0x76, 0x25, 0x9c, 0xed, 0xb7, 0x53, 0xff, 0x99, 0xf4, 0x22, + 0x2a, 0xdb, 0xe7, 0x2c, 0x41, 0x50, 0xeb, 0x97, 0xeb, 0x6d, 0xf7, 0x4b, 0xfa, 0x4c, 0x3c, 0xe1, + 0x13, 0xb7, 0xf1, 0x2b, 0xcb, 0xeb, 0x73, 0x7f, 0x94, 0x4e, 0xcd, 0x59, 0x7e, 0x85, 0xde, 0x66, + 0xbf, 0x8b, 0xf8, 0xc2, 0xf0, 0xcb, 0xee, 0x7f, 0xaf, 0xf0, 0xcb, 0xb2, 0x35, 0xfa, 0x25, 0x2a, + 0x1e, 0x4b, 0xe6, 0xf3, 0x05, 0xb1, 0x63, 0xbc, 0xe7, 0x0b, 0x74, 0xbb, 0xe6, 0xf3, 0x05, 0x71, + 0x21, 0x9c, 0x3c, 0x3e, 0x59, 0xf4, 0x2b, 0xcb, 0x9b, 0x79, 0xfe, 0xd2, 0x4b, 0x7a, 0x9b, 0x5f, + 0xd6, 0x1a, 0x7c, 0x5a, 0x9e, 0xe6, 0x57, 0xf4, 0xeb, 0x26, 0xdf, 0x1f, 0x95, 0xfd, 0x8a, 0xae, + 0xf6, 0xb4, 0xeb, 0xaf, 0x00, 0xcf, 0x07, 0x47, 0x3f, 0x1f, 0x2c, 0xf4, 0xaf, 0x04, 0xf0, 0x7b, + 0x37, 0xbf, 0x6a, 0x02, 0xfc, 0xea, 0x09, 0xf0, 0x0b, 0xbf, 0x1f, 0xbc, 0xa5, 0x5f, 0x93, 0x14, + 0xf7, 0x87, 0x4b, 0x8a, 0xfb, 0xdd, 0x25, 0xc5, 0xfd, 0xe6, 0x92, 0xe2, 0x7e, 0x75, 0x49, 0x71, + 0xbf, 0xb8, 0xa4, 0xb8, 0x9f, 0x5d, 0x52, 0xdc, 0x4f, 0x2e, 0x29, 0xee, 0x47, 0x17, 0xa1, 0xd1, + 0x44, 0x68, 0x34, 0x81, 0x5f, 0xf8, 0x85, 0xdf, 0x77, 0xf2, 0x8b, 0xf9, 0x29, 0xaa, 0xde, 0x30, + 0xf3, 0x53, 0x30, 0xbf, 0x4c, 0xd7, 0x1b, 0x66, 0x7e, 0x19, 0xb8, 0x39, 0xf0, 0x1b, 0x1b, 0xf8, + 0x8d, 0x8d, 0xe6, 0x17, 0x82, 0xc3, 0xa0, 0xea, 0x85, 0xdf, 0x30, 0xe8, 0x7e, 0x21, 0x38, 0x08, + 0x86, 0x5e, 0xf8, 0x0d, 0x82, 0xe5, 0x17, 0x82, 0x43, 0x60, 0xea, 0x85, 0xe1, 0x00, 0x78, 0x76, + 0x61, 0xf8, 0xee, 0x94, 0xec, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x5d, 0xf8, 0x3f, 0x67, 0xcc, 0x42, 0xb8 }; #endif diff --git a/backends/platform/psp/kbd_s_c.cpp b/backends/platform/psp/kbd_s_c.cpp index cf745b64b0..c2669ef542 100644 --- a/backends/platform/psp/kbd_s_c.cpp +++ b/backends/platform/psp/kbd_s_c.cpp @@ -3,204 +3,204 @@ unsigned int size_keyboard_symbols_compressed = 3155; unsigned char keyboard_symbols_compressed[] __attribute__((aligned(16))) = { - 0x78, 0x9c, 0xed, 0x9d, 0xe9, 0xb6, 0xac, 0x36, 0x0e, 0x46, 0xe9, 0xcc, 0xe9, 0x4c, 0xdd, 0x99, - 0xa7, 0xee, 0xf7, 0x7f, 0x42, 0xf2, 0x37, 0x2b, 0xe7, 0x9e, 0x02, 0x49, 0x96, 0x64, 0x1b, 0x0f, - 0x80, 0xf8, 0xf6, 0x5a, 0xa9, 0x43, 0x61, 0xd9, 0x18, 0x36, 0x18, 0x63, 0xca, 0x37, 0x7f, 0xfd, - 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x8d, 0x58, 0xc1, 0x8d, - 0x81, 0xdd, 0xe8, 0xc0, 0x6e, 0x74, 0xa0, 0x37, 0x38, 0xf0, 0x1b, 0x1b, 0xe8, 0x0d, 0x0e, 0xfc, - 0xc6, 0x06, 0x7a, 0x83, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xe4, 0xfc, 0xfe, 0xcb, 0x84, 0x97, - 0xf3, 0x91, 0x09, 0x8f, 0xfb, 0xd8, 0x84, 0xc7, 0x7d, 0x62, 0xc2, 0xe3, 0x3e, 0x35, 0xe1, 0x71, - 0x9f, 0x99, 0xf0, 0xb8, 0xcf, 0x4d, 0x78, 0xdc, 0x17, 0x26, 0x3c, 0xee, 0x4b, 0x13, 0x1e, 0xf7, - 0x6f, 0x13, 0x1e, 0xf7, 0x95, 0xc9, 0xaa, 0x92, 0xf1, 0x6b, 0xeb, 0xe5, 0x82, 0x6d, 0xbd, 0x5c, - 0xb0, 0xad, 0x97, 0x0b, 0xb6, 0xf5, 0x72, 0xc1, 0xb6, 0x5e, 0x2e, 0xd8, 0xd6, 0xcb, 0x05, 0xdb, - 0x7a, 0xb9, 0x60, 0x5b, 0x2f, 0x17, 0x6c, 0xeb, 0xe5, 0x82, 0x6d, 0xbd, 0x5c, 0xb0, 0xad, 0xd7, - 0x10, 0xec, 0xfb, 0xf5, 0xf4, 0x52, 0xc1, 0x9e, 0x5e, 0x2a, 0xd8, 0xd3, 0x4b, 0x05, 0x7b, 0x7a, - 0xa9, 0x60, 0x4f, 0x2f, 0x15, 0xec, 0xe9, 0xa5, 0x82, 0x3d, 0xbd, 0x54, 0xb0, 0xa7, 0x97, 0x0a, - 0xf6, 0xf4, 0x52, 0xc1, 0x9e, 0x5e, 0x2a, 0xd8, 0xd3, 0xab, 0x0b, 0x86, 0x5f, 0xf8, 0x85, 0xdf, - 0xd0, 0x7e, 0xb5, 0x6c, 0x9a, 0x5f, 0x2d, 0x4e, 0xf3, 0xab, 0xc5, 0x69, 0x7e, 0xb5, 0x38, 0xcd, - 0xaf, 0x16, 0xa7, 0xf9, 0xd5, 0xe2, 0x34, 0xbf, 0x5a, 0x9c, 0xe6, 0x57, 0x8b, 0xd3, 0xfc, 0x6a, - 0x71, 0x9a, 0x5f, 0x2d, 0x4e, 0xf3, 0xab, 0xc5, 0xc1, 0x2f, 0xfc, 0xc2, 0xef, 0xc3, 0xfd, 0x2e, - 0xcb, 0xa2, 0x27, 0x30, 0x8d, 0xcb, 0x1b, 0x4a, 0xc2, 0xca, 0x35, 0xb2, 0xb8, 0x8c, 0xdf, 0x2d, - 0xd0, 0xf4, 0xbb, 0x6c, 0x88, 0x84, 0x37, 0xa8, 0x46, 0xb6, 0x5d, 0xd3, 0xaf, 0x28, 0xcf, 0xf1, - 0xcb, 0xca, 0x73, 0xfc, 0xb2, 0x38, 0xc7, 0x2f, 0x8b, 0x9b, 0xe9, 0x97, 0x6c, 0xd6, 0xf1, 0xfb, - 0x16, 0xb4, 0x45, 0xda, 0x7e, 0x79, 0x5c, 0x0f, 0xbf, 0x74, 0xb7, 0x6c, 0xbf, 0x7c, 0xbb, 0xb9, - 0xeb, 0x37, 0xef, 0x97, 0x97, 0x67, 0xfb, 0xe5, 0x71, 0xb6, 0x5f, 0x1e, 0x37, 0xcf, 0x2f, 0x3b, - 0xad, 0x6c, 0xbf, 0xef, 0x31, 0xaf, 0x50, 0xd3, 0xaf, 0x88, 0xf3, 0xfd, 0x2e, 0xfd, 0xfc, 0x8a, - 0xed, 0x66, 0xfc, 0x6e, 0xa5, 0x9a, 0x7e, 0x45, 0x79, 0xa6, 0x5f, 0x11, 0x67, 0xfa, 0x15, 0x71, - 0x97, 0x6b, 0x9f, 0x47, 0xf8, 0x5d, 0xe0, 0xf7, 0x9d, 0xfb, 0xf8, 0x15, 0x45, 0x7a, 0x7e, 0x97, - 0x42, 0xbf, 0xb4, 0x81, 0xc9, 0xf9, 0x4d, 0x13, 0xde, 0x10, 0x1a, 0xf7, 0x60, 0xf8, 0x65, 0xfd, - 0xe7, 0x82, 0xfb, 0x2f, 0x8f, 0xf3, 0xfd, 0x16, 0xf6, 0xaf, 0x48, 0x79, 0x9e, 0xdf, 0xa2, 0xfe, - 0x95, 0xd8, 0xe1, 0xe6, 0xfb, 0xef, 0x03, 0xfd, 0xd2, 0xe3, 0xec, 0xf8, 0x5d, 0x4a, 0xfd, 0xd2, - 0x0d, 0xbb, 0x7e, 0x4b, 0xfb, 0x57, 0x64, 0x7f, 0x9b, 0xfb, 0xcf, 0xa1, 0xfc, 0xee, 0x81, 0xed, - 0xd7, 0x2f, 0xf7, 0x91, 0x7b, 0xfe, 0x2d, 0xf1, 0x4b, 0xe3, 0xda, 0xfd, 0xd6, 0xf6, 0x9f, 0x7b, - 0xf9, 0xe5, 0x0d, 0xd1, 0x54, 0xbf, 0x24, 0xae, 0xf9, 0xfe, 0xfb, 0x21, 0xe0, 0xba, 0x7e, 0x4b, - 0xef, 0xbf, 0x42, 0xc8, 0x9d, 0xfd, 0xd2, 0x2e, 0x4c, 0xab, 0x5f, 0xb1, 0xbb, 0x53, 0xfd, 0xd2, - 0xfd, 0xe8, 0xe0, 0x97, 0x95, 0x79, 0xe3, 0xf6, 0x99, 0xf5, 0x50, 0x5b, 0x9f, 0x8f, 0x16, 0x02, - 0x4b, 0xf8, 0xc0, 0xa1, 0xfb, 0x2f, 0x8d, 0x9b, 0xe6, 0x37, 0xcc, 0xfd, 0x97, 0xe9, 0xed, 0x34, - 0xbe, 0xd1, 0xb7, 0x7f, 0x45, 0xe3, 0xe0, 0xf7, 0xd8, 0xf3, 0x6f, 0x9a, 0xf0, 0xc6, 0xb8, 0xf1, - 0x49, 0x51, 0x5e, 0x8f, 0xf1, 0xc9, 0x22, 0xbf, 0xd5, 0xfd, 0xab, 0x24, 0xe1, 0x1f, 0x2e, 0x30, - 0x3e, 0xb9, 0x16, 0xfb, 0xa5, 0x37, 0xfe, 0x69, 0xef, 0x17, 0x44, 0x79, 0xcd, 0xef, 0x17, 0xd6, - 0x52, 0xbf, 0x85, 0xcf, 0x47, 0x22, 0xee, 0x8a, 0xef, 0x17, 0x28, 0x78, 0x3f, 0x18, 0xf0, 0xfd, - 0xe0, 0x6a, 0x26, 0xc0, 0xaf, 0x9e, 0x00, 0xbf, 0x7a, 0x02, 0xfc, 0xea, 0x09, 0x43, 0xfc, 0x9a, - 0xec, 0x71, 0x1f, 0xb9, 0xec, 0x71, 0x1f, 0xbb, 0xec, 0x71, 0x9f, 0xb8, 0xec, 0x71, 0x9f, 0xba, - 0xec, 0x71, 0x9f, 0xb9, 0xec, 0x71, 0x9f, 0xbb, 0xec, 0x71, 0x5f, 0xb8, 0xec, 0x71, 0x5f, 0xba, - 0x08, 0x8d, 0x26, 0x42, 0xa3, 0x09, 0xfc, 0xc2, 0x2f, 0xfc, 0x3e, 0xc9, 0x2f, 0xe6, 0xa7, 0xa8, - 0x7a, 0xc3, 0xcc, 0x4f, 0xc1, 0xfc, 0x32, 0x5d, 0x6f, 0x98, 0xf9, 0x65, 0xe0, 0xe6, 0xc0, 0x6f, - 0x6c, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, 0xc6, 0x06, 0x7e, 0x63, 0x03, - 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0x72, 0x7e, 0xff, 0xdf, 0xc8, 0x59, 0xfb, 0x15, - 0x95, 0xaf, 0x4d, 0xf4, 0xf8, 0x8c, 0xdf, 0x56, 0xbd, 0x10, 0xdc, 0x17, 0x5b, 0xaf, 0x21, 0xd8, - 0xf7, 0xdb, 0xae, 0x17, 0x82, 0x7b, 0xe2, 0xe9, 0xd5, 0x05, 0xc3, 0xef, 0x9d, 0x80, 0xdf, 0xd8, - 0x0c, 0xf1, 0x7b, 0xbc, 0x3a, 0xf0, 0xdb, 0x19, 0x53, 0x23, 0xfc, 0x86, 0x00, 0x7e, 0x63, 0x03, - 0xbf, 0xb1, 0x19, 0xea, 0x97, 0xcf, 0x28, 0xde, 0xd7, 0xda, 0xd5, 0x81, 0xdf, 0xce, 0x0c, 0xf6, - 0xab, 0x15, 0x00, 0xbf, 0x13, 0x81, 0xdf, 0xd8, 0xcc, 0xf2, 0xbb, 0x37, 0xd4, 0xf4, 0xef, 0x42, - 0xfe, 0xa6, 0xd9, 0x41, 0x3b, 0x9b, 0x46, 0xfa, 0xef, 0x1a, 0x2c, 0x6b, 0xd7, 0xfb, 0xef, 0x87, - 0xc5, 0xd7, 0xc7, 0x2a, 0x56, 0xb0, 0xfb, 0x33, 0xfc, 0x76, 0x66, 0xb0, 0xdf, 0x95, 0x2d, 0x1a, - 0x7e, 0x57, 0x23, 0x3b, 0x68, 0x67, 0x5e, 0xfb, 0xbc, 0x4a, 0xbf, 0xef, 0x67, 0x12, 0xfc, 0x8e, - 0xe4, 0x44, 0xbf, 0x69, 0x10, 0xfc, 0x76, 0x07, 0xed, 0x73, 0x6c, 0x66, 0xf4, 0xaf, 0x36, 0xb5, - 0xef, 0x2a, 0x79, 0xbf, 0x19, 0x7e, 0x47, 0x82, 0xf1, 0xc9, 0xd8, 0xc0, 0x6f, 0x6c, 0xe0, 0x37, - 0x36, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, 0xc6, 0x66, 0x88, 0xdf, 0x46, 0xc6, 0xec, 0xe9, - 0x33, 0xf9, 0xda, 0x45, 0xcb, 0x01, 0xbf, 0x77, 0x02, 0x7e, 0x63, 0xd3, 0xdb, 0x2f, 0xe6, 0xa7, - 0x5c, 0x8c, 0x5a, 0xbd, 0x98, 0x5f, 0x76, 0x33, 0x2a, 0xf5, 0x62, 0x7e, 0x68, 0x70, 0xe0, 0x37, - 0x36, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, 0xc6, 0xe6, 0x02, 0x7e, 0xbd, 0x5f, 0x50, 0xcb, - 0xff, 0xdf, 0x8e, 0x17, 0x93, 0x46, 0x16, 0xe4, 0xdd, 0x4a, 0x50, 0x26, 0x66, 0x58, 0xb9, 0x79, - 0x82, 0x96, 0x37, 0x93, 0x25, 0xbb, 0x85, 0x7e, 0x5c, 0xdd, 0x6f, 0x89, 0xa3, 0x66, 0xbf, 0x7a, - 0xfe, 0x32, 0xbf, 0xd6, 0xb6, 0x4b, 0xca, 0x7a, 0x84, 0xdf, 0xcc, 0xd9, 0x5f, 0xe6, 0x37, 0xf9, - 0x69, 0x50, 0x69, 0x5e, 0x12, 0x07, 0xbf, 0x43, 0xd8, 0xfd, 0x92, 0x96, 0x8e, 0x2e, 0x89, 0x15, - 0x69, 0x83, 0xb8, 0x2c, 0xf4, 0xa7, 0x7d, 0xec, 0xb7, 0x7f, 0x05, 0x4d, 0xe7, 0x9a, 0x08, 0xe3, - 0xed, 0x01, 0x9b, 0xaa, 0xf1, 0xfa, 0xa9, 0x99, 0x9a, 0x57, 0xf9, 0xc1, 0xb0, 0x56, 0xe7, 0x64, - 0xdf, 0x46, 0x72, 0xba, 0x5f, 0xd5, 0x8c, 0xfd, 0xfb, 0x4c, 0xfe, 0xdb, 0xbe, 0xad, 0x08, 0xcb, - 0xaf, 0x0c, 0x95, 0xc7, 0x9d, 0xac, 0x25, 0xf5, 0x51, 0xcb, 0x48, 0x7e, 0x58, 0x98, 0xe4, 0x95, - 0x15, 0xce, 0x56, 0xea, 0x02, 0x7e, 0xff, 0xd7, 0x48, 0xb6, 0x02, 0xfa, 0x41, 0xd8, 0xbe, 0x16, - 0xfa, 0x7d, 0x39, 0xce, 0x85, 0x7a, 0xf5, 0x50, 0x4f, 0x32, 0xe1, 0x97, 0x54, 0xcc, 0xc8, 0x2b, - 0x16, 0x7b, 0xfb, 0xfd, 0xc6, 0x44, 0x8f, 0xcf, 0xf8, 0x6d, 0xd5, 0x9b, 0x17, 0xbc, 0x88, 0xe6, - 0x4a, 0xb6, 0xac, 0x85, 0x7e, 0x57, 0xbd, 0x14, 0x19, 0x6a, 0x5c, 0xbf, 0x7b, 0xc6, 0x75, 0x4f, - 0x16, 0xdf, 0x1d, 0xbf, 0xf2, 0xa2, 0x25, 0x8b, 0x9d, 0xfd, 0xda, 0x7a, 0x0d, 0xc1, 0xbe, 0xdf, - 0x76, 0xbd, 0x39, 0xc1, 0xba, 0xc4, 0xea, 0xf6, 0xb9, 0xd8, 0x6f, 0x59, 0x25, 0x92, 0xb5, 0x4a, - 0x82, 0x16, 0xc5, 0xdb, 0xea, 0xfe, 0x7e, 0x3d, 0xbd, 0xba, 0xe0, 0x30, 0x7e, 0x95, 0x06, 0xf6, - 0xb8, 0x5f, 0xb3, 0x7d, 0xb6, 0x37, 0xfe, 0xfe, 0x05, 0x7e, 0x39, 0xa6, 0x44, 0xab, 0x17, 0xcb, - 0x5a, 0x74, 0x5e, 0x46, 0x92, 0x5e, 0xda, 0x7f, 0x66, 0x81, 0xd9, 0xfe, 0x33, 0xd9, 0x54, 0xb2, - 0x11, 0xb6, 0xc0, 0xfc, 0x76, 0xe9, 0x3f, 0x0f, 0xf1, 0x5b, 0x59, 0x07, 0x42, 0x63, 0x76, 0x87, - 0xfa, 0x3b, 0xd7, 0x1c, 0x06, 0xd7, 0xcb, 0xd4, 0x18, 0xc8, 0x6f, 0x69, 0xa3, 0x7b, 0x06, 0xa3, - 0xab, 0xf5, 0x04, 0xbf, 0x6b, 0x69, 0xa3, 0x3b, 0x9d, 0xf1, 0xd5, 0xa2, 0x1a, 0xd9, 0x61, 0x88, - 0xe4, 0xf7, 0xc1, 0x08, 0xbf, 0x7a, 0x02, 0xa3, 0xca, 0xaf, 0xf9, 0xe8, 0xf8, 0x9e, 0x2a, 0xd7, - 0xc0, 0x6f, 0x67, 0x86, 0xfb, 0xdd, 0x3f, 0x53, 0x06, 0xfa, 0xcd, 0x77, 0x84, 0xed, 0x53, 0xaf, - 0xe8, 0xf9, 0x68, 0x11, 0x0b, 0x9d, 0x6a, 0xd5, 0x9b, 0xb8, 0x7e, 0x9d, 0xed, 0x66, 0xaa, 0x36, - 0xcc, 0xef, 0xc1, 0x67, 0xd8, 0x16, 0x26, 0xfa, 0x65, 0x4f, 0x83, 0x7c, 0x10, 0xc0, 0xca, 0x7e, - 0x9c, 0xfc, 0xa1, 0x6c, 0xf5, 0xbb, 0xd0, 0xbf, 0xbd, 0x2a, 0xd5, 0x9d, 0x79, 0xf7, 0x5f, 0x65, - 0xac, 0x69, 0x59, 0xe4, 0xce, 0x9e, 0xe3, 0xd7, 0x1b, 0x0a, 0xb1, 0x32, 0x0b, 0xbf, 0x7c, 0x08, - 0x22, 0x1d, 0x62, 0x21, 0x9b, 0x24, 0xcb, 0x6c, 0xeb, 0xe9, 0xf9, 0xdf, 0xa1, 0xe3, 0x3f, 0xb9, - 0x7d, 0xe6, 0xcd, 0x66, 0x5a, 0xfb, 0x53, 0xfc, 0xea, 0x43, 0x81, 0x7b, 0x9c, 0x72, 0xa7, 0x5e, - 0xb6, 0x17, 0x8c, 0xea, 0x10, 0xa2, 0x51, 0x98, 0xe9, 0x57, 0xae, 0x10, 0x49, 0x0d, 0xcc, 0x6e, - 0x9f, 0xa5, 0x5f, 0x51, 0xf8, 0x40, 0xbf, 0x52, 0x92, 0xb0, 0x66, 0xfa, 0xb5, 0x8a, 0xb7, 0xfc, - 0xd2, 0x6b, 0x3a, 0xa9, 0x82, 0x58, 0xe6, 0xd9, 0xcc, 0xa4, 0x06, 0xe6, 0xf9, 0x55, 0x6a, 0x7d, - 0x81, 0xeb, 0x77, 0xab, 0x47, 0xf5, 0xf5, 0xfb, 0x5e, 0x7b, 0xd7, 0x6f, 0x72, 0x4a, 0x89, 0x65, - 0xb6, 0x39, 0xeb, 0x4e, 0xd6, 0xc4, 0x69, 0x7e, 0x2f, 0x72, 0xff, 0xe5, 0xd5, 0xab, 0xb9, 0x7e, - 0x4d, 0xbf, 0xc9, 0x5f, 0xb5, 0x52, 0xba, 0x44, 0xeb, 0x4a, 0x38, 0xcc, 0xc4, 0xf1, 0x0d, 0x7a, - 0x95, 0xcc, 0xe9, 0x3f, 0xbb, 0x87, 0xa7, 0xd9, 0xaf, 0x99, 0x8f, 0xfd, 0x4d, 0xaf, 0x5f, 0xc3, - 0xaf, 0x75, 0x11, 0xb4, 0x31, 0xd8, 0x6f, 0x2d, 0x53, 0xc7, 0x37, 0xb4, 0xe0, 0xe2, 0xfe, 0xf3, - 0x2a, 0xed, 0xec, 0xd9, 0xd8, 0xfd, 0x47, 0x69, 0xeb, 0xc5, 0x72, 0xd2, 0x3e, 0x8b, 0x96, 0xba, - 0x89, 0xa8, 0x7e, 0xc1, 0x07, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, 0xbc, 0x1f, 0x8c, 0xcd, 0x23, - 0xde, 0xef, 0x3f, 0x98, 0x21, 0x7e, 0x1b, 0x19, 0xb3, 0xa7, 0x79, 0xcc, 0xe7, 0x56, 0x2d, 0x54, - 0xeb, 0x68, 0x67, 0x32, 0x16, 0xf5, 0xcd, 0xd5, 0x80, 0xe3, 0xe3, 0x94, 0xdf, 0xb8, 0x68, 0x39, - 0xe2, 0xfa, 0x2d, 0x18, 0x14, 0xe1, 0x91, 0x65, 0x6b, 0xeb, 0x4a, 0x3f, 0x52, 0xb2, 0x03, 0xfc, - 0x52, 0xd2, 0x01, 0x17, 0x27, 0xb0, 0x74, 0x2d, 0x4f, 0xbd, 0xb9, 0xdf, 0x09, 0xf3, 0x53, 0x46, - 0x52, 0xfa, 0x3e, 0xce, 0x18, 0xbc, 0x96, 0xc3, 0x73, 0xd6, 0xe8, 0x33, 0x1f, 0xc8, 0x62, 0x6d, - 0x7d, 0xb2, 0x2c, 0xf3, 0x56, 0x52, 0xab, 0xf7, 0xfc, 0xf9, 0x65, 0x43, 0x49, 0x0f, 0xa4, 0xf1, - 0x7e, 0x41, 0x7b, 0x25, 0x21, 0x56, 0xc8, 0x73, 0x85, 0x8a, 0xe3, 0x9f, 0xa4, 0xdd, 0xd0, 0x07, - 0x3d, 0x1b, 0x06, 0xb2, 0x2a, 0xf5, 0x9e, 0x3f, 0x3f, 0x74, 0x28, 0x85, 0x07, 0x52, 0x5e, 0x8b, - 0x86, 0x5f, 0x25, 0xdf, 0x6e, 0x51, 0x2c, 0x8e, 0xf2, 0x5b, 0x4b, 0x68, 0xbf, 0x4a, 0xfb, 0x6c, - 0x5c, 0xbf, 0x7c, 0x51, 0x69, 0x70, 0xcd, 0xae, 0xf0, 0xeb, 0x13, 0x7e, 0xa7, 0x73, 0xa4, 0x7f, - 0xa5, 0x5f, 0xbf, 0x22, 0x28, 0x49, 0xe5, 0x6d, 0x35, 0xfc, 0x4e, 0xe1, 0xd0, 0xf3, 0x51, 0x71, - 0xfb, 0x0c, 0xbf, 0x27, 0xc3, 0x7b, 0x3f, 0x99, 0x50, 0xfe, 0x7a, 0x6f, 0xb7, 0xf6, 0x4a, 0x54, - 0xca, 0x61, 0xcd, 0x3c, 0x5b, 0x60, 0x7e, 0xfb, 0xf6, 0x9f, 0xab, 0x89, 0xeb, 0x77, 0x2a, 0x13, - 0x8d, 0xd5, 0x01, 0xbf, 0x3d, 0xb8, 0xac, 0x5e, 0xf8, 0xed, 0xc0, 0xf1, 0xf1, 0xe4, 0xf1, 0xc0, - 0x6f, 0x6c, 0xe0, 0x37, 0x36, 0x39, 0xbf, 0x7f, 0x36, 0x72, 0xa8, 0x52, 0xf6, 0x10, 0x22, 0x5d, - 0xdb, 0xb1, 0x55, 0x2c, 0x7a, 0xd7, 0x47, 0xc3, 0x8f, 0xa7, 0x36, 0xf2, 0xad, 0x89, 0x1e, 0x9f, - 0xf1, 0xdb, 0xaa, 0xf7, 0x98, 0x60, 0xe3, 0x29, 0x51, 0x7d, 0x02, 0xed, 0x41, 0xed, 0x53, 0xe9, - 0x79, 0x7e, 0x6d, 0xbd, 0x86, 0x60, 0xdf, 0x6f, 0xbb, 0xde, 0x43, 0x82, 0xcb, 0xfc, 0xf6, 0xe3, - 0x36, 0x7e, 0x3d, 0xbd, 0xba, 0xe0, 0x1b, 0xfa, 0x15, 0x03, 0x0e, 0x0b, 0x1d, 0x37, 0xe0, 0x8b, - 0xe4, 0x6f, 0xc1, 0xf6, 0x5e, 0xcb, 0x4e, 0x69, 0xf9, 0xf8, 0xb5, 0x62, 0x58, 0xb4, 0x9e, 0xa7, - 0xf8, 0x95, 0x51, 0xf6, 0xa2, 0xf6, 0x56, 0xaf, 0xe6, 0xfd, 0x42, 0x32, 0xa8, 0x65, 0xc6, 0x53, - 0xb7, 0xa3, 0x2e, 0xe1, 0x21, 0x7e, 0x8f, 0x57, 0xe7, 0xb8, 0x5f, 0xf2, 0x3e, 0x56, 0xbe, 0x67, - 0x15, 0x03, 0x8f, 0x59, 0xbf, 0x45, 0xdb, 0xd3, 0xbe, 0xab, 0x6a, 0x65, 0xbc, 0x12, 0x54, 0xd5, - 0x55, 0xab, 0xc3, 0xd4, 0x78, 0x37, 0xbf, 0xfb, 0x67, 0xb2, 0xba, 0xd0, 0xaf, 0xf1, 0x56, 0x2f, - 0x77, 0xfd, 0xae, 0xf4, 0xd4, 0xe2, 0xc5, 0xa9, 0xf1, 0xba, 0xdf, 0x8a, 0x7d, 0xad, 0x82, 0x6a, - 0x64, 0x75, 0x7a, 0x9e, 0x5f, 0x9e, 0xa7, 0x78, 0x7b, 0x7a, 0x71, 0xa2, 0xa4, 0x8b, 0x5c, 0xbf, - 0x4f, 0xf7, 0x5b, 0xd9, 0x3e, 0xdb, 0x7e, 0xaf, 0x75, 0xff, 0x25, 0xdb, 0xee, 0xe5, 0x57, 0x7d, - 0xfe, 0x4f, 0xd6, 0x24, 0x11, 0x33, 0xfc, 0xd2, 0xba, 0xa9, 0xfd, 0xe7, 0xb2, 0x0d, 0x2a, 0x65, - 0x78, 0xfd, 0x67, 0x11, 0x95, 0x6c, 0x72, 0x90, 0xe0, 0x71, 0x7e, 0x57, 0xfb, 0x78, 0x9b, 0xdf, - 0x5b, 0x2f, 0xff, 0x72, 0xf4, 0x6b, 0xab, 0x5f, 0xa1, 0x57, 0x61, 0xa8, 0xdf, 0xac, 0xcf, 0x53, - 0xfc, 0xda, 0x37, 0xcc, 0x2e, 0x25, 0x5f, 0x8b, 0x29, 0x7e, 0x79, 0x07, 0x93, 0xb6, 0x4b, 0xb2, - 0xc5, 0x9a, 0x72, 0xfd, 0xb2, 0x07, 0xa8, 0x9e, 0x5d, 0x9b, 0x87, 0xfa, 0xcd, 0x74, 0x43, 0xe8, - 0xe2, 0xb4, 0xf6, 0xf9, 0x29, 0xc0, 0xef, 0x19, 0xcc, 0xbb, 0xd0, 0xe7, 0xf8, 0xe5, 0x7d, 0x53, - 0xfb, 0xfb, 0x71, 0xbf, 0xe9, 0x11, 0xdb, 0xc6, 0x25, 0x06, 0xf4, 0xa4, 0xd4, 0x82, 0x8c, 0x3e, - 0xbc, 0x9d, 0x5f, 0x7d, 0xc6, 0x28, 0xdc, 0x54, 0xe9, 0x9e, 0x4c, 0xbb, 0x7e, 0xd7, 0x92, 0xef, - 0x3d, 0xfd, 0x2a, 0x6b, 0xaf, 0xe2, 0x57, 0x3f, 0x38, 0x15, 0x9b, 0x2a, 0xdf, 0x93, 0x19, 0xcf, - 0x47, 0x33, 0xda, 0xe7, 0xc6, 0xc3, 0xd0, 0x63, 0x6b, 0x0f, 0xf3, 0x4b, 0xda, 0x1e, 0xab, 0xff, - 0xfc, 0xda, 0x60, 0x87, 0xfe, 0xb3, 0x7b, 0x18, 0xc4, 0xd0, 0x45, 0x6e, 0x7c, 0xa3, 0xae, 0xd1, - 0xe4, 0x0f, 0x03, 0xf2, 0x91, 0x40, 0x2b, 0x95, 0x9e, 0xf6, 0x74, 0x0d, 0xbb, 0x5b, 0xb1, 0x1e, - 0x7e, 0xd2, 0xdb, 0x97, 0xcf, 0x1d, 0x26, 0x41, 0xc6, 0x27, 0xb3, 0x7e, 0xc9, 0x57, 0xbd, 0xe5, - 0xd8, 0x16, 0xe5, 0x21, 0x4b, 0x6f, 0xe3, 0xa9, 0x1a, 0x59, 0x4e, 0x52, 0x1a, 0x3d, 0xbd, 0x56, - 0xaa, 0x8b, 0xae, 0xd9, 0x3f, 0x5f, 0xff, 0xe5, 0x6b, 0x9b, 0xbb, 0x92, 0xe3, 0xf9, 0xe5, 0x27, - 0x3c, 0x4b, 0x2c, 0xf4, 0x5b, 0xb3, 0xb5, 0xbc, 0x5f, 0x99, 0x41, 0x5e, 0xfc, 0xdb, 0x3a, 0xb1, - 0x58, 0xe8, 0x37, 0x43, 0x3c, 0xbf, 0xca, 0xda, 0x32, 0xbf, 0xcb, 0xab, 0x85, 0x95, 0x65, 0x64, - 0xae, 0x5f, 0xf9, 0x30, 0xa0, 0x96, 0x96, 0x9e, 0x74, 0xac, 0xa8, 0x43, 0x7e, 0x6b, 0xdb, 0x67, - 0x16, 0xfe, 0x3c, 0xbf, 0x6e, 0x49, 0xe6, 0xd6, 0x68, 0xc3, 0x21, 0x3f, 0x45, 0x69, 0x6a, 0xd2, - 0x7e, 0x0b, 0x21, 0x95, 0x2c, 0xf4, 0x5b, 0x50, 0xdd, 0x20, 0xef, 0xf7, 0x3b, 0xf9, 0x1d, 0xdb, - 0x3e, 0xf7, 0xf6, 0x5b, 0xd2, 0x48, 0xc7, 0xf1, 0x9b, 0x34, 0xa2, 0xab, 0xe1, 0x77, 0xcd, 0xf5, - 0x9f, 0xeb, 0xb6, 0xc6, 0x4a, 0xa0, 0x9f, 0xac, 0x34, 0x12, 0x2e, 0x4a, 0xe1, 0x55, 0x55, 0xfc, - 0x76, 0xec, 0x3f, 0x97, 0x24, 0x14, 0xf8, 0x6d, 0xc4, 0xaf, 0x71, 0x1f, 0xd4, 0x16, 0x76, 0xf2, - 0x86, 0x8b, 0xd6, 0x37, 0xf2, 0xad, 0x8b, 0x96, 0xe3, 0xf6, 0x7e, 0xf5, 0x16, 0xef, 0x64, 0x46, - 0x55, 0xe2, 0x81, 0x7e, 0x57, 0xb5, 0xc5, 0x3b, 0x95, 0x71, 0x95, 0xe8, 0xed, 0xf7, 0xa4, 0xf9, - 0x29, 0xc0, 0xa2, 0x56, 0xef, 0x35, 0xe7, 0x97, 0x01, 0x93, 0x4a, 0xbd, 0x98, 0x1f, 0x1a, 0x1c, - 0xf8, 0x8d, 0x0d, 0xfc, 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, - 0x6c, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x4d, 0xce, 0xef, 0x1f, 0x8d, 0x9c, 0xb5, - 0x5f, 0x51, 0xf9, 0xce, 0x44, 0x8f, 0xcf, 0xf8, 0x6d, 0xd5, 0x0b, 0xc1, 0x7d, 0xb1, 0xf5, 0x1a, - 0x82, 0x7d, 0xbf, 0xed, 0x7a, 0x21, 0xb8, 0x27, 0x9e, 0x5e, 0x5d, 0x30, 0xfc, 0xde, 0x09, 0xf8, - 0x8d, 0xcd, 0x10, 0xbf, 0xc7, 0xab, 0x03, 0xbf, 0x9d, 0x31, 0x35, 0xc2, 0x6f, 0x08, 0x76, 0x8d, - 0xe2, 0x37, 0x40, 0xf0, 0x1b, 0x82, 0x71, 0x7e, 0xb5, 0xdf, 0x23, 0x67, 0x81, 0xdf, 0xce, 0x10, - 0x8d, 0xdc, 0x46, 0xab, 0xdf, 0xe4, 0xd7, 0xdc, 0x45, 0xc0, 0x6f, 0x67, 0xe0, 0x37, 0x36, 0x54, - 0x23, 0x13, 0xdc, 0xc7, 0xef, 0x56, 0xb0, 0x9c, 0x05, 0xa2, 0x2f, 0xc1, 0x6f, 0x6f, 0x86, 0xf9, - 0x25, 0x33, 0xa6, 0xe4, 0x6c, 0x28, 0xf3, 0x03, 0x7e, 0xbb, 0xc3, 0x34, 0x52, 0xc1, 0x3d, 0xfa, - 0xcf, 0x6c, 0x36, 0x94, 0x98, 0xd2, 0xa8, 0x7f, 0x85, 0xdf, 0xce, 0x0c, 0xf5, 0xab, 0x4e, 0x6c, - 0x4c, 0xa6, 0xe9, 0xd1, 0x99, 0x7f, 0xf0, 0xdb, 0x19, 0xae, 0x91, 0x08, 0xee, 0xd9, 0xbf, 0x72, - 0x1a, 0x64, 0xb6, 0x04, 0xbf, 0xdd, 0x39, 0xd7, 0x2f, 0xee, 0xbf, 0xa3, 0x11, 0x1a, 0x77, 0xc1, - 0x3d, 0xc7, 0x37, 0xd4, 0x45, 0xf4, 0x9f, 0x67, 0x30, 0xce, 0x2f, 0xa1, 0xfc, 0x29, 0x18, 0x7e, - 0x3b, 0x23, 0x35, 0x6e, 0x82, 0xe1, 0x37, 0x04, 0xf0, 0x1b, 0x1b, 0xbc, 0x1f, 0x8c, 0x0d, 0xfc, - 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x19, 0xe2, 0xb7, 0x91, 0x31, 0x7b, 0xfa, 0x4c, 0xbe, - 0x73, 0xd1, 0x72, 0xc0, 0xef, 0x9d, 0x80, 0xdf, 0xd8, 0xf4, 0xf6, 0x8b, 0xf9, 0x29, 0x17, 0xa3, - 0x56, 0x2f, 0xe6, 0x97, 0xdd, 0x8c, 0x4a, 0xbd, 0x98, 0x1f, 0x1a, 0x1c, 0xf8, 0x8d, 0x0d, 0xfc, - 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0xe0, 0x37, 0x36, - 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x4d, 0xce, 0xef, 0xef, 0x26, 0xbc, 0x9c, 0xdf, 0x4c, 0x78, 0xdc, - 0xaf, 0x26, 0x3c, 0xee, 0x17, 0x13, 0x1e, 0xf7, 0xb3, 0x09, 0x8f, 0xfb, 0xc9, 0x84, 0xc7, 0xfd, - 0x68, 0xc2, 0xe3, 0x7e, 0x30, 0xe1, 0x71, 0xdf, 0x9b, 0xf0, 0xb8, 0xff, 0x9a, 0xf0, 0xb8, 0xff, - 0x98, 0xac, 0x2a, 0x19, 0xbf, 0xb6, 0x5e, 0x2e, 0xd8, 0xd6, 0xcb, 0x05, 0xdb, 0x7a, 0xb9, 0x60, - 0x5b, 0x2f, 0x17, 0x6c, 0xeb, 0xe5, 0x82, 0x6d, 0xbd, 0x5c, 0xb0, 0xad, 0x97, 0x0b, 0xb6, 0xf5, - 0x72, 0xc1, 0xb6, 0x5e, 0x2e, 0xd8, 0xd6, 0xcb, 0x05, 0xdb, 0x7a, 0x0d, 0xc1, 0xbe, 0x5f, 0x4f, - 0x2f, 0x15, 0xec, 0xe9, 0xa5, 0x82, 0x3d, 0xbd, 0x54, 0xb0, 0xa7, 0x97, 0x0a, 0xf6, 0xf4, 0x52, - 0xc1, 0x9e, 0x5e, 0x2a, 0xd8, 0xd3, 0x4b, 0x05, 0x7b, 0x7a, 0xa9, 0x60, 0x4f, 0x2f, 0x15, 0xec, - 0xe9, 0xa5, 0x82, 0x3d, 0xbd, 0xba, 0x60, 0xf8, 0x85, 0x5f, 0xf8, 0x0d, 0xed, 0x57, 0xcb, 0xa6, - 0xf9, 0xd5, 0xe2, 0x34, 0xbf, 0x5a, 0x9c, 0xe6, 0x57, 0x8b, 0xd3, 0xfc, 0x6a, 0x71, 0x9a, 0x5f, - 0x2d, 0x4e, 0xf3, 0xab, 0xc5, 0x69, 0x7e, 0xb5, 0x38, 0xcd, 0xaf, 0x16, 0xa7, 0xf9, 0xd5, 0xe2, - 0x34, 0xbf, 0x5a, 0x1c, 0xfc, 0xc2, 0x2f, 0xfc, 0xa6, 0x7e, 0x5f, 0x13, 0x7c, 0x66, 0xfa, 0xa5, - 0xf3, 0xf2, 0xe1, 0xb7, 0xde, 0x2f, 0x9d, 0x3f, 0x75, 0x6b, 0xbf, 0x24, 0x10, 0x7e, 0x37, 0x8d, - 0x6c, 0x7a, 0x5c, 0xc6, 0xef, 0x76, 0x04, 0xa7, 0xb6, 0xcf, 0xf0, 0xfb, 0xe2, 0x98, 0xdf, 0xf2, - 0xeb, 0xf7, 0x14, 0xbf, 0xb4, 0x7e, 0x68, 0x9f, 0x47, 0xfa, 0xdd, 0x43, 0xd1, 0xbf, 0xba, 0x8d, - 0x5f, 0x06, 0xfc, 0x3e, 0xd8, 0x2f, 0xb9, 0xd2, 0xe1, 0x17, 0x7e, 0x95, 0x04, 0xf8, 0xd5, 0x13, - 0x2e, 0xe1, 0x97, 0xde, 0xa8, 0x2f, 0xe9, 0x17, 0xfd, 0xe7, 0x17, 0xf0, 0x0b, 0xbf, 0xff, 0x40, - 0x35, 0xb2, 0x7e, 0xf6, 0x25, 0xfd, 0xae, 0xf0, 0xfb, 0xce, 0x35, 0xfc, 0x92, 0x12, 0x3b, 0x5d, - 0xbf, 0x46, 0x02, 0x01, 0x7e, 0x0d, 0xbf, 0xfc, 0xdf, 0x47, 0xbf, 0xa4, 0xdf, 0xb5, 0x20, 0x01, - 0x7e, 0x3b, 0xf8, 0xdd, 0x63, 0xfd, 0xf6, 0x19, 0x7e, 0xdf, 0xb9, 0x80, 0x5f, 0x4e, 0x17, 0xbf, - 0xe4, 0x8c, 0x81, 0xdf, 0x3b, 0xf9, 0x35, 0x13, 0xf0, 0xfc, 0xab, 0x27, 0xc0, 0xaf, 0x9e, 0x00, - 0xbf, 0x7a, 0x02, 0xfc, 0x3a, 0x7e, 0x4d, 0xf6, 0xb8, 0xdf, 0x5c, 0xf6, 0xb8, 0x5f, 0x5d, 0xf6, - 0xb8, 0x5f, 0x5c, 0xf6, 0xb8, 0x9f, 0x5d, 0xf6, 0xb8, 0x9f, 0x5c, 0xf6, 0xb8, 0x1f, 0x5d, 0xf6, - 0xb8, 0x1f, 0x5c, 0xf6, 0xb8, 0xef, 0x5d, 0x84, 0x46, 0x13, 0xa1, 0xd1, 0x04, 0x7e, 0xe1, 0x17, - 0x7e, 0x9f, 0xe4, 0x17, 0xf3, 0x53, 0x54, 0xbd, 0x61, 0xe6, 0xa7, 0x60, 0x7e, 0x99, 0xae, 0x37, - 0xcc, 0xfc, 0x32, 0x70, 0x73, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, 0xcd, 0x2f, 0x04, 0x87, 0x41, - 0xd5, 0x0b, 0xbf, 0x61, 0xd0, 0xfd, 0x42, 0x70, 0x10, 0x0c, 0xbd, 0xf0, 0x1b, 0x04, 0xcb, 0x2f, - 0x04, 0x87, 0xc0, 0xd4, 0x0b, 0xc3, 0x01, 0xf0, 0xec, 0xc2, 0xf0, 0xdd, 0xc9, 0xd9, 0x05, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0xf0, 0x37, 0x6c, - 0x6c, 0x3d, 0x8c + 0x78, 0x9c, 0xed, 0x9d, 0xe9, 0xb6, 0xac, 0x36, 0x0e, 0x46, 0xe9, 0xcc, 0xe9, 0x4c, 0xdd, 0x99, + 0xa7, 0xee, 0xf7, 0x7f, 0x42, 0xf2, 0x37, 0x2b, 0xe7, 0x9e, 0x02, 0x49, 0x96, 0x64, 0x1b, 0x0f, + 0x80, 0xf8, 0xf6, 0x5a, 0xa9, 0x43, 0x61, 0xd9, 0x18, 0x36, 0x18, 0x63, 0xca, 0x37, 0x7f, 0xfd, + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x8d, 0x58, 0xc1, 0x8d, + 0x81, 0xdd, 0xe8, 0xc0, 0x6e, 0x74, 0xa0, 0x37, 0x38, 0xf0, 0x1b, 0x1b, 0xe8, 0x0d, 0x0e, 0xfc, + 0xc6, 0x06, 0x7a, 0x83, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xe4, 0xfc, 0xfe, 0xcb, 0x84, 0x97, + 0xf3, 0x91, 0x09, 0x8f, 0xfb, 0xd8, 0x84, 0xc7, 0x7d, 0x62, 0xc2, 0xe3, 0x3e, 0x35, 0xe1, 0x71, + 0x9f, 0x99, 0xf0, 0xb8, 0xcf, 0x4d, 0x78, 0xdc, 0x17, 0x26, 0x3c, 0xee, 0x4b, 0x13, 0x1e, 0xf7, + 0x6f, 0x13, 0x1e, 0xf7, 0x95, 0xc9, 0xaa, 0x92, 0xf1, 0x6b, 0xeb, 0xe5, 0x82, 0x6d, 0xbd, 0x5c, + 0xb0, 0xad, 0x97, 0x0b, 0xb6, 0xf5, 0x72, 0xc1, 0xb6, 0x5e, 0x2e, 0xd8, 0xd6, 0xcb, 0x05, 0xdb, + 0x7a, 0xb9, 0x60, 0x5b, 0x2f, 0x17, 0x6c, 0xeb, 0xe5, 0x82, 0x6d, 0xbd, 0x5c, 0xb0, 0xad, 0xd7, + 0x10, 0xec, 0xfb, 0xf5, 0xf4, 0x52, 0xc1, 0x9e, 0x5e, 0x2a, 0xd8, 0xd3, 0x4b, 0x05, 0x7b, 0x7a, + 0xa9, 0x60, 0x4f, 0x2f, 0x15, 0xec, 0xe9, 0xa5, 0x82, 0x3d, 0xbd, 0x54, 0xb0, 0xa7, 0x97, 0x0a, + 0xf6, 0xf4, 0x52, 0xc1, 0x9e, 0x5e, 0x2a, 0xd8, 0xd3, 0xab, 0x0b, 0x86, 0x5f, 0xf8, 0x85, 0xdf, + 0xd0, 0x7e, 0xb5, 0x6c, 0x9a, 0x5f, 0x2d, 0x4e, 0xf3, 0xab, 0xc5, 0x69, 0x7e, 0xb5, 0x38, 0xcd, + 0xaf, 0x16, 0xa7, 0xf9, 0xd5, 0xe2, 0x34, 0xbf, 0x5a, 0x9c, 0xe6, 0x57, 0x8b, 0xd3, 0xfc, 0x6a, + 0x71, 0x9a, 0x5f, 0x2d, 0x4e, 0xf3, 0xab, 0xc5, 0xc1, 0x2f, 0xfc, 0xc2, 0xef, 0xc3, 0xfd, 0x2e, + 0xcb, 0xa2, 0x27, 0x30, 0x8d, 0xcb, 0x1b, 0x4a, 0xc2, 0xca, 0x35, 0xb2, 0xb8, 0x8c, 0xdf, 0x2d, + 0xd0, 0xf4, 0xbb, 0x6c, 0x88, 0x84, 0x37, 0xa8, 0x46, 0xb6, 0x5d, 0xd3, 0xaf, 0x28, 0xcf, 0xf1, + 0xcb, 0xca, 0x73, 0xfc, 0xb2, 0x38, 0xc7, 0x2f, 0x8b, 0x9b, 0xe9, 0x97, 0x6c, 0xd6, 0xf1, 0xfb, + 0x16, 0xb4, 0x45, 0xda, 0x7e, 0x79, 0x5c, 0x0f, 0xbf, 0x74, 0xb7, 0x6c, 0xbf, 0x7c, 0xbb, 0xb9, + 0xeb, 0x37, 0xef, 0x97, 0x97, 0x67, 0xfb, 0xe5, 0x71, 0xb6, 0x5f, 0x1e, 0x37, 0xcf, 0x2f, 0x3b, + 0xad, 0x6c, 0xbf, 0xef, 0x31, 0xaf, 0x50, 0xd3, 0xaf, 0x88, 0xf3, 0xfd, 0x2e, 0xfd, 0xfc, 0x8a, + 0xed, 0x66, 0xfc, 0x6e, 0xa5, 0x9a, 0x7e, 0x45, 0x79, 0xa6, 0x5f, 0x11, 0x67, 0xfa, 0x15, 0x71, + 0x97, 0x6b, 0x9f, 0x47, 0xf8, 0x5d, 0xe0, 0xf7, 0x9d, 0xfb, 0xf8, 0x15, 0x45, 0x7a, 0x7e, 0x97, + 0x42, 0xbf, 0xb4, 0x81, 0xc9, 0xf9, 0x4d, 0x13, 0xde, 0x10, 0x1a, 0xf7, 0x60, 0xf8, 0x65, 0xfd, + 0xe7, 0x82, 0xfb, 0x2f, 0x8f, 0xf3, 0xfd, 0x16, 0xf6, 0xaf, 0x48, 0x79, 0x9e, 0xdf, 0xa2, 0xfe, + 0x95, 0xd8, 0xe1, 0xe6, 0xfb, 0xef, 0x03, 0xfd, 0xd2, 0xe3, 0xec, 0xf8, 0x5d, 0x4a, 0xfd, 0xd2, + 0x0d, 0xbb, 0x7e, 0x4b, 0xfb, 0x57, 0x64, 0x7f, 0x9b, 0xfb, 0xcf, 0xa1, 0xfc, 0xee, 0x81, 0xed, + 0xd7, 0x2f, 0xf7, 0x91, 0x7b, 0xfe, 0x2d, 0xf1, 0x4b, 0xe3, 0xda, 0xfd, 0xd6, 0xf6, 0x9f, 0x7b, + 0xf9, 0xe5, 0x0d, 0xd1, 0x54, 0xbf, 0x24, 0xae, 0xf9, 0xfe, 0xfb, 0x21, 0xe0, 0xba, 0x7e, 0x4b, + 0xef, 0xbf, 0x42, 0xc8, 0x9d, 0xfd, 0xd2, 0x2e, 0x4c, 0xab, 0x5f, 0xb1, 0xbb, 0x53, 0xfd, 0xd2, + 0xfd, 0xe8, 0xe0, 0x97, 0x95, 0x79, 0xe3, 0xf6, 0x99, 0xf5, 0x50, 0x5b, 0x9f, 0x8f, 0x16, 0x02, + 0x4b, 0xf8, 0xc0, 0xa1, 0xfb, 0x2f, 0x8d, 0x9b, 0xe6, 0x37, 0xcc, 0xfd, 0x97, 0xe9, 0xed, 0x34, + 0xbe, 0xd1, 0xb7, 0x7f, 0x45, 0xe3, 0xe0, 0xf7, 0xd8, 0xf3, 0x6f, 0x9a, 0xf0, 0xc6, 0xb8, 0xf1, + 0x49, 0x51, 0x5e, 0x8f, 0xf1, 0xc9, 0x22, 0xbf, 0xd5, 0xfd, 0xab, 0x24, 0xe1, 0x1f, 0x2e, 0x30, + 0x3e, 0xb9, 0x16, 0xfb, 0xa5, 0x37, 0xfe, 0x69, 0xef, 0x17, 0x44, 0x79, 0xcd, 0xef, 0x17, 0xd6, + 0x52, 0xbf, 0x85, 0xcf, 0x47, 0x22, 0xee, 0x8a, 0xef, 0x17, 0x28, 0x78, 0x3f, 0x18, 0xf0, 0xfd, + 0xe0, 0x6a, 0x26, 0xc0, 0xaf, 0x9e, 0x00, 0xbf, 0x7a, 0x02, 0xfc, 0xea, 0x09, 0x43, 0xfc, 0x9a, + 0xec, 0x71, 0x1f, 0xb9, 0xec, 0x71, 0x1f, 0xbb, 0xec, 0x71, 0x9f, 0xb8, 0xec, 0x71, 0x9f, 0xba, + 0xec, 0x71, 0x9f, 0xb9, 0xec, 0x71, 0x9f, 0xbb, 0xec, 0x71, 0x5f, 0xb8, 0xec, 0x71, 0x5f, 0xba, + 0x08, 0x8d, 0x26, 0x42, 0xa3, 0x09, 0xfc, 0xc2, 0x2f, 0xfc, 0x3e, 0xc9, 0x2f, 0xe6, 0xa7, 0xa8, + 0x7a, 0xc3, 0xcc, 0x4f, 0xc1, 0xfc, 0x32, 0x5d, 0x6f, 0x98, 0xf9, 0x65, 0xe0, 0xe6, 0xc0, 0x6f, + 0x6c, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, 0xc6, 0x06, 0x7e, 0x63, 0x03, + 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0x72, 0x7e, 0xff, 0xdf, 0xc8, 0x59, 0xfb, 0x15, + 0x95, 0xaf, 0x4d, 0xf4, 0xf8, 0x8c, 0xdf, 0x56, 0xbd, 0x10, 0xdc, 0x17, 0x5b, 0xaf, 0x21, 0xd8, + 0xf7, 0xdb, 0xae, 0x17, 0x82, 0x7b, 0xe2, 0xe9, 0xd5, 0x05, 0xc3, 0xef, 0x9d, 0x80, 0xdf, 0xd8, + 0x0c, 0xf1, 0x7b, 0xbc, 0x3a, 0xf0, 0xdb, 0x19, 0x53, 0x23, 0xfc, 0x86, 0x00, 0x7e, 0x63, 0x03, + 0xbf, 0xb1, 0x19, 0xea, 0x97, 0xcf, 0x28, 0xde, 0xd7, 0xda, 0xd5, 0x81, 0xdf, 0xce, 0x0c, 0xf6, + 0xab, 0x15, 0x00, 0xbf, 0x13, 0x81, 0xdf, 0xd8, 0xcc, 0xf2, 0xbb, 0x37, 0xd4, 0xf4, 0xef, 0x42, + 0xfe, 0xa6, 0xd9, 0x41, 0x3b, 0x9b, 0x46, 0xfa, 0xef, 0x1a, 0x2c, 0x6b, 0xd7, 0xfb, 0xef, 0x87, + 0xc5, 0xd7, 0xc7, 0x2a, 0x56, 0xb0, 0xfb, 0x33, 0xfc, 0x76, 0x66, 0xb0, 0xdf, 0x95, 0x2d, 0x1a, + 0x7e, 0x57, 0x23, 0x3b, 0x68, 0x67, 0x5e, 0xfb, 0xbc, 0x4a, 0xbf, 0xef, 0x67, 0x12, 0xfc, 0x8e, + 0xe4, 0x44, 0xbf, 0x69, 0x10, 0xfc, 0x76, 0x07, 0xed, 0x73, 0x6c, 0x66, 0xf4, 0xaf, 0x36, 0xb5, + 0xef, 0x2a, 0x79, 0xbf, 0x19, 0x7e, 0x47, 0x82, 0xf1, 0xc9, 0xd8, 0xc0, 0x6f, 0x6c, 0xe0, 0x37, + 0x36, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, 0xc6, 0x66, 0x88, 0xdf, 0x46, 0xc6, 0xec, 0xe9, + 0x33, 0xf9, 0xda, 0x45, 0xcb, 0x01, 0xbf, 0x77, 0x02, 0x7e, 0x63, 0xd3, 0xdb, 0x2f, 0xe6, 0xa7, + 0x5c, 0x8c, 0x5a, 0xbd, 0x98, 0x5f, 0x76, 0x33, 0x2a, 0xf5, 0x62, 0x7e, 0x68, 0x70, 0xe0, 0x37, + 0x36, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, 0xc6, 0xe6, 0x02, 0x7e, 0xbd, 0x5f, 0x50, 0xcb, + 0xff, 0xdf, 0x8e, 0x17, 0x93, 0x46, 0x16, 0xe4, 0xdd, 0x4a, 0x50, 0x26, 0x66, 0x58, 0xb9, 0x79, + 0x82, 0x96, 0x37, 0x93, 0x25, 0xbb, 0x85, 0x7e, 0x5c, 0xdd, 0x6f, 0x89, 0xa3, 0x66, 0xbf, 0x7a, + 0xfe, 0x32, 0xbf, 0xd6, 0xb6, 0x4b, 0xca, 0x7a, 0x84, 0xdf, 0xcc, 0xd9, 0x5f, 0xe6, 0x37, 0xf9, + 0x69, 0x50, 0x69, 0x5e, 0x12, 0x07, 0xbf, 0x43, 0xd8, 0xfd, 0x92, 0x96, 0x8e, 0x2e, 0x89, 0x15, + 0x69, 0x83, 0xb8, 0x2c, 0xf4, 0xa7, 0x7d, 0xec, 0xb7, 0x7f, 0x05, 0x4d, 0xe7, 0x9a, 0x08, 0xe3, + 0xed, 0x01, 0x9b, 0xaa, 0xf1, 0xfa, 0xa9, 0x99, 0x9a, 0x57, 0xf9, 0xc1, 0xb0, 0x56, 0xe7, 0x64, + 0xdf, 0x46, 0x72, 0xba, 0x5f, 0xd5, 0x8c, 0xfd, 0xfb, 0x4c, 0xfe, 0xdb, 0xbe, 0xad, 0x08, 0xcb, + 0xaf, 0x0c, 0x95, 0xc7, 0x9d, 0xac, 0x25, 0xf5, 0x51, 0xcb, 0x48, 0x7e, 0x58, 0x98, 0xe4, 0x95, + 0x15, 0xce, 0x56, 0xea, 0x02, 0x7e, 0xff, 0xd7, 0x48, 0xb6, 0x02, 0xfa, 0x41, 0xd8, 0xbe, 0x16, + 0xfa, 0x7d, 0x39, 0xce, 0x85, 0x7a, 0xf5, 0x50, 0x4f, 0x32, 0xe1, 0x97, 0x54, 0xcc, 0xc8, 0x2b, + 0x16, 0x7b, 0xfb, 0xfd, 0xc6, 0x44, 0x8f, 0xcf, 0xf8, 0x6d, 0xd5, 0x9b, 0x17, 0xbc, 0x88, 0xe6, + 0x4a, 0xb6, 0xac, 0x85, 0x7e, 0x57, 0xbd, 0x14, 0x19, 0x6a, 0x5c, 0xbf, 0x7b, 0xc6, 0x75, 0x4f, + 0x16, 0xdf, 0x1d, 0xbf, 0xf2, 0xa2, 0x25, 0x8b, 0x9d, 0xfd, 0xda, 0x7a, 0x0d, 0xc1, 0xbe, 0xdf, + 0x76, 0xbd, 0x39, 0xc1, 0xba, 0xc4, 0xea, 0xf6, 0xb9, 0xd8, 0x6f, 0x59, 0x25, 0x92, 0xb5, 0x4a, + 0x82, 0x16, 0xc5, 0xdb, 0xea, 0xfe, 0x7e, 0x3d, 0xbd, 0xba, 0xe0, 0x30, 0x7e, 0x95, 0x06, 0xf6, + 0xb8, 0x5f, 0xb3, 0x7d, 0xb6, 0x37, 0xfe, 0xfe, 0x05, 0x7e, 0x39, 0xa6, 0x44, 0xab, 0x17, 0xcb, + 0x5a, 0x74, 0x5e, 0x46, 0x92, 0x5e, 0xda, 0x7f, 0x66, 0x81, 0xd9, 0xfe, 0x33, 0xd9, 0x54, 0xb2, + 0x11, 0xb6, 0xc0, 0xfc, 0x76, 0xe9, 0x3f, 0x0f, 0xf1, 0x5b, 0x59, 0x07, 0x42, 0x63, 0x76, 0x87, + 0xfa, 0x3b, 0xd7, 0x1c, 0x06, 0xd7, 0xcb, 0xd4, 0x18, 0xc8, 0x6f, 0x69, 0xa3, 0x7b, 0x06, 0xa3, + 0xab, 0xf5, 0x04, 0xbf, 0x6b, 0x69, 0xa3, 0x3b, 0x9d, 0xf1, 0xd5, 0xa2, 0x1a, 0xd9, 0x61, 0x88, + 0xe4, 0xf7, 0xc1, 0x08, 0xbf, 0x7a, 0x02, 0xa3, 0xca, 0xaf, 0xf9, 0xe8, 0xf8, 0x9e, 0x2a, 0xd7, + 0xc0, 0x6f, 0x67, 0x86, 0xfb, 0xdd, 0x3f, 0x53, 0x06, 0xfa, 0xcd, 0x77, 0x84, 0xed, 0x53, 0xaf, + 0xe8, 0xf9, 0x68, 0x11, 0x0b, 0x9d, 0x6a, 0xd5, 0x9b, 0xb8, 0x7e, 0x9d, 0xed, 0x66, 0xaa, 0x36, + 0xcc, 0xef, 0xc1, 0x67, 0xd8, 0x16, 0x26, 0xfa, 0x65, 0x4f, 0x83, 0x7c, 0x10, 0xc0, 0xca, 0x7e, + 0x9c, 0xfc, 0xa1, 0x6c, 0xf5, 0xbb, 0xd0, 0xbf, 0xbd, 0x2a, 0xd5, 0x9d, 0x79, 0xf7, 0x5f, 0x65, + 0xac, 0x69, 0x59, 0xe4, 0xce, 0x9e, 0xe3, 0xd7, 0x1b, 0x0a, 0xb1, 0x32, 0x0b, 0xbf, 0x7c, 0x08, + 0x22, 0x1d, 0x62, 0x21, 0x9b, 0x24, 0xcb, 0x6c, 0xeb, 0xe9, 0xf9, 0xdf, 0xa1, 0xe3, 0x3f, 0xb9, + 0x7d, 0xe6, 0xcd, 0x66, 0x5a, 0xfb, 0x53, 0xfc, 0xea, 0x43, 0x81, 0x7b, 0x9c, 0x72, 0xa7, 0x5e, + 0xb6, 0x17, 0x8c, 0xea, 0x10, 0xa2, 0x51, 0x98, 0xe9, 0x57, 0xae, 0x10, 0x49, 0x0d, 0xcc, 0x6e, + 0x9f, 0xa5, 0x5f, 0x51, 0xf8, 0x40, 0xbf, 0x52, 0x92, 0xb0, 0x66, 0xfa, 0xb5, 0x8a, 0xb7, 0xfc, + 0xd2, 0x6b, 0x3a, 0xa9, 0x82, 0x58, 0xe6, 0xd9, 0xcc, 0xa4, 0x06, 0xe6, 0xf9, 0x55, 0x6a, 0x7d, + 0x81, 0xeb, 0x77, 0xab, 0x47, 0xf5, 0xf5, 0xfb, 0x5e, 0x7b, 0xd7, 0x6f, 0x72, 0x4a, 0x89, 0x65, + 0xb6, 0x39, 0xeb, 0x4e, 0xd6, 0xc4, 0x69, 0x7e, 0x2f, 0x72, 0xff, 0xe5, 0xd5, 0xab, 0xb9, 0x7e, + 0x4d, 0xbf, 0xc9, 0x5f, 0xb5, 0x52, 0xba, 0x44, 0xeb, 0x4a, 0x38, 0xcc, 0xc4, 0xf1, 0x0d, 0x7a, + 0x95, 0xcc, 0xe9, 0x3f, 0xbb, 0x87, 0xa7, 0xd9, 0xaf, 0x99, 0x8f, 0xfd, 0x4d, 0xaf, 0x5f, 0xc3, + 0xaf, 0x75, 0x11, 0xb4, 0x31, 0xd8, 0x6f, 0x2d, 0x53, 0xc7, 0x37, 0xb4, 0xe0, 0xe2, 0xfe, 0xf3, + 0x2a, 0xed, 0xec, 0xd9, 0xd8, 0xfd, 0x47, 0x69, 0xeb, 0xc5, 0x72, 0xd2, 0x3e, 0x8b, 0x96, 0xba, + 0x89, 0xa8, 0x7e, 0xc1, 0x07, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, 0xbc, 0x1f, 0x8c, 0xcd, 0x23, + 0xde, 0xef, 0x3f, 0x98, 0x21, 0x7e, 0x1b, 0x19, 0xb3, 0xa7, 0x79, 0xcc, 0xe7, 0x56, 0x2d, 0x54, + 0xeb, 0x68, 0x67, 0x32, 0x16, 0xf5, 0xcd, 0xd5, 0x80, 0xe3, 0xe3, 0x94, 0xdf, 0xb8, 0x68, 0x39, + 0xe2, 0xfa, 0x2d, 0x18, 0x14, 0xe1, 0x91, 0x65, 0x6b, 0xeb, 0x4a, 0x3f, 0x52, 0xb2, 0x03, 0xfc, + 0x52, 0xd2, 0x01, 0x17, 0x27, 0xb0, 0x74, 0x2d, 0x4f, 0xbd, 0xb9, 0xdf, 0x09, 0xf3, 0x53, 0x46, + 0x52, 0xfa, 0x3e, 0xce, 0x18, 0xbc, 0x96, 0xc3, 0x73, 0xd6, 0xe8, 0x33, 0x1f, 0xc8, 0x62, 0x6d, + 0x7d, 0xb2, 0x2c, 0xf3, 0x56, 0x52, 0xab, 0xf7, 0xfc, 0xf9, 0x65, 0x43, 0x49, 0x0f, 0xa4, 0xf1, + 0x7e, 0x41, 0x7b, 0x25, 0x21, 0x56, 0xc8, 0x73, 0x85, 0x8a, 0xe3, 0x9f, 0xa4, 0xdd, 0xd0, 0x07, + 0x3d, 0x1b, 0x06, 0xb2, 0x2a, 0xf5, 0x9e, 0x3f, 0x3f, 0x74, 0x28, 0x85, 0x07, 0x52, 0x5e, 0x8b, + 0x86, 0x5f, 0x25, 0xdf, 0x6e, 0x51, 0x2c, 0x8e, 0xf2, 0x5b, 0x4b, 0x68, 0xbf, 0x4a, 0xfb, 0x6c, + 0x5c, 0xbf, 0x7c, 0x51, 0x69, 0x70, 0xcd, 0xae, 0xf0, 0xeb, 0x13, 0x7e, 0xa7, 0x73, 0xa4, 0x7f, + 0xa5, 0x5f, 0xbf, 0x22, 0x28, 0x49, 0xe5, 0x6d, 0x35, 0xfc, 0x4e, 0xe1, 0xd0, 0xf3, 0x51, 0x71, + 0xfb, 0x0c, 0xbf, 0x27, 0xc3, 0x7b, 0x3f, 0x99, 0x50, 0xfe, 0x7a, 0x6f, 0xb7, 0xf6, 0x4a, 0x54, + 0xca, 0x61, 0xcd, 0x3c, 0x5b, 0x60, 0x7e, 0xfb, 0xf6, 0x9f, 0xab, 0x89, 0xeb, 0x77, 0x2a, 0x13, + 0x8d, 0xd5, 0x01, 0xbf, 0x3d, 0xb8, 0xac, 0x5e, 0xf8, 0xed, 0xc0, 0xf1, 0xf1, 0xe4, 0xf1, 0xc0, + 0x6f, 0x6c, 0xe0, 0x37, 0x36, 0x39, 0xbf, 0x7f, 0x36, 0x72, 0xa8, 0x52, 0xf6, 0x10, 0x22, 0x5d, + 0xdb, 0xb1, 0x55, 0x2c, 0x7a, 0xd7, 0x47, 0xc3, 0x8f, 0xa7, 0x36, 0xf2, 0xad, 0x89, 0x1e, 0x9f, + 0xf1, 0xdb, 0xaa, 0xf7, 0x98, 0x60, 0xe3, 0x29, 0x51, 0x7d, 0x02, 0xed, 0x41, 0xed, 0x53, 0xe9, + 0x79, 0x7e, 0x6d, 0xbd, 0x86, 0x60, 0xdf, 0x6f, 0xbb, 0xde, 0x43, 0x82, 0xcb, 0xfc, 0xf6, 0xe3, + 0x36, 0x7e, 0x3d, 0xbd, 0xba, 0xe0, 0x1b, 0xfa, 0x15, 0x03, 0x0e, 0x0b, 0x1d, 0x37, 0xe0, 0x8b, + 0xe4, 0x6f, 0xc1, 0xf6, 0x5e, 0xcb, 0x4e, 0x69, 0xf9, 0xf8, 0xb5, 0x62, 0x58, 0xb4, 0x9e, 0xa7, + 0xf8, 0x95, 0x51, 0xf6, 0xa2, 0xf6, 0x56, 0xaf, 0xe6, 0xfd, 0x42, 0x32, 0xa8, 0x65, 0xc6, 0x53, + 0xb7, 0xa3, 0x2e, 0xe1, 0x21, 0x7e, 0x8f, 0x57, 0xe7, 0xb8, 0x5f, 0xf2, 0x3e, 0x56, 0xbe, 0x67, + 0x15, 0x03, 0x8f, 0x59, 0xbf, 0x45, 0xdb, 0xd3, 0xbe, 0xab, 0x6a, 0x65, 0xbc, 0x12, 0x54, 0xd5, + 0x55, 0xab, 0xc3, 0xd4, 0x78, 0x37, 0xbf, 0xfb, 0x67, 0xb2, 0xba, 0xd0, 0xaf, 0xf1, 0x56, 0x2f, + 0x77, 0xfd, 0xae, 0xf4, 0xd4, 0xe2, 0xc5, 0xa9, 0xf1, 0xba, 0xdf, 0x8a, 0x7d, 0xad, 0x82, 0x6a, + 0x64, 0x75, 0x7a, 0x9e, 0x5f, 0x9e, 0xa7, 0x78, 0x7b, 0x7a, 0x71, 0xa2, 0xa4, 0x8b, 0x5c, 0xbf, + 0x4f, 0xf7, 0x5b, 0xd9, 0x3e, 0xdb, 0x7e, 0xaf, 0x75, 0xff, 0x25, 0xdb, 0xee, 0xe5, 0x57, 0x7d, + 0xfe, 0x4f, 0xd6, 0x24, 0x11, 0x33, 0xfc, 0xd2, 0xba, 0xa9, 0xfd, 0xe7, 0xb2, 0x0d, 0x2a, 0x65, + 0x78, 0xfd, 0x67, 0x11, 0x95, 0x6c, 0x72, 0x90, 0xe0, 0x71, 0x7e, 0x57, 0xfb, 0x78, 0x9b, 0xdf, + 0x5b, 0x2f, 0xff, 0x72, 0xf4, 0x6b, 0xab, 0x5f, 0xa1, 0x57, 0x61, 0xa8, 0xdf, 0xac, 0xcf, 0x53, + 0xfc, 0xda, 0x37, 0xcc, 0x2e, 0x25, 0x5f, 0x8b, 0x29, 0x7e, 0x79, 0x07, 0x93, 0xb6, 0x4b, 0xb2, + 0xc5, 0x9a, 0x72, 0xfd, 0xb2, 0x07, 0xa8, 0x9e, 0x5d, 0x9b, 0x87, 0xfa, 0xcd, 0x74, 0x43, 0xe8, + 0xe2, 0xb4, 0xf6, 0xf9, 0x29, 0xc0, 0xef, 0x19, 0xcc, 0xbb, 0xd0, 0xe7, 0xf8, 0xe5, 0x7d, 0x53, + 0xfb, 0xfb, 0x71, 0xbf, 0xe9, 0x11, 0xdb, 0xc6, 0x25, 0x06, 0xf4, 0xa4, 0xd4, 0x82, 0x8c, 0x3e, + 0xbc, 0x9d, 0x5f, 0x7d, 0xc6, 0x28, 0xdc, 0x54, 0xe9, 0x9e, 0x4c, 0xbb, 0x7e, 0xd7, 0x92, 0xef, + 0x3d, 0xfd, 0x2a, 0x6b, 0xaf, 0xe2, 0x57, 0x3f, 0x38, 0x15, 0x9b, 0x2a, 0xdf, 0x93, 0x19, 0xcf, + 0x47, 0x33, 0xda, 0xe7, 0xc6, 0xc3, 0xd0, 0x63, 0x6b, 0x0f, 0xf3, 0x4b, 0xda, 0x1e, 0xab, 0xff, + 0xfc, 0xda, 0x60, 0x87, 0xfe, 0xb3, 0x7b, 0x18, 0xc4, 0xd0, 0x45, 0x6e, 0x7c, 0xa3, 0xae, 0xd1, + 0xe4, 0x0f, 0x03, 0xf2, 0x91, 0x40, 0x2b, 0x95, 0x9e, 0xf6, 0x74, 0x0d, 0xbb, 0x5b, 0xb1, 0x1e, + 0x7e, 0xd2, 0xdb, 0x97, 0xcf, 0x1d, 0x26, 0x41, 0xc6, 0x27, 0xb3, 0x7e, 0xc9, 0x57, 0xbd, 0xe5, + 0xd8, 0x16, 0xe5, 0x21, 0x4b, 0x6f, 0xe3, 0xa9, 0x1a, 0x59, 0x4e, 0x52, 0x1a, 0x3d, 0xbd, 0x56, + 0xaa, 0x8b, 0xae, 0xd9, 0x3f, 0x5f, 0xff, 0xe5, 0x6b, 0x9b, 0xbb, 0x92, 0xe3, 0xf9, 0xe5, 0x27, + 0x3c, 0x4b, 0x2c, 0xf4, 0x5b, 0xb3, 0xb5, 0xbc, 0x5f, 0x99, 0x41, 0x5e, 0xfc, 0xdb, 0x3a, 0xb1, + 0x58, 0xe8, 0x37, 0x43, 0x3c, 0xbf, 0xca, 0xda, 0x32, 0xbf, 0xcb, 0xab, 0x85, 0x95, 0x65, 0x64, + 0xae, 0x5f, 0xf9, 0x30, 0xa0, 0x96, 0x96, 0x9e, 0x74, 0xac, 0xa8, 0x43, 0x7e, 0x6b, 0xdb, 0x67, + 0x16, 0xfe, 0x3c, 0xbf, 0x6e, 0x49, 0xe6, 0xd6, 0x68, 0xc3, 0x21, 0x3f, 0x45, 0x69, 0x6a, 0xd2, + 0x7e, 0x0b, 0x21, 0x95, 0x2c, 0xf4, 0x5b, 0x50, 0xdd, 0x20, 0xef, 0xf7, 0x3b, 0xf9, 0x1d, 0xdb, + 0x3e, 0xf7, 0xf6, 0x5b, 0xd2, 0x48, 0xc7, 0xf1, 0x9b, 0x34, 0xa2, 0xab, 0xe1, 0x77, 0xcd, 0xf5, + 0x9f, 0xeb, 0xb6, 0xc6, 0x4a, 0xa0, 0x9f, 0xac, 0x34, 0x12, 0x2e, 0x4a, 0xe1, 0x55, 0x55, 0xfc, + 0x76, 0xec, 0x3f, 0x97, 0x24, 0x14, 0xf8, 0x6d, 0xc4, 0xaf, 0x71, 0x1f, 0xd4, 0x16, 0x76, 0xf2, + 0x86, 0x8b, 0xd6, 0x37, 0xf2, 0xad, 0x8b, 0x96, 0xe3, 0xf6, 0x7e, 0xf5, 0x16, 0xef, 0x64, 0x46, + 0x55, 0xe2, 0x81, 0x7e, 0x57, 0xb5, 0xc5, 0x3b, 0x95, 0x71, 0x95, 0xe8, 0xed, 0xf7, 0xa4, 0xf9, + 0x29, 0xc0, 0xa2, 0x56, 0xef, 0x35, 0xe7, 0x97, 0x01, 0x93, 0x4a, 0xbd, 0x98, 0x1f, 0x1a, 0x1c, + 0xf8, 0x8d, 0x0d, 0xfc, 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, + 0x6c, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x4d, 0xce, 0xef, 0x1f, 0x8d, 0x9c, 0xb5, + 0x5f, 0x51, 0xf9, 0xce, 0x44, 0x8f, 0xcf, 0xf8, 0x6d, 0xd5, 0x0b, 0xc1, 0x7d, 0xb1, 0xf5, 0x1a, + 0x82, 0x7d, 0xbf, 0xed, 0x7a, 0x21, 0xb8, 0x27, 0x9e, 0x5e, 0x5d, 0x30, 0xfc, 0xde, 0x09, 0xf8, + 0x8d, 0xcd, 0x10, 0xbf, 0xc7, 0xab, 0x03, 0xbf, 0x9d, 0x31, 0x35, 0xc2, 0x6f, 0x08, 0x76, 0x8d, + 0xe2, 0x37, 0x40, 0xf0, 0x1b, 0x82, 0x71, 0x7e, 0xb5, 0xdf, 0x23, 0x67, 0x81, 0xdf, 0xce, 0x10, + 0x8d, 0xdc, 0x46, 0xab, 0xdf, 0xe4, 0xd7, 0xdc, 0x45, 0xc0, 0x6f, 0x67, 0xe0, 0x37, 0x36, 0x54, + 0x23, 0x13, 0xdc, 0xc7, 0xef, 0x56, 0xb0, 0x9c, 0x05, 0xa2, 0x2f, 0xc1, 0x6f, 0x6f, 0x86, 0xf9, + 0x25, 0x33, 0xa6, 0xe4, 0x6c, 0x28, 0xf3, 0x03, 0x7e, 0xbb, 0xc3, 0x34, 0x52, 0xc1, 0x3d, 0xfa, + 0xcf, 0x6c, 0x36, 0x94, 0x98, 0xd2, 0xa8, 0x7f, 0x85, 0xdf, 0xce, 0x0c, 0xf5, 0xab, 0x4e, 0x6c, + 0x4c, 0xa6, 0xe9, 0xd1, 0x99, 0x7f, 0xf0, 0xdb, 0x19, 0xae, 0x91, 0x08, 0xee, 0xd9, 0xbf, 0x72, + 0x1a, 0x64, 0xb6, 0x04, 0xbf, 0xdd, 0x39, 0xd7, 0x2f, 0xee, 0xbf, 0xa3, 0x11, 0x1a, 0x77, 0xc1, + 0x3d, 0xc7, 0x37, 0xd4, 0x45, 0xf4, 0x9f, 0x67, 0x30, 0xce, 0x2f, 0xa1, 0xfc, 0x29, 0x18, 0x7e, + 0x3b, 0x23, 0x35, 0x6e, 0x82, 0xe1, 0x37, 0x04, 0xf0, 0x1b, 0x1b, 0xbc, 0x1f, 0x8c, 0x0d, 0xfc, + 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x19, 0xe2, 0xb7, 0x91, 0x31, 0x7b, 0xfa, 0x4c, 0xbe, + 0x73, 0xd1, 0x72, 0xc0, 0xef, 0x9d, 0x80, 0xdf, 0xd8, 0xf4, 0xf6, 0x8b, 0xf9, 0x29, 0x17, 0xa3, + 0x56, 0x2f, 0xe6, 0x97, 0xdd, 0x8c, 0x4a, 0xbd, 0x98, 0x1f, 0x1a, 0x1c, 0xf8, 0x8d, 0x0d, 0xfc, + 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0xe0, 0x37, 0x36, + 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x4d, 0xce, 0xef, 0xef, 0x26, 0xbc, 0x9c, 0xdf, 0x4c, 0x78, 0xdc, + 0xaf, 0x26, 0x3c, 0xee, 0x17, 0x13, 0x1e, 0xf7, 0xb3, 0x09, 0x8f, 0xfb, 0xc9, 0x84, 0xc7, 0xfd, + 0x68, 0xc2, 0xe3, 0x7e, 0x30, 0xe1, 0x71, 0xdf, 0x9b, 0xf0, 0xb8, 0xff, 0x9a, 0xf0, 0xb8, 0xff, + 0x98, 0xac, 0x2a, 0x19, 0xbf, 0xb6, 0x5e, 0x2e, 0xd8, 0xd6, 0xcb, 0x05, 0xdb, 0x7a, 0xb9, 0x60, + 0x5b, 0x2f, 0x17, 0x6c, 0xeb, 0xe5, 0x82, 0x6d, 0xbd, 0x5c, 0xb0, 0xad, 0x97, 0x0b, 0xb6, 0xf5, + 0x72, 0xc1, 0xb6, 0x5e, 0x2e, 0xd8, 0xd6, 0xcb, 0x05, 0xdb, 0x7a, 0x0d, 0xc1, 0xbe, 0x5f, 0x4f, + 0x2f, 0x15, 0xec, 0xe9, 0xa5, 0x82, 0x3d, 0xbd, 0x54, 0xb0, 0xa7, 0x97, 0x0a, 0xf6, 0xf4, 0x52, + 0xc1, 0x9e, 0x5e, 0x2a, 0xd8, 0xd3, 0x4b, 0x05, 0x7b, 0x7a, 0xa9, 0x60, 0x4f, 0x2f, 0x15, 0xec, + 0xe9, 0xa5, 0x82, 0x3d, 0xbd, 0xba, 0x60, 0xf8, 0x85, 0x5f, 0xf8, 0x0d, 0xed, 0x57, 0xcb, 0xa6, + 0xf9, 0xd5, 0xe2, 0x34, 0xbf, 0x5a, 0x9c, 0xe6, 0x57, 0x8b, 0xd3, 0xfc, 0x6a, 0x71, 0x9a, 0x5f, + 0x2d, 0x4e, 0xf3, 0xab, 0xc5, 0x69, 0x7e, 0xb5, 0x38, 0xcd, 0xaf, 0x16, 0xa7, 0xf9, 0xd5, 0xe2, + 0x34, 0xbf, 0x5a, 0x1c, 0xfc, 0xc2, 0x2f, 0xfc, 0xa6, 0x7e, 0x5f, 0x13, 0x7c, 0x66, 0xfa, 0xa5, + 0xf3, 0xf2, 0xe1, 0xb7, 0xde, 0x2f, 0x9d, 0x3f, 0x75, 0x6b, 0xbf, 0x24, 0x10, 0x7e, 0x37, 0x8d, + 0x6c, 0x7a, 0x5c, 0xc6, 0xef, 0x76, 0x04, 0xa7, 0xb6, 0xcf, 0xf0, 0xfb, 0xe2, 0x98, 0xdf, 0xf2, + 0xeb, 0xf7, 0x14, 0xbf, 0xb4, 0x7e, 0x68, 0x9f, 0x47, 0xfa, 0xdd, 0x43, 0xd1, 0xbf, 0xba, 0x8d, + 0x5f, 0x06, 0xfc, 0x3e, 0xd8, 0x2f, 0xb9, 0xd2, 0xe1, 0x17, 0x7e, 0x95, 0x04, 0xf8, 0xd5, 0x13, + 0x2e, 0xe1, 0x97, 0xde, 0xa8, 0x2f, 0xe9, 0x17, 0xfd, 0xe7, 0x17, 0xf0, 0x0b, 0xbf, 0xff, 0x40, + 0x35, 0xb2, 0x7e, 0xf6, 0x25, 0xfd, 0xae, 0xf0, 0xfb, 0xce, 0x35, 0xfc, 0x92, 0x12, 0x3b, 0x5d, + 0xbf, 0x46, 0x02, 0x01, 0x7e, 0x0d, 0xbf, 0xfc, 0xdf, 0x47, 0xbf, 0xa4, 0xdf, 0xb5, 0x20, 0x01, + 0x7e, 0x3b, 0xf8, 0xdd, 0x63, 0xfd, 0xf6, 0x19, 0x7e, 0xdf, 0xb9, 0x80, 0x5f, 0x4e, 0x17, 0xbf, + 0xe4, 0x8c, 0x81, 0xdf, 0x3b, 0xf9, 0x35, 0x13, 0xf0, 0xfc, 0xab, 0x27, 0xc0, 0xaf, 0x9e, 0x00, + 0xbf, 0x7a, 0x02, 0xfc, 0x3a, 0x7e, 0x4d, 0xf6, 0xb8, 0xdf, 0x5c, 0xf6, 0xb8, 0x5f, 0x5d, 0xf6, + 0xb8, 0x5f, 0x5c, 0xf6, 0xb8, 0x9f, 0x5d, 0xf6, 0xb8, 0x9f, 0x5c, 0xf6, 0xb8, 0x1f, 0x5d, 0xf6, + 0xb8, 0x1f, 0x5c, 0xf6, 0xb8, 0xef, 0x5d, 0x84, 0x46, 0x13, 0xa1, 0xd1, 0x04, 0x7e, 0xe1, 0x17, + 0x7e, 0x9f, 0xe4, 0x17, 0xf3, 0x53, 0x54, 0xbd, 0x61, 0xe6, 0xa7, 0x60, 0x7e, 0x99, 0xae, 0x37, + 0xcc, 0xfc, 0x32, 0x70, 0x73, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, 0xcd, 0x2f, 0x04, 0x87, 0x41, + 0xd5, 0x0b, 0xbf, 0x61, 0xd0, 0xfd, 0x42, 0x70, 0x10, 0x0c, 0xbd, 0xf0, 0x1b, 0x04, 0xcb, 0x2f, + 0x04, 0x87, 0xc0, 0xd4, 0x0b, 0xc3, 0x01, 0xf0, 0xec, 0xc2, 0xf0, 0xdd, 0xc9, 0xd9, 0x05, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0xf0, 0x37, 0x6c, + 0x6c, 0x3d, 0x8c }; #endif diff --git a/backends/platform/psp/kbd_ss_c.cpp b/backends/platform/psp/kbd_ss_c.cpp index 7c10227b2c..c8d0bd6111 100644 --- a/backends/platform/psp/kbd_ss_c.cpp +++ b/backends/platform/psp/kbd_ss_c.cpp @@ -3,210 +3,210 @@ unsigned int size_keyboard_symbols_shift_compressed = 3263; unsigned char keyboard_symbols_shift_compressed[] __attribute__((aligned(16))) = { - 0x78, 0x9c, 0xed, 0x9d, 0xe9, 0xb6, 0xac, 0xb8, 0x0d, 0x46, 0x49, 0x0f, 0x49, 0x77, 0x7a, 0x4a, - 0x7a, 0x1e, 0x92, 0xbc, 0xff, 0x13, 0xd2, 0x7f, 0xd3, 0xe7, 0x9c, 0x02, 0x4b, 0xb2, 0x24, 0x1b, - 0x6c, 0x33, 0x88, 0x6f, 0xaf, 0x75, 0xab, 0x28, 0x90, 0x8d, 0x8b, 0x5d, 0x36, 0xc6, 0xe0, 0x73, - 0xff, 0xfc, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1b, 0x31, - 0x83, 0x1b, 0x03, 0xbb, 0xd1, 0x81, 0xdd, 0xe8, 0x40, 0x6f, 0x70, 0xe0, 0x37, 0x36, 0xd0, 0x1b, - 0x1c, 0xf8, 0x8d, 0x0d, 0xf4, 0x06, 0x07, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x29, 0xf9, 0xfd, 0x9b, - 0x09, 0xcf, 0xe7, 0x13, 0x13, 0x1e, 0xf7, 0xa9, 0x09, 0x8f, 0xfb, 0xcc, 0x84, 0xc7, 0x7d, 0x6e, - 0xc2, 0xe3, 0xfe, 0x6e, 0xc2, 0xe3, 0xfe, 0x61, 0xc2, 0xe3, 0xbe, 0x30, 0xe1, 0x71, 0x5f, 0x9a, - 0xf0, 0xb8, 0x7f, 0x9a, 0xf0, 0xb8, 0xaf, 0x4c, 0x66, 0x95, 0x82, 0x5f, 0x5b, 0x2f, 0x17, 0x6c, - 0xeb, 0xe5, 0x82, 0x6d, 0xbd, 0x5c, 0xb0, 0xad, 0x97, 0x0b, 0xb6, 0xf5, 0x72, 0xc1, 0xb6, 0x5e, - 0x2e, 0xd8, 0xd6, 0xcb, 0x05, 0xdb, 0x7a, 0xb9, 0x60, 0x5b, 0x2f, 0x17, 0x6c, 0xeb, 0xe5, 0x82, - 0x6d, 0xbd, 0x86, 0x60, 0xdf, 0xaf, 0xa7, 0x97, 0x0a, 0xf6, 0xf4, 0x52, 0xc1, 0x9e, 0x5e, 0x2a, - 0xd8, 0xd3, 0x4b, 0x05, 0x7b, 0x7a, 0xa9, 0x60, 0x4f, 0x2f, 0x15, 0xec, 0xe9, 0xa5, 0x82, 0x3d, - 0xbd, 0x54, 0xb0, 0xa7, 0x97, 0x0a, 0xf6, 0xf4, 0x52, 0xc1, 0x9e, 0x5e, 0x5d, 0x30, 0xfc, 0xc2, - 0xef, 0xb3, 0xfc, 0x6a, 0x47, 0x29, 0xb4, 0x5f, 0x2d, 0x99, 0xe6, 0x57, 0x8b, 0xd3, 0xfc, 0x6a, - 0x71, 0x9a, 0x5f, 0x2d, 0x4e, 0xf3, 0xab, 0xc5, 0x69, 0x7e, 0xb5, 0xb8, 0x4a, 0xbf, 0xb3, 0xe6, - 0x57, 0x8b, 0xd3, 0xfc, 0x6a, 0x71, 0x9a, 0x5f, 0x2d, 0x4e, 0xf3, 0xab, 0xc5, 0x05, 0xf6, 0xab, - 0x85, 0x5d, 0xd2, 0xef, 0x34, 0x4d, 0xfa, 0x06, 0xa1, 0x91, 0xc6, 0x1d, 0xe9, 0x97, 0xee, 0xf7, - 0x50, 0xbf, 0x64, 0xc7, 0x07, 0xfa, 0x9d, 0xe8, 0xf7, 0x75, 0xfd, 0x92, 0x38, 0xc7, 0x2f, 0xcd, - 0xce, 0xaf, 0xbf, 0x24, 0xf2, 0x82, 0x7e, 0xa7, 0x0f, 0xf2, 0x0d, 0xb3, 0xd0, 0xf8, 0x57, 0xcc, - 0x9a, 0xa3, 0xe7, 0x97, 0x64, 0x67, 0xfb, 0x65, 0x36, 0x5c, 0xbf, 0x2c, 0xd2, 0xf6, 0x4b, 0xbf, - 0x85, 0xeb, 0x97, 0x05, 0xda, 0x7e, 0x79, 0xf9, 0xfc, 0xf6, 0x39, 0xc5, 0x5e, 0xce, 0xef, 0x12, - 0xf4, 0x7a, 0x6f, 0xf7, 0x3b, 0x4d, 0xf4, 0x07, 0x63, 0xf9, 0x4d, 0x21, 0x1f, 0x6f, 0xb6, 0x5f, - 0xee, 0xcd, 0xf4, 0xfb, 0x1e, 0x93, 0x02, 0xe1, 0xf7, 0x43, 0x63, 0x8a, 0xf9, 0x58, 0x6a, 0xf6, - 0x3b, 0xbd, 0x47, 0x4d, 0x4b, 0xc6, 0x86, 0xdf, 0x14, 0xf1, 0x8a, 0x33, 0xfd, 0x0a, 0x6f, 0x1d, - 0xfc, 0xb2, 0x06, 0xc1, 0xf4, 0xcb, 0xf5, 0x96, 0xfa, 0x57, 0x6b, 0xf4, 0xc5, 0xfc, 0x2e, 0x47, - 0x65, 0x3d, 0xde, 0xb6, 0x5f, 0x56, 0x2d, 0xbb, 0xf9, 0x5d, 0x32, 0xb4, 0xfc, 0xb2, 0x4a, 0x3e, - 0x17, 0xfc, 0xf6, 0x6c, 0x9f, 0xe3, 0xf8, 0x65, 0x46, 0x7a, 0xf8, 0xa5, 0xf5, 0xa3, 0xe0, 0x77, - 0x8d, 0x6c, 0xef, 0x5f, 0xb1, 0xdd, 0xc2, 0xef, 0xbb, 0x46, 0x56, 0x8d, 0x0a, 0x7e, 0x59, 0xf3, - 0x5c, 0x3c, 0xff, 0x2a, 0x1b, 0xde, 0x20, 0x7e, 0x79, 0x85, 0x6b, 0xf6, 0xcb, 0xf5, 0xb6, 0xf7, - 0x9f, 0xe1, 0xb7, 0xa9, 0xff, 0x2c, 0xf4, 0x36, 0xfb, 0x95, 0x0d, 0x7e, 0xf3, 0xf5, 0x6f, 0x28, - 0xbf, 0xe9, 0xc8, 0xf4, 0xf0, 0x4b, 0xab, 0xb0, 0x77, 0xfd, 0xfb, 0xda, 0xb3, 0xdf, 0xbf, 0x12, - 0x18, 0x7e, 0xd3, 0x17, 0x80, 0xdf, 0x37, 0x14, 0xbf, 0x85, 0xfe, 0x33, 0x3f, 0xfd, 0xd6, 0xf8, - 0xf5, 0xfa, 0x57, 0x4b, 0xf1, 0xd6, 0xc0, 0x1e, 0x7e, 0xe9, 0xef, 0x0a, 0x7e, 0x17, 0xbf, 0xfc, - 0x82, 0xb5, 0x97, 0xdf, 0x42, 0xff, 0x79, 0x16, 0x6d, 0x47, 0x1f, 0xbf, 0xf3, 0xb3, 0xfc, 0x52, - 0xbc, 0xeb, 0x23, 0x8a, 0xd7, 0x7f, 0xa6, 0xfd, 0x92, 0xc6, 0xeb, 0x23, 0xd2, 0x98, 0xf6, 0xf6, - 0x9b, 0x36, 0xc0, 0x2f, 0x29, 0x58, 0xa9, 0xfe, 0x76, 0xf6, 0xbb, 0x36, 0xa8, 0x7d, 0xfc, 0xb2, - 0x0b, 0xf9, 0x65, 0x43, 0xdb, 0xfd, 0x05, 0x2e, 0xf8, 0xae, 0xe3, 0x57, 0xb2, 0xe1, 0x6d, 0xf6, - 0xcb, 0x9b, 0x7b, 0xef, 0xfa, 0x77, 0xa6, 0x42, 0xfa, 0x5c, 0x1f, 0x75, 0xec, 0x5f, 0xf5, 0xf6, - 0x3b, 0xf1, 0xe3, 0x72, 0xbd, 0xfb, 0x47, 0xb5, 0x7e, 0xeb, 0xae, 0x8f, 0x48, 0xe8, 0xba, 0xe1, - 0x62, 0xf7, 0x07, 0x99, 0xe0, 0x2b, 0xde, 0x3f, 0xa2, 0x3c, 0xe0, 0xfe, 0x20, 0xe3, 0x09, 0xf7, - 0x7f, 0x29, 0xf0, 0x8b, 0xe7, 0x37, 0x94, 0x0d, 0x77, 0x78, 0x3e, 0xc7, 0x7e, 0x00, 0x2b, 0x7d, - 0x0c, 0xe5, 0xd7, 0x24, 0xc5, 0x7d, 0xe2, 0x92, 0xe2, 0x3e, 0x75, 0x49, 0x71, 0x9f, 0xb9, 0xa4, - 0x38, 0xef, 0xe9, 0x3a, 0x3c, 0x3f, 0x09, 0xbf, 0xf0, 0x0b, 0xbf, 0x91, 0xfd, 0x62, 0x7e, 0x8a, - 0xaa, 0x37, 0xcc, 0xfc, 0x14, 0xcc, 0x2f, 0xd3, 0xf5, 0x86, 0x99, 0x5f, 0x06, 0x6e, 0x0e, 0xfc, - 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0xe0, 0x37, 0x36, - 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, 0xc6, 0xa6, 0xe4, 0xf7, 0x7f, 0x8d, 0x9c, 0xf5, 0xbd, - 0xa2, 0xf2, 0xb5, 0x89, 0x1e, 0x5f, 0xf0, 0xdb, 0xaa, 0x17, 0x82, 0xfb, 0x62, 0xeb, 0x35, 0x04, - 0xfb, 0x7e, 0xdb, 0xf5, 0x42, 0x70, 0x4f, 0x3c, 0xbd, 0xba, 0x60, 0xf8, 0xbd, 0x13, 0xf0, 0x1b, - 0x9b, 0x21, 0x7e, 0xf7, 0x17, 0x07, 0x7e, 0x3b, 0x63, 0x6a, 0x84, 0xdf, 0x10, 0xc0, 0x6f, 0x6c, - 0xe0, 0x37, 0x36, 0x43, 0xfd, 0x8a, 0x29, 0xbb, 0xeb, 0x5a, 0xbb, 0x38, 0xf0, 0xdb, 0x19, 0xa6, - 0x91, 0xaa, 0xe8, 0xe3, 0x57, 0xcb, 0x00, 0x7e, 0x0f, 0x04, 0x7e, 0x63, 0x73, 0x94, 0xdf, 0xd4, - 0x50, 0xd3, 0xf7, 0x69, 0xe6, 0x93, 0x39, 0xe1, 0xb7, 0x37, 0x83, 0xfd, 0x12, 0xab, 0xcb, 0xcb, - 0x2c, 0x56, 0xb0, 0xf3, 0x33, 0xfc, 0x76, 0xe6, 0xb8, 0xfa, 0x3b, 0x9b, 0x7e, 0x67, 0x23, 0x39, - 0x68, 0x67, 0xd1, 0x38, 0x51, 0xe8, 0x86, 0x8c, 0x6e, 0x7e, 0xd7, 0xbf, 0x67, 0x30, 0x1b, 0xc9, - 0x41, 0x3b, 0x27, 0xfa, 0xcd, 0x83, 0xe0, 0xb7, 0x3b, 0x68, 0x9f, 0x63, 0x73, 0x44, 0xff, 0x6a, - 0x55, 0xfb, 0xca, 0x9e, 0xf7, 0x9b, 0xe1, 0x77, 0x24, 0x43, 0xfd, 0x6e, 0x07, 0x7e, 0x3b, 0x03, - 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xe0, 0xfe, 0x51, 0x6c, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x9b, 0x21, - 0x7e, 0x1b, 0x19, 0xf3, 0x4d, 0x9f, 0xc9, 0xd7, 0x2e, 0x5a, 0x0a, 0xf8, 0xbd, 0x13, 0xf0, 0x1b, - 0x9b, 0xde, 0x7e, 0x31, 0x3f, 0xe5, 0x62, 0x6c, 0xd5, 0x8b, 0xf9, 0x65, 0x37, 0x63, 0xa3, 0x5e, - 0xcc, 0x0f, 0x0d, 0x0e, 0xfc, 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0x5c, - 0xc0, 0xaf, 0xf7, 0x04, 0x75, 0xfe, 0x3f, 0x66, 0xd9, 0x31, 0x79, 0x64, 0x45, 0xda, 0x35, 0x07, - 0x65, 0x62, 0x86, 0x95, 0x9a, 0x6f, 0xd0, 0xd2, 0x16, 0x92, 0x14, 0xf7, 0xd0, 0x8f, 0xab, 0xfb, - 0xad, 0x71, 0xd4, 0xec, 0x57, 0x4f, 0x5f, 0xe7, 0xd7, 0xda, 0x77, 0x4d, 0x5e, 0x8f, 0xf0, 0x5b, - 0xf8, 0xf5, 0xd7, 0xf9, 0xcd, 0x1e, 0x0d, 0xaa, 0x4d, 0x4b, 0xe2, 0xe0, 0x77, 0x08, 0xc9, 0x2f, - 0x69, 0xe9, 0xe8, 0x92, 0x58, 0x91, 0x37, 0x88, 0xaf, 0xff, 0x2a, 0x8b, 0x26, 0x90, 0xff, 0x9f, - 0x59, 0xa9, 0x08, 0xa2, 0x3c, 0xd4, 0x19, 0x9b, 0xaa, 0xb1, 0x3c, 0x6a, 0xa6, 0xa6, 0x55, 0x1e, - 0x18, 0xd6, 0xca, 0x9c, 0x7d, 0xb7, 0x91, 0x9c, 0xee, 0x57, 0x35, 0x63, 0x3f, 0x9f, 0xc9, 0x9f, - 0xed, 0x5b, 0xb3, 0xb0, 0xfc, 0xca, 0x50, 0x79, 0xdc, 0xc9, 0x5a, 0x52, 0x1e, 0x35, 0x8f, 0xec, - 0xc1, 0xc2, 0x2c, 0xad, 0x2c, 0x70, 0xb1, 0x50, 0x17, 0xf0, 0xfb, 0xdf, 0x46, 0x8a, 0x05, 0xd0, - 0x0f, 0xc2, 0xfa, 0xb1, 0xd2, 0xef, 0xe2, 0xb8, 0x14, 0xea, 0x95, 0x43, 0xfd, 0x91, 0x09, 0xbf, - 0xa4, 0x60, 0x46, 0x5a, 0xb1, 0xd8, 0xdb, 0xef, 0x37, 0x26, 0x7a, 0x7c, 0xc1, 0x6f, 0xab, 0xde, - 0xb2, 0xe0, 0x49, 0x34, 0x57, 0xb2, 0x65, 0xad, 0xf4, 0x3b, 0xeb, 0xb9, 0xc8, 0x50, 0xa3, 0xfe, - 0xa6, 0x84, 0x73, 0xda, 0x2c, 0x3e, 0x3b, 0x7e, 0x65, 0xa5, 0x25, 0x8b, 0x9d, 0xfd, 0xda, 0x7a, - 0x0d, 0xc1, 0xbe, 0xdf, 0x76, 0xbd, 0x25, 0xc1, 0xba, 0xc4, 0xcd, 0xed, 0x73, 0xb5, 0xdf, 0xba, - 0x42, 0x64, 0x6b, 0x95, 0x0d, 0x5a, 0x14, 0x6f, 0xab, 0xfb, 0xfb, 0xf5, 0xf4, 0xea, 0x82, 0xc3, - 0xf8, 0x55, 0x1a, 0xd8, 0xfd, 0x7e, 0xcd, 0xf6, 0xd9, 0xde, 0xf9, 0xeb, 0x03, 0xfc, 0x72, 0x4c, - 0x89, 0x56, 0x2f, 0x96, 0xb5, 0xe8, 0x3c, 0x8f, 0x6c, 0x7b, 0x6d, 0xff, 0x99, 0x05, 0x16, 0xfb, - 0xcf, 0x64, 0x57, 0xd9, 0x4e, 0xd8, 0x02, 0xf3, 0xdb, 0xa5, 0xff, 0x3c, 0xc4, 0xef, 0xc6, 0x32, - 0x10, 0x1a, 0x93, 0x3b, 0x6c, 0x3f, 0x73, 0x1d, 0xc3, 0xe0, 0x72, 0x99, 0x1a, 0x03, 0xf9, 0xad, - 0x6d, 0x74, 0xcf, 0x60, 0x74, 0xb1, 0xa8, 0x46, 0xd6, 0x34, 0x05, 0xf2, 0x3b, 0xd7, 0x36, 0xba, - 0x87, 0x33, 0xbe, 0x58, 0x44, 0x23, 0xdf, 0x59, 0x24, 0xbf, 0x0f, 0x66, 0xb0, 0x5f, 0xf3, 0xd2, - 0xf1, 0xb5, 0x55, 0xae, 0x81, 0xdf, 0xce, 0x0c, 0xf7, 0x9b, 0x5e, 0x73, 0x06, 0xfa, 0x2d, 0x77, - 0x84, 0xed, 0x9f, 0x5e, 0xd5, 0xf5, 0xd1, 0x24, 0x16, 0x3a, 0x95, 0xaa, 0x37, 0x71, 0xfd, 0x3a, - 0xfb, 0x2d, 0x14, 0x6d, 0x98, 0xdf, 0x9d, 0xd7, 0xb0, 0x2d, 0x1c, 0xe8, 0x97, 0x5d, 0x0d, 0xf2, - 0x41, 0x00, 0x2b, 0xf9, 0x7e, 0xca, 0x87, 0xb2, 0xd5, 0xef, 0x44, 0xdf, 0x7b, 0x15, 0xaa, 0x3b, - 0xc7, 0x9d, 0x7f, 0x95, 0xb1, 0xa6, 0x69, 0x92, 0x5f, 0xf6, 0x1c, 0xbf, 0xde, 0x50, 0x88, 0x95, - 0x58, 0xf8, 0xe5, 0x43, 0x10, 0xf9, 0x10, 0x0b, 0xd9, 0x25, 0x59, 0x66, 0x7b, 0xcf, 0x7f, 0xff, - 0x1d, 0x3a, 0xfe, 0xcc, 0xaf, 0xb1, 0x81, 0xd3, 0xd4, 0x3e, 0xf3, 0x66, 0x33, 0x2f, 0xfd, 0x29, - 0x7e, 0xf5, 0xa1, 0xc0, 0x14, 0xa7, 0x9c, 0xa9, 0xa7, 0xf5, 0x06, 0xa3, 0x3a, 0x84, 0x68, 0x64, - 0x66, 0xfa, 0x95, 0x2b, 0xc4, 0xa6, 0x06, 0x56, 0x8d, 0x32, 0xab, 0x41, 0xed, 0xb3, 0xf4, 0x2b, - 0x32, 0x1f, 0xe8, 0x57, 0x4a, 0x12, 0xd6, 0x4c, 0xbf, 0x56, 0xf6, 0x96, 0x5f, 0x5a, 0xa7, 0xb3, - 0x22, 0x88, 0x65, 0x9e, 0xcc, 0xdc, 0xd4, 0xc0, 0x71, 0xf5, 0x57, 0x29, 0xf5, 0x05, 0xea, 0xef, - 0x5a, 0x8e, 0xcd, 0xf5, 0xf7, 0x55, 0x7a, 0xd7, 0x6f, 0xf6, 0x93, 0x12, 0xcb, 0x6c, 0x77, 0xd6, - 0x99, 0xac, 0x89, 0xe3, 0xfa, 0x57, 0xd7, 0x3c, 0xff, 0xf2, 0xe2, 0x6d, 0xa9, 0xbf, 0xa6, 0xdf, - 0xec, 0x5d, 0x2d, 0x94, 0x2e, 0xd1, 0xaa, 0x09, 0xbb, 0x39, 0x70, 0x7c, 0x83, 0xd6, 0x92, 0x63, - 0xfa, 0xcf, 0xee, 0xe1, 0x69, 0xf6, 0x6b, 0xa6, 0x63, 0xef, 0x79, 0xfd, 0x35, 0xfc, 0x5a, 0x95, - 0xa0, 0x8d, 0xa8, 0xe3, 0x93, 0xe5, 0x7e, 0xb0, 0xda, 0x3e, 0x57, 0xa4, 0x4b, 0x89, 0x65, 0xa3, - 0x3c, 0xd1, 0x8d, 0x72, 0x65, 0x96, 0x7b, 0xd6, 0x1d, 0x51, 0xfb, 0xcf, 0xc5, 0x92, 0x14, 0x88, - 0xea, 0x17, 0x7c, 0x00, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0x3c, 0xe2, 0xfe, 0xef, 0x83, 0x79, 0xc2, - 0xf3, 0x1b, 0x4f, 0x66, 0x88, 0xdf, 0x46, 0xc6, 0x7c, 0xd3, 0x32, 0xe6, 0x75, 0xab, 0x16, 0xaa, - 0x75, 0xb4, 0x0b, 0x09, 0xab, 0xfa, 0xe6, 0x6a, 0xc0, 0xfe, 0x71, 0xca, 0x6f, 0x5c, 0xb4, 0x14, - 0x71, 0xfd, 0x56, 0x0c, 0x8a, 0xf0, 0xc8, 0xba, 0xb5, 0xdb, 0x72, 0xdf, 0x93, 0xb3, 0x03, 0xfc, - 0x52, 0xf2, 0x01, 0x17, 0x27, 0xb0, 0x76, 0x2d, 0xdf, 0x7a, 0x73, 0xbf, 0x07, 0xcc, 0x4f, 0x19, - 0x49, 0xed, 0xfd, 0x38, 0x63, 0xf0, 0x5a, 0x0e, 0xcf, 0x59, 0xa3, 0xcf, 0x7c, 0x20, 0x8b, 0xb5, - 0xf5, 0xd9, 0xb2, 0x4c, 0xbb, 0x91, 0xad, 0x7a, 0xcf, 0x9f, 0x5f, 0x36, 0x94, 0xfc, 0x40, 0x1a, - 0xf7, 0x17, 0xb4, 0x5b, 0x12, 0x62, 0x85, 0xfc, 0xad, 0x50, 0x71, 0xfc, 0x95, 0xb4, 0x1b, 0xfa, - 0xa0, 0x67, 0xc3, 0x40, 0xd6, 0x46, 0xbd, 0xe7, 0xcf, 0x0f, 0x1d, 0x4a, 0xe5, 0x81, 0x94, 0x75, - 0xd1, 0xf0, 0xab, 0xa4, 0x4b, 0x16, 0xc5, 0xe2, 0x28, 0xbf, 0x5b, 0x09, 0xed, 0x57, 0x69, 0x9f, - 0x8d, 0xfa, 0xcb, 0x17, 0x95, 0x06, 0xd7, 0xec, 0x0a, 0x2f, 0xaf, 0xf0, 0x7b, 0x38, 0x7b, 0xfa, - 0x57, 0x7a, 0xfd, 0x15, 0x41, 0xd9, 0x56, 0xde, 0x56, 0xc3, 0xef, 0x21, 0xec, 0xba, 0x3e, 0xaa, - 0x6e, 0x9f, 0xe1, 0xf7, 0x64, 0x78, 0xef, 0xa7, 0x10, 0xca, 0x6f, 0xef, 0x25, 0x6b, 0xcb, 0x46, - 0x25, 0x1f, 0xd6, 0xcc, 0xb3, 0x05, 0xe6, 0xb7, 0x6f, 0xff, 0x79, 0x33, 0x71, 0xfd, 0x1e, 0xca, - 0x81, 0xc6, 0xb6, 0x01, 0xbf, 0x3d, 0xb8, 0xac, 0x5e, 0xf8, 0xed, 0xc0, 0xfe, 0xf1, 0xe4, 0xf1, - 0xc0, 0x6f, 0x6c, 0xe0, 0x37, 0x36, 0x25, 0xbf, 0xff, 0x69, 0x64, 0x57, 0xa1, 0xec, 0x21, 0x44, - 0xba, 0xb6, 0x63, 0xab, 0x58, 0x75, 0xaf, 0x8f, 0x86, 0xef, 0xdf, 0xda, 0xc8, 0xb7, 0x26, 0x7a, - 0x7c, 0xc1, 0x6f, 0xab, 0xde, 0x7d, 0x82, 0x8d, 0xab, 0x44, 0xf5, 0x0a, 0xb4, 0x07, 0x5b, 0xaf, - 0x4a, 0xcf, 0xf3, 0x6b, 0xeb, 0x35, 0x04, 0xfb, 0x7e, 0xdb, 0xf5, 0xee, 0x12, 0x5c, 0xe7, 0xb7, - 0x1f, 0xb7, 0xf1, 0xeb, 0xe9, 0xd5, 0x05, 0xdf, 0xd0, 0xaf, 0x18, 0x70, 0x98, 0xe8, 0xb8, 0x01, - 0x5f, 0x24, 0xef, 0x15, 0xfb, 0x5b, 0x96, 0x9d, 0xdc, 0xca, 0xf1, 0xf3, 0x86, 0x61, 0xd1, 0xed, - 0x3c, 0xc5, 0xaf, 0x8c, 0xb2, 0x17, 0xb5, 0xbb, 0x7a, 0x5b, 0xee, 0x2f, 0x64, 0x83, 0x5a, 0x66, - 0x3c, 0x75, 0x3b, 0xaa, 0x0a, 0x0f, 0xf1, 0xbb, 0xbf, 0x38, 0xfb, 0xfd, 0x92, 0xfb, 0xb1, 0xf2, - 0x3e, 0xab, 0x18, 0x78, 0x2c, 0xfa, 0xad, 0xda, 0x9f, 0xf6, 0x59, 0x55, 0x2b, 0xe3, 0x95, 0xa0, - 0x4d, 0x5d, 0xb5, 0x6d, 0x98, 0x1a, 0xef, 0xe6, 0x37, 0xbd, 0x66, 0xab, 0x2b, 0xfd, 0x1a, 0x77, - 0xf5, 0x4a, 0xf5, 0x77, 0xa6, 0x3f, 0x2d, 0x9e, 0x9d, 0x1a, 0xaf, 0xfb, 0xdd, 0xf0, 0x5d, 0x37, - 0x01, 0xbf, 0x32, 0xed, 0x86, 0xfa, 0x2b, 0x55, 0x89, 0xaa, 0x5b, 0xd5, 0x3e, 0x7f, 0xac, 0x3a, - 0xa4, 0xfe, 0xb2, 0xdd, 0x3c, 0xd2, 0xef, 0xc6, 0xf6, 0xd9, 0xf6, 0x7b, 0xad, 0xf3, 0x2f, 0xd9, - 0xf7, 0xa4, 0x6f, 0x20, 0xd4, 0xf9, 0x55, 0xaf, 0xff, 0xb3, 0x35, 0x59, 0xc4, 0x11, 0x7e, 0x69, - 0xd9, 0xd4, 0xfe, 0x73, 0xdd, 0x0e, 0x95, 0x3c, 0xbc, 0xfe, 0xb3, 0x88, 0xca, 0x76, 0x39, 0x48, - 0xf0, 0x38, 0xbf, 0xb3, 0x7d, 0xbc, 0xcd, 0xcf, 0xad, 0xd5, 0xbf, 0x1e, 0xbd, 0x6e, 0xf5, 0xcb, - 0xf4, 0x2a, 0x0c, 0xf5, 0x5b, 0xf4, 0x79, 0x8a, 0x5f, 0xfb, 0x84, 0xd9, 0x25, 0xe7, 0x6b, 0x71, - 0x88, 0x5f, 0xde, 0xc1, 0xa4, 0xed, 0x92, 0x6c, 0xb1, 0x0e, 0xa9, 0xbf, 0xec, 0x02, 0xaa, 0x67, - 0xd7, 0xe6, 0xa1, 0x7e, 0x0b, 0xdd, 0x10, 0xba, 0x78, 0x58, 0xfb, 0xfc, 0x14, 0xe0, 0xf7, 0x0c, - 0x8e, 0xab, 0xe8, 0x42, 0xe3, 0x20, 0xbf, 0xbc, 0x6f, 0x6a, 0x7f, 0xde, 0xef, 0x37, 0x3f, 0x62, - 0xeb, 0xb8, 0xc4, 0x80, 0x9e, 0x94, 0x9a, 0x91, 0xd1, 0x87, 0xb7, 0xd3, 0xab, 0xd7, 0x18, 0x95, - 0xbb, 0xaa, 0xfd, 0x26, 0x52, 0xe3, 0x9a, 0xb0, 0x77, 0xfd, 0x9d, 0x6b, 0x3e, 0xf7, 0xf4, 0xab, - 0xac, 0xbd, 0x8a, 0x5f, 0xfd, 0xe0, 0x6c, 0xd8, 0x55, 0xfd, 0x37, 0x19, 0x5a, 0x7f, 0xe9, 0xe5, - 0xe7, 0xe0, 0xf6, 0xb9, 0xf1, 0x30, 0xf4, 0xd8, 0xdb, 0x0d, 0xfc, 0x0e, 0x1a, 0xdf, 0xb0, 0xfa, - 0xcf, 0xcb, 0x0e, 0x3b, 0xf4, 0x9f, 0xdd, 0xc3, 0x20, 0x86, 0x2e, 0x4a, 0xe3, 0x1b, 0xdb, 0x1a, - 0x4d, 0x7e, 0x31, 0x20, 0x2f, 0x09, 0xb4, 0x5c, 0xe9, 0xcf, 0x9e, 0xae, 0x61, 0x67, 0x2b, 0xd6, - 0xc3, 0xcf, 0x7a, 0xfb, 0xf2, 0xba, 0xc3, 0x64, 0x94, 0xdf, 0x9d, 0x0c, 0xf3, 0x4b, 0x3e, 0xea, - 0x2d, 0xc7, 0xba, 0x28, 0x0f, 0x59, 0x7e, 0x1a, 0xcf, 0xd5, 0xc8, 0x7c, 0xb2, 0xdc, 0xe8, 0xcf, - 0x6b, 0xa6, 0xba, 0xe8, 0x9a, 0xf4, 0xba, 0xfc, 0x2b, 0x97, 0xb6, 0x54, 0x93, 0xe3, 0xf9, 0xe5, - 0x3f, 0x78, 0xb6, 0xb1, 0xd2, 0xef, 0x96, 0xbd, 0x95, 0xfd, 0xca, 0x04, 0xb2, 0xf2, 0xaf, 0xeb, - 0xc4, 0x62, 0xa5, 0xdf, 0x02, 0xf1, 0xfc, 0x2a, 0x6b, 0xeb, 0xfc, 0x4e, 0x4b, 0x0b, 0x2b, 0xf3, - 0x28, 0xd4, 0x5f, 0x79, 0x31, 0xa0, 0xe6, 0x96, 0xff, 0xe8, 0x58, 0x56, 0xbb, 0xfc, 0xa2, 0x7d, - 0xde, 0x5a, 0x7f, 0xed, 0x9c, 0xcc, 0xbd, 0xd1, 0x86, 0x43, 0xbe, 0x8a, 0xdc, 0xd4, 0x4d, 0xe9, - 0x14, 0x42, 0x0a, 0x59, 0xe9, 0xb7, 0xa2, 0xb8, 0xf0, 0x7b, 0x5c, 0xfb, 0xdc, 0xdb, 0x6f, 0x4d, - 0x23, 0x1d, 0xe4, 0xfe, 0xef, 0xac, 0x34, 0xa2, 0xb3, 0xe1, 0x77, 0x2e, 0xf5, 0x9f, 0xb7, 0xed, - 0x8d, 0xe5, 0x40, 0x5f, 0x59, 0x6e, 0x24, 0x5c, 0xe4, 0xc2, 0x8b, 0xaa, 0xf8, 0xed, 0xd8, 0x7f, - 0xae, 0xd9, 0x50, 0xe1, 0xb7, 0x11, 0xbf, 0xc4, 0x7d, 0x50, 0x5b, 0xd8, 0x83, 0x77, 0x5c, 0xb5, - 0xbe, 0x91, 0x6f, 0x5d, 0xb4, 0x14, 0xb7, 0xf7, 0xab, 0xb7, 0x78, 0x27, 0x33, 0xaa, 0x10, 0x0f, - 0xf4, 0x3b, 0xab, 0x2d, 0xde, 0xa9, 0x8c, 0x2b, 0x44, 0x6f, 0xbf, 0x27, 0xcd, 0x4f, 0x01, 0x16, - 0x5b, 0xf5, 0x5e, 0x73, 0x7e, 0x19, 0x30, 0xd9, 0xa8, 0x17, 0xf3, 0x43, 0x83, 0x03, 0xbf, 0xb1, - 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, - 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x29, 0xf9, 0xfd, 0xa3, 0x91, 0xb3, 0xbe, 0x57, 0x54, - 0xbe, 0x33, 0xd1, 0xe3, 0x0b, 0x7e, 0x5b, 0xf5, 0x42, 0x70, 0x5f, 0x6c, 0xbd, 0x86, 0x60, 0xdf, - 0x6f, 0xbb, 0x5e, 0x08, 0xee, 0x89, 0xa7, 0x57, 0x17, 0x0c, 0xbf, 0x77, 0x02, 0x7e, 0x63, 0x33, - 0xc4, 0xef, 0xfe, 0xe2, 0xc0, 0x6f, 0x67, 0x4c, 0x8d, 0xf0, 0x1b, 0x02, 0xa6, 0x91, 0x3e, 0x06, - 0x04, 0xbf, 0x21, 0x18, 0xe7, 0x57, 0x7b, 0x1e, 0xb9, 0x08, 0xfc, 0x76, 0x66, 0x98, 0xdf, 0xec, - 0x69, 0xee, 0x2a, 0xe0, 0xb7, 0x33, 0xf0, 0x1b, 0x9b, 0xc1, 0x7e, 0xd7, 0x7c, 0xe5, 0x2c, 0x10, - 0x7d, 0x09, 0x7e, 0x7b, 0x33, 0xf6, 0xfc, 0xbb, 0xe6, 0x5b, 0xf7, 0x02, 0xbf, 0xdd, 0x19, 0xda, - 0x7f, 0x66, 0xb3, 0xa1, 0xc4, 0x94, 0x46, 0xfd, 0x23, 0xfc, 0x76, 0x66, 0xf0, 0xf5, 0x91, 0x32, - 0xb1, 0x31, 0x9b, 0xa6, 0x47, 0x67, 0xfe, 0xc1, 0x6f, 0x67, 0x0e, 0xe9, 0x5f, 0x39, 0x0d, 0x32, - 0x5b, 0x82, 0xdf, 0xee, 0x9c, 0xeb, 0x17, 0xe7, 0xdf, 0xd1, 0x1c, 0x32, 0xbe, 0xa1, 0x2e, 0xa2, - 0xff, 0x7c, 0x04, 0x87, 0x8c, 0x4f, 0xd6, 0x5f, 0x05, 0xc3, 0x6f, 0x67, 0xe0, 0x37, 0x36, 0xf0, - 0x1b, 0x1b, 0xdc, 0x3f, 0x8a, 0x0d, 0xfc, 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x19, 0xe2, - 0xb7, 0x91, 0x81, 0x5f, 0xf7, 0x71, 0x7c, 0xe7, 0xa2, 0xa5, 0x80, 0xdf, 0x3b, 0x01, 0xbf, 0xb1, - 0xe9, 0xed, 0x17, 0xf3, 0x53, 0x2e, 0xc6, 0x56, 0xbd, 0x98, 0x5f, 0x76, 0x33, 0x36, 0xea, 0xc5, - 0xfc, 0xd0, 0xe0, 0xc0, 0x6f, 0x6c, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, - 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0x4a, 0x7e, 0x7f, - 0x37, 0xe1, 0xf9, 0xfc, 0x66, 0xc2, 0xe3, 0x7e, 0x35, 0xe1, 0x71, 0xbf, 0x98, 0xf0, 0xb8, 0x9f, - 0x4d, 0x78, 0xdc, 0x4f, 0x26, 0x3c, 0xee, 0x47, 0x13, 0x1e, 0xf7, 0x83, 0x09, 0x8f, 0xfb, 0xde, - 0x84, 0xc7, 0xfd, 0xdb, 0x84, 0xc7, 0xfd, 0xcb, 0x64, 0x56, 0x29, 0xf8, 0xb5, 0xf5, 0x72, 0xc1, - 0xb6, 0x5e, 0x2e, 0xd8, 0xd6, 0xcb, 0x05, 0xdb, 0x7a, 0xb9, 0x60, 0x5b, 0x2f, 0x17, 0x6c, 0xeb, - 0xe5, 0x82, 0x6d, 0xbd, 0x5c, 0xb0, 0xad, 0x97, 0x0b, 0xb6, 0xf5, 0x72, 0xc1, 0xb6, 0x5e, 0x2e, - 0xd8, 0xd6, 0x6b, 0x08, 0xf6, 0xfd, 0x7a, 0x7a, 0xa9, 0x60, 0x4f, 0x2f, 0x15, 0xec, 0xe9, 0xa5, - 0x82, 0x3d, 0xbd, 0x54, 0xb0, 0xa7, 0x97, 0x0a, 0xf6, 0xf4, 0x52, 0xc1, 0x9e, 0x5e, 0x2a, 0xd8, - 0xd3, 0x4b, 0x05, 0x7b, 0x7a, 0xa9, 0x60, 0x4f, 0x2f, 0x15, 0xec, 0xe9, 0xd5, 0x05, 0xc3, 0x2f, - 0xfc, 0xc2, 0x6f, 0x68, 0xbf, 0x5a, 0x32, 0xcd, 0xaf, 0x16, 0xa7, 0xf9, 0xd5, 0xe2, 0x34, 0xbf, - 0x5a, 0x9c, 0xe6, 0x57, 0x8b, 0xd3, 0xfc, 0x6a, 0x71, 0x9a, 0x5f, 0x2d, 0x4e, 0xf3, 0xab, 0xc5, - 0x69, 0x7e, 0xb5, 0x38, 0xcd, 0xaf, 0x16, 0xa7, 0xf9, 0xd5, 0xe2, 0xe0, 0x17, 0x7e, 0xe1, 0x97, - 0x69, 0x64, 0x7f, 0x10, 0xca, 0xf6, 0xcb, 0xff, 0x6a, 0x54, 0xc1, 0xef, 0x1a, 0x0c, 0xbf, 0x67, - 0xfb, 0x7d, 0x53, 0x91, 0xdc, 0x39, 0xf5, 0x97, 0x09, 0xf6, 0xfd, 0xa6, 0x50, 0xcf, 0x2f, 0xfd, - 0x53, 0x63, 0xf0, 0x3b, 0xc8, 0x2f, 0xfd, 0xdf, 0x9d, 0x67, 0xbf, 0x7d, 0xa6, 0x82, 0x5d, 0xbf, - 0x24, 0x10, 0x7e, 0x87, 0xf8, 0xcd, 0xfe, 0x8f, 0xed, 0x1e, 0x7e, 0xa9, 0x37, 0xcf, 0x2f, 0xfd, - 0x1d, 0xb8, 0xed, 0xf3, 0x7b, 0xcb, 0xa1, 0x6d, 0x10, 0x1a, 0x49, 0x86, 0xf0, 0xfb, 0x97, 0xc6, - 0x69, 0xe5, 0x6d, 0xdd, 0xd4, 0xcd, 0x2f, 0x39, 0xd0, 0x8e, 0x5f, 0xd6, 0x8e, 0xfb, 0xf5, 0x37, - 0x4d, 0xc1, 0x85, 0xdf, 0x6d, 0x7e, 0xdf, 0x3e, 0x50, 0xcd, 0x7e, 0xff, 0xb9, 0xea, 0xfc, 0xcb, - 0x02, 0x6d, 0xbf, 0xbc, 0x1f, 0x86, 0xfe, 0xd5, 0x10, 0xbf, 0xaf, 0x8f, 0xa9, 0x12, 0xbb, 0x7e, - 0xab, 0xfa, 0xcf, 0x3c, 0xd4, 0xf4, 0x2b, 0xfe, 0x38, 0x2b, 0xfc, 0x9e, 0xdd, 0x7f, 0x9e, 0x37, - 0xf9, 0x5d, 0x62, 0x2d, 0xbf, 0xf2, 0x6f, 0xef, 0xc2, 0xef, 0xf9, 0x7e, 0xa9, 0x13, 0xf8, 0x7d, - 0xb6, 0x5f, 0xb4, 0xcf, 0xef, 0x44, 0xf5, 0x8b, 0xfe, 0xd5, 0x07, 0xb7, 0xf2, 0x4b, 0x39, 0xf2, - 0xfa, 0x88, 0x82, 0xeb, 0xa3, 0x0b, 0xf8, 0xed, 0x3d, 0xbe, 0x31, 0x9b, 0x1b, 0xe0, 0x57, 0xdf, - 0x30, 0xb4, 0x7d, 0xee, 0x3d, 0x3e, 0x49, 0x41, 0xfb, 0x7c, 0xba, 0xdf, 0xee, 0xf7, 0x17, 0x28, - 0xf0, 0x7b, 0x76, 0xfb, 0x8c, 0xfb, 0x83, 0xb1, 0xfd, 0x72, 0x70, 0x7f, 0x1f, 0x7e, 0x95, 0x0d, - 0xa7, 0xfa, 0x35, 0x49, 0x71, 0xbf, 0xb9, 0xa4, 0xb8, 0x5f, 0x5d, 0x52, 0xdc, 0x2f, 0x2e, 0x29, - 0xee, 0x67, 0x97, 0x14, 0xf7, 0x93, 0x4b, 0x8a, 0xfb, 0xd1, 0x25, 0xc5, 0xfd, 0xe0, 0x92, 0xe2, - 0xbe, 0x77, 0x11, 0x1a, 0x4d, 0x84, 0x46, 0x13, 0xf8, 0x85, 0x5f, 0xf8, 0x7d, 0x92, 0x5f, 0xcc, - 0x4f, 0x51, 0xf5, 0x86, 0x99, 0x9f, 0x82, 0xf9, 0x65, 0xba, 0xde, 0x30, 0xf3, 0xcb, 0xc0, 0xcd, - 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0x34, 0xbf, 0x10, 0x1c, 0x06, 0x55, 0x2f, 0xfc, 0x86, 0x41, - 0xf7, 0x0b, 0xc1, 0x41, 0x30, 0xf4, 0xc2, 0x6f, 0x10, 0x2c, 0xbf, 0x10, 0x1c, 0x02, 0x53, 0x2f, - 0x0c, 0x07, 0xc0, 0xb3, 0x0b, 0xc3, 0x77, 0xa7, 0x64, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0xc2, 0xff, 0x01, 0x7c, 0x20, 0xed, 0x46 + 0x78, 0x9c, 0xed, 0x9d, 0xe9, 0xb6, 0xac, 0xb8, 0x0d, 0x46, 0x49, 0x0f, 0x49, 0x77, 0x7a, 0x4a, + 0x7a, 0x1e, 0x92, 0xbc, 0xff, 0x13, 0xd2, 0x7f, 0xd3, 0xe7, 0x9c, 0x02, 0x4b, 0xb2, 0x24, 0x1b, + 0x6c, 0x33, 0x88, 0x6f, 0xaf, 0x75, 0xab, 0x28, 0x90, 0x8d, 0x8b, 0x5d, 0x36, 0xc6, 0xe0, 0x73, + 0xff, 0xfc, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1b, 0x31, + 0x83, 0x1b, 0x03, 0xbb, 0xd1, 0x81, 0xdd, 0xe8, 0x40, 0x6f, 0x70, 0xe0, 0x37, 0x36, 0xd0, 0x1b, + 0x1c, 0xf8, 0x8d, 0x0d, 0xf4, 0x06, 0x07, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x29, 0xf9, 0xfd, 0x9b, + 0x09, 0xcf, 0xe7, 0x13, 0x13, 0x1e, 0xf7, 0xa9, 0x09, 0x8f, 0xfb, 0xcc, 0x84, 0xc7, 0x7d, 0x6e, + 0xc2, 0xe3, 0xfe, 0x6e, 0xc2, 0xe3, 0xfe, 0x61, 0xc2, 0xe3, 0xbe, 0x30, 0xe1, 0x71, 0x5f, 0x9a, + 0xf0, 0xb8, 0x7f, 0x9a, 0xf0, 0xb8, 0xaf, 0x4c, 0x66, 0x95, 0x82, 0x5f, 0x5b, 0x2f, 0x17, 0x6c, + 0xeb, 0xe5, 0x82, 0x6d, 0xbd, 0x5c, 0xb0, 0xad, 0x97, 0x0b, 0xb6, 0xf5, 0x72, 0xc1, 0xb6, 0x5e, + 0x2e, 0xd8, 0xd6, 0xcb, 0x05, 0xdb, 0x7a, 0xb9, 0x60, 0x5b, 0x2f, 0x17, 0x6c, 0xeb, 0xe5, 0x82, + 0x6d, 0xbd, 0x86, 0x60, 0xdf, 0xaf, 0xa7, 0x97, 0x0a, 0xf6, 0xf4, 0x52, 0xc1, 0x9e, 0x5e, 0x2a, + 0xd8, 0xd3, 0x4b, 0x05, 0x7b, 0x7a, 0xa9, 0x60, 0x4f, 0x2f, 0x15, 0xec, 0xe9, 0xa5, 0x82, 0x3d, + 0xbd, 0x54, 0xb0, 0xa7, 0x97, 0x0a, 0xf6, 0xf4, 0x52, 0xc1, 0x9e, 0x5e, 0x5d, 0x30, 0xfc, 0xc2, + 0xef, 0xb3, 0xfc, 0x6a, 0x47, 0x29, 0xb4, 0x5f, 0x2d, 0x99, 0xe6, 0x57, 0x8b, 0xd3, 0xfc, 0x6a, + 0x71, 0x9a, 0x5f, 0x2d, 0x4e, 0xf3, 0xab, 0xc5, 0x69, 0x7e, 0xb5, 0xb8, 0x4a, 0xbf, 0xb3, 0xe6, + 0x57, 0x8b, 0xd3, 0xfc, 0x6a, 0x71, 0x9a, 0x5f, 0x2d, 0x4e, 0xf3, 0xab, 0xc5, 0x05, 0xf6, 0xab, + 0x85, 0x5d, 0xd2, 0xef, 0x34, 0x4d, 0xfa, 0x06, 0xa1, 0x91, 0xc6, 0x1d, 0xe9, 0x97, 0xee, 0xf7, + 0x50, 0xbf, 0x64, 0xc7, 0x07, 0xfa, 0x9d, 0xe8, 0xf7, 0x75, 0xfd, 0x92, 0x38, 0xc7, 0x2f, 0xcd, + 0xce, 0xaf, 0xbf, 0x24, 0xf2, 0x82, 0x7e, 0xa7, 0x0f, 0xf2, 0x0d, 0xb3, 0xd0, 0xf8, 0x57, 0xcc, + 0x9a, 0xa3, 0xe7, 0x97, 0x64, 0x67, 0xfb, 0x65, 0x36, 0x5c, 0xbf, 0x2c, 0xd2, 0xf6, 0x4b, 0xbf, + 0x85, 0xeb, 0x97, 0x05, 0xda, 0x7e, 0x79, 0xf9, 0xfc, 0xf6, 0x39, 0xc5, 0x5e, 0xce, 0xef, 0x12, + 0xf4, 0x7a, 0x6f, 0xf7, 0x3b, 0x4d, 0xf4, 0x07, 0x63, 0xf9, 0x4d, 0x21, 0x1f, 0x6f, 0xb6, 0x5f, + 0xee, 0xcd, 0xf4, 0xfb, 0x1e, 0x93, 0x02, 0xe1, 0xf7, 0x43, 0x63, 0x8a, 0xf9, 0x58, 0x6a, 0xf6, + 0x3b, 0xbd, 0x47, 0x4d, 0x4b, 0xc6, 0x86, 0xdf, 0x14, 0xf1, 0x8a, 0x33, 0xfd, 0x0a, 0x6f, 0x1d, + 0xfc, 0xb2, 0x06, 0xc1, 0xf4, 0xcb, 0xf5, 0x96, 0xfa, 0x57, 0x6b, 0xf4, 0xc5, 0xfc, 0x2e, 0x47, + 0x65, 0x3d, 0xde, 0xb6, 0x5f, 0x56, 0x2d, 0xbb, 0xf9, 0x5d, 0x32, 0xb4, 0xfc, 0xb2, 0x4a, 0x3e, + 0x17, 0xfc, 0xf6, 0x6c, 0x9f, 0xe3, 0xf8, 0x65, 0x46, 0x7a, 0xf8, 0xa5, 0xf5, 0xa3, 0xe0, 0x77, + 0x8d, 0x6c, 0xef, 0x5f, 0xb1, 0xdd, 0xc2, 0xef, 0xbb, 0x46, 0x56, 0x8d, 0x0a, 0x7e, 0x59, 0xf3, + 0x5c, 0x3c, 0xff, 0x2a, 0x1b, 0xde, 0x20, 0x7e, 0x79, 0x85, 0x6b, 0xf6, 0xcb, 0xf5, 0xb6, 0xf7, + 0x9f, 0xe1, 0xb7, 0xa9, 0xff, 0x2c, 0xf4, 0x36, 0xfb, 0x95, 0x0d, 0x7e, 0xf3, 0xf5, 0x6f, 0x28, + 0xbf, 0xe9, 0xc8, 0xf4, 0xf0, 0x4b, 0xab, 0xb0, 0x77, 0xfd, 0xfb, 0xda, 0xb3, 0xdf, 0xbf, 0x12, + 0x18, 0x7e, 0xd3, 0x17, 0x80, 0xdf, 0x37, 0x14, 0xbf, 0x85, 0xfe, 0x33, 0x3f, 0xfd, 0xd6, 0xf8, + 0xf5, 0xfa, 0x57, 0x4b, 0xf1, 0xd6, 0xc0, 0x1e, 0x7e, 0xe9, 0xef, 0x0a, 0x7e, 0x17, 0xbf, 0xfc, + 0x82, 0xb5, 0x97, 0xdf, 0x42, 0xff, 0x79, 0x16, 0x6d, 0x47, 0x1f, 0xbf, 0xf3, 0xb3, 0xfc, 0x52, + 0xbc, 0xeb, 0x23, 0x8a, 0xd7, 0x7f, 0xa6, 0xfd, 0x92, 0xc6, 0xeb, 0x23, 0xd2, 0x98, 0xf6, 0xf6, + 0x9b, 0x36, 0xc0, 0x2f, 0x29, 0x58, 0xa9, 0xfe, 0x76, 0xf6, 0xbb, 0x36, 0xa8, 0x7d, 0xfc, 0xb2, + 0x0b, 0xf9, 0x65, 0x43, 0xdb, 0xfd, 0x05, 0x2e, 0xf8, 0xae, 0xe3, 0x57, 0xb2, 0xe1, 0x6d, 0xf6, + 0xcb, 0x9b, 0x7b, 0xef, 0xfa, 0x77, 0xa6, 0x42, 0xfa, 0x5c, 0x1f, 0x75, 0xec, 0x5f, 0xf5, 0xf6, + 0x3b, 0xf1, 0xe3, 0x72, 0xbd, 0xfb, 0x47, 0xb5, 0x7e, 0xeb, 0xae, 0x8f, 0x48, 0xe8, 0xba, 0xe1, + 0x62, 0xf7, 0x07, 0x99, 0xe0, 0x2b, 0xde, 0x3f, 0xa2, 0x3c, 0xe0, 0xfe, 0x20, 0xe3, 0x09, 0xf7, + 0x7f, 0x29, 0xf0, 0x8b, 0xe7, 0x37, 0x94, 0x0d, 0x77, 0x78, 0x3e, 0xc7, 0x7e, 0x00, 0x2b, 0x7d, + 0x0c, 0xe5, 0xd7, 0x24, 0xc5, 0x7d, 0xe2, 0x92, 0xe2, 0x3e, 0x75, 0x49, 0x71, 0x9f, 0xb9, 0xa4, + 0x38, 0xef, 0xe9, 0x3a, 0x3c, 0x3f, 0x09, 0xbf, 0xf0, 0x0b, 0xbf, 0x91, 0xfd, 0x62, 0x7e, 0x8a, + 0xaa, 0x37, 0xcc, 0xfc, 0x14, 0xcc, 0x2f, 0xd3, 0xf5, 0x86, 0x99, 0x5f, 0x06, 0x6e, 0x0e, 0xfc, + 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0xe0, 0x37, 0x36, + 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, 0xc6, 0xa6, 0xe4, 0xf7, 0x7f, 0x8d, 0x9c, 0xf5, 0xbd, + 0xa2, 0xf2, 0xb5, 0x89, 0x1e, 0x5f, 0xf0, 0xdb, 0xaa, 0x17, 0x82, 0xfb, 0x62, 0xeb, 0x35, 0x04, + 0xfb, 0x7e, 0xdb, 0xf5, 0x42, 0x70, 0x4f, 0x3c, 0xbd, 0xba, 0x60, 0xf8, 0xbd, 0x13, 0xf0, 0x1b, + 0x9b, 0x21, 0x7e, 0xf7, 0x17, 0x07, 0x7e, 0x3b, 0x63, 0x6a, 0x84, 0xdf, 0x10, 0xc0, 0x6f, 0x6c, + 0xe0, 0x37, 0x36, 0x43, 0xfd, 0x8a, 0x29, 0xbb, 0xeb, 0x5a, 0xbb, 0x38, 0xf0, 0xdb, 0x19, 0xa6, + 0x91, 0xaa, 0xe8, 0xe3, 0x57, 0xcb, 0x00, 0x7e, 0x0f, 0x04, 0x7e, 0x63, 0x73, 0x94, 0xdf, 0xd4, + 0x50, 0xd3, 0xf7, 0x69, 0xe6, 0x93, 0x39, 0xe1, 0xb7, 0x37, 0x83, 0xfd, 0x12, 0xab, 0xcb, 0xcb, + 0x2c, 0x56, 0xb0, 0xf3, 0x33, 0xfc, 0x76, 0xe6, 0xb8, 0xfa, 0x3b, 0x9b, 0x7e, 0x67, 0x23, 0x39, + 0x68, 0x67, 0xd1, 0x38, 0x51, 0xe8, 0x86, 0x8c, 0x6e, 0x7e, 0xd7, 0xbf, 0x67, 0x30, 0x1b, 0xc9, + 0x41, 0x3b, 0x27, 0xfa, 0xcd, 0x83, 0xe0, 0xb7, 0x3b, 0x68, 0x9f, 0x63, 0x73, 0x44, 0xff, 0x6a, + 0x55, 0xfb, 0xca, 0x9e, 0xf7, 0x9b, 0xe1, 0x77, 0x24, 0x43, 0xfd, 0x6e, 0x07, 0x7e, 0x3b, 0x03, + 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xe0, 0xfe, 0x51, 0x6c, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x9b, 0x21, + 0x7e, 0x1b, 0x19, 0xf3, 0x4d, 0x9f, 0xc9, 0xd7, 0x2e, 0x5a, 0x0a, 0xf8, 0xbd, 0x13, 0xf0, 0x1b, + 0x9b, 0xde, 0x7e, 0x31, 0x3f, 0xe5, 0x62, 0x6c, 0xd5, 0x8b, 0xf9, 0x65, 0x37, 0x63, 0xa3, 0x5e, + 0xcc, 0x0f, 0x0d, 0x0e, 0xfc, 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0x5c, + 0xc0, 0xaf, 0xf7, 0x04, 0x75, 0xfe, 0x3f, 0x66, 0xd9, 0x31, 0x79, 0x64, 0x45, 0xda, 0x35, 0x07, + 0x65, 0x62, 0x86, 0x95, 0x9a, 0x6f, 0xd0, 0xd2, 0x16, 0x92, 0x14, 0xf7, 0xd0, 0x8f, 0xab, 0xfb, + 0xad, 0x71, 0xd4, 0xec, 0x57, 0x4f, 0x5f, 0xe7, 0xd7, 0xda, 0x77, 0x4d, 0x5e, 0x8f, 0xf0, 0x5b, + 0xf8, 0xf5, 0xd7, 0xf9, 0xcd, 0x1e, 0x0d, 0xaa, 0x4d, 0x4b, 0xe2, 0xe0, 0x77, 0x08, 0xc9, 0x2f, + 0x69, 0xe9, 0xe8, 0x92, 0x58, 0x91, 0x37, 0x88, 0xaf, 0xff, 0x2a, 0x8b, 0x26, 0x90, 0xff, 0x9f, + 0x59, 0xa9, 0x08, 0xa2, 0x3c, 0xd4, 0x19, 0x9b, 0xaa, 0xb1, 0x3c, 0x6a, 0xa6, 0xa6, 0x55, 0x1e, + 0x18, 0xd6, 0xca, 0x9c, 0x7d, 0xb7, 0x91, 0x9c, 0xee, 0x57, 0x35, 0x63, 0x3f, 0x9f, 0xc9, 0x9f, + 0xed, 0x5b, 0xb3, 0xb0, 0xfc, 0xca, 0x50, 0x79, 0xdc, 0xc9, 0x5a, 0x52, 0x1e, 0x35, 0x8f, 0xec, + 0xc1, 0xc2, 0x2c, 0xad, 0x2c, 0x70, 0xb1, 0x50, 0x17, 0xf0, 0xfb, 0xdf, 0x46, 0x8a, 0x05, 0xd0, + 0x0f, 0xc2, 0xfa, 0xb1, 0xd2, 0xef, 0xe2, 0xb8, 0x14, 0xea, 0x95, 0x43, 0xfd, 0x91, 0x09, 0xbf, + 0xa4, 0x60, 0x46, 0x5a, 0xb1, 0xd8, 0xdb, 0xef, 0x37, 0x26, 0x7a, 0x7c, 0xc1, 0x6f, 0xab, 0xde, + 0xb2, 0xe0, 0x49, 0x34, 0x57, 0xb2, 0x65, 0xad, 0xf4, 0x3b, 0xeb, 0xb9, 0xc8, 0x50, 0xa3, 0xfe, + 0xa6, 0x84, 0x73, 0xda, 0x2c, 0x3e, 0x3b, 0x7e, 0x65, 0xa5, 0x25, 0x8b, 0x9d, 0xfd, 0xda, 0x7a, + 0x0d, 0xc1, 0xbe, 0xdf, 0x76, 0xbd, 0x25, 0xc1, 0xba, 0xc4, 0xcd, 0xed, 0x73, 0xb5, 0xdf, 0xba, + 0x42, 0x64, 0x6b, 0x95, 0x0d, 0x5a, 0x14, 0x6f, 0xab, 0xfb, 0xfb, 0xf5, 0xf4, 0xea, 0x82, 0xc3, + 0xf8, 0x55, 0x1a, 0xd8, 0xfd, 0x7e, 0xcd, 0xf6, 0xd9, 0xde, 0xf9, 0xeb, 0x03, 0xfc, 0x72, 0x4c, + 0x89, 0x56, 0x2f, 0x96, 0xb5, 0xe8, 0x3c, 0x8f, 0x6c, 0x7b, 0x6d, 0xff, 0x99, 0x05, 0x16, 0xfb, + 0xcf, 0x64, 0x57, 0xd9, 0x4e, 0xd8, 0x02, 0xf3, 0xdb, 0xa5, 0xff, 0x3c, 0xc4, 0xef, 0xc6, 0x32, + 0x10, 0x1a, 0x93, 0x3b, 0x6c, 0x3f, 0x73, 0x1d, 0xc3, 0xe0, 0x72, 0x99, 0x1a, 0x03, 0xf9, 0xad, + 0x6d, 0x74, 0xcf, 0x60, 0x74, 0xb1, 0xa8, 0x46, 0xd6, 0x34, 0x05, 0xf2, 0x3b, 0xd7, 0x36, 0xba, + 0x87, 0x33, 0xbe, 0x58, 0x44, 0x23, 0xdf, 0x59, 0x24, 0xbf, 0x0f, 0x66, 0xb0, 0x5f, 0xf3, 0xd2, + 0xf1, 0xb5, 0x55, 0xae, 0x81, 0xdf, 0xce, 0x0c, 0xf7, 0x9b, 0x5e, 0x73, 0x06, 0xfa, 0x2d, 0x77, + 0x84, 0xed, 0x9f, 0x5e, 0xd5, 0xf5, 0xd1, 0x24, 0x16, 0x3a, 0x95, 0xaa, 0x37, 0x71, 0xfd, 0x3a, + 0xfb, 0x2d, 0x14, 0x6d, 0x98, 0xdf, 0x9d, 0xd7, 0xb0, 0x2d, 0x1c, 0xe8, 0x97, 0x5d, 0x0d, 0xf2, + 0x41, 0x00, 0x2b, 0xf9, 0x7e, 0xca, 0x87, 0xb2, 0xd5, 0xef, 0x44, 0xdf, 0x7b, 0x15, 0xaa, 0x3b, + 0xc7, 0x9d, 0x7f, 0x95, 0xb1, 0xa6, 0x69, 0x92, 0x5f, 0xf6, 0x1c, 0xbf, 0xde, 0x50, 0x88, 0x95, + 0x58, 0xf8, 0xe5, 0x43, 0x10, 0xf9, 0x10, 0x0b, 0xd9, 0x25, 0x59, 0x66, 0x7b, 0xcf, 0x7f, 0xff, + 0x1d, 0x3a, 0xfe, 0xcc, 0xaf, 0xb1, 0x81, 0xd3, 0xd4, 0x3e, 0xf3, 0x66, 0x33, 0x2f, 0xfd, 0x29, + 0x7e, 0xf5, 0xa1, 0xc0, 0x14, 0xa7, 0x9c, 0xa9, 0xa7, 0xf5, 0x06, 0xa3, 0x3a, 0x84, 0x68, 0x64, + 0x66, 0xfa, 0x95, 0x2b, 0xc4, 0xa6, 0x06, 0x56, 0x8d, 0x32, 0xab, 0x41, 0xed, 0xb3, 0xf4, 0x2b, + 0x32, 0x1f, 0xe8, 0x57, 0x4a, 0x12, 0xd6, 0x4c, 0xbf, 0x56, 0xf6, 0x96, 0x5f, 0x5a, 0xa7, 0xb3, + 0x22, 0x88, 0x65, 0x9e, 0xcc, 0xdc, 0xd4, 0xc0, 0x71, 0xf5, 0x57, 0x29, 0xf5, 0x05, 0xea, 0xef, + 0x5a, 0x8e, 0xcd, 0xf5, 0xf7, 0x55, 0x7a, 0xd7, 0x6f, 0xf6, 0x93, 0x12, 0xcb, 0x6c, 0x77, 0xd6, + 0x99, 0xac, 0x89, 0xe3, 0xfa, 0x57, 0xd7, 0x3c, 0xff, 0xf2, 0xe2, 0x6d, 0xa9, 0xbf, 0xa6, 0xdf, + 0xec, 0x5d, 0x2d, 0x94, 0x2e, 0xd1, 0xaa, 0x09, 0xbb, 0x39, 0x70, 0x7c, 0x83, 0xd6, 0x92, 0x63, + 0xfa, 0xcf, 0xee, 0xe1, 0x69, 0xf6, 0x6b, 0xa6, 0x63, 0xef, 0x79, 0xfd, 0x35, 0xfc, 0x5a, 0x95, + 0xa0, 0x8d, 0xa8, 0xe3, 0x93, 0xe5, 0x7e, 0xb0, 0xda, 0x3e, 0x57, 0xa4, 0x4b, 0x89, 0x65, 0xa3, + 0x3c, 0xd1, 0x8d, 0x72, 0x65, 0x96, 0x7b, 0xd6, 0x1d, 0x51, 0xfb, 0xcf, 0xc5, 0x92, 0x14, 0x88, + 0xea, 0x17, 0x7c, 0x00, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0x3c, 0xe2, 0xfe, 0xef, 0x83, 0x79, 0xc2, + 0xf3, 0x1b, 0x4f, 0x66, 0x88, 0xdf, 0x46, 0xc6, 0x7c, 0xd3, 0x32, 0xe6, 0x75, 0xab, 0x16, 0xaa, + 0x75, 0xb4, 0x0b, 0x09, 0xab, 0xfa, 0xe6, 0x6a, 0xc0, 0xfe, 0x71, 0xca, 0x6f, 0x5c, 0xb4, 0x14, + 0x71, 0xfd, 0x56, 0x0c, 0x8a, 0xf0, 0xc8, 0xba, 0xb5, 0xdb, 0x72, 0xdf, 0x93, 0xb3, 0x03, 0xfc, + 0x52, 0xf2, 0x01, 0x17, 0x27, 0xb0, 0x76, 0x2d, 0xdf, 0x7a, 0x73, 0xbf, 0x07, 0xcc, 0x4f, 0x19, + 0x49, 0xed, 0xfd, 0x38, 0x63, 0xf0, 0x5a, 0x0e, 0xcf, 0x59, 0xa3, 0xcf, 0x7c, 0x20, 0x8b, 0xb5, + 0xf5, 0xd9, 0xb2, 0x4c, 0xbb, 0x91, 0xad, 0x7a, 0xcf, 0x9f, 0x5f, 0x36, 0x94, 0xfc, 0x40, 0x1a, + 0xf7, 0x17, 0xb4, 0x5b, 0x12, 0x62, 0x85, 0xfc, 0xad, 0x50, 0x71, 0xfc, 0x95, 0xb4, 0x1b, 0xfa, + 0xa0, 0x67, 0xc3, 0x40, 0xd6, 0x46, 0xbd, 0xe7, 0xcf, 0x0f, 0x1d, 0x4a, 0xe5, 0x81, 0x94, 0x75, + 0xd1, 0xf0, 0xab, 0xa4, 0x4b, 0x16, 0xc5, 0xe2, 0x28, 0xbf, 0x5b, 0x09, 0xed, 0x57, 0x69, 0x9f, + 0x8d, 0xfa, 0xcb, 0x17, 0x95, 0x06, 0xd7, 0xec, 0x0a, 0x2f, 0xaf, 0xf0, 0x7b, 0x38, 0x7b, 0xfa, + 0x57, 0x7a, 0xfd, 0x15, 0x41, 0xd9, 0x56, 0xde, 0x56, 0xc3, 0xef, 0x21, 0xec, 0xba, 0x3e, 0xaa, + 0x6e, 0x9f, 0xe1, 0xf7, 0x64, 0x78, 0xef, 0xa7, 0x10, 0xca, 0x6f, 0xef, 0x25, 0x6b, 0xcb, 0x46, + 0x25, 0x1f, 0xd6, 0xcc, 0xb3, 0x05, 0xe6, 0xb7, 0x6f, 0xff, 0x79, 0x33, 0x71, 0xfd, 0x1e, 0xca, + 0x81, 0xc6, 0xb6, 0x01, 0xbf, 0x3d, 0xb8, 0xac, 0x5e, 0xf8, 0xed, 0xc0, 0xfe, 0xf1, 0xe4, 0xf1, + 0xc0, 0x6f, 0x6c, 0xe0, 0x37, 0x36, 0x25, 0xbf, 0xff, 0x69, 0x64, 0x57, 0xa1, 0xec, 0x21, 0x44, + 0xba, 0xb6, 0x63, 0xab, 0x58, 0x75, 0xaf, 0x8f, 0x86, 0xef, 0xdf, 0xda, 0xc8, 0xb7, 0x26, 0x7a, + 0x7c, 0xc1, 0x6f, 0xab, 0xde, 0x7d, 0x82, 0x8d, 0xab, 0x44, 0xf5, 0x0a, 0xb4, 0x07, 0x5b, 0xaf, + 0x4a, 0xcf, 0xf3, 0x6b, 0xeb, 0x35, 0x04, 0xfb, 0x7e, 0xdb, 0xf5, 0xee, 0x12, 0x5c, 0xe7, 0xb7, + 0x1f, 0xb7, 0xf1, 0xeb, 0xe9, 0xd5, 0x05, 0xdf, 0xd0, 0xaf, 0x18, 0x70, 0x98, 0xe8, 0xb8, 0x01, + 0x5f, 0x24, 0xef, 0x15, 0xfb, 0x5b, 0x96, 0x9d, 0xdc, 0xca, 0xf1, 0xf3, 0x86, 0x61, 0xd1, 0xed, + 0x3c, 0xc5, 0xaf, 0x8c, 0xb2, 0x17, 0xb5, 0xbb, 0x7a, 0x5b, 0xee, 0x2f, 0x64, 0x83, 0x5a, 0x66, + 0x3c, 0x75, 0x3b, 0xaa, 0x0a, 0x0f, 0xf1, 0xbb, 0xbf, 0x38, 0xfb, 0xfd, 0x92, 0xfb, 0xb1, 0xf2, + 0x3e, 0xab, 0x18, 0x78, 0x2c, 0xfa, 0xad, 0xda, 0x9f, 0xf6, 0x59, 0x55, 0x2b, 0xe3, 0x95, 0xa0, + 0x4d, 0x5d, 0xb5, 0x6d, 0x98, 0x1a, 0xef, 0xe6, 0x37, 0xbd, 0x66, 0xab, 0x2b, 0xfd, 0x1a, 0x77, + 0xf5, 0x4a, 0xf5, 0x77, 0xa6, 0x3f, 0x2d, 0x9e, 0x9d, 0x1a, 0xaf, 0xfb, 0xdd, 0xf0, 0x5d, 0x37, + 0x01, 0xbf, 0x32, 0xed, 0x86, 0xfa, 0x2b, 0x55, 0x89, 0xaa, 0x5b, 0xd5, 0x3e, 0x7f, 0xac, 0x3a, + 0xa4, 0xfe, 0xb2, 0xdd, 0x3c, 0xd2, 0xef, 0xc6, 0xf6, 0xd9, 0xf6, 0x7b, 0xad, 0xf3, 0x2f, 0xd9, + 0xf7, 0xa4, 0x6f, 0x20, 0xd4, 0xf9, 0x55, 0xaf, 0xff, 0xb3, 0x35, 0x59, 0xc4, 0x11, 0x7e, 0x69, + 0xd9, 0xd4, 0xfe, 0x73, 0xdd, 0x0e, 0x95, 0x3c, 0xbc, 0xfe, 0xb3, 0x88, 0xca, 0x76, 0x39, 0x48, + 0xf0, 0x38, 0xbf, 0xb3, 0x7d, 0xbc, 0xcd, 0xcf, 0xad, 0xd5, 0xbf, 0x1e, 0xbd, 0x6e, 0xf5, 0xcb, + 0xf4, 0x2a, 0x0c, 0xf5, 0x5b, 0xf4, 0x79, 0x8a, 0x5f, 0xfb, 0x84, 0xd9, 0x25, 0xe7, 0x6b, 0x71, + 0x88, 0x5f, 0xde, 0xc1, 0xa4, 0xed, 0x92, 0x6c, 0xb1, 0x0e, 0xa9, 0xbf, 0xec, 0x02, 0xaa, 0x67, + 0xd7, 0xe6, 0xa1, 0x7e, 0x0b, 0xdd, 0x10, 0xba, 0x78, 0x58, 0xfb, 0xfc, 0x14, 0xe0, 0xf7, 0x0c, + 0x8e, 0xab, 0xe8, 0x42, 0xe3, 0x20, 0xbf, 0xbc, 0x6f, 0x6a, 0x7f, 0xde, 0xef, 0x37, 0x3f, 0x62, + 0xeb, 0xb8, 0xc4, 0x80, 0x9e, 0x94, 0x9a, 0x91, 0xd1, 0x87, 0xb7, 0xd3, 0xab, 0xd7, 0x18, 0x95, + 0xbb, 0xaa, 0xfd, 0x26, 0x52, 0xe3, 0x9a, 0xb0, 0x77, 0xfd, 0x9d, 0x6b, 0x3e, 0xf7, 0xf4, 0xab, + 0xac, 0xbd, 0x8a, 0x5f, 0xfd, 0xe0, 0x6c, 0xd8, 0x55, 0xfd, 0x37, 0x19, 0x5a, 0x7f, 0xe9, 0xe5, + 0xe7, 0xe0, 0xf6, 0xb9, 0xf1, 0x30, 0xf4, 0xd8, 0xdb, 0x0d, 0xfc, 0x0e, 0x1a, 0xdf, 0xb0, 0xfa, + 0xcf, 0xcb, 0x0e, 0x3b, 0xf4, 0x9f, 0xdd, 0xc3, 0x20, 0x86, 0x2e, 0x4a, 0xe3, 0x1b, 0xdb, 0x1a, + 0x4d, 0x7e, 0x31, 0x20, 0x2f, 0x09, 0xb4, 0x5c, 0xe9, 0xcf, 0x9e, 0xae, 0x61, 0x67, 0x2b, 0xd6, + 0xc3, 0xcf, 0x7a, 0xfb, 0xf2, 0xba, 0xc3, 0x64, 0x94, 0xdf, 0x9d, 0x0c, 0xf3, 0x4b, 0x3e, 0xea, + 0x2d, 0xc7, 0xba, 0x28, 0x0f, 0x59, 0x7e, 0x1a, 0xcf, 0xd5, 0xc8, 0x7c, 0xb2, 0xdc, 0xe8, 0xcf, + 0x6b, 0xa6, 0xba, 0xe8, 0x9a, 0xf4, 0xba, 0xfc, 0x2b, 0x97, 0xb6, 0x54, 0x93, 0xe3, 0xf9, 0xe5, + 0x3f, 0x78, 0xb6, 0xb1, 0xd2, 0xef, 0x96, 0xbd, 0x95, 0xfd, 0xca, 0x04, 0xb2, 0xf2, 0xaf, 0xeb, + 0xc4, 0x62, 0xa5, 0xdf, 0x02, 0xf1, 0xfc, 0x2a, 0x6b, 0xeb, 0xfc, 0x4e, 0x4b, 0x0b, 0x2b, 0xf3, + 0x28, 0xd4, 0x5f, 0x79, 0x31, 0xa0, 0xe6, 0x96, 0xff, 0xe8, 0x58, 0x56, 0xbb, 0xfc, 0xa2, 0x7d, + 0xde, 0x5a, 0x7f, 0xed, 0x9c, 0xcc, 0xbd, 0xd1, 0x86, 0x43, 0xbe, 0x8a, 0xdc, 0xd4, 0x4d, 0xe9, + 0x14, 0x42, 0x0a, 0x59, 0xe9, 0xb7, 0xa2, 0xb8, 0xf0, 0x7b, 0x5c, 0xfb, 0xdc, 0xdb, 0x6f, 0x4d, + 0x23, 0x1d, 0xe4, 0xfe, 0xef, 0xac, 0x34, 0xa2, 0xb3, 0xe1, 0x77, 0x2e, 0xf5, 0x9f, 0xb7, 0xed, + 0x8d, 0xe5, 0x40, 0x5f, 0x59, 0x6e, 0x24, 0x5c, 0xe4, 0xc2, 0x8b, 0xaa, 0xf8, 0xed, 0xd8, 0x7f, + 0xae, 0xd9, 0x50, 0xe1, 0xb7, 0x11, 0xbf, 0xc4, 0x7d, 0x50, 0x5b, 0xd8, 0x83, 0x77, 0x5c, 0xb5, + 0xbe, 0x91, 0x6f, 0x5d, 0xb4, 0x14, 0xb7, 0xf7, 0xab, 0xb7, 0x78, 0x27, 0x33, 0xaa, 0x10, 0x0f, + 0xf4, 0x3b, 0xab, 0x2d, 0xde, 0xa9, 0x8c, 0x2b, 0x44, 0x6f, 0xbf, 0x27, 0xcd, 0x4f, 0x01, 0x16, + 0x5b, 0xf5, 0x5e, 0x73, 0x7e, 0x19, 0x30, 0xd9, 0xa8, 0x17, 0xf3, 0x43, 0x83, 0x03, 0xbf, 0xb1, + 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, + 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x29, 0xf9, 0xfd, 0xa3, 0x91, 0xb3, 0xbe, 0x57, 0x54, + 0xbe, 0x33, 0xd1, 0xe3, 0x0b, 0x7e, 0x5b, 0xf5, 0x42, 0x70, 0x5f, 0x6c, 0xbd, 0x86, 0x60, 0xdf, + 0x6f, 0xbb, 0x5e, 0x08, 0xee, 0x89, 0xa7, 0x57, 0x17, 0x0c, 0xbf, 0x77, 0x02, 0x7e, 0x63, 0x33, + 0xc4, 0xef, 0xfe, 0xe2, 0xc0, 0x6f, 0x67, 0x4c, 0x8d, 0xf0, 0x1b, 0x02, 0xa6, 0x91, 0x3e, 0x06, + 0x04, 0xbf, 0x21, 0x18, 0xe7, 0x57, 0x7b, 0x1e, 0xb9, 0x08, 0xfc, 0x76, 0x66, 0x98, 0xdf, 0xec, + 0x69, 0xee, 0x2a, 0xe0, 0xb7, 0x33, 0xf0, 0x1b, 0x9b, 0xc1, 0x7e, 0xd7, 0x7c, 0xe5, 0x2c, 0x10, + 0x7d, 0x09, 0x7e, 0x7b, 0x33, 0xf6, 0xfc, 0xbb, 0xe6, 0x5b, 0xf7, 0x02, 0xbf, 0xdd, 0x19, 0xda, + 0x7f, 0x66, 0xb3, 0xa1, 0xc4, 0x94, 0x46, 0xfd, 0x23, 0xfc, 0x76, 0x66, 0xf0, 0xf5, 0x91, 0x32, + 0xb1, 0x31, 0x9b, 0xa6, 0x47, 0x67, 0xfe, 0xc1, 0x6f, 0x67, 0x0e, 0xe9, 0x5f, 0x39, 0x0d, 0x32, + 0x5b, 0x82, 0xdf, 0xee, 0x9c, 0xeb, 0x17, 0xe7, 0xdf, 0xd1, 0x1c, 0x32, 0xbe, 0xa1, 0x2e, 0xa2, + 0xff, 0x7c, 0x04, 0x87, 0x8c, 0x4f, 0xd6, 0x5f, 0x05, 0xc3, 0x6f, 0x67, 0xe0, 0x37, 0x36, 0xf0, + 0x1b, 0x1b, 0xdc, 0x3f, 0x8a, 0x0d, 0xfc, 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x19, 0xe2, + 0xb7, 0x91, 0x81, 0x5f, 0xf7, 0x71, 0x7c, 0xe7, 0xa2, 0xa5, 0x80, 0xdf, 0x3b, 0x01, 0xbf, 0xb1, + 0xe9, 0xed, 0x17, 0xf3, 0x53, 0x2e, 0xc6, 0x56, 0xbd, 0x98, 0x5f, 0x76, 0x33, 0x36, 0xea, 0xc5, + 0xfc, 0xd0, 0xe0, 0xc0, 0x6f, 0x6c, 0xe0, 0x37, 0x36, 0xf0, 0x1b, 0x1b, 0xf8, 0x8d, 0x0d, 0xfc, + 0xc6, 0x06, 0x7e, 0x63, 0x03, 0xbf, 0xb1, 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0x4a, 0x7e, 0x7f, + 0x37, 0xe1, 0xf9, 0xfc, 0x66, 0xc2, 0xe3, 0x7e, 0x35, 0xe1, 0x71, 0xbf, 0x98, 0xf0, 0xb8, 0x9f, + 0x4d, 0x78, 0xdc, 0x4f, 0x26, 0x3c, 0xee, 0x47, 0x13, 0x1e, 0xf7, 0x83, 0x09, 0x8f, 0xfb, 0xde, + 0x84, 0xc7, 0xfd, 0xdb, 0x84, 0xc7, 0xfd, 0xcb, 0x64, 0x56, 0x29, 0xf8, 0xb5, 0xf5, 0x72, 0xc1, + 0xb6, 0x5e, 0x2e, 0xd8, 0xd6, 0xcb, 0x05, 0xdb, 0x7a, 0xb9, 0x60, 0x5b, 0x2f, 0x17, 0x6c, 0xeb, + 0xe5, 0x82, 0x6d, 0xbd, 0x5c, 0xb0, 0xad, 0x97, 0x0b, 0xb6, 0xf5, 0x72, 0xc1, 0xb6, 0x5e, 0x2e, + 0xd8, 0xd6, 0x6b, 0x08, 0xf6, 0xfd, 0x7a, 0x7a, 0xa9, 0x60, 0x4f, 0x2f, 0x15, 0xec, 0xe9, 0xa5, + 0x82, 0x3d, 0xbd, 0x54, 0xb0, 0xa7, 0x97, 0x0a, 0xf6, 0xf4, 0x52, 0xc1, 0x9e, 0x5e, 0x2a, 0xd8, + 0xd3, 0x4b, 0x05, 0x7b, 0x7a, 0xa9, 0x60, 0x4f, 0x2f, 0x15, 0xec, 0xe9, 0xd5, 0x05, 0xc3, 0x2f, + 0xfc, 0xc2, 0x6f, 0x68, 0xbf, 0x5a, 0x32, 0xcd, 0xaf, 0x16, 0xa7, 0xf9, 0xd5, 0xe2, 0x34, 0xbf, + 0x5a, 0x9c, 0xe6, 0x57, 0x8b, 0xd3, 0xfc, 0x6a, 0x71, 0x9a, 0x5f, 0x2d, 0x4e, 0xf3, 0xab, 0xc5, + 0x69, 0x7e, 0xb5, 0x38, 0xcd, 0xaf, 0x16, 0xa7, 0xf9, 0xd5, 0xe2, 0xe0, 0x17, 0x7e, 0xe1, 0x97, + 0x69, 0x64, 0x7f, 0x10, 0xca, 0xf6, 0xcb, 0xff, 0x6a, 0x54, 0xc1, 0xef, 0x1a, 0x0c, 0xbf, 0x67, + 0xfb, 0x7d, 0x53, 0x91, 0xdc, 0x39, 0xf5, 0x97, 0x09, 0xf6, 0xfd, 0xa6, 0x50, 0xcf, 0x2f, 0xfd, + 0x53, 0x63, 0xf0, 0x3b, 0xc8, 0x2f, 0xfd, 0xdf, 0x9d, 0x67, 0xbf, 0x7d, 0xa6, 0x82, 0x5d, 0xbf, + 0x24, 0x10, 0x7e, 0x87, 0xf8, 0xcd, 0xfe, 0x8f, 0xed, 0x1e, 0x7e, 0xa9, 0x37, 0xcf, 0x2f, 0xfd, + 0x1d, 0xb8, 0xed, 0xf3, 0x7b, 0xcb, 0xa1, 0x6d, 0x10, 0x1a, 0x49, 0x86, 0xf0, 0xfb, 0x97, 0xc6, + 0x69, 0xe5, 0x6d, 0xdd, 0xd4, 0xcd, 0x2f, 0x39, 0xd0, 0x8e, 0x5f, 0xd6, 0x8e, 0xfb, 0xf5, 0x37, + 0x4d, 0xc1, 0x85, 0xdf, 0x6d, 0x7e, 0xdf, 0x3e, 0x50, 0xcd, 0x7e, 0xff, 0xb9, 0xea, 0xfc, 0xcb, + 0x02, 0x6d, 0xbf, 0xbc, 0x1f, 0x86, 0xfe, 0xd5, 0x10, 0xbf, 0xaf, 0x8f, 0xa9, 0x12, 0xbb, 0x7e, + 0xab, 0xfa, 0xcf, 0x3c, 0xd4, 0xf4, 0x2b, 0xfe, 0x38, 0x2b, 0xfc, 0x9e, 0xdd, 0x7f, 0x9e, 0x37, + 0xf9, 0x5d, 0x62, 0x2d, 0xbf, 0xf2, 0x6f, 0xef, 0xc2, 0xef, 0xf9, 0x7e, 0xa9, 0x13, 0xf8, 0x7d, + 0xb6, 0x5f, 0xb4, 0xcf, 0xef, 0x44, 0xf5, 0x8b, 0xfe, 0xd5, 0x07, 0xb7, 0xf2, 0x4b, 0x39, 0xf2, + 0xfa, 0x88, 0x82, 0xeb, 0xa3, 0x0b, 0xf8, 0xed, 0x3d, 0xbe, 0x31, 0x9b, 0x1b, 0xe0, 0x57, 0xdf, + 0x30, 0xb4, 0x7d, 0xee, 0x3d, 0x3e, 0x49, 0x41, 0xfb, 0x7c, 0xba, 0xdf, 0xee, 0xf7, 0x17, 0x28, + 0xf0, 0x7b, 0x76, 0xfb, 0x8c, 0xfb, 0x83, 0xb1, 0xfd, 0x72, 0x70, 0x7f, 0x1f, 0x7e, 0x95, 0x0d, + 0xa7, 0xfa, 0x35, 0x49, 0x71, 0xbf, 0xb9, 0xa4, 0xb8, 0x5f, 0x5d, 0x52, 0xdc, 0x2f, 0x2e, 0x29, + 0xee, 0x67, 0x97, 0x14, 0xf7, 0x93, 0x4b, 0x8a, 0xfb, 0xd1, 0x25, 0xc5, 0xfd, 0xe0, 0x92, 0xe2, + 0xbe, 0x77, 0x11, 0x1a, 0x4d, 0x84, 0x46, 0x13, 0xf8, 0x85, 0x5f, 0xf8, 0x7d, 0x92, 0x5f, 0xcc, + 0x4f, 0x51, 0xf5, 0x86, 0x99, 0x9f, 0x82, 0xf9, 0x65, 0xba, 0xde, 0x30, 0xf3, 0xcb, 0xc0, 0xcd, + 0x81, 0xdf, 0xd8, 0xc0, 0x6f, 0x6c, 0x34, 0xbf, 0x10, 0x1c, 0x06, 0x55, 0x2f, 0xfc, 0x86, 0x41, + 0xf7, 0x0b, 0xc1, 0x41, 0x30, 0xf4, 0xc2, 0x6f, 0x10, 0x2c, 0xbf, 0x10, 0x1c, 0x02, 0x53, 0x2f, + 0x0c, 0x07, 0xc0, 0xb3, 0x0b, 0xc3, 0x77, 0xa7, 0x64, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0xc2, 0xff, 0x01, 0x7c, 0x20, 0xed, 0x46 }; #endif diff --git a/backends/platform/psp/osys_psp.cpp b/backends/platform/psp/osys_psp.cpp index 8856dcc77b..480b0f31bf 100644 --- a/backends/platform/psp/osys_psp.cpp +++ b/backends/platform/psp/osys_psp.cpp @@ -94,7 +94,7 @@ OSystem_PSP::~OSystem_PSP() { void OSystem_PSP::initBackend() { - _savefile = new DefaultSaveFileManager(); + _savefile = new DefaultSaveFileManager(); _mixer = new Audio::Mixer(); _timer = new DefaultTimerManager(); setSoundCallback(Audio::Mixer::mixCallback, _mixer); @@ -141,7 +141,7 @@ void OSystem_PSP::initSize(uint width, uint height) { _overlayHeight = _screenHeight = height; free(_offscreen); - + _offscreen = (byte *)malloc(width * height); free(_overlayBuffer); @@ -194,8 +194,8 @@ void OSystem_PSP::copyRectToScreen(const byte *buf, int pitch, int x, int y, int if (w <= 0 || h <= 0) return; - - + + byte *dst = _offscreen + y * _screenWidth + x; if (_screenWidth == pitch && pitch == w) { memcpy(dst, buf, h * w); @@ -227,7 +227,7 @@ void OSystem_PSP::updateScreen() { uint xStart = (SCREEN_WIDTH >> 1) - (_screenWidth >> 1); uint yStart = (SCREEN_HEIGHT >> 1) - (_screenHeight >> 1); - + for (int i = 0; i < _screenHeight; ++i) { for (int j = 0; j < _screenWidth; ++j) { putPixel(xStart + j, yStart + i, _palette[_offscreen[i * _screenWidth +j]]); @@ -302,7 +302,7 @@ void OSystem_PSP::grabOverlay(OverlayColor *buf, int pitch) { void OSystem_PSP::copyRectToOverlay(const OverlayColor *buf, int pitch, int x, int y, int w, int h) { PSPDebugTrace("copyRectToOverlay\n"); - + //Clip the coordinates if (x < 0) { w += x; @@ -327,7 +327,7 @@ void OSystem_PSP::copyRectToOverlay(const OverlayColor *buf, int pitch, int x, i if (w <= 0 || h <= 0) return; - + OverlayColor *dst = _overlayBuffer + (y * _overlayWidth + x); if (_overlayWidth == pitch && pitch == w) { memcpy(dst, buf, h * w * sizeof(OverlayColor)); @@ -357,7 +357,7 @@ void OSystem_PSP::colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b) { g = (((color >> 5) & 0x1F) << 3); b = (((color >> 10) & 0x1F) << 3); } - + OverlayColor OSystem_PSP::ARGBToColor(uint8 a, uint8 r, uint8 g, uint8 b) { OverlayColor color = RGBToColor(r, g, b); @@ -384,11 +384,11 @@ void OSystem_PSP::grabPalette(byte *colors, uint start, uint num) { *colors++ = ((color & 0x1F) << 3); *colors++ = (((color >> 5) & 0x1F) << 3); *colors++ = (((color >> 10) & 0x1F) << 3); - *colors++ = (color & 0x8000 ? 255 : 0); + *colors++ = (color & 0x8000 ? 255 : 0); } } -bool OSystem_PSP::showMouse(bool visible) { +bool OSystem_PSP::showMouse(bool visible) { bool last = _mouseVisible; _mouseVisible = visible; return last; @@ -423,7 +423,7 @@ void OSystem_PSP::setMouseCursor(const byte *buf, uint w, uint h, int hotspotX, bool OSystem_PSP::pollEvent(Common::Event &event) { s8 analogStepAmountX = 0; s8 analogStepAmountY = 0; -/* +/* SceCtrlData pad; sceCtrlSetSamplingCycle(0); @@ -443,7 +443,7 @@ bool OSystem_PSP::pollEvent(Common::Event &event) { //any of the other buttons. event.type = buttonsChanged & pad.Buttons ? Common::EVENT_KEYDOWN : Common::EVENT_KEYUP; event.kbd.flags = 0; - + if (buttonsChanged & PSP_CTRL_LTRIGGER) { event.kbd.keycode = Common::KEYCODE_ESCAPE; event.kbd.ascii = 27; @@ -460,35 +460,35 @@ bool OSystem_PSP::pollEvent(Common::Event &event) { event.kbd.keycode = Common::KEYCODE_PERIOD; event.kbd.ascii = '.'; } - + } - + event.mouse.x = _mouseX; event.mouse.y = _mouseY; _prevButtons = pad.Buttons; return true; } - + uint32 time = getMillis(); if (time - _lastPadCheck > PAD_CHECK_TIME) { _lastPadCheck = time; int16 newX = _mouseX; int16 newY = _mouseY; - + if (pad.Lx < 100) { analogStepAmountX = pad.Lx - 100; } else if (pad.Lx > 155) { analogStepAmountX = pad.Lx - 155; } - + if (pad.Ly < 100) { analogStepAmountY = pad.Ly - 100; } else if (pad.Ly > 155) { analogStepAmountY = pad.Ly - 155; } - + if (pad.Buttons & PAD_DIR_MASK || analogStepAmountX != 0 || analogStepAmountY != 0) { if (_prevButtons & PAD_DIR_MASK) { @@ -506,7 +506,7 @@ bool OSystem_PSP::pollEvent(Common::Event &event) { if (pad.Buttons & PSP_CTRL_DOWN) newY += _padAccel >> 2; - // If no movement then this has no effect + // If no movement then this has no effect if (pad.Buttons & PSP_CTRL_TRIANGLE) { // Fine control mode for analog if (analogStepAmountX != 0) @@ -514,7 +514,7 @@ bool OSystem_PSP::pollEvent(Common::Event &event) { newX += analogStepAmountX - (analogStepAmountX - 1); else newX -= -analogStepAmountX - (-analogStepAmountX - 1); - + if (analogStepAmountY != 0) if (analogStepAmountY > 0) newY += analogStepAmountY - (analogStepAmountY - 1); @@ -531,21 +531,21 @@ bool OSystem_PSP::pollEvent(Common::Event &event) { if (_overlayVisible) { if (newX >= _overlayWidth) newX = _overlayWidth - 1; - if (newY >= _overlayHeight) newY = _overlayHeight - 1; + if (newY >= _overlayHeight) newY = _overlayHeight - 1; } else { if (newX >= _screenWidth) newX = _screenWidth - 1; - if (newY >= _screenHeight) newY = _screenHeight - 1; + if (newY >= _screenHeight) newY = _screenHeight - 1; } - + if ((_mouseX != newX) || (_mouseY != newY)) { event.type = Common::EVENT_MOUSEMOVE; event.mouse.x = _mouseX = newX; event.mouse.y = _mouseY = newY; return true; } - } else { + } else { //reset pad acceleration _padAccel = 0; } @@ -558,7 +558,7 @@ uint32 OSystem_PSP::getMillis() { return SDL_GetTicks(); } -void OSystem_PSP::delayMillis(uint msecs) { +void OSystem_PSP::delayMillis(uint msecs) { SDL_Delay(msecs); } @@ -627,7 +627,7 @@ void OSystem_PSP::clearSoundCallback() { } int OSystem_PSP::getOutputSampleRate() const { - return _samplesPerSec; + return _samplesPerSec; } void OSystem_PSP::quit() { diff --git a/backends/platform/psp/osys_psp.h b/backends/platform/psp/osys_psp.h index 78bdd5bd1e..d3e04289ae 100644 --- a/backends/platform/psp/osys_psp.h +++ b/backends/platform/psp/osys_psp.h @@ -51,9 +51,9 @@ protected: uint16 _palette[256]; bool _overlayVisible; uint32 _shakePos; - + Graphics::Surface _framebuffer; - + bool _mouseVisible; int _mouseX, _mouseY; int _mouseWidth, _mouseHeight; @@ -64,7 +64,7 @@ protected: uint32 _prevButtons; uint32 _lastPadCheck; uint32 _padAccel; - + uint32 _samplesPerSec; SceCtrlData pad; diff --git a/backends/platform/psp/osys_psp_gu.cpp b/backends/platform/psp/osys_psp_gu.cpp index bb14d07033..8925300c51 100644 --- a/backends/platform/psp/osys_psp_gu.cpp +++ b/backends/platform/psp/osys_psp_gu.cpp @@ -16,7 +16,7 @@ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * $URL$ * $Id$ @@ -32,7 +32,7 @@ #define PSP_SCREEN_WIDTH 480 #define PSP_SCREEN_HEIGHT 272 #define PSP_FRAME_SIZE (BUF_WIDTH * PSP_SCREEN_HEIGHT * PIXEL_SIZE) -#define MOUSE_SIZE 128 +#define MOUSE_SIZE 128 #define KBD_DATA_SIZE 130560 unsigned int __attribute__((aligned(16))) list[262144]; @@ -89,17 +89,17 @@ OSystem_PSP_GU::OSystem_PSP_GU() { sceGuSync(0,0); sceDisplayWaitVblankStart(); - sceGuDisplay(1); + sceGuDisplay(1); //decompress keyboard data uLongf kbdSize = KBD_DATA_SIZE; keyboard_letters = (unsigned char *)memalign(16, KBD_DATA_SIZE); assert(Z_OK == uncompress((Bytef *)keyboard_letters, &kbdSize, (const Bytef *)keyboard_letters_compressed, size_keyboard_letters_compressed)); - + kbdSize = KBD_DATA_SIZE; keyboard_letters_shift = (unsigned char *)memalign(16, KBD_DATA_SIZE); assert(Z_OK == uncompress((Bytef *)keyboard_letters_shift, &kbdSize, (const Bytef *)keyboard_letters_shift_compressed, size_keyboard_letters_shift_compressed)); - + kbdSize = KBD_DATA_SIZE; keyboard_symbols = (unsigned char *)memalign(16, KBD_DATA_SIZE); assert(Z_OK == uncompress((Bytef *)keyboard_symbols, &kbdSize, (const Bytef *)keyboard_symbols_compressed, size_keyboard_symbols_compressed)); @@ -107,7 +107,7 @@ OSystem_PSP_GU::OSystem_PSP_GU() { kbdSize = KBD_DATA_SIZE; keyboard_symbols_shift = (unsigned char *)memalign(16, KBD_DATA_SIZE); assert(Z_OK == uncompress((Bytef *)keyboard_symbols_shift, &kbdSize, (const Bytef *)keyboard_symbols_shift_compressed, size_keyboard_symbols_shift_compressed)); - + _keyboardVisible = false; _clut = (unsigned short*)(((unsigned int)clut256)|0x40000000); _kbdClut = (unsigned short*)(((unsigned int)kbClut)|0x40000000); @@ -124,7 +124,7 @@ OSystem_PSP_GU::~OSystem_PSP_GU() { free(keyboard_symbols); free(keyboard_letters_shift); free(keyboard_letters); - + _offscreen = 0; _overlayBuffer = 0; _mouseBuf = 0; @@ -195,7 +195,7 @@ void OSystem_PSP_GU::setMouseCursor(const byte *buf, uint w, uint h, int hotspot memcpy(mouseClut, _palette, 256*sizeof(unsigned short)); mouseClut[_mouseKeyColour] = 0; sceKernelDcacheWritebackAll(); - + for (unsigned int i=0;i<h;i++) memcpy(_mouseBuf+i*MOUSE_SIZE, buf+i*w, w); } @@ -210,11 +210,11 @@ void OSystem_PSP_GU::setPalette(const byte *colors, uint start, uint num) { //copy to CLUT memcpy(_clut, _palette, 256*sizeof(unsigned short)); - + //force update of mouse CLUT as well, as it may have been set up before this palette was set memcpy(mouseClut, _palette, 256*sizeof(unsigned short)); mouseClut[_mouseKeyColour] = 0; - + sceKernelDcacheWritebackAll(); } @@ -244,10 +244,10 @@ void OSystem_PSP_GU::copyRectToScreen(const byte *buf, int pitch, int x, int y, if (w <= 0 || h <= 0) return; - + byte *dst = _offscreen + y * _screenWidth + x; - if (_screenWidth == pitch && pitch == w) + if (_screenWidth == pitch && pitch == w) { memcpy(dst, buf, h * w); /* @@ -257,9 +257,9 @@ void OSystem_PSP_GU::copyRectToScreen(const byte *buf, int pitch, int x, int y, sceGuSync(0,0); */ } - else + else { - do + do { memcpy(dst, buf, w); buf += pitch; @@ -270,7 +270,7 @@ void OSystem_PSP_GU::copyRectToScreen(const byte *buf, int pitch, int x, int y, void OSystem_PSP_GU::updateScreen() { sceGuStart(0,list); - + sceGuClearColor(0xff000000); sceGuClear(GU_COLOR_BUFFER_BIT); @@ -281,7 +281,7 @@ void OSystem_PSP_GU::updateScreen() { sceGuTexImage(0, 512, 256, _screenWidth, _offscreen); else sceGuTexImage(0, 512, 512, _screenWidth, _offscreen); - sceGuTexFunc(GU_TFX_REPLACE, GU_TCC_RGB); + sceGuTexFunc(GU_TFX_REPLACE, GU_TCC_RGB); sceGuTexFilter(GU_LINEAR, GU_LINEAR); sceGuTexOffset(0,0); sceGuAmbientColor(0xffffffff); @@ -321,8 +321,8 @@ void OSystem_PSP_GU::updateScreen() { vertices[0].x += (vertices[1].x - vertices[0].x) * 511 / 640; vertices[0].y = 0; vertices[0].z = 0; sceGuDrawArray(GU_SPRITES, GU_TEXTURE_32BITF|GU_VERTEX_32BITF|GU_TRANSFORM_2D, 2, 0, vertices); } - - + + // draw overlay if (_overlayVisible) { vertices[0].x = 0; vertices[0].y = 0; vertices[0].z = 0; @@ -337,7 +337,7 @@ void OSystem_PSP_GU::updateScreen() { else sceGuTexImage(0, 512, 256, _overlayWidth, _overlayBuffer); - sceGuTexFunc(GU_TFX_MODULATE, GU_TCC_RGBA); + sceGuTexFunc(GU_TFX_MODULATE, GU_TCC_RGBA); sceGuDrawArray(GU_SPRITES,GU_TEXTURE_32BITF|GU_VERTEX_32BITF|GU_TRANSFORM_2D,2,0,vertices); // need to render twice for textures > 512 if ( _overlayWidth > 512) { @@ -347,7 +347,7 @@ void OSystem_PSP_GU::updateScreen() { sceGuDrawArray(GU_SPRITES, GU_TEXTURE_32BITF|GU_VERTEX_32BITF|GU_TRANSFORM_2D, 2, 0, vertices); } } - + // draw mouse if (_mouseVisible) { sceGuTexMode(GU_PSM_T8, 0, 0, 0); // 8-bit image @@ -356,15 +356,15 @@ void OSystem_PSP_GU::updateScreen() { sceGuAlphaFunc(GU_GREATER,0,0xff); sceGuEnable(GU_ALPHA_TEST); sceGuTexImage(0, MOUSE_SIZE, MOUSE_SIZE, MOUSE_SIZE, _mouseBuf); - sceGuTexFunc(GU_TFX_MODULATE, GU_TCC_RGBA); - + sceGuTexFunc(GU_TFX_MODULATE, GU_TCC_RGBA); + vertices[0].u = 0.5; vertices[0].v = 0.5; vertices[1].u = _mouseWidth - 0.5; vertices[1].v = _mouseHeight - 0.5; //adjust cursor position int mX = _mouseX - _mouseHotspotX; int mY = _mouseY - _mouseHotspotY; - + if (_overlayVisible) { float scalex, scaley; @@ -394,7 +394,7 @@ void OSystem_PSP_GU::updateScreen() { case CENTERED_362X272: { float scalex, scaley; - + scalex = 362.0f / _screenWidth; scaley = 272.0f / _screenHeight; @@ -408,7 +408,7 @@ void OSystem_PSP_GU::updateScreen() { scalex = (float)PSP_SCREEN_WIDTH / _screenWidth; scaley = (float)PSP_SCREEN_HEIGHT / _screenHeight; - + vertices[0].x = mX * scalex; vertices[0].y = mY * scaley; vertices[0].z = 0; vertices[1].x = vertices[0].x + _mouseWidth * scalex; vertices[1].y = vertices[0].y + _mouseHeight * scaley; vertices[0].z = 0; } @@ -438,8 +438,8 @@ void OSystem_PSP_GU::updateScreen() { sceGuTexImage(0, 512, 512, 480, keyboard_symbols_shift); break; } - sceGuTexFunc(GU_TFX_REPLACE, GU_TCC_RGBA); - + sceGuTexFunc(GU_TFX_REPLACE, GU_TCC_RGBA); + vertices[0].u = 0.5; vertices[0].v = 0.5; vertices[1].u = PSP_SCREEN_WIDTH-0.5; vertices[1].v = PSP_SCREEN_HEIGHT-0.5; vertices[0].x = 0; vertices[0].y = 0; vertices[0].z = 0; @@ -448,7 +448,7 @@ void OSystem_PSP_GU::updateScreen() { sceGuDisable(GU_BLEND); } sceKernelDcacheWritebackAll(); - + sceGuFinish(); sceGuSync(0,0); @@ -491,7 +491,7 @@ bool OSystem_PSP_GU::pollEvent(Common::Event &event) { _prevButtons = pad.Buttons; return true; } - + if ( (buttonsChanged & PSP_CTRL_RIGHT) && !(pad.Buttons & PSP_CTRL_RIGHT)) { event.kbd.flags = 0; event.kbd.ascii = 0; @@ -499,7 +499,7 @@ bool OSystem_PSP_GU::pollEvent(Common::Event &event) { _prevButtons = pad.Buttons; return true; } - + if ( (buttonsChanged & PSP_CTRL_UP) && !(pad.Buttons & PSP_CTRL_UP)) { event.kbd.flags = 0; event.kbd.ascii = 0; @@ -507,7 +507,7 @@ bool OSystem_PSP_GU::pollEvent(Common::Event &event) { _prevButtons = pad.Buttons; return true; } - + if ( (buttonsChanged & PSP_CTRL_DOWN) && !(pad.Buttons & PSP_CTRL_DOWN)) { event.kbd.flags = 0; event.kbd.ascii = 0; @@ -515,7 +515,7 @@ bool OSystem_PSP_GU::pollEvent(Common::Event &event) { _prevButtons = pad.Buttons; return true; } - + // compute nub direction x = pad.Lx-128; y = pad.Ly-128; @@ -527,7 +527,7 @@ bool OSystem_PSP_GU::pollEvent(Common::Event &event) { if (_keySelected < 1) _keySelected += 30; _kbdClut[_keySelected] = 0xffff; - + if (buttonsChanged & PSP_CTRL_CROSS) { event.type = (pad.Buttons & PSP_CTRL_CROSS) ? Common::EVENT_KEYDOWN : Common::EVENT_KEYUP; if (_keySelected > 26) { @@ -550,7 +550,7 @@ bool OSystem_PSP_GU::pollEvent(Common::Event &event) { event.kbd.keycode = Common::KEYCODE_RETURN; break; } - } else { + } else { switch( _keyboardMode) { case 0: event.kbd.flags = 0; diff --git a/backends/platform/psp/osys_psp_gu.h b/backends/platform/psp/osys_psp_gu.h index af67be5185..e828a36b7d 100644 --- a/backends/platform/psp/osys_psp_gu.h +++ b/backends/platform/psp/osys_psp_gu.h @@ -16,7 +16,7 @@ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * */ diff --git a/backends/platform/psp/portdefs.h b/backends/platform/psp/portdefs.h index e6ba71fc64..af772230d7 100644 --- a/backends/platform/psp/portdefs.h +++ b/backends/platform/psp/portdefs.h @@ -16,7 +16,7 @@ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * $URL$ * $Id$ diff --git a/backends/platform/psp/psp_main.cpp b/backends/platform/psp/psp_main.cpp index 92d6beea74..d2ed59efbe 100644 --- a/backends/platform/psp/psp_main.cpp +++ b/backends/platform/psp/psp_main.cpp @@ -16,7 +16,7 @@ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * * $URL$ * $Id$ @@ -126,7 +126,7 @@ int main(void) SceUID fd = sceIoDopen(SCUMMVM_SAVEPATH); if (fd < 0) { //No? then let's create it. - sceIoMkdir(SCUMMVM_SAVEPATH, 0777); + sceIoMkdir(SCUMMVM_SAVEPATH, 0777); } else { //it exists, so close it again. sceIoDclose(fd); @@ -141,7 +141,7 @@ int main(void) int res = scummvm_main(argc, argv); g_system->quit(); // TODO: Consider removing / replacing this! - + sceKernelSleepThread(); return res; diff --git a/backends/platform/psp/trace.cpp b/backends/platform/psp/trace.cpp index 80ea98f8b6..a4a409d455 100644 --- a/backends/platform/psp/trace.cpp +++ b/backends/platform/psp/trace.cpp @@ -34,7 +34,7 @@ void PSPDebugTrace (const char *format, ...) { va_list opt; char buff[2048]; int bufsz, fd; - + va_start(opt, format); bufsz = vsnprintf( buff, (size_t) sizeof(buff), format, opt); va_end(opt); @@ -45,7 +45,7 @@ void PSPDebugTrace (const char *format, ...) { { return; } - + sceIoWrite(fd, (const void*)buff, bufsz); sceIoClose(fd); #endif @@ -56,7 +56,7 @@ void PSPDebugTrace (const char * filename, const char *format, ...) { va_list opt; char buff[2048]; int bufsz, fd; - + va_start(opt, format); bufsz = vsnprintf( buff, (size_t) sizeof(buff), format, opt); va_end(opt); @@ -67,7 +67,7 @@ void PSPDebugTrace (const char * filename, const char *format, ...) { { return; } - + sceIoWrite(fd, (const void*)buff, bufsz); sceIoClose(fd); #endif diff --git a/backends/platform/sdl/graphics.cpp b/backends/platform/sdl/graphics.cpp index 7061f4a036..eb71a1ba0e 100644 --- a/backends/platform/sdl/graphics.cpp +++ b/backends/platform/sdl/graphics.cpp @@ -1147,12 +1147,12 @@ void OSystem_SDL::clearOverlay() { SDL_LockSurface(_tmpscreen); SDL_LockSurface(_overlayscreen); - _scalerProc((byte *)(_tmpscreen->pixels) + _tmpscreen->pitch + 2, _tmpscreen->pitch, + _scalerProc((byte *)(_tmpscreen->pixels) + _tmpscreen->pitch + 2, _tmpscreen->pitch, (byte *)_overlayscreen->pixels, _overlayscreen->pitch, _screenWidth, _screenHeight); #ifndef DISABLE_SCALERS if (_adjustAspectRatio) - stretch200To240((uint8 *)_overlayscreen->pixels, _overlayscreen->pitch, + stretch200To240((uint8 *)_overlayscreen->pixels, _overlayscreen->pitch, _overlayWidth, _screenHeight * _scaleFactor, 0, 0, 0); #endif SDL_UnlockSurface(_tmpscreen); @@ -1264,7 +1264,7 @@ void OSystem_SDL::warpMouse(int x, int y) { y1 = real2Aspect(y); if (_mouseCurState.x != x || _mouseCurState.y != y) { - if (!_overlayVisible) + if (!_overlayVisible) SDL_WarpMouse(x * _scaleFactor, y1 * _scaleFactor); else SDL_WarpMouse(x, y1); @@ -1352,7 +1352,7 @@ void OSystem_SDL::blitCursor() { palette = _currentPalette; else palette = _cursorPalette; - + for (i = 0; i < h; i++) { for (j = 0; j < w; j++) { color = *srcPtr; @@ -1556,7 +1556,7 @@ void OSystem_SDL::drawMouse() { if (_adjustAspectRatio && !_overlayVisible) dst.y = real2Aspect(dst.y); - + dst.x = scale * dst.x - _mouseCurState.rHotX; dst.y = scale * dst.y - _mouseCurState.rHotY; dst.w = _mouseCurState.rW; diff --git a/backends/platform/sdl/main.cpp b/backends/platform/sdl/main.cpp index afa4abb2b5..adb9cec08b 100644 --- a/backends/platform/sdl/main.cpp +++ b/backends/platform/sdl/main.cpp @@ -53,7 +53,7 @@ int main(int argc, char *argv[]) { // Set up redirects for stdout/stderr under Windows and Symbian. // Code copied from SDL_main. // - + // Symbian does not like any output to the console through any *print* function char STDOUT_FILE[256], STDERR_FILE[256]; // shhh, don't tell anybody :) strcpy(STDOUT_FILE, Symbian::GetExecutablePath()); diff --git a/backends/platform/sdl/sdl.cpp b/backends/platform/sdl/sdl.cpp index 9e71ebe0a5..5ef31f9253 100644 --- a/backends/platform/sdl/sdl.cpp +++ b/backends/platform/sdl/sdl.cpp @@ -107,7 +107,7 @@ void OSystem_SDL::initBackend() { printf("Using joystick: %s\n", SDL_JoystickName(0)); _joystick = SDL_JoystickOpen(joystick_num); } - + // Create the savefile manager, if none exists yet (we check for this to // allow subclasses to provide their own). @@ -136,7 +136,7 @@ void OSystem_SDL::initBackend() { _timer = new DefaultTimerManager(); _timerID = SDL_AddTimer(10, &timer_handler, _timer); } - + // Invoke parent implementation of this method OSystem::initBackend(); diff --git a/backends/platform/symbian/AdaptAllMMPs.pl b/backends/platform/symbian/AdaptAllMMPs.pl index b9640e61c1..ae10a7ed72 100644 --- a/backends/platform/symbian/AdaptAllMMPs.pl +++ b/backends/platform/symbian/AdaptAllMMPs.pl @@ -6,29 +6,29 @@ chdir("../../../"); # list of project files to process @mmp_files = ( - "mmp/scummvm_scumm.mmp", - "mmp/scummvm_queen.mmp", - "mmp/scummvm_agos.mmp", - "mmp/scummvm_sky.mmp", - "mmp/scummvm_gob.mmp", - "mmp/scummvm_saga.mmp", - "mmp/scummvm_kyra.mmp", - "mmp/scummvm_sword1.mmp", - "mmp/scummvm_sword2.mmp", - "mmp/scummvm_lure.mmp", - "mmp/scummvm_cine.mmp", - "mmp/scummvm_agi.mmp", - "mmp/scummvm_touche.mmp", - "mmp/scummvm_parallaction.mmp", - "mmp/scummvm_cruise.mmp", - "mmp/scummvm_drascula.mmp", - "mmp/scummvm_igor.mmp", - "S60/ScummVM_S60.mmp", - "S60v3/ScummVM_S60v3.mmp", - "S80/ScummVM_S80.mmp", + "mmp/scummvm_scumm.mmp", + "mmp/scummvm_queen.mmp", + "mmp/scummvm_agos.mmp", + "mmp/scummvm_sky.mmp", + "mmp/scummvm_gob.mmp", + "mmp/scummvm_saga.mmp", + "mmp/scummvm_kyra.mmp", + "mmp/scummvm_sword1.mmp", + "mmp/scummvm_sword2.mmp", + "mmp/scummvm_lure.mmp", + "mmp/scummvm_cine.mmp", + "mmp/scummvm_agi.mmp", + "mmp/scummvm_touche.mmp", + "mmp/scummvm_parallaction.mmp", + "mmp/scummvm_cruise.mmp", + "mmp/scummvm_drascula.mmp", + "mmp/scummvm_igor.mmp", + "S60/ScummVM_S60.mmp", + "S60v3/ScummVM_S60v3.mmp", + "S80/ScummVM_S80.mmp", "S90/ScummVM_S90.mmp", - "UIQ2/ScummVM_UIQ2.mmp", - "UIQ3/ScummVM_UIQ3.mmp" + "UIQ2/ScummVM_UIQ2.mmp", + "UIQ3/ScummVM_UIQ3.mmp" ); # do this first to set all *.mmp & *.inf files to *.*.in states @@ -50,12 +50,12 @@ Preparing to update all the Symbian MMP project files with objects from module.m ======================================================================================= "; - + my @section_empty = (""); # section standard: no #ifdef's in module.mk files my @sections_scumm = ("", "DISABLE_SCUMM_7_8", "DISABLE_HE"); # special sections for engine SCUMM # files excluded from build, case insensitive, will be matched in filename string only -my @excludes_snd = ( +my @excludes_snd = ( "mt32", "fluidsynth", "i386", @@ -64,12 +64,12 @@ my @excludes_snd = ( "partialmanager.cpp", "synth.cpp", "tables.cpp", - "freeverb.cpp" -); + "freeverb.cpp" +); -my @excludes_graphics = ( +my @excludes_graphics = ( "iff.cpp" -); +); my @excludes_scumm = ( "codec47ARM.cpp", @@ -110,7 +110,7 @@ Done. Enjoy :P ################################################################################################################## ################################################################################################################## -# parses multiple sections per mmp/module +# parses multiple sections per mmp/module sub ParseModule { my ($mmp,$module,$sections,$exclusions) = @_; @@ -135,7 +135,7 @@ sub CheckForModuleMK if (-d $item) { #print "$item\n"; - + opendir DIR, $item; #my @Files = readdir DIR; my @Files = grep s/^([^\.].*)$/$1/, readdir DIR; @@ -153,7 +153,7 @@ sub CheckForModuleMK my $sec = ""; my $ObjectsSelected = 0; my $ObjectsTotal = 0; - + print "$item for section '$section' ... "; open FILE, $item; @@ -162,10 +162,10 @@ sub CheckForModuleMK my $count = @lines; print "$count lines"; - + A: foreach $line (@lines) { - # found a section? reset + # found a section? reset if ($line =~ /^ifndef (.*)/) { $sec = $1; @@ -182,7 +182,7 @@ sub CheckForModuleMK $line =~ s/ \\//; # remove possible trailing ' \' $line =~ s/\//\\/g; # replace / with \ chop($line); # remove \n - + # do we need to skip this file? According to our own @exclusions array foreach $exclusion (@exclusions) { @@ -192,7 +192,7 @@ sub CheckForModuleMK next A; } } - + # do we need to skip this file? According to MACROs in .MMPs foreach $DisableDefine (@DisableDefines) { @@ -202,7 +202,7 @@ sub CheckForModuleMK next A; } } - + $ObjectsSelected++; #print "\n $line"; $output .= "SOURCE $line\n"; @@ -225,7 +225,7 @@ sub UpdateProjectFile my $updated = " Updated @ ".localtime(); my $name; my @mmp_files_plus_one = @mmp_files; - unshift @mmp_files_plus_one, "mmp/scummvm_base.mmp"; + unshift @mmp_files_plus_one, "mmp/scummvm_base.mmp"; foreach $name (@mmp_files_plus_one) { @@ -234,23 +234,23 @@ sub UpdateProjectFile open FILE, "$file"; my @lines = <FILE>; close FILE; - + my $onestr = join("",@lines); - + if ($onestr =~ /$n/) { print " - $name @ $n updating ... "; - + $onestr =~ s/$a.*$b/$a$updated\n$output$b/s; open FILE, ">$file"; print FILE $onestr; close FILE; - + print "done.\n"; } } - + $output = ""; } @@ -260,7 +260,7 @@ sub UpdateSlaveMacros { my $updated = " Updated @ ".localtime(); - my $name = "mmp/scummvm_base.mmp"; + my $name = "mmp/scummvm_base.mmp"; my $file = "$buildDir/$name"; print "Reading master MACROS from backends/symbian/$name ... "; @@ -274,7 +274,7 @@ sub UpdateSlaveMacros my $b = "\/\/STOP_$n\/\/"; $onestr =~ /$a(.*)$b/s; my $macros = $1; - + my $libs_first = "\n// automagically enabled static libs from macros above\n"; my $libs_second = "STATICLIBRARY scummvm_base.lib // must be above USE_* .libs\n"; my $macro_counter = 0; @@ -287,7 +287,7 @@ sub UpdateSlaveMacros if ($line =~ /^.*MACRO\s*([0-9A-Z_]*)\s*\/\/\s*LIB\:(.*)$/) { my $macro = $1; my $lib = $2; - + # this macro enabled? then also add the .lib if ($line =~ /^\s*MACRO\s*$macro/m) { @@ -298,10 +298,10 @@ sub UpdateSlaveMacros { # these are the non DISABLED_ libs $libs_first .= "STATICLIBRARY $lib\n" if ($macro =~ /^DISABLE_/); - + # add projects for BLD.INF's my $projectname = substr("$lib",0,-4); - $projects .= "..\\mmp\\$projectname.mmp\n" if ($macro =~ /^DISABLE_/); + $projects .= "..\\mmp\\$projectname.mmp\n" if ($macro =~ /^DISABLE_/); } $macro_counter++; } @@ -312,7 +312,7 @@ sub UpdateSlaveMacros $macros2 .= "$line\n"; push @DisableDefines, $macro; # used in CheckForModuleMK()!! } - } + } print "$macro_counter macro lines.\n"; @@ -323,23 +323,23 @@ sub UpdateSlaveMacros $m = "AUTO_PROJECTS"; $p = "\/\/START_$m\/\/"; $q = "\/\/STOP_$m\/\/"; - + foreach $name (@mmp_files) { $file = "$buildDir/$name"; $fileBLDINF = $buildDir .'/'. substr($name, 0, rindex($name, "/")) . "/BLD.INF"; print "Updating macros in $file ... "; #print "Updating macros in backends/symbian/$name ... "; - + open FILE, "$file"; @lines = <FILE>; close FILE; $onestr = join("",@lines); - + my $extralibs = ""; # output # slash in name means it's a phone specific build file: add LIBs $extralibs .= "$libs_first$libs_second" if (-e $fileBLDINF); - + $onestr =~ s/$a.*$b/$a$updated$macros2$extralibs$b/s; - + open FILE, ">$file"; print FILE $onestr; close FILE; my $count = @lines; @@ -353,13 +353,13 @@ sub UpdateSlaveMacros open FILE, "$fileBLDINF"; @lines = <FILE>; close FILE; $onestr = join("",@lines); - + $onestr =~ s/$p.*$q/$p$updated$projects$q/s; - + open FILE, ">$fileBLDINF"; print FILE $onestr; close FILE; } } -} +} ################################################################################################################## @@ -367,10 +367,10 @@ sub ResetProjectFiles() { my $onestr, @lines; my @mmp_files_plus_one = @mmp_files; -# unshift @mmp_files_plus_one, "mmp/scummvm_base.mmp"; - +# unshift @mmp_files_plus_one, "mmp/scummvm_base.mmp"; + print "Resetting project files: "; - + # we don't need to do mmp/scummvm_base.mmp", it was done in BuildPackageUpload.pl before the call to this script foreach $name (@mmp_files_plus_one) { @@ -390,7 +390,7 @@ sub ResetProjectFiles() $onestr = join("",@lines); open FILE, ">$fileBLDINF"; print FILE $onestr; close FILE; } - } + } print "... done.\n"; } diff --git a/backends/platform/symbian/BuildPackageUpload_AllVersions.pl b/backends/platform/symbian/BuildPackageUpload_AllVersions.pl index 7a4d6e21e2..7b07993c4e 100644 --- a/backends/platform/symbian/BuildPackageUpload_AllVersions.pl +++ b/backends/platform/symbian/BuildPackageUpload_AllVersions.pl @@ -92,7 +92,7 @@ while( ($SDK, $Value) = each(%SDK_Variations) ) push @Packages, sprintf($file_tpl_sis, $version_tpl_sis, $SDK2, $Extra); $PackagesQueued++; } - } + } } else { @@ -118,7 +118,7 @@ Preparing to Build, Package & Upload $PackagesQueued SymbianOS ScummVM variation SDKs inst'd \t$SDKs ".( %SDK_LibraryDirs ? " LIBs inst'd \t$LIBs " : "" )." - $PackagesQueued Variations \t$PackagesStr + $PackagesQueued Variations \t$PackagesStr DIR base \t$base_dir build \t$build_dir output \t$output_dir @@ -126,7 +126,7 @@ Preparing to Build, Package & Upload $PackagesQueued SymbianOS ScummVM variation FTP host \t$FTP_Host user \t$FTP_User pass \t"."*" x length($FTP_Pass)." - dir \t$FTP_Dir + dir \t$FTP_Dir " : "" )." ======================================================================================= Press Ctrl-C to abort or enter to continue Build, Package & Upload $PackagesQueued Variations... @@ -142,7 +142,7 @@ unlink($build_log_out); unlink($build_log_err); # init _base.mmp now, so we can start changing it without affecting the CVS version _base.mmp.in! -my $name = "mmp/scummvm_base.mmp"; +my $name = "mmp/scummvm_base.mmp"; my $file = "$build_dir/$name"; open FILE, "$file.in"; @lines = <FILE>; close FILE; my $onestr = join("",@lines); @@ -164,7 +164,7 @@ while( ($SDK, $Value) = each(%SDK_LibraryDirs) ) $LibrariesQueued++; DoLibrary($SDK2, $Library, $Path); } - } + } } else { @@ -194,7 +194,7 @@ while( ($SDK, $VariationsHash) = each(%SDK_Variations) ) { DoVariation($SDK2, $Variation, $MacroBlock); } - } + } } else { @@ -248,7 +248,7 @@ print " SumthinWicked wishes you a ridiculously good and optimally happy d ################################################################################################################## ################################################################################################################## -# Build, Package & Upload a single Variation +# Build, Package & Upload a single Variation sub DoLibrary { my ($SDK, $Library, $Path) = @_; @@ -278,19 +278,19 @@ my $header = " my $OK = 1; PrepSdkPaths($SDK); - + chdir($Path) or $OK=0; PrintErrorMessage("Changing to $Path failed!") if (!$OK); - return 0 if (!$OK); + return 0 if (!$OK); PrintMessage("Cleaning for $Target") if (!$ReallyQuiet); system("bldmake bldfiles > NUL 2> NUL"); PrintErrorMessage("'bldmake bldfiles' exited with value " . ($? >> 8)) if ($? >> 8); system("abld clean $TargetName urel > NUL 2> NUL"); - PrintErrorMessage("'abld clean $TargetName urel' exited with value " . ($? >> 8)) if ($? >> 8); + PrintErrorMessage("'abld clean $TargetName urel' exited with value " . ($? >> 8)) if ($? >> 8); # remove file so we are sure that after .lib generation we have a fresh copy! if (-e $TargetFilePath) { unlink($TargetFilePath) or PrintErrorMessage("Removing $TargetFilePath"); } - + my $Redirection = "OUT:file, ERR:".($RedirectSTDERR ? "file" : "screen"); my $Message = "Building $Target ($Redirection)"; PrintMessage($Message) if (!$ReallyQuiet); @@ -302,14 +302,14 @@ my $header = " $OK = 0 if ($? >> 8); # print " STDERR: ".((-s $build_log_err)-$OldSize)." bytes output written to $build_log_err\n+--------------------------------------------------------------------------------------\n" if ($OldSize != (-s $build_log_err)); PrintErrorMessage("'abld build $TargetName urel' exited with value " . ($? >> 8)) if ($? >> 8); - return 0 if (!$OK); # ABLD always returns ok :( grr + return 0 if (!$OK); # ABLD always returns ok :( grr PrintMessage("Done.") if (!$ReallyQuiet); # did it work? :) if (-e $TargetFilePath) { $LibrariesSucceeded++; - + if ($TargetIntermediatePath ne '' && $TargetIntermediatePath =~ /\\EPOC32\\BUILD\\/i) # make really sure it's a valid path! { system("del /S /Q $TargetIntermediatePath > NUL"); @@ -330,12 +330,12 @@ my $header = " ################################################################################################################## -# Build, Package & Upload a single Variation +# Build, Package & Upload a single Variation sub DoVariation { my ($SDK, $Variation, $MacroBlock) = @_; my $Extra = ($Variation ne '' ? "_$Variation" : ""); - my $Package = sprintf($file_tpl_sis, $version_tpl_sis, $SDK, $Extra); + my $Package = sprintf($file_tpl_sis, $version_tpl_sis, $SDK, $Extra); if ($SkipExistingPackages && -f "$output_dir/$Package") { @@ -366,7 +366,7 @@ my $header = " if ($OK) { $OK = BuildVariation($SDK, $Variation, $Package, $MacroBlock); - + if ($OK && $FTP_Host ne '') { UploadVariation($SDK, $Variation, $Package); @@ -382,17 +382,17 @@ sub PrepVariation() my $OK = 1; PrepSdkPaths($SDK); - + chdir($build_dir) or $OK=0; PrintErrorMessage("Changing to $build_dir failed!") if (!$OK); - return 0 if (!$OK); + return 0 if (!$OK); # insert $MacroBlock into AUTO_MACRO_MASTER in scummvm_base.mmp PrintMessage("Setting new AUTO_MACROS_MASTER in scummvm_base.mmp for '$Variation'") if (!$ReallyQuiet); my $n = "AUTO_MACROS_MASTER"; my $a = "\/\/START_$n\/\/"; my $b = "\/\/STOP_$n\/\/"; - my $name = "scummvm_base.mmp"; + my $name = "scummvm_base.mmp"; my $file = "$build_dir/mmp/$name"; my $updated = " Updated @ ".localtime(); @@ -401,11 +401,11 @@ sub PrepVariation() return 0 if (!$OK); my @lines = <FILE>; close FILE; - + my $onestr = join("",@lines); $MacroBlock =~ s/^\s*//gm; $onestr =~ s/$a(.*)$b/$a$updated\n$ExtraMacros$MacroBlock$b/s; - + open FILE, ">$file" or $OK=0; PrintErrorMessage("Writing file '$file'") if (!$OK); return 0 if (!$OK); @@ -418,7 +418,7 @@ sub PrepVariation() $OK = 0 if ($? >> 8); PrintErrorMessage("'AdaptAllMMPs.pl' exited with value " . ($? >> 8)) if ($? >> 8); return 0 if (!$OK); - + # we are here: so all is ok :) return 1; } @@ -431,7 +431,7 @@ sub BuildVariation() my $TargetName = $SDK_TargetName{$SDK}; my $TargetDir = $SDK_TargetDir{$SDK}; my $OK = 1; - + my $dir = $build_dir."/".$SDK_BuildDirs{$SDK}; $dir =~ s#/#\\#g; chdir($dir); @@ -454,8 +454,8 @@ sub BuildVariation() PrintErrorMessage("'bldmake bldfiles' exited with value " . ($? >> 8)) if ($? >> 8); system("abld clean $TargetName urel 2> NUL > NUL"); - PrintErrorMessage("'abld clean $TargetName urel' exited with value " . ($? >> 8)) if ($? >> 8); - + PrintErrorMessage("'abld clean $TargetName urel' exited with value " . ($? >> 8)) if ($? >> 8); + my $Redirection = "OUT:file, ERR:".($RedirectSTDERR ? "file" : "screen"); my $Message = "Building $Package ($Redirection)"; PrintMessage($Message) if (!$ReallyQuiet); @@ -467,7 +467,7 @@ sub BuildVariation() $OK = 0 if ($? >> 8); print " STDERR: ".((-s $build_log_err)-$OldSize)." bytes output written to $build_log_err\n+--------------------------------------------------------------------------------------\n" if ($OldSize != (-s $build_log_err) && !$ReallyQuiet); PrintErrorMessage("'abld build $TargetName urel' exited with value " . ($? >> 8)) if ($? >> 8); - return 0 if (!$OK); # ABLD always returns ok :( grr + return 0 if (!$OK); # ABLD always returns ok :( grr PrintMessage("Done.") if (!$ReallyQuiet); # do we have an override suffix for the package name? @@ -491,7 +491,7 @@ sub BuildVariation() if (-e "$output_dir/$Package") { $PackagesCreated++; - + if ($TargetIntermediatePath ne '' && $TargetIntermediatePath =~ /\\EPOC32\\BUILD\\/i) # make really sure it's a valid path! { #PrintMessage("Cleaning $TargetIntermediatePath"); @@ -514,7 +514,7 @@ sub UploadVariation() use Net::FTP; my $newerr; - + PrintMessage("Connecting to FTP $FTP_Host") if (!$ReallyQuiet); $ftp = Net::FTP->new($FTP_Host,Timeout=>240) or $newerr=1; @@ -529,7 +529,7 @@ sub UploadVariation() { PrintMessage("Changing to dir $FTP_Dir"); $ftp->cwd($FTP_Dir) or $newerr=1; - + if ($newerr) { PrintErrorMessage("Changing to dir $FTP_Dir! Aborting!"); @@ -541,20 +541,20 @@ sub UploadVariation() # leave this for possible auto-deletion of old files? # @files = $ftp->dir or $newerr=1; # push @ERRORS, "Can't get file list $!\n" if $newerr; -# print "Got file list\n"; +# print "Got file list\n"; # foreach(@files) { # print "$_\n"; # } - + PrintMessage("Uploading $Package (".(-s "$output_dir/$Package")." bytes)"); - + $ftp->binary; $ftp->put("$output_dir/$Package") or $newerr=1; PrintErrorMessage("Uploading package! Aborting!") if $newerr; $PackagesUploaded++ if (!$newerr); - } + } - $ftp->quit; + $ftp->quit; } } @@ -594,7 +594,7 @@ sub CleanupPath() { $path =~ s/\"\Q$ECompXL_BinDir\E\";//g; } - + while( ($SDK, $RootDir) = each(%SDK_RootDirs) ) { if ($SDK_RootDirs{$SDK} ne '') @@ -602,8 +602,8 @@ sub CleanupPath() my $path_component = "\"".$SDK_RootDirs{$SDK}."\\epoc32\\"; $path =~ s/\Q$path_component\E.*?\";//g; } - } - + } + return $path; } @@ -634,4 +634,4 @@ sub PrintMessage() } ################################################################################################################## -
\ No newline at end of file + diff --git a/backends/platform/symbian/BuildPackageUpload_LocalSettings.pl b/backends/platform/symbian/BuildPackageUpload_LocalSettings.pl index 0d8efd5913..0275c2acd7 100644 --- a/backends/platform/symbian/BuildPackageUpload_LocalSettings.pl +++ b/backends/platform/symbian/BuildPackageUpload_LocalSettings.pl @@ -1,13 +1,13 @@ ################################################################################################################## - # you can use these below for speed & clarity or override with custom settings + # you can use these below for speed & clarity or override with custom settings $DefaultTopMacros = " MACRO USE_ZLIB // LIB:zlib.lib MACRO USE_MAD // LIB:libmad.lib MACRO USE_TREMOR // LIB:libtremor.lib "; - + $DefaultBottomMacros = " MACRO DISABLE_SWORD1 // LIB:scummvm_sword1.lib MACRO DISABLE_SWORD2 // LIB:scummvm_sword2.lib @@ -31,7 +31,7 @@ $HaltOnError = 1; $SkipExistingPackages = 0; $ReallyQuiet = 0; - + # specify an optional FTP server to upload to after each Build+Package (can leave empty) #$FTP_Host = "host.domain"; #$FTP_User = "test"; @@ -42,7 +42,7 @@ $FTP_User = "something"; $FTP_Pass = "password"; $FTP_Dir = "cvsbuilds"; - + # possible SDKs: ("UIQ2", UIQ3", "S60v1", "S60v2", "S60v3", "S80", "S90") # Note1: the \epoc32 directory needs to be in these rootdirs # Note2: these paths do NOT end in a backslash! @@ -67,12 +67,12 @@ #$SDK_LibraryDirs{'S90'}{'esdl.lib'} = "C:\\S\\ESDL\\epoc\\S90"; #$SDK_LibraryDirs{'ALL'}{'libmpeg2.lib'} = "C:\\S\\mpeg2dec-0.4.0\\epoc"; } - + # backup :P #Path=C:\Progra~1\Active\Python24\.;C:\Program Files\Active\Tcl\bin;C:\Progra~1\Active\Perl\bin\;C:\WINDOWS\system32;C:\W #INDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ATI Technologies\ATI Control Panel;C:\Program Files\GNU\cvsnt;C:\Progra #m Files\WinSCP3\;"C:\Program Files\Common Files\Microsoft Shared\VSA\8.0\VsaEnv\";"c:\Program Files\Microsoft Visual Stu - #dio 8\VC\bin";"C:\Program Files\UltraEdit-32" + #dio 8\VC\bin";"C:\Program Files\UltraEdit-32" } elsif ($ENV{'COMPUTERNAME'} eq "TSSLND0106") { @@ -81,12 +81,12 @@ $HaltOnError = 0; $SkipExistingPackages = 0; $ReallyQuiet = 0; - + #$FTP_Host = "host.com"; #$FTP_User = "ag@host.com"; #$FTP_Pass = "password"; #$FTP_Dir = "cvsbuilds"; - + #$SDK_RootDirs{'UIQ2'}= "C:\\UIQ2"; $SDK_RootDirs{'UIQ3'}= "C:\\UIQ3"; #$SDK_RootDirs{'S60v1'}= "C:\\S60v1"; @@ -115,12 +115,12 @@ elsif ($ENV{'COMPUTERNAME'} eq "BIGMACHINE") $HaltOnError = 0; $SkipExistingPackages = 1; $ReallyQuiet = 1; - + #$FTP_Host = "host.com"; #$FTP_User = "ag@host.com"; #$FTP_Pass = "password"; #$FTP_Dir = "cvsbuilds"; - + #$SDK_RootDirs{'UIQ2'}= "E:\\UIQ2"; $SDK_RootDirs{'UIQ3'}= "E:\\UIQ3"; #$SDK_RootDirs{'S60v1'}= "E:\\S60v1"; @@ -146,7 +146,7 @@ if (0) # so we can turn them on/off easily } else { - print "ERROR: Computer name ".$ENV{'COMPUTERNAME'}." not recognized! Plz edit _LocalSettings.pl!"; + print "ERROR: Computer name ".$ENV{'COMPUTERNAME'}." not recognized! Plz edit _LocalSettings.pl!"; exit 1; } @@ -156,7 +156,7 @@ if (0) # so we can turn them on/off easily # second hash index = literal string used in .sis file created. # empty string also removes the trailing '_'. Some 051101 examples: - + # $SDK_Variations{'UIQ2'}{''} would produce: # scummvm-051101-SymbianUIQ2.sis @@ -187,7 +187,7 @@ if (0) # so we can turn them on/off easily if (1) # all regular combo's { # the first one includes all SDKs & release-ready engines - + $SDK_Variations{'ALL'}{'all'} = "$DefaultTopMacros //MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib //MACRO DISABLE_AGOS // LIB:scummvm_agos.lib @@ -206,7 +206,7 @@ if (1) # all regular combo's $DefaultBottomMacros"; # now one for each ready-for-release engine - + $SDK_Variations{'ALL'}{'scumm'} = "$DefaultTopMacros //MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib MACRO DISABLE_AGOS // LIB:scummvm_agos.lib @@ -217,7 +217,7 @@ if (1) # all regular combo's MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib MACRO DISABLE_LURE // LIB:scummvm_lure.lib MACRO DISABLE_CINE // LIB:scummvm_cine.lib - MACRO DISABLE_AGI // LIB:scummvm_agi.lib + MACRO DISABLE_AGI // LIB:scummvm_agi.lib MACRO DISABLE_CRUISE // LIB:scummvm_cruise.lib MACRO DISABLE_IGOR // LIB:scummvm_igor.lib $DefaultBottomMacros"; @@ -247,7 +247,7 @@ if (1) # all regular combo's MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib MACRO DISABLE_LURE // LIB:scummvm_lure.lib MACRO DISABLE_CINE // LIB:scummvm_cine.lib - MACRO DISABLE_AGI // LIB:scummvm_agi.lib + MACRO DISABLE_AGI // LIB:scummvm_agi.lib MACRO DISABLE_CRUISE // LIB:scummvm_cruise.lib MACRO DISABLE_IGOR // LIB:scummvm_igor.lib $DefaultBottomMacros"; @@ -305,9 +305,9 @@ if (1) # all regular combo's MACRO DISABLE_GOB // LIB:scummvm_gob.lib MACRO DISABLE_SAGA // LIB:scummvm_saga.lib //MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib - MACRO DISABLE_AGI // LIB:scummvm_agi.lib + MACRO DISABLE_AGI // LIB:scummvm_agi.lib MACRO DISABLE_LURE // LIB:scummvm_lure.lib - MACRO DISABLE_CINE // LIB:scummvm_cine.lib + MACRO DISABLE_CINE // LIB:scummvm_cine.lib MACRO DISABLE_CRUISE // LIB:scummvm_cruise.lib MACRO DISABLE_IGOR // LIB:scummvm_igor.lib $DefaultBottomMacros"; @@ -317,7 +317,7 @@ if (1) # all regular combo's $SDK_Variations{'ALL'}{'saga_mini'} = " //MACRO USE_ZLIB // LIB:zlib.lib //MACRO USE_MAD // LIB:libmad.lib - //MACRO USE_TREMOR // LIB:libtremor.lib + //MACRO USE_TREMOR // LIB:libtremor.lib MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib MACRO DISABLE_AGOS // LIB:scummvm_agos.lib MACRO DISABLE_SKY // LIB:scummvm_sky.lib @@ -325,9 +325,9 @@ if (1) # all regular combo's MACRO DISABLE_GOB // LIB:scummvm_gob.lib //MACRO DISABLE_SAGA // LIB:scummvm_saga.lib MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib - MACRO DISABLE_AGI // LIB:scummvm_agi.lib + MACRO DISABLE_AGI // LIB:scummvm_agi.lib MACRO DISABLE_LURE // LIB:scummvm_lure.lib - MACRO DISABLE_CINE // LIB:scummvm_cine.lib + MACRO DISABLE_CINE // LIB:scummvm_cine.lib MACRO DISABLE_CRUISE // LIB:scummvm_cruise.lib MACRO DISABLE_IGOR // LIB:scummvm_igor.lib $DefaultBottomMacros"; @@ -337,7 +337,7 @@ if (1) # all regular combo's # MACRO USE_MAD // LIB:libmad.lib # //MACRO USE_TREMOR // LIB:libtremor.lib # MACRO DISABLE_SCUMM_7_8 -# MACRO DISABLE_SCUMM_HE +# MACRO DISABLE_SCUMM_HE # //MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib # MACRO DISABLE_AGOS // LIB:scummvm_agos.lib # MACRO DISABLE_SKY // LIB:scummvm_sky.lib @@ -345,17 +345,17 @@ if (1) # all regular combo's # MACRO DISABLE_GOB // LIB:scummvm_gob.lib # MACRO DISABLE_SAGA // LIB:scummvm_saga.lib # MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib -# MACRO DISABLE_AGI // LIB:scummvm_agi.lib +# MACRO DISABLE_AGI // LIB:scummvm_agi.lib # MACRO DISABLE_LURE // LIB:scummvm_lure.lib -# MACRO DISABLE_CINE // LIB:scummvm_cine.lib +# MACRO DISABLE_CINE // LIB:scummvm_cine.lib # MACRO DISABLE_CRUISE // LIB:scummvm_cruise.lib # $DefaultBottomMacros"; - + # $SDK_Variations{'ALL'}{'all_vorbis'} = " # MACRO USE_ZLIB // LIB:zlib.lib # MACRO USE_MAD // LIB:libmad.lib # MACRO USE_TREMOR // LIB:libtremor.lib -# +# # //MACRO DISABLE_SCUMM // LIB:scummvm_scumm.lib # //MACRO DISABLE_AGOS // LIB:scummvm_agos.lib # //MACRO DISABLE_SKY // LIB:scummvm_sky.lib @@ -372,10 +372,10 @@ if (1) # all regular combo's MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib MACRO DISABLE_GOB // LIB:scummvm_gob.lib MACRO DISABLE_SAGA // LIB:scummvm_saga.lib - MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib + MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib //MACRO DISABLE_LURE // LIB:scummvm_lure.lib MACRO DISABLE_CINE // LIB:scummvm_agi.lib - MACRO DISABLE_AGI // LIB:scummvm_agi.lib + MACRO DISABLE_AGI // LIB:scummvm_agi.lib MACRO DISABLE_CRUISE // LIB:scummvm_cruise.lib MACRO DISABLE_IGOR // LIB:scummvm_igor.lib $DefaultBottomMacros"; @@ -388,10 +388,10 @@ if (1) # all regular combo's MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib MACRO DISABLE_GOB // LIB:scummvm_gob.lib MACRO DISABLE_SAGA // LIB:scummvm_saga.lib - MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib + MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib MACRO DISABLE_LURE // LIB:scummvm_lure.lib //MACRO DISABLE_CINE // LIB:scummvm_cine.lib - MACRO DISABLE_AGI // LIB:scummvm_agi.lib + MACRO DISABLE_AGI // LIB:scummvm_agi.lib MACRO DISABLE_CRUISE // LIB:scummvm_cruise.lib MACRO DISABLE_IGOR // LIB:scummvm_igor.lib $DefaultBottomMacros"; @@ -403,7 +403,7 @@ if (1) # all regular combo's MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib MACRO DISABLE_GOB // LIB:scummvm_gob.lib MACRO DISABLE_SAGA // LIB:scummvm_saga.lib - MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib + MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib MACRO DISABLE_LURE // LIB:scummvm_lure.lib MACRO DISABLE_CINE // LIB:scummvm_cine.lib //MACRO DISABLE_AGI // LIB:scummvm_agi.lib @@ -419,16 +419,16 @@ if (1) # all regular combo's MACRO DISABLE_QUEEN // LIB:scummvm_queen.lib MACRO DISABLE_GOB // LIB:scummvm_gob.lib MACRO DISABLE_SAGA // LIB:scummvm_saga.lib - MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib + MACRO DISABLE_KYRA // LIB:scummvm_kyra.lib MACRO DISABLE_LURE // LIB:scummvm_lure.lib MACRO DISABLE_CINE // LIB:scummvm_cine.lib - MACRO DISABLE_AGI // LIB:scummvm_agi.lib + MACRO DISABLE_AGI // LIB:scummvm_agi.lib MACRO DISABLE_CRUISE // LIB:scummvm_cruise.lib //MACRO DISABLE_TOUCHE // LIB:scummvm_touche.lib MACRO DISABLE_SWORD1 // LIB:scummvm_sword1.lib MACRO DISABLE_SWORD2 // LIB:scummvm_sword2.lib - MACRO DISABLE_PARALLACTION // LIB:scummvm_parallaction.lib - MACRO DISABLE_DRASCULA // LIB:scummvm_drascula.lib + MACRO DISABLE_PARALLACTION // LIB:scummvm_parallaction.lib + MACRO DISABLE_DRASCULA // LIB:scummvm_drascula.lib MACRO DISABLE_IGOR // LIB:scummvm_igor.lib "; } diff --git a/backends/platform/symbian/README b/backends/platform/symbian/README index 1ed9c6faf6..0f9df338c3 100644 --- a/backends/platform/symbian/README +++ b/backends/platform/symbian/README @@ -1,20 +1,20 @@ ScummVM - ScummVM ported to EPOC/SymbianOS - + Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson Copyright (C) 2007 Lars 'AnotherGuest' Persson Copyright (C) 2007 Jurgen 'SumthinWicked' Braam Copyright (C) 2007 ScummVM Team - - $Id$ - - + + $Id$ + + About ScummVM -------------- The original ports (uptil 0.7.1) were made by Andreas Karlsson and Lars Persson. The main transition to 0.8.0CVS and all relevant changes were done by Jurgen Braam. Jurgen and Lars have successfully transfered all needed changes into CVS, with additional helpful tools for Symbian OS - + Release version: 0.10.0 * This version is only supported on Symbian OS 9 devices due to compiler constraints for older devices. (That means UIQ3 and S60V3 devices) * Updated to SDL version 1.2.11 (previous version used was 1.2.8) @@ -30,13 +30,13 @@ Games supported Building ScummVM ---------------------- +--------------------- Nescessary components --------------------- Building ScummVM yourself using the UIQ 2.1/Nokia S60 SDK/Nokia S80 SDK/Nokia S90 SDK framework is not an easy task! - Lets just say the framework needs quite some time to set up and takes a while - to get used to. If you choose to continue you will need the following items: + Lets just say the framework needs quite some time to set up and takes a while + to get used to. If you choose to continue you will need the following items: - UIQ 2.1 SDK (To build for UIQ2 devices); http://www.symbian.com/developer/sdks_uiq.asp @@ -49,13 +49,13 @@ Building ScummVM - ECompXL, an EPOC application compression library http://www.yipton.demon.co.uk/ecompxl/latest/readme.html (To build for UIQ devices) - - - libsdl, Simple Directmedia Layer, a cross-platform multimedia library + + - libsdl, Simple Directmedia Layer, a cross-platform multimedia library http://www.libsdl.org/ (see note about ESDL below) - libmad, a high-quality MPEG audio decoder - http://www.underbit.com/products/mad/ - + http://www.underbit.com/products/mad/ + - zlib, a massively spiffy yet delicately unobtrusive compression library http://www.zlib.net/ @@ -63,60 +63,60 @@ Building ScummVM - libogg, the free media file container format http://www.xiph.org/ogg/ - + - libvorbis, the free audio codec http://www.vorbis.com/ - + - flac, the Free Lossless Audio Codec http://flac.sourceforge.net/ - + - libmpeg2, a free MPEG-2 video stream decoder http://libmpeg2.sourceforge.net/ Compiling ScummVM ----------------- - - ECompXL (Only needed for UIQ2): + + ECompXL (Only needed for UIQ2): this is a tool that will compress your executable with GZIP and glue it to a predefined loader app. The app will uncompress your application at runtime and run it without you even knowing it. A really interesting byproduct - of this method is that the general restriction of not having any writeable + of this method is that the general restriction of not having any writeable static data (WSD) for Symbian APP executables no longer applies. This makes the life of an EPOC porter a lot easier! To install this tool you need to add its \bin path to your PATH above the sybmian epocs32\tools path, so that ECompXL's - PETRAN.EXE will be the executable that is started. + PETRAN.EXE will be the executable that is started. - - SDL: the latest version of SDL at this point in time is 1.2.12. This version + + SDL: the latest version of SDL at this point in time is 1.2.12. This version works great for compiling on other platforms. - - zlib: the zlib-x.x.x.tar.gz does not come with UIQ .mpp build files, that's why - I added them for you in epoc-zlib.zip. Extract in <DevRoot>/zlib/ which will + + zlib: the zlib-x.x.x.tar.gz does not come with UIQ .mpp build files, that's why + I added them for you in epoc-zlib.zip. Extract in <DevRoot>/zlib/ which will create the epoc dir. In <DevRoot>/zlib/epoc/ go: > bldmake bldfiles > abld build libmad: the libmad-x.x.x.tar.gz does not come with UIQ .mpp build files, that's - why I added them for you in epoc-libmad.zip. Extract in <DevRoot>/libmad/ which + why I added them for you in epoc-libmad.zip. Extract in <DevRoot>/libmad/ which will create the epoc dir. In <DevRoot>/libmad/epoc/ go: > bldmake bldfiles > abld build - ScummVM: + ScummVM: In <DevRoot>\scummvm\backends\platform\symbian\ go: - a) Edit and update the BuildPackageUpload_LocalSettings.pl for the kind of build (SDK installed etc) and variants + a) Edit and update the BuildPackageUpload_LocalSettings.pl for the kind of build (SDK installed etc) and variants you want to build. - b) Run BuildPackageUpload_AllVersions.pl to build all the targets/variants that you have configured. + b) Run BuildPackageUpload_AllVersions.pl to build all the targets/variants that you have configured. A detailed log will be placed in the symbian folder with Build.err.log and Build.out.log but it also depends on the configuration you select. - - Now you should have yourself a nice ScummVM_xxx.sis installer package in the packages folder for use + + Now you should have yourself a nice ScummVM_xxx.sis installer package in the packages folder for use on your phone. Please note that for development it will be a lot faster if you transfer the SCUMMVM.APP/Scummvm.EXE file directly to your !:\system\apps\ScummVM\ dir! Platforms can be one of: ARMi, ARM4, THUMB, WINS, WINSCW, GCCE. The SE P900 uses the ARMi platform, - which is a combined ARM4/THUMB programming mode. Configurations can be one of: + which is a combined ARM4/THUMB programming mode. Configurations can be one of: UREL or UDEB. @@ -130,11 +130,11 @@ Greetz & such - the entire ScummVM Dev team for making a kicka$$ program - the folks in #scummvm @ irc.freenode.net for their help, confort and support - everybody else who wants to give me 'the look' for not including them here :P - + it's been swell, gotta go now, - + greetz, SumthinWicked & Anotherguest - + diff --git a/backends/platform/symbian/S60/ScummVM_S60.mmp.in b/backends/platform/symbian/S60/ScummVM_S60.mmp.in index 83aba4e2f2..2720264971 100644 --- a/backends/platform/symbian/S60/ScummVM_S60.mmp.in +++ b/backends/platform/symbian/S60/ScummVM_S60.mmp.in @@ -65,7 +65,7 @@ USERINCLUDE ..\..\..\..\backends\fs ..\src ..\..\..\..\backends\platform\sdl .. SYSTEMINCLUDE \epoc32\include\ESDL SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version -SYSTEMINCLUDE \epoc32\include\libc +SYSTEMINCLUDE \epoc32\include\libc SYSTEMINCLUDE \epoc32\include SYSTEMINCLUDE ..\src // for portdefs.h @@ -86,8 +86,8 @@ SOURCE backends\platform\sdl\events.cpp SOURCE backends\platform\sdl\graphics.cpp SOURCE backends\platform\sdl\sdl.cpp SOURCE backends\fs\symbian\symbian-fs.cpp -SOURCE backends\platform\symbian\src\SymbianOS.cpp -SOURCE backends\platform\symbian\src\SymbianActions.cpp +SOURCE backends\platform\symbian\src\SymbianOS.cpp +SOURCE backends\platform\symbian\src\SymbianActions.cpp SOURCE backends\platform\symbian\src\ScummApp.cpp SOURCE gui\Key.cpp @@ -99,8 +99,8 @@ source graphics\iff.cpp // *** Dynamic Libraries -LIBRARY cone.lib eikcore.lib -LIBRARY euser.lib apparc.lib fbscli.lib +LIBRARY cone.lib eikcore.lib +LIBRARY euser.lib apparc.lib fbscli.lib LIBRARY estlib.lib apgrfx.lib LIBRARY gdi.lib hal.lib bitgdi.lib LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib diff --git a/backends/platform/symbian/S60/ScummVM_S60_App.mmp b/backends/platform/symbian/S60/ScummVM_S60_App.mmp index 6caf91009b..0f58881584 100644 --- a/backends/platform/symbian/S60/ScummVM_S60_App.mmp +++ b/backends/platform/symbian/S60/ScummVM_S60_App.mmp @@ -43,7 +43,7 @@ sourcepath .. AIF ScummVm.Aif ..\res\ ScummVmAif.rss c16 ScummL.bmp ScummLM.bmp ScummS.bmp ScummSM.bmp // libraries -LIBRARY cone.lib EIKCORE.lib -LIBRARY euser.lib apparc.lib +LIBRARY cone.lib EIKCORE.lib +LIBRARY euser.lib apparc.lib LIBRARY efsrv.lib apgrfx.lib LIBRARY avkon.lib diff --git a/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v1.pkg b/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v1.pkg index 9bb133c67f..bf3c69ae08 100644 --- a/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v1.pkg +++ b/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v1.pkg @@ -15,8 +15,8 @@ ; along with this program; if not, write to the Free Software ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ; -; $URL: -; $Id: +; $URL:$ +; $Id:$ ; ; @@ -60,4 +60,4 @@ ""-"!:\system\apps\ScummVM\sdl.ini",FILENULL ; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini. -; It will remove the config file, std***.txt files & dirs on uninstall.
\ No newline at end of file +; It will remove the config file, std***.txt files & dirs on uninstall. diff --git a/backends/platform/symbian/S60v3/ScummVM_Loc.rss b/backends/platform/symbian/S60v3/ScummVM_Loc.rss index 83a8cfcc4c..d6800b3b20 100644 --- a/backends/platform/symbian/S60v3/ScummVM_Loc.rss +++ b/backends/platform/symbian/S60v3/ScummVM_Loc.rss @@ -9,9 +9,9 @@ RESOURCE LOCALISABLE_APP_INFO { // The caption text is defined in the rls file caption = "ScummVM"; - // Icons are used to represent applications in the + // Icons are used to represent applications in the // application launcher and application title bar. - // The number_of_icons value identifies how many icons + // The number_of_icons value identifies how many icons // that exist in the icon_file. number_of_icons = 3; // Using the application icons. diff --git a/backends/platform/symbian/S60v3/ScummVM_S60v3.mmp.in b/backends/platform/symbian/S60v3/ScummVM_S60v3.mmp.in index ba5242bdfc..ae43031356 100644 --- a/backends/platform/symbian/S60v3/ScummVM_S60v3.mmp.in +++ b/backends/platform/symbian/S60v3/ScummVM_S60v3.mmp.in @@ -30,7 +30,7 @@ TARGET ScummVM.exe TARGETPATH sys\bin TARGETTYPE exe -UID 0x100039ce 0xA0000657 +UID 0x100039ce 0xA0000657 START RESOURCE ScummVM_reg.rss TARGETPATH \private\10003a3f\apps @@ -48,7 +48,7 @@ TARGETPATH \Resource\Apps LANG SC END -EPOCSTACKSIZE 80000 +EPOCSTACKSIZE 80000 EPOCHEAPSIZE 3000000 32000000 START BITMAP ScummVM.mbm @@ -91,7 +91,7 @@ USERINCLUDE ..\..\..\..\backends\fs ..\src ..\..\..\..\backends\platform\sdl .. SYSTEMINCLUDE \epoc32\include\ESDL SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version -SYSTEMINCLUDE \epoc32\include\libc +SYSTEMINCLUDE \epoc32\include\libc SYSTEMINCLUDE \epoc32\include SYSTEMINCLUDE ..\src // for portdefs.h @@ -112,8 +112,8 @@ SOURCE backends\platform\sdl\events.cpp SOURCE backends\platform\sdl\graphics.cpp SOURCE backends\platform\sdl\sdl.cpp SOURCE backends\fs\abstract-fs-factory.cpp -SOURCE backends\platform\symbian\src\SymbianOS.cpp -SOURCE backends\platform\symbian\src\SymbianActions.cpp +SOURCE backends\platform\symbian\src\SymbianOS.cpp +SOURCE backends\platform\symbian\src\SymbianActions.cpp SOURCE backends\platform\symbian\src\ScummApp.cpp SOURCE gui\Key.cpp @@ -124,8 +124,8 @@ SOURCE gui\Actions.cpp source graphics\iff.cpp // *** Dynamic Libraries -LIBRARY cone.lib eikcore.lib -LIBRARY euser.lib apparc.lib fbscli.lib +LIBRARY cone.lib eikcore.lib +LIBRARY euser.lib apparc.lib fbscli.lib LIBRARY estlib.lib apgrfx.lib LIBRARY gdi.lib hal.lib bitgdi.lib LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib diff --git a/backends/platform/symbian/S60v3/icons.mk b/backends/platform/symbian/S60v3/icons.mk index 5f17dd7b8b..fdd09bffc4 100644 --- a/backends/platform/symbian/S60v3/icons.mk +++ b/backends/platform/symbian/S60v3/icons.mk @@ -20,7 +20,7 @@ LIB : do_nothing CLEANLIB : do_nothing
-RESOURCE :
+RESOURCE :
mifconv $(ICONTARGETFILENAME) \
/c32 ..\res\scummvm.svg
@@ -31,4 +31,4 @@ SAVESPACE : do_nothing RELEASABLES :
@echo $(ICONTARGETFILENAME)
-FINAL : do_nothing
\ No newline at end of file +FINAL : do_nothing
diff --git a/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg b/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg index 89cff15a38..a7126db4c8 100644 --- a/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg +++ b/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg @@ -15,8 +15,8 @@ ; along with this program; if not, write to the Free Software ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ; -; $URL: -; $Id: +; $URL:$ +; $Id:$ ; ; @@ -71,4 +71,4 @@ ""-"c:\data\scummvm\sdl.ini",FILENULL ; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini. -; It will remove the config file, std***.txt files & dirs on uninstall.
\ No newline at end of file +; It will remove the config file, std***.txt files & dirs on uninstall. diff --git a/backends/platform/symbian/S60v3/scummvm_reg.rss b/backends/platform/symbian/S60v3/scummvm_reg.rss index df99094b2e..1156694bd7 100644 --- a/backends/platform/symbian/S60v3/scummvm_reg.rss +++ b/backends/platform/symbian/S60v3/scummvm_reg.rss @@ -1,14 +1,14 @@ -// All registration files need to #include appinfo.rh. +// All registration files need to #include appinfo.rh. #include <AppInfo.rh> -// All registration files must define UID2, which is always +// All registration files must define UID2, which is always // KUidAppRegistrationResourceFile, and UID3, which is the application's UID. UID2 KUidAppRegistrationResourceFile UID3 0xA0000657 // application UID // Registration file need to containo an APP_REGISTRATION_INFO resource that -// minimally needs to provide the name of the application binary (using the -// app_file statement). +// minimally needs to provide the name of the application binary (using the +// app_file statement). RESOURCE APP_REGISTRATION_INFO { app_file = "ScummVM"; // filename of application binary (minus extension) diff --git a/backends/platform/symbian/S80/ScummVM_S80.mmp.in b/backends/platform/symbian/S80/ScummVM_S80.mmp.in index 4bcb64060b..326e895941 100644 --- a/backends/platform/symbian/S80/ScummVM_S80.mmp.in +++ b/backends/platform/symbian/S80/ScummVM_S80.mmp.in @@ -63,7 +63,7 @@ USERINCLUDE ..\..\..\..\backends\fs ..\src ..\..\..\..\backends\platform\sdl .. SYSTEMINCLUDE \epoc32\include\ESDL SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version -SYSTEMINCLUDE \epoc32\include\libc +SYSTEMINCLUDE \epoc32\include\libc SYSTEMINCLUDE \epoc32\include SYSTEMINCLUDE ..\src // for portdefs.h @@ -84,8 +84,8 @@ SOURCE backends\platform\sdl\events.cpp SOURCE backends\platform\sdl\graphics.cpp SOURCE backends\platform\sdl\sdl.cpp SOURCE backends\fs\symbian\symbian-fs.cpp -SOURCE backends\platform\symbian\src\SymbianOS.cpp -SOURCE backends\platform\symbian\src\SymbianActions.cpp +SOURCE backends\platform\symbian\src\SymbianOS.cpp +SOURCE backends\platform\symbian\src\SymbianActions.cpp SOURCE backends\platform\symbian\src\ScummApp.cpp SOURCE gui\Key.cpp @@ -97,8 +97,8 @@ source graphics\iff.cpp // *** Dynamic Libraries -LIBRARY cone.lib eikcore.lib -LIBRARY euser.lib apparc.lib fbscli.lib +LIBRARY cone.lib eikcore.lib +LIBRARY euser.lib apparc.lib fbscli.lib LIBRARY estlib.lib apgrfx.lib LIBRARY gdi.lib hal.lib bitgdi.lib LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib bafl.lib diff --git a/backends/platform/symbian/S80/ScummVM_S80_App.mmp b/backends/platform/symbian/S80/ScummVM_S80_App.mmp index 09fa822bc7..2754eb49c6 100644 --- a/backends/platform/symbian/S80/ScummVM_S80_App.mmp +++ b/backends/platform/symbian/S80/ScummVM_S80_App.mmp @@ -44,6 +44,6 @@ sourcepath .. AIF ScummVm.Aif ..\res\ ScummVmAif.rss c16 ScummL.bmp ScummLM.bmp ScummS.bmp ScummSM.bmp // libraries -LIBRARY cone.lib EIKCORE.lib -LIBRARY euser.lib apparc.lib +LIBRARY cone.lib EIKCORE.lib +LIBRARY euser.lib apparc.lib LIBRARY efsrv.lib apgrfx.lib diff --git a/backends/platform/symbian/S80/scummvm-CVS-SymbianS80.pkg b/backends/platform/symbian/S80/scummvm-CVS-SymbianS80.pkg index 675ce525cd..30c92304b8 100644 --- a/backends/platform/symbian/S80/scummvm-CVS-SymbianS80.pkg +++ b/backends/platform/symbian/S80/scummvm-CVS-SymbianS80.pkg @@ -15,8 +15,8 @@ ; along with this program; if not, write to the Free Software ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ; -; $URL: -; $Id: +; $URL:$ +; $Id:$ ; ; @@ -59,4 +59,4 @@ ""-"!:\system\apps\ScummVM\sdl.ini",FILENULL ; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini. -; It will remove the config file, std***.txt files & dirs on uninstall.
\ No newline at end of file +; It will remove the config file, std***.txt files & dirs on uninstall. diff --git a/backends/platform/symbian/S90/Scummvm_S90.mmp.in b/backends/platform/symbian/S90/Scummvm_S90.mmp.in index e55acc63b1..df8872515f 100644 --- a/backends/platform/symbian/S90/Scummvm_S90.mmp.in +++ b/backends/platform/symbian/S90/Scummvm_S90.mmp.in @@ -42,7 +42,7 @@ EPOCHEAPSIZE 1024 161920000 MACRO S90 -//START_AUTO_MACROS_SLAVE// +//START_AUTO_MACROS_SLAVE// // empty base file, will be updated by Perl build scripts @@ -63,7 +63,7 @@ USERINCLUDE ..\..\..\..\backends\fs ..\src ..\..\..\..\backends\platform\sdl .. SYSTEMINCLUDE \epoc32\include\ESDL SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version -SYSTEMINCLUDE \epoc32\include\libc +SYSTEMINCLUDE \epoc32\include\libc SYSTEMINCLUDE \epoc32\include SYSTEMINCLUDE ..\src // for portdefs.h @@ -84,8 +84,8 @@ SOURCE backends\platform\sdl\events.cpp SOURCE backends\platform\sdl\graphics.cpp SOURCE backends\platform\sdl\sdl.cpp SOURCE backends\fs\symbian\symbian-fs.cpp -SOURCE backends\platform\symbian\src\SymbianOS.cpp -SOURCE backends\platform\symbian\src\SymbianActions.cpp +SOURCE backends\platform\symbian\src\SymbianOS.cpp +SOURCE backends\platform\symbian\src\SymbianActions.cpp SOURCE backends\platform\symbian\src\ScummApp.cpp SOURCE gui\Key.cpp @@ -97,8 +97,8 @@ source graphics\iff.cpp // *** Dynamic Libraries -LIBRARY cone.lib eikcore.lib -LIBRARY euser.lib apparc.lib fbscli.lib +LIBRARY cone.lib eikcore.lib +LIBRARY euser.lib apparc.lib fbscli.lib LIBRARY estlib.lib apgrfx.lib LIBRARY gdi.lib hal.lib bitgdi.lib bafl.lib LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib diff --git a/backends/platform/symbian/S90/Scummvm_S90_App.mmp b/backends/platform/symbian/S90/Scummvm_S90_App.mmp index 62a045e146..eea89fca4b 100644 --- a/backends/platform/symbian/S90/Scummvm_S90_App.mmp +++ b/backends/platform/symbian/S90/Scummvm_S90_App.mmp @@ -44,6 +44,6 @@ sourcepath .. AIF ScummVm.Aif ..\res\ ScummVmAif.rss c16 ScummL.bmp ScummLM.bmp ScummS.bmp ScummSM.bmp // libraries -LIBRARY cone.lib EIKCORE.lib -LIBRARY euser.lib apparc.lib -LIBRARY efsrv.lib apgrfx.lib
\ No newline at end of file +LIBRARY cone.lib EIKCORE.lib +LIBRARY euser.lib apparc.lib +LIBRARY efsrv.lib apgrfx.lib diff --git a/backends/platform/symbian/S90/scummvm-CVS-SymbianS90.pkg b/backends/platform/symbian/S90/scummvm-CVS-SymbianS90.pkg index ac6c18c9dc..5366207a62 100644 --- a/backends/platform/symbian/S90/scummvm-CVS-SymbianS90.pkg +++ b/backends/platform/symbian/S90/scummvm-CVS-SymbianS90.pkg @@ -15,8 +15,8 @@ ; along with this program; if not, write to the Free Software ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ; -; $URL: -; $Id: +; $URL:$ +; $Id:$ ; ; @@ -59,4 +59,4 @@ ""-"!:\system\apps\ScummVM\sdl.ini",FILENULL ; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini. -; It will remove the config file, std***.txt files & dirs on uninstall.
\ No newline at end of file +; It will remove the config file, std***.txt files & dirs on uninstall. diff --git a/backends/platform/symbian/UIQ2/ScummVM.rss b/backends/platform/symbian/UIQ2/ScummVM.rss index a55fabfc51..2c1d3d6971 100644 --- a/backends/platform/symbian/UIQ2/ScummVM.rss +++ b/backends/platform/symbian/UIQ2/ScummVM.rss @@ -27,10 +27,10 @@ NAME SCUM // Include definitions of resource STRUCTS used by this -// resource script +// resource script #include <eikon.rh> #include "..\src\Scummvm.hrh" -// Include the standard Eikon resource ids +// Include the standard Eikon resource ids #include <eikon.rsg> diff --git a/backends/platform/symbian/UIQ2/ScummVM_UIQ2.mmp.in b/backends/platform/symbian/UIQ2/ScummVM_UIQ2.mmp.in index 3e9c408c96..cfd6c27fd6 100644 --- a/backends/platform/symbian/UIQ2/ScummVM_UIQ2.mmp.in +++ b/backends/platform/symbian/UIQ2/ScummVM_UIQ2.mmp.in @@ -29,7 +29,7 @@ TARGET SCUMMVM.APP TARGETPATH system\apps\ScummVM TARGETTYPE app - + OPTION MSVC /QIfist /Ob1 /Oy /GF // /QIfist disables use of __ftol2 to avoid linker probs with MS libc: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcrefQIfistSuppress_ftol.asp OPTION GCC -Wno-multichar -Wno-reorder // don't optimize for ARM, platform way too sensitive for that :( just turn off some common warnings @@ -61,7 +61,7 @@ USERINCLUDE ..\..\..\..\backends\fs ..\src ..\..\..\..\backends\platform\sdl .. SYSTEMINCLUDE \epoc32\include\ESDL SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version -SYSTEMINCLUDE \epoc32\include\libc +SYSTEMINCLUDE \epoc32\include\libc SYSTEMINCLUDE \epoc32\include SYSTEMINCLUDE ..\src // for portdefs.h @@ -82,8 +82,8 @@ SOURCE backends\platform\sdl\events.cpp SOURCE backends\platform\sdl\graphics.cpp SOURCE backends\platform\sdl\sdl.cpp SOURCE backends\fs\symbian\symbian-fs.cpp -SOURCE backends\platform\symbian\src\SymbianOS.cpp -SOURCE backends\platform\symbian\src\SymbianActions.cpp +SOURCE backends\platform\symbian\src\SymbianOS.cpp +SOURCE backends\platform\symbian\src\SymbianActions.cpp SOURCE backends\platform\symbian\src\ScummApp.cpp SOURCE gui\Key.cpp @@ -95,8 +95,8 @@ source graphics\iff.cpp // *** Dynamic Libraries -LIBRARY cone.lib eikcore.lib -LIBRARY euser.lib apparc.lib fbscli.lib +LIBRARY cone.lib eikcore.lib +LIBRARY euser.lib apparc.lib fbscli.lib LIBRARY estlib.lib apgrfx.lib LIBRARY gdi.lib hal.lib LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib diff --git a/backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2.pkg b/backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2.pkg index d55d70c823..aca927eadd 100644 --- a/backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2.pkg +++ b/backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2.pkg @@ -15,8 +15,8 @@ ; along with this program; if not, write to the Free Software ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ; -; $URL: -; $Id: +; $URL:$ +; $Id:$ ; ; @@ -58,4 +58,4 @@ ""-"!:\system\apps\ScummVM\sdl.ini",FILENULL ; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini. -; It will remove the config file, std***.txt files & dirs on uninstall.
\ No newline at end of file +; It will remove the config file, std***.txt files & dirs on uninstall. diff --git a/backends/platform/symbian/UIQ3/ScummVM.rss b/backends/platform/symbian/UIQ3/ScummVM.rss index 9430f4a2ba..71e9ac8881 100644 --- a/backends/platform/symbian/UIQ3/ScummVM.rss +++ b/backends/platform/symbian/UIQ3/ScummVM.rss @@ -27,11 +27,11 @@ NAME SCUM // Include definitions of resource STRUCTS used by this -// resource script +// resource script #include <eikon.rh> #include <qikon.rh> #include "..\src\Scummvm.hrh" -// Include the standard Eikon resource ids +// Include the standard Eikon resource ids #include <eikon.rsg> diff --git a/backends/platform/symbian/UIQ3/ScummVM_UIQ3.mmp.in b/backends/platform/symbian/UIQ3/ScummVM_UIQ3.mmp.in index 3fcecdac75..0b43f7b4c6 100644 --- a/backends/platform/symbian/UIQ3/ScummVM_UIQ3.mmp.in +++ b/backends/platform/symbian/UIQ3/ScummVM_UIQ3.mmp.in @@ -29,8 +29,8 @@ TARGET ScummVM.exe TARGETPATH sys\bin TARGETTYPE exe - -UID 0x100039ce 0xA0000657 + +UID 0x100039ce 0xA0000657 START RESOURCE ScummVM_reg.rss TARGETPATH \private\10003a3f\apps @@ -48,7 +48,7 @@ TARGETPATH \Resource\Apps LANG SC END -EPOCSTACKSIZE 80000 +EPOCSTACKSIZE 80000 EPOCHEAPSIZE 3000000 32000000 START BITMAP ScummVM.mbm @@ -91,7 +91,7 @@ USERINCLUDE ..\..\..\..\backends\fs ..\src ..\..\..\..\backends\platform\sdl .. SYSTEMINCLUDE \epoc32\include\ESDL SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version -SYSTEMINCLUDE \epoc32\include\libc +SYSTEMINCLUDE \epoc32\include\libc SYSTEMINCLUDE \epoc32\include SYSTEMINCLUDE ..\src // for portdefs.h @@ -112,8 +112,8 @@ SOURCE backends\platform\sdl\events.cpp SOURCE backends\platform\sdl\graphics.cpp SOURCE backends\platform\sdl\sdl.cpp SOURCE backends\fs\abstract-fs-factory.cpp -SOURCE backends\platform\symbian\src\SymbianOS.cpp -SOURCE backends\platform\symbian\src\SymbianActions.cpp +SOURCE backends\platform\symbian\src\SymbianOS.cpp +SOURCE backends\platform\symbian\src\SymbianActions.cpp SOURCE backends\platform\symbian\src\ScummApp.cpp SOURCE gui\Key.cpp @@ -124,10 +124,10 @@ SOURCE gui\Actions.cpp source graphics\iff.cpp // *** Dynamic Libraries -LIBRARY cone.lib eikcore.lib -LIBRARY euser.lib apparc.lib fbscli.lib +LIBRARY cone.lib eikcore.lib +LIBRARY euser.lib apparc.lib fbscli.lib LIBRARY estlib.lib apgrfx.lib LIBRARY gdi.lib hal.lib bitgdi.lib LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib LIBRARY qikctl.lib -library qikcore.lib bafl.lib eikcoctl.lib
\ No newline at end of file +library qikcore.lib bafl.lib eikcoctl.lib diff --git a/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg b/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg index 64300258d3..5d6ce01525 100644 --- a/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg +++ b/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg @@ -15,8 +15,8 @@ ; along with this program; if not, write to the Free Software ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ; -; $URL: -; $Id: +; $URL:$ +; $Id:$ ; ; @@ -69,4 +69,4 @@ ""-"c:\shared\scummvm\sdl.ini",FILENULL ; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini. -; It will remove the config file, std***.txt files & dirs on uninstall.
\ No newline at end of file +; It will remove the config file, std***.txt files & dirs on uninstall. diff --git a/backends/platform/symbian/UIQ3/scummvm_loc.rss b/backends/platform/symbian/UIQ3/scummvm_loc.rss index bd3bc5129f..201aacefa3 100644 --- a/backends/platform/symbian/UIQ3/scummvm_loc.rss +++ b/backends/platform/symbian/UIQ3/scummvm_loc.rss @@ -10,9 +10,9 @@ RESOURCE LOCALISABLE_APP_INFO { // The caption text is defined in the rls file caption = "ScummVM"; - // Icons are used to represent applications in the + // Icons are used to represent applications in the // application launcher and application title bar. - // The number_of_icons value identifies how many icons + // The number_of_icons value identifies how many icons // that exist in the icon_file. number_of_icons = 3; // Using the application icons. @@ -20,39 +20,39 @@ RESOURCE LOCALISABLE_APP_INFO } }; - view_list = - { - VIEW_DATA - { - uid = 0x10000001; - screen_mode = 0; - caption_and_icon = CAPTION_AND_ICON_INFO - { - }; - }, - VIEW_DATA - { + view_list = + { + VIEW_DATA + { + uid = 0x10000001; + screen_mode = 0; + caption_and_icon = CAPTION_AND_ICON_INFO + { + }; + }, + VIEW_DATA + { + uid = 0x10000001; + screen_mode = EQikScreenModeLandscape; + caption_and_icon = CAPTION_AND_ICON_INFO + { + }; + }, + VIEW_DATA + { uid = 0x10000001; - screen_mode = EQikScreenModeLandscape; - caption_and_icon = CAPTION_AND_ICON_INFO - { - }; - }, - VIEW_DATA - { - uid = 0x10000001; - screen_mode = EQikScreenModeSmallPortrait; - caption_and_icon = CAPTION_AND_ICON_INFO - { - }; + screen_mode = EQikScreenModeSmallPortrait; + caption_and_icon = CAPTION_AND_ICON_INFO + { + }; }, - VIEW_DATA - { - uid = 0x10000001; - screen_mode = EQikScreenModeSmallPortrait; - caption_and_icon = CAPTION_AND_ICON_INFO - { - }; + VIEW_DATA + { + uid = 0x10000001; + screen_mode = EQikScreenModeSmallPortrait; + caption_and_icon = CAPTION_AND_ICON_INFO + { + }; } }; } diff --git a/backends/platform/symbian/UIQ3/scummvm_reg.rss b/backends/platform/symbian/UIQ3/scummvm_reg.rss index df99094b2e..1156694bd7 100644 --- a/backends/platform/symbian/UIQ3/scummvm_reg.rss +++ b/backends/platform/symbian/UIQ3/scummvm_reg.rss @@ -1,14 +1,14 @@ -// All registration files need to #include appinfo.rh. +// All registration files need to #include appinfo.rh. #include <AppInfo.rh> -// All registration files must define UID2, which is always +// All registration files must define UID2, which is always // KUidAppRegistrationResourceFile, and UID3, which is the application's UID. UID2 KUidAppRegistrationResourceFile UID3 0xA0000657 // application UID // Registration file need to containo an APP_REGISTRATION_INFO resource that -// minimally needs to provide the name of the application binary (using the -// app_file statement). +// minimally needs to provide the name of the application binary (using the +// app_file statement). RESOURCE APP_REGISTRATION_INFO { app_file = "ScummVM"; // filename of application binary (minus extension) diff --git a/backends/platform/symbian/mmp/scummvm_base.mmp.in b/backends/platform/symbian/mmp/scummvm_base.mmp.in index 2ba09b473b..13df4c2460 100644 --- a/backends/platform/symbian/mmp/scummvm_base.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_base.mmp.in @@ -36,7 +36,7 @@ ALWAYS_BUILD_AS_ARM //START_AUTO_MACROS_MASTER// // empty base file, will be updated by Perl build scripts - + // list of possible MACROs: (will be replaced when generating scummvm_base.mmp) //MACRO USE_ZLIB // LIB:zlib.lib //MACRO USE_MAD // LIB:libmad.lib @@ -69,7 +69,7 @@ USERINCLUDE ..\..\..\..\backends\fs ..\src ..\..\..\..\backends\platform\sdl SYSTEMINCLUDE \epoc32\include\ESDL SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version -SYSTEMINCLUDE \epoc32\include\libc +SYSTEMINCLUDE \epoc32\include\libc SYSTEMINCLUDE \epoc32\include\tremor SYSTEMINCLUDE \epoc32\include SYSTEMINCLUDE ..\src // for portdefs.h diff --git a/backends/platform/symbian/mmp/scummvm_igor.mmp.in b/backends/platform/symbian/mmp/scummvm_igor.mmp.in index 8ae3d400df..fa9ea0b3f9 100644 --- a/backends/platform/symbian/mmp/scummvm_igor.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_igor.mmp.in @@ -50,6 +50,6 @@ SOURCEPATH ..\..\..\..\engines\igor // *** Include paths
-USERINCLUDE ..\..\..\..\engines
+USERINCLUDE ..\..\..\..\engines
USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\sound ..\src
SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src
diff --git a/backends/platform/symbian/mmp/scummvm_lure.mmp.in b/backends/platform/symbian/mmp/scummvm_lure.mmp.in index 29afe56182..5469c3e0af 100644 --- a/backends/platform/symbian/mmp/scummvm_lure.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_lure.mmp.in @@ -50,6 +50,6 @@ SOURCEPATH ..\..\..\..\engines\lure // *** Include paths -USERINCLUDE ..\..\..\..\engines +USERINCLUDE ..\..\..\..\engines USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\sound ..\src SYSTEMINCLUDE \epoc32\include \epoc32\include\libc ..\src diff --git a/backends/platform/symbian/mmp/scummvm_scumm.mmp.in b/backends/platform/symbian/mmp/scummvm_scumm.mmp.in index 16ae2e763a..a079297364 100644 --- a/backends/platform/symbian/mmp/scummvm_scumm.mmp.in +++ b/backends/platform/symbian/mmp/scummvm_scumm.mmp.in @@ -66,6 +66,6 @@ USERINCLUDE ..\..\..\..\engines ..\..\..\..\engines\scumm\smush ..\..\..\..\ USERINCLUDE ..\..\..\.. ..\..\..\..\common ..\..\..\..\gui ..\..\..\..\sound ..\src SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version -SYSTEMINCLUDE \epoc32\include\libc +SYSTEMINCLUDE \epoc32\include\libc SYSTEMINCLUDE \epoc32\include SYSTEMINCLUDE ..\src // for portdefs.h diff --git a/backends/platform/symbian/res/ScummVmAif.rss b/backends/platform/symbian/res/ScummVmAif.rss index ad222e550b..a25b78552d 100644 --- a/backends/platform/symbian/res/ScummVmAif.rss +++ b/backends/platform/symbian/res/ScummVmAif.rss @@ -30,7 +30,7 @@ RESOURCE AIF_DATA hidden=KAppNotHidden; embeddability=KAppNotEmbeddable; caption_list= - { + { CAPTION { code=ELangEnglish; caption="ScummVM"; }, CAPTION { code=ELangAmerican; caption="ScummVM"; }, CAPTION { code=ELangOther; caption="ScummVM"; } diff --git a/backends/platform/symbian/res/scummvm.rss b/backends/platform/symbian/res/scummvm.rss index 684e42f4e5..40a4aa4c11 100644 --- a/backends/platform/symbian/res/scummvm.rss +++ b/backends/platform/symbian/res/scummvm.rss @@ -26,10 +26,10 @@ NAME SCUM // Include definitions of resource STRUCTS used by this -// resource script +// resource script #include <eikon.rh> #include "..\src\Scummvm.hrh" -// Include the standard Eikon resource ids +// Include the standard Eikon resource ids #include <eikon.rsg> @@ -52,11 +52,11 @@ RESOURCE MENU_BAR r_scum_menubar // *** }; } -RESOURCE MENU_PANE r_scum_menu // *** Submenu +RESOURCE MENU_PANE r_scum_menu // *** Submenu { items = { - + MENU_ITEM{command = EEikCmdExit;txt = "Exit";} }; } diff --git a/backends/platform/symbian/src/ScummApp.cpp b/backends/platform/symbian/src/ScummApp.cpp index 3c3c0dc065..cb08ccdd42 100644 --- a/backends/platform/symbian/src/ScummApp.cpp +++ b/backends/platform/symbian/src/ScummApp.cpp @@ -30,7 +30,7 @@ #if defined (__WINS__) && !defined (__SERIES60_30__) && !defined (UIQ3) extern "C" int _chkstk(int /*a*/) { _asm { - push ecx + push ecx cmp eax,_PAGESIZE_ lea ecx,[esp] + 8 jb short lastpage @@ -66,7 +66,7 @@ _asm { // this function is called automatically by the SymbianOS to deliver the new CApaApplication object #if !defined (UIQ3) && !defined (S60V3) -EXPORT_C +EXPORT_C #endif CApaApplication* NewApplication() { // Return pointer to newly created CQMApp diff --git a/backends/platform/symbian/src/SymbianActions.cpp b/backends/platform/symbian/src/SymbianActions.cpp index 008bf3ccb5..8fc35e9f8d 100644 --- a/backends/platform/symbian/src/SymbianActions.cpp +++ b/backends/platform/symbian/src/SymbianActions.cpp @@ -35,10 +35,10 @@ namespace GUI { // SumthinWicked says: we either split our Actions like WinCE did with Pocket/Smartphone // or we put them in this file separated by #ifdefs, this one is up to you, AnotherGuest :) - -const Common::String actionNames[] = { - "Up", - "Down", + +const Common::String actionNames[] = { + "Up", + "Down", "Left", "Right", "Left Click", @@ -48,8 +48,8 @@ const Common::String actionNames[] = { "Zone", "Multi Function", "Swap character", - "Skip text", - "Pause", + "Skip text", + "Pause", "Fast mode", "Quit", "Debugger" @@ -100,7 +100,7 @@ SymbianActions::SymbianActions() void SymbianActions::initInstanceMain(OSystem *mainSystem) { Actions::initInstanceMain(mainSystem); - + // Mouse Up _action_enabled[ACTION_UP] = true; @@ -154,24 +154,24 @@ void SymbianActions::initInstanceGame() { _action_enabled[ACTION_SAVE] = false; else { _action_enabled[ACTION_SAVE] = true; - - if (is_queen) { + + if (is_queen) { _key_action[ACTION_SAVE].setKey(Common::ASCII_F5, Common::KEYCODE_F5); // F1 key for FOTAQ - } else if (is_sky) { - _key_action[ACTION_SAVE].setKey(Common::ASCII_F5, Common::KEYCODE_F5); - } else if (is_cine) { + } else if (is_sky) { + _key_action[ACTION_SAVE].setKey(Common::ASCII_F5, Common::KEYCODE_F5); + } else if (is_cine) { _key_action[ACTION_SAVE].setKey(Common::ASCII_F10, Common::KEYCODE_F10); // F10 - } else if (is_agi) { + } else if (is_agi) { _key_action[ACTION_SAVE].setKey(Common::ASCII_ESCAPE, Common::KEYCODE_ESCAPE); } else if (is_parallaction) { _key_action[ACTION_SAVE].setKey('s', Common::KEYCODE_s); - } else { + } else { _key_action[ACTION_SAVE].setKey(Common::ASCII_F5, Common::KEYCODE_F5); // F5 key } } // Quit _action_enabled[ACTION_QUIT] = true; - + // Skip text if (!is_cine && !is_parallaction) _action_enabled[ACTION_SKIP_TEXT] = true; @@ -184,7 +184,7 @@ void SymbianActions::initInstanceGame() { // Enable fast mode _action_enabled[ACTION_FASTMODE] = true; _key_action[ACTION_FASTMODE].setKey('f', Common::KEYCODE_f, KMOD_CTRL); - + // Swap character _action_enabled[ACTION_SWAPCHAR] = true; _key_action[ACTION_SWAPCHAR].setKey('b'); // b diff --git a/backends/platform/symbian/src/SymbianOS.cpp b/backends/platform/symbian/src/SymbianOS.cpp index bca7b86a07..e76f6a93df 100644 --- a/backends/platform/symbian/src/SymbianOS.cpp +++ b/backends/platform/symbian/src/SymbianOS.cpp @@ -47,7 +47,7 @@ namespace Symbian { // Show a simple Symbian Info win with Msg & exit void FatalError(const char *msg) { - TPtrC8 msgPtr((const TUint8 *)msg); + TPtrC8 msgPtr((const TUint8 *)msg); TBuf<512> msg16Bit; msg16Bit.Copy(msgPtr); #ifdef S60 @@ -60,7 +60,7 @@ void FatalError(const char *msg) { // make this easily available everywhere char* GetExecutablePath() { - return CSDLApp::GetExecutablePathCStr(); + return CSDLApp::GetExecutablePathCStr(); } } // namespace Symbian { @@ -89,12 +89,12 @@ bool OSystem_SDL_Symbian::hasFeature(Feature f) { } void OSystem_SDL_Symbian::setFeatureState(Feature f, bool enable) { - switch(f) { - case kFeatureVirtualKeyboard: - if (enable) { + switch(f) { + case kFeatureVirtualKeyboard: + if (enable) { } else { - + } break; case kFeatureDisableKeyFiltering: @@ -123,15 +123,15 @@ void OSystem_SDL_Symbian::initBackend() { #endif ConfMan.setInt("joystick_num", 0); // Symbian OS should have joystick_num set to 0 in the ini file , but uiq devices might refuse opening the joystick ConfMan.flushToDisk(); - + GUI::Actions::init(); OSystem_SDL::initBackend(); - + // Initialize global key mapping for Smartphones GUI::Actions* actions = GUI::Actions::Instance(); - actions->initInstanceMain(this); + actions->initInstanceMain(this); actions->loadMapping(); initZones(); } @@ -157,7 +157,7 @@ bool OSystem_SDL_Symbian::setGraphicsMode(const char * /*name*/) { void OSystem_SDL_Symbian::quitWithErrorMsg(const char * /*aMsg*/) { CEikonEnv::Static()->AlertWin(_L("quitWithErrorMsg()")) ; - + if (g_system) g_system->quit(); } @@ -171,7 +171,7 @@ void OSystem_SDL_Symbian::quit() { bool OSystem_SDL_Symbian::setSoundCallback(SoundProc proc, void *param) { // First save the proc and param - _sound_proc_param = param; + _sound_proc_param = param; _sound_proc = proc; SDL_AudioSpec desired; SDL_AudioSpec obtained; @@ -267,11 +267,11 @@ bool OSystem_SDL_Symbian::remapKey(SDL_Event &ev, Common::Event &event) { return false; for (TInt loop = 0; loop < GUI::ACTION_LAST; loop++) { - if (GUI::Actions::Instance()->getMapping(loop) == ev.key.keysym.sym && + if (GUI::Actions::Instance()->getMapping(loop) == ev.key.keysym.sym && GUI::Actions::Instance()->isEnabled(loop)) { // Create proper event instead switch(loop) { - case GUI::ACTION_UP: + case GUI::ACTION_UP: if (ev.type == SDL_KEYDOWN) { _km.y_vel = -1; _km.y_down_count = 1; @@ -282,7 +282,7 @@ bool OSystem_SDL_Symbian::remapKey(SDL_Event &ev, Common::Event &event) { event.type = Common::EVENT_MOUSEMOVE; fillMouseEvent(event, _km.x, _km.y); - return true; + return true; case GUI::ACTION_DOWN: if (ev.type == SDL_KEYDOWN) { @@ -295,7 +295,7 @@ bool OSystem_SDL_Symbian::remapKey(SDL_Event &ev, Common::Event &event) { event.type = Common::EVENT_MOUSEMOVE; fillMouseEvent(event, _km.x, _km.y); - return true; + return true; case GUI::ACTION_LEFT: if (ev.type == SDL_KEYDOWN) { @@ -337,8 +337,8 @@ bool OSystem_SDL_Symbian::remapKey(SDL_Event &ev, Common::Event &event) { case GUI::ACTION_ZONE: if (ev.type == SDL_KEYDOWN) { - int i; - + int i; + for (i=0; i < TOTAL_ZONES; i++) if (_km.x >= _zones[i].x && _km.y >= _zones[i].y && _km.x <= _zones[i].x + _zones[i].width && _km.y <= _zones[i].y + _zones[i].height @@ -352,7 +352,7 @@ bool OSystem_SDL_Symbian::remapKey(SDL_Event &ev, Common::Event &event) { _currentZone = 0; event.type = Common::EVENT_MOUSEMOVE; fillMouseEvent(event, _mouseXZone[_currentZone], _mouseYZone[_currentZone]); - SDL_WarpMouse(event.mouse.x, event.mouse.y); + SDL_WarpMouse(event.mouse.x, event.mouse.y); } return true; @@ -376,24 +376,24 @@ bool OSystem_SDL_Symbian::remapKey(SDL_Event &ev, Common::Event &event) { ev.key.keysym.scancode = 0; ev.key.keysym.mod = (SDLMod) key.flags(); - // Translate from SDL keymod event to Scummvm Key Mod Common::Event. + // Translate from SDL keymod event to Scummvm Key Mod Common::Event. // This codes is also present in GP32 backend and in SDL backend as a static function - // Perhaps it should be shared. - if (key.flags() != 0) { + // Perhaps it should be shared. + if (key.flags() != 0) { event.kbd.flags = 0; if (ev.key.keysym.mod & KMOD_SHIFT) event.kbd.flags |= Common::KBD_SHIFT; - + if (ev.key.keysym.mod & KMOD_ALT) event.kbd.flags |= Common::KBD_ALT; - + if (ev.key.keysym.mod & KMOD_CTRL) event.kbd.flags |= Common::KBD_CTRL; } return false; - } + } case GUI::ACTION_QUIT: { @@ -447,20 +447,20 @@ FILE* symbian_fopen(const char* name, const char* mode) { TInt modeLen = strlen(mode); TPtrC8 namePtr((unsigned char*) name, strlen(name)); - TFileName tempFileName; + TFileName tempFileName; tempFileName.Copy(namePtr); - + TInt fileMode = EFileRead; - + if (mode[0] == 'a') fileMode = EFileWrite; - + if (!((modeLen > 1 && mode[1] == 'b') || (modeLen > 2 && mode[2] == 'b'))) { fileMode |= EFileStreamText; } - + if ((modeLen > 1 && mode[1] == '+') || (modeLen > 2 && mode[2] == '+')) { - fileMode = fileMode| EFileWrite; + fileMode = fileMode| EFileWrite; } fileMode = fileMode| EFileShareAny; @@ -474,13 +474,13 @@ FILE* symbian_fopen(const char* name, const char* mode) { } } break; - case 'r': + case 'r': if (fileEntry->iFileHandle.Open(CEikonEnv::Static()->FsSession(), tempFileName, fileMode) != KErrNone) { delete fileEntry; fileEntry = NULL; } break; - + case 'w': if (fileEntry->iFileHandle.Replace(CEikonEnv::Static()->FsSession(), tempFileName, fileMode) != KErrNone) { delete fileEntry; @@ -502,7 +502,7 @@ size_t symbian_fread(const void* ptr, size_t size, size_t numItems, FILE* handle TPtr8 pointer( (unsigned char*) ptr, size*numItems); ((TSymbianFileEntry*)(handle))->iFileHandle.Read(pointer); - + return pointer.Length()/size; } @@ -552,7 +552,7 @@ int symbian_fseek(FILE* handle, long int offset, int whence) { case SEEK_END: seekMode = ESeekEnd; break; - + } return ((TSymbianFileEntry*)(handle))->iFileHandle.Seek(seekMode, pos); diff --git a/backends/platform/symbian/src/main_features.inl b/backends/platform/symbian/src/main_features.inl index 66b0c4b200..8a44d0edf2 100644 --- a/backends/platform/symbian/src/main_features.inl +++ b/backends/platform/symbian/src/main_features.inl @@ -24,7 +24,7 @@ "Vibra " #endif "\n" - + // we want a list of supported engines visible in the program, // because we also release special builds with only one engine #ifndef DISABLE_SCUMM diff --git a/backends/platform/symbian/src/portdefs.h b/backends/platform/symbian/src/portdefs.h index 4299eb59ad..cfaafe9ece 100644 --- a/backends/platform/symbian/src/portdefs.h +++ b/backends/platform/symbian/src/portdefs.h @@ -57,7 +57,7 @@ #define SIGND(fp) ((fp.l.upper) & SIGNBIT) #define HIDDEND_LL ((long long)1 << 52) #define MANTD_LL(fp) ((fp.ll & (HIDDEND_LL-1)) | HIDDEND_LL) - + union double_long { double d; struct { @@ -73,36 +73,36 @@ register union double_long dl1; register int exp; register long long l; - + dl1.d = a1; - + if (!dl1.l.upper && !dl1.l.lower) return (0); - + exp = EXPD (dl1) - EXCESSD - 64; l = MANTD_LL(dl1); - + if (exp > 0) { l = (long long)1<<63; if (!SIGND(dl1)) l--; return l; } - + /* shift down until exp = 0 or l = 0 */ if (exp < 0 && exp > -64 && l) l >>= -exp; else return (0); - + return (SIGND (dl1) ? -l : l); } - + /* okay, okay: I admit it: I absolutely have _NO_ idea why __fixdfdi does not get linked in by gcc from libgcc.a because I know it's in there: I checked with `ar x _fixdfdi.o libgcc.a` and the symbol is in there, so I'm lost and had to fix it this way. I tried all gcc and ld options I could find: no hope :( If someone can enlighten me: feel free to let me know at sumthinwicked@users.sf.net! Much obliged. - PS1. I think for __fixunsdfdi they have made a circumvention by having to add STATICLIBRARY EGCC.LIB + PS1. I think for __fixunsdfdi they have made a circumvention by having to add STATICLIBRARY EGCC.LIB PS2. http://gcc.gnu.org/ml/gcc-bugs/2004-01/msg01596.html might have found out the same problem there */ @@ -117,7 +117,7 @@ return strlen(str); } - int inline scumm_vsnprintf (char *str, unsigned long /*n*/, char const *fmt, va_list valist) { + int inline scumm_vsnprintf (char *str, unsigned long /*n*/, char const *fmt, va_list valist) { vsprintf(str, fmt, valist); return strlen(str); } diff --git a/backends/platform/wince/CEActionsPocket.cpp b/backends/platform/wince/CEActionsPocket.cpp index 805a9d9c08..81d03210a5 100644 --- a/backends/platform/wince/CEActionsPocket.cpp +++ b/backends/platform/wince/CEActionsPocket.cpp @@ -286,7 +286,7 @@ bool CEActionsPocket::perform(GUI::ActionType action, bool pushed) { return true; case POCKET_ACTION_RIGHT: _CESystem->move_cursor_right(); - return true; + return true; case POCKET_ACTION_QUIT: { GUI::MessageDialog alert(" Are you sure you want to quit ? ", "Yes", "No"); diff --git a/backends/platform/wince/CEActionsSmartphone.cpp b/backends/platform/wince/CEActionsSmartphone.cpp index fd67b16be9..7bc26a283d 100644 --- a/backends/platform/wince/CEActionsSmartphone.cpp +++ b/backends/platform/wince/CEActionsSmartphone.cpp @@ -226,7 +226,7 @@ bool CEActionsSmartphone::perform(GUI::ActionType action, bool pushed) { return true; case SMARTPHONE_ACTION_RIGHT: _CESystem->move_cursor_right(); - return true; + return true; case SMARTPHONE_ACTION_ZONE: _CESystem->switch_zone(); return true; diff --git a/backends/platform/wince/CEDevice.cpp b/backends/platform/wince/CEDevice.cpp index dccbc2208b..98a8fb95f6 100644 --- a/backends/platform/wince/CEDevice.cpp +++ b/backends/platform/wince/CEDevice.cpp @@ -102,7 +102,7 @@ void CEDevice::init() { backlight_xchg(); REG_tampered = true; SystemParametersInfo(SPI_GETBATTERYIDLETIMEOUT, 0, (void *) &bat_timeout, 0); - SystemParametersInfo(SPI_SETBATTERYIDLETIMEOUT, 60 * 60 * 2, NULL, SPIF_SENDCHANGE); + SystemParametersInfo(SPI_SETBATTERYIDLETIMEOUT, 60 * 60 * 2, NULL, SPIF_SENDCHANGE); } void CEDevice::end() { @@ -110,7 +110,7 @@ void CEDevice::end() { _ReleasePowerRequirement(_hPowerManagement); if (REG_tampered) backlight_xchg(); - SystemParametersInfo(SPI_SETBATTERYIDLETIMEOUT, bat_timeout, NULL, SPIF_SENDCHANGE); + SystemParametersInfo(SPI_SETBATTERYIDLETIMEOUT, bat_timeout, NULL, SPIF_SENDCHANGE); } void CEDevice::wakeUp() { diff --git a/backends/platform/wince/CEScaler.cpp b/backends/platform/wince/CEScaler.cpp index d225b908c9..f02d6dea0c 100644 --- a/backends/platform/wince/CEScaler.cpp +++ b/backends/platform/wince/CEScaler.cpp @@ -105,7 +105,7 @@ void PocketPCLandscapeAspect(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr p2 = *((uint16*)inbuf+j); inbuf += srcPitch16; *((uint16*)outbuf+j) = MAKEPIXEL(P20(RB(p1))+P80(RB(p2)),P20(G(p1))+P80(G(p2))); outbuf += dstPitch16; - p1 = p2; + p1 = p2; p2 = *((uint16*)inbuf+j); inbuf += srcPitch16; *((uint16*)outbuf+j) = MAKEPIXEL(P40(RB(p1))+P60(RB(p2)),P40(G(p1))+P60(G(p2))); outbuf += dstPitch16; @@ -118,10 +118,10 @@ void PocketPCLandscapeAspect(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr *((uint16*)outbuf+j) = MAKEPIXEL(P80(RB(p1))+P20(RB(p2)),P80(G(p1))+P20(G(p2))); outbuf += dstPitch16; *((uint16*)outbuf+j) = p2; - - inbuf = inbuf - srcPitch16*4; - outbuf = outbuf - dstPitch16*5; - } + + inbuf = inbuf - srcPitch16*4; + outbuf = outbuf - dstPitch16*5; + } inbuf = inbuf + srcPitch16*5; outbuf = outbuf + dstPitch16*6; } diff --git a/backends/platform/wince/Makefile b/backends/platform/wince/Makefile index 325cc11391..ea716b7b19 100644 --- a/backends/platform/wince/Makefile +++ b/backends/platform/wince/Makefile @@ -119,7 +119,7 @@ LIBS += -lzlib endif ifdef USE_MAD -DEFINES += -DUSE_MAD +DEFINES += -DUSE_MAD LIBS += -lmad endif @@ -157,17 +157,17 @@ endif EXECUTABLE = scummvm.exe CXXFLAGS := $(CFLAGS) -OBJS := +OBJS := MODULE_DIRS += . OBJS += CEActionsPocket.o CEDevice.o CEScaler.o \ - CEActionsSmartphone.o CELauncherDialog.o wince-sdl.o + CEActionsSmartphone.o CELauncherDialog.o wince-sdl.o OBJS += CEgui/GUIElement.o CEgui/Panel.o CEgui/SDL_ImageResource.o \ CEgui/ItemAction.o CEgui/PanelItem.o CEgui/Toolbar.o \ - CEgui/ItemSwitch.o CEgui/PanelKeyboard.o CEgui/ToolbarHandler.o + CEgui/ItemSwitch.o CEgui/PanelKeyboard.o CEgui/ToolbarHandler.o OBJS += CEkeys/EventsBuffer.o -OBJS += $(srcdir)/gui/Actions.o $(srcdir)/gui/Key.o $(srcdir)/gui/KeysDialog.o -OBJS += ../sdl/sdl.o ../sdl/graphics.o ../sdl/events.o +OBJS += $(srcdir)/gui/Actions.o $(srcdir)/gui/Key.o $(srcdir)/gui/KeysDialog.o +OBJS += ../sdl/sdl.o ../sdl/graphics.o ../sdl/events.o OBJS += missing/missing.o OBJS += ARMscaler.o ifndef BUILD_PLUGINS diff --git a/backends/platform/wince/README-WinCE.txt b/backends/platform/wince/README-WinCE.txt index bb9f88185e..f4cb00dcfa 100644 --- a/backends/platform/wince/README-WinCE.txt +++ b/backends/platform/wince/README-WinCE.txt @@ -12,14 +12,14 @@ In order to accommodate for the requirements of the lure engine, the usage characteristics of the 'Free Look' action have been improved. The new behavior is available for use in all engines, but is is *strongly* recommended for at least when playing 'Lure of the Temptress'. By using -the new scheme, when in 'Free Look' mode, it is now possible to enter -left clicks by clicking a second time near the current location of the +the new scheme, when in 'Free Look' mode, it is now possible to enter +left clicks by clicking a second time near the current location of the mouse pointer. Left and Right clicks at the current point location are also available by using the respective actions' bound key. - Reduced optimization build The ScummVM executable has grown quite large, prohibiting some devices -from running memory demanding games (or any games at all). Code +from running memory demanding games (or any games at all). Code optimization level has been reduced to offset the growth of the executable. Games run slightly slower. This will be addressed before next release. @@ -45,12 +45,12 @@ Official build -------------- The official build is based on the ARM architecture and should work with any -Pocket PC 2002, Pocket PC 2003, Pocket PC 2003 SE, Smartphone 2002, +Pocket PC 2002, Pocket PC 2003, Pocket PC 2003 SE, Smartphone 2002, Smartphone 2003 or Windows Mobile 5 and 6 based device. It is known to work on Pocket PC 2000 devices, but it has not been officially tested. -Support for old ARM architectures (Handheld PCs, Palm Size PCs) and other CPUs -(MIPS, SH3) is discontinued. Feel free to generate builds for these +Support for old ARM architectures (Handheld PCs, Palm Size PCs) and other CPUs +(MIPS, SH3) is discontinued. Feel free to generate builds for these architectures and contact us to include them on ScummVM website. Games supported @@ -60,14 +60,14 @@ The Windows CE port of ScummVM supports all available game engines. ScummVM distinguishes devices based on two characteristics: Type and resolution. Supported types of devices are Smartphones (usually no stylus) and Pocket PCs -(stylus). The supported resolutions are 176x220 (Smartphone), 240x240 (QVGA +(stylus). The supported resolutions are 176x220 (Smartphone), 240x240 (QVGA square), 240x320 (QVGA), 320x240 (QVGA landscape), 480x640 (VGA). Devices with resolutions larger than VGA should also be supported with automatic screen centering. * Low resolution Smartphones (176x220) -Support is only provided for all 320x200 or 320x240 games. The font can get +Support is only provided for all 320x200 or 320x240 games. The font can get hard to read (you should prefer talkie games, or wear glasses :-P) Games with 640x480 resolution such as COMI or BSWORD cannot be scaled down to this resolution and still be playable. @@ -81,7 +81,7 @@ Only 320x200 or 320x240 games are supported due to lack of downsampling scaler. All games are playable in these devices. Landscape devices may not be able to rotate the screen around. -* VGA (640x480) or higher Pocket PCs +* VGA (640x480) or higher Pocket PCs All non VGA games should work properly on these devices. They can be resized with different scalers. Moreover, VGA games will be displayed in true VGA mode. @@ -109,8 +109,8 @@ and report your success ... How do I install ScummVM for Windows CE ? ----------------------------------------- -Simple! Unpack the release package on your desktop pc, then copy all its contents -to a folder on your device. Typically, you should at least have scummvm.exe, +Simple! Unpack the release package on your desktop pc, then copy all its contents +to a folder on your device. Typically, you should at least have scummvm.exe, modern.ini and modern.zip in the same directory. Finally, upload your beloved games and fire it up :-) @@ -119,8 +119,8 @@ Some devices (like Pocket PC 2000) require GAPI to be present. How do I install a game ? ------------------------- -You'll at least need to copy all the data files from your game, in a -sub-directory of your game directory. +You'll at least need to copy all the data files from your game, in a +sub-directory of your game directory. You'll need to put the data files in a directory named after ScummVM game name (see "Supported Games" section in ScummVM readme) for the games having @@ -134,7 +134,7 @@ the ScummVM readme. If you are running these games on a slow device with Ogg Vorbis compression, it's recommended to sample the files to 11 kHz (this sample rate is not supported by other versions of ScummVM). -If you need more details, you can check SirDave's mini-manual online available +If you need more details, you can check SirDave's mini-manual online available at: http://forums.scummvm.org/viewtopic.php?t=936 and at: http://www.pocketmatrix.com/forums/viewtopic.php?t=8606 @@ -142,14 +142,14 @@ How do I run a game ? --------------------- If it's the first time you're running ScummVM for Windows CE, have installed or -removed games, you need to rescan your game directory. +removed games, you need to rescan your game directory. * Select Add Game, tap the root directory of your games, and tap "Yes" to begin - an automatic scan of the installed games. + an automatic scan of the installed games. -Usually all games are detected and you can start playing right away. If your +Usually all games are detected and you can start playing right away. If your game is not detected check its directory name and your data files. -To play a game, tap on its name then tap the "Start" button or double tap its +To play a game, tap on its name then tap the "Start" button or double tap its name. How do I play a game on a Pocket PC or Handheld PC device ? @@ -161,14 +161,14 @@ As the Pocket PC lacks some keys, a toolbar is displayed at the bottom of the screen to make the most common functions just a tap away * The disk icon opens ScummVM options menu to save your game, or change your current game settings (depends on the game) - * The movie icon skips a non interactive sequence, the current dialog or + * The movie icon skips a non interactive sequence, the current dialog or behaves like the ESC key on a regular keyboard (depends on the game) * The sound icon turns all sound effects and music off and on * The key icon allow you to map a key action to a device button * The monkey icon switches between portrait, landscape and inverse landscape mode (depends on the display drivers) -You can map additional actions on your device hardware buttons using the +You can map additional actions on your device hardware buttons using the "Options" / "Key" menu in the ScummVM options menu. To associate an action to a key, tap the action, then the "Map" button and press the hardware key. The following actions are available : @@ -176,17 +176,17 @@ The following actions are available : * Pause : pause the game * Save : open ScummVM option menu * Quit : quit ScummVM (without saving, be careful when using it) - * Skip : skip a non interactive sequence, the current dialog or + * Skip : skip a non interactive sequence, the current dialog or behaves like the ESC key on a regular keyboard * Hide : hide or display the toolbar * Keyboard : hide or display the virtual keyboard * Sound : turns all sound effects and music off and on * Right click : acts as a right mouse button click * Cursor : hide or display the mouse cursor - * Free look : go in or out of free-look mode. In this mode, you can tap + * Free look : go in or out of free-look mode. In this mode, you can tap the screen to look for interesting locations without walking. Cling a second time near the pointer's location equals to left click. - * Zoom up : magnify the upper part of the screen for 640x480 games + * Zoom up : magnify the upper part of the screen for 640x480 games rendered on a QVGA device. * Zoom down : magnify the lower part of the screen for 640x480 games rendered on a QVGA device. @@ -230,7 +230,7 @@ ratio correction) for better gaming experience. How do I play a game on a Smartphone device ? --------------------------------------------- -On non-stylus devices, the mouse cursor is emulated via a set of keys. +On non-stylus devices, the mouse cursor is emulated via a set of keys. The cursor will move faster if you keep the key down. You can tweak this behaviour in the configuration file described below. @@ -242,7 +242,7 @@ the list of available actions for Smartphones: Left Click : Right Click : * Save : open ScummVM option menu - * Skip : skip a non interactive sequence, the current dialog or + * Skip : skip a non interactive sequence, the current dialog or behaves like the ESC key on a regular keyboard * Zone : switch between the 3 different mouse zones * Multi Function : this key performs a different function depending on the game @@ -255,10 +255,10 @@ the list of available actions for Smartphones: * Rotate : rotate the screen (also rotates dpad keys) * Quit : quit ScummVM (without saving, be careful when using it) -The "Zone" key is a *very* valuable addition allowing you to jump quickly -between three screen zones : the game zone, the verbs zone and the inventory +The "Zone" key is a *very* valuable addition allowing you to jump quickly +between three screen zones : the game zone, the verbs zone and the inventory zone. When you switch to a zone the cursor will be reset to its former location -in this zone. +in this zone. The default key map for these actions is: @@ -287,11 +287,11 @@ Some parameters are specific to this port : Game specific sections (f.e. [monkey2]) - performance options - * high_sample_rate bool Desktop quality (22 kHz) sound output if set. - 11 kHz otherwise. The default is 11 kHz. + * high_sample_rate bool Desktop quality (22 kHz) sound output if set. + 11 kHz otherwise. The default is 11 kHz. If you have a fast device, you can set this to true to enjoy better sound effects and music. - * FM_high_quality bool Desktop quality FM synthesis if set. Lower + * FM_high_quality bool Desktop quality FM synthesis if set. Lower quality otherwise. The default is low quality. You can change this if you have a fast device. * sound_thread_priority int Set the priority of the sound thread (0, 1, 2). @@ -302,7 +302,7 @@ Game specific sections (f.e. [monkey2]) - performance options you prefer better audio/video synchronization. * Smush_force_redraw int Force a Smush frame redraw every X missed frames. Mainly used for Full Throttle action - sequences. Setting it lower gives more + sequences. Setting it lower gives more priority to screen redraws. Setting it higher gives more priority to stylus/keyboard input. The default is 30. @@ -316,7 +316,7 @@ Game specific sections (f.e. [monkey2]) - game options [scummvm] section - keys definition -You usually do not wish to modify these values directly, as they are set +You usually do not wish to modify these values directly, as they are set by the option dialog, and are only given here for reference. * action_mapping_version int Mapping version linked to ScummVM version. @@ -351,7 +351,7 @@ You can tweak these parameters to customize how the cursor is handled. repeated more than repeatY. ------------------------------------------------------------------------ -Game specific questions +Game specific questions ------------------------------------------------------------------------ --------------- @@ -432,9 +432,9 @@ You need to map the right click button (see the General Questions section). I'm experiencing random crashes ... ------------------------------------ -This game has high memory requirements, and may crash sometimes on low +This game has high memory requirements, and may crash sometimes on low memory devices. Continue your game with the latest automatically saved -game and everything should be fine. +game and everything should be fine. You can consider removing the music and voice files (VOXDISK.BUN, MUSDISK.BUN) to lower these requirements. @@ -450,10 +450,10 @@ Use a faster device :-( I'm experiencing random crashes ... ------------------------------------ -This game has high memory requirements, and may crash sometimes on low +This game has high memory requirements, and may crash sometimes on low memory devices. Continue your game with the latest automatically saved -game and everything should be fine. -You can consider removing the voice file (MONSTER.SOU) and disable the +game and everything should be fine. +You can consider removing the voice file (MONSTER.SOU) and disable the music to lower these requirements. ---------------------------------------- @@ -499,9 +499,9 @@ quit the game. I'm experiencing random crashes ... ------------------------------------ -This game has high memory requirements, and may crash sometimes on low +This game has high memory requirements, and may crash sometimes on low memory devices. Continue your game with the latest automatically saved -game and everything should be fine. +game and everything should be fine. You can consider removing the music and voice files (VOXDISK.BUN, MUSDISK.BUN) to lower these requirements. @@ -568,7 +568,7 @@ with dpad enter. Check the main Readme file for more information on this. The control scheme is awkward (Pocket PCs) ------------------------------------------ Map and use the 'Free Look' action. Since normal pointer operation is to -enter a left click at each tap position, the free look mode enables +enter a left click at each tap position, the free look mode enables 'hovering' the mouse on an object, then right clicking either by using the double tap method or by pressing the 'Right Click' action. Also, a left click can be entered while in free look mode, by clicking a second time near the @@ -581,9 +581,9 @@ Support Help, I've read everything and ... ----------------------------------- -Luckily, as there is a huge variety of Windows CE devices, a specific forum +Luckily, as there is a huge variety of Windows CE devices, a specific forum is dedicated to this ScummVM port. You can ask your question on the WinCE -ScummVM forum available at http://forums.scummvm.org/viewforum.php?f=6 +ScummVM forum available at http://forums.scummvm.org/viewforum.php?f=6 Some older questions and very nice tutorials are still available on the historic PocketMatrix forum at http://www.pocketmatrix.com/forums/viewforum.php?f=20 @@ -593,7 +593,7 @@ many years now :) I think I found a bug, ScummVM crashes in ... --------------------------------------------- -See the "Reporting Bugs" section in ScummVM readme. +See the "Reporting Bugs" section in ScummVM readme. If you have a Pocket PC or Handheld PC, be sure to include its resolution (obtained on the second dialog displayed on the "About" menu) in your bug report. @@ -623,7 +623,7 @@ Old news follow ... Major improvements have taken place in this version, mostly for behind- the-scenes stuff. First, we have migrated to GCC for building the Windows CE port. This helped take care of some obscure compiler bugs which were -in there for quite a long time. It has also lead to efficient code +in there for quite a long time. It has also lead to efficient code generation due to GCC's advanced capabilities and consequently increased runtime speed. The second important change was the overhaul of the SDL library port. The benefits from this are twofold: The real-time code paths @@ -632,6 +632,6 @@ functions. Further, the screen display and mouse/keyboard input code has been partially rewritten to allow for increased compatibility across all devices. Due to the update of keyboard handling code, the keycodes have changed -slightly. Running this version of ScummVM will overwrite your key bindings -with the new defaults. See the section on how to play on Smartphones and +slightly. Running this version of ScummVM will overwrite your key bindings +with the new defaults. See the section on how to play on Smartphones and Pocket PCs below for the new default key bindings. diff --git a/backends/platform/wince/missing/missing.cpp b/backends/platform/wince/missing/missing.cpp index 1eb10c5355..86d93dcb88 100644 --- a/backends/platform/wince/missing/missing.cpp +++ b/backends/platform/wince/missing/missing.cpp @@ -33,7 +33,7 @@ char *strdup(const char *strSource); #ifdef __GNUC__ #define EXT_C extern "C" #else -#define EXT_C +#define EXT_C #endif // common missing functions required by both gcc and evc @@ -155,7 +155,7 @@ int remove(const char* path) int _access(const char *path, int mode) { TCHAR fname[MAX_PATH]; MultiByteToWideChar(CP_ACP, 0, path, -1, fname, sizeof(fname)/sizeof(TCHAR)); - + WIN32_FIND_DATA ffd; HANDLE h=FindFirstFile(fname, &ffd); @@ -174,7 +174,7 @@ int _access(const char *path, int mode) { return ffd.dwFileAttributes&FILE_ATTRIBUTE_READONLY?-1:0; case 04: //Check Read permission return 0; //Assume always have read permission - } + } //Bad mode value supplied, return failure return -1; } diff --git a/backends/platform/wince/missing/time.h b/backends/platform/wince/missing/time.h index 0fd241bdc5..f2bc5e4f89 100644 --- a/backends/platform/wince/missing/time.h +++ b/backends/platform/wince/missing/time.h @@ -20,7 +20,7 @@ struct tm #ifdef __GNUC__ #define EXT_C extern "C" #else -#define EXT_C +#define EXT_C #endif EXT_C time_t time(time_t* dummy); diff --git a/backends/platform/wince/stub.cpp b/backends/platform/wince/stub.cpp index 6cf525eb2a..9dad8638e1 100644 --- a/backends/platform/wince/stub.cpp +++ b/backends/platform/wince/stub.cpp @@ -41,7 +41,7 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPWSTR szCmdLine, int sw) { * resolve imported symbols to a dll from an executable. * 2) But wait! DLLs can have any way of importing/exporting symbols * between them. Hmmm... - * + * * Right! The solution is thus: We build everything as a dll. This means * the individual engines (plugins) and also the scummvm core application. * It is in fact "The sub-DLL solution" described over at edll diff --git a/backends/platform/wince/wince-sdl.cpp b/backends/platform/wince/wince-sdl.cpp index dcfa345e43..3123baa7fb 100644 --- a/backends/platform/wince/wince-sdl.cpp +++ b/backends/platform/wince/wince-sdl.cpp @@ -170,14 +170,14 @@ int SDL_main(int argc, char **argv) { extern void (*__CTOR_LIST__)() ; void (**constructor)() = &__CTOR_LIST__ ; constructor++ ; - while (*constructor) { + while (*constructor) { (*constructor)() ; constructor++ ; } #endif - + CEDevice::init(); - + /* Redirect standard input and standard output */ strcpy(stdout_fname, getcwd(NULL, MAX_PATH)); strcpy(stderr_fname, getcwd(NULL, MAX_PATH)); @@ -291,7 +291,7 @@ static int ParseCommandLine(char *cmdline, char **argv) argc = 0; for (bufp = cmdline; *bufp;) { - // Skip leading whitespace + // Skip leading whitespace while (isspace(*bufp)) ++bufp; @@ -592,7 +592,7 @@ void OSystem_WINCE3::swap_zoom_up() { _scaleFactorYd = 1; _scalerProc = PocketPCHalfZoom; } - + _zoomDown = false; _zoomUp = true; } @@ -872,7 +872,7 @@ int OSystem_WINCE3::getOutputSampleRate() const { void OSystem_WINCE3::setWindowCaption(const char *caption) { check_mappings(); // called here to initialize virtual keys handling - + //update_game_settings(); // finalize mixer init get_sample_rate(); @@ -915,7 +915,7 @@ void OSystem_WINCE3::setFeatureState(Feature f, bool enable) { _toolbarHandler.setActive(NAME_PANEL_KEYBOARD); _toolbarHandler.setVisible(true); } - else + else if (_panelStateForced) { _panelStateForced = false; _toolbarHandler.setActive(_saveActiveToolbar); @@ -1122,7 +1122,7 @@ bool OSystem_WINCE3::update_scalers() { _adjustAspectRatio = false; if (CEDevice::hasPocketPCResolution()) { - if ( (!_orientationLandscape && (_screenWidth == 320 || !_screenWidth)) + if ( (!_orientationLandscape && (_screenWidth == 320 || !_screenWidth)) || CEDevice::hasSquareQVGAResolution() ) { if (getScreenWidth() != 320) { _scaleFactorXm = 3; @@ -1653,7 +1653,7 @@ void OSystem_WINCE3::internUpdateScreen() { rout->w = routw; rout->h = routh; numRectsOut++; rout++; - + } SDL_UnlockSurface(srcSurf); SDL_UnlockSurface(_hwscreen); @@ -1759,7 +1759,7 @@ void OSystem_WINCE3::copyRectToOverlay(const OverlayColor *buf, int pitch, int x } if (w <= 0 || h <= 0) - return; + return; // Mark the modified region as dirty _cksumValid = false; @@ -1784,7 +1784,7 @@ void OSystem_WINCE3::copyRectToScreen(const byte *src, int pitch, int x, int y, assert (_transactionMode == kTransactionNone); assert(src); - if (_screen == NULL) + if (_screen == NULL) return; Common::StackLock lock(_graphicsMutex); // Lock the mutex until this function ends @@ -1898,7 +1898,7 @@ void OSystem_WINCE3::internDrawMouse() { byte color; const byte *src = _mouseData; // Image representing the mouse int width; - + // clip the mouse rect, and adjust the src pointer accordingly if (x < 0) { w += x; @@ -1930,7 +1930,7 @@ void OSystem_WINCE3::internDrawMouse() { if (!_overlayVisible) { byte *bak = _mouseBackupOld; // Surface used to backup the area obscured by the mouse byte *dst; // Surface we are drawing into - + dst = (byte *)_screen->pixels + y * _screenWidth + x; while (h > 0) { width = w; @@ -1947,11 +1947,11 @@ void OSystem_WINCE3::internDrawMouse() { dst += _screenWidth - w; h--; } - + } else { uint16 *bak = (uint16 *)_mouseBackupOld; // Surface used to backup the area obscured by the mouse byte *dst; // Surface we are drawing into - + dst = (byte *)_overlayscreen->pixels + (y + 1) * _overlayscreen->pitch + (x + 1) * 2; while (h > 0) { width = w; @@ -2022,7 +2022,7 @@ void OSystem_WINCE3::undrawMouse() { } else { byte *dst; uint16 *bak = (uint16 *)_mouseBackupOld; - + // No need to do clipping here, since drawMouse() did that already dst = (byte *)_overlayscreen->pixels + (old_mouse_y + 1) * _overlayscreen->pitch + (old_mouse_x + 1) * 2; for (y = 0; y < old_mouse_h; ++y, bak += _mouseBackupDim, dst += _overlayscreen->pitch) @@ -2122,7 +2122,7 @@ void OSystem_WINCE3::drawMouse() { // needs fixing, or remove it! // FIXME if (!(_toolbarHandler.visible() && _mouseCurState.y >= _toolbarHandler.getOffset() && !_usesEmulatedMouse) && !_forceHideMouse) - internDrawMouse(); + internDrawMouse(); } void OSystem_WINCE3::fillMouseEvent(Common::Event &event, int x, int y) { @@ -2320,7 +2320,7 @@ bool OSystem_WINCE3::pollEvent(Common::Event &event) { _rbutton = true; } } - _tapTime = 0; + _tapTime = 0; } else { _tapTime = GetTickCount(); _tapX = event.mouse.x; @@ -2351,7 +2351,7 @@ bool OSystem_WINCE3::pollEvent(Common::Event &event) { hotswapGFXMode(); } return false; - } + } return true; @@ -2391,7 +2391,7 @@ bool OSystem_WINCE3::pollEvent(Common::Event &event) { case SDL_QUIT: event.type = Common::EVENT_QUIT; return true; - + case SDL_ACTIVEEVENT: if (ev.active.state & SDL_APPMOUSEFOCUS) debug(2, "%s mouse focus.", ev.active.gain ? "Got" : "Lost"); diff --git a/backends/platform/x11/x11.cpp b/backends/platform/x11/x11.cpp index 3acc40e861..3c809c8c06 100644 --- a/backends/platform/x11/x11.cpp +++ b/backends/platform/x11/x11.cpp @@ -212,7 +212,7 @@ out_of_loop: /* And finally start the local timer */ gettimeofday(&_start_time, NULL); - + OSystem::initBackend(); } @@ -390,7 +390,7 @@ void OSystem_X11::initSize(uint w, uint h) { if (_local_fb) free(_local_fb); if (_local_fb_overlay) - free(_local_fb_overlay); + free(_local_fb_overlay); /* Initialize the 'local' frame buffer and the palette */ _local_fb = (uint8 *)calloc(_fb_width * _fb_height, sizeof(uint8)); _local_fb_overlay = (uint16 *)calloc(_fb_width * _fb_height, sizeof(uint16)); @@ -541,7 +541,7 @@ void OSystem_X11::updateScreen_helper(const DirtyRect *d, DirtyRect *dout) { currLine = y * _fb_width; for (x = d->x; x < d->x + d->w; x++) { currPixel = _local_fb_overlay[(currLine + x)]; - *(uint32 *)ptr_dst = ((currPixel & 0xF800) << 8) + ((currPixel & 0x07E0) << 5) + + *(uint32 *)ptr_dst = ((currPixel & 0xF800) << 8) + ((currPixel & 0x07E0) << 5) + ((currPixel & 0x001F) << 3); ptr_dst += sizeof(uint32); } |