Jump to content
IGNORED

DS99/4a - Emulator for the DS/DSi


wavemotion

Recommended Posts

1 minute ago, Ksarul said:

The original files from TI hang if they don't detect a speech synthesizer on startup. . .you don't necessarily need to add the speech samples for it, but you definitely have to trick it into believing that a speech synthesizer is present.

Yeah, DS994a runs Lasso fine. Early on, I added just enough support to report an “idle” speech status that Lasso and one other game I can’t remember will play fine (just no actual speech yet). 
 

The more recent emulation now responds to basic read commands - at least enough to make some MBX games think a TI speech module is present (I suppose, as opposed to, an MBX). 

  • Like 4
Link to comment
Share on other sites

With coffee this morning, I spent some time cleaning up the User Interface. Gone are the black letters on light grey background which was a holdover from the ColecoDS emulator work.

 

Everything is now a nice silver/white on black to match the styling of a (non-beige) TI99 console. Menus are now white/silver and the old grey-grid keyboard layout is gone. In its place, there is a new TI99 style keyboard which has a more 3D 'raised-keys' look. Or you can stick with the original TI99 keyboard 'flat' look.

 

Here is the new 3D 'raised key' keyboard courtesy of @dphirschler

 

image.png.52dccad89a6501dde6f9620d0ae689b1.png

  • Like 9
Link to comment
Share on other sites

33 minutes ago, Retrospect said:

That's pretty nice.  A nice feature I suppose could be a wav that plays when you hit a key, that sounds like the "clicky-clack" of the original keyboard ... asides from being fancy it would be functional as then people would know that the key has been pressed properly if they hear it.  ;) 

A mechanical key click is included with the last few builds. Though I may find something a bit more TI-like even if I have to record it myself. 

  • Like 6
Link to comment
Share on other sites

Ok hive-mind question. We've come across another game that won't run properly under DS99/4a.

 

This time it's Funware's Ambulance.

 

Things look fine when it starts... ambulance moves around fine with Joystick control and sounds seem okay...

image.png.d34462dc1ca2250f894f9c582b0481ce.png

 

But as soon as we press a button (either keyboard or the joystick button... or if we just spend enough time driving around), things go whack-a-doodle:

 

image.png.b9e57f5c9b3fb7202038b023dd352a51.png

 

I can still drive around in this graphically bizarro world and there seems to be the same city-block imposed restrictions on movement despite the crap output.

 

This game worked with beta 0.5 and failed on beta 0.6. The main difference between those versions?  Oh... just a complete overhaul of the CPU core 😕

 

So it's something to do with the TMS9900 or the TMS9901 (and not the VDP ... at least not directly).

 

No other Funware game seems to be affected (e.g. Lobster Bay and Henhouse, etc. look and play fine).  Perhaps this game uses some seldom employed instruction or some other unusual way of doing something that works on real iron (and more accurate emulators).

 

Thoughts of any kind?  Some kind folks on the TI99 Pandemic Zoom Call yesterday had some theories but nothing that has panned out so far.  Even a small clue can go a long way when looking for the proverbial needle in the haystack.

 

 

 

Link to comment
Share on other sites

18 minutes ago, llabnip said:

Ok hive-mind question. We've come across another game that won't run properly under DS99/4a.

 

This time it's Funware's Ambulance.

 

Things look fine when it starts... ambulance moves around fine with Joystick control and sounds seem okay...

image.png.d34462dc1ca2250f894f9c582b0481ce.png

 

But as soon as we press a button (either keyboard or the joystick button... or if we just spend enough time driving around), things go whack-a-doodle:

 

image.png.b9e57f5c9b3fb7202038b023dd352a51.png

 

I can still drive around in this graphically bizarro world and there seems to be the same city-block imposed restrictions on movement despite the crap output.

 

This game worked with beta 0.5 and failed on beta 0.6. The main difference between those versions?  Oh... just a complete overhaul of the CPU core 😕

 

So it's something to do with the TMS9900 or the TMS9901 (and not the VDP ... at least not directly).

 

No other Funware game seems to be affected (e.g. Lobster Bay and Henhouse, etc. look and play fine).  Perhaps this game uses some seldom employed instruction or some other unusual way of doing something that works on real iron (and more accurate emulators).

 

Thoughts of any kind?  Some kind folks on the TI99 Pandemic Zoom Call yesterday had some theories but nothing that has panned out so far.  Even a small clue can go a long way when looking for the proverbial needle in the haystack.

 

 

 

The issue with Ambulance was also present in MAME (after version 0.161, then fixed from 0.219+), so @mizapf should help surely here to find the root cause.

Edited by tmop69
  • Like 1
Link to comment
Share on other sites

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

V1.4: 01-Mar-2023 by wavemotion-dave

  • Added new 3D TI virtual keyboard. Removed old grey grid-style keyboard.
  • New dark menu theme throughout to more closely mimic the black/silver stylings of an old-school TI99/4a.
  • Improved memory usage and refactored code to allow for better future expansion.
  • Fixed VDP writes so Funware's Ambulance now plays correctly.
  • Adding missing XOP cpu instruction - it now passes mbtest.bin but not sure if anything really uses it.

 

Finally a spit-and-polish release! Mostly UI improvements and a bit more consistency in menu handling. A few bugs squished. This is much closer to what I wanted the 1.0 release to be... but hobby development doesn't follow a strict schedule.

  • Like 11
Link to comment
Share on other sites

  • 3 weeks later...

And mainly for posterity, I've put up a 1.4a nightly build at https://github.com/wavemotion-dave/DS994a

 

This corrects two small problems reported from the field.

  • Long filenames were not scrolling in the correct position on screen - fixed.
  • A typo in the code for 1K (I had typed 1014 instead of 1024) caused the emulator to come up just short of the promised 512K max ROM support. This would only affect a few very large games - fixed.

 

  • Like 7
  • Haha 1
Link to comment
Share on other sites

  • 2 weeks later...

Version 1.5 has been release at  https://github.com/wavemotion-dave/DS994a

V1.5: 29-Mar-2023 by wavemotion-dave
* Fixed minor cosmetic glitches with menu handling and ROM file selection.
* DSi now supports up to 2048K (2MB) banked ROMs (the older DS still supports 512K).
* Other minor cleanups as time permitted.

 

This is asymptotically approaching "done". A few bugs fixed. A few cleanups. The big change is that the DSi now can support banked ROMs up to 2048K (2MB) in size... plus the previously supported 1MB of SAMS memory and 64K of GROM - this should future-proof the emulator for a good long while.

  • Like 7
Link to comment
Share on other sites

44 minutes ago, Vorticon said:

I'd love to try this but I don't have a DSi. There are lots of Japanese versions out there with Japanese text, but I assume that should not be an issue with the emulator, correct?

Also what is a reasonable price for one? It's all over the place...

Correct - once you install Twilight Menu or other firmware on the SD card, pretty much everything will be in English. My two primary DSi XL units are actually Japanese LL units (the LL is the same as the XL in the United States).

 

I strongly recommend a DSi XL/LL unit. The screen has a slightly slower refresh rate and it holds onto the pixels a bit longer almost replicating the old TV phosphor effect. Plus the slightly larger units are just really nice.

 

You can try to look for one that has a broken Cart (game) slot since you'll really only want to use it for Homebrew software using the SD card slot on the side (which saw almost no use official use by Nintendo but is the gateway to unlocking homebrew support).  With a broken cart (game) slot you might be able to score a Japanese model for US$50 or so... otherwise expect to pay US$80-ish... 

  • Like 1
  • Thanks 2
Link to comment
Share on other sites

10 minutes ago, Vorticon said:

Is the stylus needed? Many units don't come with one.

Not needed at all. I did my best to make the virtual keyboard keys large enough that you can press them with your fingers which is how 90% of people (including myself) use it.  And it's just a chunk of plastic - you could use almost anything with a semi-blunt end as a stylus if you really planned on playing a ton of Scott Adam's Adventure Games and wanted the precision afforded by a stylus :)

  • Like 2
  • Haha 1
Link to comment
Share on other sites

  • 4 months later...
On 3/29/2023 at 10:01 AM, llabnip said:

Correct - once you install Twilight Menu or other firmware on the SD card, pretty much everything will be in English. My two primary DSi XL units are actually Japanese LL units (the LL is the same as the XL in the United States).

 

I strongly recommend a DSi XL/LL unit. The screen has a slightly slower refresh rate and it holds onto the pixels a bit longer almost replicating the old TV phosphor effect. Plus the slightly larger units are just really nice.

 

You can try to look for one that has a broken Cart (game) slot since you'll really only want to use it for Homebrew software using the SD card slot on the side (which saw almost no use official use by Nintendo but is the gateway to unlocking homebrew support).  With a broken cart (game) slot you might be able to score a Japanese model for US$50 or so... otherwise expect to pay US$80-ish... 

I'd like to say "thanks" for your amazing work on this emulator and also for your sage advice on which DS model to use/purchase.  I just picked up an nice Japanese DSi LL and installed Twilight Menu, etc. on it.  Got it all working and I really do like the top screen, kind of feels semi-analog somehow (yes, I'm a CRT snob). :)  

 

It's amazing to see my project game running so well on the portable unit also.

 

Also you've mentioned that with the DSi models, you can tap into faster process speeds (133 MHz?).  Is this something that I can control as an end-user somewhere, or does it have to done by the emulator code itself?

 

Finally, I was wondering if you thought there was much hope for a better running SNES emulator on the DSi platform? The current one has some significant issues. I've resorted to playing the GBA alternatives where available, which run really well.

 

  • Like 3
Link to comment
Share on other sites

You're quite welcome @retrodroid - you got yourself a nice handheld there!

 

The DSi runs in both compatibility mode (67MHz and 4MB of RAM) or DSi enhanced mode (134MHz and 16MB of RAM). Very few commercial games took advantage of it... but homebrews love the extra speed. To be honest, the extra memory is nice but not really needed - the emulators are almost always gated by speed of the CPU.

 

Anyway, you do have some control with TWL++ by pressing Y (??) when you are on the emulator in the main Twilight Menu display and you can force it to run in one mode or the other. But TWL++ generally auto-detects you're running on the DSi and will launch the emulator in the DSi enhanced mode (all my emulators will be auto-launched with the extra speed / memory). I do try to make my emulators work even with the oldest DS hardware... so sometimes I have to cut down on sound quality or other minor things... but you can trust that you're getting the best experience.

 

There are some older emulators that don't play nice with the DSi enhanced mode... TWL++ will generally figure this out for you and launch them in compatibility mode.  Again, you can override this on a per-program basis from within the TWL++ lanuncher.

 

And for sure I feel your pain on the 16-bit emulation scene on the DS/DSi. SNES and Genesis are both not well represented - far too many glitches and other problems. GBA games are playable with the built-in GBARUNNER2 but even there it's not perfect and I do exactly as you do - stick to GBA where I can (or native DS or DSi-Ware games which mostly play great).  Several (good) developers have tried their hand at getting the SNES stuff worked out so it's better - but none have managed it. I've been asked but I'm already the caretaker for 7 emulators that take up far too much of my hobby-time :)

  • Like 5
  • Thanks 1
Link to comment
Share on other sites

Version 1.6 is released:  https://github.com/wavemotion-dave/DS994a 

 

V1.6: 17-Aug-2023 by wavemotion-dave

  • New icon for Twilight Menu - woot!
  • Fixed missing arrows on TI-99 Classic Keyboard graphic.
  • Other minor cleanups and tweaks at time permitted.


I finally got around to putting in a nice icon for the launcher... gone is the captain craptastic 99 red (balloons) and in is a nice greyscale TI logo.
image.png.028d9b58e26db8fe783b8130f3fc6874.png

 

 

Also forgot to add the arrows to the classic TI-99/4a keyboard graphic. Derp.  That's fixed.

 

TI99 Virtual Keyboard

 

A few other minor tweaks under the hood - nothing you would notice. 

  • Like 11
  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...