HACHIBITTO - An MSX2 Fantasy Console

  • Thread starter Thread starter wavemotion
  • Start date Start date
  • Views Views 3,839
  • Replies Replies 62
  • Likes Likes 17
I didn't even know that was possible! I'll add it to the list of stuff I probably should have known 6 years ago :)
Well official version by mtheall that support DSi wi-fi connection is only 2 years old, previously there was some forks but I didn't use it too or couldn't make it work. ftdp v3.2.1 works like charm with any ftp client like TC, transfering data never breaks on my side, very comfy and safe i guess. : )
 
  • Like
Reactions: wavemotion
I finally got the standard Japanese Disk controller working. This means no more CDX-2 'Brazillian' driver (which honestly served me well but was not fully compatible with some late-era games). This should get all the later big RPGs like XAK II, Fray and more running! Those late-era games often bypassed the standard BIOS and called directly into the disk controller to speed up handling and the CDX-2 controller has a different interace. Technically games on the MSX should NOT bypass the standard BIOS interface for just these kinds of compatibility issues... but reality is that 99% of the Japan game-makers market was not Brazil.

That's huge... though it once again came at a huge cost of debug effort and sanity lost.

I haven't seen any regressions on disk games with the new driver so hopefully we're good here.

Version 0.9c has been checked into my github site.

I can't figure out Lubek and MSX-MUSIC. But at least that plays with the standard PSG music.
 
I finally got the standard Japanese Disk controller working. This means no more CDX-2 'Brazillian' driver (which honestly served me well but was not fully compatible with some late-era games). This should get all the later big RPGs like XAK II, Fray and more running! Those late-era games often bypassed the standard BIOS and called directly into the disk controller to speed up handling and the CDX-2 controller has a different interace. Technically games on the MSX should NOT bypass the standard BIOS interface for just these kinds of compatibility issues... but reality is that 99% of the Japan game-makers market was not Brazil.

That's huge... though it once again came at a huge cost of debug effort and sanity lost.

I haven't seen any regressions on disk games with the new driver so hopefully we're good here.

Version 0.9c has been checked into my github site.

I can't figure out Lubek and MSX-MUSIC. But at least that plays with the standard PSG music.
Can you add support for 2xPSG? There's hacks for a bunch of games that make them sound much better, they'd benefit from the DS' stereo sound too
 
1790435111723.png
 
I just uploaded version 0.9e with two changes.

2xPSG is supported - though it's not as great as I hoped. Most of the games that take advantage of it are classic games with a bit extra sound effects but it comes at a cost since the original games were already taxing the system so the hacks tend to run at lower framerate and cause some graphical jitter. But it was easy to add... and some games really do sound a lot better. Turn it on in Options.

But the much bigger change is the Screen 7 Alpha blending. Screen 7 is a bitch on a stick - it's a full 512 pixels across and the poor DS only has 256. So there has to be loss... in previous Hachibitto versions, what I did was simply drop every other pixel. This causes artifacts especially with text rendering where the dropped pixels can really hurt the visual look of thin vertical lines. It also means that cool color techniques (such as used in Xak) don't render properly (shadows on buildings and dithered blue backgrounds). So my new scheme uses the DS hardware to alpha-blend two frames together - one of the frames renders the even pixels and the other the odd pixels. This isn't a miracle - it means some text will blur a bit but the results seem to be a huge improvement. Original rendering on the left and the new alpha-blending on the right. The best part is the alpha blending comes at almost no CPU cost since the DS can do this natively with a HW Alpha Blend of two buffers. I'm not convinced it looks better on ALL Screen 7 games (Snatcher seems to be better for pictures and a little less better for text) so it's optional ... but the default is to blend.
1790507416384.png


@Cris1997XX - I just updated to 0.9f with fixes for Vertical Scrolling in Screen 2 legacy modes. I didn't even know that was a thing... but apparently it's what the Smooth scroll hacks of Star Force and Star Soldier are doing. This should fix both (though there is a single pixel line of graphical artifacts under the Star Force score... I'll try to fix soon... or someday).
 
Last edited by wavemotion,
Version 0.9h uploaded to github. This is very close to a 1.0 release.

SCC fixed (noise was present on some games).
Disk Write fixed (games like Randar would not load previously).
Tons of smaller fixes, accuracy improvements and cleanup.

We finally got to a point where it's highly unusual for a game not to load and run on Hachibitto. Honestly, wasn't sure we would get here :)
 
Version 1.0 is released!

1790698306456.png


https://github.com/wavemotion-dave/Hachibitto

  • I added Arkanoid paddle controls for the two games that use it (Arkanoid I and Arkanoid II).
  • Faster game loading - I was computing the SHA1 twice and on big games that was taking extra seconds.
  • More clenup and optmization - especially targeted at improving the DS-Lite/Phat experience (reduced more jittery screens in Screen Modes 6/7 and MSX MUSIC is now available for DS-Lite though it comes at a pretty high cost of CPU power).
  • I put together a minimal readme.md file on the github page
 
The 3DS has a lower screen resolution of 320 x 240 pixels... and all I have is 256x192. And they appear to be using every pixel :)
And what if the keyboard were split, adding the option to access the other keys—like in SugarDS, where you can access the remaining keys on a different screen?
 
  • Like
Reactions: wavemotion
And what if the keyboard were split, adding the option to access the other keys—like in SugarDS, where you can access the remaining keys on a different screen?

Using one of my other emulators a a logical argument for changes to this one... Adaptation, Improvisation... good.

1790723047667.png




Actung!! I had to put out a hotfix and the new release is 1.0a. This hotfix patches a Config Save issue that was largely affecting the DS-Lite/Phat but I'd appreciate anyone running the 1.0 to update to the 1.0a to avoid any problems.
 
Last edited by wavemotion,
Version 1.0c is uploaded to github with a big optmization to the Z80 core that bought me 5% CPU processing improvement. This helps render many more games playable on DS-Lite. For many of the MSX1 games, I've turned off Frame Skip on the DS-Lite completley as we can now render those games rock-solid 60Hz. For the DSi/XL/LL with 2X the CPU power, I've used that gain to improve MSX-MUSIC. It's still not great but starting to get closer!

Some other smaller bug fixes and accuracy improvements as well...
 
Last edited by wavemotion,
I added Arkanoid paddle controls for the two games that use it (Arkanoid I and Arkanoid II).
:lol: For a moment, i believed that was about the taito ds spinner controller, btw it's a shame it received so little distribution and support.

Otherwise, i'm following the development with great interest and admiration, keep up the good work there.
 
  • Like
Reactions: wavemotion
Version 1.0d is available and adds a new Zoom icon for Screen 7 games.

Many of the big sprawling RPGs are rendered in Screen 7 which is 512 pixels wide and has to be reduced to 256 pixels for the DS/DSi. While this looks fine for main gameplay elements, sometimes the text / status areas can be a little hard to read. To that end, when Screen 7 is active, the Graph (GR) button turns into a Magifying glass. Tap that to zoom in 1:1 and use the Left/Right shoulder buttons to pan back and forth. You really can't play the game in this state (well, you can try!) but it's more a temporary way to zoom in to make sure you're reading the text/status correctly.
 
I've found 1.0e on github, but the website throws an "error loading page"

Nevermind, I was able to download it. I didn't see any improvement with MSX-AUDIO, but thanks to the "boosted 20%" I can finally play Rastan Saga without slowdown lol
 
Last edited by Cris1997XX,
  • Like
Reactions: wavemotion
Version 1.1 is available: https://github.com/wavemotion-dave/Hachibitto

Version 1.1 - 03-Oct-2026 by wavemotion-dave
  • Improved speed across the board.
  • Fixed screen 8 sprite colors.
  • Improved MSX-MUSIC on DSi ... still far from perfect.
  • Screen 7 Zoom-and-Pan mode added (magnifying glass).
  • Other cleanups and improvements as time permitted.
Turns out there was a bug in Screen 8 rendering that put out all sprites in the wrong colors. Not a ton of games use Screen 8 (Ikari, Rick & Mick's Big Adventure and some others) but when they had sprites, the colors were incorrect. This should be fixed.

I'd love for someone with better skill in audio handling to take over the MSX-MUSIC driver and really shine it up... but the chances of such a person walking through that door is slim to none :)
 
  • Like
Reactions: ber71
Version 1.1 is available: https://github.com/wavemotion-dave/Hachibitto

Version 1.1 - 03-Oct-2026 by wavemotion-dave
  • Improved speed across the board.
  • Fixed screen 8 sprite colors.
  • Improved MSX-MUSIC on DSi ... still far from perfect.
  • Screen 7 Zoom-and-Pan mode added (magnifying glass).
  • Other cleanups and improvements as time permitted.
Turns out there was a bug in Screen 8 rendering that put out all sprites in the wrong colors. Not a ton of games use Screen 8 (Ikari, Rick & Mick's Big Adventure and some others) but when they had sprites, the colors were incorrect. This should be fixed.

I'd love for someone with better skill in audio handling to take over the MSX-MUSIC driver and really shine it up... but the chances of such a person walking through that door is slim to none :)
I know there's very little documentation for it, and almost no compilers that support it, but do you think the DSi's DSP could be used to improve audio emulation significantly?
 
  • Like
Reactions: wavemotion
I know there's very little documentation for it, and almost no compilers that support it, but do you think the DSi's DSP could be used to improve audio emulation significantly?
Honestly no idea. Me and sound drivers aren't exactly on speaking terms. I generally do all coding myself (so I'm the one to blame for any shortcomings!) but I had to resort to Claude.AI and ChatGPT to get a semi-functional MSX-MUSIC driver. All I can really do with it is say "no, that sounds like two cavemen banging rocks together" and then it takes another guess. Honestly surprised it got as far as it did... amazing games like Lilly's Saga and Famical Parodic 2 don't really have any music without MSX-MUSIC so I'm happy we have something.

Just checked in 1.1a with handling for Screen 0 - 80 Column mode. It's not really readable on the DS/DSi but at least games like Bomberman 2 will now load and run (and the main gameplay doesn't use 80 column mode - only the startup screen did).
 
Honestly no idea. Me and sound drivers aren't exactly on speaking terms. I generally do all coding myself (so I'm the one to blame for any shortcomings!) but I had to resort to Claude.AI and ChatGPT to get a semi-functional MSX-MUSIC driver. All I can really do with it is say "no, that sounds like two cavemen banging rocks together" and then it takes another guess. Honestly surprised it got as far as it did... amazing games like Lilly's Saga and Famical Parodic 2 don't really have any music without MSX-MUSIC so I'm happy we have something.
That's fine, I appreciate the fact that you tried adding MSX-MUSIC regardless. Rastan Saga with the fan-made patch sounds like multiple PSG chips, especially when played with headphones, but that's cool in its own way :rofl2:
 
  • Like
Reactions: wavemotion

Site & Scene News

New Hot Discussed User Submitted