[DS Scene] DS99/4a v1.2 released

Published a new update for DS99/4a , the TI99/4a home computer emulator developed by the developer wavemotion-dave for DS and DSi portable consoles.

In order to run the emulator it needs a DS with R4 flashcard or (highly recommended) a DSi or (even more highly recommended) DSi XL/LL with something like Twilight Menu or Unlaunch.

Two updates have been released quickly since the release of stable version 1.0 and that has seen the first support for the voice module, one of the fundamental components in the add-on equipment for the TI99/4a.

Currently voice support is present within 3 games using WAV sample playback so they work well and smoothly even on older DS hardware.

 

Note: The emulator requires TI BIOS ROMs in the directory to work /roms/bios.

 

Characteristics

  • Cart loads up to 512K Banked (+40K unbanked GROM).
  • 32K RAM expansion.
  • Memory expansion SAMS 512K for DS and 1 MB for DSi (and higher).
  • Save and load state saves.
  • High score saving up to 10 scores per game.
  • Full mapping of any of the 12 DS keys to any TI joystick/keyboard combination.
  • Disk support for DSK1 and DSK2 up to 360K each using the standard TI disk controller (required 994adisk.bin– see BIOS files below).
  • No speech synthesizer yet (but games that require speech synthesizer will still run/play – just no voices will play).

This program is made up of a number of building block bits and pieces of code from other emulators along with a lot of original code to paste it all together and run on the DS.

  • Sound core SN76496 is from FluBBa and is used with permission.
  • The TI9918A code is from Marat Fayzullin (ColEM) and retains the original copyright statement by Marat. Don’t use any of those codes without trying to contact Marat.
  • The TI9900 CPU core is mostly mine with some significant bits of scaffolding from Mike Brent’s Classic99 emulator, especially in handling the status bits and some of the more complicated opcode algorithms so they work properly. This is used with permission and with big thanks!
  • For the remainder of the code, as long as there is no commercial use (i.e. no profit is made), copying and distribution of this emulator, its source code and associated readme files, with or without modification, are permitted on any royalty-free media provided this copyright notice is used and wavemotion-dave is widely thanked.
  • The DS99 emulator is offered as-is, without any warranties.

Installation

  • You will need the two console BIOS files as described below. Place both BIOS files .binin /roms/bios(you can just create directory on SD card).
  • You will also need the emulator itself. You can get it from the GitHub page – the only file you need here is DS994a.nds(the file .ndsis a Nintendo executable). You can put it anywhere – most people put the file .ndsinside the SD card itself.
  • If you want to play disc based games ( Adventure , Tunnels of Doom , etc..) you will need the bios 994adisk.bin(often called simply disk.binbut you have to rename it and put it in /roms/bios).
  • You will need games to play… right now the emulator supports C/D/G files and non-inverted ‘8’ files. Basically just try to load a file to see if it works… ROMs should have the extension .bin.
  • I recommend you put your games in /roms/ti99as the emulator will default to that directory. That’s where the cool kids keep them.
  • I recommend putting all the necessary disks (files .dsk) in the same directory as your ROMs until I can get a better file manager.

Known issues

  • The 512K megademo8.binwill play (and it’s really cool!) but fail when it gets to the scanline stuff near the end.
  • Borzork has audio screech during gameplay.
  • The save and load state does not yet work with SAMS expanded memory nor with the special SuperCarts or MiniMems. Soon.
  • Congo Bongo requires RAM mirrors to be enabled so that level 2 problems do not occur. Use Options to enable.

BIOS files

Below are the CRC32 hashes of the BIOS file I’m using with all my tests – look them up if you want maximum compatibility:

* db8f33e5 994aROM.bin (8K)
* af5c2449 994aGROM.bin (24K)
* 8f7df93f 994aDISK.bin (8K) - questo è necessario solo se si desidera il supporto .DSK

Blend Mode (DSi)

The ColecoDS emulator supports a “blend mode” borrowed from my schema on StellaDS.

In this mode, two frames are merged together – this is really useful when playing games like Space Fury or Galaxian where the bullets on the screen are only 1 pixel wide and the DSi’s LCD doesn’t hold pixels long enough to be visible.

These games were designed to run on an old tube television with a slowly decaying phosphor so that the eye sees faint trails as the picture fades.

This emulates that (roughly), on the DSi using this new mode makes those games really bright and visible.

The DSi XL/LL has a slower refresh on the LCD and comes closest to older CRT TVs… so blend mode is not needed for XL/LL models.

However using blend mode costs 15% CPU!! The DSi can handle it… the DS-LITE/PHAT may struggle a bit with more complicated games.

So my recommendation is as follows:

  • Non-XL/LL DSi: Use Blend Mode for games that take advantage of it (e.g. TI Invaders ).
  • DSi XL/LL – Don’t worry… XL/LL screen decay is slower and games look great the way they are.
  • DS-LITE/PHAT: You can try it but the framerate may drop below 60 FPS on some games.

To enable this new Blend mode, choose the game to load and go to the “Game Options” submenu to activate it.

Changelog v1.2

  • Added voice samples for Parsec , Alpiner and Moonmine . It’s not perfect but it brings back the feel of those word games!
  • Added more TI keys that can be mapped to the DS.
  • Minor cleaning as time allowed.

Changelog v1.1

  • New build with GCC 9.7.0 and latest libnds.
  • Improved DSK writes for greater consistency and security.
  • Restored build optimizations -O2for improved stability.
  • Minor cleaning as time allowed.

Changelog v1.0

  • Improved TI99 keyboard which is the new default.
  • Improved DSK saves for more robust writes.
  • Screenshot added (hold L+R+Y).
  • Ability to swap top/bottom screens (hold L+R+X).
  • Cleaning across the board for the official 1.0 release.

1.0a With hotfix to automatically backup disk writes and restore them if a bad disk is found.
1.0b Another disk write-back hotfix. Slightly improved TI99 key graphics.

Downloads: DS99/4a v1.2

Download: Source code DS99/4a v1.2

Source: forums.atariage.com