From 8f21c6e20f15176c611103040a440dacc95a8ad8 Mon Sep 17 00:00:00 2001 From: wavemotion-dave <75039837+wavemotion-dave@users.noreply.github.com> Date: Wed, 26 Oct 2022 08:14:48 -0400 Subject: [PATCH] Version 3.8 - more speed, more options, better gameplay --- A7800DS.nds | Bin 396288 -> 396800 bytes Makefile | 2 +- arm9/gfx/pdev_bg0.png | Bin 3077 -> 3100 bytes arm9/source/a7800utils.c | 2 +- arm9/source/emu/Tia.c | 91 ++------------------------------------- arm9/source/emu/Tia.h | 31 ++++++++++++- 6 files changed, 36 insertions(+), 90 deletions(-) diff --git a/A7800DS.nds b/A7800DS.nds index 592c093850d4b171f7e85ada6f95bc8a57ab45ef..d992db06df7f53fbe2a2762ab34c88c2d7cf8978 100644 GIT binary patch delta 19326 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 Te+Pa-ek3UR>fo!l#en|@c~8*p diff --git a/Makefile b/Makefile index b47aacd..b37d0ad 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -VERSION=3.7h +VERSION=3.8 TARGNAME=A7800DS #--------------------------------------------------------------------------------- diff --git a/arm9/gfx/pdev_bg0.png b/arm9/gfx/pdev_bg0.png index 26d629cf79946929298ffa4b20ab317d791a498b..95c12f086a1177781c67db028b40dde3fc158f78 100644 GIT binary patch delta 2267 zcmb7^c{tRGAIHCgnZ_~5IXPw`Y!Vp_qeRV?b%n{1E8B=&M~-1#BlbHPMY)C?CATC; zOd&>LjI%`wD@WNua+}4_I5NBawSV^eeg6AA&--~k@8@~H-k)2@TqNC95L6Jw!IvCP z#{vMn*x~}-A#!{rS2U=^T#C|we)U(%ib{teri1wRM@u7lE3G`8Q^(+!*{g z`LSco;kq8y-5MVg>KLKI02O~hp300z6&+J5YsHB{5R{*+? zfUdTHQlVb2nLP64^k^E|1a>@`JTEwCf(l?lo=qTucu%;I0Ofq#X`64?e44iE`BM<& zM$dt0bNj;p!yDi+hUa-}ffkNIS*aMH(kJS;3V$9DC#G^j4Gjy8X9SAECC|a5aLf9| zc%zk%$8pWZh`R7mYRgzA+er(I4azi*YsFFsLtJtRu%8EgqqonW;G-e)yDtKA9#=0_ zRG`pk+{6B6&4MRY7hU?)cP}xtUQA4{_Kv8Lhvueyabc>RpHT%}yHm-yNPhQS5fhta z+du1^cUtEBY2P>?WzrBHpTT%eER> z6MK^WzKK$Zl7d^exuWLv`D(QBI@yaQVMCq;mUlV{mM(8VCzjutyN&gxCaW4kS*GJU zGS&*WRSFjgB2`Y7$0%M=;u0CqYnv$GLLCXebm*Lbs`(X~TYA;y$~=VXDZxk!e2{X& zW35Y*NJI8a)$?)A<(UBD*!OP{wrn*@+L zGW`nkx3A|a_7Q^CLe;AReOQ0eS&i$@rNa3-7U^-jd1;3C)XWT5Ux0~Z zbP%fZ`$kpBB<2x?UoyAc0QtMWf{0&P-KX08tL1L8e05Rb7@t>Sb=rp&Ceh5dLYB_2 z$@vioimzNGy!?Q;C+GN=8@3esOf_HNTfkI?r$`EU;JTTJXtwz*Rh)$4K3eFr@__xl z0WiblP!JB3c<=>ZP`mR>!$4pAVh%*<^U<%_Rw>(oPdm15ggBk~fCYivx$&Yextx?E zoN>q#HO(EQZ!Fy6q#e=-uw) zD>-p(_t#}k_j%fJV2{20^hkQ?4<@odnx@HVae0=m?kaVp6fn}Gu{%rJuRQTtTl>bF z^wbBOU5vq3WhxOY(nQJz)EtGcV#o+p((wHZGV7q-xN1&U2t0oR?MtisP^6K*hzqHn**2rR;e^wWE@`cem0{s55r% z4U_H98hC?%>taQON)dKmVkZb^5O;(U;4UNa#m;ztRfJ$QfntI!HTCt4V!X4~PBcDsBA#n(kG{Go#Pn5FH_kySbNvK#@54lnc>~5# zFV`z@IX{`c&q73r46n-D#NTilg@O|Qy-OssTaz!aIGfq_si30`_;)N!Z7x**NR0gl Dj8XS+ delta 2244 zcmb`I*H;sG0)>AmKoXFUkzS-ZDDuxh>B2koxD3M}96BR`ifzX>0 zMM2O=7XmUtK_gP67y;?sfb>viXZH`-dDwft$M2qV-)^RStbFMy7+p>r1sj21rT~D5 zx3{r8M(dm9iw6#w%Ywn_BmL@VlraIRo40%SOai+=gG3qK4%*s&(Q`R7ru`ZvYPBopbEC3O8UT;zZROzT)(o)j|M8_A-|S zGpZ%Nq-Oa3Myr5R87?&s?Q3HcD+RUiZL&1olhzX^Rr1kXARD+O3x4|LsPQz`7J;~y zPmixq4FP_Kcmwfado$6%XAPu)266SYDP3@8rzXsI8+Q;7;-a{W&gKHH=*1PJDKC1{ z5dNWLev}%#RFw_1_7Uuk=;16lkl+Ul$IW$GlU{;qH5)W*mS+QOu5lOI+Kb*JBTU#> zyv%7dMK?2o?;VjVwGQZ(9i-mzb_6}P{>^3mP#4*Z5^I&~q2Mc45vG1xK?;vK$tX=! z6ubVCUfFJ^UI2q(yY0wMHOLUiWB|b z=yksz@cJ6f)uVmZ8$?(WJzX!y3?=x%AJloU9UtnA(6VBot>wb)*A}L z92_&o+*;_#b1feWYlY>;gn`+gtFGeu~*er9x!2!}3n|Iq8_(>IjsTzOkc z4j%;}(LlzA-C3sV#@_gokLncHl@ZyxQqC?2Jxi-H1ghErOp%+MoXCNrHQO^lo57Fc zbF^9QL=kXPnVFUs`LJ|SYBQ<4%whx~*zY#T*TJ7vDn88kBkmSzD;&nO^!#Q3mewxH zuN{Er%e^zCr&=$H0>RKu1}%~ZcM(L%g*@RUd6^i$F^8>oYAO>$lB~Td+cpQI%siz( z(g?M+dJDw{Faz-afU~VYA5Ux1)|{(iNZ+?T)mlU5%w_c9z?SeP{SzF*nz)WkeeqV@Y;lU6jCAPKEYWA|wX z$ZzTx7n1QsT_<5_j`yM{?2Dm%)^VSU+Iyc(+MSeqp+O-Xm2lokhc@T=%SCb#T$_g` z$(-=wM^L-j8ZGu0l+C<4@G)JnoJOjNU>@V%?dZ};Z7mkp_zhO;mut4`16Q-Gt_))Z zDbs9O&`aK5MU>*$=I(_qo1LppbHA~*WKu=rw79HdKo{l32)wj=Xl`lo*O=1B=^eLl zUhYnSrD=-fU!|IDD-$@qhF0woLw9W#hm3YicKYY_Ljv@m1kB91GSl@y z+@-~*3&pUeF<-zzOIN>t z`63rth@f>IFEWpstb#se?lPxQN0tk~lW)!?cHPqoeh;5Jv%00R8xtKxMd%Vf`<>B_ zNX8Ak#iB~l_HFRB1G$I0V(k@z@xP7VBcawlUM@Kt<+>O9(-LSz;Cd$Gn@sjH(#Z0EN)i^A@vDAmyVOJ|@JC5bto6K&xOT@eMQZNO z9{;=%V>W3Yi)0TB1D6g^TE(11;QIwxJ(%43E1OJ2_F7OOUQkS%*O-zIW}5#Ou}Wm{V&gnei- zC=uiy=+5^b*(}82XJvLoZca;B9ZA{st-77*In)@a*JyozEs>q@9D0e2GRdHnHDSn( ztbMVv{TTF}m6Jh@S~Wph2&&Q#YR-az#7>=c3#X_}+eiL%1iLEVo_a67+g~(0Na)?Z z5c9Bvc{k$V4g6$zsS26@J@Z!9unSUTOAc#*g-KgmdZnUYq9_dvTSTIT-2Ip8ZNnxc z5y@R6H9yUg#XTBXmACIUJezc1NPd*JrE}%;Om?~vBc*yS!j7V_h+Yr0kZyu;{7$6Y zL%aSKF>gz!Do~8z)rIyh$jrRD!?{<7uiQP1h3`}MAiPQwTS!ZZs`PF1iBkZ45JQ>~ zs-3n;^70qg=KG#Rw0F}F5K)-=cw=~Vwnc-TxI%4s#7Eu$@9${FqJv4>kocD7O4fbB79^1(%6ES|82?*2T6;a{b52jbtQvY3{5$rxPBtZ0UQvGm^s4+X diff --git a/arm9/source/a7800utils.c b/arm9/source/a7800utils.c index a770132..dd30f78 100644 --- a/arm9/source/a7800utils.c +++ b/arm9/source/a7800utils.c @@ -820,7 +820,7 @@ void dsInstallSoundEmuFIFO(void) } -void dsMainLoop(void) +ITCM_CODE void dsMainLoop(void) { static u8 lcd_swap_counter=0; static u8 special_hsc_entry=0; diff --git a/arm9/source/emu/Tia.c b/arm9/source/emu/Tia.c index d330bd1..eff59b9 100644 --- a/arm9/source/emu/Tia.c +++ b/arm9/source/emu/Tia.c @@ -47,13 +47,13 @@ byte tia_buffer[SNDLENGTH] __attribute__((section(".dtcm"))) = {0}; u32 tiaBufIdx __attribute__((section(".dtcm"))) = 0; +byte tia_volume[2] __attribute__((section(".dtcm"))) = {0}; +uint tia_counter[2] __attribute__((section(".dtcm"))) = {0}; +uint tia_counterMax[2] __attribute__((section(".dtcm"))) = {0}; static byte TIA_POLY4[ ] __attribute__((section(".dtcm"))) = {1,1,0,1,1,1,0,0,0,0,1,0,1,0,0}; static byte TIA_POLY5[ ] __attribute__((section(".dtcm"))) = {0,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,0,1,0,0,0,0,1}; static byte TIA_POLY9[ ] __attribute__((section(".dtcm"))) = {0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,0,1,0,1,0,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,1,1,1,1,0,1,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,0,1,1,1,1,0,1,0,1,1,0,1,0,1,0,0,0,0,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,1,1,0,0,1,1,0,1,1,0,0,1,1,1,1,1,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,0,0,1,1,1,1,0,0,1,0,0,0,1,1,1,0,0,1,1,0,1,0,1,1,0,1,1,0,1,0,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,0,1,0,0,0,1,0,1,0,1,1,0,0,0,0,1,0,1,1,1,1,0,1,0,0,0,1,1,0,0,0,1,1,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,1,1,0,0,1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,1,1,1,0,0,0,1,1,1,0,0,0,1,0,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,1,0,0,1,0,1,0,1,1,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,1,0,1,0,0,0,0,1,0,1,1,1,0,0,0,0,1,0,0,1,0,1,0,0,0,1,0,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,1,1,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,1,1,0,1,0,0,0,0,0,1,1,1,1,0,0,1,0,0,1,0,1,1,1,1,1,1,1,0,1,0,0,1,0,0,0,1,1,0,1,1,1,0,0,0,1,0,1,0,0,1,0,1,0,1,0,1,1,1,0,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0}; static byte TIA_DIV31[ ] __attribute__((section(".dtcm"))) = {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0}; -static byte tia_volume[2] __attribute__((section(".dtcm"))) = {0}; -static uint tia_counterMax[2] __attribute__((section(".dtcm"))) = {0}; -static uint tia_counter[2] __attribute__((section(".dtcm"))) = {0}; byte tia_audc[2] __attribute__((section(".dtcm"))) = {0}; byte tia_audf[2] __attribute__((section(".dtcm"))) = {0}; byte tia_audv[2] __attribute__((section(".dtcm"))) = {0}; @@ -153,92 +153,10 @@ void tia_Clear( ) { } } -// ---------------------------------------------------------------------------- -// SetRegister -// ---------------------------------------------------------------------------- -void tia_SetRegister(word address, byte data) -{ - byte channel=0; - byte frequency; - - switch(address) { - case AUDC0: - tia_audc[0] = data & 15; - break; - case AUDC1: - tia_audc[1] = data & 15; - channel = 1; - break; - case AUDF0: - tia_audf[0] = data & 31; - break; - case AUDF1: - tia_audf[1] = data & 31; - channel = 1; - break; - case AUDV0: - tia_audv[0] = (data & 15) << 2; - break; - case AUDV1: - tia_audv[1] = (data & 15) << 2; - channel = 1; - break; - default: - return; - } - - if(tia_audc[channel] == 0) - { - frequency = 0; - tia_volume[channel] = tia_audv[channel]; - } - else - { - frequency = tia_audf[channel] + 1; - if(tia_audc[channel] > 11) - { - frequency *= 3; - } - } - - if(frequency != tia_counterMax[channel]) - { - tia_counterMax[channel] = frequency; - if(tia_counter[channel] == 0 || frequency == 0) - { - tia_counter[channel] = frequency; - } - } -} -void tia_MemoryChannel(byte channel) -{ - byte frequency = 0; - if(tia_audc[channel] == 0) - { - tia_volume[channel] = tia_audv[channel]; - } - else - { - frequency = tia_audf[channel] + 1; - if(tia_audc[channel] > 11) - { - frequency *= 3; - } - } - - if(frequency != tia_counterMax[channel]) - { - tia_counterMax[channel] = frequency; - if(tia_counter[channel] == 0 || frequency == 0) - { - tia_counter[channel] = frequency; - } - } -} // Same as TIA_Process but designed for Pokey integration... -int TIA_Sample(void) +ITCM_CODE int TIA_Sample(void) { if(tia_counter[0] > 1) { @@ -264,7 +182,6 @@ int TIA_Sample(void) // -------------------------------------------------------------------------------------- // Process // -------------------------------------------------------------------------------------- -u8 tia_sample __attribute__((section(".dtcm"))) = 0; ITCM_CODE void tia_Process(void) { for(u8 index = 0; index < 2; index++) diff --git a/arm9/source/emu/Tia.h b/arm9/source/emu/Tia.h index 704e4e2..0348899 100644 --- a/arm9/source/emu/Tia.h +++ b/arm9/source/emu/Tia.h @@ -52,9 +52,38 @@ extern byte tia_audv[2]; extern void tia_Reset( ); extern void tia_SetRegister(word address, byte data); -extern void tia_MemoryChannel(byte channel); extern void tia_Clear( ); extern void tia_Process(void); extern byte tia_buffer[]; +extern byte tia_volume[2]; +extern uint tia_counter[2]; +extern uint tia_counterMax[2]; + + +inline void tia_MemoryChannel(byte channel) +{ + byte frequency = 0; + if(tia_audc[channel] == 0) + { + tia_volume[channel] = tia_audv[channel]; + } + else + { + frequency = tia_audf[channel] + 1; + if(tia_audc[channel] > 11) + { + frequency *= 3; + } + } + + if(frequency != tia_counterMax[channel]) + { + tia_counterMax[channel] = frequency; + if(tia_counter[channel] == 0 || frequency == 0) + { + tia_counter[channel] = frequency; + } + } +} #endif