From 080d79d863cb0a37a65fc1cbe0c6875c4c3e3983 Mon Sep 17 00:00:00 2001 From: Robz8 Date: Thu, 22 Feb 2018 00:02:36 -0700 Subject: [PATCH] Move gbaSwitch function to a new .cpp file ALSO: Add GBA borders for later use --- .../arm9/source/fileBrowse.cpp | 15 +++------ romsel_dsimenutheme/arm9/source/gbaswitch.cpp | 31 ++++++++++++++++++ romsel_dsimenutheme/arm9/source/gbaswitch.h | 8 +++++ .../gfx_saveforlater/gbaframe.png | Bin 0 -> 2491 bytes .../gfx_saveforlater/gbaframe_srloader.png | Bin 0 -> 4873 bytes romsel_dsimenutheme/resources/gbaframe.bmp | Bin 0 -> 147510 bytes .../resources/gbaframe_ak2.bmp | Bin 0 -> 98374 bytes titleandsettings/arm9/source/main.cpp | 2 +- 8 files changed, 44 insertions(+), 12 deletions(-) create mode 100644 romsel_dsimenutheme/arm9/source/gbaswitch.cpp create mode 100644 romsel_dsimenutheme/arm9/source/gbaswitch.h create mode 100644 romsel_dsimenutheme/gfx_saveforlater/gbaframe.png create mode 100644 romsel_dsimenutheme/gfx_saveforlater/gbaframe_srloader.png create mode 100644 romsel_dsimenutheme/resources/gbaframe.bmp create mode 100644 romsel_dsimenutheme/resources/gbaframe_ak2.bmp diff --git a/romsel_dsimenutheme/arm9/source/fileBrowse.cpp b/romsel_dsimenutheme/arm9/source/fileBrowse.cpp index 40c6bc948a..fe03c35dfc 100644 --- a/romsel_dsimenutheme/arm9/source/fileBrowse.cpp +++ b/romsel_dsimenutheme/arm9/source/fileBrowse.cpp @@ -43,6 +43,7 @@ #include "graphics/TextPane.h" #include "SwitchState.h" +#include "gbaswitch.h" #include "ndsLoaderArm9.h" #include "inifile.h" @@ -623,22 +624,14 @@ string browseForFile(const vector extensionList, const char* username) for (int i = 0; i < 4; i++) swiWaitForVBlank(); SaveSettings(); - int err = 0; if (cursorPosition == -2) { // Launch settings - err = runNdsFile ("/_nds/srloader/main.srldr", 0, NULL, false); + int err = runNdsFile ("/_nds/srloader/main.srldr", 0, NULL, false); + iprintf ("Start failed. Error %i\n", err); } else if (cursorPosition == -1) { - // Clear VRAM A and B to show black border for GBA mode - vramSetBankA(VRAM_A_MAIN_BG); - vramSetBankB(VRAM_B_MAIN_BG); - for (u32 i = 0; i < 0x80000; i++) { - *(u32*)(0x06000000+i) = 0; - *(u32*)(0x06200000+i) = 0; - } // Switch to GBA mode - err = runNdsFile ("/_nds/srloader/gbaswitch.srldr", 0, NULL, false); + gbaSwitch(); } - iprintf ("Start failed. Error %i\n", err); } DirEntry* entry = &dirContents[scrn].at(cursorPosition+pagenum*40); diff --git a/romsel_dsimenutheme/arm9/source/gbaswitch.cpp b/romsel_dsimenutheme/arm9/source/gbaswitch.cpp new file mode 100644 index 0000000000..620ff3c3b8 --- /dev/null +++ b/romsel_dsimenutheme/arm9/source/gbaswitch.cpp @@ -0,0 +1,31 @@ +#include "gbaswitch.h" +#include "ndsLoaderArm9.h" + +//#include "gbaframe.h" +//#include "gbaframe_srloader.h" + +//int gbaBorder = 0; + +void gbaSwitch(void) { + vramSetBankA(VRAM_A_MAIN_BG); + vramSetBankB(VRAM_B_MAIN_BG); + /*if (gbaBorder == 2) { + int bg3 = bgInit(3, BgType_Bmp8, BgSize_B8_256x256, 0,0); + + dmaCopy(gbaframe_srloaderBitmap, bgGetGfxPtr(bg3), 256*256); + dmaCopy(gbaframe_srloaderPal, BG_PALETTE, 256*2); + } else if (gbaBorder == 1) { + int bg3 = bgInit(3, BgType_Bmp8, BgSize_B8_256x256, 0,0); + + dmaCopy(gbaframeBitmap, bgGetGfxPtr(bg3), 256*256); + dmaCopy(gbaframePal, BG_PALETTE, 256*2); + } else {*/ + // Clear VRAM A and B to show black border for GBA mode + for (u32 i = 0; i < 0x80000; i++) { + *(u32*)(0x06000000+i) = 0; + *(u32*)(0x06200000+i) = 0; + } + //} + // Switch to GBA mode + runNdsFile ("/_nds/srloader/gbaswitch.srldr", 0, NULL, false); +} \ No newline at end of file diff --git a/romsel_dsimenutheme/arm9/source/gbaswitch.h b/romsel_dsimenutheme/arm9/source/gbaswitch.h new file mode 100644 index 0000000000..d89322ca33 --- /dev/null +++ b/romsel_dsimenutheme/arm9/source/gbaswitch.h @@ -0,0 +1,8 @@ +#ifndef GBASWITCH_H +#define GBASWITCH_H + +#include + +extern void gbaSwitch(); + +#endif // GBASWITCH_H diff --git a/romsel_dsimenutheme/gfx_saveforlater/gbaframe.png b/romsel_dsimenutheme/gfx_saveforlater/gbaframe.png new file mode 100644 index 0000000000000000000000000000000000000000..9b816a527b42dc6ca278aa75ba03bccf612559fe GIT binary patch literal 2491 zcmcgu`8U*m7k__drkSB(hA>l28bvfUOr!|Sq@<}VMT=}7Aqr7;8b0=-r>0UP%Y(|3 zNol@hn6eD|meM!A_ADh**^;KQFV8&BAMpJ6+;i@7Ugw^3?>YD0*SS~hZLO6Q*C+x2 zlsE_W9R&cAhd_cy$*tFQ`Zl>!2s+>t48Y1&|4|5JW>e%KE`(!ag&RO=V3nvA4eHP3 zX{R{*_Bcj#kLOsFP&w*JO=71$RYfJ(qhy7@MttL%pf0SkzOqIZ49$3+Ryj#BsmCzy z|9F&k!|9k)pB-)AJA6sC!6|jukq(ENvFMQ{?=!QytmWI_{afu}JNHUYnx^pj!(Y~m zYMb46Jz;Il{pa_B*6TE#(edzNY2~{^=N1Ev9CpP#AkHqtXi}#GO|NBCEs5PyhkCe6 zb78sP9tZxkUOabqd2;Q=d5c{4)G4i)pJACo*|d`H^09(np4)lWMv=mZa68R+KfL`y zVvxx*UmXWzvWqVa+6O-QEyi#N6SK^il3v|berLGV6~RlcTXjt5;pLh?mga~?thv)u zGk#HT9O?HWk+&1Omp6tHbw9sm&3)EH38E62gD9W03lA5y<2~Y9yJFiSO2|MH*zSE+ z_ez_iqkWc6Sed;aB(j4>D21n@j}u`|CJAIG57>fZN)f=sL1W>KW!}VWV@l2J2G-!( zxWJvb!j9ds@$_c$+>cw-S<8Nh2xM%nM-mDDeh}Kq30{R%+YrIe;dN{SV0|Dp@E!W_ zr^-Na(@J;xr3#hj6X>?hmv(QeU7q=?iDFDio>>0PA30-VJ&N8guYCj`2lr;MdYc5- zd|P{>p)t+=W3N6@j3}2|WRV+BKTq#N?>l*P7!%|pfrV60byF7|~*plk_k>9on@pjX;i2xLSd!?(faH~`k#W<#@ zUCR`LYhSCpdL9Tmk~J)8CVTO1D`{ohpw92e_d-0FEcZ68J8+7_FPEkozDR~*57!uUx%5A)3Y6)_wb&~8r6}tYY!VH zJvhOqEya1Pu>Y&)PWs)>&Q8J1=x$usJir6&Z}3MXvUvmf(^v5jFrE>2P>~s2vYO;e zm}@yJnmarC!g;H+dg03-P{l$$j}vq@sVQAwr?MDRjN*ytq$%RYi+BCczPS`CZaDk2 zJ(j}{vbnVr(mp~W@X>nw%fF^%Lq$E@T~m>?(UiYu#$>V` z27lght#b&;8a&TM$}p(_-d^Xl!TYvwEYz>rQYxTCrck!RI! z&t)b>r}sFftM~;vAZxH>-G*$ie!Ox^LdT<6J<%Fp8kVvZbJV20F82=PZ;Dvjme-N2 zXq3shi7v}nXSd*i9joY5*q*ovk@T`z!qLfJSIb5Rn+z#J?n zOJc7Kj)P5zBw0mw?3gKg9Qbn)Z+8PM^Pnm<%zqKK3gP^8Sgj^aQQ@-9s_n5#TlN+( zQq-a?B|)0(Kg%fer*@~MAcy%f6Q=N@yr-+RC7~0!0fsJFD(UC?P)NQxa^JYN@&~uw zxUP5owirsQg4db1Js}mgpe5=WfZHg(rSru~!f0e4U^4Bv%uw&<0B2v8&P#A#503Wo z`SOI=|C)->NmqTAqrcY#@C-Re_jhobNAJyed%T48?&#Fr7JwiT)Cfx1cLggJ#1m;nUiuiq>-uEY2L(wOy?mWROB$*P+)rXV(;hH7Sc&YZ z4F$JV=TWtV%COTv%*=?SCo0F?yUkGGegra@DGV5?4-4#n%;y#_1kvv~Ehp5-sk7EH zZ#v`mgR+s*1~EBK&cZ^fq{yS(da87fw1TE8P5FEgsrNh-e4UGA;(3aa%ld4AOUvsw z=NXu8RQ`Cw zDNX2*EgRe$pt%!W8Y{52vGdC{|o-NWcICLuED}kV~x=+1oyuiS#THHCC@Le pUwRiL{|)-RH2cXlOAIvh?MrSECcKY7l)(dX;aJ)3E4GB={|%iu8{7Z@ literal 0 HcmV?d00001 diff --git a/romsel_dsimenutheme/gfx_saveforlater/gbaframe_srloader.png b/romsel_dsimenutheme/gfx_saveforlater/gbaframe_srloader.png new file mode 100644 index 0000000000000000000000000000000000000000..1f3f1135edbb273be97dcba284c577d5052e7ba2 GIT binary patch literal 4873 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 nN3p5 literal 0 HcmV?d00001 diff --git a/romsel_dsimenutheme/resources/gbaframe.bmp b/romsel_dsimenutheme/resources/gbaframe.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e7e8dff076ddc326cc8f18ae451e7458f4171433 GIT binary patch literal 147510 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