From 76faa7c8359cc644780f932953da7a074f1ecbd4 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Tue, 30 Nov 2021 19:06:08 -0500 Subject: [PATCH] MSX: implement ascii 8kb mapper and make it the default for large games --- Assets/dll/MSXHawk.dll | Bin 247808 -> 247808 bytes Assets/gamedb/gamedb_msx_msx1_rom.txt | 30 ++--- libHawk/MSXHawk/MSXHawk/Memory.cpp | 120 ++++++++++++++++++ libHawk/MSXHawk/MSXHawk/Memory.h | 22 +++- .../Computers/MSX/MSX.cs | 13 +- 5 files changed, 166 insertions(+), 19 deletions(-) diff --git a/Assets/dll/MSXHawk.dll b/Assets/dll/MSXHawk.dll index 1cf940095b45c7239237414e5e166fabca79b674..91d89b2c5e4e46b0d003867cf508a6f3f9186a74 100644 GIT binary patch delta 75898 zcma&v4|o*i)du{X1vFrg2?PxaZ9;>E3U*Owi9$;>(L{qT3I!At6ciNNp#_B&njom5 zNpx_bD+&q$;QhJI~IZ znP+kmchT1PZEE~BL5|bxjb|UuoaA&$KKq-@Pn_R7A7qv~HzjL+lxds1+4J{JCZI%A#b#uV|=qFE|kk+Lw22 zme{|@EF~+Y)tjYdCA2AKo~#FLw3#m}qNU9OSqEBQ*~N9Cur;x(EsSIiE#J&7iyJ)l zV_3p0B|A#{dnPZhUG=+#Ivr1yeXOiE^JP0|fmtBiN?TwS$~Mqy%_3PNZIYQ=9(S~y zHd1zVT}rr&SY->-vcZ9rln+8*9F4)#E!Nwlr_+D%p%zg+Tl+2y;vDH zIGwi3EG3&tdo9y5zg_jSR`FCB$I22jUp9v3n+38_v}tCcY#42o3DD3QLIHZDCs0lU88n$-2;*oB6U1w5X#_JCNnkKFAccZ&$s^Dv>HjyP&et%)KOT z=^$;9SxUB>R&SP;ZKq8!^JJT8qs@HTT3T9$T@tp80I?#&Ed|7LnYZk~H8V1&>7+9z26eCp*6{E7v%)K;jX&Y#w;Z(qK!98%i7b1 znt8I8v@$bacI-#6lnl4J@DQ=1EevG`X*p(*Y&Y$2flk{U7&o|+w#zIf+d;#?>VSb| z6;G9|tSm9}Wm{;zSs>d$n`Rcu*3!nBMY2ZPAT#&!xTEE?{xa;Ma51sFElkVi(F)8w z*=$;KGha5H7M-fo4rCK)7+9xaU|A(nWfUtb&D<;EmPXJPnWbdIX!T}k*WG2WUZ)tT;;^#K%>7l|(y`94CbN|6C=COvBL{GRw@D9i(|? zf$RWnxLGLMN2@T4WIJiS%-kVyM_XxyGF&9#24b!)Ov@T+NAhhKWy@)M&3xHnT4)x? z=F>2+I$>a0B~s-!R_2dZY)`NDqole^w7B^T#+hvxLwWncV{Qv{YDxNCGicnc%=F1Mze6v7yfHuu6 zl8AR+_n2#Vw7YEiy~VhSBQH(z1cHDQ2Fmk~Z4RmzC4fGVG$TgxJ>>hO*wY zu4a*}8!g|=9UeE>iIy-+$?|9zScMo^d3LL-;;^#b%$FT2gau}S>=12%StvV5t2K*c zyJ?fm+!1j{+i4?Z*hS%HVwEjS%Qn#Zn0c~wv|=+~wwC6a1+o=146GsyELW!(sWP9H zZD#J(aZ3%fCbN`m1`PwN2m{M1o+=YrnPuk7#?d^pKsJgt+$@xhpjDVfvVpW-X6`j{ zN9D9a87`8rgqUj!)3V;QBW-LKWm|s;+iT{_I&ocS7Rd5w7+9S#u&ffPa+F7yYvzuO zTRKRqF-ysI)5e>nWjkp@%{RJUk1(*T;;Ax&l_h4rY&y+13uF^%)67EI7}{8~NH&Z%$jrSq?q~q5 zzYM!5tR!}~g=twSt-#Ea^`td7^JU#=QEQ!cAnQcKz$(VTvPz`Nzk<6jxo4KRo1_%EDmM}}n zj<$ngV0FR3%C%cvm3^$NH}hpXXn|QE+e%wt7RolzYRw{9BW;qIJ0|XEIc=m2yC_^n ztg?k^*j*29;UWp=5OZx| zS~i<@q?PTWYzA$wnJ=463(W%AI2s1lk1?>U5~;GaEh=-(+_7;>{kXcuEF~+UjW_#EERt2y2AR1x#vM)OWBbdni^38v>~0Iw zvYxa8Gf&oq*4)gOb)ZE#I_*G~N5jDChJj_3NR^{`sH`+|Z;D$wNLyrl47(`oNvyJkX;~Lq zA2Uz3xdW`&%$IGTxn_ZE9SsBPObo0Obc&HGhg?*)nYq7?TiQo!GE2#J&@iyh#K5wO zr^+xMdzP6m8%*=e0@*;?aI;Xhlt-;Fi)1BS*UQZPP25p$TA>UVN!XK^YYWq|9<(DZ zY!_wSXnW0kSr=Mp7RZWd7+Bpgu&ffP(t(w^X08{v)SgyjmXhVs#+#*Ot!YEeJXuRx znVBzZK}*SSs|y`sM_U-mjupUi%p%!Q+TrFpZFgea;1{%AW+~Yr8U|Jm3@od7svKZt ziJ33kNAt}B*@iZ-X=b5p3)hV`i)4*lH^|KWZQRjvT7MaKQMj1c-4>>0^JoQTo@^?g zq`8?dn@o$E>9hmcL>dOxSr}MWiBuWIqpmb_e;2njg0{#kB^ySoH%rR~)25htvX*?N z(PqA^1uZSZE(#rDUt1W;%6Y)9W|6FvmT%@xiW}@lOPHl(B{U4IpJHGo?N(Q1{;8;} zH}hrlXn|QEn?qY*7RtKtsI_L1tcW(r%$*!})QL7yhFuhPAXeGJw5&a?kC`Xy#wRW| z^JQIVu2~=}qG4dAFt8k*Vx)@0qi!>EZ;o3!b~3EVEG0Wi!@x>mU|GderSTM0W|{f2 zRW#2mkgcE%Hw$I^c+?8BNVb#K%gntc?r1BmP=<>n+(68=g=twM?MT9QQC7((-fQN| z`q4tOK-QCnfz=ZO%PNs7xACZR&D<$*OH*kzW+~YO+IX|HY!q#%nJ3%a9#&@N%hu9T zGTiFI6~vCVFqD<>fH`K7tOxDzaYygiPmLQaqU|zE$=cH}u+GN7vWlllIiG2XnJ+7$ z`DTHvCvBQpDBIZ@Hr6bXZKVw|bAKOqw1L)NhFugk61&^Nv}`%8z|6A;^PiWRoB8%w zTJ#^Cb|70p!@xQR1IsFrDie9sm1gcA;+DqH7MZ1F!)WzpY1u&96f;j&NgHkE%gSkK z8Fo=vLhNe`Ls@THSF=dgjh1ibPKz7tL`#^ZWO+0UtX>#c$8_?ZDh?~_&3xIhTv%Wh z$PUpKn1!-~v|6)BwwpG|%$**0w4F9mhFuhHCRW+Pv}^;dkC`W1M=Lh-Wov1!Ss+_M z!@%l|f%T0}F;ZndE8EQ6KgKOJ(3;FrvKcfCtlk({R`FDs$jU4;Up9ijmwRS`Y!ufG zHw$eYt->sl4W#ulbF1Ty;@|xXWw=Pf5-!ZOg=yI_{u+AZYuiQH){|g+&3xHDt_#fq zSsssvf%P*CEUQGS9OV(_nz=P`OAC2~8ncvaH`k3fOUriBhMIY@9kentUl#vHo|55K z7jEFfj_F^m3qx6JT3543=FsxZ+*xsh1NaL?!Ym~_dOR5qtP%{YBX+B+vX7PZX1;6(EiemY zTWJf-LfHmdtyv^%q)jq&Z;LxxP8%u1E((_st88IfwwTt(%#+Qd6`T38*)-QIkjayr=?`L)rBpI z9c^JKYhW`uW|3?L?eG^mZFhFu;B?w9vy^Nq4Fjt$29{MkRTgtvFER6F3u(StAd7#% zO*0E+!+6xOW|6FtHptBVQ{2%69gS16vDcNpXy;)keoi@eHlP%_G9Bt;y7Shr(?4mIK zG11o+hO*^6U{|xq4oJ&4bL-;<=g|^oDcNiqe#80&2G+mqR#zpS>g&yXSr4`pm<6(K zv;}6NY%q^nYZl2WX_L&{hPb1Cw2?CGqOd2i$`+<&U1)vGJlVQdc;aF+U$&O!ngy~( z8V1%cF|hurQ;bwO^bL->&CIY^YY9uqaH|WC5sv1w+Z z8P|<9i)4*lH^|JrJML&Xt-lPrC|peJZVS`0d9(sEPd1TH(%j6KO`t`e>$C&eI2s1l z`50JMiBuWIqpmb_GjU5JXp78JvSGA(v$Sk5ZHk#EbNEc7&3xIh99UY0T@)TA_O*qf ztegkzY8J^#Y58XE+_=Ghw1inoRzkzTx&Q;~A9ky&GKbH!-prRZ&;qkSHk-D{eIBVP(CUFFSSw7MKOHL$n2Eq3j^7)-00k zrcE+)7sefJr;U_h7loUNRkkoK+d%7M=E>I4ip_l4TAFJX$X3uWuqrXI_UjZQRpzs@ z&CI<&ZmEIRWR{Z6pkZKDVqjUtQ)MD6v&?+ifM&RBJhMPHitC1(g|ZQ}3bRNykk-r0 zeIV|rC68Aq!$lI7aAB@3Ov?@?vGB+zwu`c@Ut!%|Gheoy>q4_YmdE2^U|o!XWtB*k zqddY~Gk1|L5|2=0mXht}y76Xd*-qL}Gf%dIR%YhQ%6Yt$47a*)0~dC*g`sRMEypa9 zt)LzLn@-zZ95=X>w#zIfn@_{Qx&#BuDxNAcSXpA`%cj$Ovp_bHHq9)QjiHS-i)6!S zgUs9q8>sVQD=F8U70<%EYNLyeQ%2v^8%_7+f+9We~ zY249r+DI98QMim)Wed}?rL;a~o@_C#*vywLq`78+Y(5PG>rxD?k9CTXDsx!bX68N| zx70vuGE2#3(=f0u#lW(Pr^*agW|{f2=`_zQkWHlxHw$HxX%%LXY$C0fnfplG(F9td z3>Qf_j+ko;)3PzNBYSKYWus_&&3xGiT4)x?hS4yvF2lgGN~Fp_R_2W@%acvhGkbPgcrxWoEvtA1x)rtu8DfcC>||tT!#kERyx49p0_ec9+Es_Mq)D zOUb&?FtE}XSXS{=DPm=bnJ?=^^UVTT2ii2VP}ZI{)-00c(FU2hkHsCeruCO$7lkc} z-ECo7)`C`G=E)pdb2DFdj4yXayL8%t>?jQbYaj-eRU%amv9i+4eLQYyCvA~gO17C+ zZLXt zF|aPj!1~B;byf1XdcB!1JH{9F0<%DNfVRLalx?Tgnnkks#oI|{?((>!wOlt+hFugc zBUahMv}_)&kC`WnUu-Ql^JNpb&NT~U@yntZSXW?ReW+86R4L`^ZD#J1aZ5dDO=c-s z{Q4#a))g37R`FCh#MjnlnfbDvG|w!MZKe%33uUWl6=soa1+ABv`&8V~LRz5=7fBeu z_Lyr6)3V82cx0#TqHGjxubD3!Knu+RSqTjTYY+yORU%c2Sea|)260QRX*Fgk*-^eE zH{L8Qi(e2NYUatda$T93FI!7X$#AO+mk~SK!caDkmSYyl=Fkp*pwo6�^fT?J`Tr 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

uZ*h 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 diff --git a/Assets/gamedb/gamedb_msx_msx1_rom.txt b/Assets/gamedb/gamedb_msx_msx1_rom.txt index b15d491134..d44aae672f 100644 --- a/Assets/gamedb/gamedb_msx_msx1_rom.txt +++ b/Assets/gamedb/gamedb_msx_msx1_rom.txt @@ -840,10 +840,10 @@ ABBCFC00F71051434E0E82E29B6EA1EF Gradius 2. Nemesis 2 (1987)(Konami)(JP)[a][RC- 648E923715E4B54CBECE186F098E0956 Gradius 2. Nemesis 2 (1987)(Konami)(JP)[penguin version][RC-751] MSX mapper=2 JP EE3E6A50E3DE131D217E5DAB55519011 Gradius 2. Nemesis 2 (1987)(Konami)(JP)[RC-751] MSX mapper=2 JP C1EAEAF5F0B432D2C6A53735B6F53B6D Gradius 2. Nemesis 2 (1987)(Konami)(JP)[SCC][RC-751] MSX mapper=2 JP -797016FDBF2B23138C543FEE5C8CC34B Gradius. Nemesis (1986)(Konami)(JP)[a][RC-742] MSX JP -1D19E90B3DF492F0F1956747279FBBAC Gradius. Nemesis (1986)(Konami)(JP)[a][SCC][RC-742] MSX JP -25C0349164616A7540FAA04DCC90237A Gradius. Nemesis (1986)(Konami)(JP)[SCC][RC-742] MSX JP -CD78EBEB472FD24AC0F569D262BB2BD4 Gradius. Nemesis (1986)(Konami)(JP)[SCC+][RC-742] MSX JP +797016FDBF2B23138C543FEE5C8CC34B Gradius. Nemesis (1986)(Konami)(JP)[a][RC-742] MSX mapper=1 JP +1D19E90B3DF492F0F1956747279FBBAC Gradius. Nemesis (1986)(Konami)(JP)[a][SCC][RC-742] MSX mapper=1 JP +25C0349164616A7540FAA04DCC90237A Gradius. Nemesis (1986)(Konami)(JP)[SCC][RC-742] MSX mapper=1 JP +CD78EBEB472FD24AC0F569D262BB2BD4 Gradius. Nemesis (1986)(Konami)(JP)[SCC+][RC-742] MSX mapper=1 JP 697F6A318B187510655A28F3A0FE698D Green Beret (1986)(Konami)(JP) MSX JP F0653353E486843B0C827746E0CFA078 Green Beret (1986)(Konami)(JP)[a] MSX JP 19C599289767DB875F21B6165A1DF0CF Green Beret (1987)(Zemina)(KR) MSX KR @@ -978,13 +978,13 @@ F485D4C28102F3C5E7FB1EBA8520382C King's Valley (1985)(Konami)(JP)[RC-727] MSX 46051F8A0AAEFAA012B8783ADA3DA4FD Kinnikuman. Muscle Man (1985)(Bandai)(JP) MSX JP 1CD39F900EDF496A967E4FC8E48D1451 Kinnikuman. Muscle Man (1985)(Bandai)(JP)[a] MSX JP 489075D5E2F3B9B60C41FBF8AD27AC7E Knight Lore (1985)(Nippon Dexter)(JP) MSX JP -FE12D44A5C06199394AD022AF7BB88E8 Knightmare II - The Maze of Galious (1987)(Konami)(JP)[a][RC-749] MSX JP -0924CF4480C9A4F3FBD922449900C913 Knightmare II - The Maze of Galious (1987)(Konami)(JP)[RC-749] MSX JP -3653C9AD32CA363DBA0FA81F707EA428 Knightmare II - The Maze of Galious (1987)(Zemina)(KR)[RC-749] MSX KR -845F200E4A101ED52685CAFEA9B9ED3F Knightmare III - Shalom (1987)(Konami)(JP)[a][RC-754] MSX JP -2A2A47925227A82F3C614F85C0A21CC7 Knightmare III - Shalom (1987)(Konami)(JP)[a2][RC-754] MSX JP -9A9E8E4FC95A15AAF5E0A40C498CF0DA Knightmare III - Shalom (1987)(Konami)(JP)[a3][RC-754] MSX JP -355F48B2A181880E60314F69752F9084 Knightmare III - Shalom (1987)(Konami)(JP)[RC-754] MSX JP +FE12D44A5C06199394AD022AF7BB88E8 Knightmare II - The Maze of Galious (1987)(Konami)(JP)[a][RC-749] MSX mapper=1 JP +0924CF4480C9A4F3FBD922449900C913 Knightmare II - The Maze of Galious (1987)(Konami)(JP)[RC-749] MSX mapper=1 JP +3653C9AD32CA363DBA0FA81F707EA428 Knightmare II - The Maze of Galious (1987)(Zemina)(KR)[RC-749] MSX mapper=1 KR +845F200E4A101ED52685CAFEA9B9ED3F Knightmare III - Shalom (1987)(Konami)(JP)[a][RC-754] MSX mapper=1 JP +2A2A47925227A82F3C614F85C0A21CC7 Knightmare III - Shalom (1987)(Konami)(JP)[a2][RC-754] MSX mapper=1 JP +9A9E8E4FC95A15AAF5E0A40C498CF0DA Knightmare III - Shalom (1987)(Konami)(JP)[a3][RC-754] MSX mapper=1 JP +355F48B2A181880E60314F69752F9084 Knightmare III - Shalom (1987)(Konami)(JP)[RC-754] MSX mapper=1 JP 2F4E87CC751D116EA996AD4A2118F4AC Knightmare. Majyo Densetsu (1986)(Konami)(JP)[a][RC-739] MSX JP EBFCABA358D7CECA95C7385276321F78 Knightmare. Majyo Densetsu (1986)(Konami)(JP)[a2][RC-739] MSX JP 3B46F970FD4BD442737E41CAAB527390 Knightmare. Majyo Densetsu (1986)(Konami)(JP)[RC-739] MSX JP @@ -1464,10 +1464,10 @@ B591BB62CEC12FCC13F54885CF3C7DF6 Yie Ar Kung-Fu II - The Emperor Yie-Gah (1985) BCEC9FDAC121E3EE668946CDBEDF63CF Youkai Yashiki. Boynight. Haunted House (1986)(Casio)(JP) MSX JP F5DA7659FF2A76D94341F4BAB84BEAE3 Young Sherlock - The Legacy of Doyle (1985)(Pack In Video)(JP) MSX JP 4C0D373E999CE241B8D5F41FFE379205 Young Sherlock - The Legacy of Doyle (1985)(Pack In Video)(JP)[a] MSX JP -9C3B9492F2B565CBDDF562195F540993 Yume Tairiku Adventure. Penguin Adventure (1986)(Konami)(JP)[a][RC-743] MSX JP -B078834ABE5659A3EB32560F88B19F36 Yume Tairiku Adventure. Penguin Adventure (1986)(Konami)(JP)[a2][RC-743] MSX JP -3A705B83FF05999D924007126993A390 Yume Tairiku Adventure. Penguin Adventure (1986)(Konami)(JP)[RC-743] MSX JP -DD85486474983645D0576C76C7267415 Yume Tairiku Adventure. Penguin Adventure (1987)(Zemina)(KR)[RC-743] MSX KR +9C3B9492F2B565CBDDF562195F540993 Yume Tairiku Adventure. Penguin Adventure (1986)(Konami)(JP)[a][RC-743] MSX mapper=1 JP +B078834ABE5659A3EB32560F88B19F36 Yume Tairiku Adventure. Penguin Adventure (1986)(Konami)(JP)[a2][RC-743] MSX mapper=1 JP +3A705B83FF05999D924007126993A390 Yume Tairiku Adventure. Penguin Adventure (1986)(Konami)(JP)[RC-743] MSX mapper=1 JP +DD85486474983645D0576C76C7267415 Yume Tairiku Adventure. Penguin Adventure (1987)(Zemina)(KR)[RC-743] MSX mapper=1 KR 21E0D73E03755E0F773E6056DCCDB702 Zaider - Battle of Peguss (1986)(Cosmos Computer)(JP) MSX JP B115607552685656F43F324868D200A8 Zaider - Battle of Peguss (1986)(Cosmos Computer)(JP)[a] MSX JP 8500BD6A80B4355C11AF6084710A75C9 Zanac - 2nd Version (1987)(Pony Canyon)(JP) MSX JP diff --git a/libHawk/MSXHawk/MSXHawk/Memory.cpp b/libHawk/MSXHawk/MSXHawk/Memory.cpp index 408628342d..5ad0e59684 100644 --- a/libHawk/MSXHawk/MSXHawk/Memory.cpp +++ b/libHawk/MSXHawk/MSXHawk/Memory.cpp @@ -363,6 +363,57 @@ namespace MSXHawk } } } + else if (rom_mapper_1 == 3) // Ascii 8kb + { + if (base_addr == 0) + { + if (segment < 8) + { + return &rom_1[rom1_konami_page_2 * 0x2000 + (0x400 * segment)]; + } + else + { + segment -= 8; + return &rom_1[rom1_konami_page_3 * 0x2000 + (0x400 * segment)]; + } + } + else if (base_addr == 0x4000) + { + if (segment < 8) + { + return &rom_1[rom1_konami_page_0 * 0x2000 + (0x400 * segment)]; + } + else + { + segment -= 8; + return &rom_1[rom1_konami_page_1 * 0x2000 + (0x400 * segment)]; + } + } + else if (base_addr == 0x8000) + { + if (segment < 8) + { + return &rom_1[rom1_konami_page_2 * 0x2000 + (0x400 * segment)]; + } + else + { + segment -= 8; + return &rom_1[rom1_konami_page_3 * 0x2000 + (0x400 * segment)]; + } + } + else + { + if (segment < 8) + { + return &rom_1[rom1_konami_page_0 * 0x2000 + (0x400 * segment)]; + } + else + { + segment -= 8; + return &rom_1[rom1_konami_page_1 * 0x2000 + (0x400 * segment)]; + } + } + } else { return &unmapped[0]; @@ -488,6 +539,57 @@ namespace MSXHawk } } } + else if (rom_mapper_2 == 3) // Ascii 8kb + { + if (base_addr == 0) + { + if (segment < 8) + { + return &rom_2[rom2_konami_page_2 * 0x2000 + (0x400 * segment)]; + } + else + { + segment -= 8; + return &rom_2[rom2_konami_page_3 * 0x2000 + (0x400 * segment)]; + } + } + else if (base_addr == 0x4000) + { + if (segment < 8) + { + return &rom_2[rom2_konami_page_0 * 0x2000 + (0x400 * segment)]; + } + else + { + segment -= 8; + return &rom_2[rom2_konami_page_1 * 0x2000 + (0x400 * segment)]; + } + } + else if (base_addr == 0x8000) + { + if (segment < 8) + { + return &rom_2[rom2_konami_page_2 * 0x2000 + (0x400 * segment)]; + } + else + { + segment -= 8; + return &rom_2[rom2_konami_page_3 * 0x2000 + (0x400 * segment)]; + } + } + else + { + if (segment < 8) + { + return &rom_2[rom2_konami_page_0 * 0x2000 + (0x400 * segment)]; + } + else + { + segment -= 8; + return &rom_2[rom2_konami_page_1 * 0x2000 + (0x400 * segment)]; + } + } + } else { return &unmapped[0]; @@ -547,5 +649,23 @@ namespace MSXHawk if (addr >= 0xB000 && addr < 0xB800 && slot_2_has_rom == 2) { rom2_konami_page_3 = (uint8_t)(value & rom_size_2); remap(); } } */ + + // Ascii 8kb + if (rom_mapper_1 == 3) + { + if (addr >= 0x6000 && addr < 0x6800 && slot_1_has_rom == 1) { rom1_konami_page_0 = (uint8_t)(value & rom_size_1); remap(); } + if (addr >= 0x6800 && addr < 0x7000 && slot_1_has_rom == 1) { rom1_konami_page_1 = (uint8_t)(value & rom_size_1); remap(); } + if (addr >= 0x7000 && addr < 0x7800 && slot_1_has_rom == 1) { rom1_konami_page_2 = (uint8_t)(value & rom_size_1); remap(); } + if (addr >= 0x7800 && addr < 0x8000 && slot_1_has_rom == 1) { rom1_konami_page_3 = (uint8_t)(value & rom_size_1); remap(); } + } + /* + if (rom_mapper_2 == 3) + { + if (addr >= 0x6000 && addr < 0x6800 && slot_1_has_rom == 2) { rom2_konami_page_0 = (uint8_t)(value & rom_size_2); remap(); } + if (addr >= 0x6800 && addr < 0x7000 && slot_1_has_rom == 2) { rom2_konami_page_1 = (uint8_t)(value & rom_size_2); remap(); } + if (addr >= 0x7000 && addr < 0x7800 && slot_1_has_rom == 2) { rom2_konami_page_2 = (uint8_t)(value & rom_size_2); remap(); } + if (addr >= 0x7800 && addr < 0x8000 && slot_1_has_rom == 2) { rom2_konami_page_3 = (uint8_t)(value & rom_size_2); remap(); } + } + */ } } \ No newline at end of file diff --git a/libHawk/MSXHawk/MSXHawk/Memory.h b/libHawk/MSXHawk/MSXHawk/Memory.h index 88aa90e3c0..bcd18ef9c7 100644 --- a/libHawk/MSXHawk/MSXHawk/Memory.h +++ b/libHawk/MSXHawk/MSXHawk/Memory.h @@ -103,8 +103,8 @@ namespace MSXHawk // page size 0x2000 for konami games if (rom_mapper_1 == 1 || rom_mapper_1 == 2) { rom_size_1 = ext_rom_size_1 / 0x2000 - 1; } if (rom_mapper_2 == 1 || rom_mapper_2 == 2) { rom_size_2 = ext_rom_size_2 / 0x2000 - 1; } - + // initial state if (rom_mapper_1 == 1 || rom_mapper_1 == 2) { rom1_konami_page_0 = 0; @@ -120,6 +120,26 @@ namespace MSXHawk rom2_konami_page_3 = 3; } + // page size 0x2000 for generic ascii 8kb mapper + if (rom_mapper_1 == 3) { rom_size_1 = ext_rom_size_1 / 0x2000 - 1; } + if (rom_mapper_2 == 3) { rom_size_2 = ext_rom_size_2 / 0x2000 - 1; } + + // reuse konami page names (same size) however different initial state + if (rom_mapper_1 == 3) + { + rom1_konami_page_0 = 0; + rom1_konami_page_1 = 0; + rom1_konami_page_2 = 0; + rom1_konami_page_3 = 0; + } + if (rom_mapper_2 == 3) + { + rom2_konami_page_0 = 0; + rom2_konami_page_1 = 0; + rom2_konami_page_2 = 0; + rom2_konami_page_3 = 0; + } + // default memory map setup PortA8 = 0; diff --git a/src/BizHawk.Emulation.Cores/Computers/MSX/MSX.cs b/src/BizHawk.Emulation.Cores/Computers/MSX/MSX.cs index 9897071a38..38c359f53e 100644 --- a/src/BizHawk.Emulation.Cores/Computers/MSX/MSX.cs +++ b/src/BizHawk.Emulation.Cores/Computers/MSX/MSX.cs @@ -48,15 +48,22 @@ namespace BizHawk.Emulation.Cores.Computers.MSX // Assume default konami style mapper if (gi == null) { - + mapper_1 = 3; + Console.WriteLine("Using Ascii 8 KB Mapper"); } else if (!dict.TryGetValue("mapper", out s_mapper)) { - mapper_1 = 1; - Console.WriteLine("Using Konami Mapper"); + mapper_1 = 3; + Console.WriteLine("Using Ascii 8 KB Mapper"); } else { + if (s_mapper == "1") + { + mapper_1 = 1; + Console.WriteLine("Using Konami Mapper"); + } + if (s_mapper == "2") { mapper_1 = 2;