Jump to content
IGNORED

DS99/4a - Emulator for the DS/DSi


wavemotion

Recommended Posts

1 hour ago, llabnip said:

transfer files onto his SD card via some (homebrew?) software on the 3DS

 

I'm running a 3DS specific build of FTP Server for 3DS/Switch. It turns the 3DS into an FTP site. After launching it, I use FileZilla on my Mac to transfer files to it.  I have to start it using the homebrew launcher, which I think is because it's a 3DS specific build.  More info in this reply of the StellaDS topic.

 

A quick search turned up DSFTP, a DS specific FTP server, which should provide the same functionality for @Asmusr

 

image.thumb.jpeg.2dd507e962da3c40e0c313f8e7a979b1.jpeg

 

Nice crisp text, since it's running at the native 3DS resolution.

image.jpeg.7b0c9d009af531286815760a6048a

 

Overall the DS emulators work great on the 3DS, though scaling artifacts are a minor annoyance - such as Stella's 160x192 first scaling to 256x192 (DS) then scaling to 800x240 (3DS) (actually a subset of 800 as it's letterboxed).  A 3DS specific build would would be awesome as 160x240 (Stella PAL) would nicely scale 4x horizontally (640x240) for the letterboxed image on the 3DS. However, there's probably way too few 3DS owners to invest time in that. Still, I can dream :)

 

  • Like 7
Link to comment
Share on other sites

So someone was kind enough to mock up a 256x192 resolution QWERTY keyboard over on the AtariAge Facebook page.  The rationale was to allow for a bit easier hunt-and-peck on Adventure-type games where the keyboard is a central focus. 

 

And while it does work... the buttons start to get too small to use your finger for... which means Stylus-only.  I'm not sure this will really be useful.  While I grew up with my buddy having a TI99/4a and we played the crap out of Scott Adam's adventures (mostly Pirate's Island, Ghost Town, Savage Island... HYPERVENTILATE!! and RtPI), it seems that most people would not return to such adventures on the small screen. 

 

image.thumb.png.8256a4763b68417a3b6a4e093f1f4bed.png

 

In the meantime, I'm starting work on the Speech Module. There's some floating point math and other computation-heavy stuff I'm seeing in the simulator code I'm going to use... which makes me think it's going to be too slow for the old DS-Lite. We'll see!

  • Like 5
Link to comment
Share on other sites

I like the approach of PokeyDS for the Atari 800XL, completely in the design of the emulated computer:

 

image.png.b53522be23787601d8d16e6e05e99b23.png

 

The keys are small, but the TI has a narrow keykoard:

 

TI-99/4A keyboard

 

Perhaps someone more talented than me could build an image for the lower screen in the black-silver design, incorporating the supported devices (Disk, Tape, Speech) like the disk drive in the Atari Image?

 

 

 

  • Like 4
Link to comment
Share on other sites

The TI99 style keyboard is nice but I would prefer direct keys to manage the text and not FCTN or CTRL 

at least the possibility to choice DEL, INS, ERASE, CLEAR, BEGIN, PROC'D, AID, REDO, BACK and the QUIT (Reset) keys stand alone on the keyboard screen, something like an function keys option maybe.

 

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

I have missed this thread! 

 

@llabnip you're doing an impressive job!

Luckily I still have my old DS with its R4 but it's at my parents home. Next weekend I'm going to retrieve it and try your emulator. 

From the pictures I have the impression that the small LCD screen is improving the appearance of all the games, they look less coarse.

  • Like 4
Link to comment
Share on other sites

Just now, Sergioz82 said:

Luckily I still have my old DS with its R4 but it's at my parents home. Next weekend I'm going to retrieve it and try your emulator. 

From the pictures I have the impression that the small LCD screen is improving the appearance of all the games, they look less coarse.

The nice thing about the DS and DSi (and DSi XL/LL) is that the native screen resolution is 256x192 which is exactly the same as the output of the TI VDP chip (and same for Colecovision, MSX1, etc). So it's pixel perfect in almost exactly the right 4:3 ratio - no stretching, is needed.  For the 2DS/3DS there is some upscale.

  • Like 5
Link to comment
Share on other sites

1 hour ago, ti99iuc said:

The TI99 style keyboard is nice but I would prefer direct keys to manage the text and not FCTN or CTRL 

at least the possibility to choice DEL, INS, ERASE, CLEAR, BEGIN, PROC'D, AID, REDO, BACK and the QUIT (Reset) keys stand alone on the keyboard screen, something like an function keys option maybe.

 

Right now you can map any of the 12 DS keys to any of the TI joystick (P1, P2) or keyboard keys... by default the shoulder buttons are mapped to FCTN and CTRL so you just press those with your index finger and press a key on the touch-screen keyboard to make FCTN-x or CTRL-x combinations. 

  • Like 3
Link to comment
Share on other sites

13 minutes ago, llabnip said:

Right now you can map any of the 12 DS keys to any of the TI joystick (P1, P2) or keyboard keys... by default the shoulder buttons are mapped to FCTN and CTRL so you just press those with your index finger and press a key on the touch-screen keyboard to make FCTN-x or CTRL-x combinations. 

On my modified build of Sim99 for the Retroflag GPi Case (ti99-handheld), I've remapped the 8 buttons layout to use most of the TI99 games without having to use a keyboard. The needed keys were mapped to: Fire, 1, 2, 3, ESC, FCTN+QUIT, FCTN+REDO and Enter.
The Esc key is needed on to exit the emulator, so on the DS you can use replace it with "+" and FCTN+REDO and you can practically avoid to use the touch screen while playing. 🙂

 

 

  • Like 4
Link to comment
Share on other sites

20 minutes ago, tmop69 said:

The needed keys were mapped to: Fire, 1, 2, 3, ESC, FCTN+QUIT, FCTN+REDO and Enter.

I need to beef up the available key maps on DS99/4a ... I'll be sure to include ESC, FCTN+QUIT and FCTN+REDO which are currently missing! Let me know if there are other useful key combos...

Link to comment
Share on other sites

10 minutes ago, llabnip said:

I need to beef up the available key maps on DS99/4a ... I'll be sure to include ESC, FCTN+QUIT and FCTN+REDO which are currently missing! Let me know if there are other useful key combos...

You may add FCTN+BACK and FCTN+PROC'D and maybe FCTN+AID and you should have covered all the needs for games. You could think of adding an "overlay" system for each game, similar to the spectacular implementation in the intellivision emulator. With also the game cover. ;-) Maybe it's too early to start thinking of cosmetic stuff, however it seems that there is a lot of interest in this new emulator, so I'm anticipating the request from the audience. 😁

 

In the meanwhile, I've tested last version 0.4a with disk support. I've successfully run Old Dark Caves 2 and Display Master (XB autoload) that are finicky with timings and had some problems with the MiSTer TI99 core and they are running correctly here! Also TI Artist 2, Enchanter and Infidel games from Infocom are fine. I wanted then to try Editor Assembler games, but this module hangs after selecting it from menu. 🤔 So, maybe there is another bug? Have you tried this SSS?

 

One suggestion for the Speech. Please, add an option for a "simulated speech" and a "real speech", so we can play Lasso, SuperFly also on the DSLite without voice, but with full frames. And many thanks for all the great work done right now!

 

 

  • Like 5
Link to comment
Share on other sites

1 minute ago, tmop69 said:

I wanted then to try Editor Assembler games, but this module hangs after selecting it from menu. 🤔 So, maybe there is another bug? Have you tried this SSS?

Thanks for the feedback!  I have not tried loading EA yet. That one doesn't have any extra RAM, right? I don't currently support RAM in the >6000 block (yet).  I'll add it to the list... 

 

And yes, I'll be sure to have proper options for the speech stuff... I suspect the DSLite is going to struggle with the speech stuff.  I just enabled the floating point math library in my DS994a build and will set about adding the speech module in the coming days. Step 1 is to get it working... then I'll figure out how to optimize it. If I were really clever, I'd offload the entire speech processing to the ARM7 core and let that 25MHz processor handle the speech rendering. But I'm not that clever. At least not at present.

  • Like 2
Link to comment
Share on other sites

33 minutes ago, llabnip said:

Thanks for the feedback!  I have not tried loading EA yet. That one doesn't have any extra RAM, right? I don't currently support RAM in the >6000 block (yet).  I'll add it to the list... 

 

Yes, correct no RAM in >6000 for the standard EA from TI. At the moment there are few games that needs it: Outland from Roach Software and a couple of Infocom Adventures. So, a "nice to have", but not essential feature.

 

 

  • Like 1
Link to comment
Share on other sites

17 hours ago, tmop69 said:

In the meanwhile, I've tested last version 0.4a with disk support. I've successfully run Old Dark Caves 2 and Display Master (XB autoload) that are finicky with timings and had some problems with the MiSTer TI99 core and they are running correctly here! Also TI Artist 2, Enchanter and Infidel games from Infocom are fine. I wanted then to try Editor Assembler games, but this module hangs after selecting it from menu. 🤔 So, maybe there is another bug? Have you tried this SSS?

I didn't have any problems with EA except that one of the roms I found was named PHM3055g3.bin which my program thought was an 'inverted type' ROM rather than the GROM it's supposed to be. Removing the '3' worked fine.   Let me know what your filename is and/or send me a copy so I can debug.

 

First night with the Speech emulation didn't go well... 6 hours and all I have is a horrible sounding squelch whenever speech should play. The good news: the squelch does seem to be coming in right at the point where the game would try to speak... so that's something :)  

 

Sound chip emulation is my nemesis. There's a reason I've put this technical challenge off until last.

  • Like 3
Link to comment
Share on other sites

On 1/7/2023 at 5:48 AM, Asmusr said:

Skyway is an easier test for the 5th sprite flag than having to wait for most of the mega demo. It doesn't work at all in the emulator.

I've revisited Skyway8.bin and my emulator is fetching 0x0000 at address >606E and currently that's an illegal opcode. Does that help shed any light on the problem with my emulation?

 

Edit: the PC was advanced by 2 when I printed that debug... so PC was >606C when it fetched the "illegal" opcode.

Edited by llabnip
Clarification
Link to comment
Share on other sites

2 hours ago, llabnip said:

I didn't have any problems with EA except that one of the roms I found was named PHM3055g3.bin which my program thought was an 'inverted type' ROM rather than the GROM it's supposed to be. Removing the '3' worked fine.   Let me know what your filename is and/or send me a copy so I can debug.

Yes, I have the SSS without the G.bin suffix. It's working fine now. Thanks.

  • Like 3
Link to comment
Share on other sites

3 hours ago, llabnip said:

I've revisited Skyway8.bin and my emulator is fetching 0x0000 at address >606E and currently that's an illegal opcode. Does that help shed any light on the problem with my emulation?

 

Edit: the PC was advanced by 2 when I printed that debug... so PC was >606C when it fetched the "illegal" opcode.

After the initial copying of everything from the cartridge into 32K RAM, the cartridge is never used again, so if your emulator is executing code in cartridge space later it's because it has gone off track. The main code starts at >A000. Here is a list file if that helps.

skyway.lst

  • Like 2
Link to comment
Share on other sites

2 minutes ago, Asmusr said:

After the initial copying of everything from the cartridge into 32K RAM, the cartridge is never used again, so if your emulator is executing code in cartridge space later it's because it has gone off track. The main code starts at >A000. Here is a list file if that helps.

skyway.lst 335.83 kB · 0 downloads

The failure happens immediately on launch... I'll check the listing and see if anything comes to mind.  I feel like it's a banking issue.

 

I've triple checked my banking logic and I don't see any issues.  This is 32K so is 4 banks (mask 0x03) and I respond to writes to every even address from >6000 to >7FFE (masking the address down to select bank 0-3).

Link to comment
Share on other sites

58 minutes ago, llabnip said:

The failure happens immediately on launch... I'll check the listing and see if anything comes to mind.  I feel like it's a banking issue.

 

I've triple checked my banking logic and I don't see any issues.  This is 32K so is 4 banks (mask 0x03) and I respond to writes to every even address from >6000 to >7FFE (masking the address down to select bank 0-3).

All my other games and carts that use the same cart->RAM loader work fine, so I think this must happen after the code is copied to 32K RAM, and the fact that it crashes in cartridge space is just a coincidence. Can you see if the PC reaches >A000, >A010, >A018, >A01C? It doesn't get to the split screen mode until you press a key, so it's a bit strange why it would crash.

Link to comment
Share on other sites

18 minutes ago, Asmusr said:

All my other games and carts that use the same cart->RAM loader work fine, so I think this must happen after the code is copied to 32K RAM, and the fact that it crashes in cartridge space is just a coincidence. Can you see if the PC reaches >A000, >A010, >A018, >A01C? It doesn't get to the split screen mode until you press a key, so it's a bit strange why it would crash.

Yes, in fact the game is continually executing above >A000.  The emulator isn't actually crashed... an invalid opcode will simply add some small cycles and carry on with the next instruction so that brief detour into >6000 doesn't cause the emulation to halt. The screen is blank - nothing is being drawn and the code is plowing through instructions above >A000.  

Link to comment
Share on other sites

1 hour ago, llabnip said:

Yes, in fact the game is continually executing above >A000.  The emulator isn't actually crashed... an invalid opcode will simply add some small cycles and carry on with the next instruction so that brief detour into >6000 doesn't cause the emulation to halt. The screen is blank - nothing is being drawn and the code is plowing through instructions above >A000.  

So it never reaches >A000?

Link to comment
Share on other sites

@llabnip some new feedbacks after some more tests with latest version:

 

- River Rescue: hangs at initial menu when requested to select 1 or 2. A copter is supposed to arrived from left in the working game;
- Red Baron Flight: hangs after launch;
- Topper: the hero moves using joysticks diagonals, but doesn't seem to work;

 

One improvement for UI: in the cart selection menu, is it possible to use gamepad's left/right shoulders to jump 1 screen up/down? It could be useful also to have to possibility to jump to the first/last page of the list. With a list of 100+ games it's really boring to move up/down only 1 line each time. 🙂 

 

I've also noticed with this and 0.3 version that sometimes the emulator hangs after TI Master screen, before the selection of a module. This is happening if you run some SSS in sequence. It was not happening with initial versions (not really sure when it started).

 

I'll continue with tests (SSS "official" list of games is nearly completed) and report back to you. Thanks.

 

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