Jump to content
IGNORED

DS99/4a - An Emulator for the DS/DSi/XL/LL


wavemotion

Recommended Posts

Okay... was up at 5AM rearing to go as usual on this stuff... three cups of coffee later and overdumps are working and the code is just about cleaned up. We got through the initial 100 RPK set I put together as a test suite - covering all PCB types and from various manufacturers to try and sus out any problems. All 100 RPKs report working cleanly at this time - woot!  I'll expand the test suite as I want to make sure this all works as close to perfect as possible. I may expand to also support MAME .zip files which will require a little more McGuyvering to place the ROMs into memory (as GROMs are split up into 6K individual ROMs and cart ROMs more closely mirror what would be dumped from individual ROM chips on the board) - though it would require that the user supply the TI Carts XML file from MAME. Maybe that's not worth it... 

 

@Tursi - I know you've got 1001 projects cooking but if you do get to RPK support, you're free to use any part of my codebase. 

 

https://github.com/wavemotion-dave/DS994a/tree/main/arm9/source/rpk 

 

The two libraries I use are lowzip (for depacking) and yxml  (for XML parsing) - both are really simple and designed to work on virtually any architecture (you provide the file read callback). Both are released under the permissive MIT license for any use imaginable.  My code is, of course, equally free to borrow in part or whole.

 

 

  • Like 5
Link to comment
Share on other sites

Thanks, as usual, guys!

 

Another day, another question!

 

I was comparing the BIOS files from MAME to Classic99 and noticed that the TI Disk Controller ROM was different in the last 16 bytes which confused me briefly until I remembered that the last 16 bytes of the memory map are the registers for the TI Disk Controller. Which means that these two dumps were simply taken from two different machines at different times, I supposed.

 

My emulator will search for BIOS by name and also CRC - but as it's not reliable to know the CRC of the Disk Controller ROM... maybe that's not practical?  Is there a definitive dump of what a real TI Disk Controller ROM looks like in the last 16 bytes (I assume 0xFFFF)?

 

image.thumb.png.ff417c17ad35f0d2027e0298c95f66c1.png

Link to comment
Share on other sites

17 hours ago, wavemotion said:

I was comparing the BIOS files from MAME to Classic99 and noticed that the TI Disk Controller ROM was different in the last 16 bytes which confused me briefly until I remembered that the last 16 bytes of the memory map are the registers for the TI Disk Controller. Which means that these two dumps were simply taken from two different machines at different times, I supposed.

 

My emulator will search for BIOS by name and also CRC - but as it's not reliable to know the CRC of the Disk Controller ROM... maybe that's not practical?  Is there a definitive dump of what a real TI Disk Controller ROM looks like in the last 16 bytes (I assume 0xFFFF)?

 

This is what Thierry Nouspikel says:

 

The controller card comprises a 8192 bytes (>2000) ROM that contains a power-up subroutine, four DSR for high-level file access and many subprograms for low- or mid- or high-level disk access. As usual with peripheral cards, that ROM appears at >4000-5FFF when CRU bit 0 is set to one for that card. Note that the controller's register map at >5FF0-5FFF, thus the last 16 bytes of the ROM cannot be accessed. You'll find a commented disassembly listing of the whole ROM on my download page (warning: it's written in an ugly programming style).

 

...lee

  • Like 4
Link to comment
Share on other sites

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

 

V2.0: 01-Mar-2024 by wavemotion-dave  (Jadzia Edition)

  • Support for .rpk (Rom PacKs - same as used by MAME/MESS).
  • Fix for save/load state of games that use RAM (MBX carts, MiniMem, etc)
  • Improved SAMS handling so that the proper amount of RAM is detected
  • On DSi and above, DSK3 is now fully buffered and writable.
  • Lots of small tweaks and cleanups across the board as time permitted.
  • Refactored and reduced resources so we free up an additional 256K of valuable memory for the future!

A whirlwind of activity this past week - we finished up the beta last night and it's now ready for release.

 

Thanks to all the kind folks here to provided suggestions, some testing and most of all, guidance.

 

If you are using my emulator, don't be shy about telling me. Knowing that our work is being used is often the only form of compensation some developers get!

  • Like 9
Link to comment
Share on other sites

it is a cool update!

if someone interested maybe could be useful this ZIP collection of stuff ready to use for Mame (with .rpk files too), disks and cartridges images.
it has been done by @tmop69 some years ago.

https://www.ti99iuc.it/web/_upload/image/MessMameTutorial/Files/TI99_MAME_MESS_Software_Pack_V3.1_by_TMOP.zip

Edited by ti99iuc
  • Like 3
Link to comment
Share on other sites

@wavemotion love the work you done. I always wanted a nice portable at TI99 and last one in portable format I tried was on the PSP and it was a pain to get the infrared keyboard working and wasn't as full featured as this one.

 

Sadly for legal reasons I can only admire your work as I can't own or use anything that has ability to run Nintendo games or needs to be hacked to run homebrew. Oh'well this nice to see it happening including you supporting the ability to load up my SOB console from update.

 

Thinking of portable TI99 emulators is there one available for those mini Pandora type systems which have a real keyboard and foldable screen, that would be cool. Maybe a mini-pc then. hmm have to do some research.

  • Like 3
Link to comment
Share on other sites

Not ready for a new release, but did check in some minor improvements this weekend. Version 2.0c is my daily build and contains improved handling for CAPS LOCK/ALPHALOCK so that it shows a small virtual LED on the actual key when the lock is engaged. I've also added speech samples to Milton Bradley's Superfly.  You might say "Oh no!" but I say "OHHHHH YEEEEESSSS!"

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

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

V2.1: 09-Mar-2024 by wavemotion-dave

  • Now using a small light on the CAPS/ALPHALOCK key to indicate if CAPS LOCK is on (cleaner look).
  • GROM auto-increment of address will properly preserve the upper bits so we don't inadvertently select the next GROM in our system (accuracy improvement).
  • Added partial speech samples for MB Superfly.
  • Minor cleanups of SAMS handling and improved commenting in that driver now that I understand the hardware better.
  • Improved TMS9900 debugger for development use.

 

Nothing earth-shattering here - just a bit of spit and polish.

  • Like 7
  • 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...