tmop69 Posted January 6, 2023 Share Posted January 6, 2023 56 minutes ago, llabnip said: The version 0.2 should be 10-15% faster across the board helping games that were running at ~50 fps be much closer to full-speed. I also bumped up the cart banking memory to to 512K mostly because I wanted to play Flying Shark. I fixed Slymoids and other games using IDLE. Other minor cleanups as time permitted before I fell asleep last night. Enjoy! Great, I'll start now testing this update. With the previous one I have these results: Game Working / avg. fps on DS Lite 4A Flyer YES - 54fps Angler Dangler YES - 58fps Ant Colony YES - 58fps Anteater YES - 60fps Arcturus YES - 53fps Astro Fighter YES - 53fps Barrage YES - 53fps Berlin YES - 45/60fps Beyond Parsec YES - 56fps Beyond Space YES - 56fps Bigfoot YES - 56/60fps Black Hole YES - 51fps Car Wars YES - 45fps Centipede YES - 60fps Defender YES - 60fps Demon Attack (Beta) YES - 45fps Donkey Kong YES - 48fps Frogger YES - 50fps Hunt the Wumpus YES - 48fps Miner 2049er NO Munchman (gobbles dot) YES - 60fps Parsec YES - 46fps Popeye YES - 52fps Sewermania NO Super Fly NO The Attack (Beta) YES - 53/60fps TI Invaders YES - 50fps In particular, in Sewermania the hero sprite is disappering when you start to move. Miner 2049er: you cannot pass the title screen (I've tried now using joystick 2). I remember a similar problem with the MiSTer TI99 core. The available version of Miner is a crack from the disk version and it needs the 32K memory (I think it is copying the code on the 32K memory). Superfly, as indicated in my previous post need speech synth (as in FinalGrom on a real TI). I'll try again Miner and Sewermania with this new update. 1 2 Quote Link to comment Share on other sites More sharing options...
+wavemotion Posted January 6, 2023 Author Share Posted January 6, 2023 12 minutes ago, tmop69 said: In particular, in Sewermania the hero sprite is disappering when you start to move. Miner 2049er: you cannot pass the title screen (I've tried now using joystick 2). I remember a similar problem with the MiSTer TI99 core. The available version of Miner is a crack from the disk version and it needs the 32K memory (I think it is copying the code on the 32K memory). Superfly, as indicated in my previous post need speech synth (as in FinalGrom on a real TI). I'll try again Miner and Sewermania with this new update. Wow - thanks for the detailed feedback! Most of those frames-per-second should be significantly better on V0.2 on the older DS-Lite handheld. I also saw the Peter Pepper sprite disappear on Burgertime when he climbs to the top level. I think what's happening is that the top of the sprite is just off the top of the display (by like 1 pixel) area and my emulation is thinking the whole sprite is "off screen" and so isn't rendering it. I can look into that and will add it to the short-term fix-list. 2 1 Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted January 6, 2023 Share Posted January 6, 2023 1 hour ago, llabnip said: As a DS programmer, I'm well aware of the hardware! Ooh, but you did call it "the ultimate 8-bit classic gaming machine". I'm just pointing out it not an 8-bit machine, and neither is a PC, yet it blows the DS out of the water when it comes to "8-bit classic gaming". Even going back through the years one-on-one until 2004. 1 hour ago, llabnip said: I mean that the DS is the best 8-bit classic system emulator. In terms of users, machines, emulators and games emulated, it's clearly not. PC wins! 😄 1 Quote Link to comment Share on other sites More sharing options...
+wavemotion Posted January 6, 2023 Author Share Posted January 6, 2023 1 minute ago, sometimes99er said: In terms of users, machines, emulators and games emulated, it's clearly not. PC wins! 😄 I stand corrected - you are absolutely correct. Feel free to move on to the next thread. 1 Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted January 6, 2023 Share Posted January 6, 2023 1 minute ago, llabnip said: I stand corrected - you are absolutely correct. Feel free to move on to the next thread. Okay, I'll do that. 😐 Quote Link to comment Share on other sites More sharing options...
Tursi Posted January 6, 2023 Share Posted January 6, 2023 3 hours ago, llabnip said: But the DS hardware (screen, button input and form-factor) is really nice... The touch-screen is particularly nice for overlays and such... here is a snap of my Nintellivision emulator with a custom overlay for AD&D Treasure of Tarmin: I quite liked the DS hardware! I still have three DS dev systems here from the attempted run at Cool Herders DS. Despite the limitations, it's a pretty beefy little machine. 2 Quote Link to comment Share on other sites More sharing options...
Tursi Posted January 6, 2023 Share Posted January 6, 2023 2 hours ago, llabnip said: Wow - thanks for the detailed feedback! Most of those frames-per-second should be significantly better on V0.2 on the older DS-Lite handheld. I also saw the Peter Pepper sprite disappear on Burgertime when he climbs to the top level. I think what's happening is that the top of the sprite is just off the top of the display (by like 1 pixel) area and my emulation is thinking the whole sprite is "off screen" and so isn't rendering it. I can look into that and will add it to the short-term fix-list. Remember that the Y axis of sprites are off-by-one. That is, line 255 is the first visible line of the display as far as sprites go! Sprites should then fade off the top as it continues to count negative. I remember issues in Classic99 with Miner 2049er too, but my notes don't say anything about the title page. The issue was a lack of collision detection. The reason is Miner is checking the wrong VDP status bit - it checks >02 (part of the sprite counter) instead of >20 (collision bit), and only checks what is colliding when it's set. Classic99 used to work around this by just returning a random sprite index if the sprite value wasn't latched by 5-on-a-line or end of frame. 3 Quote Link to comment Share on other sites More sharing options...
+wavemotion Posted January 6, 2023 Author Share Posted January 6, 2023 1 hour ago, Tursi said: Remember that the Y axis of sprites are off-by-one. That is, line 255 is the first visible line of the display as far as sprites go! Sprites should then fade off the top as it continues to count negative. Yep! Thanks again - squished that bug and sprites are now showing properly on BT and Sewermania. I'll work on 2049er soon with your clues it should be fairly easy... it's on the list! At lunch I got a couple more frames of performance on the old DS... TI Invaders is now sustaining 60 fps (was at 50 fps on v0.1 and 57 fps on v0.2). 4 Quote Link to comment Share on other sites More sharing options...
Asmusr Posted January 6, 2023 Share Posted January 6, 2023 On 1/5/2023 at 7:48 PM, llabnip said: Absolutely - all 7 of my emulators will run fine on the 3DS using Twilight Menu. You will get the full 2x CPU experience and everything will run full-speed. I now have a 3DS with TWiLight Menu++. How do I run install/run your emulator? 2 Quote Link to comment Share on other sites More sharing options...
+wavemotion Posted January 6, 2023 Author Share Posted January 6, 2023 (edited) 18 minutes ago, Asmusr said: I now have a 3DS with TWiLight Menu++. How do I run install/run your emulator? You're on easy street. The 3DS running TWL++ will unlock the 2X CPU Speed for homebrews like DS99/4a. I've yet to find any TI game that will not run full speed when using such hardware. From the readme on my github page: https://github.com/wavemotion-dave/DS994a Installation : You will need the two console BIOS files as described below. Place both .bin BIOS files into /roms/bios (you can just make the directory on your SD card). You will also need the emulator itself. You can get this from the GitHub page - the only file you need here is DS994a.nds (the .nds is a Nintendo executable file). You will need games to play... right now the emulator supports C/D/G files and '8' non-inverted files. Basically just try loading a file to see if it works... the ROMs should have a .bin extension. Recommend you put your games into /roms/ti99 as the emulator will default to that directory. That's where the cool kids keep them. BIOS Files : Here are the BIOS file CRC32 hashes I'm using with all of my testing - seek these out if you want maximum compatibility: * db8f33e5 994aROM.bin (8K) * af5c2449 994aGROM.bin (24K) Edited January 6, 2023 by llabnip 1 1 Quote Link to comment Share on other sites More sharing options...
Asmusr Posted January 6, 2023 Share Posted January 6, 2023 9 minutes ago, llabnip said: You will also need the emulator itself. You can get this from the GitHub page - the only file you need here is DS994a.nds (the .nds is a Nintendo executable file). Where do put the emulator? Sorry, this is all new to me, before today I didn't even know that (my son's) 3DS had an SD card. 1 Quote Link to comment Share on other sites More sharing options...
+wavemotion Posted January 6, 2023 Author Share Posted January 6, 2023 You can put the DS994a.nds file (the emulator) anywhere you want... though most people throw it in the root directory of the SD card so it's easy to navigate via TWL++. All 7 of my emulators work basically the same in terms of setup... The DSi was the first to add the SD card (the 2DS and 3DS followed suit) and being able to just put some simple firmware on the card to run TWL++ opens up a world of homebrews and emulation. And no worries on the questions - I'm happy to help! 1 1 Quote Link to comment Share on other sites More sharing options...
Asmusr Posted January 6, 2023 Share Posted January 6, 2023 8 minutes ago, llabnip said: You can put the DS994a.nds file (the emulator) anywhere you want... though most people throw it in the root directory of the SD card so it's easy to navigate via TWL++. OK, and once I have done that, how do I run the emulator on the 3DS? Quote Link to comment Share on other sites More sharing options...
+wavemotion Posted January 6, 2023 Author Share Posted January 6, 2023 Assuming Twilight Menu++ is installed, you should be able to navigate anywhere on your SD card. Anything that is a .nds file should show up as something you can click on. In the case of DS99/4a, you just tap the icon (seeing it reminds me that I have to change ColecoDS to DS994a... I work on a lot of emulators): 2 Quote Link to comment Share on other sites More sharing options...
Asmusr Posted January 7, 2023 Share Posted January 7, 2023 It works for me now. Great fun to see my see and play my games on the 3DS. It would be nice if you could get past the TI title screen without having to press keys on the keyboard (e.g. 2, 2). I think the default should be 4 sprites per line. Running the mega demo that we did a few years ago reveals some issues with missing sprites at the top of the screen, which shows in the infinite dots part (I think it's the 5th part). The multicolor roto-zoom part is running at a lower frame than the other parts (45 FPS as opposed to 60 elsewhere). In the part with the twister at the right side of the screen, the sprites should appear to move under to horizontal bar (relies of more than 4 sprites on a line being hidden). And finally it never gets through the 'scanline sine scroller', which relies on the 5th sprite flag to work. It's a great test for an emulator that it can run the entire demo correctly. megademo8.bin 4 Quote Link to comment Share on other sites More sharing options...
Asmusr Posted January 7, 2023 Share Posted January 7, 2023 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. skyway8.bin 3 Quote Link to comment Share on other sites More sharing options...
+wavemotion Posted January 7, 2023 Author Share Posted January 7, 2023 Thanks for the feedback @Asmusr ! I have the missing sprites at top of screen fixed and that will push out with the next build this weekend. I also gained another 10% speed which should help on the demo. I’ll run both and figure out what’s still broken. My hobby to-do list is filling up fast 🤓🤪 2 Quote Link to comment Share on other sites More sharing options...
+wavemotion Posted January 7, 2023 Author Share Posted January 7, 2023 On 1/6/2023 at 8:16 AM, tmop69 said: Miner 2049er: you cannot pass the title screen (I've tried now using joystick 2). The version of Miner 2049 that I got from the Atariage FinalGrom repository thread seems to work fine in 0.1 and 0.2. I was able to play the first level with just the default settings. I did find a problem with the 5th sprite code... fixed that but Skyway still won't run after 2 hours of debug. I'll keep looking! 3 Quote Link to comment Share on other sites More sharing options...
Asmusr Posted January 7, 2023 Share Posted January 7, 2023 1 hour ago, llabnip said: I did find a problem with the 5th sprite code... fixed that but Skyway still won't run after 2 hours of debug. I'll keep looking! Does your emulation allow the CPU to run while the screen is drawn? Giving it some time between each scanline is enough, but if it draws the whole picture without letting the CPU in, the mega demo and Skyway will never work. 1 1 Quote Link to comment Share on other sites More sharing options...
+wavemotion Posted January 7, 2023 Author Share Posted January 7, 2023 In a sort of global loop, I perform 1 scanline worth of CPU and then render 1 scanline worth of VDP. 2 Quote Link to comment Share on other sites More sharing options...
tmop69 Posted January 7, 2023 Share Posted January 7, 2023 4 hours ago, llabnip said: The version of Miner 2049 that I got from the Atariage FinalGrom repository thread seems to work fine in 0.1 and 0.2. I was able to play the first level with just the default settings. Sorry, my fault. I was pressing fire button(s)/enter and not the space key to start the game. 🙂 Other games with problems: - Mancala. Hangs when you start to play a game. There was a similar crash on MiSTer core and it should be related to the bank switching used in this game; - Tutankham. Hangs immediatly after the menu selection; - Lasso. Hangs after the title, but this is related to missing Speech synth; 1 Quote Link to comment Share on other sites More sharing options...
Asmusr Posted January 7, 2023 Share Posted January 7, 2023 59 minutes ago, llabnip said: In a sort of global loop, I perform 1 scanline worth of CPU and then render 1 scanline worth of VDP. That should be fine. Quote Link to comment Share on other sites More sharing options...
+wavemotion Posted January 7, 2023 Author Share Posted January 7, 2023 (edited) Version 0.3 is ready: https://github.com/wavemotion-dave/DS994a V0.3: 7-Jan-2023 by wavemotion-dave Improved speed 8% across the board Fixed spirte cut-off at top of screen Fixed X in control mapping so that it toggles P1 vs P2 Added 50Hz PAL (along with default NTSC) support New splash screen and logo Other minor cleanups as time permitted Configuration and Save States will be wiped clean with this upgrade - I had to clean up both and future-proof them (I added about 20 spare config bytes for each game so I can have more options down the road). A bit of a frustrating last 12 hours - I'm clearly in over my head on some areas that I just don't have a good grip on. The VDP "5th Sprite" and/or problems with the megademo and Skyway is eluding me. I tried to get in simple tape support - and I can see most of it working but it only fires the timer interrupt (used for cassette) once. I looked at the TI99Sim core and I don't ever see any clearing of any interrupt besides the VDP so I'm not sure how it could possibly work. I tried to manually clear the interrupt (on a joypad button press) and it does trigger the next timer interrupt but I have no idea when/how a real system would clear the interrupt. Maybe TI99Sim doesn't care because they don't support cassette. I gave a 1 hour read of TI99Sim and Classic99's handling of disks and most of it was over my head - I was surprised that the codebase for filesystem support is larger than the actual core CPU chip stuff. That was depressing. So I'm feeling a little down after a good start on this... I feel like I've got a huge learning curve to take this to the next level. Maybe I just need a nap Edited January 7, 2023 by llabnip 1 4 Quote Link to comment Share on other sites More sharing options...
+wavemotion Posted January 7, 2023 Author Share Posted January 7, 2023 @tmop69 so I can get Lasso and Superfly to play simply by responding to the Speech Synth read addresses and reporting back 'Buffer Empty'. That doesn't make them talk, mind you... but does make them playable. Not ideal, I realize but for now.... 1 Quote Link to comment Share on other sites More sharing options...
tmop69 Posted January 7, 2023 Share Posted January 7, 2023 9 minutes ago, llabnip said: @tmop69 so I can get Lasso and Superfly to play simply by responding to the Speech Synth read addresses and reporting back 'Buffer Empty'. That doesn't make them talk, mind you... but does make them playable. Not ideal, I realize but for now.... yes, thanks, that could work, and surely it's better than nothing. 🙂 I remember that there are 2/3 educational cart that have the same problem. For the next tests I'll now use the new version. You are progressing ultra fast with the emulator and hope you are having a lot of fun discovering the TI! 4 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.