From 05fca49b119e3e439277334306ec48d003df29a3 Mon Sep 17 00:00:00 2001 From: Tim Allen Date: Mon, 6 Sep 2010 21:13:51 +1000 Subject: [PATCH] Update to v068r15 release. byuu says: This adds a new "Effect Toggle" window to the tools tab list. There's no menu entry for it yet, oversight, but you can go to another tool and tab to it. The effect toggle window lets you toggle background/OAM layers on a per-priority basis and DSP sound channels. This only works with the compatibility and performance cores, because I'm not going to allow accuracy-violating hacks like that into the core. Non-essential icons have been removed, there's six of them left at the moment. I am too much of a consistency guy to only have some scattered around. I know other apps do that, but I'm not going to do that, and I grow tired of trying to hammer in icons that don't really represent the actions. Anyway, it still looks pretty good I think. --- bsnes/Makefile | 3 +- bsnes/qt/base/main.cpp | 28 --- .../icons-16x16/accessories-text-editor.png | Bin 574 -> 0 bytes .../icons-16x16/applications-multimedia.png | Bin 592 -> 0 bytes bsnes/qt/data/icons-16x16/appointment-new.png | Bin 897 -> 0 bytes .../qt/data/icons-16x16/audio-volume-high.png | Bin 685 -> 0 bytes bsnes/qt/data/icons-16x16/document-open.png | Bin 672 -> 0 bytes bsnes/qt/data/icons-16x16/emblem-system.png | Bin 629 -> 0 bytes bsnes/qt/data/icons-16x16/folder.png | Bin 581 -> 0 bytes bsnes/qt/data/icons-16x16/help-browser.png | Bin 932 -> 0 bytes bsnes/qt/data/icons-16x16/image-x-generic.png | Bin 558 -> 0 bytes bsnes/qt/data/icons-16x16/input-gaming.png | Bin 812 -> 0 bytes .../data/icons-16x16/media-playback-start.png | Bin 660 -> 0 bytes .../data/icons-16x16/media-playback-stop.png | Bin 429 -> 0 bytes bsnes/qt/data/icons-16x16/media-record.png | Bin 653 -> 0 bytes .../data/icons-16x16/preferences-desktop.png | Bin 440 -> 0 bytes .../data/icons-16x16/preferences-system.png | Bin 611 -> 0 bytes bsnes/qt/data/icons-16x16/process-stop.png | Bin 820 -> 0 bytes .../data/icons-16x16/system-file-manager.png | Bin 378 -> 0 bytes bsnes/qt/data/icons-16x16/system-search.png | Bin 935 -> 0 bytes bsnes/qt/data/icons-16x16/text-x-generic.png | Bin 333 -> 0 bytes .../data/icons-16x16/utilities-terminal.png | Bin 668 -> 0 bytes bsnes/qt/data/icons-16x16/video-display.png | Bin 662 -> 0 bytes bsnes/qt/data/icons-16x16/view-refresh.png | Bin 912 -> 0 bytes bsnes/qt/debugger/debugger.cpp | 4 - bsnes/qt/debugger/debugger.moc.hpp | 1 - bsnes/qt/debugger/ppu/layer-toggle.cpp | 107 ---------- bsnes/qt/debugger/ppu/layer-toggle.moc.hpp | 30 --- bsnes/qt/resource/resource.qrc | 22 -- bsnes/qt/settings/profile.cpp | 24 +-- bsnes/qt/settings/settings.cpp | 12 +- bsnes/qt/tools/effecttoggle.cpp | 151 ++++++++++++++ bsnes/qt/tools/effecttoggle.moc.hpp | 37 ++++ bsnes/qt/tools/tools.cpp | 16 +- bsnes/qt/tools/tools.moc.hpp | 1 + bsnes/qt/ui-base.hpp | 2 +- bsnes/snes/alt/dsp/dsp.cpp | 13 ++ bsnes/snes/alt/dsp/dsp.hpp | 4 + .../alt/ppu-new/background/background.cpp | 9 +- .../alt/ppu-new/background/background.hpp | 3 + bsnes/snes/alt/ppu-new/background/mode7.cpp | 8 +- bsnes/snes/alt/ppu-new/debugger/debugger.hpp | 6 - bsnes/snes/alt/ppu-new/ppu.cpp | 17 ++ bsnes/snes/alt/ppu-new/ppu.hpp | 2 + bsnes/snes/alt/ppu-new/sprite/sprite.cpp | 12 +- bsnes/snes/alt/ppu-new/sprite/sprite.hpp | 5 + bsnes/snes/alt/ppu/debugger/debugger.cpp | 7 - bsnes/snes/alt/ppu/debugger/debugger.hpp | 15 -- bsnes/snes/alt/ppu/debugger/render.cpp | 194 ------------------ bsnes/snes/alt/ppu/ppu.cpp | 30 +++ bsnes/snes/alt/ppu/ppu.hpp | 3 + bsnes/snes/alt/ppu/render/bg.cpp | 4 + bsnes/snes/alt/ppu/render/mode7.cpp | 4 + bsnes/snes/alt/ppu/render/oam.cpp | 6 + bsnes/snes/alt/ppu/render/render.hpp | 16 +- bsnes/snes/ppu/debugger/debugger.hpp | 6 - bsnes/snes/snes.hpp | 2 +- 57 files changed, 339 insertions(+), 465 deletions(-) delete mode 100755 bsnes/qt/data/icons-16x16/accessories-text-editor.png delete mode 100755 bsnes/qt/data/icons-16x16/applications-multimedia.png delete mode 100755 bsnes/qt/data/icons-16x16/appointment-new.png delete mode 100755 bsnes/qt/data/icons-16x16/audio-volume-high.png delete mode 100755 bsnes/qt/data/icons-16x16/document-open.png delete mode 100755 bsnes/qt/data/icons-16x16/emblem-system.png delete mode 100755 bsnes/qt/data/icons-16x16/folder.png delete mode 100755 bsnes/qt/data/icons-16x16/help-browser.png delete mode 100755 bsnes/qt/data/icons-16x16/image-x-generic.png delete mode 100755 bsnes/qt/data/icons-16x16/input-gaming.png delete mode 100755 bsnes/qt/data/icons-16x16/media-playback-start.png delete mode 100755 bsnes/qt/data/icons-16x16/media-playback-stop.png delete mode 100755 bsnes/qt/data/icons-16x16/media-record.png delete mode 100755 bsnes/qt/data/icons-16x16/preferences-desktop.png delete mode 100755 bsnes/qt/data/icons-16x16/preferences-system.png delete mode 100755 bsnes/qt/data/icons-16x16/process-stop.png delete mode 100755 bsnes/qt/data/icons-16x16/system-file-manager.png delete mode 100755 bsnes/qt/data/icons-16x16/system-search.png delete mode 100755 bsnes/qt/data/icons-16x16/text-x-generic.png delete mode 100755 bsnes/qt/data/icons-16x16/utilities-terminal.png delete mode 100755 bsnes/qt/data/icons-16x16/video-display.png delete mode 100755 bsnes/qt/data/icons-16x16/view-refresh.png delete mode 100755 bsnes/qt/debugger/ppu/layer-toggle.cpp delete mode 100755 bsnes/qt/debugger/ppu/layer-toggle.moc.hpp create mode 100755 bsnes/qt/tools/effecttoggle.cpp create mode 100755 bsnes/qt/tools/effecttoggle.moc.hpp delete mode 100755 bsnes/snes/alt/ppu/debugger/render.cpp diff --git a/bsnes/Makefile b/bsnes/Makefile index da0794e7..b82a6065 100755 --- a/bsnes/Makefile +++ b/bsnes/Makefile @@ -1,6 +1,6 @@ include nall/Makefile snes := snes -profile := accuracy +profile := performance ui := qt # compiler @@ -64,6 +64,7 @@ ifeq ($(platform),x) install -D -m 755 out/bsnes-$(profile) $(DESTDIR)$(prefix)/bin/bsnes-$(profile) install -D -m 644 qt/data/bsnes.png $(DESTDIR)$(prefix)/share/pixmaps/bsnes.png install -D -m 644 qt/data/bsnes.desktop $(DESTDIR)$(prefix)/share/applications/bsnes.desktop + gconftool-2 --type bool --set /desktop/gnome/interface/menus_have_icons true endif uninstall: diff --git a/bsnes/qt/base/main.cpp b/bsnes/qt/base/main.cpp index 4ac11bc1..8fdf33e8 100755 --- a/bsnes/qt/base/main.cpp +++ b/bsnes/qt/base/main.cpp @@ -18,34 +18,26 @@ MainWindow::MainWindow() { system = menuBar->addMenu("&System"); system_load = system->addAction("Load &Cartridge ..."); - system_load->setIcon(QIcon(":/16x16/document-open.png")); system_loadSpecial = system->addMenu("Load &Special"); - system_loadSpecial->setIcon(QIcon(":/16x16/document-open.png")); system_loadSpecial_bsxSlotted = system_loadSpecial->addAction("Load BS-X &Slotted Cartridge ..."); - system_loadSpecial_bsxSlotted->setIcon(QIcon(":/16x16/document-open.png")); system_loadSpecial_bsx = system_loadSpecial->addAction("Load &BS-X Cartridge ..."); - system_loadSpecial_bsx->setIcon(QIcon(":/16x16/document-open.png")); system_loadSpecial_sufamiTurbo = system_loadSpecial->addAction("Load Sufami &Turbo Cartridge ..."); - system_loadSpecial_sufamiTurbo->setIcon(QIcon(":/16x16/document-open.png")); system_loadSpecial_superGameBoy = system_loadSpecial->addAction("Load Super &Game Boy Cartridge ..."); - system_loadSpecial_superGameBoy->setIcon(QIcon(":/16x16/document-open.png")); system->addSeparator(); system->addAction(system_power = new CheckAction("&Power", 0)); system_reset = system->addAction("&Reset"); - system_reset->setIcon(QIcon(":/16x16/view-refresh.png")); system->addSeparator(); system_port1 = system->addMenu("Controller Port &1"); - system_port1->setIcon(QIcon(":/16x16/input-gaming.png")); system_port1->addAction(system_port1_none = new RadioAction("&None", 0)); system_port1->addAction(system_port1_gamepad = new RadioAction("&Gamepad", 0)); system_port1->addAction(system_port1_asciipad = new RadioAction("&asciiPad", 0)); @@ -53,7 +45,6 @@ MainWindow::MainWindow() { system_port1->addAction(system_port1_mouse = new RadioAction("&Mouse", 0)); system_port2 = system->addMenu("Controller Port &2"); - system_port2->setIcon(QIcon(":/16x16/input-gaming.png")); system_port2->addAction(system_port2_none = new RadioAction("&None", 0)); system_port2->addAction(system_port2_gamepad = new RadioAction("&Gamepad", 0)); system_port2->addAction(system_port2_asciipad = new RadioAction("&asciiPad", 0)); @@ -68,13 +59,11 @@ MainWindow::MainWindow() { #endif system_exit = system->addAction("E&xit"); - system_exit->setIcon(QIcon(":/16x16/process-stop.png")); system_exit->setMenuRole(QAction::QuitRole); settings = menuBar->addMenu("S&ettings"); settings_videoMode = settings->addMenu("Video &Mode"); - settings_videoMode->setIcon(QIcon(":/16x16/video-display.png")); settings_videoMode->addAction(settings_videoMode_1x = new RadioAction("Scale &1x", 0)); @@ -103,10 +92,8 @@ MainWindow::MainWindow() { if(filter.opened()) { settings_videoFilter = settings->addMenu("Video &Filter"); - settings_videoFilter->setIcon(QIcon(":/16x16/image-x-generic.png")); settings_videoFilter_configure = settings_videoFilter->addAction("&Configure Active Filter ..."); - settings_videoFilter_configure->setIcon(QIcon(":/16x16/preferences-desktop.png")); settings_videoFilter->addSeparator(); settings_videoFilter->addAction(settings_videoFilter_none = new RadioAction("&None", 0)); @@ -130,7 +117,6 @@ MainWindow::MainWindow() { settings->addSeparator(); settings_emulationSpeed = settings->addMenu("Emulation &Speed"); - settings_emulationSpeed->setIcon(QIcon(":/16x16/appointment-new.png")); settings_emulationSpeed->addAction(settings_emulationSpeed_slowest = new RadioAction("Slowest", 0)); @@ -149,28 +135,21 @@ MainWindow::MainWindow() { settings_emulationSpeed->addAction(settings_emulationSpeed_syncAudio = new CheckAction("Sync &Audio", 0)); settings_configuration = settings->addAction("&Configuration ..."); - settings_configuration->setIcon(QIcon(":/16x16/preferences-desktop.png")); settings_configuration->setMenuRole(QAction::PreferencesRole); tools = menuBar->addMenu("&Tools"); tools_movies = tools->addMenu("&Movies"); - tools_movies->setIcon(QIcon(":/16x16/applications-multimedia.png")); tools_movies_play = tools_movies->addAction("Play Movie ..."); - tools_movies_play->setIcon(QIcon(":/16x16/media-playback-start.png")); tools_movies_stop = tools_movies->addAction("Stop"); - tools_movies_stop->setIcon(QIcon(":/16x16/media-playback-stop.png")); tools_movies_recordFromPowerOn = tools_movies->addAction("Record Movie (and restart system)"); - tools_movies_recordFromPowerOn->setIcon(QIcon(":/16x16/media-record.png")); tools_movies_recordFromHere = tools_movies->addAction("Record Movie (starting from here)"); - tools_movies_recordFromHere->setIcon(QIcon(":/16x16/media-record.png")); tools_captureScreenshot = tools->addAction("&Capture Screenshot"); - tools_captureScreenshot->setIcon(QIcon(":/16x16/image-x-generic.png")); tools->addSeparator(); @@ -193,16 +172,12 @@ MainWindow::MainWindow() { tools->addSeparator(); tools_cheatEditor = tools->addAction("Cheat &Editor ..."); - tools_cheatEditor->setIcon(QIcon(":/16x16/accessories-text-editor.png")); tools_cheatFinder = tools->addAction("Cheat &Finder ..."); - tools_cheatFinder->setIcon(QIcon(":/16x16/system-search.png")); tools_stateManager = tools->addAction("&State Manager ..."); - tools_stateManager->setIcon(QIcon(":/16x16/system-file-manager.png")); tools_debugger = tools->addAction("&Debugger ..."); - tools_debugger->setIcon(QIcon(":/16x16/utilities-terminal.png")); #if !defined(DEBUGGER) tools_debugger->setVisible(false); #endif @@ -210,17 +185,14 @@ MainWindow::MainWindow() { help = menuBar->addMenu("&Help"); help_documentation = help->addAction("&Documentation ..."); - help_documentation->setIcon(QIcon(":/16x16/text-x-generic.png")); help_license = help->addAction("&License ..."); - help_license->setIcon(QIcon(":/16x16/text-x-generic.png")); #if !defined(PLATFORM_OSX) help->addSeparator(); #endif help_about = help->addAction("&About ..."); - help_about->setIcon(QIcon(":/16x16/help-browser.png")); help_about->setMenuRole(QAction::AboutRole); //canvas diff --git a/bsnes/qt/data/icons-16x16/accessories-text-editor.png b/bsnes/qt/data/icons-16x16/accessories-text-editor.png deleted file mode 100755 index 188e1c12bd2de0029c75eefc6c7c4753b86b7d9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 574 zcmV-E0>S->P)2^qNERY3;<4ZcwkNNp7Zp5;AjKf{B7T6H z7K$;wTN)8fToCQSV$+QqO#Q&sZ0iseT9M6oFhjF#YAe3W{|(Ih&u?blgZ~U+lHy(Z zfEnP}R(g1dys47_mq#z10cH*!ci4`$5?D>W0r2hlIkux$PfFdaJ1vdV-c&$Y6qM6=z7>zUrb8|$BG>39|jmV1jOTU#EGRpi+xRHO?}@de@`-W?HM1Qj5D_ogg}SY zdLN|}^?H57O9w%Kn@Oz|d&_(+O?3c05d+({v28n2?E5}$CdJ@bk;TUuUX_^(h)oH!))dmc3|x7NH+_f7=kKWb2fXhZ zrnAjAMhLXlWV2a*$wSOL4(~qIS$aJMy=iu>tN_|Hp>9hMh9SE@rg`+GoBO#O-SQ{L5?nn?G7$uQNU|ANHWktGp13@enLu*Z~ zRzquzloG8qLI{Kqt=k(B1Emy><7_&0#$gJlHNNxtsVP?LWIr9x?6w7vAB@=h=0RrJHa=rxwL(NVM|!=UY`0q(4u?`Im9A{pb^nOBS}n0`N3d*14u^xRRx3%T)8e}B zU)jxOQ!LvNmH!m&MLP2~`8#>It74)E>!>k0}e?< zK~y-)Ws*xwTxA@^f8TfSyqLLnU?K?8$|G1EY%rF-;-axT+?a~Nx*!@hCPY`YH6|=g zV;Ucc#zal5HL;66@DWW+qb{%oO;sobI#?^(5$Q~)%nZZKy~7N5zR!(qD4yi(&N=@_ zj$jjx92gnWk{1QyVU!LCLwZ_@8&$P_=AF-8e`T{?Y%um{_;mNaM|-yS#tBEl2mx9{ zaka$ERDw&F=F@}2=Z^I}k_sYql2G!rxxsv4aCpEj8;Vt*gDAdsXNui%jCkNd8aq?X zjm?!eJ-u_)(7&t*w_Qm9jXpj&JYe5gE71N>h-mfgyVkVpEw*lJp?7bNXu~dpz`G5| zr=!3QdE~&z(C&RZc9yh9TUR43TjHC~L`sPe0y7XpvP7kH0;e<+1pR{q2DbOcSuSU3 zZEdEI|A+YFr$}dgcRx!ADqbI+=qHt|a`M9ms(A98snL7Fkua7QLMesMXHj;Ggz79t zUfPD=-pg}sIc(cP$QaUp5W~C4!qmsnp%?mt5~vpfnwlEO7xE~js40!(6gm3d??htV zOiWCmltOETVH%i*1f>PgWdbW&6Dzw_Iy%~^RMt>RQ7jhe?(XL0!>@Af+Er?`8d6HM zQfLiGG_W8A;-XV>So}MUQVP%W@H~%0hYpiSB*QJv%5E8_kF0oOuSo0O-88Yi?mS`RxAv zkNN-nW071T&;4y%2nK=#gCYFB05|{2kiWjd$q&xz*`?X{r{;f}1F{CdOmaH!H~m+Z zu4eW$HN>KAEv->#4UcH#K>>F>S)(m+mZ=t@1%`Q)zt z=kL2`>r-|9x)v#bCe_ X$s}Y37Q!~)00000NkvXXu0mjf?g64A diff --git a/bsnes/qt/data/icons-16x16/audio-volume-high.png b/bsnes/qt/data/icons-16x16/audio-volume-high.png deleted file mode 100755 index ec8f00b4ad0c6138d17957a9ba6d8616bb39a6a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 685 zcmV;e0#f~nP)5 zlg~?3Q51l`bLY)4l3F0T>JKOcNu8G(En2v##EqsSQya-Q6RvELwP{hyD3|3JO@hzD zkW|_T{e%|5%oIVH*{UBPLA#lt=K0=f;fzc%E;?`*=YHJp+w~flY12|jE|2u_H-Y?vMc~%j+^QpbNAZ zQIzK977iY0MOCH!P$$u79U=mN2u;2)1t2O*g7lOHIUr^L-mksm!C=_}`1{x^wm|qrRww06e39#Ft9reZUxiLa{)h zSU^?rN*-Rx+YtyRj_7k$)bc~^Kwh^i#DLcZpja%jxw#3z=dWKVd8O+1TS|Ch`_A>G z!mBcg0Xa)mb#Zag7ZJ~hnO$C9O7!>j*H_kOXHH)O=t|w|0R|D%Rz}Bwn+9l5)%qX^ z>gV12Det#`eC5$fF$jXc9$DZAU7)Gl^vDm}afg8>;Gw80|HjbJ&{0gVx~Hz8DU-?k zs%Ez1wg7K|zHB;?ulW}i78YI-m=lpm#IJ#`0=Kj2L>|DZB`8Z??1HWU-z&)(v5I2X42Kx^LBZUY}D`;qn5FxciLM_ej_ug~QY53}!mSE3t?zxwHpXWK} z-YY{xLmWiP&4!4S?k*w%Kv5JTBDA%&eg3uGxLj4$`u_gV)z$UX-EZzMEG>UI@$AWS zilRV7*e4MYCSOdRpPrujfO8S}0T9e=aBy(2)6B>@GdBL1m6a8m%_acuPRe$zP^sC?ptQ@-QuCrdb+y-7#+PUpcUVtdz^5edX(lyb1*!_e$Blc8obQwH#$sup8JB=Bvc!Ow=G z*-6i103CEi zSad^gZEa<4bO1wgWnpw>WFU8GbZ8({Xk{QrNlj4iWF>9@00G%aL_t(I%f*vTYZGA< zg`a6_gEXBqBcUckH-X08gk(ZUidc0eHCc%W6$Bw<{y`C3bs>l=5jQRU1EnnpL$Xl} zSV57z`Iw@D+a#2UG$mQIh#zrbXGq(0)rEI;dC%o=?>Xm%bCz@#@buY}zSBQidVJ>G znA6<7cPFFkaT7p@N){lWGgw_)Ifk7ia|v`kZsv0amSq8$p`c33ZV(Eppkt)Fl@Owm{qp(iw__VPf`x)A0JU1JXWQRj2~pit6y>TUjXqq++zL47=z84M zV#Hy}=L}+rf2;a@KDpU!Zf>k^nVnAOy)1hJ&N=yE|O=HjAr(hPT zmg@ji%XJE7kv)6g$-!_9j#TZtNz^ej(-{i8MJJi&$4?(lCGp&U;s4iPvstez0t~w? P00000NkvXXu0mjf3(pax diff --git a/bsnes/qt/data/icons-16x16/folder.png b/bsnes/qt/data/icons-16x16/folder.png deleted file mode 100755 index 65bd0bbdcb9005cb8929f06e25d9cb15a926366a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 581 zcmV-L0=oT)P)2|yPkE-3> z-8b(3_?ov1cYiV%432IDm|3sa>)kUm%nWx2;PmwLe!t&8>~uQMm(4k6LI`Cz9Dc0p zx&Tx;XIE7wlL@7i6(oef_V#uMc)NrGOsCVTl=7;s>w_zRjH+U0Ymj!k-P+vTq}6H> zV^0g%)=c>R8-N-3GD0!|F@>GqJ z%4)bdf_Rm4wwyD#6GYg!0ieZcvQf+lK>!v2)x`$$R0x3iqPe(Z=9oKK7jS;E^w*b55oWe`mg~7=)i^mlj0C%nT8s$wuo= zb!&(s!bMVmQn@?FCx!@o{yMsKc&XWJj=)i68(aN%$9JEC^W*#Yp8+C_MZ$~UM;0NT T9Al?300000NkvXXu0mjfM@0T3 diff --git a/bsnes/qt/data/icons-16x16/help-browser.png b/bsnes/qt/data/icons-16x16/help-browser.png deleted file mode 100755 index f25fc3fbf106af60de59581bf2e6fba58d489bf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 932 zcmV;V16%xwP)n<^0M7t*KyZHC1w??>xEt=fabLR*P`s^00F8@s%vX0ly3W2Q;1iYQ`2d{1 zn56SU!aH>A*UV&krU`gE?uNYufcfLL`>KjUEiXOnoQe)`qCG}W|1bb+O7eK1#?QvJ zs|dgU_0&(D106tZ+zosBJd?&v>qnWFmUKydqeslSKE)YIWlRZ)Gjda>n*%4R*)(?6s}$J0tF zrB0rXshXW1sfM?{P>GRo72Li*T~yy3kh%V?FTe2QhE1d6Y3FzU6LKF3;uj?|T^;O;NgH2_-9*%2UxlCj?MeRpHZ4w8sFjOr1-Y$4FjHVOs`O z6+Qs2{*%TqbaEVv&fkX!tu7E!h&mkz2FsQcy_m!>B&KO#Sq7GA5DFBqd&fqUQXD+m zfn!?;p^>;U$?D=fJf(uyMMMYXO4>Md`aVN{(Y9gut;(G&D3o z09{?N%Y*_27>1l9_a8%EHtR(M(E9O_Gnox*SF!%CmFQBU zOF`};huu%zOT%N;EOv}x2@;w%)hg>aX0MU5~e$Dv-j=Valc(v;nT_sm!fGJ@x&;<^^bV( zeDYmpd~&)e>v=ba>Hp#^rKnR%1p%a#U9+>W8+D$+wD1(hb7ZnxQ)>0#;WVhSMx1M~WOW`<`(y-`~O?lW3>LcLKl zTI-Q&y-_m`fH8&#kDju%^KPiHOVtHdSC#>A0E7_i?tf4s(+R0|vB7qwa4%ryoayflfE%+4_t0F6nNx)`Z6qVHi=FPKTS#CU}=K zz{+W!#C9YIhrSlXiNSHls7#+^Yo;a`d;);QTNPSAe+|gJYq?(Q!^i)DrRoA3o7+RD wat;teu)4CGrROk3N|^!cjmHn~jryI>0JT`*mWx6Xs{jB107*qoM6N<$f&tz34gdfE diff --git a/bsnes/qt/data/icons-16x16/input-gaming.png b/bsnes/qt/data/icons-16x16/input-gaming.png deleted file mode 100755 index 9d040ee84356e8c9412d290dd72537c93d012189..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 812 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE(~iJd>I%_u3fJNif|Tq zL>4nJa0`PlBg3pY5H=O_Ny%H{9NjrPA;Aa6zVB)jVN)>&&^HED`D_W%`4R{ z&a6sJQOHcr&*QR%11>I&WK9Jl0|R3Puf*)qBn9=X%-r0>WOaq$lGMz+)FK@Pu8fkB z0xNxeh=g8lX>n$9Mq*BmUUC%|S8`EmVhPaL^30M9g_4X^1$R&103Dc?^73-M^vv7> zz5Jr|^seLX3=B+)o-U3d7N@69I-MQtC~~ZR@|`DY*DfvDX!iAD`+^;w8$|v$HB}3C zbu_I|h~PNbx|V;--3~n$F0LjIvDmA-gk3JQ?p6xfEbJnpC2DHAJ@d=6()?#Tc4W?S z+VrB4`S6Fc=KFs>)3Ca7d~?hHRdYP;%mal}rgpIe0%CEWiYw`il@t9Jc@ z4_9(?Za+J=R+EQet!b-MBKPYbmPPq;m+h|{Kas)TCb{6pXa1d`?aa^hlOn|&jdx6K z%=j3!C#+F``TF#TE6acG`qFy-z1_!ECg=XmejnHwlSeO?x>s<5?Ule%B@c*;dJSOJmD|yjJQqd#GG;VOkNkn&C>; n);_kr#}#gG-748lf6K2pz%W1Y*_t!JM9kpn>gTe~DWM4fe9c@A diff --git a/bsnes/qt/data/icons-16x16/media-playback-start.png b/bsnes/qt/data/icons-16x16/media-playback-start.png deleted file mode 100755 index a7de0feb09ff9e98d1eeaca81e9fbf6793ef2706..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 660 zcmV;F0&D$=P)H0h#)QuLQNI1SZtsXO8U^GGfgrxxh}+}VkxnAb?)YabMHAocX%9NxLrB| zzyY8MfO-Y6yO;d<*y~_0mS+_>8utCg%c)OS>fRtAV|%-`d2TEk2V8nL~zb!m)|pEA$SF2->jn-2hWj=^AH zPL5B%P2Stz^{Pr7#{fi4VAUxi)#JB!S3FMcd3k;2Es0696z@F%)>@ou3v24+*vND076Ixy33;9q2pAv`@ZPsg6f3A(Qi1k* zFkavM@*Aa-5I$9)h)6g*I{0=DB#I*EIzT(hNs`o~9IE3`*}+soD!;iA7_JPj`4{UQ XDQtDP+C_)X00000NkvXXu0mjf5}&Iv diff --git a/bsnes/qt/data/icons-16x16/media-record.png b/bsnes/qt/data/icons-16x16/media-record.png deleted file mode 100755 index 2f66cdebbbfa20ba0407b3b76e7b684cd465132c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 653 zcmV;80&@L{P)L zlD|(=Q546&=ia{dwdoJ~#Pku{MHeYy0I>;}NE{r&iB$*x0u8%^ZY(Y`J1cV&;?#7g zO>7B6jVzV`ttCKhO5S_Cw)Y)})|z55CVZ2#+??~tJ>T;sX2x|St~Cw7H}0`O6x4vn z5?D|`5$VDo_YAze$83)U zl!zY1W@odh^>w}Hy682V@LU%%7=+(6;gm|My1DsfzS~{IU~mX15=8^C*!Q~|8#kPT z1E_WzVD6Xa0ZJj5PUAeE@7A}rUd%JU8!=G=Pj0QQM!Tn{=+*0hWdV)@*fwBUV9SDC zE+f9YtZC8ctG`SXzym#*)Gl^+p&AX4-w$aRAfn+9yj~BzRttJ6WfX{vMds$8D-hk0 zN}*FOgB=G#2(Xk8kq9Uf0RjQA>q6CP@W)~*(7#S|xPoFXbWToKo1BCof)E0N2xM76 zqXDm4g?DrWL4=E1P3pk65f2E+xA*os`pgW72sD65Df=)XpqVB}*I_prl{9l_1hByT z>8x1%%tRc@WFVvj1|SeY7zRR1OQ>hF9k}lEt8y@e zqrSb}Ij>Y+&nflh$|RPELL|gnJ&|}8N~JtsI808hCY-~=AFgdbz0aKcXOw^IBayrf nq!~zfz)ptwY+T=!fdADm63+C+aTjYY00000NkvXXu0mjfh3**Q diff --git a/bsnes/qt/data/icons-16x16/preferences-desktop.png b/bsnes/qt/data/icons-16x16/preferences-desktop.png deleted file mode 100755 index 68f916c9d3793617c33986e1369c4a3be6c86508..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440 zcmV;p0Z0CcP)5 zlf6mt?f z0AN0U2O!Ii0Db_~5TL5N0l&4)!JmNg@;GElVP^;Bwx7*8q z?>*!3c;%oBq}6J1dDjbupZkv#MS+>;<71A9P_G{bdzKDFf=aN=#)Y=sMXW9~6k=xULU18eq^Pwm5>f&c14BZf zYe95nK#JnRiH*==SAxmkLmxdrjL^?BWW`;2x>%z19x#ygF@3}wxCj{ps zol&BI3dr$TBKH?fG@Vgwj@VLE`>*x`sHT~#`1-X0&1|$C>5O7D8g(O`Q4IH5!>UCA z#B@f9T4bxM*W2c190hpr@ILWaLI!dGBA^c595S9hn=kAOg|QenCF1t1xZCGP(7 zj844Dzcfmf65S_zD3%MD6HEfSt3fc5ItMc{ zK~y-)ZIioCQ(+i~pL6L2ZH>mr;3bB}Kr47@YPbohHi(*-khrlBSo{xMIye|<92`s> zj0 zfhzpM@ALIWhKAhp&ub29c4n916Y9^A&F#&y1u(Xj-$dR3#d>J@)tT!?^ zxB;)Of@N(J5UR>rI!z!F(O2i@jx3c*X9mOJ=UQhb^X7PCW6$}40e3bY$EvSKkHsLF zL}s%av!6J@-n)0HBoY{3zj8br){Ru^=#NAqsP(AolnVvazCP5J7L<+- z`2HPr|9>&Rx53dc9cF)8t|?gl%I3HXy4zQg`&b zxfypTgs$s291eB|gVcpW$SN$#WyIXvUjZpZ4OUxP@ZP$G)9YnD9%prQ6sO07@7_H; z?d_Pk9LBeA$dwfUbSdSAnqeR;i@LTpTvd2+co^F>(SQT}{nVX0#rlH>plR6EqS^&1 zyDP=w;XqrPR!Sr&y?#yQ=T8=H-lUw#P+nXl_v#gEv$G^`-$v0ie11Rar6v2v@^W5@ zfm4IGCmR~NTZ2JYDjsL8Sgb8;>r)&K8k(9&7YgEII=x^+r#1#60#9C-Mn2yDwjT2}2(B$L*s yY<9+mt|%;SyT+{|0(y3`SA}UC&P8E)GxrC_O;YyPhW8Wz0000AjQodNDi79I5|3(RJen zPo0{EhVu`FIhs1;8#^*ol`_^Ua5ZgRTEO;6WS?JG1xHlIrtQ_)g8XMypD%bh92XZL%@y~j=r?zX#<>_Ay zj?MhVvcApGd@i4rvfN_pU)QGW`q#B_OPRhKo8-;yZEvqm4`R9-*L?7~b=36Kx*Zc}(y&$D=J@HUQ8!MxuejCZ|M!i% z&Q&&tS9kw!Gf+%;qdi-?J-PWx^^%|^_nzBbuuzY(&i>xb{m&ujZZ2vcpl1 zMZ@GK2apA{PG?ddXEM`!?RHyZ=kcza{{|ocz_G78)~3_xTfzOGVc*@!;z&{~D4M34 z#HCy|oAJK^O5@u;x%xm;z_nWd04$M+pY+%HrNI}599Zr)1O{&1Fr9gQ zRx^nN(=^?Ylb_Xc3crTMTm|}8W6tGCdm-gHU zoivEbfP*V-h@Y#f29hN4c>od3S|m}D80SwWrl%O%n5zs-y=aEVV!4n`6c;!WFs{rR zhNug$8$G1gD4`4AaS<H7=eg9>uBL$90I_nW$UopHtf^aCQMJwQhI406Q(#?y zO-@ZpM5e?TYiVd$*M}u5U8hd09vd6~!{hc8oX&FDU*~sLS6AD5dV3x{dHP7z^Tsz$ zm;I-vElqH5_&#iSZzKKk>qUmIhNJ7$iG2Xj914Xt0)Xc8`7QxKZ+qL(^TA-S6B++< zPs?7gTFc=3v)=)}CSYu?u#}a#&H(^gTU%RH&GN(C?nC&$dI>wJW|L@7q6Gi|002ov JPDHLkV1n1##MS@+ diff --git a/bsnes/qt/data/icons-16x16/text-x-generic.png b/bsnes/qt/data/icons-16x16/text-x-generic.png deleted file mode 100755 index 2d7f2d6017d823bf9f1209d9933faf612dffe9f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 333 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP$ic-+2*wv2(<2J_t+h+ zs5rlI{^p#SO2-|aiODDi-jZP}W|aE1)~BmOR3$EA(Vi@w>U%ZDa$9qM8}c0HKK>=@ z`d4d)YqwsmShMx=n<-}wTJ%-CXPi)?Z+d)E$Kx3$zTq0>%B>G-<`ESK<06 zKLv;!Rde(>`RU=L2g~Ovo%n1M@bQ?*+>S*Vvl$k=|9v$za@qmb9gNTaiaD`NnxMxo zp5*#q&TW}{<`>WDw{ULpSLj^#x@qe3m+d`GEQ*uw+Md|dvtPsTSdE!)vF)Ukp32Aj azp#b`#_#;I)BX+6mkge+elF{r5}E*#afeO- diff --git a/bsnes/qt/data/icons-16x16/utilities-terminal.png b/bsnes/qt/data/icons-16x16/utilities-terminal.png deleted file mode 100755 index c5b797a7dfe82a52fee3df9c7e19d49a4461ac02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 668 zcmV;N0%QG&P)LL=FWNdBW7kS-|1Flt9VjZIBnic?*Db$yx>QG&VIP!QSJs zc<=BfKy0=M*Ov)53jjFhb^=6%sSh*s_1@*#$P<vkh+39&!fBd1N{T!K~miLpN5%0^7 zP?hbT6c8YA-0Z%^@Yn!vCnpHf3aBY5S34BA-9-fWI{S@FS1*DHD0nwMQ@+zW=FIu_ z^4U4Rs|JAcE~$}90nl-_txCE=rBeGS5Gby0{l5*X^50PdrIZG#Z$944!ootiUH7xb zBZrCN2&L5T0Mu|cH-BwxY&6)|C=!MtVYo&VMHp+a)?&9O(ORrEXrozKDQMtnAmZ=j zm%fwD&0jXgWVF_mQ8uOw*&b!BHAb7*SUV&l_x=LcqJkHgP4yiB0000IuR2CK|Gr(s_OsGcg~@t z-EQ+g;X0kp9T9n`s?$0gNNb%WR4uK%AuP^b%AZmHJ+_iDi1`G!>2x}`YPH$}5sg3$FjJ{GSE*LT8UsKP0$G-6KFo)}SJ0r!uJ_4(m*@FH zp63eysv5OUjJ=(2x6fU=c$x8&9smFU07*qoM6N<$f*XM(!~g&Q diff --git a/bsnes/qt/data/icons-16x16/view-refresh.png b/bsnes/qt/data/icons-16x16/view-refresh.png deleted file mode 100755 index 3fd71d6e5929ba0c40db1960e36e9acba9d7e525..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 912 zcmV;B18@9^P)oWowDaEkzU!j%l38$)o7}}cCnx7z zVrKYAWwOsS=-Lqw-t?qu)r6QQ!notg696vQmg&~r9t3cLe1UW(yG7H)Ku^~yeO+g> z(bg0Jm{BNJFfw+(d}sQhCl&9uE%R)8S2n|p?*PPznUTt5*BiPR+1l3~ipPS`iO?Jk zARN#U4H*a;0yD)$9M29{3dM>Y4K?&WE>{g^G!Zl7)jelV^{i|AG#D_%trsJC8h7YDw+>Nu`!(E)&&KfE(t5U!_KF)uRXGsl%@ z#;0eK6ZhtiUhin`+P8I6C=m!d1ufk}o{_gOutKfI-_b^R{JP z`QzJ2^LHMWS&9G(o-t)@yh1Uq9cxfG6X$C)H~ghbOC7?WrZ-yyL0>0QOs`0x)U>uAAQg z>;&LGL0Gpf^PVr@oj>}%1`wDT7wv!4sq=s3q*Oh&WftpMhqGg=O68@F-$%x80Ep=T zKm-sG?*3PXAs8nI|0Dok)RR-0Y?z4d_HJBzCO6*s&6^5?o^0No>h2ra)My_p{u2^&LcltM%9%NL@3OcL;J5G-fbF(raxE|ezaddAction("Properties Viewer ..."); menu_ppu = menu->addMenu("S-PPU"); - menu_ppu_layerToggle = menu_ppu->addAction("Layer Toggle ..."); menu_ppu_vramViewer = menu_ppu->addAction("Video RAM Viewer ..."); menu_ppu_oamViewer = menu_ppu->addAction("Sprite Viewer ..."); menu_ppu_cgramViewer = menu_ppu->addAction("Palette Viewer ..."); @@ -98,7 +96,6 @@ Debugger::Debugger() { breakpointEditor = new BreakpointEditor; memoryEditor = new MemoryEditor; propertiesViewer = new PropertiesViewer; - layerToggle = new LayerToggle; vramViewer = new VramViewer; oamViewer = new OamViewer; cgramViewer = new CgramViewer; @@ -109,7 +106,6 @@ Debugger::Debugger() { connect(menu_tools_memory, SIGNAL(triggered()), memoryEditor, SLOT(show())); connect(menu_tools_propertiesViewer, SIGNAL(triggered()), propertiesViewer, SLOT(show())); - connect(menu_ppu_layerToggle, SIGNAL(triggered()), layerToggle, SLOT(show())); connect(menu_ppu_vramViewer, SIGNAL(triggered()), vramViewer, SLOT(show())); connect(menu_ppu_oamViewer, SIGNAL(triggered()), oamViewer, SLOT(show())); connect(menu_ppu_cgramViewer, SIGNAL(triggered()), cgramViewer, SLOT(show())); diff --git a/bsnes/qt/debugger/debugger.moc.hpp b/bsnes/qt/debugger/debugger.moc.hpp index c4e8ca44..e2b97e90 100755 --- a/bsnes/qt/debugger/debugger.moc.hpp +++ b/bsnes/qt/debugger/debugger.moc.hpp @@ -9,7 +9,6 @@ public: QAction *menu_tools_memory; QAction *menu_tools_propertiesViewer; QMenu *menu_ppu; - QAction *menu_ppu_layerToggle; QAction *menu_ppu_vramViewer; QAction *menu_ppu_oamViewer; QAction *menu_ppu_cgramViewer; diff --git a/bsnes/qt/debugger/ppu/layer-toggle.cpp b/bsnes/qt/debugger/ppu/layer-toggle.cpp deleted file mode 100755 index 136b5b5d..00000000 --- a/bsnes/qt/debugger/ppu/layer-toggle.cpp +++ /dev/null @@ -1,107 +0,0 @@ -#include "layer-toggle.moc" -LayerToggle *layerToggle; - -LayerToggle::LayerToggle() { - setObjectName("layer-toggle"); - setWindowTitle("S-PPU Layer Toggle"); - setGeometryString(&config().geometry.layerToggle); - application.windowList.append(this); - - layout = new QGridLayout; - layout->setSizeConstraint(QLayout::SetFixedSize); - layout->setMargin(Style::WindowMargin); - layout->setHorizontalSpacing(Style::WidgetSpacing); - layout->setVerticalSpacing(0); - setLayout(layout); - - bg1Label = new QLabel("BG1:"); - layout->addWidget(bg1Label, 0, 0); - - bg1pri0 = new QCheckBox("Priority 0"); - bg1pri0->setChecked(true); - layout->addWidget(bg1pri0, 0, 1); - - bg1pri1 = new QCheckBox("Priority 1"); - bg1pri1->setChecked(true); - layout->addWidget(bg1pri1, 0, 2); - - bg2Label = new QLabel("BG2:"); - layout->addWidget(bg2Label, 1, 0); - - bg2pri0 = new QCheckBox("Priority 0"); - bg2pri0->setChecked(true); - layout->addWidget(bg2pri0, 1, 1); - - bg2pri1 = new QCheckBox("Priority 1"); - bg2pri1->setChecked(true); - layout->addWidget(bg2pri1, 1, 2); - - bg3Label = new QLabel("BG3:"); - layout->addWidget(bg3Label, 2, 0); - - bg3pri0 = new QCheckBox("Priority 0"); - bg3pri0->setChecked(true); - layout->addWidget(bg3pri0, 2, 1); - - bg3pri1 = new QCheckBox("Priority 1"); - bg3pri1->setChecked(true); - layout->addWidget(bg3pri1, 2, 2); - - bg4Label = new QLabel("BG4:"); - layout->addWidget(bg4Label, 3, 0); - - bg4pri0 = new QCheckBox("Priority 0"); - bg4pri0->setChecked(true); - layout->addWidget(bg4pri0, 3, 1); - - bg4pri1 = new QCheckBox("Priority 1"); - bg4pri1->setChecked(true); - layout->addWidget(bg4pri1, 3, 2); - - oamLabel = new QLabel("OAM:"); - layout->addWidget(oamLabel, 4, 0); - - oampri0 = new QCheckBox("Priority 0"); - oampri0->setChecked(true); - layout->addWidget(oampri0, 4, 1); - - oampri1 = new QCheckBox("Priority 1"); - oampri1->setChecked(true); - layout->addWidget(oampri1, 4, 2); - - oampri2 = new QCheckBox("Priority 2"); - oampri2->setChecked(true); - layout->addWidget(oampri2, 4, 3); - - oampri3 = new QCheckBox("Priority 3"); - oampri3->setChecked(true); - layout->addWidget(oampri3, 4, 4); - - connect(bg1pri0, SIGNAL(stateChanged(int)), this, SLOT(toggleLayer())); - connect(bg1pri1, SIGNAL(stateChanged(int)), this, SLOT(toggleLayer())); - connect(bg2pri0, SIGNAL(stateChanged(int)), this, SLOT(toggleLayer())); - connect(bg2pri1, SIGNAL(stateChanged(int)), this, SLOT(toggleLayer())); - connect(bg3pri0, SIGNAL(stateChanged(int)), this, SLOT(toggleLayer())); - connect(bg3pri1, SIGNAL(stateChanged(int)), this, SLOT(toggleLayer())); - connect(bg4pri0, SIGNAL(stateChanged(int)), this, SLOT(toggleLayer())); - connect(bg4pri1, SIGNAL(stateChanged(int)), this, SLOT(toggleLayer())); - connect(oampri0, SIGNAL(stateChanged(int)), this, SLOT(toggleLayer())); - connect(oampri1, SIGNAL(stateChanged(int)), this, SLOT(toggleLayer())); - connect(oampri2, SIGNAL(stateChanged(int)), this, SLOT(toggleLayer())); - connect(oampri3, SIGNAL(stateChanged(int)), this, SLOT(toggleLayer())); -} - -void LayerToggle::toggleLayer() { - if(sender() == bg1pri0) SNES::ppu.bg1_enabled[0] = bg1pri0->isChecked(); - if(sender() == bg1pri1) SNES::ppu.bg1_enabled[1] = bg1pri1->isChecked(); - if(sender() == bg2pri0) SNES::ppu.bg2_enabled[0] = bg2pri0->isChecked(); - if(sender() == bg2pri1) SNES::ppu.bg2_enabled[1] = bg2pri1->isChecked(); - if(sender() == bg3pri0) SNES::ppu.bg3_enabled[0] = bg3pri0->isChecked(); - if(sender() == bg3pri1) SNES::ppu.bg3_enabled[1] = bg3pri1->isChecked(); - if(sender() == bg4pri0) SNES::ppu.bg4_enabled[0] = bg4pri0->isChecked(); - if(sender() == bg4pri1) SNES::ppu.bg4_enabled[1] = bg4pri1->isChecked(); - if(sender() == oampri0) SNES::ppu.oam_enabled[0] = oampri0->isChecked(); - if(sender() == oampri1) SNES::ppu.oam_enabled[1] = oampri1->isChecked(); - if(sender() == oampri2) SNES::ppu.oam_enabled[2] = oampri2->isChecked(); - if(sender() == oampri3) SNES::ppu.oam_enabled[3] = oampri3->isChecked(); -} diff --git a/bsnes/qt/debugger/ppu/layer-toggle.moc.hpp b/bsnes/qt/debugger/ppu/layer-toggle.moc.hpp deleted file mode 100755 index 81b0bde4..00000000 --- a/bsnes/qt/debugger/ppu/layer-toggle.moc.hpp +++ /dev/null @@ -1,30 +0,0 @@ -class LayerToggle : public Window { - Q_OBJECT - -public: - QGridLayout *layout; - QLabel *bg1Label; - QCheckBox *bg1pri0; - QCheckBox *bg1pri1; - QLabel *bg2Label; - QCheckBox *bg2pri0; - QCheckBox *bg2pri1; - QLabel *bg3Label; - QCheckBox *bg3pri0; - QCheckBox *bg3pri1; - QLabel *bg4Label; - QCheckBox *bg4pri0; - QCheckBox *bg4pri1; - QLabel *oamLabel; - QCheckBox *oampri0; - QCheckBox *oampri1; - QCheckBox *oampri2; - QCheckBox *oampri3; - - LayerToggle(); - -public slots: - void toggleLayer(); -}; - -extern LayerToggle *layerToggle; diff --git a/bsnes/qt/resource/resource.qrc b/bsnes/qt/resource/resource.qrc index 95acae4c..02b0fc36 100755 --- a/bsnes/qt/resource/resource.qrc +++ b/bsnes/qt/resource/resource.qrc @@ -12,29 +12,7 @@ ../data/icons-16x16/item-radio-on.png ../data/icons-16x16/item-radio-off.png - ../data/icons-16x16/accessories-text-editor.png - ../data/icons-16x16/applications-multimedia.png - ../data/icons-16x16/appointment-new.png - ../data/icons-16x16/audio-volume-high.png - ../data/icons-16x16/document-open.png - ../data/icons-16x16/emblem-system.png - ../data/icons-16x16/folder.png ../data/icons-16x16/folder-new.png ../data/icons-16x16/go-up.png - ../data/icons-16x16/help-browser.png - ../data/icons-16x16/image-x-generic.png - ../data/icons-16x16/input-gaming.png - ../data/icons-16x16/media-playback-start.png - ../data/icons-16x16/media-playback-stop.png - ../data/icons-16x16/media-record.png - ../data/icons-16x16/preferences-desktop.png - ../data/icons-16x16/preferences-system.png - ../data/icons-16x16/process-stop.png - ../data/icons-16x16/system-file-manager.png - ../data/icons-16x16/system-search.png - ../data/icons-16x16/text-x-generic.png - ../data/icons-16x16/utilities-terminal.png - ../data/icons-16x16/video-display.png - ../data/icons-16x16/view-refresh.png diff --git a/bsnes/qt/settings/profile.cpp b/bsnes/qt/settings/profile.cpp index 6df07922..fd1dc8e4 100755 --- a/bsnes/qt/settings/profile.cpp +++ b/bsnes/qt/settings/profile.cpp @@ -17,13 +17,7 @@ ProfileSettingsWindow::ProfileSettingsWindow() { layout->addSpacing(Style::WidgetSpacing); profileAccuracy = new QRadioButton("Accuracy"); - profileAccuracy->setStyleSheet( - "font-weight: bold;" - "font-size: 12pt;" - #if !defined(PLATFORM_WIN) - "background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0, stop: 0 rgba(255, 0, 0, 48), stop: 1 rgba(255, 0, 0, 0));" - #endif - ); + profileAccuracy->setStyleSheet("font-weight: bold; font-size: 12pt;"); layout->addWidget(profileAccuracy); profileAccuracyInfo = new QLabel( @@ -36,13 +30,7 @@ ProfileSettingsWindow::ProfileSettingsWindow() { layout->addSpacing(Style::WidgetSpacing); profileCompatibility = new QRadioButton("Compatibility"); - profileCompatibility->setStyleSheet( - "font-weight: bold;" - "font-size: 12pt;" - #if !defined(PLATFORM_WIN) - "background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0, stop: 0 rgba(0, 0, 255, 48), stop: 1 rgba(0, 0, 255, 0));" - #endif - ); + profileCompatibility->setStyleSheet("font-weight: bold; font-size: 12pt;"); layout->addWidget(profileCompatibility); profileCompatibilityInfo = new QLabel( @@ -55,13 +43,7 @@ ProfileSettingsWindow::ProfileSettingsWindow() { layout->addSpacing(Style::WidgetSpacing); profilePerformance = new QRadioButton("Performance"); - profilePerformance->setStyleSheet( - "font-weight: bold;" - "font-size: 12pt;" - #if !defined(PLATFORM_WIN) - "background: qlineargradient(x1: 0, y1: 0, x2: 1, y2: 0, stop: 0 rgba(0, 255, 0, 48), stop: 1 rgba(0, 255, 0, 0));" - #endif - ); + profilePerformance->setStyleSheet("font-weight: bold; font-size: 12pt;"); layout->addWidget(profilePerformance); profilePerformanceInfo = new QLabel( diff --git a/bsnes/qt/settings/settings.cpp b/bsnes/qt/settings/settings.cpp index ef67685b..a80f9faf 100755 --- a/bsnes/qt/settings/settings.cpp +++ b/bsnes/qt/settings/settings.cpp @@ -60,11 +60,11 @@ SettingsWindow::SettingsWindow() { advancedArea->setWidgetResizable(true); tab = new QTabWidget; - tab->addTab(profileArea, QIcon(":/16x16/emblem-system.png"), "Profile"); - tab->addTab(videoArea, QIcon(":/16x16/video-display.png"), "Video"); - tab->addTab(audioArea, QIcon(":/16x16/audio-volume-high.png"), "Audio"); - tab->addTab(inputArea, QIcon(":/16x16/input-gaming.png"), "Input"); - tab->addTab(pathArea, QIcon(":/16x16/folder.png"), "Paths"); - tab->addTab(advancedArea, QIcon(":/16x16/preferences-system.png"), "Advanced"); + tab->addTab(profileArea, "Profile"); + tab->addTab(videoArea, "Video"); + tab->addTab(audioArea, "Audio"); + tab->addTab(inputArea, "Input"); + tab->addTab(pathArea, "Paths"); + tab->addTab(advancedArea, "Advanced"); layout->addWidget(tab); } diff --git a/bsnes/qt/tools/effecttoggle.cpp b/bsnes/qt/tools/effecttoggle.cpp new file mode 100755 index 00000000..cec7ee60 --- /dev/null +++ b/bsnes/qt/tools/effecttoggle.cpp @@ -0,0 +1,151 @@ +#include "effecttoggle.moc" +EffectToggleWindow *effectToggleWindow; + +EffectToggleWindow::EffectToggleWindow() { + layout = new QVBoxLayout; + layout->setAlignment(Qt::AlignTop); + layout->setMargin(Style::WindowMargin); + layout->setSpacing(Style::WidgetSpacing); + setLayout(layout); + + ppuLabel = new QLabel("S-PPU (Video)"); + layout->addWidget(ppuLabel); + + ppuLayout = new QGridLayout; + ppuLayout->setAlignment(Qt::AlignLeft); + layout->addLayout(ppuLayout); + + bg1pri0 = new QCheckBox("BG1 Priority 0"); + bg1pri0->setChecked(true); + ppuLayout->addWidget(bg1pri0, 0, 0); + + bg1pri1 = new QCheckBox("BG1 Priority 1"); + bg1pri1->setChecked(true); + ppuLayout->addWidget(bg1pri1, 0, 1); + + bg2pri0 = new QCheckBox("BG2 Priority 0"); + bg2pri0->setChecked(true); + ppuLayout->addWidget(bg2pri0, 1, 0); + + bg2pri1 = new QCheckBox("BG2 Priority 1"); + bg2pri1->setChecked(true); + ppuLayout->addWidget(bg2pri1, 1, 1); + + bg3pri0 = new QCheckBox("BG3 Priority 0"); + bg3pri0->setChecked(true); + ppuLayout->addWidget(bg3pri0, 2, 0); + + bg3pri1 = new QCheckBox("BG3 Priority 1"); + bg3pri1->setChecked(true); + ppuLayout->addWidget(bg3pri1, 2, 1); + + bg4pri0 = new QCheckBox("BG4 Priority 0"); + bg4pri0->setChecked(true); + ppuLayout->addWidget(bg4pri0, 3, 0); + + bg4pri1 = new QCheckBox("BG4 Priority 1"); + bg4pri1->setChecked(true); + ppuLayout->addWidget(bg4pri1, 3, 1); + + oampri0 = new QCheckBox("OAM Priority 0"); + oampri0->setChecked(true); + ppuLayout->addWidget(oampri0, 4, 0); + + oampri1 = new QCheckBox("OAM Priority 1"); + oampri1->setChecked(true); + ppuLayout->addWidget(oampri1, 4, 1); + + oampri2 = new QCheckBox("OAM Priority 2"); + oampri2->setChecked(true); + ppuLayout->addWidget(oampri2, 4, 2); + + oampri3 = new QCheckBox("OAM Priority 3"); + oampri3->setChecked(true); + ppuLayout->addWidget(oampri3, 4, 3); + + dspLabel = new QLabel("S-DSP (Audio)"); + layout->addWidget(dspLabel); + + dspLayout = new QGridLayout; + dspLayout->setAlignment(Qt::AlignLeft); + layout->addLayout(dspLayout); + + channel0 = new QCheckBox("Channel 0"); + channel0->setChecked(true); + dspLayout->addWidget(channel0, 0, 0); + + channel1 = new QCheckBox("Channel 1"); + channel1->setChecked(true); + dspLayout->addWidget(channel1, 0, 1); + + channel2 = new QCheckBox("Channel 2"); + channel2->setChecked(true); + dspLayout->addWidget(channel2, 0, 2); + + channel3 = new QCheckBox("Channel 3"); + channel3->setChecked(true); + dspLayout->addWidget(channel3, 0, 3); + + channel4 = new QCheckBox("Channel 4"); + channel4->setChecked(true); + dspLayout->addWidget(channel4, 1, 0); + + channel5 = new QCheckBox("Channel 5"); + channel5->setChecked(true); + dspLayout->addWidget(channel5, 1, 1); + + channel6 = new QCheckBox("Channel 6"); + channel6->setChecked(true); + dspLayout->addWidget(channel6, 1, 2); + + channel7 = new QCheckBox("Channel 7"); + channel7->setChecked(true); + dspLayout->addWidget(channel7, 1, 3); + + connect(bg1pri0, SIGNAL(stateChanged(int)), this, SLOT(synchronize())); + connect(bg1pri1, SIGNAL(stateChanged(int)), this, SLOT(synchronize())); + connect(bg2pri0, SIGNAL(stateChanged(int)), this, SLOT(synchronize())); + connect(bg2pri1, SIGNAL(stateChanged(int)), this, SLOT(synchronize())); + connect(bg3pri0, SIGNAL(stateChanged(int)), this, SLOT(synchronize())); + connect(bg3pri1, SIGNAL(stateChanged(int)), this, SLOT(synchronize())); + connect(bg4pri0, SIGNAL(stateChanged(int)), this, SLOT(synchronize())); + connect(bg4pri1, SIGNAL(stateChanged(int)), this, SLOT(synchronize())); + connect(oampri0, SIGNAL(stateChanged(int)), this, SLOT(synchronize())); + connect(oampri1, SIGNAL(stateChanged(int)), this, SLOT(synchronize())); + connect(oampri2, SIGNAL(stateChanged(int)), this, SLOT(synchronize())); + connect(oampri3, SIGNAL(stateChanged(int)), this, SLOT(synchronize())); + connect(channel0, SIGNAL(stateChanged(int)), this, SLOT(synchronize())); + connect(channel1, SIGNAL(stateChanged(int)), this, SLOT(synchronize())); + connect(channel2, SIGNAL(stateChanged(int)), this, SLOT(synchronize())); + connect(channel3, SIGNAL(stateChanged(int)), this, SLOT(synchronize())); + connect(channel4, SIGNAL(stateChanged(int)), this, SLOT(synchronize())); + connect(channel5, SIGNAL(stateChanged(int)), this, SLOT(synchronize())); + connect(channel6, SIGNAL(stateChanged(int)), this, SLOT(synchronize())); + connect(channel7, SIGNAL(stateChanged(int)), this, SLOT(synchronize())); +} + +void EffectToggleWindow::synchronize() { + #if defined(PROFILE_COMPATIBILITY) || defined(PROFILE_PERFORMANCE) + SNES::ppu.layer_enable(0, 0, bg1pri0->isChecked()); + SNES::ppu.layer_enable(0, 1, bg1pri1->isChecked()); + SNES::ppu.layer_enable(1, 0, bg2pri0->isChecked()); + SNES::ppu.layer_enable(1, 1, bg2pri1->isChecked()); + SNES::ppu.layer_enable(2, 0, bg3pri0->isChecked()); + SNES::ppu.layer_enable(2, 1, bg3pri1->isChecked()); + SNES::ppu.layer_enable(3, 0, bg4pri0->isChecked()); + SNES::ppu.layer_enable(3, 1, bg4pri1->isChecked()); + SNES::ppu.layer_enable(4, 0, oampri0->isChecked()); + SNES::ppu.layer_enable(4, 1, oampri1->isChecked()); + SNES::ppu.layer_enable(4, 2, oampri2->isChecked()); + SNES::ppu.layer_enable(4, 3, oampri3->isChecked()); + + SNES::dsp.channel_enable(0, channel0->isChecked()); + SNES::dsp.channel_enable(1, channel1->isChecked()); + SNES::dsp.channel_enable(2, channel2->isChecked()); + SNES::dsp.channel_enable(3, channel3->isChecked()); + SNES::dsp.channel_enable(4, channel4->isChecked()); + SNES::dsp.channel_enable(5, channel5->isChecked()); + SNES::dsp.channel_enable(6, channel6->isChecked()); + SNES::dsp.channel_enable(7, channel7->isChecked()); + #endif +} diff --git a/bsnes/qt/tools/effecttoggle.moc.hpp b/bsnes/qt/tools/effecttoggle.moc.hpp new file mode 100755 index 00000000..cd27ff10 --- /dev/null +++ b/bsnes/qt/tools/effecttoggle.moc.hpp @@ -0,0 +1,37 @@ +class EffectToggleWindow : public QWidget { + Q_OBJECT + +public: + QVBoxLayout *layout; + QLabel *ppuLabel; + QGridLayout *ppuLayout; + QCheckBox *bg1pri0; + QCheckBox *bg1pri1; + QCheckBox *bg2pri0; + QCheckBox *bg2pri1; + QCheckBox *bg3pri0; + QCheckBox *bg3pri1; + QCheckBox *bg4pri0; + QCheckBox *bg4pri1; + QCheckBox *oampri0; + QCheckBox *oampri1; + QCheckBox *oampri2; + QCheckBox *oampri3; + QLabel *dspLabel; + QGridLayout *dspLayout; + QCheckBox *channel0; + QCheckBox *channel1; + QCheckBox *channel2; + QCheckBox *channel3; + QCheckBox *channel4; + QCheckBox *channel5; + QCheckBox *channel6; + QCheckBox *channel7; + + EffectToggleWindow(); + +public slots: + void synchronize(); +}; + +extern EffectToggleWindow *effectToggleWindow; diff --git a/bsnes/qt/tools/tools.cpp b/bsnes/qt/tools/tools.cpp index e1723263..61564c08 100755 --- a/bsnes/qt/tools/tools.cpp +++ b/bsnes/qt/tools/tools.cpp @@ -6,6 +6,7 @@ ToolsWindow *toolsWindow; #include "cheateditor.cpp" #include "cheatfinder.cpp" #include "statemanager.cpp" +#include "effecttoggle.cpp" ToolsWindow::ToolsWindow() { setObjectName("tools-window"); @@ -22,6 +23,7 @@ ToolsWindow::ToolsWindow() { cheatEditorWindow = new CheatEditorWindow; cheatFinderWindow = new CheatFinderWindow; stateManagerWindow = new StateManagerWindow; + effectToggleWindow = new EffectToggleWindow; cheatEditorArea = new QScrollArea; cheatEditorArea->setWidget(cheatEditorWindow); @@ -38,9 +40,17 @@ ToolsWindow::ToolsWindow() { stateManagerArea->setFrameStyle(0); stateManagerArea->setWidgetResizable(true); + effectToggleArea = new QScrollArea; + effectToggleArea->setWidget(effectToggleWindow); + effectToggleArea->setFrameStyle(0); + effectToggleArea->setWidgetResizable(true); + tab = new QTabWidget; - tab->addTab(cheatEditorArea, QIcon(":/16x16/accessories-text-editor.png"), "Cheat Editor"); - tab->addTab(cheatFinderArea, QIcon(":/16x16/system-search.png"), "Cheat Finder"); - tab->addTab(stateManagerArea, QIcon(":/16x16/system-file-manager.png"), "State Manager"); + tab->addTab(cheatEditorArea, "Cheat Editor"); + tab->addTab(cheatFinderArea, "Cheat Finder"); + tab->addTab(stateManagerArea, "State Manager"); + #if defined(PROFILE_COMPATIBILITY) || defined(PROFILE_PERFORMANCE) + tab->addTab(effectToggleArea, "Effect Toggle"); + #endif layout->addWidget(tab); } diff --git a/bsnes/qt/tools/tools.moc.hpp b/bsnes/qt/tools/tools.moc.hpp index 597869da..593adc45 100755 --- a/bsnes/qt/tools/tools.moc.hpp +++ b/bsnes/qt/tools/tools.moc.hpp @@ -7,6 +7,7 @@ public: QScrollArea *cheatEditorArea; QScrollArea *cheatFinderArea; QScrollArea *stateManagerArea; + QScrollArea *effectToggleArea; ToolsWindow(); diff --git a/bsnes/qt/ui-base.hpp b/bsnes/qt/ui-base.hpp index 9ca2d625..ba91c1e3 100755 --- a/bsnes/qt/ui-base.hpp +++ b/bsnes/qt/ui-base.hpp @@ -47,7 +47,6 @@ using namespace ruby; #include "debugger/tools/memory.moc.hpp" #include "debugger/tools/properties.moc.hpp" - #include "debugger/ppu/layer-toggle.moc.hpp" #include "debugger/ppu/vram-viewer.moc.hpp" #include "debugger/ppu/oam-viewer.moc.hpp" #include "debugger/ppu/cgram-viewer.moc.hpp" @@ -76,6 +75,7 @@ using namespace ruby; #include "tools/cheateditor.moc.hpp" #include "tools/cheatfinder.moc.hpp" #include "tools/statemanager.moc.hpp" +#include "tools/effecttoggle.moc.hpp" #include "utility/utility.hpp" diff --git a/bsnes/snes/alt/dsp/dsp.cpp b/bsnes/snes/alt/dsp/dsp.cpp index b93d9a6f..a5ea8956 100755 --- a/bsnes/snes/alt/dsp/dsp.cpp +++ b/bsnes/snes/alt/dsp/dsp.cpp @@ -50,4 +50,17 @@ void DSP::reset() { spc_dsp.set_output(samplebuffer, 8192); } +void DSP::channel_enable(unsigned channel, bool enable) { + channel_enabled[channel & 7] = enable; + unsigned mask = 0; + for(unsigned i = 0; i < 8; i++) { + if(channel_enabled[i] == false) mask |= 1 << i; + } + spc_dsp.mute_voices(mask); +} + +DSP::DSP() { + for(unsigned i = 0; i < 8; i++) channel_enabled[i] = true; +} + } diff --git a/bsnes/snes/alt/dsp/dsp.hpp b/bsnes/snes/alt/dsp/dsp.hpp index 1d3d234c..29cab585 100755 --- a/bsnes/snes/alt/dsp/dsp.hpp +++ b/bsnes/snes/alt/dsp/dsp.hpp @@ -13,12 +13,16 @@ public: void power(); void reset(); + void channel_enable(unsigned channel, bool enable); + void serialize(serializer&); bool property(unsigned id, string &name, string &value) { return false; } + DSP(); private: SPC_DSP spc_dsp; int16 samplebuffer[8192]; + bool channel_enabled[8]; }; extern DSP dsp; diff --git a/bsnes/snes/alt/ppu-new/background/background.cpp b/bsnes/snes/alt/ppu-new/background/background.cpp index 4795920d..41603aa2 100755 --- a/bsnes/snes/alt/ppu-new/background/background.cpp +++ b/bsnes/snes/alt/ppu-new/background/background.cpp @@ -76,6 +76,10 @@ void PPU::Background::render() { if(regs.sub_enable) window.render(1); if(regs.mode == Mode::Mode7) return render_mode7(); + unsigned priority0 = (priority0_enable ? regs.priority0 : 0); + unsigned priority1 = (priority1_enable ? regs.priority1 : 0); + if(priority0 + priority1 == 0) return; + unsigned mosaic_hcounter = 1; unsigned mosaic_palette = 0; unsigned mosaic_priority = 0; @@ -114,7 +118,7 @@ void PPU::Background::render() { tile_num = get_tile(hoffset, voffset); mirror_y = tile_num & 0x8000; mirror_x = tile_num & 0x4000; - tile_pri = tile_num & 0x2000 ? regs.priority1 : regs.priority0; + tile_pri = tile_num & 0x2000 ? priority1 : priority0; pal_num = (tile_num >> 10) & 7; pal_index = (bgpal_index + (pal_num << pal_size)) & 0xff; @@ -158,6 +162,9 @@ void PPU::Background::render() { } PPU::Background::Background(PPU &self, unsigned id) : self(self), id(id) { + priority0_enable = true; + priority1_enable = true; + opt_valid_bit = (id == ID::BG1 ? 0x2000 : id == ID::BG2 ? 0x4000 : 0x0000); mosaic_table = new uint16*[16]; diff --git a/bsnes/snes/alt/ppu-new/background/background.hpp b/bsnes/snes/alt/ppu-new/background/background.hpp index f4923f71..3712e923 100755 --- a/bsnes/snes/alt/ppu-new/background/background.hpp +++ b/bsnes/snes/alt/ppu-new/background/background.hpp @@ -4,6 +4,9 @@ class Background { struct ScreenSize { enum { Size32x32, Size32x64, Size64x32, Size64x64 }; }; struct TileSize { enum { Size8x8, Size16x16 }; }; + bool priority0_enable; + bool priority1_enable; + struct Regs { unsigned mode; unsigned priority0; diff --git a/bsnes/snes/alt/ppu-new/background/mode7.cpp b/bsnes/snes/alt/ppu-new/background/mode7.cpp index e83b1139..026c4dae 100755 --- a/bsnes/snes/alt/ppu-new/background/mode7.cpp +++ b/bsnes/snes/alt/ppu-new/background/mode7.cpp @@ -27,6 +27,10 @@ void PPU::Background::render_mode7() { mosaic_y = mosaic_table[self.bg1.regs.mosaic]; } + unsigned priority0 = (priority0_enable ? regs.priority0 : 0); + unsigned priority1 = (priority1_enable ? regs.priority1 : 0); + if(priority0 + priority1 == 0) return; + signed psx = ((a * Clip(hofs - cx)) & ~63) + ((b * Clip(vofs - cy)) & ~63) + ((b * mosaic_y[y]) & ~63) + (cx << 8); signed psy = ((c * Clip(hofs - cx)) & ~63) + ((d * Clip(vofs - cy)) & ~63) + ((d * mosaic_y[y]) & ~63) + (cy << 8); for(signed x = 0; x < 256; x++) { @@ -75,9 +79,9 @@ void PPU::Background::render_mode7() { unsigned priority; if(id == ID::BG1) { - priority = regs.priority0; + priority = priority0; } else { - priority = (palette & 0x80 ? regs.priority1 : regs.priority0); + priority = (palette & 0x80 ? priority1 : priority0); palette &= 0x7f; } diff --git a/bsnes/snes/alt/ppu-new/debugger/debugger.hpp b/bsnes/snes/alt/ppu-new/debugger/debugger.hpp index d2e3d913..9ce6a4e6 100755 --- a/bsnes/snes/alt/ppu-new/debugger/debugger.hpp +++ b/bsnes/snes/alt/ppu-new/debugger/debugger.hpp @@ -1,10 +1,4 @@ class PPUDebugger : public PPU, public ChipDebugger { public: bool property(unsigned id, string &name, string &value); - - bool bg1_enabled[2]; - bool bg2_enabled[2]; - bool bg3_enabled[2]; - bool bg4_enabled[2]; - bool oam_enabled[4]; }; diff --git a/bsnes/snes/alt/ppu-new/ppu.cpp b/bsnes/snes/alt/ppu-new/ppu.cpp index bdf6d6d2..da1b539d 100755 --- a/bsnes/snes/alt/ppu-new/ppu.cpp +++ b/bsnes/snes/alt/ppu-new/ppu.cpp @@ -96,6 +96,23 @@ void PPU::reset() { mmio_reset(); } +void PPU::layer_enable(unsigned layer, unsigned priority, bool enable) { + switch(layer * 4 + priority) { + case 0: bg1.priority0_enable = enable; break; + case 1: bg1.priority1_enable = enable; break; + case 4: bg2.priority0_enable = enable; break; + case 5: bg2.priority1_enable = enable; break; + case 8: bg3.priority0_enable = enable; break; + case 9: bg3.priority1_enable = enable; break; + case 12: bg4.priority0_enable = enable; break; + case 13: bg4.priority1_enable = enable; break; + case 16: oam.priority0_enable = enable; break; + case 17: oam.priority1_enable = enable; break; + case 18: oam.priority2_enable = enable; break; + case 19: oam.priority3_enable = enable; break; + } +} + PPU::PPU() : cache(*this), bg1(*this, Background::ID::BG1), diff --git a/bsnes/snes/alt/ppu-new/ppu.hpp b/bsnes/snes/alt/ppu-new/ppu.hpp index 63d6cc77..79eb37f2 100755 --- a/bsnes/snes/alt/ppu-new/ppu.hpp +++ b/bsnes/snes/alt/ppu-new/ppu.hpp @@ -15,6 +15,8 @@ public: void scanline(); void frame(); + void layer_enable(unsigned layer, unsigned priority, bool enable); + void serialize(serializer&); PPU(); ~PPU(); diff --git a/bsnes/snes/alt/ppu-new/sprite/sprite.cpp b/bsnes/snes/alt/ppu-new/sprite/sprite.cpp index 40450d2c..222739cd 100755 --- a/bsnes/snes/alt/ppu-new/sprite/sprite.cpp +++ b/bsnes/snes/alt/ppu-new/sprite/sprite.cpp @@ -163,7 +163,13 @@ void PPU::Sprite::render() { if(regs.main_enable) window.render(0); if(regs.sub_enable) window.render(1); - const unsigned priority_table[] = { regs.priority0, regs.priority1, regs.priority2, regs.priority3 }; + unsigned priority0 = (priority0_enable ? regs.priority0 : 0); + unsigned priority1 = (priority1_enable ? regs.priority1 : 0); + unsigned priority2 = (priority2_enable ? regs.priority2 : 0); + unsigned priority3 = (priority3_enable ? regs.priority3 : 0); + if(priority0 + priority1 + priority2 + priority3 == 0) return; + const unsigned priority_table[] = { priority0, priority1, priority2, priority3 }; + for(unsigned x = 0; x < 256; x++) { if(output.priority[x] == 0xff) continue; unsigned priority = priority_table[output.priority[x]]; @@ -175,6 +181,10 @@ void PPU::Sprite::render() { } PPU::Sprite::Sprite(PPU &self) : self(self) { + priority0_enable = true; + priority1_enable = true; + priority2_enable = true; + priority3_enable = true; } #endif diff --git a/bsnes/snes/alt/ppu-new/sprite/sprite.hpp b/bsnes/snes/alt/ppu-new/sprite/sprite.hpp index 279386f7..6229ec4a 100755 --- a/bsnes/snes/alt/ppu-new/sprite/sprite.hpp +++ b/bsnes/snes/alt/ppu-new/sprite/sprite.hpp @@ -1,4 +1,9 @@ class Sprite { + bool priority0_enable; + bool priority1_enable; + bool priority2_enable; + bool priority3_enable; + struct Regs { unsigned priority0; unsigned priority1; diff --git a/bsnes/snes/alt/ppu/debugger/debugger.cpp b/bsnes/snes/alt/ppu/debugger/debugger.cpp index 3d8958e8..a67455e5 100755 --- a/bsnes/snes/alt/ppu/debugger/debugger.cpp +++ b/bsnes/snes/alt/ppu/debugger/debugger.cpp @@ -1,7 +1,5 @@ #ifdef PPU_CPP -#include "render.cpp" - uint8 PPUDebugger::vram_mmio_read(uint16 addr) { uint8 data = PPU::vram_mmio_read(addr); debugger.breakpoint_test(Debugger::Breakpoint::Source::VRAM, Debugger::Breakpoint::Mode::Read, addr, data); @@ -36,11 +34,6 @@ void PPUDebugger::cgram_mmio_write(uint16 addr, uint8 data) { } PPUDebugger::PPUDebugger() { - bg1_enabled[0] = bg1_enabled[1] = true; - bg2_enabled[0] = bg2_enabled[1] = true; - bg3_enabled[0] = bg3_enabled[1] = true; - bg4_enabled[0] = bg4_enabled[1] = true; - oam_enabled[0] = oam_enabled[1] = oam_enabled[2] = oam_enabled[3] = true; } bool PPUDebugger::property(unsigned id, string &name, string &value) { diff --git a/bsnes/snes/alt/ppu/debugger/debugger.hpp b/bsnes/snes/alt/ppu/debugger/debugger.hpp index 528704d2..f4ef8f51 100755 --- a/bsnes/snes/alt/ppu/debugger/debugger.hpp +++ b/bsnes/snes/alt/ppu/debugger/debugger.hpp @@ -2,12 +2,6 @@ class PPUDebugger : public PPU, public ChipDebugger { public: bool property(unsigned id, string &name, string &value); - bool bg1_enabled[2]; - bool bg2_enabled[2]; - bool bg3_enabled[2]; - bool bg4_enabled[2]; - bool oam_enabled[4]; - uint8 vram_mmio_read(uint16 addr); void vram_mmio_write(uint16 addr, uint8 data); @@ -17,14 +11,5 @@ public: uint8 cgram_mmio_read(uint16 addr); void cgram_mmio_write(uint16 addr, uint8 data); - void render_line_mode0(); - void render_line_mode1(); - void render_line_mode2(); - void render_line_mode3(); - void render_line_mode4(); - void render_line_mode5(); - void render_line_mode6(); - void render_line_mode7(); - PPUDebugger(); }; diff --git a/bsnes/snes/alt/ppu/debugger/render.cpp b/bsnes/snes/alt/ppu/debugger/render.cpp deleted file mode 100755 index f6a999e1..00000000 --- a/bsnes/snes/alt/ppu/debugger/render.cpp +++ /dev/null @@ -1,194 +0,0 @@ -#ifdef PPU_CPP - -//render_line_modeN(): -//modified to support layer disable; accomplished by setting priority to zero -//a priority of zero won't override the back layer, effectively nullifying it -//for speed, rendering loop is skipped entirely if all priorities are disabled -// -//note: render_line_(bg|oam|mode7) cannot be virtualized as they are templates - -void PPUDebugger::render_line_mode0() { - unsigned pri0, pri1, pri2, pri3; - - pri0 = bg1_enabled[0] ? 8 : 0; - pri1 = bg1_enabled[1] ? 11 : 0; - if(pri0 | pri1) PPU::render_line_bg<0, BG1, COLORDEPTH_4>(pri0, pri1); - - pri0 = bg2_enabled[0] ? 7 : 0; - pri1 = bg2_enabled[1] ? 10 : 0; - if(pri0 | pri1) PPU::render_line_bg<0, BG2, COLORDEPTH_4>(pri0, pri1); - - pri0 = bg3_enabled[0] ? 2 : 0; - pri1 = bg3_enabled[1] ? 5 : 0; - if(pri0 | pri1) PPU::render_line_bg<0, BG3, COLORDEPTH_4>(pri0, pri1); - - pri0 = bg4_enabled[0] ? 1 : 0; - pri1 = bg4_enabled[1] ? 4 : 0; - if(pri0 | pri1) PPU::render_line_bg<0, BG4, COLORDEPTH_4>(pri0, pri1); - - pri0 = oam_enabled[0] ? 3 : 0; - pri1 = oam_enabled[1] ? 6 : 0; - pri2 = oam_enabled[2] ? 9 : 0; - pri3 = oam_enabled[3] ? 12 : 0; - if(pri0 | pri1 | pri2 | pri3) PPU::render_line_oam(pri0, pri1, pri2, pri3); -} - -void PPUDebugger::render_line_mode1() { - unsigned pri0, pri1, pri2, pri3; - - if(regs.bg3_priority) { - pri0 = bg1_enabled[0] ? 5 : 0; - pri1 = bg1_enabled[1] ? 8 : 0; - if(pri0 | pri1) PPU::render_line_bg<1, BG1, COLORDEPTH_16>(pri0, pri1); - - pri0 = bg2_enabled[0] ? 4 : 0; - pri1 = bg2_enabled[1] ? 7 : 0; - if(pri0 | pri1) PPU::render_line_bg<1, BG2, COLORDEPTH_16>(pri0, pri1); - - pri0 = bg3_enabled[0] ? 1 : 0; - pri1 = bg3_enabled[1] ? 10 : 0; - if(pri0 | pri1) PPU::render_line_bg<1, BG3, COLORDEPTH_4>(pri0, pri1); - - pri0 = oam_enabled[0] ? 2 : 0; - pri1 = oam_enabled[1] ? 3 : 0; - pri2 = oam_enabled[2] ? 6 : 0; - pri3 = oam_enabled[3] ? 9 : 0; - if(pri0 | pri1 | pri2 | pri3) PPU::render_line_oam(pri0, pri1, pri2, pri3); - } else { - pri0 = bg1_enabled[0] ? 6 : 0; - pri1 = bg1_enabled[1] ? 9 : 0; - if(pri0 | pri1) PPU::render_line_bg<1, BG1, COLORDEPTH_16>(pri0, pri1); - - pri0 = bg2_enabled[0] ? 5 : 0; - pri1 = bg2_enabled[1] ? 8 : 0; - if(pri0 | pri1) PPU::render_line_bg<1, BG2, COLORDEPTH_16>(pri0, pri1); - - pri0 = bg3_enabled[0] ? 1 : 0; - pri1 = bg3_enabled[1] ? 3 : 0; - if(pri0 | pri1) PPU::render_line_bg<1, BG3, COLORDEPTH_4>(pri0, pri1); - - pri0 = oam_enabled[0] ? 2 : 0; - pri1 = oam_enabled[1] ? 4 : 0; - pri2 = oam_enabled[2] ? 7 : 0; - pri3 = oam_enabled[3] ? 10 : 0; - PPU::render_line_oam(pri0, pri1, pri2, pri3); - } -} - -void PPUDebugger::render_line_mode2() { - unsigned pri0, pri1, pri2, pri3; - - pri0 = bg1_enabled[0] ? 3 : 0; - pri1 = bg1_enabled[1] ? 7 : 0; - if(pri0 | pri1) PPU::render_line_bg<2, BG1, COLORDEPTH_16>(pri0, pri1); - - pri0 = bg2_enabled[0] ? 1 : 0; - pri1 = bg2_enabled[1] ? 5 : 0; - if(pri0 | pri1) PPU::render_line_bg<2, BG2, COLORDEPTH_16>(pri0, pri1); - - pri0 = oam_enabled[0] ? 2 : 0; - pri1 = oam_enabled[1] ? 4 : 0; - pri2 = oam_enabled[2] ? 6 : 0; - pri3 = oam_enabled[3] ? 8 : 0; - if(pri0 | pri1 | pri2 | pri3) PPU::render_line_oam(pri0, pri1, pri2, pri3); -} - -void PPUDebugger::render_line_mode3() { - unsigned pri0, pri1, pri2, pri3; - - pri0 = bg1_enabled[0] ? 3 : 0; - pri1 = bg1_enabled[1] ? 7 : 0; - if(pri0 | pri1) PPU::render_line_bg<3, BG1, COLORDEPTH_256>(pri0, pri1); - - pri0 = bg2_enabled[0] ? 1 : 0; - pri1 = bg2_enabled[1] ? 5 : 0; - if(pri0 | pri1) PPU::render_line_bg<3, BG2, COLORDEPTH_16>(pri0, pri1); - - pri0 = oam_enabled[0] ? 2 : 0; - pri1 = oam_enabled[1] ? 4 : 0; - pri2 = oam_enabled[2] ? 6 : 0; - pri3 = oam_enabled[3] ? 8 : 0; - if(pri0 | pri1 | pri2 | pri3) PPU::render_line_oam(pri0, pri1, pri2, pri3); -} - -void PPUDebugger::render_line_mode4() { - unsigned pri0, pri1, pri2, pri3; - - pri0 = bg1_enabled[0] ? 3 : 0; - pri1 = bg1_enabled[1] ? 7 : 0; - if(pri0 | pri1) PPU::render_line_bg<4, BG1, COLORDEPTH_256>(pri0, pri1); - - pri0 = bg2_enabled[0] ? 1 : 0; - pri1 = bg2_enabled[1] ? 5 : 0; - if(pri0 | pri1) PPU::render_line_bg<4, BG2, COLORDEPTH_4>(pri0, pri1); - - pri0 = oam_enabled[0] ? 2 : 0; - pri1 = oam_enabled[1] ? 4 : 0; - pri2 = oam_enabled[2] ? 6 : 0; - pri3 = oam_enabled[3] ? 8 : 0; - if(pri0 | pri1 | pri2 | pri3) PPU::render_line_oam(pri0, pri1, pri2, pri3); -} - -void PPUDebugger::render_line_mode5() { - unsigned pri0, pri1, pri2, pri3; - - pri0 = bg1_enabled[0] ? 3 : 0; - pri1 = bg1_enabled[1] ? 7 : 0; - if(pri0 | pri1) PPU::render_line_bg<5, BG1, COLORDEPTH_16>(pri0, pri1); - - pri0 = bg2_enabled[0] ? 1 : 0; - pri1 = bg2_enabled[1] ? 5 : 0; - if(pri0 | pri1) PPU::render_line_bg<5, BG2, COLORDEPTH_4>(pri0, pri1); - - pri0 = oam_enabled[0] ? 2 : 0; - pri1 = oam_enabled[1] ? 4 : 0; - pri2 = oam_enabled[2] ? 6 : 0; - pri3 = oam_enabled[3] ? 8 : 0; - if(pri0 | pri1 | pri2 | pri3) PPU::render_line_oam(pri0, pri1, pri2, pri3); -} - -void PPUDebugger::render_line_mode6() { - unsigned pri0, pri1, pri2, pri3; - - pri0 = bg1_enabled[0] ? 2 : 0; - pri1 = bg1_enabled[1] ? 5 : 0; - if(pri0 | pri1) PPU::render_line_bg<6, BG1, COLORDEPTH_16>(pri0, pri1); - - pri0 = oam_enabled[0] ? 1 : 0; - pri1 = oam_enabled[1] ? 3 : 0; - pri2 = oam_enabled[2] ? 4 : 0; - pri3 = oam_enabled[3] ? 6 : 0; - if(pri0 | pri1 | pri2 | pri3) PPU::render_line_oam(pri0, pri1, pri2, pri3); -} - -void PPUDebugger::render_line_mode7() { - unsigned pri0, pri1, pri2, pri3; - - if(regs.mode7_extbg == false) { - pri0 = bg1_enabled[0] ? 2 : 0; - pri1 = bg1_enabled[1] ? 2 : 0; - if(pri0 | pri1) PPU::render_line_mode7(pri0, pri1); - - pri0 = oam_enabled[0] ? 1 : 0; - pri1 = oam_enabled[1] ? 3 : 0; - pri2 = oam_enabled[2] ? 4 : 0; - pri3 = oam_enabled[3] ? 5 : 0; - if(pri0 | pri1 | pri2 | pri3) PPU::render_line_oam(pri0, pri1, pri2, pri3); - } else { - pri0 = bg1_enabled[0] ? 3 : 0; - pri1 = bg1_enabled[1] ? 3 : 0; - if(pri0 | pri1) PPU::render_line_mode7(pri0, pri1); - - pri0 = bg2_enabled[0] ? 1 : 0; - pri1 = bg2_enabled[1] ? 5 : 0; - if(pri0 | pri1) PPU::render_line_mode7(pri0, pri1); - - pri0 = oam_enabled[0] ? 2 : 0; - pri1 = oam_enabled[1] ? 4 : 0; - pri2 = oam_enabled[2] ? 6 : 0; - pri3 = oam_enabled[3] ? 7 : 0; - PPU::render_line_oam(pri0, pri1, pri2, pri3); - } -} - -#endif diff --git a/bsnes/snes/alt/ppu/ppu.cpp b/bsnes/snes/alt/ppu/ppu.cpp index 15e283c6..5bc92246 100755 --- a/bsnes/snes/alt/ppu/ppu.cpp +++ b/bsnes/snes/alt/ppu/ppu.cpp @@ -365,6 +365,23 @@ void PPU::reset() { regs.bg_y[3] = 0; } +void PPU::layer_enable(unsigned layer, unsigned priority, bool enable) { + switch(layer * 4 + priority) { + case 0: layer_enabled[BG1][0] = enable; break; + case 1: layer_enabled[BG1][1] = enable; break; + case 4: layer_enabled[BG2][0] = enable; break; + case 5: layer_enabled[BG2][1] = enable; break; + case 8: layer_enabled[BG3][0] = enable; break; + case 9: layer_enabled[BG3][1] = enable; break; + case 12: layer_enabled[BG4][0] = enable; break; + case 13: layer_enabled[BG4][1] = enable; break; + case 16: layer_enabled[OAM][0] = enable; break; + case 17: layer_enabled[OAM][1] = enable; break; + case 18: layer_enabled[OAM][2] = enable; break; + case 19: layer_enabled[OAM][3] = enable; break; + } +} + PPU::PPU() { surface = new uint16[512 * 512]; output = surface + 16 * 512; @@ -390,6 +407,19 @@ PPU::PPU() { } } } + + layer_enabled[BG1][0] = true; + layer_enabled[BG1][1] = true; + layer_enabled[BG2][0] = true; + layer_enabled[BG2][1] = true; + layer_enabled[BG3][0] = true; + layer_enabled[BG3][1] = true; + layer_enabled[BG4][0] = true; + layer_enabled[BG4][1] = true; + layer_enabled[OAM][0] = true; + layer_enabled[OAM][1] = true; + layer_enabled[OAM][2] = true; + layer_enabled[OAM][3] = true; } PPU::~PPU() { diff --git a/bsnes/snes/alt/ppu/ppu.hpp b/bsnes/snes/alt/ppu/ppu.hpp index b51f6245..0a01b045 100755 --- a/bsnes/snes/alt/ppu/ppu.hpp +++ b/bsnes/snes/alt/ppu/ppu.hpp @@ -59,6 +59,9 @@ public: void power(); void reset(); + bool layer_enabled[5][4]; + void layer_enable(unsigned layer, unsigned priority, bool enable); + void serialize(serializer&); PPU(); ~PPU(); diff --git a/bsnes/snes/alt/ppu/render/bg.cpp b/bsnes/snes/alt/ppu/render/bg.cpp index 56434c6e..3b661644 100755 --- a/bsnes/snes/alt/ppu/render/bg.cpp +++ b/bsnes/snes/alt/ppu/render/bg.cpp @@ -53,6 +53,10 @@ uint16 PPU::bg_get_tile(uint16 x, uint16 y) { template void PPU::render_line_bg(uint8 pri0_pos, uint8 pri1_pos) { + if(layer_enabled[bg][0] == false) pri0_pos = 0; + if(layer_enabled[bg][1] == false) pri1_pos = 0; + if(pri0_pos + pri1_pos == 0) return; + if(regs.bg_enabled[bg] == false && regs.bgsub_enabled[bg] == false) return; const bool bg_enabled = regs.bg_enabled[bg]; diff --git a/bsnes/snes/alt/ppu/render/mode7.cpp b/bsnes/snes/alt/ppu/render/mode7.cpp index 95194922..b233efc8 100755 --- a/bsnes/snes/alt/ppu/render/mode7.cpp +++ b/bsnes/snes/alt/ppu/render/mode7.cpp @@ -14,6 +14,10 @@ template void PPU::render_line_mode7(uint8 pri0_pos, uint8 pri1_pos) { + if(layer_enabled[bg][0] == false) pri0_pos = 0; + if(layer_enabled[bg][1] == false) pri1_pos = 0; + if(pri0_pos + pri1_pos == 0) return; + if(regs.bg_enabled[bg] == false && regs.bgsub_enabled[bg] == false) return; int32 px, py; diff --git a/bsnes/snes/alt/ppu/render/oam.cpp b/bsnes/snes/alt/ppu/render/oam.cpp index 52d6e1fe..42544a02 100755 --- a/bsnes/snes/alt/ppu/render/oam.cpp +++ b/bsnes/snes/alt/ppu/render/oam.cpp @@ -201,6 +201,12 @@ void PPU::render_line_oam_rto() { } void PPU::render_line_oam(uint8 pri0_pos, uint8 pri1_pos, uint8 pri2_pos, uint8 pri3_pos) { + if(layer_enabled[OAM][0] == false) pri0_pos = 0; + if(layer_enabled[OAM][1] == false) pri1_pos = 0; + if(layer_enabled[OAM][2] == false) pri2_pos = 0; + if(layer_enabled[OAM][3] == false) pri3_pos = 0; + if(pri0_pos + pri1_pos + pri2_pos + pri3_pos == 0) return; + if(regs.bg_enabled[OAM] == false && regs.bgsub_enabled[OAM] == false) return; for(unsigned s = 0; s < 34; s++) { diff --git a/bsnes/snes/alt/ppu/render/render.hpp b/bsnes/snes/alt/ppu/render/render.hpp index e3dfc37d..91438009 100755 --- a/bsnes/snes/alt/ppu/render/render.hpp +++ b/bsnes/snes/alt/ppu/render/render.hpp @@ -1,12 +1,12 @@ //render.cpp -debugvirtual inline void render_line_mode0(); -debugvirtual inline void render_line_mode1(); -debugvirtual inline void render_line_mode2(); -debugvirtual inline void render_line_mode3(); -debugvirtual inline void render_line_mode4(); -debugvirtual inline void render_line_mode5(); -debugvirtual inline void render_line_mode6(); -debugvirtual inline void render_line_mode7(); +inline void render_line_mode0(); +inline void render_line_mode1(); +inline void render_line_mode2(); +inline void render_line_mode3(); +inline void render_line_mode4(); +inline void render_line_mode5(); +inline void render_line_mode6(); +inline void render_line_mode7(); //cache.cpp enum { COLORDEPTH_4 = 0, COLORDEPTH_16 = 1, COLORDEPTH_256 = 2 }; diff --git a/bsnes/snes/ppu/debugger/debugger.hpp b/bsnes/snes/ppu/debugger/debugger.hpp index d2e3d913..9ce6a4e6 100755 --- a/bsnes/snes/ppu/debugger/debugger.hpp +++ b/bsnes/snes/ppu/debugger/debugger.hpp @@ -1,10 +1,4 @@ class PPUDebugger : public PPU, public ChipDebugger { public: bool property(unsigned id, string &name, string &value); - - bool bg1_enabled[2]; - bool bg2_enabled[2]; - bool bg3_enabled[2]; - bool bg4_enabled[2]; - bool oam_enabled[4]; }; diff --git a/bsnes/snes/snes.hpp b/bsnes/snes/snes.hpp index 53b13f38..2baa94c2 100755 --- a/bsnes/snes/snes.hpp +++ b/bsnes/snes/snes.hpp @@ -1,7 +1,7 @@ namespace SNES { namespace Info { static const char Name[] = "bsnes"; - static const char Version[] = "068.14"; + static const char Version[] = "068.15"; static const unsigned SerializerVersion = 13; } }